Image Burning
This guide covers burning the Linux OS image to the Hailo-15H SBC using the network-based update method via TFTP.
Prerequisites
Required Software
Download the Hailo-15H Vision Processor Software Package from Hailo Developer Zone.
TFTP Server Setup
Install and configure the TFTP server on your development host:
# Install TFTP server
sudo apt update
sudo apt install tftpd-hpa
# Create TFTP directory
sudo mkdir -p /var/lib/tftpboot
sudo chmod -R 777 /var/lib/tftpboot
# Restart TFTP server
sudo systemctl restart tftpd-hpa
Edit /etc/default/tftpd-hpa and ensure it contains:
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/var/lib/tftpboot"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure"
Required Tools
Install the Hailo board tools and U-Boot utilities:
# Install board tools (replace version as needed)
pip install hailo15_board_tools-1.11.0-py3-none-any.whl
# Install U-Boot tools
sudo apt-get install u-boot-tools
USB Device Rules
Configure USB device permissions:
# Create or edit udev rules
sudo tee /etc/udev/rules.d/99-usb.rules << 'EOF'
SUBSYSTEM=="usb", ATTR{idVendor}=="0403", ATTR{idProduct}=="6015", GROUP="plugdev", MODE="0664"
EOF
# Apply rules
sudo udevadm control --reload
sudo udevadm trigger
sudo adduser $USER plugdev
:::tip Reboot Required Reboot the development host after adding the udev rules. :::
Network Configuration
Configure the development host Ethernet connection:
- Development host IP:
10.0.0.2 - Hailo-15H SBC IP:
10.0.0.1(static) - Subnet:
10.0.0.0/24
Verify Current Software Version
Before updating, check the current software version:
-
Connect via SSH:
ssh root@10.0.0.1# Default password: 'root' -
Check the version:
cat /etc/os-release -
Compare with the latest version in the Hailo Vision Processor Software Package Release Notes.
If the board already has the desired version, proceed directly to Run Your First Demo.
Hardware Setup
Connect the hardware as shown below:

Connections:
- Ethernet cable between development host and Hailo-15H SBC RJ45 connector
- USB-to-micro-USB cable between development host and Hailo-15H SBC
Power and Reset Buttons
Locate the power and reset buttons on the Hailo-15H SBC:
- Power button: Powers on the board
- Reset button: Resets the board
Step 1: Set DIP Switch for UART Boot
Configure the SBC to boot from UART for the recovery process:
-
Power off the Hailo-15H SBC.
-
Using fine tweezers, remove the orange tape from the DIP switch.
-
Set the bootstraps to boot from UART by setting SW1.1 = ON (as shown in the figure below):

-
Connect the USB-to-micro-USB cable to the PC.
-
Power on the Hailo-15H SBC using the power button.
-
Reset the Hailo-15H SBC using the reset button.
The SBC is now ready for firmware loading.
Step 2: Load Recovery Firmware
Load the recovery firmware using the uart_boot_fw_loader tool:
uart_boot_fw_loader \
--serial-device-name /dev/ttyUSB0 \
--firmware ./prebuilt/sbc/hailo15_uart_recovery_fw.bin
:::note File Location
The .bin file is part of the Hailo Vision Processor Software Package, located under prebuilt/sbc/.
:::
You should see output indicating successful firmware load:

Step 3: Program SPI Flash
Program the SPI flash with bootloader and firmware images:
cd prebuilt/sbc
hailo15_spi_flash_program \
--scu-bootloader ./hailo15_scu_bl.bin \
--scu-bootloader-config ./scu_bl_cfg_a.bin \
--scu-firmware ./hailo15_scu_fw.bin \
--uboot-device-tree ./u-boot.dtb.signed \
--bootloader ./u-boot-spl.bin \
--bootloader-env ./u-boot-initial-env \
--customer-certificate ./customer_certificate.bin \
--uboot-tfa ./u-boot-tfa.itb \
--uart-load \
--serial-device-name /dev/ttyUSB0
:::note File Locations
All .bin and .itb files are part of the Hailo Vision Processor Software Package, located under prebuilt/sbc/.
:::
You should see the SPI flash programming output:

Step 4: Reconfigure for SPI Boot
After programming the SPI flash, reconfigure the SBC to boot from SPI:
-
Power off the Hailo-15H SBC.
-
Using fine tweezers, set the DIP switch to SW1.1 = OFF (normal boot mode).
-
Power on the Hailo-15H SBC.
Step 5: Program SD Card via TFTP
5.1 Prepare TFTP Directory
Copy the required image files to the TFTP directory:
# Copy FIT image
sudo cp fitImage /var/lib/tftpboot/
# Copy swupdate files
sudo cp swupdate-image-hailo15-sbc-rev3.ext4.gz /var/lib/tftpboot/
sudo cp hailo-update-image-hailo15-sbc-rev3.swu /var/lib/tftpboot/
:::note File Locations These files are part of the Hailo Vision Processor Software Package. Adjust filenames according to your specific version. :::
5.2 Connect Serial Console
Connect to the SBC serial console:
sudo picocom -b 115200 /dev/ttyUSB0
5.3 Initiate SD Card Update
-
Reset the Hailo-15H SBC using the reset button.
-
The U-Boot menu will appear. Select "SD Card Board Init":

-
U-Boot will automatically download the software update via TFTP and begin the update procedure.
-
Wait for the procedure to complete. You will see progress traces followed by an automatic device reboot:

:::tip Update Duration The update process typically takes several minutes. Do not interrupt power during this process. :::
Verification
After the update completes and the board reboots:
-
Verify the new version:
ssh root@10.0.0.1cat /etc/os-release -
Check that all partitions are mounted correctly:
lsblk
Alternative: Direct SD Card Flashing (dd Method)
As an alternative to network boot, you can flash the SD card directly using dd or balenaEtcher.
Locate the Image File
Find the .wic image file in your software package:
prebuilt/images/
└── hailo15-yocto-image.wic
Using dd (Linux/macOS)
# Identify SD card (BE CAREFUL!)
lsblk
# Flash image (replace sdX with your device)
sudo dd if=hailo15-yocto-image.wic of=/dev/sdX bs=4M status=progress conv=fsync
# Verify
eject /dev/sdX
:::danger Destructive Command
The dd command will overwrite the target device completely. Triple-check the device path to avoid data loss.
:::
Using balenaEtcher
- Download and install balenaEtcher
- Select the
.wicor.wic.gzimage file - Select your SD card
- Click "Flash!"
SD Card Requirements
| Specification | Minimum | Recommended |
|---|---|---|
| Capacity | 16 GB | 32 GB+ |
| Speed Class | Class 10 | UHS-I U3 |
| Type | microSD | microSDHC/SDXC |
Troubleshooting
Recovery Firmware Load Fails
Cause: USB device not detected or permission issue
Solution:
- Verify USB cable connection
- Check udev rules are applied
- Verify device node exists:
ls -la /dev/ttyUSB0
SPI Flash Programming Fails
Cause: UART connection issue or wrong boot mode
Solution:
- Ensure DIP switch SW1.1 is set to ON
- Check serial connection with
picocom - Reset and retry
TFTP Transfer Fails
Cause: Network configuration or firewall issue
Solution:
- Verify IP address is set to 10.0.0.2 on development host
- Check TFTP server is running:
sudo systemctl status tftpd-hpa - Verify files exist in
/var/lib/tftpboot/ - Check firewall settings
Update Hangs
Cause: Network interruption or corrupted image
Solution:
- Reset the board and retry
- Re-copy image files to TFTP directory
- Verify image integrity with checksums
Next Steps
After burning the image:
- Ensure the SD card is inserted into the SBC (if using direct flash method)
- Set DIP switches to normal boot (SW1.1=OFF)
- Power on the board
- Proceed to Run Your First Demo