i.MX 8M Mini Evaluation Kit๐
Introduction๐
The PAN9019A requires a fairly powerful host processor that executes the low-level Wi-Fiยฎ and Bluetoothยฎ drivers as well as some high-level Wi-Fi application software and a Bluetooth stack.
As an evaluation platform you can use the NXPยฎ i.MX 8M Mini Evaluation Kit (8MMINILPD4-EVK), which is based on the i.MX 8M Mini application processor with four Arm Cortex-A53 cores and a Cortex-M4 core. It features a 2 GB LPDDR4 RAM, a 16 GB eMMC, Gigabit Ethernet and USB 2.0.
The i.MX 8M Mini Evaluation Kit supports the SDIO 3.0 specification, which is required for operation of the PAN9019A. But it does not have an on-board M.2 Key E slot for the PAN9019A M.2 device, only a micro SD slot.
To overcome this problem, you can use the M.2 to mSD Adapter. The M.2 to mSD Adapter is a compact solution that you can use for the evaluation of Panasonic's Wi-Fi M.2 Key E devices in combination with host devices that only have a micro SD slot.
This guide shows you how to evaluate a Panasonic PAN9019A M.2 device on a NXP i.MX 8M Mini Evaluation Kit with the help of the M.2 to mSD Adapter. But you have to be aware that only the basic bring-up is explained, not any advanced usage.
Note
For this guide it is mandatory that you use Yocto Linux to build your own custom image for the i.MX 8M Mini Evaluation Kit, because there is not official image with integrated support for OpenThread using the 802.15.4 radio portion of the PAN9019A.
Board Overview๐
1
Boot mode explanation
You can check the possible settings for the boot mode switches here.
2
Power switch
You can turn the evaluation board on and off using this switch.
3
Reset button
You can use the reset button to reset the i.MX 8M Mini Evaluation Kit to a known-good state.
4
Expansion connector - EXP CN
You can use this connector to attach peripherals.
5
Boot mode switches - SW1101 and SW1102
You can use the boot mode switches to select the boot mode. Also see Writing to the eMMC and Host System Configuration.
6
Ethernet port
You can use the Ethernet port to connect the i.MX 8M Mini Evaluation Kit to wired networks.
7
USB Type-C power connector
You can use the USB Type-C power connector to supply power the i.MX 8M Mini Evaluation Kit.
8
USB Type-C port - USB1
You can use the USB Type-C port to write images to the eMMC. Also see Writing to the eMMC
9
USB Debug port
You can use the USB debug port to interact with the operating system.
10
micro SD card slot
You can insert a micro SD card into this slot.
Host System Setup๐
Introduction๐
For the i.MX 8M Mini Evaluation Kit a Linuxยฎ Board Support Package (BSP) is available from NXP. The Linux BSP provides everything that is needed to build a Linux-based image for the i.MX 8M Mini Evaluation Kit using the Yocto Projectยฎ.
Yocto Project
The Yocto Project is an open source project that provides templates, tools and methods for creating custom Linux images for embedded systems.
Chip and board vendors as well as the Linux community contribute to it by adding support for evaluation boards, processors, drivers and software packages in the form of so-called meta layers.
You can find an overview of the Linux BSP releases on the Embedded Linux for i.MX Application Processors page.
Under the section Linux Current Release you can find information and documentation regarding the latest BSP release. Including the following:
-
The name of the release 1. In this case, Linux 5.15.5_1.0.0 with 5.15.5 being the Linux kernel version that is used.
-
The i.MX Yocto Project User's Guide 2 documenting the build process of the Linux image with Yocto.
-
The NXP Wi-Fi Driver Features and Release Notes 3.
-
A list of the supported evaluation kits 4 based on processors from the i.MX application processor family.
Note
Please note that you need an account for the NXP Homepage to be able to access the mentioned documents.
Building the Yocto Image๐
The Linux BSP consists of a number of meta layers providing recipes for building packages that in sum make up the image for the i.MX 8M Mini Evaluation Kit. This includes the Linux kernel, a root filesystem and a bootloader. In this setup the Wi-Fi drivers are built as so-called out-of-tree kernel modules.
A manifest file specifies the meta layers that the BSP is based on. The manifest files are hosted on the imx-manifest repository. The repo tool is used to manage the Git repositories of the different meta layers.
The Linux BSP is built upon the meta layers maintained by the FSL Community which provide support for i.MX boards in the Yocto Project. An additional meta-imx
layer is used to release updated and new recipes and machine configurations that are eventually upstreamed to the community layers maintained by the community.
The following requirements must be met:
-
You have a Linux based development machine set up for Yocto builds as described in the Host Setup chapter of the i.MX Yocto Project User's Guide.
-
You have the repo tool installed on the development machine as described in the Host Setup chapter of the i.MX Yocto Project User's Guide.
-
Create a new folder
imx-yocto-bsp
for the Linux BSP data.mkdir imx-yocto-bsp cd imx-yocto-bsp
-
Initialize the current directory as a repo client directory.
repo init -u https://github.com/nxp-imx/imx-manifest -b imx-linux-nanbield -m imx-6.6.3-1.0.0.xml
The
.repo
folder is created. -
Synchronize the local directory with the remote repositories.
repo sync
The latest revision of the meta layers is downloaded from the respective repositories and stored in the
sources
directory. -
Execute the following command to setup the build directory and configuration files.
DISTRO=fsl-imx-wayland MACHINE=imx8mmevk source imx-setup-release.sh -b build
-
You are prompted to read and accept an EULA by NXP. To continue to use the i.MX proprietary software, you must agree to the conditions of this license. Press Space to page through the EULA. At the end press Y to accept.
In case you accepted the EULA, the
build
directory is created and set as the current working directory. -
The default build does not include certain components that are necessary for the evaluation.
Add the following line to the end of the file
conf/local.conf
using thenano
editor.nano conf/local.conf
local.confIMAGE_INSTALL:append = " dtc git packagegroup-core-buildessential ninja"
Note
Press Ctrl+O to save the file, then press Ctrl+X to exit the editor.
-
The default device tree in the Yocto image does not include certain items that are necessary for the evaluation.
For details about these items refer to section Device Tree Changes.
Download the following files from the Downloads section section for later use.
-
linux-imx_%.bbappend - configuration file to integrate a custom devicetree patch
-
devicetree.patch - the devicetree patch
-
-
Copy the previously downloaded files to their correct location so that they are included in the Yocto Linux build.
cp devicetree.patch linux-imx_%.bbappend sources/meta-imx/meta-imx-bsp/recipes-kernel/linux
-
Start the Yocto build.
bitbake imx-image-core
Once the build is done you can find the resulting image in
tmp/deploy/images/imx8mmevk/imx-image-core-imx8mmevk.rootfs.wic.zst
.
Note
The Linux BSP lets you choose from a number of distros, images and target machines.
For further information on the Linux BSP and the Yocto build process please refer to the i.MX Yocto Project User's Guide.
However, for this manual only the distro, image and target machine as described above work.
Writing to the eMMC๐
The following requirements must be met:
-
You have successfully built the Yocto image as described in Building the Yocto Image.
-
You have installed the Universal Update Utility as described in the chapter Universal update utility of the i.MX Linux User's Guide.
Execute the following steps to write the image to the eMMC.
-
Check out the Download Mode setting in the Boot mode explanation 1 that is printed on the silkscreen.
-
Set the boot mode switches SW1101 and SW1102 5 to Download Mode.
If the device was in the regular eMMC3/SDHC3 mode before, only the first two switches for SW1101 need to be toggled.
-
Connect the USB Type-C port USB1 8 to your computer.
-
Power on the i.MX 8M Mini Evaluation Kit by inserting a USB Type-C power supply cable into the USB Type-C power connector 7 and make sure that the Power switch 2 is set to the On position.
-
Execute the following command.
uuu.exe -v -b emmc_all imx-image-core-imx8mmevk.rootfs.wic.zst
The Universal Update Utility decompresses and writes the image to the eMMC.
-
Power off the i.MX 8M Mini Evaluation Kit with the Power switch 2.
Booting from the eMMC๐
The following requirements must be met:
-
You have successfully built the Yocto image as described in Building the Yocto Image.
-
You have written the Linux image to the eMMC as described in Writing to the eMMC.
Execute the following steps get the system ready for the following steps.
-
Power off the i.MX 8M Mini Evaluation Kit with the Power switch 2.
-
Check out the eMMC/SDHC3 setting in the Boot mode explanation 1 that is printed on the silkscreen.
-
Set the boot mode switches SW1101 and SW1102 5 to eMMC/SDHC3.
-
Connect to the USB Debug port 9 using a serial console like PuTTY (115200 baud).
-
Power on the i.MX 8M Mini Evaluation Kit with the Power switch 2.
The system boots.
-
Wait until the system is fully booted and the login prompt appears.
NXP i.MX Release Distro nanbield imx8mmevk ttymxc1 imx8mmevk login:
-
Login as the user
root
without a password.The system is ready for the following steps.
Connectivity๐
In later steps you may have to communicate from your development system with your i.MX 8M Mini Evaluation Kit, so it needs access to your local network.
Or you may have to download some software components directly onto the host system, in which case your i.MX 8M Mini Evaluation Kit needs Internet connectivity.
The following requirements must be met:
-
You have started the i.MX 8M Mini Evaluation Kit as described in Booting from the eMMC.
-
You have a wired network that supports dynamic address assignment via DHCP.
To check if your i.MX 8M Mini Evaluation Kit has access to your local network execute the following steps.
-
Connect the i.MX 8M Mini Evaluation Kit to your network using the Ethernet port 6.
-
Use the
ip addr
command to check the IP address that got assigned to the Ethernet port.ip addr
The output should look something like this:
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 00:04:9f:08:78:a8 brd ff:ff:ff:ff:ff:ff inet 192.168.0.10/24 scope global dynamic eth0 valid_lft 86336sec preferred_lft 86336sec 3: eth1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000 link/ether 00:04:9f:08:78:a7 brd ff:ff:ff:ff:ff:ff
Your i.MX 8M Mini Evaluation Kit uses the IPv4 address
192.168.0.10
.
To check if your i.MX 8M Mini Evaluation Kit has Internet connectivity execute the following steps.
-
Use the
ping
command to check Internet connectivity.ping -n 2 8.8.8.8
The output should look something like this:
Pinging 8.8.8.8 with 32 bytes of data: Reply from 8.8.8.8: bytes=32 time=19ms TTL=116 Reply from 8.8.8.8: bytes=32 time=17ms TTL=116 [...]
Your i.MX 8M Mini Evaluation Kit has Internet connectivity.
Host System Configuration๐
Disable On-System Connectivity Solution๐
You have to disable the on-system connectivity solution so that it does not interfere with our setup.
-
Execute the following commands in the console to put the on-system connectivity solution into disabled state.
fdtput -d /run/media/boot-mmcblk2p1/imx8mm-evk.dtb /soc@0/bus@30800000/mmc@30b40000 status fdtput -t s /run/media/boot-mmcblk2p1/imx8mm-evk.dtb /soc@0/bus@30800000/mmc@30b40000 status disabled
System Reboot
You have to reboot the system for these changes to take effect.
Hardware Setup๐
You have to mount the PAN9019A M.2 device in the M.2 to mSD Adapter as explained in section First Steps.
For the Wi-Fi connectivity the micro SD card slot 10 is used, it is sufficient if you simply insert the M.2 to mSD Adapter there.
For the Bluetooth connectivity a UART interface on the expansion connector EXP CN 4 is used. The necessary hardware setup is explained in Hardware Setup.
For the 802.15.4 connectivity SPI and I2C interfaces on the expansion connector EXP CN 4 are used. The necessary hardware setup is explained in Hardware Setup.
rgpower Files๐
The image which you wrote to the i.MX 8M Mini Evaluation Kit in step Writing to the eMMC already includes the Wi-Fi and Bluetooth drivers and the basic device tree integration for the PAN9019A M.2 device.
But before you can fully operate the PAN9019A, a set of so-called rgpower files is required. Since these files are provided by Panasonic they are not included in the image you built and you need to transfer them to the system manually.
For further information on this topic refer to rgpower Files in the Software Guide for the PAN9019A.
To gain access to the rgpower files you have to go through an uncomplicated approval process that you can find directly on the following pages.
Warning
The PAN9019A is a radio certified module. There are conditions on hardware and software which must be met for the modular approval to be valid.
For detailed information please refer to the PAN9019A Module Integration Guide at
However, if you want to continue right away you can also start with the single world-wide (WW) rgpower file, which is the fall-back regulatory file for all regions the module is certified for.
The world-wide rgpower file has a couple restrictions compared to the region-specific rgpower files:
-
Support for channels 1 to 11 in 2.4 GHz band only
-
No support for 5 GHz band
-
Overall reduced output power
You can download the world-wide rgpower file from the Downloads section.
File Transfer๐
The following requirements must be met:
-
You have started the i.MX 8M Mini Evaluation Kit and checked for connectivity as described in Connectivity.
-
You have obtained or downloaded the rgpower file(s) and they are available in a directory on your development system.
-
You have
scp
installed on your development system.
rgpower Files
This documentation uses the US rgpower file (rgpower_US.bin
) to showcase how to configure the PAN9019A for use in a specific region.
You can use the files for other regions (EU, CA, JP, NZ, AU) similarly.
To transfer the rgpower files with scp
execute the following steps.
-
On your development system navigate to the directory that contains the rgpower files.
-
On your development system use the
scp
command to transfer the two rgpower files to the i.MX 8M Mini Evaluation Kit.scp rgpower_WW.bin rgpower_US.bin root@192.168.0.10:/lib/firmware/nxp
The output should look something like this:
rgpower_WW.bin 100% 800 284.0KB/s 00:00 rgpower_US.bin 100% 1338 572.1KB/s 00:00
If the two systems are in the same network the files are transferred.
Note
If you do not have a region-specific rgpower file yet or if you want to evaluate with the world-wide rgpower file only, then simply ignore the US rgpower file in the instructions for now.
-
To verify that the files were transferred list the contents of the
/lib/firmware/nxp
directory on the i.MX 8M Mini Evaluation Kit.ls -l /lib/firmware/nxp
The output should look something like this:
[...] -rwxr-x--- 1 root root 1338 Mar 3 17:56 rgpower_US.bin -rwxr-x--- 1 root root 800 Mar 3 17:56 rgpower_WW.bin [...]
Wi-Fi๐
Driver Configuration๐
The following requirements must be met:
- You have brought up the i.MX 8M Mini Evaluation Kit with the
imx-image-core
image as described in Booting from the eMMC.
You have to do the following steps in order to configure the driver.
-
Edit the
SDIW612
section in the filewifi_mod_para.conf
using thenano
editor to contain the following settings.nano /lib/firmware/nxp/wifi_mod_para.conf
wifi_mod_para.confSDIW612 = { cal_data_cfg=none fw_name=nxp/sduart_nw61x_v1.bin.se cntry_txpwr=2 }
Bring Up๐
The following requirements must be met:
-
You have adapted the
SDIW612
section in thewifi_mod_para.conf
file as described in Driver Configuration. -
You have mounted the PAN9019A M.2 device in the M.2 to mSD Adapter as explained in Hardware Setup.
To bring up the Wi-Fi portion of the PAN9019A M.2 device execute the following steps.
-
Insert the M.2 to mSD Adapter into the micro SD card slot 10 of the i.MX 8M Mini Evaluation Kit .
-
Load the
moal
kernel module.modprobe moal mod_para=nxp/wifi_mod_para.conf
-
Execute the following command to check if the Wi-Fi interfaces have been created.
ip addr list
The output should look something like this:
3: mlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether 34:32:e6:34:41:30 brd ff:ff:ff:ff:ff:ff 4: uap0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether 36:32:e6:34:42:30 brd ff:ff:ff:ff:ff:ff 5: wfd0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether 36:32:e6:34:41:30 brd ff:ff:ff:ff:ff:ff
The
mlan0
(station),uap0
(access point) andwfd0
(Wi-Fi Direct) interfaces are now available.
Bluetooth๐
The PAN9019A M.2 device uses signal voltage levels of 1.8 V for the Bluetooth communication via UART, but the UART signals on the expansion connector EXP CN 4 of the i.MX 8M Mini Evaluation Kit expect signal voltage levels of 3.3 V instead.
Because of this you have to use voltage level shifters from 1.8 V to 3.3 V in this setup.
You can find many ready-made boards on the market that aid with this task. One that is known to work is the KY-051 Voltage Translator for example.
For a complete setup including both Bluetooth and 802.15.4 you need a total of 3 of these voltage translators.
Hardware Setup๐
Unfortunately there is no pin on the expansion connector EXP CN 4 that provides access to 1.8 V, but there are pins on the expansion connector EXP CN 4 which are unused.
Because of this you have to solder a connection from TP901 on the PAN9019A M.2 device to pin 18 of the expansion connector EXP CN 4 so that you can access a pin that provides 1.8 V easily.
i.MX 8M Mini Evaluation Kit | Expansion connector |
---|---|
TP901 | Pin 18 |
Note
For further information please refer to the printed circuit boards and schematics file SPF-31407_C5.pdf which is part of the i.MX 8M Mini LPDDR4 EVKB Base Board Design Files, which are available under the Design Resources section on the Evaluation Kit for the i.MX 8M Mini Applications Processor product page.
Please note that you need an account for the NXP Homepage to be able to access this document.
Afterwards you set up connections between the M.2 to mSD Adapter and the expansion connector EXP CN 4 as follows.
Bring Up๐
On the expansion connector EXP CN 4 a serial device labeled UART3
is present, which is available as /dev/ttymxc2
in the Linux system.
You can bring up the Bluetooth interface as follows.
-
Attach the serial device to the Linux BlueZ stack.
hciattach /dev/ttymxc2 any 115200 flow
-
Open and initialize the Bluetooth device.
hciconfig hci0 up
-
Check the configuration of the new Bluetooth device.
hciconfig
The output should look something like this:
hci0: Type: Primary Bus: UART BD Address: 34:32:E6:34:41:31 ACL MTU: 1021:7 SCO MTU: 120:6 UP RUNNING RX bytes:1551 acl:0 sco:0 events:96 errors:0 TX bytes:1294 acl:0 sco:0 commands:96 errors:0
The Bluetooth Device Address is correctly recognized.
802.15.4๐
For using the 802.15.4 radio portion of the PAN9019A you have to use a similar setup as for the Bluetooth communication.
Additionally your i.MX 8M Mini Evaluation Kit needs Internet connectivity, because you have to download some software components directly onto the host system.
Hardware Setup๐
The PAN9019A M.2 device uses signal voltage levels of 1.8 V for the 802.15.4 communication via I2C and SPI, but the signals on the expansion connector EXP CN 4 of the i.MX 8M Mini Evaluation Kit expect signal voltage levels of 3.3 V instead.
Because of this you have to use voltage level shifters from 1.8 V to 3.3 V in the same way as for the Bluetooth communication.
The following requirements must be met:
- You have brought out access to 1.8 V on the expansion connector EXP CN 4 as explained in Hardware Setup.
The Wi-Fi/Bluetooth/802.15.4 M.2 Key E Pinout Definition from NXP mandates that an I2C I/O expander for sideband signals must be present on a tri-radio M.2 device, so you have to connect an I2C interface to the M.2 to mSD Adapter.
On the expansion connector EXP CN 4 an I2C interface labeled I2C3
is present, but unfortunately it uses 3.3 V and already has an I2C I/O expander with an identical I2C address present on the bus, so it cannot be used.
On the i.MX 8M Mini Evaluation Kit there is another I2C interface labeled I2C2
, but it is not directly accessible. One solution is to bring out this I2C interface to other unused pins on the expansion connector EXP CN 4 and use these ones instead.
You have to solder the following connections between testpoints on the i.MX 8M Mini Evaluation Kit and unused pins on the expansion connector EXP CN 4.
i.MX 8M Mini Evaluation Kit | Expansion connector |
---|---|
TP210 | Pin 27 |
TP211 | Pin 29 |
Note
For further information please refer to the printed circuit boards and schematics file SPF-31407_C5.pdf which is part of the i.MX 8M Mini LPDDR4 EVKB Base Board Design Files, which are available under the Design Resources section on the Evaluation Kit for the i.MX 8M Mini Applications Processor product page.
Please note that you need an account for the NXP Homepage to be able to access this document.
Afterwards you set up connections between the M.2 to mSD Adapter and the expansion connector EXP CN 4 as follows.
On the expansion connector EXP CN 4 the SPI device labeled ECSPI2
is used, which is available as /dev/spidev1.0
in the Linux system.
Note that the signal SPI_INT
is an additional interrupt line that is connected to EXP_IO14
. EXP_IO14
is line 0 on the on-board I2C I/O expander that is usually available in the Linux system as gpiochip6
.
Software Setup๐
In the NXP Linux BSP there is no integrated support for OpenThread using the 802.15.4 radio portion of the PAN9019A, but you can compile the necessary software directly on the i.MX 8M Mini Evaluation Kit.
The following requirements must be met:
- Your i.MX 8M Mini Evaluation Kit has Internet connectivity as explained in Connectivity.
-
Clone the
meta-matter
repository to gain access to a NXP-specific patch for the OpenThread stack.cd ~ git clone https://github.com/nxp-imx/meta-matter.git cd meta-matter git checkout imx_matter_2024_q1
-
Clone the official OpenThread repository and checkout a version that matches the NXP-specific patch.
cd ~ git clone https://github.com/openthread/openthread.git cd openthread git checkout 5beae143700db54c6e9bd4b15a568abe2f305723
-
Apply the NXP-specific patch to the repository.
patch -p1 < ~/meta-matter/recipes-openthread/openthread/files/0001-Apply-IW612-change-to-openthread.patch
-
Compile the OpenThread stack.
./script/cmake-build posix -GNinja -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \ -DOT_COMPILE_WARNING_AS_ERROR=OFF -DOT_PLATFORM=posix -DOT_SLAAC=ON \ -DOT_BORDER_AGENT=ON -DOT_BORDER_ROUTER=ON -DOT_COAP=ON -DOT_COAP_BLOCK=ON \ -DOT_COAP_OBSERVE=ON -DOT_COAPS=ON -DOT_COMMISSIONER=ON -DOT_CHANNEL_MANAGER=ON \ -DOT_CHANNEL_MONITOR=ON -DOT_CHILD_SUPERVISION=ON -DOT_DATASET_UPDATER=ON \ -DOT_DHCP6_CLIENT=ON -DOT_DHCP6_SERVER=ON -DOT_DIAGNOSTIC=ON -DOT_DNS_CLIENT=ON \ -DOT_ECDSA=ON -DOT_IP6_FRAGM=ON -DOT_JAM_DETECTION=ON -DOT_JOINER=ON \ -DOT_LEGACY=ON -DOT_MAC_FILTER=ON -DOT_NETDIAG_CLIENT=ON \ -DOT_NEIGHBOR_DISCOVERY_AGENT=ON -DOT_PING_SENDER=ON -DOT_REFERENCE_DEVICE=ON \ -DOT_SERVICE=ON -DOT_SNTP_CLIENT=ON -DOT_SRP_CLIENT=ON -DOT_COVERAGE=OFF \ -DOT_LOG_LEVEL_DYNAMIC=ON -DOT_RCP_RESTORATION_MAX_COUNT=2 \ -DOT_LOG_OUTPUT=PLATFORM_DEFINED -DOT_POSIX_MAX_POWER_TABLE=ON -DOT_DAEMON=ON \ -DOT_THREAD_VERSION=1.3 -DCMAKE_BUILD_TYPE=Release -DOT_POSIX_CONFIG_RCP_BUS=SPI
Bring Up๐
The devices on the I2C bus of the PAN9019A M.2 device that is now connected to the i.MX 8M Mini Evaluation Kit are enumerated during boot.
-
Reboot the device so that the I2C I/O expander gets recognized.
reboot
-
After the reboot, check if the I2C I/O expander is present.
gpioinfo
The output should look something like this:
[...] gpiochip5 - 8 lines: line 0: "UNUSED" input line 1: "IND_RST_15.4" input line 2: "WL_WAKE_IN" input line 3: "BT_WAKE_IN" input line 4: "RST_IND" input [...]
An entry for
gpiochip5
is present which contains this configuration.
You can verify that the OpenThread stack operates correctly as follows.
-
Start the OpenThread daemon
ot-daemon
with a suitable configuration to run in the background.cd ~/openthread ./build/posix/src/posix/ot-daemon -v "spinel+spi:///dev/spidev1.0?gpio-int-device=/dev/gpiochip6&gpio-int-line=0&gpio-reset-device=/dev/gpiochip5&gpio-reset-line=1&spi-mode=0&spi-speed=500000&spi-reset-delay=500" &
The output should look something like this:
./build/posix/src/posix/ot-daemon[608]: Running OPENTHREAD/thread-reference-20230706-12-g5beae1437-dirty; POSIX; May 22 2024 13:50:08 ./build/posix/src/posix/ot-daemon[608]: Thread version: 4 ./build/posix/src/posix/ot-daemon[608]: Thread interface: wpan0 ./build/posix/src/posix/ot-daemon[608]: RCP version: OPENTHREAD/thread-reference-20180926-4730-gad808304f; IWX12; Dec 15 2023 12:28:58
The version information of the OpenThread is shown correctly.
-
Perform a factory reset to verify the communication.
./build/posix/src/posix/ot-ctl factoryreset
The output should look something like this:
./build/posix/src/posix/ot-daemon[608]: Running OPENTHREAD/thread-reference-20230706-12-g5beae1437-dirty; POSIX; May 22 2024 13:50:08 ./build/posix/src/posix/ot-daemon[608]: Thread version: 4 ./build/posix/src/posix/ot-daemon[608]: Thread interface: wpan0 ./build/posix/src/posix/ot-daemon[608]: RCP version: OPENTHREAD/thread-reference-20180926-4730-gad808304f; IWX12; Dec 15 2023 12:28:58
The version information of the OpenThread is repeated.
Appendix๐
Device Tree Changes๐
The patch file devicetree.patch from the Downloads section contains the following changes to the default device tree file arch/arm64/boot/dts/freescale/imx8mm-evk.dtsi
for the i.MX 8M Mini Evaluation Kit.
-
The first chunk adds support for the I2C I/O expander on the PAN9019A M.2 device, so that it gets recognized by the Linux system.
-
The remaining chunks enable support for the interrupt functionality of the on-board I2C I/O expander.