Skip to the content
4 layers90 × 17 mmSpecVue, the printed circuit board in 3D

4-layer ESP32-S3 smart-glasses PCB with camera live streaming and on-device object classification over Wi-Fi.

Size
90 × 17 mm
Copper layers
4
Thickness
1.6 mm
Parts
76
Nets
71
Pads
290
Tracks, vias
922, 133
Pours
5
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
29 Jul 2026
Updated
20 Oct 2026

Overview

SpecVue is an open-source printed circuit board by Rujul-Rumale, from the Rujul-Rumale/SpecVue repository on GitHub, published under the CERN-OHL-P-2.0 licence. It is a 4-layer board of 90 × 17 mm with 76 parts on 71 nets, routed with 922 tracks and 133 vias.

It is built around the ESP32-S3, W25Q128JVSIQ and AMS1117-3.3, with the AP2121AK-1.3TRG1, MP34DT05TR-A and AO3401A among its other parts. Its parts include 36 capacitors, 17 resistors, 7 ICs, 4 diodes and 3 connectors. It belongs with the radio and wireless and wearables boards and the ESP32 boards of this library.

Main components

7

README

README.md

SpecVue

A 4-layer PCB for smart glasses featuring an ESP32-S3 with camera live streaming and on-device object classification over Wi-Fi.

Overview

This board is a compact (90×17 mm) smart glasses controller designed around the ESP32-S3. It captures video from a parallel-interface camera module, runs a lightweight object classifier (e.g., TensorFlow Lite Micro / ESP-DL) on the ESP32-S3, and streams results (bounding boxes, labels) over Wi-Fi — optionally with live video. Li-Po battery powered with built-in charging.

Block Diagram

text
USB-C ─┬─► MCP73831 (Charger) ──► Li-Po Battery
        │                              │
        └──► VSYS ◄────────────────────┘
               │
        ┌──────┼──────────┐
        │      │          │
   AMS1117  AP2121AK  LP2985
    3.3V      1.3V      2.8V
        │      │          │
   VDD_CPU  Core Rail  Camera IO
     & I/O    (1.3v)    (2.8v)

┌──────────────── Data Flow ────────────────┐

 Camera ──► ESP32-S3 ──┬─► TFLite Micro ──► Wi-Fi ──► Detected objects
 (DVP)      (capture)   │   (classifier)    (MQTT/UDP)
                        └─► Wi-Fi ──► Live video stream (optional)

Specifications

ParameterValue
Board dimensions90 mm × 17 mm
Layer count4 (F.Cu, In1.Cu, In2.Cu, B.Cu)
Board thickness1.6 mm
Copper weight1 oz (0.035 mm) all layers
DielectricFR4 (εr = 4.5)
Input powerUSB VBUS (5 V) or Li-Po battery (3.7–4.2 V)
Charger current500 mA (set by R1 = 2 kΩ)

Power Tree

RailVoltageRegulatorMax CurrentSupplies
VSYSBattery / 5V(direct from USB-Diode-BAT path)—Input to all regulators
3.3 V3.3 VAMS1117-3.3 (U4)800 mAESP32-S3 core + I/O, flash, mic
1.3 V1.3 VAP2121AK-1.3 (U6)400 mACamera core (1.3v rail)
2.8 V2.8 VLP2985-2.8 (U5)150 mACamera analog/digital IO (2.8v rail)

Power Path

  1. USB VBUS feeds the MCP73831-2-OT (U3) Li-Po charger IC.
  2. Battery connects through AO3401A (Q1) P-FET for reverse-polarity protection.
  3. The FET's output (VSYS) is shared between USB and battery — no external power mux needed (Q1's body diode provides OR-ing).
  4. VSYS powers all three LDOs in parallel.
  5. SS14 (D4) Schottky diode provides additional input protection.

Microcontroller

ESP32-S3 (U1), QFN-56 7×7 mm, 0.4 mm pitch.

  • Dual-core Xtensa LX7 @ up to 240 MHz
  • Built-in Wi-Fi 802.11 b/g/n + BLE 5.0
  • 512 kB SRAM, supports external PSRAM
  • 40 MHz main crystal (Y2, 2520 package, 10 ppm) with 15 pF load caps
  • CHIP_PU (pin 4) pulled high with a resistor, with reset button (Reset)

GPIO Allocation

GPIO(s)FunctionConnected To
GPIO4ADC / Battery monitorVoltage divider on VBAT
GPIO10–16, GPIO38–40, GPIO47–48Camera parallel data busJ4 FFC connector
GPIO17I2C SCLJ4 pin 5 (camera control)
GPIO18I2C SDAJ4 pin 4 (camera control)
GPIO0Boot mode selectionFlash button
GPIO46Strapping pinPull-up/pull-down resistors
U0TXD, U0RXDSerial consoleDebug UART

Note: Several GPIOs (21, 33, 37, 41–46) are available for future expansion or current sensing.

Memory

W25Q128JVS (U2) — 128 Mbit (16 MB) SPI flash, SOIC-8 package.

ESP32-S3 PinFlash PinNet
GPIO26 (SPICS0)CS#SPICS0
GPIO27 (SPID)DO/IO1SPID
GPIO28 (SPIQ)DI/IO0SPIQ
GPIO29 (SPIWP)WP#/IO2SPIWP
GPIO30 (SPIHD)HOLD#/IO3SPIHD
GPIO31 (SPICLK)CLKSPISCK

The ESP32-S3 uses its dedicated SPI2 controller for flash, with four I/O lines for Quad-SPI operation. The flash operates at 3.3 V from the VDD_CPU rail.

Camera Interface

J4 — Molex 5034802400, 24-pin 0.5 mm pitch FFC connector.

PinNetTypical Camera Function
1NC—
2, 222.8 VAVDD (analog supply)
3, 11GNDGround
4IO18/SDASCCB / I2C data
5IO17/SCLSCCB / I2C clock
6IO16D0 (data bit 0)
7IO15D1
8IO14D2
9IO13D3
10IO12D4
12IO11D5
13IO10D6
14IO48XCLK (camera master clock)
152.8 VDVDD (digital supply)
161.3 VDOVDD (core supply)
17IO47D7 (data bit 7)
18NC/Pull configCamera ID / detection
19IO38VSYNC (vertical sync)
20Pull-down (10 kΩ)PWDN (power-down, pulled low for normal operation)
21IO39HREF / HSYNC (horizontal sync)
23IO40PCLK (pixel clock)
24(shared pull)Reset / detection

The pinout is compatible with OV2640/OV5640/GC2035 8-bit parallel (DVP) camera modules. The 1.3 V rail (core) and 2.8 V rails (analog + digital IO) match typical CMOS sensor requirements.

Audio

MP34DT05TR-A (U7) — MEMS digital microphone, PDM output.

Mic PinNet
VDD3.3 V (from AMS1117)
GNDGND
CLKPDM clock from ESP32-S3
DATPDM data to ESP32-S3
LDOOutput from internal LDO (decoupled with 0.1 µF + 10 µF)

The MP34DT05TR-A uses a 4-pin custom footprint. The PDM clock and data connect to ESP32-S3 GPIOs for audio capture alongside video streaming.

USB-C

J1 — USB-C receptacle, 14-pin (USB 2.0 only).

FeatureImplementation
CC1, CC25.1 kΩ pulldown (R17, R14) — sink-only, no PD
D+, D-Series 33 Ω resistors for HS impedance matching
VBUSDirect to charger input
SHIELDConnected to GND via filter

No SBU lines or e-marker chip — this is a straightforward USB 2.0 sink configuration.

Battery Charger

MCP73831-2-OT (U3) — Single-cell Li-Po linear charger.

ComponentValuePurpose
R12 kΩPROG resistor — sets charge current to 500 mA
STATLED (D1)Charge status indicator — on during charging, off when done, blink for fault

Status LEDs

LEDColorDriven ByFunction
D1Red (0603)MCP73831 STATCharging status — on during charging, off when done
D2(0603)VDD_CPU via 470 ΩPower indicator (always on when 3.3 V present)
D3(0603)GPIO1 — ESP32-S3User indicator

All LEDs have ~470 Ω series current-limiting resistors.

Antenna

AE1 — 2.4 GHz PCB antenna (TI SWRA117D reference design), left-edge placement.

This is a PCB trace antenna based on Texas Instruments application note SWRA117D. It uses an inverted-F or meandered PCB trace pattern on the board edge with a ground clearance keep-out area beneath it. The RF feed uses a pi-network (C20, C21, L6) for impedance matching. No separate antenna component is needed — the antenna is part of the PCB itself.

PCB Stackup

LayerMaterialThicknessType
Top solder mask—0.01 mm—
F.CuCopper0.035 mmSignal + traces
PrepregFR4 (εr = 4.5)0.1 mm—
In1.CuCopper0.035 mmSignal routing
CoreFR41.24 mm—
In2.CuCopper0.035 mmSignal routing
PrepregFR4 (εr = 4.5)0.1 mm—
B.CuCopper0.035 mmSignal + traces
Bottom solder mask—0.01 mm—

Component Count

CategoryCount
Resistors (0402)17
Capacitors (0402)36
Inductors2
ICs7
Connectors3 (USB-C, FFC, pin header)
LEDs (0603)3
Push buttons2
Crystal1
Antenna1
Transistor (P-FET)1
Test points2
Schottky diode1
Total footprints~76

Getting Started

Prerequisites

  • KiCad 9.x or later (files saved with generator v9.0)
  • A 24-pin 0.5 mm pitch FFC camera module (OV2640/OV5640 compatible)

Opening the Project

bash
git clone <repo-url>
cd SpecVue
# Open SpecVue.kicad_pro in KiCad

First-Time Setup — Footprint Libraries

Two custom footprints live in the project root as .kicad_mod files. The first time you open the project, KiCad may show warnings like "Footprint library 'FFC24' not found". This is expected — the footprint geometry is already embedded in the PCB (the board displays correctly), but the schematic-to-footprint link needs a library entry.

To resolve (one-time setup):

  1. In KiCad, open Preferences → Manage Footprint Libraries (or PCB Editor → Preferences → Footprint Libraries)
  2. Switch to the Project tab
  3. Click Add empty row (folder+star icon) and configure each:
NicknameLibrary PathType
FFC24./MOLEX_5034802400.kicad_modKiCad
footprints./MP34DT05TR-A_STM.kicad_mod (or use folder containing it)KiCad

Alternatively, use a single entry pointing to the project root:

NicknameLibrary PathType
Custom./ (project directory)KiCad

Then update the footprints via Tools → Update Footprints from Library and reassign FFC24: and footprints: references to the new library.

(If you skip this step, the schematic will show footprint warnings, but the PCB opens and edits fine — the geometry is stored in the .kicad_pcb file.)

Generating Gerbers

File → Fabrication → Gerbers in KiCad (no pre-built gerbers are committed).

Bill of Materials

See SpecVue.csv — all components listed with DigiKey part numbers. Key ICs:

RefPartPackageDigiKey (or equivalent)
U1ESP32-S3QFN-56 7×7 mmEspressif
U2W25Q128JVSSOIC-8W25Q128JVS
U3MCP73831-2-OTSOT-23-5MCP73831T-2ATI/OT
U4AMS1117-3.3SOT-223AMS1117-3.3
U5LP2985-2.8SOT-23-5LP2985-2.8DBVR
U6AP2121AK-1.3SOT-23-5AP2121AK-1.3TRG1
U7MP34DT05TR-ACustom (MEMS mic)MP34DT05TR-A
J1USB-C (14-pin)HC-TYPE-C-16P-01AHCTL
J2Programming header1×02 pin header 2.54 mm—
J4Molex 503480240024-pin FFC 0.5 mm5034802400
Y240 MHz crystal2520 SMD 10 ppm—
Q1AO3401ASOT-23P-Channel MOSFET
D4SS14SMASchottky diode

Firmware Development

Use ESP-IDF or Arduino-ESP32 with the ESP32-S3 target. Key framework integration points:

  • Camera: esp32-camera library (8-bit DVP mode)
  • Classification: TensorFlow Lite Micro or ESP-DL for on-device inference; output is label + confidence per frame
  • Communication: Stream detected objects via MQTT or UDP to a companion app/server; optionally embed bounding boxes in a live video stream
  • Audio: I2S peripheral in PDM mode for the MEMS mic
  • Wi-Fi: ESP32 native Wi-Fi stack for video streaming and detection telemetry

Board Dimensions

text
  ┌──────────────────────────────────┐
  │  90.00 mm                        │
  │                                  │
  │                                  │ 17.00 mm
  │                                  │
  └──────────────────────────────────┘

The 90×17 mm aspect fits within a standard glasses temple arm. No mounting holes — the board is intended to be secured by enclosure pressure or adhesive within the frame.

License

This hardware design is released under the CERN Open Hardware Licence Version 2 - Permissive (CERN-OHL-P-2.0).

Copyright (c) 2026 Rujul Rumale.

You may use, study, modify, manufacture, and distribute this design and products made from it; you must retain the copyright and licence notices. See LICENSE for the full text.


Views

Parts

76
QtyValueFootprintReferences
150.1uFCapacitor_SMD:C_0402_1005MetricC10, C11, C15, C18, C19, C21, C22, C23, C24, C27, C28, C29, C32, C35, C41
1510uFCapacitor_SMD:C_0402_1005MetricC1, C2, C3, C5, C6, C7, C8, C9, C12, C16, C20, C25, C30, C34, C36
410KResistor_SMD:R_0402_1005MetricR3, R5, R21, R22
3LEDLED_SMD:LED_0603_1608MetricD1, D2, D3
212pFCapacitor_SMD:C_0402_1005MetricC4, C33
215pFCapacitor_SMD:C_0402_1005MetricC14, C31
21uFCapacitor_SMD:C_0402_1005MetricC13, C26
2200KResistor_SMD:R_0402_1005MetricR12, R19
233RResistor_SMD:R_0402_1005MetricR2, R18
24.7KResistor_SMD:R_0402_1005MetricR6, R7
2470RResistor_SMD:R_0402_1005MetricR16, R25
25.1KResistor_SMD:R_0402_1005MetricR14, R17
1+3V3TestPoint:TestPoint_Pad_D1.0mm+3V3
1100KResistor_SMD:R_0402_1005MetricR20
11KResistor_SMD:R_0402_1005MetricR15
124_0.5_FFCFFC24:MOLEX_5034802400J4
12KResistor_SMD:R_0402_1005MetricR1
12nHInductor_SMD:L_0402_1005MetricL3
14.7nHInductor_SMD:L_0402_1005MetricL6
140MHz(10ppm)Crystal:Crystal_SMD_2520-4Pin_2.5x2.0mmY2
1AMS1117-3.3Package_TO_SOT_SMD:SOT-223-3_TabPin2U4
1AO3401APackage_TO_SOT_SMD:SOT-23Q1
1AP2121AK-1.3TRG1Package_TO_SOT_SMD:SOT-23-5U6
1AntennaRF_Antenna:Texas_SWRA117D_2.4GHz_LeftAE1
1Conn_01x02_PinConnector_PinSocket_2.54mm:PinSocket_1x02_P2.54mm_VerticalJ2
1ESP32-S3Package_DFN_QFN:QFN-56-1EP_7x7mm_P0.4mm_EP4x4mmU1
1FlashButton_Switch_SMD:SW_Push_1P1T-SH_NO_CK_KMR2xxGFlash
1GNDTestPoint:TestPoint_Pad_D1.0mmGND1
1LP2985-28DBVRPackage_TO_SOT_SMD:SOT-23-5U5
1MCP73831-2-OTPackage_TO_SOT_SMD:SOT-23-5U3
1MP34DT05TR-Afootprints:MP34DT05TR-A_STMU7
1ResetButton_Switch_SMD:SW_Push_1P1T-SH_NO_CK_KMR2xxGReset
1SS14Diode_SMD:D_SMAD4
1USB_C_Receptacle_USB2.0_14PConnector_USB:USB_C_Receptacle_HCTL_HC-TYPE-C-16P-01AJ1
1W25Q128JVSPackage_SO:SOIC-8_5.3x5.3mm_P1.27mmU2

Similar boards

  • 2 layers33.8 × 65.9 mmE book, the printed circuit board in 3D

    E book

    LizOnAir/E-book

    A e-ink display that allows me to read my book at anytime and anywhere.

    97 parts
  • 2 layers36 × 68.9 mmChillyBoard, the printed circuit board in 3D

    ChillyBoard

    Stanlee1234/ChillyBoard

    A custom devboard featuring the esp32-s3.

    75 partsMIT
  • 4 layers62 × 46.9 mm4LayerLabProject, the printed circuit board in 3D

    4LayerLabProject

    ZharbolatDinmukhamed/Haptic-Glove-PCB

    A wrist-mounted PCB for a haptic feedback glove, developed as part of my Research Assistantship at the Tactile Laboratory, Nazarbayev University.

    122 parts
  • 4 layers68.6 × 53.3 mmRP2350-Eins, the printed circuit board in 3D

    RP2350-Eins

    red-scorp/RP2350-Eins

    RP2350-based board with Arduino Uno footprint

    72 parts5
  • 4 layers97 × 78 mmBlindo, the printed circuit board in 3D

    Blindo

    STB1019/BLINDO2.0

    Blindo is an open source project made by the members of IEEE Student Branch 1019 from Brescia University (Università degli Studi di Brescia) in collaboration with the organization (Informatici Senza…

    117 parts
  • 4 layers53.4 × 92.4 mmMain revb, the printed circuit board in 3D

    Main revb

    conol-ai/openwalkietalkie

    OpenMicroDial firmware — Rust/embassy on SiFli SF32LB52 (LilyGo T-Display SF32 dev board)

    142 parts3MIT
  • 4 layers96 × 71.9 mm260510-Digital hearing aid, the printed circuit board in 3D

    260510-Digital hearing aid

    RV-crtl/Digital-Hearing-Aid-G1

    Anna — controls · Ryan — BT/telecoil · Mariya — microphone/DSP · Naomi — speaker output · Interface contracts

    236 parts

Questions

How big is the SpecVue PCB?

It measures 90 × 17 mm and has 4 copper layers, 1.6 mm thick.

What parts does the SpecVue use?

76 parts, built around the ESP32-S3, W25Q128JVSIQ, AMS1117-3.3 and AP2121AK-1.3TRG1. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the SpecVue KiCad files?

From the Rujul-Rumale/SpecVue repository on GitHub, at the commit this page was made from: the board is SpecVue.kicad_pcb and its schematic SpecVue.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the SpecVue design in my own project?

Its repository publishes it under the CERN-OHL-P-2.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).