Arduino Lab

Loading Arduino Lab…

Arduino Lab — Virtual Boards & Sketches

Arduino Lab at /arduinolab is UtilBloom’s browser workbench for learning Arduino without hardware on your desk. Choose Uno R3, Nano, or Mega 2560, place LEDs, buttons, pots, servos, buzzers, ultrasonics, LCDs, NeoPixels, and more, draw wires to header pins, and edit sketches that look like familiar setup() and loop() code. The API simulator runs pinMode, digital I/O, analogWrite/Read, delay, tone, pulseIn, and Serial in your tab. Switch to AVR mode for avr8js HEX (built-in samples, upload, or allowlisted Compile & Run). ESP32 and Wi‑Fi are out of scope. Export pin voltages for Circuit Lab homework comparison—there is no live MNA co-sim. Nothing is uploaded for ordinary simulation.

What you can do

  • Board library with live pinout

    Inspect an Uno-style 2.5D board with digital, analog, and power headers. Pin highlights follow HIGH/LOW or PWM duty while the sketch runs; Nano and Mega are listed for future pin maps.

  • In-browser sketch editor

    Edit Arduino-shaped C++ in CodeMirror with syntax coloring for pinMode, digitalWrite, Serial, and constants such as LED_BUILTIN, HIGH, and INPUT_PULLUP.

  • Arduino API simulator

    Transpile a supported subset of setup/loop sketches to cooperative async JavaScript. delay yields so Stop works; a busy-loop watchdog protects the tab if you forget delay.

  • Parts and wiring

    Add LEDs, buttons, and pots; assign signal pins or click a header then attach a terminal to draw a wire. Buttons drive digitalRead with pull-up semantics; pots feed analogRead 0–1023.

  • Serial monitor and plotter

    Capture Serial.print and println output locally and plot recent numeric lines as a lightweight sparkline for sensor-style sketches.

  • AVR hex runner (avr8js)

    Run a built-in ATmega328P blink on PORTB5 or upload Intel HEX. USART bytes stream into the same Serial panel. Sketch API mode and AVR mode are separate runners.

  • Samples and local persistence

    Load Blink, Button LED, Serial hello, Fade PWM, and Pot read. Documents persist in localStorage; ?sample= deep links open examples without an account.

  • Privacy-first coursework

    Simulation, editing, and hex parsing stay client-side. Use it for homework prep and wiring practice without installing the Arduino IDE.

Worked examples

Blink the onboard LED

sample=blink

Open /arduinolab?sample=blink, keep Runner on API simulator, press Run, and watch the L LED near D13 toggle about twice per second.

Button lights an external LED

sample=button-led

Load Button LED, press the on-canvas button (or Press in the parts tray), and confirm the LED on D8 lights while the sketch reads INPUT_PULLUP on D2.

AVR built-in blink

Runner = AVR

Switch Runner to AVR, click AVR blink, and observe D13/L driven by avr8js from assembled firmware (not the .ino editor).

How it compares

Desktop Arduino IDE, PlatformIO, and cloud sims such as Wokwi remain the standard for full library ecosystems and hardware upload. Arduino Lab is UtilBloom’s free browser Arduino studio for API-level sketches, wiring practice, and optional avr8js hex—without claiming cycle-perfect parity with every shield or Wi‑Fi board. For analog breadboard MNA open /circuitlab; for 8086 coursework open /asmlab; for gate-level digital logic open /dldlab.

Questions

Is this a full replacement for the Arduino IDE?

No. The API simulator supports a teaching subset of Arduino C++. Libraries such as Servo, Wire, and SPI, interrupts, and multi-file sketches are out of scope. AVR mode runs HEX on avr8js rather than compiling .ino in the browser.

Which boards work today?

Uno R3, Nano (ATmega328P), and Mega 2560 are ready. ESP32 and other non-AVR boards are not in scope.

Are sketches uploaded to a server?

No. Transpilation, simulation, Serial, and hex parsing run in your browser. Documents persist in local storage on this device.

What is the difference between API simulator and AVR mode?

API mode executes transpiled setup/loop JavaScript against a pin and peripheral model. AVR mode loads Intel HEX (or the built-in blink assembly) into avr8js and watches PORTB5 and USART.

Can I use Circuit Lab’s breadboard with Arduino Lab?

They are separate products. Circuit Lab breadboard compiles discretes into analog MNA. Arduino Lab owns MCU firmware. Cross-links in docs point you to the right tool; there is no shared co-sim yet.

How do I stop a runaway loop?

Press Stop. Sketches without delay that spin too tightly hit a busy-loop watchdog and stop with an error asking you to add delay().

Related tools

Guides