Parts ReferenceArduino Uno

Arduino Uno

The Arduino Uno (R3) in de:volt simulates an ATmega328P running at 16 MHz via avr8js. It executes compiled Intel HEX firmware in the browser WebWorker alongside the MNA analog engine.

Pinout

PinLabelNotes
D0–D13Digital I/OD3/D5/D6/D9/D10/D11 support PWM (analogWrite)
A0–A5Analog input6 analog channels; the ATmega328P has a 10-bit ADC, but it is not yet modelled so analogRead returns 0
5VVCC5 V supply rail
GND, GNDGroundTwo GND pins
RSTRESETPull low to reset the MCU
IOREFConnected to 5 V internally
3V3Not driven; placeholder pin
VINNot actively modelled
AREFAnalogue reference; not modelled

Onboard LEDs

LEDCondition
ON (green)Board has power (USB cable connected)
L (amber)D13 output is HIGH
TX (amber)UART transmit activity — only if avr8js exposes the register
RX (amber)UART receive activity — same caveat

TX/RX are unlit unless genuine UART activity is detected. They are not decorative.

Simulator behaviour

  • Digital output: each pin is either high-Z input, driven HIGH (5 V via small series resistance), or driven LOW (GND).
  • Digital input: the pin voltage is sampled each sim step and fed back into the MCU via PINX registers.
  • PWM (analogWrite): Timer 0/1/2 PWM is supported by avr8js; the duty cycle determines pin drive fraction.
  • ADC (analogRead): Not yet modelled. Calls to analogRead return 0.
  • Serial: UART hardware is present but TX/RX activity is only surfaced if avr8js exposes the USART register state.

Simulator limitations

  • No I2C, SPI, or EEPROM simulation.
  • No millis/micros timing (avr8js runs at simulated 16 MHz but wall-clock time differs).
  • No bootloader; firmware loads directly into flash.
  • Old saved circuits may have slightly misaligned wires after the S13 board resize — re-place the component to fix.

Loading firmware

Use the Sketch tab in the Inspector panel to upload a compiled .hex file or load a built-in example. See Writing Arduino Sketches for compilation instructions.