I've been rewriting Cooja/MSPSim in C: unmodified MSP430 and Cortex-M firmware on a simulated 802.15.4 network, deterministic, and now also in the browser
Processing img bhee56t9ifyh1...
Cooja-NG emulates the actual chips, so it runs the exact ELF you'd flash, with no simulation build and no HAL stubs:
- MSP430 (Tmote Sky, Z1), CC2538 (Cortex-M3), nRF52840 (M4F), nRF54L15 (M33 with TrustZone-M, plus its RISC-V coprocessor), TI CC1352R1 / CC1312R7
- radios, timers, UARTs, GPIO and interrupts modelled. TSCH holds sync, and RPL networks form across different chips on one simulated 802.15.4 medium
- deterministic: same seed, same output, every console line stamped to the nanosecond, so it works as a CI regression gate.
- runs stock Zephyr and RIOT images run too: the video shows Contiki-NG doing UDP echo with Zephyr and RIOT joining a Contiki-NG RPL network
- GDB stub per node, a scriptable shell (send console input, expect output, inject faults), pcap export
- models are checked against real boards (nRF54L15 XIAO, CC1352R1LaunchPad); the comparisons are in the repo
We just released 0.4.0 with `cngsim`, a simpler CLI (`cngsim new rpl-udp -n 9 --layout grid`, `cngsim run x.yaml --ui`), editing a running network from the web UI, and the whole simulator compiled to WebAssembly. You can run the demos live in your browser on the real firmware, with output byte-identical to the native build.
Try it: mikroverk.github.io
Code (BSD-3): mikroverk/cooja-ng
I'd love to hear which boards and peripherals you'd want next, and where you'd use something like this: CI, protocol research, teaching?
1 point · 1 comment
Mentions
Try it in the browser, no install: mikroverk.github.io Code (BSD-3): mikroverk/cooja-ng
Try it: mikroverk.github.io Code (BSD-3): mikroverk/cooja-ng
I've been rewriting Cooja/MSPSim in C: unmodified MSP430 and Cortex-M firmware on a simulated 802.15.4 network, deterministic, and now also in the browser Processing img bhee56t9ifyh1... Cooja-NG emulates the actual chips, so it runs the exact ELF you'd flash, with no simulation build and no HAL stubs: - MSP430 (Tmote Sky, Z1), CC2538 (Cortex-M3), nRF52840 (M4F), nRF54L15 (M33 with TrustZone-M, plus its RISC-V coprocessor), TI CC1352R1 / CC1312R7 - radios, timers, UARTs, GPIO and interrupts modelled. TSCH holds sync, and RPL networks form across different chips on one simulated 802.15.4 medium - deterministic: same seed, same output, every console line stamped to the nanosecond, so it works as a CI regression gate. - runs stock Zephyr and RIOT images run too: the video shows Contiki-NG doing UDP echo with Zephyr and RIOT joining a Contiki-NG RPL network - GDB stub per node, a scriptable shell (send console input, expect output, inject faults), pcap export - models are checked against real boards (nRF54L15 XIAO, CC1352R1LaunchPad); the comparisons are in the repo We just released 0.4.0 with `cngsim`, a simpler CLI (`cngsim new rpl-udp -n 9 --layout grid`, `cngsim run x.yaml --ui`), editing a running network from the web UI, and the whole simulator compiled to WebAssembly. You can run the demos live in your browser on the real firmware, with output byte-identical to the native build. Try it: mikroverk.github.io Code (BSD-3): mikroverk/cooja-ng I'd love to hear which boards and peripherals you'd want next, and where you'd use something like this: CI, protocol research, teaching?
Cooja-NG 0.3.0 is out: a scriptable shell for firmware testing, Renode co-simulation, TrustZone-M on the nRF54L15 checked against real hardware, and runs that replay in the browser. Watch runs: mikroverk.github.io Release: github.com/mikroverk/cooja-ng/releases/tag/v0.3.0 #IoT @contiki_ng t.co