The following quick start guide provides background information about the HummingBoard Mate.
The guide will give a technical overview about the product and by the end of it you should be able to boot an operating system and begin testing your application.
Date | Owner | Revision | Notes |
---|---|---|---|
| Yazan Shhady | 1.0 | Initial release |
| Yazan Shhady | 1.1 | Add instructions for programming the eMMC. |
Table of Contents |
Model | HummingBoard Mate |
SOM Model | NXP i.MX8M Plus Dual / Quad core Arm Cortex A53 up to 1.8GHz (with Arm M7 GPP) |
Memory & Storage | Up to 4GB LPDDR4 |
eMMC | |
MicroSD | |
Network | 1 x RJ45 |
Connectivity | 2 x USB 3.0 |
Mini PCIe | |
SIM card slot | |
Media | HDMI 2.0 |
I/O | 1 x Reset button |
1 x Configurable push button | |
MikroBus click interface | |
3 x LED indicators | |
RTC | |
OS Support | Linux |
Environment | Commercial: |
Industrial: | |
Humidity (non-condensing): 10% – 90% | |
Dimensions | Board: 100mm x 70mm |
Enclosed: 142 x 80 x 30mm | |
Power | 7V – 28V wide range |
Supported with i.MX8M-PLUS SOM. For more detailed information about our SOM-i.MX8M series please visit this user manual : i.MX8M Plus SOM Hardware User Manual. |
The following figure describes the i.MX8M Block Diagram.
Please see below the features overview of the connector side of the HummingBoard Mate.
Print side connector overview of the HummingBoard Mate.
Here is what you will need to power up and use the board:
Linux or Windows PC
HummingBoard Mate with SOM
12V Power adapter (HummingBoard Mate has wide range input of 7V-28V).
Micro USB to USB for console, the HummingBoard Mate has an onboard FTDI chip.
IP router or IP switch
Before powering up the board for the first time it is recommended to select the boot media. On first use microSD is recommended source, configure dip switch S3 as follows:
Function/Switch | 1 | 2 | 3 | 4 | 5 | 6 |
---|---|---|---|---|---|---|
microSD | ON | ON | X | X | X | X |
“X” means don’t care, leave as is.
For additional options, please refer to i.MX8M Series HummingBoard Boot Select page.
The following shows how to set the switches on the boot source selector:
Please Note: The black rectangle represents the switch position. |
Once you set the switches, you can apply the following for booting from SD card:
1. Downloading the Debian image
Download the Debian image by running the following command on your Linux/Windows PC:
wget https://solid-run-images.sos-de-fra-1.exo.io/IMX8/imx8mp_build/lf-6.6.52-2.2.0/2025-07-02_cffbac8/debian-bootimg-cffbac8.img.xz |
For more Debian releases, please visit Debian Release for i.MX8.
2. Writing the image to the SD card
Use the following commands for writing the image to an SD card:
xz -dc debian-bootimg-cffbac8.img.xz | dd of=/dev/sdX bs=4k conv=fdatasync |
For more information, please visit Flashing an SD Card .
Note: Plug a micro SD into your Linux PC, the following assumes that the micro SD is added as /dev/sdX and all it’s partitions are unmounted.
Note: Plug a micro SD into your Linux PC, the following assumes that the micro SD is added as /dev/sdX and all it’s partitions are unmounted.
3. SD card insertion
Please Insert the SD card into your device.
4. Power connection
Connect your power adaptor to the DC jack, and then connect the adaptor to mains supply.
5. Serial Connection
Please insert the micro USB into your device, then you can refer to Serial Connection for installing necessary serial connection software in Linux/Windows.
Once you installed the necessary serial connection software, you should be able to see the following:
In order to be able to log in , please insert “root” as a username and password as follows:
Boot Linux from uSD and follow the Instructions bellow to Program the eMMC
Programming the Bootloader on eMMC Boot Partition:
# Download the bootloader binary (u-boot-mmc:2:1.bin) from https://images.solid-run.com/IMX8/imx8mp_build: wget http://solid-run-images.sos-de-fra-1.exo.io/IMX8/imx8mp_build/build_date_20241210-rev_ddc90d8/u-boot-mmc:2:1-ddc90d8.bin # Disable write protection: echo 0 > /sys/class/block/mmcblk2boot0/force_ro # Write the bootloader to the boot partition: dd if=u-boot-mmc:2:1-ddc90d8.bin of=/dev/mmcblk2boot0 conv=sync # Re-enable write protection: echo 1 > /sys/class/block/mmcblk2boot0/force_ro # Enable the eMMC boot partition: mmc bootpart enable 1 1 /dev/mmcblk2 |
Programming the Debian Image on the eMMC Main Partition:
# Download the Debian Image from https://images.solid-run.com/IMX8/imx8mp_build: wget http://solid-run-images.sos-de-fra-1.exo.io/IMX8/imx8mp_build/build_date_20241210-rev_ddc90d8/imx8mp-sdhc-debian-ddc90d8.img.xz # Write the Yocto image to the eMMC main partition: xz -dc imx8mp-sdhc-debian-ddc90d8.img.xz | dd of=/dev/mmcblk2 bs=4k conv=fdatasync |
Set the boot select to boot from eMMC as documented here and do reset to boot from eMMC.
The following stages need to be done in order to finalise the imaging:
Run fdisk /dev/mmcblk1
if using SD and fdisk /dev/mmcblk2
if using eMMC.
Recreate the rootfs partition (mostly the second partition) by deleting it and then creating a new partition that starts at the next sector after the first one and extends to the end of the drive (or less depending on your needs).
Write the new partition, when prompt about ‘Do you want to remove the signature?’ then answer with Yes.
Run resize2fs /dev/mmcblk1p2
if using SD Card and resize2fs /dev/mmcblk2p2
if using eMMC.
In this stage the root partition should be big enough to start populating it; but first update the RTC clock.
Connect the RJ45 to your network with internet access (and DHCP server); and then run dhclient
.
Update the RTC clock by running ntpdate pool.ntp.org
and then hwclock -w
.
Run apt-update commands below and then populate the root filesystem as you wish.
apt-get update && apt-get upgrade -y |
Here is an example of the same process in the HB-IIOT device until step 4 (include):
In the end you should see with “lsblk” that the partition size is in the required size.
Connect an Ethernet cable to your HummingBoard Pulse (for internet access during boot-up).
Models HummingBoard with WiFi, can be connected via WiFi or wired Ethernet.
Please check you Ethernet connection.
Use the following commands in order to keep your system up-to-date:
apt-get update apt-get upgrade reboot |
For more detailed information, please refer to i.MX8M Debian .
You can connect to WiFi using any application, such as : connmanctl or wpa_spplicant.
An example for connecting to WiFi using wpa_supplicant:
1. To bring a WiFi interface up, run the following :
ifconfig wlan0 up |
To discover your wireless network interface name, see Network Interfaces.
To discover your wireless network interface name, see Network Interfaces.
2. Install the wpa_supplicant package:
apt-get install wpasupplicant |
3. Edit network interfaces file :
At the bottom of the file, add the following lines to allow wlan as a network connection:
cat <<EOF > /etc/network/interfaces.d/wlan0 allow-hotplug wlan0 iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf iface default inet dhcp EOF |
4. Create a configuration file with the relevant ssid:
cat <<EOF > /etc/wpa_supplicant/wpa_supplicant.conf ctrl_interface=/run/wpa_supplicant update_config=1 network={ ssid="MYSSID" psk="passphrase" } EOF |
Check your personal ssids by running : ‘iw dev wlan0 scan’
Check your personal ssids by running : ‘iw dev wlan0 scan’
5. Make sure it works:
Restart your device and it should connect to the wireless network. If it doesn't, repeat above steps or get help from an adult.
For more information about using wpa_supplicant , you can refer to wpa_supplicant or wpa_supplicant.
1. For showing all Bluetooth devices, run the following:
apt-get install bluez hciconfig -a |
2. Choose a device, and turn it on:
hciconfig hci0 up |
3. Set up the Bluetooth name:
hciconfig hci0 name 'SolidRun_Ble' |
4. Make your Bluetooth detectable by other devices:
hciconfig hci0 piscan |
5. If you want to connect to other devices:
Start by scanning for other Bluetooth devices:
hcitool scan |
Choose a MAC address and connect :
rfcomm connect 0 $MAC 10 & |
You can check the communication between the devices by writing :
l2ping -c 4 $MAC |
In order to be able to control the GPIO pins, please refer to GPIO Pins Control - HummingBoard Pulse/Mate & i.MX8M Plus SOM
The cellular modem is a more fully featured extension of which contains a cellular module with additional hardware interfaces and a SIM card slot.
You can connect your cellular modem to the mPCIe, and insert a SIM card.
For some cellular modules to be connected, please refer to Cellular Modules .
To activate the mini-pcie connector you should run the commands bellow (Enable the modem Power & do Rest):
# enable power supply for M.2 and PCIe: "M2_3V3" echo 10 > /sys/class/gpio/export echo out > /sys/class/gpio/gpio10/direction echo 1 > /sys/class/gpio/gpio10/value # pcie reset: "Mini-PCIe_PREST" echo 1 > /sys/class/gpio/export echo out > /sys/class/gpio/gpio1/direction echo 1 > /sys/class/gpio/gpio1/value |
Please Note
mPCIe interface doesn't support PCIe interface - it supports USB 3.0 only.
Please Note
mPCIe interface doesn't support PCIe interface - it supports USB 3.0 only.
The cellular modem is a more fully featured extension of which contains a cellular module with additional hardware interfaces and a SIM card slot.
You can connect your cellular modem to the mPCIe, and insert a SIM card.
For some cellular modules to be connected, please refer to Cellular Modules .
To activate the M.2 connector you should run the commands bellow (Enable the modem Power & do Rest):
# enable power supply for M.2 and PCIe: "M2_3V3" echo 10 > /sys/class/gpio/export echo out > /sys/class/gpio/gpio10/direction echo 1 > /sys/class/gpio/gpio10/value # M.2 reset: "M.2_PREST" echo 6 > /sys/class/gpio/export echo out > /sys/class/gpio/gpio6/direction echo 1 > /sys/class/gpio/gpio6/value # M.2 GPS Enable: "M.2_GPS_EN" echo 7 > /sys/class/gpio/export echo out > /sys/class/gpio/gpio7/direction echo 1 > /sys/class/gpio/gpio7/value |
For testing you serial peripheral interface - SPI, please see this documentation SPI from Linux with spidev.
For getting started with the Camera Module on your board, please see this documentation Basler Camera Quick Start Guide.
Starting from April 01. 2022, the EEPROMs on Carriers, i.MX8M Plus SoMs are being programmed with identifying information such as the product name and SKUs to allow for programmatic identification of hardware. Check our iMXMP EEPROM documentation for additional information.
There are two options for storing MAC addresses on the i.MX8MP platform:
Store the MAC address in OTP eFuses
This is a non-reversible action, as the eFuse is permanently programmed.
Store the MAC address in EEPROM using TLV format (Recommended)
This method allows flexibility and is the preferred approach.
Guidelines for Programming a MAC Address in TLV Format
Default Configuration
By default, the MAC address is stored in the SOM's TLV EEPROM.
All SOMs are pre-flashed with SolidRun's default MAC address range in the TLV EEPROM.
Custom MAC Address Option
There is an option to provide a custom MAC address range.
SolidRun can program the custom MAC addresses into the TLV EEPROM upon request.
OS | |
---|---|
![]() | |
![]() | |
![]() |