Board

Arduino Nano simulator, pushed into the breadboard

The Nano is the Uno's ATmega328P on a board 45 by 18 mm. Same core, same timers, same USART, same ADC, same firmware; two more analog inputs, and headers 0.6 inch apart, so it goes into the breadboard rather than beside it.

Start building free
  • 7peripheral areas modeled
  • 10projects ready to run
  • Real timeon your own machine
Arduino Nano: blinklive0.000 s 0.00x
Click to open it in the editor
The board is running real firmware right now. Click it to open the circuit in the editor.
The model

What is modeled

Taken from the board's own contract document and put in plain words, with what is missing beside it.

Modeled

Core
Every ATmega328P mnemonic with datasheet cycle counts, at 16 MHz
Timers
Three, in every waveform mode, including hardware PWM on the six marked pins
USART0
Wired to the serial monitor, paced at the baud rate you set
ADC
Eight channels: A0 to A5 on port C, and A6 and A7, which have no port pin at all
Interrupts
External and pin-change, with the real vector table
Sleep and EEPROM
Both, so an idle sketch costs almost nothing to simulate
The board
The real 45 by 18 mm outline, headers 0.6 inch apart, RESET at both ends on one trace

Not modeled

  • The USB-to-serial bridge, the FT232RL or the CH340. Serial reaches the monitor directly, and pins 0 and 1 stay plain GPIO.
  • The Nano Every, the Nano 33 and the rest of the newer family: they are different chips, and this is the ATmega328P v3.
  • The Arduino IDE library ecosystem. The runtime here is ours and Arduino-shaped, not the Arduino core.
Start here

Open one and press Run

Each of these opens in the editor exactly as it is drawn here.

Libraries

Arduino libraries that compile as they are

Paste a tutorial that includes one of these and it builds. For any other library, the build names the Mokxi header that does the same job.

Servo.h
attach, write, writeMicroseconds, read, detach, on any pin
Wire.h
I2C as a master; Wire.begin() puts it on A4 (SDA) and A5 (SCL)
SPI.h
transfer and transactions, on the board’s usual SPI pins
EEPROM.h
read, write, update, get, put and EEPROM[i], kept in the chip’s own 1 KB EEPROM
LiquidCrystal_I2C.h
the 16x2 LCD behind its I2C backpack
Adafruit_GFX.h and Adafruit_SSD1306.h
the 128x64 I2C OLED: text, pixels, lines, rectangles, circles, triangles and bitmaps
Adafruit_NeoPixel.h
WS2812 strips and panels
DHT.h
the DHT11 and DHT22: temperature, humidity and the heat index, as floats you can print

And 15 more, 23 in all: OneWire.h and DallasTemperature.h; Adafruit_BME280.h, Adafruit_BMP280.h and SparkFunBME280.h; RTClib.h; Adafruit_SHT31.h; Adafruit_PCF8591.h; Adafruit_ADXL345_U.h; LedControl.h; Adafruit_LEDBackpack.h; Adafruit_TCS34725.h; Adafruit_SGP30.h; Adafruit_INA219.h; Adafruit_ADS1X15.h; Adafruit_MCP23X17.h; Bounce2.h; HX711.h.

Learn

Tutorials that use this board

Each one ends in a running circuit, on this same board.

Questions

Is it free?

Yes. Every board and every part is on the free plan, with no account needed.

Which Nano?

The v3, on the ATmega328P. Not the Nano Every, the Nano 33 or the Nano ESP32, which are other chips.

Will an Uno sketch run on it?

Yes, and the other way around. It is the same chip and the same register map, so the same ELF runs on both.

What are A6 and A7?

Two extra ADC inputs the TQFP package bonds out. They can be read with analogRead and nothing else: no digitalRead, no output, no pull-up. An Uno has no pad for them at all.

Try it on your own firmware

What you build here runs on the board on your desk, unchanged. Nothing to install and no account needed.