Cortex-M - WebAssemblyfreeware + commercial edition

Embedded system emulation.
Runs anywhere.

vemu is a multi-architecture embedded system emulator. The freeware build runs Cortex-M firmware in the browser via WebAssembly - pick a board, drop in an ELF, and run it right here. Embed it in your own site. Run it headless in CI.

$npm install @swedishembedded/vemu @swedishembedded/vemu-react
Loading emulator...
one-time buyout

Set vemu free

Fund the project once and we open-source all of vemu under Apache-2.0 - every architecture, SoC and peripheral, free forever for everyone. A single payment retires the entire roadmap below.

$10,000,000
single payment - Apache-2.0
Set vemu free
fund the roadmap

Fund VEMU development, feature by feature

Every epic and story below is a concrete piece of emulated hardware, priced and prioritized. Browse the roadmap, open any item for its scope and activity log, and (soon) boost what matters to you or fund it outright. 398 fundable stories across 58 epics - $2,942,000 to full coverage.

In progress 28

Partially funded - closest to shipping. Your funding finishes these next.

Open for funding 30

Not yet funded. Be the first to back this work.

Built for the full firmware lifecycle

From browser demos to production CI validation. Start with the freeware build - scale to the commercial edition when you need more.

freewareFreeware build - free to use and embed

🌐

Runs in the Browser

The freeware build ships as WebAssembly. Boot firmware in any browser, embed the emulator on your own website, or drop it into a documentation page.

πŸ”¬

ARM Cortex-M

Full nRF5340 peripheral model in the freeware build - UART, GPIO, timers, DMA, radio, crypto, and more. Real peripheral behaviour, not stubs.

⚑

Deterministic Core

Every device model runs deterministically - predictable, reproducible, and CI-friendly. Same input always produces the same output.

πŸ“¦

Embeddable npm Package

Install @swedishembedded/vemu and @swedishembedded/vemu-react. One initVemu() call and you have a live emulator inside your React app.

πŸ”

Peripheral Introspection

Query peripheral state, snapshot registers, send inspector commands, and stream events - all through a typed TypeScript API.

🧩

Extensible Views

Register custom React components as peripheral inspector panels. Build your own diagnostic UI alongside the emulator.

commercialCommercial edition - contact us for licensing

πŸš€

JIT Acceleration

A native JIT compiler lifts interpreter overhead entirely - run firmware at near-native speed for demanding workloads.

🧱

Broader Architecture Support

ARM Cortex-A, RISC-V, x86-64, and additional Nordic, ST, and NXP SoC targets - one tool for every level of the stack.

βͺ

Deterministic Replay

Record an execution once, replay it bit-exact at any later point. Reproduce intermittent bugs that disappear on real hardware.

πŸ”—

Compose Systems

Wire multiple virtual machines over virtual interconnects from a simple YAML file. Simulate full multi-node deployments.

🐞

GDB & DAP Debug

GDB RSP server and a DAP adapter for VS Code. Breakpoints, watchpoints, multi-core SMP, heterogeneous CPU+APU debug.

πŸ“Š

Trace & Coverage

Instruction-level execution trace and coverage bitmaps out of the box - see exactly what your firmware did on every run.

Start free. Scale commercially.

The freeware build is free to use and embed - no licence required, no sign-up. When you need JIT performance, additional architectures, or a commercial support agreement, we have you covered.

Freeware build
  • ARM Cortex-M - nRF5340
  • WebAssembly - browser + CI
  • npm packages, open API
  • Free to use and embed
Commercial edition
  • JIT acceleration
  • Cortex-A - RISC-V - x86-64 - more
  • GDB / DAP debug - replay - trace
  • Source licence + support