Firmware simulation examples for STM32, ESP32-C3, and RP2040
Open working firmware projects, inspect supported boards and peripherals, and take a simulation from the browser into automated tests.
Start with a project that uses the board or connection you need. Open it in the editor, inspect the firmware and diagram, and fork it before making changes. These are the same public examples linked from the Sim86 homepage.
For a walkthrough of testing interactions between controllers, see connected-device testing with Sim86.
| Example | Boards and behavior | Open and inspect |
|---|---|---|
| Two controllers, one bus | ESP32-C3 and RP2040 share sensors, a display, and a serial connection | Open project |
| Interrupt handling | STM32F405 responds to a button and drives an LCD1602 | Open project |
| A display-driven device | ESP32-C3 firmware drives an ST7789 display from button inputs | Open project |
| Doom on RP2040 | Game firmware runs on an RP2040 with a color display | Open project |
Run an STM32 simulation
Section titled “Run an STM32 simulation”The STM32 simulator example uses an STM32F405 board with a button and display.
Open the interrupt example and inspect its main.rs and board wiring. Build the
firmware, flash the resulting ELF onto the STM32F405 component, and run it. Press
the button and watch the display. Change the response and rebuild to check that
the binary being executed is yours.
See STM32F405 board guide before replacing peripherals. To turn a visible response into a pass/fail check, use the complete firmware CI example.
Run an ESP32-C3 simulation
Section titled “Run an ESP32-C3 simulation”These ESP32 simulator examples target the ESP32-C3. Open the display example or
the two-controller project. The ESP32-C3 needs a
merged flash .bin containing the bootloader, partition table, and application.
Use the project’s build configuration to produce that artifact.
For wireless work, place the board in an RF Environment. The Wi-Fi Network documentation explains how traffic reaches firmware through simulated radio frames. See the ESP32-C3 guide for wiring and configuration.
Run an RP2040 simulation
Section titled “Run an RP2040 simulation”The two-controller example shows an RP2040 interacting with another MCU; Doom provides a larger firmware workload. Inspect the project’s toolchain and image before substituting your own build. See the XIAO RP2040 guide for dual-core behavior and debug output.
Use a different board
Section titled “Use a different board”XIAO nRF52840, Nucleo-F767ZI, and Pico 2 have their own firmware formats and pin maps. Use Getting Started to build a circuit for those boards; the STM32 example’s pin names and firmware are not interchangeable with them.
Need another controller? We add controllers on demand, free of charge for our users when you ship us a development board. Contact us to discuss the specific controller or component you need.
Keep a useful result
Section titled “Keep a useful result”Once the behavior is right, record what you expect and what would count as a failure. The SDK lets you load firmware and collect logs from automated runs. The CI guide adds assertions and a deliberate fault. The benchmark guide explains how to compare those observations with a physical board.