Firmware Resources
Arduino Uno R3 & ESP32
Arduino IDE
The IDE is where you write and upload code. Both boards use it.
- Download Arduino IDE 2.x: arduino.cc/en/software
- Getting started guide: docs.arduino.cc/software/ide-v2
- Language reference (every function, explained): arduino.cc/reference/en
Arduino Uno R3 Clone
Your kit has a clone board that works the same as the official Uno but uses a CH340 USB chip. You probably need to install the driver before your computer sees it.
Driver
- CH340 driver (Windows + Mac): sparks.gogo.co.nz/ch340.html
After installing, unplug and replug your board. A port should appear under Tools > Port.
Pinout and Specs
- Official Uno R3 hardware page + pinout: docs.arduino.cc/hardware/uno-rev3
Learning
- Arduino built-in examples(File > Examples in the IDE) are the best place to start
- Arduino tutorials: docs.arduino.cc/tutorials
- Adafruit Learning System (beginner-friendly guides for basically every component): learn.adafruit.com
ESP32
Setup
The ESP32 needs a board package installed before it shows up in the IDE. Follow this guide:
- Official install guide: docs.espressif.com/projects/arduino-esp32/en/latest/installing.html
Board manager URL to paste into File > Preferences:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.jsonPinout and Specs
- GPIO reference(what each pin does, what’s safe to use): randomnerdtutorials.com/esp32-pinout-reference-gpios
- Official ESP32 datasheet: espressif.com/sites/default/files/documentation/esp32_datasheet_en.pdf
- Pin definitions in the arduino-esp32 source (SDA, SCL, etc.): github.com/espressif/arduino-esp32/.../pins_arduino.h
Learning
- Random Nerd Tutorials (best ESP32 resource on the internet): randomnerdtutorials.com/esp32
- Official arduino-esp32 API docs: docs.espressif.com/projects/arduino-esp32/en/latest
- Last Minute Engineers (clear component-by-component guides): lastminuteengineers.com
Libraries
Install any of these from Tools > Manage Libraries in the IDE.
| What you need | Library name | Docs |
|---|---|---|
| OLED display (SSD1306) | Adafruit SSD1306 + Adafruit GFX Library | learn.adafruit.com/adafruit-gfx-graphics-library |
| Button debouncing | Bounce2 | github.com/thomasfredericks/Bounce2 |
| Alternative display driver | U8g2 | github.com/olikraus/u8g2/wiki |
| JSON parsing | ArduinoJson | arduinojson.org |
Troubleshooting
Port not showing up (Uno clone)
Almost always a missing CH340 driver. Install it from the link above, unplug, replug.
Upload failing on ESP32
Hold the BOOTbutton on your board while the IDE shows “Connecting.....”. Release once the upload starts. Some boards need this to enter bootloader mode.
I2C device not found / OLED not working
Run this I2C scanner sketch to find your device’s address:
Most OLEDs are at 0x3C, some are at 0x3D.
General help
- Arduino Stack Exchange: arduino.stackexchange.com
- ESP32 forums: esp32.com/viewforum.php?f=19
- The #breadboard channel on Hack Club Slack
