Load firmware, then run it stage, then boot
Drop a .hex / .bin built for flash 0x0 (ARM GCC, no SoftDevice). Staging loads nothing into the core; Run boots. nothing staged
Presets run the same boot path as a dropped file: MBR vectors at 0x0, no UICR records. MicroPython continues straight into the direct-app boot at 0x1C000.
Device under test GPIO · 0x50000000
The 5×5 matrix is the only glow on this page. It stays dark until the firmware drives a row low and a column high with direction set to output.
Motion (LSM303)
Serial console UARTE0 · 0x40002000
Drains the firmware UART. Type below and press Enter; bytes drip one per consumed event, as on silicon.
OLED scope TWIM0 · 0x3C
128×64 add-on on TWIM0, address 0x3C. Live when firmware writes it.
SPI display SPIM2
240×240 add-on on SPIM2 (P13 SCK / P14 MISO / P15 MOSI / P16 CS). Firmware draws via CASET/RASET/RAMWR; ID read answers 04 85 52.
Audio PDM · I2S
Speaker P0.00 toggles/PWM1 SEQSTARTs counted live; mic P0.05 fills PDM from RUN_MIC P0.20 power + level knob. Press Enable once (browser gesture rule), then stream I2S.
Speaker: 0 toggles, 0 SEQSTARTs
BLE air SVC 0x60–0xBF
Optional live peer. Run python3 tools/ble_air_bridge.py, then enable. Off means addressed loopback.
Stack: down · links: none · queued events: 0 · battery: 87
JS + TS faces SVC bytes
The same BLE contract as the Node faces (run_js_face.mjs, ts_lang_face.mts), executed live in this page on a scratch core: ENABLE → CONNECT → CONNECTED (CENTRAL) → READ → READ_RSP=87. Real SVC bytes, loopback-resolved — no bridge needed.
npm package microbit-emu —
Install the published core + virtual parts in any JS/TS project. Same build the bench runs: WASM core, parts, firmware images, bench page.
Releases ship on tag push (publish.yml, dual registry: npmjs.org + GitHub Packages @danish9661/microbit-emu). Version below tracks the last published tag.
| Version | Notes |
|---|---|
| loading release history… | |
Depth probes live handshake
Live consumers for the handshake models — thermometer, comparator, knob, crypto, tag, slave engines, limits, setup, radio helpers, flash backend. Each runs its register handshake against the core and reports back. Probes program real peripheral state, so reset firmware after if it was running.
| Probe | Result | Detail |
|---|