Este artículo, es la segunda parte de la plataforma (ganadora de un premio en Embedded World 2026) de Nordic IoT NRF54LM20-DK Nordic Semiconductor ASA | Development Boards, Kits, Programmers | DigiKey
El objetivo de este artículo es mostrar como configurar esta plataforma parta desarollar con el bien conocido sistema operativo Zephyr (Tiempo Real) en una computadora de Linux. En este momento, sera configurado similarmente a un pasado artículo. Por ahora, este artículo, demuestra como desarrollar en Zephyr solamente con el tradicional CPU (ARM) en esta plataforma mostrada en el siguiente diagrama de bloque,
Vamos a mostar en el próximo artículo como usar el sistema operativo Zephyr con el AXON Unidad de Procesamiento Neural (NPU). Con este objetivo en mente, el primer paso, es hacer lo siguiente en una computadora de Linux,
sudo apt update
sudo apt upgrade
sudo apt install --no-install-recommends git cmake ninja-build gperf ccache dfu-util device-tree-compiler wget python3-dev python3-venv python3-tk xz-utils file make gcc libsdl2-dev libmagic1
python3 -m venv venv
source venv/bin/activate
(venv) pip install west
(venv) west init zephyrproject
(venv) cd zephyrproject
(venv) west update
(venv) west zephyr-export
(venv) west packages pip --install
(venv) cd zephyr
(venv) west sdk install
Por favor proceda a instalar el siguiente programa nrfutil de este enlace para Linux (x64). Una vez bajado cambie los permisos y ejecutalo. (sudo chmod 777 nrfutil). Verifica la version e incluyela en el path de su sistema (.bashrc)
(venv) sudo apt install libusb-1.0-0
(venv) nrfutil self-upgrade
(venv) nrfutil install nrf5sdk-tools
(venv) nrfutil upgrade
(venv) nrfutil install device
(venv) nrfutil sdk-manager install v3.2.0
Es bien importante utilizar el comando nrfutil upgrade y el siguiente nrfutil sdk-manager install v3.2.0 para instalar la version 3.2.0 que funciona con este demo al momento de publicación de este artículo. También proceda a obtener el siguiente programa JLink_Linux_V864_x86_64.deb y luego se instala. Ahora del siguiente directorio de Zephyr ~/DigiKey_Coffee_Cup/Nordic/zephyrproject/zephyr use el siguiente comando,
~/DigiKey_Coffee_Cup/Nordic/zephyrproject/zephyr$ nrfutil sdk-manager toolchain launch --ncs-version v3.2.0 --shell
esto abre en un terminal otro shell. En este momento, se procede a construir la aplicación de Zephyr para la plataforma NRF54LM20-DK Nordic Semiconductor Development Kit. La aplicación del demo presentada aquí es el sistema operativo Zephyr multi-thread. Ahora se procede a construir la aplicación de Zephyr como sigue,
~/DigiKey_Coffee_Cup/Nordic/zephyrproject$ west build -p always -b nrf54lm20dk/nrf54lm20b/cpuapp zephyr/samples/basic/threads
...
...
[167/167] Linking C executable zephyr/zephyr.elf
Memory region Used Size Region Size %age Used
FLASH: 40996 B 2036 KB 1.97%
RAM: 8580 B 511 KB 1.64%
IDT_LIST: 0 B 32 KB 0.00%
Generating files from DigiKey_Coffee_Cup/Nordic/zephyrproject/build/zephyr/zephyr.elf for board: nrf54lm20dk/nrf54lm20b/cpuapp
Despues de que el proceso de construir la aplicación es completado, conecte la plataforma NRF54LM20-DK Nordic Semiconductor Development Kit via el cable USB desde la computadora de Linux, como se muestra en la siguiente foto,
Abre un terminal a parte de minicom, proceda a programarlo como se ilustra a continuación,
~/DigiKey/Nordic/zephyrproject$ west flash
- west flash: rebuilding
ninja: no work to do.
-- west flash: using runner nrfutil
-- runners.nrfutil: reset after flashing requested
Using board 001051861371
-- runners.nrfutil: Flashing file: DigiKey_Coffee_Cup/Nordic/zephyrproject/build/zephyr/zephyr.hex
-- runners.nrfutil: Connecting to probe
-- runners.nrfutil: Programming image
-- runners.nrfutil: Verifying image
-- runners.nrfutil: Reset
-- runners.nrfutil: Board(s) with serial number(s) 1051861371 flashed successfully.
El terminal de minicom debe de mostrar la siguiente información,
El siguiente video muestra el demo mutil-thread,
Este demo muestra como se propagan distintos threads usando :c:func:K_THREAD_DEFINE. Se implementan tres threads. Cada thread esta definido al momento de la compilación usando el parámetro K_THREAD_DEFINE. Los primeros dos threads controlan individualmente LED en la plataforma. Estos LEDs, led0 y el led1, tienen un control y lógica de tiempo controlado por distintas funciones que estan separadas,
blink0()controla alled0y tiene un ciclo de dormir de 100msblink1()controla alled1y tiene un ciclo de dormir de 1000ms
Cuando cada uno de esos threads modifica su LED, también coloca la información en el FIFO buffer, identificando el thread/LED y como y cuantas veces se ha modificado. El tercer thread usa :c:func:printk para imprimir la información de el FIFO al terminal de minicom.
Esto ha completado la demonstración de esta nueva plataforma Nordic IoT. Mantengase sintonizado para nuestra próxima parte en esta serie. Esta nueva plataforma ganadora del premio Embedded World 2026, Nordic IoT NRF54LM20-DK esta disponible en DigiKey. Que tenga un buen día.
Este artículo está disponible en inglés aquí.
This article is available in english here.



