Iβm back from China and now in Greater Vancouver, celebrating Christmas. πβ€οΈπ
Today, let me continue my second blog post about Jetson AGX Xavier, and try to push a live stream up to Twitter for some fun.
Iβm back from China and now in Greater Vancouver, celebrating Christmas. πβ€οΈπ
Today, let me continue my second blog post about Jetson AGX Xavier, and try to push a live stream up to Twitter for some fun.
Two of my previous blogs have been talking about Hailo, respectively:
Since Iβm now back to Vancouver for Christmas, let me write my 3rd blog about Hailo today.
| Top View of Raspberry Pi 5 Hailo PCIE M.2 Hat |
|---|
![]() |
| Side View of Raspberry Pi 5 Hailo PCIE M.2 Hat |
|---|
![]() |
fastfetch
Good news !!! Hailo 4.23.0 has been released, and it supports Raspberry Pi 5 with native Python 3.13.5 installation, which is incredibly convenient. The only thing to remember: make sure to install DKMS by sudo apt install dkms.
Please visit Hailo Software Downloads to download and install the following three MUST software packages:
hailort_4.23.0_arm64.deb1 | β ~ dpkg -L hailort |
hailort-pcie-driver_4.23.0_all.deb1 | β ~ dpkg -L hailort-pcie-driver |
hailort-4.23.0-cp313-cp313-linux_aarch64.whl1 | β ~ pip list | rg hailo |
Finally, letβs test if Hailo is correctly configured on our Raspberry Pi 5.

hailortcli run *.hefs
| Live Stream - Deep Night Beautiful Vancouver | Live Stream - Beautiful Dublin | Live Stream - Bears In Katmai Nation Park, Alaska |
|---|---|---|
![]() |
![]() |
![]() |

Good new. Iβm flying back to China for some traditional Chinese food - ηεΉ²ι’ πβ€οΈπ
In my first blog post about Jetson AGX Xavier early in year 2021, I just did a very simple demo with any industrial camera using Aravis. Today, Iβm going to make full use of the CUDA GPU Compute Capability of my Jetson AGX Xavier, running DeepStream to live cam stream the city of Vancouver and twitter it out.
By the way, I forget to mention my this blog Kinect 2 on Jetson AGX Xavier.
neofetch
jtop
tegrastats and jetson_release
You first have to find the corresponding DeepStream version from its official website DeepStream. Since Iβm using a Jetson AGX Xavier, Iβd choose DeepStream 6.3 and have it installed on my device.



| Process On a Video without Using deepstream Command |
|---|
![]() |
| Results of Detection |
|---|
![]() |
DeepStream 6.3 does not provide an out-of-the-box sample for rendering different object classes with different bounding box colors.
In DeepStream 6.3, deepstream-app uses the default nvdsosd behavior, which applies a single bounding box style to ALL detected objects.
The application-level configuration parser does not support class-wise color mapping, and nvdsosd color customization is not exposed through deepstream-app config files.
As a result, rendering different colors for different object classes requires custom OSD logic or a modified application, rather than configuration-only changes.
Hailo Technologies Ltd. is indeed a semiconductor high-tech company based in Tel Aviv, Israel. Although this blog focuses on the Israeli product Hailo-8L Entry-Level AI Accelerator, I would like to take this opportunity to celebrate the successful holding of 2025 China Victory Day Parade.
In my first blog post about Hailo last year, not using a Docker container to create a Python 3.10 environment caused me significant troubles, and I actually failed to complete the demonstration. Today, we are going to walk through the entire Hailo process again.
neofetch
Please visit Hailo Software Downloads to download and install the following three MUST software packages:
1 | β dpkg -L hailort |
1 | β ~ dpkg -L hailort-pcie-driver |
HailoRT β Python package (whl) for Python 3.11, aarch64
TAPPAS Python Binding (Optional)
1 | β ~ pip list | grep hailo |
Note: Since my Raspberry Pi 5 comes with Python 3.11 pre-installed, I have selected the Python 3.11 version. You should choose the appropriate version that matches your Python environment for installation.
Please also guarantee the software you installed are compatible with each other. As shown in the following, Iβm using the newest compatible versions.

Finally, letβs test if Hailo is correctly configured on our Raspberry Pi 5.

Please strictly follow the How to Set Up Raspberry Pi 5 and Hailo guide to fix any bugs that have already appeared or to prevent potential ones.
This is a MUST step to do.
1 | β ~ hailortcli fw-control identify |
Mine is a HAILO8L.
.hefsFor simplicity, I directly downloaded some .hef files from HAILO8L Models
hailortcli run .hefs
The .hef (Hailo Executable File) format is platform-independent: a single .hef file can be executed on both x86_64 hosts and aarch64 (ARM64) hosts, as long as the system has the appropriate Hailo runtime (HailoRT) and driver installed.
This is possible because the .hef file does not contain host-specific binaries or compiled CPU code. Instead, it encapsulates the compiled Hailo neural network graph targeted for the Hailo hardware accelerator itself. The host platform - whether x86_64 or aarch64 - acts mainly as a controller that loads the .hef into the Hailo device, configures it, and orchestrates inference.
In other words, the .hef file is tied to the Hailo hardware (e.g., Hailo-8, Hailo-8L, Hailo-10) but is independent of the host CPU architecture. This allows the same .hef model file to be deployed seamlessly across development environments (for example, a workstation with an x86_64 CPU and PCIe card) and edge devices (for example, a Raspberry Pi 5 or Jetson board with an ARM64 CPU and M.2 card).
In this demonstration, 2 famous images from Ultralytics are respectively adopted for object detection and image segmentation:
| Hailo Object Detection using yolov11s.hef | Hailo Image Segmentation using yolov8s_seg.hef |
|---|---|
![]() |
![]() |
1 | β python3 camera_ai_rtsp.py |
1 | ffplay -rtsp_transport tcp rtsp://192.168.1.90:8554/ai |
| Live Stream RTSP Broadcasted After Processed by Hailo on Raspberry Pi 5 | ffplay the Processed Live Stream on Server |
|---|---|
![]() |
![]() |
Like other dedicated AI hardware platforms, Hailoβs software stack involves compiling a trained model, converting it from the standard ONNX format into its proprietary HEF (Hailo Executable Format) file optimized for its own architecture.
All well documented by Espressif.
Cited from I2S,
1 | I2S (Inter-IC Sound) is a synchronous serial communication protocol usually used for transmitting audio data between two digital audio devices. |
In sum:
Although a single I2S controller is nominally full-duplex β supporting both input (recording) and output (playback), in practice, operations must be time-multiplexed. In other words, it is not truly capable of simultaneous input and output. To achieve real-time interaction β such as detecting user input and instantly interrupting playback β two independent I2S controllers are required: one dedicated to continuously handling microphone input, and the other to audio output to the speaker.
So, today, letβs make a bluetooth speaker based on ESP32-C3, which ONLY requires I2S to serve as output (playback).
| Any ESP32-C3 board | MAX98357A I2S amplifier | Any speaker |
|---|---|---|
![]() |
![]() |
![]() |

Please refer to Github LongerVisionRobot ESP32-C3-MAX98357A-WiFi-speaker.
| ESP32-C3 Playing a Tone | ESP32-C3 Playing an Audio File |
|---|---|
Happy Fridayβ¦ And, how I miss my beloved sonβ¦ God blessβ¦ Today, Iβll talk about Maix Bit board.
1 | ...... |
Detailed specification about Maix Bit board can be found on MaixBit Wiki.
https://dl.sipeed.com/MAIX/Maixduino/package_Maixduino_k210_index.json as one Additional Board Manager URLNote: Maixduino supports Maix Bit board.
And, I am using MaixPy-v1 (Please refer to Introduction of MaixPy-v1).
It is another International Childrenβs Day. Today, letβs have some fun of using ESP32 to control an OWI-535 robotic arm.

Finally, my DRV8833 arrived around Surrey Canada Day. Letβs FIRST carry out a simple comparison, well, using Deepseek (might be incorrect).
| Comparison Item | L298N | DRV1508S (MX1508) | DRV8833 | CS9016C (Replacing TB6612) | HR4988 | 2025 Trends |
|---|---|---|---|---|---|---|
| Motor Type | DC (Brushed) | DC (Brushed) | DC (Brushed) | DC (Brushed) | Stepper (Bipolar) | BLDC/Stepper/Servo |
| Commutation | Mechanical | Mechanical | Mechanical | Mechanical | Electronic | Electronic |
| Voltage Range | 4.5V~46V | 5V~18V | 2.7V~10.8V | 2.5V~15V | 8V~35V | 5V~48V |
| Continuous Current | 2A/ch (Peak 3A) | 0.5~1A | 1.5A/ch (Peak 2A) | 1.5A/ch (Peak 4A) | 2A/phase | 1A~30A |
| Control Method | PWM + DIR | PWM + DIR | PWM + DIR | PWM + DIR | STEP + DIR | FOC/STEP/DIR |
| Microstepping | No | No | No | No | Up to 1/16 | Up to 1/256 |
| Efficiency | Low (BJT) | Medium (MOSFET) | High | Very High | High | Very High (FOC) |
| Protection | External Diode | Basic | Comprehensive | Auto-Recovery | Comprehensive | Full Protection |
| Package | Module | SOP-8 | HTSSOP-16 | TSSOP-16 | QFN-28 | Module |
| Applications | Robot Cars | Toys | Battery Devices | Smart Cars/Drones | 3D Printers/CNC | Open-Source Robots |
| Open-Source | No | No | Partial | Yes | Partial | Fully Open |
| Price (USD) | $0.7~1.4 | $0.3~0.4 | $0.35~0.7 | $0.3~0.6 | $0.4~0.8 | $1.5~15 |
| Application | Best Choice | Why? |
|---|---|---|
| Ultra-low cost (β€1A) | DRV1508S | Cheapest ($0.3) |
| Balanced performance | DRV8833/CS9016C | CS9016C for current, DRV8833 for voltage range |
| High-power DC (β₯2A) | DRV8871 | Handles up to 3.6A continuous |
| Stepper motors | HR4988 (budget) | Or TMC2209 for silent operation |
| BLDC motors | VESC | Open-source FOC control |
In this particular blog, DRV8833 is adoptted, rather than L298N. Without circuit protection, L298N is more prone to being damaged or burned out.
Refer to Pololuβs OWI-535 Robotic Arm Edge Kit:
Please refer to my blogs:
And:
| Any ESP32-C6 board | DRV8833 H-bridge Motor Driver | OWI-535 |
|---|---|---|
![]() |
![]() |
![]() |
The one Iβm using for this blog is a WeActStudio.ESP32C6-MINI.
Please refer to Github LongerVisionRobot ESP32-C6-DRV8833-WiFi-OWI-535-Robotic-Arm.
| Raspberry Pi 5 Hailo AI + M.2 SSD | Connection With M.2 Extention Board |
|---|---|
![]() |
![]() |
Since I personally do NOT like to Hailo-8L on Ubuntu 24.04 using Docker, I just struggled to have everything directly run without docker:
libcamera1 | β ./libcamera-hello |
hailomz commandBased on my previous blog BeagleV-Fire-1.md, we firstly checkout BeagleV-Fire Ubuntu, and do the following updates.
01_git_sync.sh1 | #!/bin/bash |
04_build_linux.sh1 | #!/bin/bash |
06_generate_ubuntu_console_root.shJust update 23.04 to 24.04
1 | #!/bin/bash |
git_linux_mainline.sh1 | #!/bin/bash |
git_linux_mpfs.sh1 | #!/bin/bash |
01_git_sync.sh1 | β BeagleV-Fire-ubuntu git:(main) β ./01_git_sync.sh |
./02_build_hss.sh1 | β BeagleV-Fire-ubuntu git:(main) β ./02_build_hss.sh |
./03_build_u-boot.sh1 | β BeagleV-Fire-ubuntu git:(main) β ./03_build_u-boot.sh |
A new file patches/u-boot/beaglev-fire/microchip_mpfs_icicle_defconfig is generated as:
1 | CONFIG_RISCV=y |
04_build_linux.shYou may meet the same issues solved in BeagleV-Fire-1.md.
1 | β BeagleV-Fire-ubuntu git:(main) β ./04_build_linux.sh |
Three files are generated as follows:
patches/linux/dts/mpfs-beaglev-fire-fabric.dtsi1 | // SPDX-License-Identifier: (GPL-2.0 OR MIT) |
patches/linux/dts/mpfs-beaglev-fire.dts1 | // SPDX-License-Identifier: (GPL-2.0 OR MIT) |
patches/linux/mpfs_defconfig1 | # |
05_generate_payload.bin.sh1 | β BeagleV-Fire-ubuntu git:(main) β ./05_generate_payload.bin.sh |
sudo ./06_generate_debian_console_root.sh1 | β BeagleV-Fire-ubuntu git:(main) β sudo ./06_generate_debian_console_root.sh |
sudo ./07_create_sdcard_img.sh1 | β BeagleV-Fire-ubuntu git:(main) β sudo ./07_create_sdcard_img.sh |
1 | β BeagleV-Fire-ubuntu git:(main) β ll deploy/images |
1 | β ~ tio /dev/ttyUSB0 |
The official website of BeagleV-Fire Board provides the official OS BeagleV-Fire Ubuntu 2023-11-21, which is able to flash onto the board directly.
Bingo! This time, weβre good to go.
The ONLY 2 commands we need to use before flashing are:
mmcusbdmscAnd openssh-server has already been installed by default. Namely: ssh is enabled by default.
ssh Into BeagleV-Fire BoardThe username and password are respectively:
beagletemppwd1 | β ~ uname -a |
1 | β ~ lspci |
Today, let me have some fun of the open source cellphone PinePhone.
Please do strictly follow PinePhone and PinePhone Pro - 20.04 Focal Install and Update.
| Ubuntu Touch 16.04 on eMMC Initially | Pine64 20.04 Ubuntu Touch Image Builder Flashed on eMMC In the End |
|---|---|
![]() |
![]() |
| Tow-Boot Installer Interface | eMMC Boot Erased |
|---|---|
![]() |
![]() |
| Install Tow-Boot Successfully | Booting |
|---|---|
![]() |
![]() |