Skip to the content
2 layersSkyRizz ESPSOL, the printed circuit board in 3D

An open-hardware, coin-sized ESP32-S3 development board with an on-board secure element, 6-axis IMU, PDM microphone, buzzer, USB-C, and Li-Po charging — all on a 40.6 mm (1.6") round, 2-layer PCB.

Copper layers
2
Thickness
1.6 mm
Parts
101
Nets
85
Pads
321
Tracks, vias
649, 180
Pours
274
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
4 Jul 2026
Updated
16 Jul 2026

Overview

SkyRizz ESPSOL is an open-source printed circuit board by SkyRizzAI, from the SkyRizzAI/SkyRizz-ESPSOL repository on GitHub, published under the CERN-OHL-S-2.0 licence. It is a 2-layer board with 101 parts on 85 nets, routed with 649 tracks and 180 vias.

It is built around the CH340C, ESP32-S3-WROOM-1-N16R8 and DW03D, with the FSUSB42UMX, LSM6DS3 and ME6211C33M5G-N among its other parts. Its parts include 26 resistors, 17 capacitors, 8 ICs, 4 transistors and 4 connectors. It belongs with the ESP32 boards of this library.

Main components

12

README

README.md

ESPSOL DevKit

An open-hardware, coin-sized ESP32-S3 development board with an on-board secure element, 6-axis IMU, PDM microphone, buzzer, USB-C, and Li-Po charging — all on a 40.6 mm (1.6") round, 2-layer PCB.

Built for the Solana ecosystem: the tamper-resistant secure element, user buttons, and wireless connectivity make it a ready platform for hardware wallets, HID signers, Solana Pay terminals, and DePIN devices. See Built for the Solana ecosystem.

Developed by SkyRizz. Licensed under the CERN Open Hardware Licence v2 – Strongly Reciprocal (see LICENSE.md).

Top (front)Bottom (back)
ESPSOL DevKit frontESPSOL DevKit back

Overview

The ESPSOL DevKit is built around the ESP32-S3-WROOM-1-N16R8 module. It exposes 12 GPIO on two 8-pin 2.54 mm through-hole headers and integrates the peripherals needed for connected, secure, audio-capable applications without external wiring.

MCU moduleESP32-S3-WROOM-1-N16R8 (Xtensa dual-core LX7, Wi-Fi 802.11 b/g/n 2.4 GHz, Bluetooth LE 5)
Flash / PSRAM16 MB flash, 8 MB PSRAM (octal)
Secure elementNXP EdgeLock SE050 (I²C)
IMUST LSM6DS3 3-axis accelerometer + 3-axis gyroscope (I²C)
MicrophoneKnowles SPH0641LM4H-1 PDM MEMS microphone
Audio outMagnetic buzzer (KSSG33J12-3), transistor-driven
USBUSB-C (USB 2.0) with on-board HID / UART switcher — native USB (HID / USB-Serial-JTAG) or CH340C USB-UART, selected by GPIO13
PowerUSB-C 5 V or single-cell Li-Po; on-board charger + protection + power path
BoardØ 40.64 mm (1.6") circular, 2-layer FR-4

Pinout

Two 8-pin headers break out power and 12 GPIO. Pin 1 is the square pad on each header. Silkscreen labels are shown on the bottom side of the board.

J4 — left header

PinSilkSignalESP32-S3Notes
1GNDGND—Ground
2VCCVSYS—System rail (battery / USB, unregulated)
302GPIO2IO2General purpose
442GPIO42IO42General purpose
541GPIO41IO41General purpose
640GPIO40IO40General purpose
739GPIO39IO39General purpose
838GPIO38IO38General purpose

J3 — right header

PinSilkSignalESP32-S3Notes
1GNDGND—Ground
23V33V3—Regulated 3.3 V (from on-board LDO)
306GPIO6IO6General purpose
407GPIO7IO7General purpose
515GPIO15IO15General purpose
616GPIO16IO16General purpose
717GPIO17IO17General purpose
818GPIO18IO18General purpose

Power note: VCC/VSYS follows the battery/USB input voltage and is not regulated. Use the 3V3 pin for logic-level supply.

On-board peripheral connections (fixed)

These GPIO are dedicated to on-board devices and are not available on the headers.

ESP32-S3FunctionConnected to
GPIO9I²C SCLLSM6DS3 IMU + SE050 secure element
GPIO10I²C SDALSM6DS3 IMU + SE050 secure element
GPIO4IMU interruptLSM6DS3 INT1
GPIO5Secure-element resetSE050 reset
GPIO11PDM mic dataSPH0641LM4H-1
GPIO12PDM mic clockSPH0641LM4H-1
GPIO48BuzzerSS8050 driver → KSSG33J12-3
GPIO3Battery voltage sense (ADC1)VSYS via 22 k/22 k divider (½ scale)
GPIO13HID / UART switcher selectFSUSB42 mux — native USB (HID) ⇄ CH340 UART
GPIO43UART0 TXCH340C
GPIO44UART0 RXCH340C
GPIO19USB D+Native USB (via mux → USB-C)
GPIO20USB D−Native USB (via mux → USB-C)

GPIO35–37 are used internally by the octal PSRAM and are unavailable. GPIO8, GPIO14, GPIO45, and GPIO46 exist on the module but are not routed to the headers on this revision.


Buttons & LEDs

ControlSignalFunction
RSTENReset the ESP32-S3
BOOTGPIO0Boot / download mode (hold during reset)
SW1GPIO47User button
SW2GPIO21User button
SW3GPIO1User button

Two indicator LEDs — LD1 (red) and LD2 (blue) — are driven by the charger's STAT output and show battery charge status (charging / charge complete). They are not connected to a GPIO.


USB — HID / UART switcher

The USB-C connector (J2) is routed to one of two targets through an FSUSB42 2:1 USB switch (U8). GPIO13 selects which endpoint owns the data lines:

  • Native USB (HID) — the ESP32-S3 built-in USB PHY (D+/D− on GPIO19/GPIO20, via series resistors R29/R30). Enumerates as USB-Serial-JTAG for flashing and debugging, or as a USB HID device (keyboard/mouse/etc.) and other native device classes.
  • CH340C USB-UART — a classic serial bridge to UART0 (GPIO43/44), for legacy serial flashing and monitoring.
text
                                   ┌─ Port 1 (HSD1) ─ R29/R30 ─ ESP32-S3 native USB (HID / JTAG)
USB-C (J2) ─ SRV05-4 ESD ─ FSUSB42 ┤
                              ▲    └─ Port 2 (HSD2) ───────────── CH340C  ─ UART0 (GPIO43/44)
                              │
                          SEL = GPIO13

USB data lines are protected by an SRV05-4 TVS/ESD array (D2).


Power

StagePartFunction
InputUSB-C (5 V) / Li-Po via J1Dual power source
Battery connectorJ1 — MX1.25 2-pin (BATT)Single-cell Li-Po
ChargerMCP73831Single-cell Li-Po linear charger
Battery protectionDW03DOver-charge / over-discharge / short-circuit
Power pathAO3401A P-MOSFETAuto-select USB vs battery → VSYS
RegulatorME6211C33M5500 mA LDO, VSYS → 3.3 V
Reverse/steeringBAT60A SchottkyPower-path steering

VSYS is available on J4 pin 2 and regulated 3V3 on J3 pin 2. The system/battery rail can be read on GPIO3 (ADC1) through a 22 k/22 k divider — actual voltage ≈ ADC_reading × 2.


Using the on-board modules

All fixed peripherals hang off the pins below. Examples use the Arduino-ESP32 / ESP-IDF pin names; adapt to your framework.

I²C bus (IMU + Secure Element)

Both the IMU and the secure element share one I²C bus:

text
Wire.begin(/*SDA=*/10, /*SCL=*/9);   // GPIO10 = SDA, GPIO9 = SCL
Device7-bit addressResetNotes
LSM6DS3 (IMU)0x6A—SA0 tied low, CS tied high → I²C mode
SE050 (secure element)0x48GPIO5Pulse GPIO5 low to reset before init

LSM6DS3 IMU (accelerometer + gyroscope)

  • Bus: I²C at 0x6A (GPIO9/10).
  • Data-ready / motion interrupt: GPIO4 (INT1). Configure it as an input and attach an ISR for wake-on-motion / tap / free-fall events.
  • Use ST's LSM6DS3 driver or any generic library; poll or drive from the GPIO4 interrupt.

SE050 secure element

  • Bus: I²C at 0x48 (GPIO9/10).
  • Reset line: GPIO5 — drive low then high to reset the chip on power-up.
  • Tamper-resistant storage for private keys, credentials, and crypto operations. Use NXP's Plug & Trust middleware (or a lightweight I²C driver) to provision and use keys without exposing them to the ESP32.

PDM microphone (SPH0641LM4H-1)

  • Clock: GPIO12, Data: GPIO11.
  • Drive with the ESP32-S3 I²S peripheral in PDM-RX mode (i2s_pdm_rx).
  • Provide a clock in the 1–3.5 MHz range; the mic streams 1-bit PDM that I²S decimates to PCM.

Buzzer (KSSG33J12-3)

  • Signal: GPIO48 → SS8050 transistor driver (Q4) → buzzer, powered from VSYS.
  • Active high. For tones, drive GPIO48 with a PWM / LEDC channel:
text
ledcAttach(48, 2700 /*Hz*/, 8);   // ~2.7 kHz is near the buzzer's resonance
ledcWrite(48, 128);               // 50% duty = beep;  0 = silent

Battery / power monitoring

  • GPIO3 (ADC1) reads VSYS through a 22 k/22 k divider → multiply the reading by 2 for the real rail voltage.
  • Charge status is shown by the on-board LEDs (LD1 red / LD2 blue), driven by the MCP73831 STAT pin — no GPIO needed.

Buttons

Each button connects its GPIO to GND, so enable the internal pull-up and read active-low:

text
pinMode(47, INPUT_PULLUP);   // SW1
pinMode(21, INPUT_PULLUP);   // SW2
pinMode(1,  INPUT_PULLUP);   // SW3
ButtonGPIOTypical use
SW147User input / confirm
SW221User input
SW31User input
BOOT0Download mode (hold at reset); usable as a button in the app
RSTENHardware reset

USB HID / UART switcher

Set GPIO13 to choose what the USB-C port presents (see USB — HID / UART switcher):

text
pinMode(13, OUTPUT);
digitalWrite(13, LOW);    // one setting → ESP32-S3 native USB (HID / USB-JTAG)
digitalWrite(13, HIGH);   // other setting → CH340C USB-UART bridge

The two states map to Port 1 (native USB) and Port 2 (CH340). Confirm the polarity on first bring-up and lock it into your firmware default.


Built for the Solana ecosystem

The ESPSOL DevKit pairs a wireless MCU with a tamper-resistant secure element, user-confirmation buttons, and audio feedback — the exact ingredients for self-custody and on-chain device applications. The round form factor is designed to drop into wearables, fobs, and point-of-sale enclosures.

Example use cases:

  • Hardware wallet / cold signer — keep private keys inside the SE050, confirm transactions with SW1–SW3, and beep on approval. The ESP32-S3 talks to a companion app over BLE or Wi-Fi while keys never leave the secure element.
  • USB HID hardware authenticator — flip the HID/UART switcher (GPIO13) to native USB and enumerate as a HID device that signs transactions or acts as a 2FA/security key for a Solana wallet on a host computer.
  • Solana Pay terminal — a compact Wi-Fi point-of-sale that generates Solana Pay requests; add a display/reader on the J3/J4 headers and use the buzzer for payment-confirmation tones.
  • DePIN / IoT node — report sensor and motion data (LSM6DS3) or audio (PDM mic) to a Solana program, with the SE050 providing a hardware device identity for signed attestations.
  • Voice-triggered wallet / assistant — capture wake words or commands through the PDM microphone and trigger on-chain actions.
  • Wearable badge / tap-to-pay fob — battery-powered, round, and pocketable, with charge-status LEDs and Li-Po management already on board.

The hardware provides the secure key custody, connectivity, and I/O; the Solana integration (RPC, transaction building, signing flow) lives in your firmware and companion app.


Bill of materials

Interactive BOM: hardware/bom/ibom.html

RefPartDescription
U5ESP32-S3-WROOM-1-N16R8Wi-Fi + BLE SoC module, 16 MB flash / 8 MB PSRAM
U6SE050C2HQ1NXP EdgeLock secure element (I²C)
U7LSM6DS36-axis IMU (accel + gyro)
U8FSUSB42UMX2:1 USB 2.0 switch — HID / UART switcher
U4CH340CUSB-to-UART bridge (crystal-less)
U1MCP73831Li-Po charge controller
U2DW03DBattery protection IC
U3ME6211C33M53.3 V / 500 mA LDO
—SPH0641LM4H-1PDM MEMS microphone
LS1KSSG33J12-3Magnetic buzzer
Q5AO3401AP-channel MOSFET (power path)
Q2–Q4SS8050NPN transistors
D1BAT60ASchottky diode
D2SRV05-4USB TVS/ESD protection array
LD1 / LD2LED (red / blue)Charge-status indicators
J1MX1.25 2-pinLi-Po battery connector
J2USB-C 2.0 (16P)Power + data
J3 / J41×8 header, 2.54 mmGPIO / power breakout
SW1–SW3, BOOT, RSTTactile switchesUser / boot / reset buttons

Repository layout

text
hardware/                    KiCad project
  SkyRizzESPSOL.kicad_pro    Project
  SkyRizzESPSOL.kicad_sch    Schematic
  SkyRizzESPSOL.kicad_pcb    PCB layout
  bom/ibom.html              Interactive BOM
assets/                      Board renders
LICENSE.md                   CERN-OHL-S v2

License

Hardware design files are released under the CERN Open Hardware Licence Version 2 – Strongly Reciprocal (CERN-OHL-S v2). See LICENSE.md.

Parts

101
QtyValueFootprintReferences
1010KResistor_SMD:R_0402_1005MetricR3, R8, R9, R10, R11, R15, R16, R19, R20, R24
8100nCapacitor_SMD:C_0402_1005MetricC2, C8, C9, C13, C16, C18, C19, C20
41UCapacitor_SMD:C_0402_1005MetricC3, C6, C7, C12
310UCapacitor_SMD:C_0402_1005MetricC1, C4, C5
31KResistor_SMD:R_0402_1005MetricR1, R2, R7
3SELNIP_MOD:SW_TS31-46-35-BK-B-160-RA-SMT-TRSW1, SW2, SW3
3SS8050Package_TO_SOT_SMD:SOT-23Q2, Q3, Q4
2100KResistor_SMD:R_0402_1005MetricR22, R23
222Resistor_SMD:R_0402_1005MetricR29, R30
222KResistor_SMD:R_0402_1005MetricR12, R13
22K2Resistor_SMD:R_0402_1005MetricR17, R18
22U2Capacitor_SMD:C_0402_1005MetricC14, C17
25K1Resistor_SMD:R_0402_1005MetricR5, R6
2Conn_01x08_PinConnector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_VerticalJ3, J4
2G***kibuzzard-6A47B7C8kibuzzard-6A47B7C8, kibuzzard-6A47B7C8
2SW_PushButton_Switch_SMD:SW_SPST_B3U-1000PBOOT1, RST1
1100Resistor_SMD:R_0402_1005MetricR4
1220Resistor_SMD:R_0402_1005MetricR14
1470KResistor_SMD:R_0402_1005MetricR21
1AO3401APCM_JLCPCB:Q_SOT-23Q5
1BAT60ADiode_SMD:D_SOD-323_HandSolderingD1
1CH340CPackage_SO:SOIC-16_3.9x9.9mm_P1.27mmU4
1DW03DPackage_SO:TSSOP-8_4.4x3mm_P0.65mmU2
1ESP32-S3-WROOM-1-N16R8RF_Module:ESP32-S3-WROOM-1U5
1FSUSB42UMXNIP_MOD:IC_FSUSB42UMXU8
1G***kibuzzard-6A484E77kibuzzard-6A484E77
1G***kibuzzard-6A484D43kibuzzard-6A484D43
1G***kibuzzard-6A484D4Dkibuzzard-6A484D4D
1G***kibuzzard-6A47B6ABkibuzzard-6A47B6AB
1G***kibuzzard-6A484D52kibuzzard-6A484D52
1G***kibuzzard-6A48566Ekibuzzard-6A48566E
1G***kibuzzard-6A47B6ECkibuzzard-6A47B6EC
1G***kibuzzard-6A47B67Ekibuzzard-6A47B67E
1G***kibuzzard-6A47BCEBkibuzzard-6A47BCEB
1G***kibuzzard-6A484D48kibuzzard-6A484D48
1G***kibuzzard-6A47B6E1kibuzzard-6A47B6E1
1G***kibuzzard-6A485201kibuzzard-6A485201
1G***kibuzzard-6A47BD0Fkibuzzard-6A47BD0F
1G***kibuzzard-6A484D3Dkibuzzard-6A484D3D
1G***kibuzzard-6A484D35kibuzzard-6A484D35
1G***kibuzzard-6A484E6Ekibuzzard-6A484E6E
1G***kibuzzard-6A47B7CEkibuzzard-6A47B7CE
1G***kibuzzard-6A47BCCBkibuzzard-6A47BCCB
1G***kibuzzard-6A484E69kibuzzard-6A484E69
1G***kibuzzard-6A47BCB8kibuzzard-6A47BCB8
1G***kibuzzard-6A484E7Bkibuzzard-6A484E7B
1G***kibuzzard-6A47D016kibuzzard-6A47D016
1G***kibuzzard-6A484E64kibuzzard-6A484E64
1G***kibuzzard-6A47B661kibuzzard-6A47B661
1G***kibuzzard-6A484E72kibuzzard-6A484E72
1G***kibuzzard-6A47B686kibuzzard-6A47B686
1LED BLUELED_SMD:LED_0402_1005MetricLD2
1LED REDLED_SMD:LED_0402_1005MetricLD1
1LOGONIP_LOGO:S_LOGO_10G***
1LOGONIP_LOGO:alakazamG***
1LOGONIP_LOGO:dev_skyrizz_2G***
1LSM6DS3Package_LGA:LGA-14_3x2.5mm_P0.5mm_LayoutBorder3x4yU7
1MCP73831-2-MCPackage_DFN_QFN:DFN-8-1EP_3x2mm_P0.5mm_EP1.7x1.4mmU1
1ME6211C33M5Package_TO_SOT_SMD:SOT-23-5U3
1MX1.25mm-2PConnector_Molex:Molex_PicoBlade_53261-0271_1x02-1MP_P1.25mm_HorizontalJ1
1SE050C2HQ1_Z01SDZNIP_MOD:QFN40P300X300X33-21NU6
1SPH0641LM4H-1NIP_MOD:MIC_SPH0641LM4H-1MK2
1SRV05-4-P-T7PCM_JLCPCB:SOT-23-6_L2.9-W1.6-P0.95-LS2.8-BRD2
1USB_C_Receptacle_USB2.0_16PConnector_USB:USB_C_Receptacle_G-Switch_GT-USB-7010ASVJ2
1YX-SMD5020NIP_MOD:XDCR_KSSG33J12-3LS1

Similar boards

  • 2 layers77.6 × 116.3 mmSolana badge, the printed circuit board in 3D

    Solana badge

    spacemandev-git/solana-defcon-badge-26

    2026 Solana Defcon Badge

    113 parts2
  • 2 layers19 × 26.2 mmTrochi, the printed circuit board in 3D

    Trochi

    2j87/Trochi

    microdrone motherboard

    59 parts1
  • 2 layers90.4 × 89.6 mmPolicyBadge25, the printed circuit board in 3D

    PolicyBadge25

    mosfet0/policyatdc33

    Policy@DEF CON 33 Badge collaboration

    68 partsGPL-3.0
  • 2 layers76.6 × 141.1 mmOniondao badge, the printed circuit board in 3D

    Oniondao badge

    OnionDAO-git/oniondao-badge

    An open-source, hacker-conference-style electronic badge built around the ESP32-S3-WROOM-1-N8R8 (8 MB flash + 8 MB Octal PSRAM), with swappable RF / audio / storage modules, an e-paper (or TFT) display socket, a secure…

    190 parts17
  • 4 layers100 × 90 mmOpentouch s3, the printed circuit board in 3D

    Opentouch s3

    JoeMighty/opentouch-s3

    A modern remake of the Bare Conductive Touch Board: 12 capacitive touch electrodes, MP3/WAV/MIDI audio, and now WiFi, Bluetooth LE, USB-C, a proper LiPo power path, a fuel gauge, line-in, MIDI out, Qwiic and an RGB LED.

    185 parts
  • 2 layers8.6 × 5 mmNanoMIC, the printed circuit board in 3D

    NanoMIC

    washishi/NanoMIC

    Microphone board for M5Stack's GrovePort

    6 parts5MIT
  • 4 layers76 × 72 mmKeychain rev b panel, the printed circuit board in 3D

    Keychain rev b panel

    olerast67/emotion-keychain

    Брелок с OLED-экраном и анимированными эмоциями

    168 partsApache-2.0
  • 4 layers118 × 76 mmSmart led badge, the printed circuit board in 3D

    Smart led badge

    zgeez/Pixel-Badge

    Wearable 32x32 LED badge with Zephyr firmware, BLE control, passive NFC, and a Flutter Android app, built around a custom nRF52840 PCB.

    1,236 partsMIT

Questions

What parts does the SkyRizz ESPSOL use?

101 parts, built around the CH340C, ESP32-S3-WROOM-1-N16R8, DW03D and FSUSB42UMX. 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 SkyRizz ESPSOL KiCad files?

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

Can I use the SkyRizz ESPSOL design in my own project?

Its repository publishes it under the CERN-OHL-S-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).