Simulate Your ESP32-S3 in a Browser Before You Solder

Cirkit Designer’s new browser-based ESP32-S3 simulator lets you test circuits and code before soldering to save time and avoid damage.

nickbild
3 days ago HW101
A browser-based ESP32-S3 simulator (📷: Cirkit Designer)

There is a huge divide between the physical and digital worlds. When you are flipping bits on a machine, you can move fast, rapidly iterating through designs to determine what works and what doesn’t. However, when you have to solder or connect jumper wires for a real-world hardware prototype, things move at a snail’s pace by comparison. And of course, you have to be more careful in this case as well. Whereas a bad digital design may simply not work, a bad circuit may release magic smoke and destroy the hardware.

For this reason, using a software simulator of a hardware platform is highly advisable before laying down any solder. After the software’s initial learning curve is in the rearview mirror, this approach saves a lot of time and spares a lot of components from being tossed in the trash. If you happen to be working on a lot of ESP32-S3-based projects, then a brand new simulator from Cirkit Designer is well worth checking out.

Adding an ESP32-S3 to the Cirkit Designer IDE (📷: Cirkit Designer)

The simulator was built from scratch in Rust and WebAssembly, and it runs 100% locally in a web browser. It includes an instruction-accurate, virtual ESP32-S3 CPU core to ensure that what you see on the screen perfectly matches what will happen on your workbench. Cirkit Designer notes that the software is still a beta release — so you should expect a few rough edges for now — but it is available for use today through the online Cirkit Designer IDE.

Out of the gate, the simulator already supports a wide range of peripherals commonly used in embedded projects. Developers can work with GPIO, UART, SPI, I2C, PWM, ADC, and hardware timers, all using familiar Arduino APIs like digitalWrite, analogRead, and Serial. Communication features are also robust, with Wi-Fi emulation capable of handling HTTP, HTTPS, MQTT, WebSocket, and UDP traffic — albeit limited to open networks for now.

There are, however, some limitations. Bluetooth and CAN (TWAI) are not yet implemented, and certain features like USB input and RMT receive functionality are only partially supported. Timing is also somewhat idealized — cryptographic operations complete instantly, and ADC conversions lack real-world delays. Still, these trade-offs are unlikely to impact most Arduino-based workflows.

Code the firmware like you would for real hardware (📷: Cirkit Designer)

To maintain real-time responsiveness, the simulator caps CPU frequency by default at 8 MHz, though users can scale this up for compute-heavy applications. Peripheral timing remains accurate regardless of this setting, preserving consistency for most use cases.

The ultimate goal of perfectly simulating the ESP32-S3 may not have been achieved just yet. However, the software should work well enough for most applications. If you do find a problem, be sure to let Cirkit Designer know so that these early bugs can be fixed quickly.

nickbild

R&D, creativity, and building the next big thing you never knew you wanted are my specialties.

Latest Articles