## What is NUVOLA32?

NUVOLA32 is a compact, all-in-one development board built around the **ESP32S3-WROOM-1 N16R8** — 16 MB flash, 8 MB PSRAM, Wi-Fi 802.11 b/g/n, and Bluetooth 5 / BLE. Every peripheral a maker needs is already soldered on: a TFT display, an I2S audio DAC with amplifier and speaker, a MicroSD slot, 8 tactile buttons, CharliePlex LEDs, and a LiPo charger with USB-C input.

No breadboard. No wiring. Plug in, select board, upload sketch.

---

## Hardware overview

| Feature | Details |
|---|---|
| Module | ESP32S3-WROOM-1 N16R8 |
| Flash | 16 MB |
| PSRAM | 8 MB |
| Wireless | Wi-Fi 802.11 b/g/n + Bluetooth 5 / BLE |
| USB | Type-C via CH340C — Arduino IDE & ESP-IDF ready |
| Auto-reset | Built-in circuit — no manual BOOT button dance |
| Power | USB-C 5 V or LiPo — automatic source selection |
| Battery charger | MCP73831 with charge LED indicator |
| Battery monitor | ADC on GPIO6 |
| Display | ILI9341 2.4" TFT, 320×240 px, SPI1 |
| Audio | PCM5102 I2S DAC + 3 W Class-D amplifier |
| Speaker | Built-in 3 W + side volume potentiometer |
| Storage | MicroSD slot, SPI0 |
| Buttons | 8× tactile via PCF8574, I2C address 0x38 |
| LEDs | 6× CharliePlex on GPIO3, GPIO9, GPIO10 |
| Switch | Physical ON/OFF |
| Enclosure | Custom blue protective case |
| Manufacturer | PCBWay |

---

## Pin assignments

| Peripheral | Interface | Pins |
|---|---|---|
| ILI9341 display | SPI1 | CLK-16, MOSI-17, MISO-11, DC-38, CS-39, RST-48 |
| MicroSD | SPI0 | CLK-14, MISO-12, MOSI-13, CS-15 |
| PCM5102 audio | I2S | LRCK-4, BCLK-5, DATA-7 |
| PCF8574 buttons | I2C | SCL-18, SDA-21 |
| Battery monitor | ADC | GPIO6 |
| CharliePlex LEDs | GPIO | GPIO3, GPIO9, GPIO10 |
| Button mapping || UP-5, DOWN-1, LEFT-7, RIGHT-6, SW1-0, SW2-3, SW3-2, SW4-4 |

Full definitions: `SRC/config_NUVOLA32.h`

---

## GPIO expansion header (12-pin)

```
Pin 1  — VCC
Pin 2  — GND
Pin 3  — MISO  (SPI0, shared with SD)
Pin 4  — CLK   (SPI0, shared with SD)
Pin 5  — MOSI  (SPI0, shared with SD)
Pin 6  — GND
Pin 7  — SCL   (I2C)
Pin 8  — SDA   (I2C)
Pin 9  — GPIO8
Pin 10 — GPIO2
Pin 11 — GPIO1
Pin 12 — GND
```

---

## What you can build

**Retro gaming handheld** — TFT display, 8 directional/action buttons, and 3 W audio. Everything a portable console needs, no external hardware required.

**IoT node** — Wi-Fi handles MQTT, HTTP, and WebSocket out of the box. Attach sensors to the expansion header and stream data to any cloud dashboard.

**Wireless audio station** — the PCM5102 is an audiophile-grade I2S DAC. Combine Wi-Fi streaming, SD card playback, and DSP equalization. The side volume knob gives direct hardware control.

**Rapid prototype base** — RESET, BOOT, auto-reset, and USB-C mean zero configuration overhead. Idea to running firmware in minutes.

---

## Getting started (Arduino IDE)

1. Open **Preferences** and add the ESP32 boards URL:
```
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
```
2. Go to **Tools → Board → Boards Manager**, search `esp32`, install the Espressif package.
3. Select **ESP32S3 Dev Module** as the target board.
4. Connect NUVOLA32 via USB-C — the CH340C auto-reset circuit handles everything.
5. Select the correct COM port and upload your sketch.

---

## Open source

Schematics and PCB design files are in the GitHub repository.

- **Hardware** — CERN OHL v2 Permissive: fork it, modify it, ship it. Credit MakerSun.
- **Firmware** — MIT License: use freely in commercial projects, keep the copyright notice.

→ https://github.com/MAKERSUN99/NUVOLA32