🛠 CircuitPython sur le kit Nordic : le prototypage sans C
¿Por qué CircuitPython en este kit?
CircuitPython publica una compilación oficial para la placa con id pca10100, es decir, el nRF52833-DK de Nordic. El SoC es adecuado para ello: Cortex-M4 @ 64 MHz, 512 KB de flash, 128 KB de RAM, y el kit incluye todo lo necesario para empezar sin soldar: 4 LED de usuario (P0.13-P0.16, activos en nivel bajo), 4 botones (P0.11, P0.12, P0.24, P0.25, activos en nivel bajo, sin resistencia de pull-up externa), y la interfaz J-Link OB que sirve tanto como programador como consola serie. Es el camino más corto para familiarizarse con la placa antes de pasar al nRF Connect SDK.
Paso 1 — Descargar el firmware
En la página de CircuitPython para la placa (circuitpython.org/board/pca10100/), descargue el último .hex (o .uf2 si corresponde) para pca10100. Fije la versión: las API de CircuitPython evolucionan entre versiones.
Paso 2 — Flashear el firmware en el kit
El kit no tiene bootloader UF2; se programa como cualquier hex de Nordic:
- Arrastrar y soltar: el J-Link OB expone una unidad MSD — coloque el hex de CircuitPython encima, luego pulse Reset.
- Línea de comandos:
nrfjprog --program circuitpython.hex --chiperase -f && nrfjprog --reboot. - west/J-Link:
nrfjprogo el flasheador J-Link de su IDE hacen lo mismo.
Conecte siempre el cable micro-USB en J2 (el conector del MCU de interfaz).
Paso 3 — Primer script
Una vez que CircuitPython se inicie, aparecerá una unidad CIRCUITPY. Cree/edite code.py:
# code.py — CircuitPython build pca10100
import board
import digitalio
import time
led = digitalio.DigitalInOut(board.LED1) # le DK a 4 LED utilisateur
led.direction = digitalio.Direction.OUTPUT
while True:
led.value = not led.value
time.sleep(0.3)
> NO VERIFICADO: el alias exacto (board.LED1) proviene de la ficha del kit; la página de CircuitPython confirma el soporte y los 4 LED, pero verifique el nombre del pin en el módulo board de la compilación descargada si el ejemplo lanza una AttributeError.
Guarde: el código se reinicia automáticamente. La REPL está disponible en el puerto serie del J-Link OB (recuerde activar DTR en su terminal, de lo contrario las líneas UART permanecerán inactivas).
Límites a conocer
- CircuitPython ocupa una gran parte de la flash: los usos de radio (BLE, Thread) no son la especialidad de esta compilación en esta placa — para BLE, vuelva al nRF Connect SDK.
- Los 4 botones no tienen resistencia de pull-up en el PCB: en
digitalio, configurePull.UPexplícitamente, de lo contrario la entrada queda flotante. - P0.09/P0.10 están reservados para NFC por defecto en el lado de Nordic; en una compilación personalizada de CircuitPython, debe desactivar el NFC (equivalente a
CONFIG_NFCT_PINS_AS_GPIOS) para usarlos como GPIO. - Para alimentación con pila: el kit acepta una CR2032 (incluida en la caja) a través de su ranura dedicada — práctico, pero CircuitPython sigue siendo exigente en comparación con el firmware nativo.
Pasar al siguiente paso
Una vez que se sienta cómodo con GPIO y botones, el mismo kit le espera para BLE con el nRF Connect SDK o Zephyr upstream: los tutoriales de blinky en Zephyr y de publicidad BLE para esta placa toman el relevo.
Otros tutoriales para esta placa
- Premier blinky Zephyr sur le nRF52833-DK
- Flasher un .hex sans rien installer : MSD et nRF Connect Programmer
- Premier périphérique BLE avec le nRF Connect SDK
- Projet firmware complet avec PlatformIO et la sonde J-Link embarquée
- Utiliser le DK comme sonde J-Link pour une cible externe
- Réseau Thread / 802.15.4 avec OpenThread sur le nRF52833