Create or import
Start blank, use a breadboard, describe a circuit, open an example, or import source and firmware.
Open a working project with its complete vector circuit, source files, and supporting assets.
Choose the execution target first. The editor opens with code and circuit together.
Built-in PIC16F886 engine: compile the supported GCBASIC subset or load full-toolchain Intel HEX.
The product separates circuit support from MCU execution so a board picture is never mistaken for a simulator.
Built-in 35-instruction core; GPIO; ADC; timers; CCP/ECCP; SPI/I²C; EEPROM; EUSART; watchdog; comparators; HEX import; source maps; debugger and instruments.
Real local executionBundled cycle-accurate ATmega328P core (avr8js, MIT) running in a worker: GPIO, timers, ADC, USART, SPI, I²C, breakpoints, and stepping. Compiles common Arduino C++ sketches, or import Intel HEX from the Arduino IDE.
Real local executionVector packages, diagram compatibility, source workspace, and labeled example previews. WiFi and Xtensa instruction execution are not bundled.
Adapter required for executionPure-vector package import, pins and aliases, controls, mounts, reusable definitions, package signatures, and runtime/model registration APIs.
Data-driven extension systemDigital/high-impedance nets and modeled ADC/control voltages. It is not a SPICE solver and does not calculate current, heat, tolerances, or signal integrity.
Explicit behavioral boundaryScenario tests can build, run, stimulate controls and serial input, and assert pins, registers, watches, and serial text. A Playwright headless runner is downloadable.
Browser and CI executionProjects are portable; the active MCU compiler and runtime are explicit adapters rather than hidden assumptions.
Built-in adapters and trusted modules loaded below.
Security: adapter modules execute JavaScript with the same access as this page. Load only code you trust and verify package signatures separately.
export async function register(CircuitMCU) {
CircuitMCU.registerRuntimeAdapter('vendor-mcu', runtimeAdapter)
CircuitMCU.registerCompilerAdapter('vendor-compiler', compilerAdapter)
}Create a local signing key, sign the current project, or verify a package before importing it.
The private key stays in this browser profile. Ed25519 is preferred; ECDSA P-256 is the fallback.
Signatures cover canonical project contents and detect changes to source, firmware, vector packages, netlists, tests, and settings.
What this is, how to use it, and where to find more.
Wire a circuit, write firmware, and run both together in one browser tab. Arduino Uno sketches execute on a cycle-accurate ATmega328P core and PIC16F886 programs run on a built-in engine, with a source-level debugger, logic analyzer, oscilloscope, and serial monitor alongside. Built for students, makers, and anyone who wants to test a board before ordering parts.
Circuit Simulator — what runs, what does not, and how it compares.
What executes in the browser, what needs a local toolchain, and how this compares to the tools you already know.
Circuit Simulator is a free browser-based electronics bench where you wire a circuit, write firmware, and watch the two run together. Arduino Uno sketches execute on a cycle-accurate ATmega328P core and PIC16F886 programs run on a built-in engine, both with a source-level debugger, logic analyzer, and oscilloscope. Parts seat into a real breadboard, sensors answer with correct timing, and I2C displays show what your code actually sent. Nothing installs and no account is required.
Yes, completely free. There is no account, no project limit, no watermark, and no paid tier. Projects stay in your browser until you export or share them yourself.
Arduino Uno (ATmega328P) and PIC16F886 both execute real firmware in the browser with no server involved. ESP32 projects give you the circuit, source workspace, and wiring, and run firmware only when you connect the optional local companion service that provides ESP-IDF and QEMU.
Open the project files and select lib/chipino.h. It is generated from the compiler's own pin map, so it always matches what actually builds: D0 to D13 map onto PORTC and PORTB, A0 to A4 and AN0 to AN4 carry their ADC channel numbers, and whole-port names are defined too. A4 is PORTA.5 and A5 is PORTA.4, which mirrors the CHIPINO board wiring and is not a typo. A5 and AN5 both name PORTA.4, which has no ADC on this chip: it is digital I/O shared with the Timer0 clock input and the comparator 1 output, so ReadAD on it is a compile error by design. Editing the file has no effect; commands like Wait, Set, Dir, Print and ReadAD come from Great Cow BASIC itself, not from this header.
The panel behaves like a real HD44780: printing writes characters without clearing the rest of the line, so counting down from 10 to 9 leaves “90” unless you overwrite it. Print a trailing space after the number (Print Count : Print " ") or reprint the whole line. This matches what the physical LCD does, so code that looks right in the simulator looks right on hardware too.
Choose the Arduino Uno target on the start screen, write or paste your sketch, wire parts to the board pins, then press Run. The built-in compiler handles common Arduino C++ sketches, and you can import a compiled .hex from the Arduino IDE for anything it does not cover.
Yes. Intel HEX files load directly for both ATmega328P and PIC16F886 targets, so firmware built with the Arduino IDE, avr-gcc, MPLAB, or GCBASIC runs against your circuit. You pick the target on import so the wrong processor never silently accepts a file.
No. Compilation, execution, and analysis all happen inside your browser tab. Your firmware and circuits never leave the device unless you export a file or copy a share link, and the only network activity is anonymous page analytics.
All three can support Arduino-style circuit work, but they emphasize different workflows. Tinkercad Circuits centers visual learning, guided tutorials, and classroom use. Wokwi centers broad MCU, part, and library coverage with firmware-focused simulation. Circuit Simulator runs Arduino Uno as well as CHIPINO/PIC16F886, and keeps Build, Learn, Challenge, source debugging, electrical explanations, tests, and portable handoff in one local project. Its catalog and classroom ecosystem are still smaller, so choose by the work rather than a single winner.
Yes. Copy share link puts the entire project, including the circuit, source files, and settings, into the URL itself. Anyone who opens that link gets an editable copy, and nothing is stored on a server.
Not by itself. The built-in solver models digital nets, high-impedance states, and ADC voltages, which is what microcontroller work needs. You can export a standard SPICE netlist for device-level analysis, or connect a local ngspice service when current, noise, and tolerance actually matter.
Yes. Switch the workspace to Board and the circuit is placed on a board with real footprints, then auto-routed on two copper layers. Board geometry comes from the manufacturer's own published dimensions rather than an approximation, so an Arduino R3 shield lands on the 68.58 by 53.34 mm outline with the headers where a real board has them, including the 0.05 inch offset between the two digital blocks. Anything the router cannot finish stays visible as a ratsnest line instead of quietly disappearing. Placement and routing are a starting point, not a verdict: drag any footprint to move it, click a trace to put nodes on it, and route by hand the same way you edit a wire in the circuit view. You can also import a manufactured Gerber outline and drill file, and the board takes that measured geometry instead.
Yes, as a single zip holding the full set a fabricator expects: top and bottom copper, top and bottom solder mask, a top silkscreen legend, the board profile, and an Excellon drill file. Gerber X2 in millimeters, 4.6 format, absolute coordinates. The board profile is a real polygon rather than a bounding box, so an R3-sized board carries the tab and the chamfered corners a manufactured one has. Every file is generated from the same model the screen draws, so what you send out cannot drift from what you reviewed. Everything is produced in your browser, with no account and no upload.
No, and it is not trying to be. Those are full PCB design tools with multi-sheet schematics, design rule checking, and huge component libraries. Circuit Simulator covers the step before that: you get firmware running against a real circuit, then see it as a board and export manufacturing files for a simple two-layer design. For a first shield or a small breakout that is often the whole job. For a dense or multi-layer board, take the idea to a dedicated EDA tool.
Yes, within the built-in compiler's documented coverage. Common Arduino Uno sketches and supported library bridges compile in the browser. When a sketch or library falls outside that subset, build it with the Arduino IDE or another AVR toolchain and import the compatible Intel HEX. Arduino Uno simulation is supported; the app does not claim that every Arduino library compiles internally.
Yes. The layout adapts to small screens with a dedicated mobile workspace, though wiring dense circuits is easier with a mouse or trackpad on a larger display.