Skip to content

YOUR BROWSER. YOUR WORKBENCH.

Online Arduino IDE
in Your Browser

Circuitera brings an Arduino code editor, online compiler, and circuit simulator to your browser. Write and upload sketches, then inspect real hardware with Serial Monitor—all without installing a desktop IDE.

No account required Compiles on your device
Blink.inoARDUINO UNO R3
// A small start. A real circuit.

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  digitalWrite(LED_BUILTIN, HIGH);
  delay(1000);
  digitalWrite(LED_BUILTIN, LOW);
  delay(1000);
}

MEET CIRCUITERA

Everything your code needs.
Nothing between you and your circuit.

Circuitera brings the editor, AVR compiler, USB uploader, and serial tools together in one browser workspace. Build with real Arduino C++, keep sketches on your device, and go from your first blinking LED to a multi-file project. Explore supported circuits in the simulator, ask Dot about code and circuit context when access is enabled, or use the separate Terminal for general programming.

A FOCUSED TOOLKIT

Powerful Arduino development tools.

The essentials, together. Ready when you are.

KNOW YOUR TARGET

Supported Arduino boards.

Select the exact board and bootloader before you verify or upload.

Arduino Uno R3 — ATmega328P

Optiboot

ATMEGA328P · 16 MHz

32,256 bytes application flash · 2 KB SRAM

Arduino Uno R3 guide

Arduino Nano V3 — ATmega328P (new bootloader)

New bootloader · Optiboot

ATMEGA328P · 16 MHz

30,720 bytes application flash · 2 KB SRAM

Arduino Nano V3 guide

Arduino Nano V3 — ATmega328P (old bootloader)

Old bootloader · ATmegaBOOT

ATMEGA328P · 16 MHz

30,720 bytes application flash · 2 KB SRAM

Arduino Nano V3 guide

ATmega328PB — 16 MHz

Compatible serial bootloader · UART0

ATMEGA328PB · 16 MHz

Requires a compatible UART0 serial bootloader and confirmed clone wiring. Extra PB peripherals and all libraries are not universally verified.

Arduino Mega 2560 — ATmega2560

STK500v2 · Wiring

ATMEGA2560 · 16 MHz

253,952 bytes application flash · 8 KB SRAM

Arduino Mega 2560 guide

These profiles cover Uno R3, classic Nano V3, Mega 2560, and the existing ATmega328PB target. Mega compile/upload is available; Mega simulation is not yet supported. They do not add support for Uno R4, Nano Every, Nano 33, or other processor families.

01 / VERIFY

Compile Arduino sketches in your browser.

AVR-GCC runs in a Web Worker using WebAssembly. Verify builds your current sketch, reports real compiler errors, and shows flash and static RAM usage.

Source code to firmware, locally.

No remote compilation service. Library dependencies, local headers, and project source files go through the existing compiler pipeline.

  • Click diagnostics to jump to the source line.
  • Reuse the compile cache as you iterate.
  • Check memory use before uploading; runtime stack and heap still need headroom.
Explore the Arduino compiler

02 / UPLOAD

A direct connection to your hardware.

Choose your USB serial port when Chrome asks. Circuitera uploads the compiled firmware with the selected board profile and reads it back before reporting success.

Your board. Your permission.

Use a data-capable USB cable and match the processor and bootloader. Connect board selects a port; Check board queries the bootloader without writing flash.

The guided hardware test performs a real upload. Web Serial requires a compatible browser and permission from you and, on managed devices, your administrator.

Browser upload guide

03 / UNDERSTAND

Listen to what you built.

Watch serial output, send a command, or turn sensor readings into a live plot. Match the baud rate to your sketch and keep debugging in the same workspace.

SERIAL MONITOR 9600 BAUD
> Ready
> temperature:23.7 humidity:51
> temperature:23.8 humidity:50
> temperature:23.6 humidity:51

Pause the display · add timestamps · export plot data

Serial Monitor guide

EXPLORE / SIMULATE

Try the circuit before the workbench.

Place supported components, wire their terminals, and explore how an Arduino sketch drives a circuit. Open Simulate from the IDE to get started.

Connect the code to the circuit.

Start with an LED and a current-limiting resistor. Match the sketch’s digital pin to the wiring, connect ground, and check polarity. Supported LEDs respond to simulated signals, including PWM and RGB channel mixing.

Simulation support varies by component. Confirm voltage, current limits, and wiring on real hardware; a successful simulation does not guarantee a physical circuit is correct.

Explore circuit simulation

CODE / RUN

A separate space for general programming.

Write ordinary C++ programs in Terminal, with their own documents, filename, input, and output. New workspaces default to C++.

From main() to real output.

Run compiles and executes C++ with a separate WebAssembly runtime. Read compiler diagnostics, send standard input, inspect exit status and timing, or press Stop to terminate a running program. This is separate from Arduino’s AVR firmware compiler.

The first run loads the runtime. Browser runtimes are not full desktop operating systems; other languages execute only when a real provider is configured.

Open Terminal C++ Terminal guide

DOT

A second perspective on your code.

Ask about your current project, understand compiler diagnostics, and review suggested changes before inserting them.

Keep your thinking in the workspace.

Stream explanations, explore pin usage, and compare code edits in the existing Dot panel. Nothing changes until you choose to insert it.

Online AI assistance · your access gate stays in place

Open IDE

BUILD ON WHAT WORKS

Include a library. Keep moving.

Servo motors, displays, sensors, and more. The IDE lists library versions, examples, dependencies, and test status for your selected board.

ServoWireSPIEEPROMSoftwareSerialLiquidCrystalDHTAdafruit GFXSSD1306NeoPixelNewPingIRremoteKeypadAccelStepper
Explore the current library catalog

Servo v1.3.0

Position hobby servos with hardware-timed pulses. Uses Timer1 on Uno.

Uno compile/link status: PASS. Dependencies: None. Check the IDE for other targets.

Wire v1.0

Talk to I2C devices on A4 (SDA) and A5 (SCL).

Uno compile/link status: PASS. Dependencies: None. Check the IDE for other targets.

SPI v1.0

Hardware SPI communication on pins 10–13.

Uno compile/link status: PASS. Dependencies: None. Check the IDE for other targets.

EEPROM v2.0

Store small values in the Uno’s 1 KB nonvolatile memory.

Uno compile/link status: PASS. Dependencies: None. Check the IDE for other targets.

SoftwareSerial v1.0

An additional software serial port on digital pins.

Uno compile/link status: PASS. Dependencies: None. Check the IDE for other targets.

LiquidCrystal v1.0.7

Drive an HD44780 character LCD with parallel data pins.

Uno compile/link status: PASS. Dependencies: None. Check the IDE for other targets.

Adafruit Unified Sensor v1.1.15

Shared sensor metadata and measurements for Adafruit drivers.

Uno compile/link status: PASS. Dependencies: None. Check the IDE for other targets.

Adafruit GFX v1.12.6

Graphics, text, bitmaps and fonts for compatible displays.

Uno compile/link status: PASS. Dependencies: Adafruit BusIO. Check the IDE for other targets.

Adafruit SSD1306 v2.5.17

Monochrome OLEDs over I2C or SPI. A 128×64 framebuffer uses 1 KB of SRAM.

Uno compile/link status: PASS. Dependencies: Adafruit GFX, Wire, SPI. Check the IDE for other targets.

Adafruit BusIO v1.17.4

Real I2C/SPI device and register access for Adafruit drivers.

Uno compile/link status: PASS. Dependencies: Wire, SPI. Check the IDE for other targets.

Adafruit NeoPixel v1.15.5

Control addressable RGB LEDs with the AVR timing implementation.

Uno compile/link status: PASS. Dependencies: None. Check the IDE for other targets.

NewPing v1.9.7

Ultrasonic ranging with optional Timer2-based asynchronous ping.

Uno compile/link status: PASS. Dependencies: None. Check the IDE for other targets.

IRremote v4.7.1

Receive and send infrared remote-control protocols. Uses Timer2 for reception.

Uno compile/link status: PASS. Dependencies: None. Check the IDE for other targets.

Keypad v3.1.1

Scan matrix keypads with debouncing and key states.

Uno compile/link status: PASS. Dependencies: None. Check the IDE for other targets.

AccelStepper v1.64

Nonblocking stepper motion, speed and acceleration profiles.

Uno compile/link status: PASS. Dependencies: None. Check the IDE for other targets.

LiquidCrystal_I2C v1.1.2

PCF8574 I2C character LCD backpack. The pinned johnrickman API uses init().

Uno compile/link status: PASS. Dependencies: Wire. Check the IDE for other targets.

PICK UP WHERE YOU LEFT OFF

Your work, in your workspace.

My Sketches autosaves in IndexedDB. Reopen a tab, rename a sketch, duplicate an experiment, or export everything before moving to another device.

Room for more than one file.

Convert to Project keeps the current sketch and turns it into main.ino. Add .cpp, .c, and .h files, then verify them together. Shared functions need declarations in headers.

Close a tab without deleting its sketch. Export .ino, project ZIP, or Export All for a separate backup. Clearing browser data removes local work. Signed-in cloud projects complement local copies; keep an export before changing browsers or domains.

Arduino IDE guide

SOURCE → FIRMWARE → CIRCUIT

A simple path from idea to hardware.

  1. 01

    Write

    Open a sketch or example. Edit Arduino C++ with autocomplete and pin hints.

  2. 02

    Verify

    Build locally. Read the compiler output and fix any errors.

  3. 03

    Connect

    Select the right board and allow Chrome to use its USB serial port.

  4. 04

    Upload

    Transfer the firmware, verify flash, and watch your circuit respond.

MADE FOR THE BROWSER

Built for Chromebooks and students.

Or your laptop. Circuitera runs in a browser tab; hardware access depends on the browser and device permissions.

ChromeOS, Windows, macOS

Use a current desktop Chrome or Edge browser with WebAssembly, Web Workers, and Web Serial. Other browsers may allow editing but lack the USB serial access required for uploads.

School devices

Your school must allow this site and serial-device access. Circuitera respects device policy; it does not bypass restrictions.

Arduino IDE for Chromebook

Ready for offline work

Prepare the offline compiler in the IDE while online. Cache the tools and libraries before disconnecting. Keep exports in case browser storage is cleared.

YOUR FIRST FIVE MINUTES

Start with one blinking LED.

  1. Open the IDE and select the board that matches your hardware.
  2. Choose Blink from Examples, or write your sketch.
  3. Click Verify and wait for a successful build.
  4. Connect the board with a USB data cable and select its port.
  5. Click Upload. Wait for flash verification, then check the LED.

A STARTING POINT

Learn by making something work.

Open examples as new sketches. Your current work stays saved.

The existing example unlock remains in place. Follow the wiring notes in each sketch and check library support for your board.

BEFORE YOU WIRE

Know what each pin can do.

The IDE’s Pinout panel follows your selected board. Use it to filter capabilities, or hover over literal pin arguments in the editor.

Arduino Uno R3 pin reference
PinCapabilitiesNotes
D0DIGITAL · UARTRX · shared with the USB serial connection
D1DIGITAL · UARTTX · shared with the USB serial connection
D2DIGITAL · INTERRUPTExternal interrupt INT0
D3DIGITAL · PWM · INTERRUPTExternal interrupt INT1 · PWM
D4DIGITALDigital input/output
D5DIGITAL · PWMDigital input/output · PWM with analogWrite()
D6DIGITAL · PWMDigital input/output · PWM with analogWrite()
D7DIGITALDigital input/output
D8DIGITALDigital input/output
D9DIGITAL · PWMDigital input/output · PWM with analogWrite()
D10DIGITAL · PWM · SPISS · SPI chip select
D11DIGITAL · PWM · SPIMOSI · SPI data to peripherals
D12DIGITAL · SPIMISO · SPI data from peripherals
D13DIGITAL · SPISCK · also connected to the onboard LED
A0ANALOG · DIGITAL10-bit analog input (0–1023). Also digital pin 14.
A1ANALOG · DIGITAL10-bit analog input (0–1023). Also digital pin 15.
A2ANALOG · DIGITAL10-bit analog input (0–1023). Also digital pin 16.
A3ANALOG · DIGITAL10-bit analog input (0–1023). Also digital pin 17.
A4ANALOG · DIGITAL · I2C10-bit analog input (0–1023). Also digital pin 18. SDA · shared with the SDA header.
A5ANALOG · DIGITAL · I2C10-bit analog input (0–1023). Also digital pin 19. SCL · shared with the SCL header.
5VPOWER5 V power rail, not a programmable I/O pin.
3.3VPOWER3.3 V regulated output, up to 50 mA. Not a programmable pin.
GNDGROUNDCommon ground reference. Join the ground of connected modules to GND.
VINPOWERExternal power input before the regulator. For first projects, power the Uno through USB.
RESETRESETPulling RESET low restarts the microcontroller. The reset button does the same.
SDAI2C · DIGITAL · ANALOGI2C data. Electrically the same pin as A4, not an extra independent pin.
SCLI2C · DIGITAL · ANALOGI2C clock. Electrically the same pin as A5, not an extra independent pin.

Classic Nano adds analog-only A6 and A7. Its I2C, SPI, and PWM assignments otherwise follow the ATmega328P mappings. For PB clones, confirm the physical header wiring.

A LITTLE HELP

Frequently asked questions.

What is Circuitera?

Circuitera is a browser-based Arduino IDE: write sketches, compile AVR firmware on your device, upload to supported boards, and inspect Serial Monitor or Serial Plotter output. The Arduino simulator and separate C++ Terminal offer additional ways to explore code.

Which Arduino boards does Circuitera support?

Arduino Uno R3, classic Arduino Nano V3 with the new or old bootloader, and Arduino Mega 2560 have compile/upload profiles. Mega uses ATmega2560 with its own pin map and memory limits. Mega simulation is not supported. These profiles do not support Uno R4, Nano Every, or Nano 33.

Can I simulate a circuit before connecting a board?

Yes. Open Simulate in the IDE and use supported parts with a compatible sketch. Simulation coverage varies by component and MCU. It does not guarantee real-world electrical behavior, and the Mega 2560 target cannot be simulated.

Do I need to install anything or make an account?

No desktop IDE, extension, Linux setup, or account is required. Open the IDE in Chrome. The existing example collection may ask for its local unlock password; this is separate from opening and using the editor.

Can I use a school Chromebook?

Yes, when the site and USB serial access are allowed. Uploading and Serial Monitor require Web Serial permission. If school policy blocks access, ask your teacher or IT administrator. You can still write and save sketches when browser storage is available.

Does Circuitera work offline?

In the IDE, open Offline and choose Prepare offline compiler while connected. Wait for the shell and all compiler assets to be cached. You can then edit, compile, and export offline. Storage can be evicted or cleared, so keep an Export All backup. Installation as an app is optional.

What if my board does not connect or upload?

Use a USB data cable, choose the matching processor and bootloader, close other serial applications, and keep D0/D1 free. Classic Nano boards offer New (115200 baud) and Old (57600 baud) profiles. A USB bridge name does not identify the processor. Check board queries the bootloader; Test My Board performs a real upload.

What does a compile or verification error mean?

Read the original output below the explanation. Click compiler diagnostics to jump to the source line. Check header spelling, declarations, and the preceding line. Flash verification failure means the uploaded bytes did not match; reconnect and retry before relying on that program.

Where are my sketches saved?

In this browser’s IndexedDB database, on this device and this site origin. Signing in enables private cloud projects and cross-device access. Local copies remain tied to this browser and site origin. Export All before moving domains, clearing browser data, or changing devices.

How do I use Serial Monitor and Plotter?

Match the baud rate to Serial.begin(). The plotter accepts one number per line or labeled values such as temperature:23.7 humidity:51. Upload automatically releases the port from the monitor. Pausing the display does not need to stop incoming serial data. Export CSV saves retained plot data.

Does a tested library guarantee my hardware will work?

A passing test means the pinned sketch compiled and linked. It does not validate your wiring or every API combination. Check the selected board’s library status in the IDE. Display buffers, heap, and stack also need room beyond the reported static RAM usage.

How do updates work?

Use the update notice to apply an available release, or choose Later. Active operations postpone the update; the app saves local work before an accepted reload. If an offline compiler asset is missing, reconnect and prepare the offline compiler again.

THE NEXT STEP IS YOURS

Make something
happen.

Open Arduino IDE