Getting Started

Welcome to the Quick Start Guide (QSG) for Ezurio’s Nitrogen93 SMARC Development Board. This guide will walk you through the initial setup process and introduce you to the key hardware and software components of the kit. It’s designed to help you quickly get up and running, understand what’s included, and start exploring the platform. If you encounter any issues or have questions, please visit https://www.ezurio.com/supportπŸ”— or contact us at support@ezurio.com. As always, let us know your experience with the DVK. Your feedback is important to us!

Ezurio SMARC Evaluation Kit

Product Brief: https://www.ezurio.com/documentation/product-brief-nitrogen93-smarc-evaluation-kitπŸ”—,

Ordering Information: https://www.ezurio.com/part/ezsmi-935-0216-00158-2-k2πŸ”—.

For the Impatient

  1. U-Boot: https://www.ezurio.com/resources/software-announcements/u-boot-v2022-04-for-i-mx-platformsπŸ”—,

  2. Yocto (Scarthgap): https://lairdcp.github.io/guides/yocto-scarthgap-release-for-imx-platforms/1.0/Yocto-Scarthgap-Release-for-i.MX-Platforms.htmlπŸ”—,

  3. Programming Instructions: https://www.ezurio.com/resources/software-announcements/programming-emmc-on-i-mx-platformsπŸ”—,

  4. Recovery Instructions: https://www.ezurio.com/resources/software-announcements/recovering-i-mx-platforms-using-uuuπŸ”—,

  5. FreeRTOS: https://lairdcp.github.io/guides/freertos-sdk-2-16-nitrogen/1.0/FreeRTOS_SDK_v2.16_Release_for_Nitrogen_Platforms.htmlπŸ”—,

  6. Docker Container: https://www.ezurio.com/resources/software-announcements/using-docker-containers-for-reproducible-yocto-buildsπŸ”—,

  7. Schematics of the Universal SMARC Carrier Board: https://www.ezurio.com/documentation/schematic-smarc-carrier-board-rev20πŸ”—,

  8. Display Specification of the BD070LIC3 – 7” Touchscreen Display: https://www.ezurio.com/documentation/display-specification-bd070lic3πŸ”—,

  9. Wiki: https://bdwiki.ezurio.com/index.php/Nitrogen93_SMARCπŸ”—,

  10. GitHub (SOM) Documentation: https://lairdcp.github.io/somsπŸ”—.

(Most) Important Git Repository and its Sources

Datasheets, Product Pages & DOCs

Product Datasheet Product Page Documentation
Nitrogen93 SMARC Module LinkπŸ”— LinkπŸ”— LinkπŸ”—
Universal SMARC Carrier Board LinkπŸ”— LinkπŸ”— LinkπŸ”—
Sona NX611 Wi-Fi 6 + BLE 5.4 Module LinkπŸ”— LinkπŸ”— LinkπŸ”—
2.4/5/6 GHz FlexPIFA Antenna LinkπŸ”— LinkπŸ”— LinkπŸ”—

In the Box (Unboxing)

The Nitrogen93 SMARC Development Kit combines and includes the following components:

  • 1Γ— Nitrogen93 SMARC Module REV30 with 2β€―GB RAM and 16β€―GB eMMC
    (Sona NX611M variant, M.2 1216, with Wi-Fi 6 and Bluetooth 5.4 support).

  • 1Γ— Universal SMARC Carrier Board REV20

  • 1Γ— 5V/4A 100–240β€―VAC Switching Power Supply
    (FY0504000 model with power cord for your specific country).

  • 1Γ— Dual DB9 Serial Cable

  • 1Γ— 7” Touchscreen Display (BD070LIC3, MIPI version)

  • 1Γ— 2.4/5/6β€―GHz FlexPIFA Antenna (EFB2471A3S-10MH4L, 10 cm)

  • 1Γ— Enclosure with Desktop Stand

Note: An additional camera module will be added in the future, and a Nitrogen95-based version is expected to follow by the end of 2025 or the beginning of 2026. Stay tuned!

Board Assembly

The Nitrogen93 SMARC module, featuring on-board Wi-Fi 6 and Bluetooth 5.4, comes fully assembled with the Universal SMARC Carrier Board, 7” touchscreen display, enclosure, desktop stand, and all required screws β€” ready for use right out of the box. The screen is connected to the motherboard through the MIPI-DSI interface (DSI0) and a matching 33-pin FPC/FFC ribbon cable.

Note: You can adjust the screen tilt vertically like a laptop to suit your setup, needs, and preferences. If wireless connectivity is required, be sure to carefully attach the antenna to U9 and the MHF4L connector on the PCB of the Sona NX611 module.

Bootloader and OS

The Nitrogen93 SMARC module comes with U-Boot v2024.04 and the Yocto Scarthgap releases already installed and preloaded on the eMMC β€” as of the time of writing. We’ve shared an example below that shows the U-Boot SPL, Proper, Environment Variables, and the Linux / Kernel startup log. It might be helpful if you want to check or compare it with what your board shows.

You can reprogram the eMMC by following the steps outlined in: https://www.ezurio.com/resources/software-announcements/programming-emmc-on-i-mx-platformsπŸ”—. Also, it is possible to leverage the balenaEtcherπŸ”— utility to flash the eMMC, an SD card, or a USB stick from either Windows or Linux.

U-Boot SPL:

U-Boot SPL 2024.04-77038-g972a45adb21 (Jun 05 2025 - 11:57:19 +0000)
SOC: 0xa1009300
LC: 0x2040010
PMIC: PCA9451A
PMIC: Over Drive Voltage Mode
DDR: 3200MTS    Size: 2 GiB
M33 prepare ok
Normal Boot
Trying to boot from BOOTROM
Boot Stage: Primary boot
image offset 0x0, pagesize 0x200, ivt offset 0x0
Load image from 0x48400 by ROM_API
NOTICE:  TRDC init done
NOTICE:  BL31: v2.10.0  (release):android-15.0.0_1.0.0-rc3-6-g6ba379723
NOTICE:  BL31: Built : 17:26:26, Jan 15 2025

U-Boot Proper:

U-Boot 2024.04-77038-g972a45adb21 (Jun 05 2025 - 11:57:19 +0000), Build: jenkins-Boundary-uboot_v2024.04-28

CPU:   NXP i.MX93(52) Rev1.1 A55 at 1700 MHz
CPU:   Industrial temperature grade  (-40C to 105C) at 43C

Model: Ezurio i.MX93 Nitrogen SMARC board
DRAM:  2 GiB
Core:  227 devices, 27 uclasses, devicetree: separate
MMC:   FSL_SDHC: 0, FSL_SDHC: 1, FSL_SDHC: 2
Loading Environment from MMC... OK
In:    serial
Out:   serial
Err:   serial

BuildInfo:
  - ELE firmware version 2.0.0-64d8ef47

Net:   eth0: ethernet@42890000, eth1: ethernet@428a0000 [PRIME]
Normal Boot
Hit any key to stop autoboot:  0
switch to partitions #0, OK
mmc0(part 0) is current device
Scanning mmc 0:1...
Found U-Boot script /boot.scr
5735 bytes read in 2 ms (2.7 MiB/s)
## Executing script at 83500000
Failed to load 'uEnv.txt'
49976 bytes read in 2 ms (23.8 MiB/s)
Working FDT set to 83000000
34959872 bytes read in 118 ms (282.5 MiB/s)
## Flattened Device Tree blob at 83000000
   Booting using the fdt blob at 0x83000000
Working FDT set to 83000000
   Using Device Tree in place at 0000000083000000, end 000000008301ffff
Working FDT set to 83000000

U-Boot Environment Variables:

=> printenv
arch=arm
baudrate=115200
board=nitrogen-smarc
board_name=imx93_nitrogen_smarc
boot_a_script=load ${devtype} ${devnum}:${distro_bootpart} ${scriptaddr} ${prefix}${script}; source ${scriptaddr}
boot_efi_binary=load ${devtype} ${devnum}:${distro_bootpart} ${kernel_addr_r} efi/boot/bootaa64.efi; if fdt addr -q ${fdt_addr_r}; then bootefi ${kernel_addr_r} ${fdt_addr_r};else bootefi ${kernel_addr_r} ${fdtcontroladdr};fi
boot_efi_bootmgr=if fdt addr -q ${fdt_addr_r}; then bootefi bootmgr ${fdt_addr_r};else bootefi bootmgr;fi
boot_extlinux=sysboot ${devtype} ${devnum}:${distro_bootpart} any ${scriptaddr} ${prefix}${boot_syslinux_conf}
boot_net_usb_start=usb start
boot_prefixes=/ /boot/
boot_script_dhcp=boot.scr.uimg
boot_scripts=boot.scr.uimg boot.scr
boot_syslinux_conf=extlinux/extlinux.conf
boot_targets=mmc0 mmc1 usb0
bootcmd=run distro_bootcmd;run bsp_bootcmd
bootcmd_mfg=run mfgtool_args;if iminfo ${initrd_addr}; then if test ${tee} = yes; then bootm ${tee_addr} ${initrd_addr} ${fdt_addr}; else booti ${loadaddr} ${initrd_addr} ${fdt_addr}; fi; else echo "Run fastboot ..."; fastboot auto; fi;
bootcmd_mmc0=devnum=0; run mmc_boot
bootcmd_mmc1=devnum=1; run mmc_boot
bootcmd_usb0=devnum=0; run usb_boot
bootdelay=2
console=ttyLP0
cpu=armv8
distro_bootcmd=for target in ${boot_targets}; do run bootcmd_${target}; done
efi_dtb_prefixes=/ /dtb/ /dtb/current/
emmc_dev=0
env_dev=0
env_part=1
eth1addr=00:19:b8:11:c7:61
ethact=ethernet@428a0000
ethaddr=00:19:b8:11:c7:60
ethprime=eth1
fastboot_raw_partition_bootloader=0x0 0x1ff0 mmcpart 1
fastboot_raw_partition_bootloader-env=0x1ff0 0x10 mmcpart 1
fdt_addr=0x83000000
fdt_file=imx93-nitrogen-smarc-nx611.dtb
fdt_high=0xffffffffffffffff
fdtcontroladdr=fdee3920
initrd_addr=0x83800000
initrd_high=0xffffffffffffffff
kboot=booti
load_efi_dtb=load ${devtype} ${devnum}:${distro_bootpart} ${fdt_addr_r} ${prefix}${efi_fdtfile}
loadaddr=0x80400000
mcore_bootargs=clk-imx93.mcore_booted
mcore_image=m33_fw.bin
mcore_loadaddr=0x201E0000
mcoreboot=load ${devtype} ${devnum}:1 ${loadaddr} ${mcore_image}; cp ${loadaddr} ${mcore_loadaddr} ${filesize}; dcache flush; bootaux 0x1FFE0000
mfgtool_args=setenv bootargs console=${console},${baudrate} rdinit=/linuxrc clk_ignore_unused
mmc_boot=if mmc dev ${devnum}; then devtype=mmc; run scan_dev_for_boot_part; fi
netargs=setenv bootargs console=${console},115200 root=/dev/nfs rw ip=dhcp nfsroot=${tftpserverip}:${nfsroot},v3,tcp
netboot=echo Booting from net ...; run netargs;  if test ${ip_dyn} = yes; then setenv get_cmd dhcp; else setenv get_cmd tftp; fi; ${get_cmd} ${loadaddr} ${tftpserverip}:Image; if ${get_cmd} ${fdt_addr} ${tftpserverip}:${fdt_file}; then booti ${loadaddr} - ${fdt_addr}; else echo WARN: Cannot load the DT; fi;
scan_dev_for_boot=echo Scanning ${devtype} ${devnum}:${distro_bootpart}...; for prefix in ${boot_prefixes}; do run scan_dev_for_extlinux; run scan_dev_for_scripts; done;run scan_dev_for_efi;
scan_dev_for_boot_part=part list ${devtype} ${devnum} -bootable devplist; env exists devplist || setenv devplist 1; for distro_bootpart in ${devplist}; do if fstype ${devtype} ${devnum}:${distro_bootpart} bootfstype; then part uuid ${devtype} ${devnum}:${distro_bootpart} distro_bootpart_uuid ; run scan_dev_for_boot; fi; done; setenv devplist
scan_dev_for_efi=setenv efi_fdtfile ${fdtfile}; for prefix in ${efi_dtb_prefixes}; do if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${efi_fdtfile}; then run load_efi_dtb; fi;done;run boot_efi_bootmgr;if test -e ${devtype} ${devnum}:${distro_bootpart} efi/boot/bootaa64.efi; then echo Found EFI removable media binary efi/boot/bootaa64.efi; run boot_efi_binary; echo EFI LOAD FAILED: continuing...; fi; setenv efi_fdtfile
scan_dev_for_extlinux=if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${boot_syslinux_conf}; then echo Found ${prefix}${boot_syslinux_conf}; run boot_extlinux; echo EXTLINUX FAILED: continuing...; fi
scan_dev_for_scripts=for script in ${boot_scripts}; do if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${script}; then echo Found U-Boot script ${prefix}${script}; run boot_a_script; echo SCRIPT FAILED: continuing...; fi; done
scriptaddr=0x83500000
sd_dev=1
sec_boot=yes
serial#=0019b811c760
soc=imx9
soc_type=imx93
uboot_defconfig=imx93_nitrogen_smarc
upgradeu=setenv boot_scripts upgrade.scr; boot;echo Upgrade failed!; setenv boot_scripts boot.scr;
usb_boot=usb start; if usb dev ${devnum}; then devtype=usb; run scan_dev_for_boot_part; fi
vendor=boundary

Environment size: 4487/8188 bytes

Linux / Kernel:

Please see nitrogen93-smarc-dvk-full-boot.txtπŸ”— for the full boot log.

Login Credentials:

Username: root
Password: β€”
Hostname: nitrogen93

BSP Support, Drivers & Configs

For review and modification.

β€œHello World”

Once the Universal SMARC Carrier Board is powered using J17, the DC barrel power jack and connector along with the included power supply, the display will initialize automatically. A green power indicator LED (D9) will illuminate; however, it may not be visible if the screen is folded down.

Within a few seconds, the screen will display two Linux Tux (Penguins), followed by our Ezurio β€œIO” boot / loading animation. The system typically completes the boot process in under 30 seconds, after which a blank desktop environment will appear. Now, at this stage, you can begin interacting with the system β€” for example, by opening a terminal window.

Note: You can even connect a keyboard β€” either wired or using a wireless USB dongle β€” to any of the three available USB ports to interact with the terminal, run Linux commands, and so on.

Serial Console & Access

For development and debugging purposes. To establish a serial connection, use the console cable provided in the kit. Connect the DB9 connector labeled CONSOLE to a serial port on your PC or to a (5V) USB-to-Serial adapter (not included by default); in our example, we used the Tripp Lite USA-19HS (Keyspan).

Next, attach the other end of the console cable to J18 on the Universal SMARC Carrier Board β€” you may need to gently lift the screen for better access. Windows users can use terminal applications such as TeraTermπŸ”—, RealTermπŸ”—, or PuTTYπŸ”—, while Linux users should use tools like screen, minicom or picocom.

The default serial settings are 115200 baud, 8 data bits, no parity, and 1 stop bit β€” commonly referred to as 8N1@115200. Press the RESET button (SW1), and you should see the system boot logs appear in your terminal window.

Notes: The RS232 communication requires and operates at 5V TTL levels, not standard Β±12V. If you prefer working with fastboot instead, then you may also want to connect a USB-C cable to J25 and your PC. In this context, please keep in mind that powering the entire board and setup via the USB-C connection is not sufficient, as it will exceed the current limitations of a standard USB port.

Remote Network Login via SSH

To connect the Nitrogen93 SMARC DVK to your local or public network, plug an RJ45 Ethernet cable into either J31 or J32 on the Universal SMARC Carrier Board.

An SSH server (OpenSSH, sshd) is enabled by default and listens on port 22 for incoming connections. It becomes active once the system has fully booted.

Note: Ensure that a DHCP Server is running on your network. By default, the DVK operates as a DHCP Client, automatically requesting and receiving IPv4 + IPv6 addresses through the NetworkManager once available, as shown in the ipconfig, ip, and nmcli examples below.

root@nitrogen93:~# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.2.169  netmask 255.255.255.0  broadcast 192.168.2.255
        inet6 2003:c9:cf05:2991:8d37:233f:3796:b585  prefixlen 64  scopeid 0x0<global>
        inet6 2003:c9:cf05:2991:219:b8ff:fe11:c761  prefixlen 64  scopeid 0x0<global>
        inet6 fe80::6d84:be30:a112:5aa2  prefixlen 64  scopeid 0x20<link>
        ether 00:19:b8:11:c7:61  txqueuelen 1000  (Ethernet)
        RX packets 674  bytes 55382 (54.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 105  bytes 16089 (15.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 114

eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.2.170  netmask 255.255.255.0  broadcast 192.168.2.255
        inet6 2003:c9:cf05:2991:219:b8ff:fe11:c760  prefixlen 64  scopeid 0x0<global>
        inet6 fe80::9c91:1d7e:cebf:95df  prefixlen 64  scopeid 0x20<link>
        inet6 2003:c9:cf05:2991:4071:9c04:696b:fbb6  prefixlen 64  scopeid 0x0<global>
        ether 00:19:b8:11:c7:60  txqueuelen 1000  (Ethernet)
        RX packets 50  bytes 5943 (5.8 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 73  bytes 11782 (11.5 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[...]
root@nitrogen93:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host noprefixroute
       valid_lft forever preferred_lft forever
2: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:19:b8:11:c7:60 brd ff:ff:ff:ff:ff:ff
    inet 192.168.2.170/24 brd 192.168.2.255 scope global dynamic noprefixroute eth1
       valid_lft 602704sec preferred_lft 602704sec
    inet6 2003:c9:cf05:2991:4071:9c04:696b:fbb6/64 scope global dynamic noprefixroute
       valid_lft 172779sec preferred_lft 86379sec
    inet6 2003:c9:cf05:2991:219:b8ff:fe11:c760/64 scope global dynamic mngtmpaddr noprefixroute
       valid_lft 172779sec preferred_lft 86379sec
    inet6 fe80::9c91:1d7e:cebf:95df/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:19:b8:11:c7:61 brd ff:ff:ff:ff:ff:ff
    inet 192.168.2.169/24 brd 192.168.2.255 scope global dynamic noprefixroute eth0
       valid_lft 602673sec preferred_lft 602673sec
    inet6 2003:c9:cf05:2991:8d37:233f:3796:b585/64 scope global dynamic noprefixroute
       valid_lft 172779sec preferred_lft 86379sec
    inet6 2003:c9:cf05:2991:219:b8ff:fe11:c761/64 scope global dynamic mngtmpaddr noprefixroute
       valid_lft 172779sec preferred_lft 86379sec
    inet6 fe80::6d84:be30:a112:5aa2/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
root@nitrogen93:~# nmcli
eth0: connected to Wired connection 1
        "eth0"
        ethernet (imx-dwmac), 00:19:B8:11:C7:61, hw, mtu 1500
        ip4 default, ip6 default
        inet4 192.168.2.169/24
        route4 default via 192.168.2.1 metric 101
        route4 192.168.2.0/24 metric 101
        route4 192.168.2.1/32 metric 10
        route4 default via 192.168.2.1 metric 10
        inet6 2003:c9:cf05:2991:8d37:233f:3796:b585/64
        inet6 2003:c9:cf05:2991:219:b8ff:fe11:c761/64
        inet6 fe80::6d84:be30:a112:5aa2/64
        route6 fe80::/64 metric 1024
        route6 default via fe80::1 metric 10
        route6 2003:c9:cf05:2991::/64 metric 10
        route6 2003:c9:cf05:2991::/64 metric 101
        route6 default via fe80::1 metric 101

eth1: connected to Wired connection 2
        "eth1"
        ethernet (fec), 00:19:B8:11:C7:60, hw, mtu 1500
        inet4 192.168.2.170/24
        route4 192.168.2.0/24 metric 102
        route4 default via 192.168.2.1 metric 102
        route4 192.168.2.1/32 metric 10
        route4 default via 192.168.2.1 metric 10
        inet6 2003:c9:cf05:2991:4071:9c04:696b:fbb6/64
        inet6 2003:c9:cf05:2991:219:b8ff:fe11:c760/64
        inet6 fe80::9c91:1d7e:cebf:95df/64
        route6 fe80::/64 metric 1024
        route6 default via fe80::1 metric 10
        route6 2003:c9:cf05:2991::/64 metric 10
        route6 2003:c9:cf05:2991::/64 metric 102
        route6 default via fe80::1 metric 102

lo: connected (externally) to lo
        "lo"
        loopback (unknown), 00:00:00:00:00:00, sw, mtu 65536
        inet4 127.0.0.1/8
        inet6 ::1/128

[...]

DNS configuration:
        servers: 192.168.2.1
        domains: speedport.ip
        interface: eth0

        servers: fe80::1
        interface: eth0

        servers: 192.168.2.1
        domains: speedport.ip
        interface: eth1

        servers: fe80::1
        interface: eth1

Next Steps …

Updating & Customizing Yocto

Please refer to https://lairdcp.github.io/guides/yocto-scarthgap-release-for-imx-platforms/1.0/Yocto-Scarthgap-Release-for-i.MX-Platforms.htmlπŸ”— for more information.

To ensure reproducible Yocto builds, we recommend using our (Ubuntu-based) Docker Containers whenever possible: https://www.ezurio.com/resources/software-announcements/using-docker-containers-for-reproducible-yocto-buildsπŸ”—.

Updating & Customizing U-Boot

Please refer to https://www.ezurio.com/resources/software-announcements/u-boot-v2022-04-for-i-mx-platformsπŸ”— for more information.

Additional Features & Information

To explore additional features and learn how to set up, bring up and use the internal Wi-Fi and BLE radio of the Sona NX611 module, for example, see https://lairdcp.github.io/guides/yocto-scarthgap-release-for-imx-platforms/1.0/Yocto-Scarthgap-Release-for-i.MX-Platforms.htmlπŸ”—.

Recovery Instructions

If your Nitrogen93 SMARC development board isn’t powering on or showing any signs of life, you may want to try recovering both the bootloader and operating system using NXP’s Universal Update Utility (UUU). A step-by-step guide is available here: https://www.ezurio.com/resources/software-announcements/recovering-i-mx-platforms-using-uuuπŸ”—.

Note: Before that, make sure to double-check the following: (a) There are no visible signs of hardware damage β€” inspect all components carefully; (b) the Nitrogen93 SMARC module is properly seated in the SMARC socket slot (J1) of the Universal SMARC Carrier Board; (c) cables and connections are securely in place β€” nothing should be loose or jammed; (d) boot switches on the Universal SMARC Carrier Board (S1) are in OFF position; and (e) SW1 on the Nitrogen93 SMARC module itself is also set to OFF.

FreeRTOS

A major benefit is the ability to leverage both Cortex-A and Cortex-M cores in a single chip. This allows developers to run high-level applications on the Cortex-A while handling real-time or low-power tasks on the Cortex-M: https://lairdcp.github.io/guides/freertos-sdk-2-16-nitrogen/1.0/FreeRTOS_SDK_v2.16_Release_for_Nitrogen_Platforms.htmlπŸ”—.

Android

As mentioned in this FAQ, there is no official Android BSP available from NXP for the i.MX 93, which our Nitrogen93 SMARC module is based on; therefore, we do not (and cannot) support it either. This is because the CPU is specifically designed for low-power edge, industrial, and IoT applications, where lightweight operating systems like Linux or RTOS are preferred. Additionally, and more importantly, it lacks the hardware and graphical capabilities required to run Android efficiently.

Buildroot & QNX

Yes to both.

Buildroot 2024.02: https://lairdcp.github.io/guides/yocto-buildroot-2024-02-imx/1.0/Buildroot-2024.02-release-for-i.MX-platforms.htmlπŸ”—,

QNX Software Development Platform (SDP) 8.0: https://lairdcp.github.io/guides/qnx-800-application-notes/1.0/qnx800-nitrogen93-smarc.htmlπŸ”—.

## Debian & Ubuntu

Not supported. For additional information, please contact your local sales representative or FAE.

Changelog

  • Version 1.0 βˆ’ 25/07/2025 (Florian Baumgartl): Initial release based on #P/N EZSMI-935-0216-00158-2-K2 REV 1.0.