Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

image-20240515-065501.png

Introduction

The following quick start guide provides background information about the SolidRun Hailo 15 SOM.

The guide will give a technical overview of the product. By the end of it, you should be able to boot an operating system and run a demo application.

Revision and Notes

Date

Owner

Revision

Notes

Mikhail Anikin 

1.0

Initial release

Table of Contents

Hardware Setup

Product specifications

 

Hailo 15 SOM with HummingBoard

I/Os

1 x MIPI-CSI on SOM

Networking

1 x Ethernet RJ45 10/100/1000

Processor

Hailo 15 Quad-core Arm Cortex A53 1.3GHz

2 x Cortex M4, 200MHz

Memory & Storage

up to 8GB DDR4 RAM
Starting from 16GB eMMC

Development and Debug interfaces

Micro USB

Power

7V – 36V

Expansion card I/Os

mikroBUS header

Temperature

Commercial: 0°C to 70°C

Industrial: -40°C to 85°C

Dimensions

PCBA: 100 x 70mm

Enclosure 120 x 80 x 30mm

Enclosure

Extruded aluminium

 

For more detailed information about Hailo 15 SOM, please visit the hardware user manual:

HAILO 15 SOM Hardware User Manual

Visual Features Overview

Please see below the features overview of the connector side of the HummingBoard Pro & Hailo 15

image-20240513-080933.png

Software Setup

Cable setup and prerequisites

Here is what you will need to power up and use the board:

  • Linux or Windows PC

  • HummingBoard with Hailo 15 SOM

  • 12V Power adapter (HummingBoard has wide range input of 7V-36V, it is recommended to use 12V power adapter).

  • The micro USB to USB for the console (the HummingBoard has an onboard FTDI chip).

  • IP router or IP switch

Boot select and boot options

You should select the boot source before powering up the board for the first time.

Hailo 15 with HummingBoard has two boot options: serial boot (for recovery) and eMMC boot (the main option). The S3 DIP switch needs to be modified to select a boot option.

Boot Mode

1

2

3

4

5

6

eMMC Boot

off

off

off

off

off

off

Serial Recovery mode

off

on

off

off

off

off

Generating Yocto image

The prebuilt artifacts are available here.

Navigate to the meta layer repo for the build instructions: meta-solidrun-arm-hailo.

Understanding boot artifacts

The following artifacts are generated by yocto build:

Artifact

Purpose

Target location

hailo15_scu_bl.bin

SCU Bootloader

QSPI Flash

hailo15_scu_fw.bin

SCU Firmware

QSPI Flash

customer_certificate.bin

Customer key certificate

QSPI Flash

u-boot.dtb.signed

U-Boot device tree

QSPI Flash

u-boot-initial-env

U-Boot environment

QSPI Flash

u-boot-spl.bin

U-Boot SPL

QSPI Flash

u-boot-tfa.itb

TF-A and U-Boot

eMMC Boot partition

fitImage

Linux kernel and device tree

eMMC Boot partition

core-image-minimal-hailo15-solidrun.ext4

RootFS

eMMC Root partition

core-image-minimal-hailo15-solidrun.wic

Full eMMC image that contains both partitions. It can be flashed with bmap-tools using the .bmap file

eMMC

hailo15_uart_recovery_fw.bin

Recovery firmware for reflashing QSPI

Booting the board:

The board is pre-flashed with a basic yocto image and AI demos.

  1. Serial connection
    Please insert the micro USB into your device. Then, you can refer to Serial Connection to install the necessary serial connection software in Linux/Windows.

  2. Network connection
    The prebuilt image has a preset network configuration with a static IP 10.0.0.1. Connect your PC to the board with a 1GbE RJ45 patch cord and set the static IP of your PC interface to 10.0.0.2.

  3. Optional: Camera connection
    To evaluate the demo application, connect the MIPI-CSI camera to the Hailo 15 SOM MIPI-CSI interface before starting the boot.

  4. Power the board
    Plug in a power supply, and the board will start booting. You will see the boot log in the serial terminal:

Poky (Yocto Project Reference Distro) 4.0.2 hailo15 ttyS1

hailo15 login:

Use the following default credentials:

  • Login: root

  • Password: root

Running the demo applications

Using GStreamer

Gstreamer is a CLI application that allows you to send, receive, and convert video streams.

  1. Install gstreamer

For Ubuntu/Debian distros:

sudo apt install gstreamer1.0-plugins-ugly gstreamer1.0-plugins-bad gstreamer1.0-libav

For Fedora/RHEL distros:

sudo dnf install gstreamer1 gstreamer1-plugins-base gstreamer1-plugins-good gstreamer1-plugins-bad-free gstreamer1-plugins-bad-free-gtk

For Windows:

  • Download the Installer: Go to the GStreamer official website and download the appropriate installer for your Windows version.

  • Run the Installer: Execute the downloaded file. During installation, select "Complete Installation" to install all basic plugins.

  • Set Environment Variables: To use GStreamer from the command line, add GStreamer to your system's PATH as described here.

For Windows, you might need to configure the Firewall to allow the stream. Make sure that 10.0.0.2 is a private network.

  1. Run the gstreamer pipeline to start receiving a stream.

In a bash terminal or Windows cmd run:

gst-launch-1.0 -v udpsrc port=5000 address=0.0.0.0 ! application/x-rtp,encoding-name=H264 ! queue ! rtph264depay ! queue ! h264parse ! avdec_h264 ! queue ! videoconvert ! fpsdisplaysink video-sink=autovideosink text-overlay=false sync=false
  1. Run the demo application on the target:

root@hailo15:~# ./apps/detection/detection.sh

Using VLC

Another option is to receive a stream using VLC media player.\

  1. Install VLC

    For Ubuntu/Debian distros:

    sudo apt install vlc

    For Fedora/RHEL distros:

    sudo dnf install vlc

    For Windows:

  • Download the Installer: Go to the VLC official website and download the appropriate installer for your Windows version.

  • Run the Installer: Execute the downloaded file. During installation, select "Complete Installation" to install all basic plugins.

For Windows, you might need to configure the Firewall to allow the stream. Make sure that 10.0.0.2 is a private network.

  1. Create a stream configuration file stream.sdp with the following content:

 stream.sdp

v=0
o=- 0 0 IN IP4 127.0.0.1
s=No Name
c=IN IP4 10.0.0.2
t=0 0
a=tool:libavformat 58.20.100
m=video 5000 RTP/AVP 96
a=rtpmap:96 H264/90000

  1. Open the stream.sdp in the vlc using the Media -> Open File tab.

  2. Run the demo application on the target:

root@hailo15:~# ./apps/detection/detection.sh

Note: VLC inserts its own 1s latency into the stream during the network cashing. You can decrease this latency in the settings.

  • Go to Tools > Preferences.

  • Show settings: select All at the bottom left to switch to the advanced preferences.

  • Under Input / Codecs, find Network.

  • Locate Network caching (ms) and reduce its value. The default is typically around 1000 ms (1 second). You might try lowering it to 100-300 ms, but be aware that too low a value can lead to stream instability or increased packet loss.

Flashing an eMMC

By default, when Linux is booted from eMMC, the eMMC root partition is mounted, which makes it difficult to reflash. The u-boot menu has special entries that allow you to reflash eMMC from the TFTP server on your computer.

  1. Install TFTP as described here.

  2. Reset the board. In the u-boot menu, select Update eMMC (wic) from TFTP

  3. The Board will grub a new image from the TFTP server and flash it to the eMMC.

Flashing QSPI flash

Reflashing QSPI is only possible under Linux.

  1. Download the flashing tool and install it into your system.

python3 -m pip install hailo15_board_tools-1.2.1-py3-none-any.whl
  1. Set the S3 switch to the Serial download mode:

1

2

3

4

5

6

off

on

off

off

off

off

  1. Close the serial terminal on your PC.

  2. Reset the board.

  3. Upload the uart flashing firmware into the SOM:

uart_boot_fw_loader --serial-device-name /dev/ttyUSB0 --firmware hailo15_uart_recovery_fw.bin 
  1. Reflash QSPI content:

hailo15_spi_flash_program --serial-device-name /dev/ttyUSB0 --uart-load --scu-bootloader ./hailo15_scu_bl.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

Note: hailo15_spi_flash_program also allows to reflash selected parts of the QSPI Flash:

  • hailo15_spi_flash_program --serial-device-name /dev/ttyUSB0 --uart-load --bootloader ./u-boot-spl.bin --bootloader-env ./u-boot-initial-env--scu-bootloader ./hailo15_scu_bl.bin

  • hailo15_spi_flash_program --serial-device-name /dev/ttyUSB0 --uart-load --uboot-device-tree ./u-boot.dtb.signed

  • etc.

This guide assumes that your serial terminal is /dev/ttyUSB0. Replace it with the propper device for your system.

Restoring corrupted eMMC u-boot image.

If the eMMC content is blank, the SPL bootloader will fall back to the UART Y-Modem mode. This will allow the user to send a new u-boot-tfa.itb file over the serial connection and then restore the eMMC content with tftp. If you see this in the boot log, the board expects u-boot over the uart. You can skip the reflashing u-boot env part.

U-Boot SPL 2022.01 (Feb 04 2024 - 18:42:25 +0000)
Loading Environment from SPIFlash... OK
U-Boot SPL boot source uart
CCCCCCCCCC

However, if the u-boot-tfa.itb was corrupted, the board will load a corrupted file and get stuck booting. To force SPL to the UART upload mode, the u-boot env has to be reflashed.

Modifying u-boot env to force uart boot mode

  1. Modify the u-boot env to set uart boot mode for the SPL:

cp u-boot-initial-env u-boot-initial-env-uart

Find the line spl_boot_source=mmc2 and replace it with spl_boot_source=mmc2 in the file u-boot-initial-env-uart.

  1. Set the S3 switch to the Serial download mode:

1

2

3

4

5

6

off

on

off

off

off

off

  1. Close the serial terminal on your PC.

  2. Reset the board.

  3. Upload the uart flashing firmware into the SOM:

uart_boot_fw_loader --serial-device-name --uart-load /dev/ttyUSB0 --firmware hailo15_uart_recovery_fw.bin 
  1. Reflash u-boot environment:

hailo15_spi_flash_program --serial-device-name /dev/ttyUSB0 --bootloader-env ./u-boot-initial-env-uart
  1. Set the S3 switch back to the normal boot:

1

2

3

4

5

6

off

off

off

off

off

off

  1. Open the serial connection and reset the boot. The board will boot to the SPL and expect the u-boot image to be transferred over the serial.

Uploading u-boot over uart

The SPL waits for the Y-modem transfer to upload the u-boot into the RAM. The latest minicom already has a built-in Y-modem transfer function. With minicom, press Ctrl+A, then S, select ymodem, and then select file u-boot-tfa.itb. Note: the transfer can take a few minutes. As soon as the u-boot is completely transferred, you will see the same u-boot entries, and you can restore eMMC content with tftp.

Restoring u-boot env

If you previously modified a u-boot env to force a serial mode, you need to restore it.

  1. Set the S3 switch to the Serial download mode:

1

2

3

4

5

6

off

on

off

off

off

off

  1. Close the serial terminal on your PC.

  2. Reset the board.

  3. Upload the uart flashing firmware into the SOM:

uart_boot_fw_loader --serial-device-name --uart-load /dev/ttyUSB0 --firmware hailo15_uart_recovery_fw.bin 
  1. Reflash u-boot environment:

hailo15_spi_flash_program --serial-device-name /dev/ttyUSB0 --bootloader-env ./u-boot-initial-env
  1. Set the S3 switch back to the normal boot:

1

2

3

4

5

6

off

off

off

off

off

off

  1. Open the serial connection and reset the boot. The board will boot to the SPL and expect the u-boot image to be transferred over the serial.

List Of Supported OS

  • No labels