Podcast: Play in new window | Download
Subscribe: Apple Podcasts | RSS
Welcome Uri Shaked of Wokwi.com!
- Wokwi is an online microcontroller simulator built to make it easy to test different code types / platforms like Arduino, MicroPython, Rust, C, and more!
- Hardware targets:
- ESP32 (and -C3, -S2)
- AVR
- RP2040
- It was initially built to scratch own itch and get rid of lots of hardware on his desk. It all started as an Arduino simulator.
- Chris has had bad simulation experiences in early 2000s (felt so fake)
- Uri has talked about the simulator on Embedded.fm as well
- The Wokwi simulator is built on mutliple layers
- Schematic layer creates a netlist
- All the code get compiled to a binary
- The binaries get loaded into microcontroller core simulators (depending on the processor/instruction set)
- All things on github open source
- Simulating an LED is especially hard because of PWM and user screen refresh rates
- An often asked for feature is a built in debugger. Uri has been working on getting LLDB working.
- gdb compiled as x86 binary and then simulating the linux distribution
- Fast LED Library and the code required to work with its timing
- life of a packet:
- comple source code to hex file
- starts AVR simulator
- ESP32 connection to the internet
- The ESP32 uses the Xtensa instruction set (though the -C3 is a RISC V part)
- Espressif didn’t publish the instruction set manual
- Reverse engienering the wifi driver was tough and involved Ghidra, an open source reverse engineering tool. There is also an xtensa plugin in Ghidra and Uri was using gdb on the physical chip as well for comparison. Uri gave a talk about this at 2021 Hackaday Remoticon
- Uri published the Gateway code (in Go) on Githubwokwi-gw
- You can vote on what’s next on the roadmap by joining the Wokwi Club
- Cortex-M4 parts are coming soon
- Extending Wokwi – how to create your own chips
- Writing code for the external parts like an i2c keypad driver
- What is WebAssembly?
- How much is running in the browser vs talking back to the cloud?
- Micropython projects have very little interactions with the servers
- Blog post about Kasm
- Caching at the project / compiler level
- pic simulab
- How accurate should a simulator be?
- Hardware in the loop testing
- Show with Pete from Blue Clover
- Show with Akbar from Lager Data
- For the Skull, Uri recorded signals with Saleae, added that as a simulated output
- Saleae episode
- Join the Wokwi.com Club!
- Ask questions on the Wokwi Discord
- More than anything, Uri is trying to gather feedback, so please try it out and let him know what you think!