SolidRun HummingBoard IIOT i.MX8M SBC

HummingBoard IIoT board

The HummingBoard i.MX8M IIOT SBC supports multiple industrial protocols, including RS232, RS485, CAN-FD, and 1Gb Ethernet, with flexible power options including a wide power range and PoE.

Here are several Hummingboard IIOT official documentation from SolidRun:

  • Product page here
  • Quick Start guide here
  • Product brief here
  • Block diagram here

Available features

Feature HW Interface SW Interface
Serial USB-C "Console" ttymxc1
Ethernet ETH1/PoE
ETH2
end0
end1
Bluetooth hci0
Wi-Fi wlan0
CAN CAN1 (Industrial I/O)
High:4 Low:2 GND:6

CAN2 (Industrial I/O)
High:1 Low:3 GND:5
can1


can0

Redpesk Image for Hummingboard IIOT

Download images

See Download Images section.

Download the redpesk OS image from command line

Create a directory to download the image:

mkdir ~/redpeskimage
cd ~/redpeskimage

Then download the latest redpesk OS image with this command:

wget -r -nd -nc --no-parent --accept-regex='redpesk.*smack.*\.(bmap|xz|sha256)' --reject-regex '(image\.raw|ova|index)' 'https://download.redpesk.bzh/redpesk-lts/corn-3.0-update/images/smack/minimal/aarch64/solidrun-hummingboard-iiot/'

Control the image integrity

Before doing anything, please control the integrity of the downloaded redpesk image. Example:

sha256sum -c redpesk*.tar.xz.sha256
redpesk*aarch64*.tar.xz: OK

Copying the image on your SD card

Plug your SD card and find it (be sure it is unmounted)

Copy the correct device path using the command below. It should be a hotplug device.

lsblk -dli -o PATH,VENDOR,TYPE,HOTPLUG,MODEL
DEVICE_TO_COPY='/dev/<hotplug_device>' #in the example it is /dev/sdc

Example:

$ lsblk -dli -o PATH,VENDOR,TYPE,HOTPLUG,MODEL
PATH         VENDOR   TYPE HOTPLUG MODEL
/dev/sda     ATA      disk       0 WDC_WD10SPZX-08Z10
/dev/sdc     TS-RDF5  disk       1 SD_Transcend #MYSDCARD
/dev/nvme0n1          disk       0 LITEON T11 512
DEVICE_TO_COPY=/dev/sdc

Or if only one device is hotpluggable on your computer:

# need jq
DEVICE_TO_COPY=$(lsblk -dlJ -o PATH,VENDOR,TYPE,HOTPLUG,MODEL | jq -r '.blockdevices[] | select(.hotplug == true).path')
echo $DEVICE_TO_COPY

Umount if needed

lsblk $DEVICE_TO_COPY
# need to umount each partition
sudo umount <part*>

Example:

$ lsblk /dev/sdc
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sdc      8:32   1 14.6G  0 disk
├─sdc1   8:33   1  501M  0 part /run/media/iotbzh/0409-3A02
├─sdc2   8:34   1    1G  0 part /run/media/iotbzh/cd3c87ec-1011-4832-aef3-6be0ed3d3748
└─sdc3   8:35   1  2.5G  0 part /run/media/iotbzh/4e508264-8ce2-447f-a829-e4c31ea20047
$ sudo umount /run/media/iotbzh/*

Flash the SD card

Prerequisites: device is plugged in, found, unmounted

  • First, extract the image
    tar xJf redpesk*.tar.xz
    
  • Then, flash it using dd (safer)
    sudo dd if="Redpesk-OS.img" of=$DEVICE_TO_COPY bs=4M status=progress
    
  • Or using bmaptool (faster)
    bmaptool copy "Redpesk-OS.img" $DEVICE_TO_COPY
    

TIPS: Once your are used to flash your image, you could do it much faster in one single step using bmaptool like this:

bmaptool copy "https://download.redpesk.bzh/redpesk-lts/corn-3.0-update/images/smack/minimal/aarch64/solidrun-hummingboard-iiot/image.raw.tar.xz" $DEVICE_TO_COPY

This will download, control integrity and flash the latest redpesk OS image on your device.

Hummingboard IIOT hardware

Here are available I/Os on the Hummingboard IIOT board.

HummingBoard IIoT board top HummingBoard IIoT board back

Industrial I/Os are available through a single connector (J5004) on the front of the board, here is it’s pinout:

HummingBoard IIoT board industrial i/o connector pinout

DIP switch - Select boot mode

Integrated into the PCB, a DIP switch is present to allow you to choose between different boot mode.

For the SolidRun Hummingboard IIOT, here is the following configuration:

Boot mode (S3) Switch 1 (MD0) Switch 2 (MD1) Switch 3 (MD2) Switch 4 (MD3) Switch 5 (VDD_1.8V) Switch 6 (VDD_3.3V)
SD card ON ON OFF OFF ON OFF
eMMC card OFF ON OFF OFF ON OFF
USB OTG ON OFF OFF OFF ON OFF
Internal Fuses OFF OFF OFF OFF ON OFF

SD card boot select:

HummingBoard IIoT board SD card boot select

NOTE:
MDx = BOOT_MODEx, VDD_BOOT = 1.8V or 3.3V (Select S5[5] or S5[6]) . Note that MD1 and MD0 have been swapped between PCB version 1.1 and PCB version 1.0.

More information on boot select can be found in this documentation.

First boot

  • Connect a USB Type-C cable to the “console” connector and the other end to your computer.
  • Plug the SD Card into the SD card slot of the board.
  • Power on the board using 7V to 28V power supply or a PoE injector.

  • Access the console using picocom

     sudo picocom -b 115200 /dev/ttyUSB0
    

NOTE: Default root password is root.

  • Connect to your board to your network and access it

    Connect the board to your network using an Ethernet cable or via Wi-Fi using the following commands:

     > nmcli device wifi list
     IN-USE  BSSID              SSID            MODE   CHAN  RATE        SIGNAL  BARS  SECURITY  
             60:35:C0:...       SSID            Infra  36    405 Mbit/s  92      ▂▄▆█  WPA1 WPA2
    
     > nmcli device wifi connect SSID --ask
     Passwords or encryption keys are required to access the wireless network 'SSID'.
     Password (802-11-wireless-security.psk): •••••••••••
     Device 'wlan0' successfully activated with '...'.
    

    Get the board IP:

     > ip a
     ...
     6: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
      link/ether a0:cd:f3:37:f7:09 brd ff:ff:ff:ff:ff:ff
      altname wlxa0cdf337f709
      inet 192.168.10.105/24 metric 1024 brd 192.168.10.255 scope global dynamic noprefixroute wlan0
         valid_lft 43196sec preferred_lft 43196sec
    

    Access the board using SSH:

     # on your computer
     ssh root@<board_ip>