====BBC micro:bit v1.5====
{{boards:microbit_acc.jpg?100}}
\\ \\
{{boards:microbit_front.jpg?100}}
\\ \\
{{boards:microbit_back.jpg?100}}
\\ \\
{{boards:microbitv1.5.jpg?100}}
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 [[tools:nrf51|SDK]] are now obsolete so hardly viable to
develop an application with.
===Arduino===
[[tools:arduino#nordic_nrf5|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.
[[https://github.com/sandeepmistry/arduino-nRF5|Install guide for nRF51]]
Zadig is required to provide LIBUSB to the IDE. When using J-Link, this is found as "BULK interface (Interface 2)".
When trying to flash the Softdevice there will be an error about
fetching the zip file. To remedy this place the hex file in
the Arduino AppData folder.
AppData/Local/Arduino15/packages/sandeepmistry/hardware/nRF5/0.8.0/cores/nRF5/SDK/components/softdevice/s130/hex/s130_nrf51_2.0.1_softdevice.hex
The Softdevice hex file is located in the [[tools:nrf51|SDK]].
[[https://github.com/sandeepmistry/arduino-BLEPeripheral|Install guide for BLE]]
[[https://github.com/sandeepmistry/arduino-BLEPeripheral/tree/master/examples|Example code]]
===J-Link===
[[:tools:segger|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 [[https://www.segger.com/downloads/jlink/J-Link_OB_BBC_microbit|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. : 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]. : 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>
===Resources===
[[https://microbit.org/|Product homepage]]
[[https://tech.microbit.org/hardware/1-5-revision/|Version 1.5 hardware]]
[[https://github.com/bbcmicrobit/hardware/blob/master/V1.5/SCH_BBC-Microbit_V1.5.PDF|Version 1.5 schematic]]
[[https://www.segger.com/products/debug-probes/j-link/models/other-j-links/bbc-microbit-j-link-upgrade/|SEGGER J-Link for micro:bit]]
[[https://github.com/carlosperate/awesome-microbit|Programming resources]]