This is an old revision of the document!
Table of Contents
BBC micro:bit v1.5
BBC development board containing a NRF51822-QFAA ARM Cortex-M0 processor with 256KB flash and 16KB RAM.
The MCU on this device is now obsolete and so are the `bare metal' development tools.
The most modern platform may be Arduino 1.8.19 which may give an insight as to how to create a modernised SDK.
nRF51 SDK
The nRF51 device and its SDK are now obsolete so hardly viable to develop an application with.
Arduino
Arduino IDE 1.8.19 supports nRF5 micro-controllers and could be a useful tool to develop applications on the micro:bit and it appears to work.
ZADIG will need to be setup which will install WINUSB on the J-Link debug interface. OpenOCD built into Arduino will then program the micro:bit (slowly).
J-Link
SEGGER J-Link on board is available for all flavours of the micro:bit to enable a professional debug interface.
Hold down reset and plug board into PC.
Drag J-Link for BBC micro:bit version 1 to MAINTENANCE directory.
Power cycle board and J-Link will become available.
$ /mnt/c/Program\ Files/SEGGER/JLink/JLink.exe SEGGER J-Link Commander V7.98c (Compiled Aug 7 2024 15:41:14) DLL version V7.98c, compiled Aug 7 2024 15:40:25 Connecting to J-Link via USB...O.K. Firmware: J-Link OB-BBC-microbit compiled Nov 16 2022 11:02:58 Hardware version: V1.00 J-Link uptime (since boot): 0d 00h 00m 00s S/N: 786600064 VTref=3.300V Type "connect" to establish a target connection, '?' for help J-Link>connect Please specify device / core. <Default>: NRF51822_XXAA Type '?' for selection dialog Device>NRF51822_XXAA Please specify target interface: J) JTAG (Default) S) SWD T) cJTAG TIF>s Specify target interface speed [kHz]. <Default>: 4000 kHz Speed> Device "NRF51822_XXAA" selected. Connecting to target via SWD InitTarget() start InitTarget() end - Took 12us Found SW-DP with ID 0x0BB11477 DPIDR: 0x0BB11477 CoreSight SoC-400 or earlier Scanning AP map to find all available APs AP[1]: Stopped AP scan as end of AP map has been reached AP[0]: AHB-AP (IDR: 0x04770021) Iterating through AP map to find AHB-AP to use AP[0]: Core found AP[0]: AHB-AP ROM base: 0xF0000000 CPUID register: 0x410CC200. Implementer code: 0x41 (ARM) Found Cortex-M0 r0p0, Little endian. FPUnit: 4 code (BP) slots and 0 literal slots CoreSight components: ROMTbl[0] @ F0000000 [0][0]: E00FF000 CID B105100D PID 000BB471 ROM Table ROMTbl[1] @ E00FF000 [1][0]: E000E000 CID B105E00D PID 000BB008 SCS [1][1]: E0001000 CID B105E00D PID 000BB00A DWT [1][2]: E0002000 CID B105E00D PID 000BB00B FPB [0][1]: F0002000 CID B105900D PID 000BB9A3 ??? SetupTarget() start SetupTarget() end - Took 746us Memory zones: Zone: "Default" Description: Default access mode Cortex-M0 identified. J-Link>