Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.


The following quick start guide provides background information about the HummingBoard Pro.

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.

Revision and Notes







Initial release

Table of Contents

Table of Contents

Hardware Setup

Product specifications


HummingBoard Pro

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


2 x Ethernet RJ45 10/100/1000
1 x 802.11 a/b/g/n/ac WiFi and Bluetooth (2.4/5 GHz)


2 x USB 3.0
Mini PCIe
SIM card slot


HDMI 2.0 out
Digital audio (Riser interface FPC connector)

Onboard audio codec


1 x Reset button
1 x Configurable push button
MikroBus click interface
3 x LED indicators

OS Support



Commercial: 0°C to 70°C
Industrial: -40°C to 85°C


PCBA: 100 x 70mm
Enclosure : 120 x 80 x 30mm


7V – 28V wide range
PoE sink support 802.3af Class 0


Optional extruded aluminum (IP32) enclosure

Ui button
titleBuy Now


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 .

Block Diagram

The following figure describes the i.MX8M Pro Block Diagram.

image-20240121-170207.pngImage RemovedHummingBoard Pro - i.MX8M Plus Block Diagram (1).pngImage Added

Visual features overview

Please see below the features overview of the connector side of the HummingBoard Pro.

hb-pro-imx8mp.pngImage RemovedHummingBoard Pro - i.MX8M Plus layout.pngImage Added

Print side connector overview of the HummingBoard Pro.

Software Setup

Cable setup and prerequisites

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

  • Linux or Windows PC

  • HummingBoard Pulse with SOM

  • 12V Power adapter (HummingBoard Pulse has wide range input of 7V-28V), alternatively you can use a PoE injector to power on the device.

  • Micro USB to USB for console, the HummingBoard Pulse has an onboard FTDI chip.

  • IP router or IP switch

Boot Select

Before powering up the board for the first time it is recommended to select the boot media. In order to configure the boot media, please refer to HummingBoard Pulse and Ripple Boot Select .

Booting from SD card

Boot Select

Before powering up the board for the first time, it is recommended to select the boot media. To configure the boot media, please refer to HummingBoard Pulse and Ripple Boot Select.

Here is the correct DIP switch position for SD boot:



Note: The black rectangle represents the switch position.

Once you set the switches, you can apply the following for booting from an SD card.

1. Downloading the Debian image

Download the Debian image by running the following command on your Linux/Windows PC:

Code Block

2. Writing the image to the SD card

Use the following commands for writing the image to an SD card:

Code Block
xz -dc imx8mp-sdhc-debian-ff28bac.img.xz | sudo dd of=/dev/sdX bs=4k conv=fdatasync status=progress

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 “debian” as a username and password as follows:

More Features


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:

Code Block
apt-get update 
apt-get upgrade 

An example for connecting to WiFi using wpa_supplicant:

1. To bring a WiFi interface up, run the following :

Code Block
ifconfig wlan0 up 

To discover your wireless network interface name, see Network Interfaces.

2. Install the wpa_supplicant package:

Code Block
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:

Code Block
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


4. Create a configuration file with the relevant ssid:

Code Block
cat <<EOF > /etc/wpa_supplicant/wpa_supplicant.conf



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.


1. For showing all Bluetooth devices, run the following:

Code Block
apt-get install bluez
hciconfig -a

2. Choose a device, and turn it on:

Code Block
 hciconfig hci0 up

3. Set up the Bluetooth name:

Code Block
hciconfig hci0 name 'SolidRun_Ble'

4. Make your Bluetooth detectable by other devices:

Code Block
hciconfig hci0 piscan

5. If you want to connect to other devices:

  • Start by scanning for other Bluetooth devices:

Code Block
hcitool scan
  • Choose a MAC address and connect :

Code Block
rfcomm connect 0  $MAC 10 & 
  • You can check the communication between the devices by writing :

Code Block
l2ping -c 4  $MAC

GPIO Pins Control

In order to be able to control the GPIO pins, please refer to GPIO Pins Control - HummingBoard Pulse/Mate & i.MX8M Plus SOM

Please Note

  • mPCIe interface doesn't support PCIe interface - it supports USB 3.0 only.

  • M.2 interface supports PCIe and USB 3.0 interfaces

Cellular Modem

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 testing you serial peripheral interface - SPI, please see this documentation SPI from Linux with spidev.


First, you need to check that the required device is the default one by run:

Code Block
$ aplay -L

If the sysdefault:CARD doesn’t set to wm8904 like this example

Then you can play sound with choosing the device who set to wm8904 and generate audio, in the above situation the device is hw:CARD=wm8904audio so the test will work as this:

Code Block
$ speaker-test -D hw:CARD=wm8904audio -t sine -c 2 -f 1000 -l 5
  • NOTE: the “ -c “ flag used to set the number of the channels that you have in your audio output device, in my example I have 2 channels.

If the sysdefault:CARD=wm8904 you can test with this command:

Code Block
$ speaker-test -t sine -f 1000 -l 5  

GUI On Debian

There is an option with the Debian image, up to the user, to work with a GUI like Weston, GNOME and etc.
For applying this option do the following steps:

First, connect your device to a screen using the working output (HDMI / uHDMI).

For working with Weston GUI:

  1. Install the Weston package.

    Code Block
    $ sudo apt install weston
  2. Make a directory for the output of the Weston GUI.

    Code Block
    $ mkdir /your/directory/location
  3. Give permissions to this directory.

    Code Block
     $ chmod 0700 /your/directory/location
  4. Set the XDG_RUNTIME_DIR env param to your directory.

    Code Block
    $ export XDG_RUNTIME_DIR=/your/directory/location
  5. Run Weston.

    Code Block
    $ weston


For working with GNOME GUI on top of Xorg:

  1. Install Xorg.

    Code Block
    $ sudo apt install xorg
  2. Install your desired gnome.

    Code Block
    $ sudo apt install gnome-session

    NOTE: ‘gnome-session’ is an example of gnome that we can work with, you can replace the ‘session' with another GNOME extention.

  3. Start your GNOME GUI.

    Code Block
    $ sudo systemctl start gdm
    • For logging in you need a user on your device to log into it. You can create one before step 3 by this command (replace the ‘username’ with name that you want) :

    Code Block
    $ sudo adduser username
    • You can jump between GUIs that you install (like gnome-session) by the setting button that locates in the down right corner of the home screen.

Basler Camera

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.

List Of Supported OS

Build from source



Ui button
titleBuy a Sample Now

Filter by label (Content by label)
cqllabel in ( "hummingboard-imx8" , "hummingboard-pulse" , "serial-connection" , "flash-sd-card" )