Learning Goals 5 min
Welcome to Level 4. For three levels you've treated "Arduino" as one board — the UNO R3. The real Arduino family is a dozen boards spanning tiny, cheap microcontrollers to powerful IoT boards. The certification exam expects you to know them. By the end of this lesson you will be able to:
- Name the main boards in the official Arduino family (UNO, Mega, Nano, MKR, Nano 33 BLE, Portenta) and roughly when to choose each.
- Identify the four properties that distinguish boards: processor, memory, radios, operating voltage.
- Spot the three biggest "UNO-shaped but different" gotchas: 3.3 V logic, native USB instead of FTDI, and different pinouts despite the same form factor.
Warm-Up 10 min
Lay out whatever Arduino-shaped boards you have. Likely candidates:
- UNO R3 — the original.
- Maybe a UNO R4 WiFi (the 2023 update with an ESP32-S3 co-processor).
- Nano (cheap clones often labelled "Nano V3").
- Nano 33 BLE / Nano 33 BLE Sense (from L03-26).
- An ESP-based board you used in L03-29..38 (NodeMCU, ESP32 DevKit).
Two quick questions
- What's the highest voltage you should ever apply to a UNO R3 GPIO pin? What about a Nano 33 BLE?
- You wrote a sketch using
analogRead(A0)on UNO. Will it return the same numbers if you upload to a Nano 33 BLE?
Reveal
- UNO R3 = 5 V. Nano 33 BLE = 3.3 V. Plug 5 V into a Nano 33 BLE's pin and you may damage the chip.
- No. UNO's ADC is 10-bit (0..1023); Nano 33 BLE's default is also 10-bit but the chip supports 12-bit (0..4095) and the voltage reference is 3.3 V instead of 5 V. So a pot reading "512" on UNO is reading "half of 5 V"; on a Nano 33 BLE it's "half of 3.3 V". Same number, different physical voltage.
New Concept · The board lineup 25 min
The official Arduino families
| Board | Chip | Voltage | RAM / Flash | Radio | Use for |
|---|---|---|---|---|---|
| UNO R3 | ATmega328P | 5 V | 2 KB / 32 KB | — | Learning, hobby, robust |
| UNO R4 Minima | RA4M1 (32-bit ARM) | 5 V (3.3 V GPIO option) | 32 KB / 256 KB | — | UNO drop-in upgrade, more memory |
| UNO R4 WiFi | RA4M1 + ESP32-S3 | 5 V | 32 KB / 256 KB | WiFi + BLE | UNO-shape with internet |
| Mega 2560 | ATmega2560 | 5 V | 8 KB / 256 KB | — | Lots of GPIO (54 + 16 analog) |
| Nano (V3) | ATmega328P | 5 V | 2 KB / 32 KB | — | Tiny breadboard-friendly UNO |
| Nano 33 BLE | nRF52840 | 3.3 V | 256 KB / 1 MB | BLE | BLE projects, low power |
| Nano 33 BLE Sense | nRF52840 + 9 sensors | 3.3 V | 256 KB / 1 MB | BLE | Edge AI, wearables |
| Nano ESP32 | ESP32-S3 | 3.3 V | 512 KB / 4 MB | WiFi + BLE | Modern small WiFi board |
| MKR WiFi 1010 | SAMD21 + NINA W102 | 3.3 V | 32 KB / 256 KB | WiFi + BLE | MKR-family IoT projects |
| Portenta H7 | STM32H747 (dual-core Cortex-M7+M4) | 3.3 V | 1 MB / 2 MB + external | WiFi + BLE | Industrial / pro, runs OpenMV, MicroPython |
The lineup splits into three eras:
- Classic AVR (UNO, Nano, Mega): 8-bit, 5 V, simple, robust. The learning standard.
- Modern 32-bit (Nano 33 BLE, MKR, UNO R4, Nano ESP32): ARM or RISC-V, 3.3 V, much more memory, radios on board.
- Pro (Portenta, Opta): industrial form factors, dual-core, video / Ethernet / industrial bus support.
The four properties that matter
- Processor: 8-bit AVR vs 32-bit ARM/RISC-V. 32-bit is faster and can run bigger libraries (TensorFlow Lite, OpenCV); 8-bit is more power-efficient and forgiving.
- Memory: RAM (working memory, < 1 ms) and Flash (program memory, persistent). 2 KB RAM is tight for anything with a web server; 256 KB RAM runs a small operating system.
- Radios: WiFi, BLE, Bluetooth Classic, LoRa, sub-GHz. Built-in vs add-on shield. Adds cost but removes wiring.
- Operating voltage: 5 V for AVR; 3.3 V for everything modern. A 5 V signal into a 3.3 V GPIO can damage the chip.
The three biggest UNO-shaped gotchas
- 3.3 V GPIO. The UNO R4 still has a 5 V supply rail but its GPIO can be configured 3.3 V. Many newer "UNO shape" boards (Arduino UNO R4 WiFi, Adafruit Metro M0) are 3.3 V GPIO. Old 5 V shields might still work if their inputs accept 3.3 V; old 5 V outputs into your board damage it.
- Native USB. Modern boards use the main chip's native USB instead of a separate USB-serial chip. Different reset behaviour (no auto-reset on serial connect on some), and they can present as USB HID, mouse, keyboard, MIDI.
- Different pinouts. The Mega's I²C pins are 20/21 not A4/A5. The MKR boards don't expose every GPIO on labelled pins. Always check the pinout diagram before connecting.
Worked Example · Pick a board for three real briefs 20 min
Brief 1 — "A wearable that detects when I wave and lights an LED"
Requirements: low power (battery), tiny, BLE optional, accelerometer, runs on a coin cell for hours.
Reveal one good choice
Nano 33 BLE Sense. Built-in IMU + microphone + low power + small form factor. With deep sleep, runs on a CR2032 coin cell for days. BLE for phone control if you want.
A UNO would also work in theory, but: no IMU on board, ~50 mA active = hours not days on coin cell, no BLE.
Brief 2 — "A web-controlled lamp running for years on mains power"
Requirements: WiFi, robust, lots of free memory, OTA updates nice-to-have.
Reveal one good choice
Nano ESP32 (modern, plenty of RAM, WiFi + BLE, USB-C) OR UNO R4 WiFi (UNO-shaped, drop-in for school projects, internet built-in). Both fine.
Avoid: plain UNO R3 with a separate WiFi shield — works but expensive and clunky. Avoid: Portenta H7 — overkill, 5× the price.
Brief 3 — "Replace 30 control wires with a single chassis with lots of GPIO"
Requirements: many digital inputs / outputs, no radio, lots of analog channels too.
Reveal one good choice
Mega 2560. 54 digital + 16 analog + 4 hardware UARTs. Direct UNO drop-in for code; just "way more pins". The right board for industrial fixtures, big LED matrices, organ-style instrument controllers.
Pattern in all three answers
The choice flows from the brief, not from the hype:
- List the must-haves (radio, voltage, GPIO count, memory).
- Filter the table from §3.
- Pick the cheapest board that meets the must-haves.
Basic 5 min
A sketch declares char buffer[3000]. Will it fit on UNO R3 RAM? On Nano 33 BLE?
Challenge 1 5 min
A sensor outputs 0–5 V. You want to feed it into a 3.3 V board like the Nano 33 BLE. A voltage divider scales it down.
The divider output is Vout = 5 × R2 ÷ (R1 + R2). R1 goes from the signal to the output. R2 goes from the output to GND.
- You have 1 kΩ, 2 kΩ, 10 kΩ and 20 kΩ resistors. Pick an R1 and R2 that give an output of 3.3 V or a little less.
- Build it on a breadboard. Use the UNO's 5 V pin as the "sensor".
- Wire the divider output to the UNO's A0. Print the voltage with
analogRead(A0) * 5.0 / 1023.
It works if your sum and the Serial Monitor agree to within 0.1 V. Both must be 3.3 V or less.
Challenge 2 5 min
This sketch was written for a UNO. It prints the voltage on A0 correctly there. It was moved to a Nano 33 BLE, which runs at 3.3 V. The sketch also turns on 12-bit readings.
const int SENSOR_PIN = A0;
const float VREF = 5.0;
const int ADC_MAX = 1023;
void setup() {
Serial.begin(9600);
analogReadResolution(12);
}
void loop() {
int raw = analogRead(SENSOR_PIN);
float volts = raw * VREF / ADC_MAX;
Serial.println(volts);
delay(500);
}- The pin is at 1.65 V, half of 3.3 V. Work out what the sketch prints on the Nano.
- Fix the two constants so the reading is right on the Nano.
- Calculate the size of one ADC step, in millivolts, on the UNO and on the fixed Nano.
It works if your fixed sketch prints 1.65 for a half-way input. Your Nano step must be at least four times smaller.
Challenge 3 · Make the data logger fit 10 min
This UNO logger will not upload. The IDE says it needs more memory than the UNO's 2 KB of RAM.
const int SENSOR_PIN = A0;
int readings[400];
float history[200];
char logText[300];
int count = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
readings[count] = map(analogRead(SENSOR_PIN), 0, 1023, 0, 100);
count = count + 1;
if (count == 400) {
count = 0;
}
delay(1000);
}- On a UNO an
intis 2 bytes, afloatis 4 bytes and acharis 1 byte. Calculate the bytes the three arrays use. - Change the sketch so it fits. You must still keep 400 readings and 200 history values.
- Upload it. Read the "Global variables use … bytes" line at the bottom of the IDE.
It works if the sketch uploads with global variables under 1,536 bytes (75 %). Then there is no "Low memory" warning.
Recap 5 min
The Arduino family is ~10 boards across three eras. Pick by listing requirements (voltage, GPIO count, memory, radio) and matching to the cheapest qualifying board. 5 V UNO-shaped boards are not always 5 V; modern boards are 3.3 V GPIO. Memory matters more than people think. Tomorrow we make this systematic — a board-picking checklist.
- Microcontroller
- A small all-in-one chip with CPU + memory + peripherals + GPIO. Arduino boards are essentially convenient packaging around microcontrollers.
- AVR vs ARM vs RISC-V
- Processor architectures. AVR = original 8-bit Atmel (UNO, Mega). ARM = 32-bit (Nano 33 BLE, MKR, Portenta). RISC-V = newest open architecture (some ESP32 variants).
- Flash / RAM
- Flash = program storage, persistent, KB to MB. RAM = working memory, volatile, KB to MB. Sketches need both.
- 3.3 V vs 5 V logic
- The voltage that represents "HIGH". Mixing without a level shifter risks damage on the lower-voltage chip.
- Native USB
- USB built into the main chip, not a separate USB-serial converter. Lets the board be a HID device (keyboard, mouse, MIDI), faster, but different reset behaviour.
- Form factor
- The physical shape + pin arrangement: UNO shape, Nano shape, MKR shape. Sometimes interchangeable for shields, sometimes not.
- Shield
- An add-on board that plugs into another Arduino's headers. UNO-shaped shields work on most UNO-shaped boards but pinouts may differ.
- Co-processor
- A second chip handling specific functions (e.g. ESP32-S3 for WiFi on UNO R4 WiFi). Keeps the main chip simple.
Extra Mission 5 min
Part 1 — Design a gadget, then pick its board
Pick a gadget you would like to own — a bike light, a pet feeder, a desk weather display. On paper, design it and choose the right board from today's table.
Your design must include:
- A name and the gadget's one job, in one sentence.
- A list of every input and output part.
- Its needs: radio or not, 5 V or 3.3 V parts, and a rough memory guess.
- The board you chose, and one reason each for rejecting two other boards.
Part 2 — Make it
Build the core of your gadget on the UNO, using parts from Levels 1–3. Get one input driving one output. In setup(), print the board you chose and why, so the reason travels with the code.
Bring back next class: your design sheet, the uploaded sketch, and a photo of the working circuit.