At a glance
What you get
Charging, battery-life, sleep and shutdown figures are bench measurements on V2.0 boards (V2.0 test report, in progress).
- 0.96″ 128×64 OLED built in — no wiring, working out of the box
- Complete battery power: USB‑C charging, cell protection, automatic USB/battery switching and battery monitoring
- Qwiic / STEMMA QT connector plus 12 GPIO on breadboard-friendly headers
- Ships with an open-source Weather Clock; Arduino and ESPHome / Home Assistant ready
- Published schematic, 3D model and test reports (V1.0: 120 of 122 tests passed; V2.0 in progress)
Specifications
Specifications
How to read the tags
measured V2.0 measured V1.0 bench measurement on the V2.0 or V1.0 boards (see the V2.0 test report and the V1.0 test report). V2.0 target design value, still to be confirmed in V2.0 testing (October–December 2026). All other values are from the design.
Processor & wireless
| Module | ESP32‑S3‑WROOM‑1‑N8 with on-module PCB antenna |
|---|---|
| Processor | Dual-core Xtensa LX7, up to 240 MHz |
| Memory | 512 KB SRAM · 8 MB flash · no PSRAM |
| Wi‑Fi | 802.11 b/g/n (Wi‑Fi 4), 2.4 GHz |
| Bluetooth | Bluetooth 5 (LE) |
Display
| Type | 0.96″ white monochrome OLED, 128 × 64 pixels |
|---|---|
| Controller | SSD1306, 4-wire SPI on dedicated pins (not shared with the headers) |
| Display pins | CS GPIO10 · DC GPIO9 · SCLK GPIO12 · MOSI GPIO11 · RESET GPIO14 |
USB & programming
| Connector | USB‑C, USB 2.0 full speed (native ESP32‑S3 USB) |
|---|---|
| Used for | Power, charging, programming, serial console and debugging. No driver needed on Windows 10/11, macOS or Linux. |
| Compatibility | Works with USB‑C chargers and C‑to‑C cables; ESD protection on the data lines |
| Buttons | BOOT (GPIO0, also usable as a user button) and EN (reset) |
Power & battery
| Power input | 5 V from USB‑C, or the 5V_IN header pin (input only, with a 0.5 A resettable fuse and a blocking diode). A standard 500 mA USB port is enough. measured V2.0 |
|---|---|
| Battery | Single-cell 3.7 V Li‑ion / LiPo, JST‑PH 2.0 mm connector, polarity marked. 600 mAh or larger recommended. |
| Charging | 303 mA constant current measured V2.0 to 4.2 V (measured 4.17 V at the cell), then tapers and stops at ≈8% of the charge current (23–25 mA) measured V2.0 |
| Charge time | About 5.4 h per 1000 mAh from empty on the test bench measured V2.0 |
| Battery protection | Over-charge, over-discharge (cuts off at ≈2.4 V; 2.43 V measured V2.0), over-current / short circuit, reverse battery polarity |
| Power switching | Automatic: runs from USB when plugged in (battery isolated), switches to the battery when USB is removed measured V2.0 |
| 3.3 V regulator | Low-dropout regulator, 600 mA |
| Monitoring | Battery voltage on GPIO4 and USB voltage on GPIO2, each through a ½ divider (ADC1) |
| Low-battery shutdown | The Weather Clock warns at 3.45 V and shuts down at 3.30 V, then sleeps until USB is plugged in measured V2.0 ESPHome configuration: same thresholds measured V2.0 |
Notes and V1.0 comparison
USB input: charging with Wi‑Fi on, the board draws 363 mA from USB. measured V2.0
Charger temperature: the charger chip runs at ≈55 °C while charging at 303 mA (limit 85 °C). measured V2.0
Charge time: 1,888 mAh in 10.3 h. The bench wiring adds resistance, so a cell plugged straight into the board charges a little faster.
Low-battery shutdown: the 3.30 V shutdown comes before the 3.3 V rail sags, so the board stops cleanly, with no reboots.
V1.0: charged at 201 mA and stopped at 7.6%; about 6.7 h per 1000 mAh on the bench. measured V1.0
Full results: V2.0 charging · V2.0 battery life and low-battery shutdown
Power consumption (typical, on battery)
| Weather Clock 2.1 | ≈41 mA — about 24 hours per 1000 mAh measured V2.0 |
|---|---|
| Wi‑Fi transmit peaks | Up to ≈400 mA for microseconds measured V1.0 |
| Deep sleep | 0.78 mA after a low-battery shutdown, above the 0.2–0.4 mA target measured V2.0 Most of it is likely the RGB LED’s standby current; we are confirming that. |
| After protection cutoff | ≈1.2 µA measured V2.0 |
Notes and V1.0 comparison
Weather Clock 2.1: on battery the Wi‑Fi radio is off between weather updates, so the board is not reachable on your network in between. The ≈41 mA is the average over a full discharge down to the 3.30 V shutdown.
Wi‑Fi always on (firmware 1.0): ≈70 mA, about 14–14.5 hours per 1000 mAh. measured V1.0 measured V2.0
ESPHome 1.1.1 (Wi‑Fi always connected for Home Assistant): about 14 hours per 1000 mAh (26.5 h on a 1.9 Ah cell). measured V2.0
Flat battery left connected: it reaches the protection cutoff in about 3–6 days, then the board draws ≈1.2 µA.
V1.0 deep sleep: 0.88 mA. measured V1.0
I/O & expansion
| Header pins | 2 × 12, 0.1″ (2.54 mm) pitch, rows 0.9″ (22.86 mm) apart — fits a standard breadboard |
|---|---|
| GPIO on headers | 12: GPIO 1, 5, 6, 7, 13, 15, 16, 21, 35, 36, 37, 39 |
| Analog inputs | GPIO 1, 5, 6, 7 (ADC1, usable with Wi‑Fi on); GPIO 13, 15, 16 (ADC2) |
| Serial | UART0 on the header (pins marked TX and RX), 3.3 V logic |
| Qwiic / STEMMA QT | JST‑SH 4-pin, I²C on GPIO8 (SDA) and GPIO18 (SCL), 3.3 V, 4.7 kΩ pull-ups |
| Power pins | 3V3 ×3 · GND ×6 · 5V_IN ×1 (input only) |
| Logic level | 3.3 V. GPIO are not 5 V tolerant. |
LEDs
| RGB status LED | Addressable SK6812 on GPIO48 |
|---|---|
| CHG | Yellow, on while charging |
| SYS ON | Green, on when the 3.3 V rail is up |
Mechanical
| Board size | 70.1 × 25.4 mm (2.76″ × 1.00″); ≈76.4 mm including the antenna overhang |
|---|---|
| Height | 13 mm overall, with the display fitted |
| Weight | 14 g |
| Mounting holes | None — mount by the header pins or in a breadboard |
| PCB | 4-layer |
| 3D model | STEP file for enclosure design |
Software
| Ships with | Weather Clock 2.1.6: local time and weather over Wi‑Fi, with Wi‑Fi setup from your phone. Open source (MIT license). |
|---|---|
| Arduino | “esp32 by Espressif Systems” board package 3.3.6 (not 3.3.7–3.3.10, which have a Bluetooth bug), board “ESP32S3 Dev Module” |
| ESPHome / Home Assistant | Ready-made configuration 1.1.1, installed from your browser: clock and status pages, battery level, RGB LED, updates over Wi‑Fi. Temperature and humidity with a Qwiic SHT4x sensor (not included). |
| Other | ESP‑IDF, MicroPython and CircuitPython should work with their generic ESP32‑S3 builds (not yet tested by us) |
Environment & compliance
| Operating temperature | −40 to +85 °C (ESP32‑S3 module rating). With a battery fitted, stay within the battery’s own limits. |
|---|---|
| Charging temperature | 0 to 45 °C (battery limit; the charger has no temperature sensor) |
| Certification | Not yet tested. FCC / ISED testing is planned before shipping. |
Pinout
Header pins
| Pin | J4 (left, antenna up) | J5 (right) |
|---|---|---|
| 1 | GND | GND |
| 2 | 3V3 | 3V3 |
| 3 | GPIO5 | GPIO1 |
| 4 | GPIO6 | GPIO13 |
| 5 | GPIO7 | GPIO39 |
| 6 | GPIO15 | GND |
| 7 | GPIO16 | GPIO37 |
| 8 | GND | GPIO36 |
| 9 | TX (UART0) | GPIO35 |
| 10 | RX (UART0) | GPIO21 |
| 11 | GND | GND |
| 12 | 3V3 | 5V_IN (input only) |
Qwiic connector: GND, 3V3, SDA (GPIO8), SCL (GPIO18). Pin names are printed on both sides of the board. The full diagram with every alternate function is in the pinout PDF.
Downloads
Documents
- Schematic (V2.0)
- Pinout diagram and user guide
- 3D model (STEP)
- Bill of materials (CSV)
- This spec sheet as a PDF
- V1.0 test report: 120 of 122 tests passed · V2.0 test report: in progress, with the battery discharge and charge results
- Battery test data (CSV, 10-second averages): V1.0 full discharge and full charge; V2.0 full discharge and full charge
- ESP32‑S3‑WROOM‑1 module datasheet (Espressif)
Preliminary specifications for Crescent City V2.0. Values may change before production. Questions: support@hwdesigns.us