

Pocket s
Toolkit: Pocket-S: Open-source ESP32-S3 multi-tool alternative to Flipper Zero — Sub-1GHz, NFC, RFID, IR, BLE, WiFi with modular expansion in C
- Copper layers
- 4
- Thickness
- 1.6 mm
- Parts
- 32
- Nets
- 51
- Pads
- 0
- Tracks, vias
- 0, 0
- Pours
- 5
- Routed
- Not yet
- KiCad
- KiCad 8.0 (file 20231120)
- Created
- 3 Jun 2026
- Updated
- 7 Aug 2026
Overview
Pocket s is an open-source printed circuit board by ridhinva, from the ridhinva/pocket-s repository on GitHub, published under the MIT licence. It is a 4-layer board with 32 parts on 51 nets.
It is built around the CC1101RGPR, ESP32-S3-WROOM-1-N8R8 and PN5180A0ET/C3J, with the TP4056, BSS138 and TSOP38238 among its other parts. Its parts include 7 ICs, 7 switches, 3 diodes, 3 crystals and 2 capacitors. It belongs with the radio and wireless boards and the ESP32 boards of this library.
Main components
7CC1101RGPR
QFN-20-EP(4x4)-112dBm -40℃~+85℃ 1.8V~3.6V 12dBm 15.7mA 300MHz~348MHz、387MHz~464MHz、779MHz~928MHz 315MHz、433MHz、868MHz、915MHz 34.2mA 500Kbps ISM Power-on reset function、Supports RSSI function、CRC check function、Input sync word detection function SPI transceiver QFN-20-EP(4x4) RF Transceiver ICs ROHSTexas InstrumentsRF Transceiver ICsESP32-S3-WROOM-1-N8R8
SMD,25.5x18mm-104.5dBm -40℃~+65℃ 2.4GHz 20.5dBm 330mA 3V~3.6V 97mA Bluetooth5.0 ESP32-S3R8 On-board PCB Antenna UART、SPI、I2C、GPIO、I2S、USB SMD,25.5x18mm WiFi Modules ROHSEspressif SystemsWiFi ModulesPN5180A0ET/C3J
TFBGA-64TFBGA-64 RFID ICs ROHSNXP SemiconductorsRFID ICsTP4056
ESOP-8-40℃~+85℃ 1 1A 35uA 4.2V 4V~6.5V Charging IC Lithium Battery Support Support 恒流充电、恒压充电、涓流充电、自动再充电、充电终止、可编程充电电流、软启动、欠压锁定 ESOP-8 Battery Management ROHSUMWBattery ManagementBSS138
SOT-23-55℃~+150℃ 1 N-channel 1.1Ω@10V、1.2Ω@4.5V 1.2V 1.7nC@10V 17.5pF 340mA 350mW 50V 6.5pF N-Channel SOT-23 MOSFETs ROHShongjiachengMOSFETsTSOP38238
SIP-3-2.54mm-25℃~+85℃ 10mW 2.5V~5.5V 350uA 38kHz 45m ±45° SIP-3-2.54mm Infrared Remote Receiver (IRM) ROHSVishay IntertechnologyInfrared Remote Receiver (IRM)WS2812B
5mm X 5mm Surface Mount RGB LED with Intelligent ControlWorldsemiUncategorised
README
README.mdPocket-S — Open-Source ESP32-S3 Multi-Tool
A fully open-source, modular multi-tool platform built on ESP32-S3. Sub-1GHz RF • NFC • 125kHz RFID • IR • BLE • WiFi • Expandable Modules
Getting Started • Hardware • Firmware • KiCad • Docs • Contributing
Features
| Feature | Chip | Frequency | Protocols |
|---|---|---|---|
| Sub-1GHz RF | CC1101 | 300-928 MHz | ASK/OOK, FSK, GFSK, MSK |
| NFC | PN5180 | 13.56 MHz | ISO14443A/B, MIFARE, EMV |
| RFID | Discrete | 125 kHz | EM4100, HID, T5577 |
| Infrared | RMT | 38 kHz | NEC, RC5, RC6, Sony, raw |
| Bluetooth | ESP32-S3 | 2.4 GHz | BLE 5.0 |
| WiFi | ESP32-S3 | 2.4 GHz | 802.11 b/g/n |
MCU: ESP32-S3-WROOM-1 (Dual-core LX7 @ 240MHz, 8MB Flash, 8MB PSRAM) Display: 1.54" IPS LCD, 240×240, ST7789V Battery: 3.7V 1200mAh LiPo, USB-C charging Dimensions: 85 × 55 × 12 mm
Quick Start
git clone --recursive https://github.com/ridhinva/pocket-s.git
cd pocket-s/firmware/os
idf.py set-target esp32s3
idf.py build flash monitorHardware
KiCad Files
Full KiCad 8.0 project in hardware/kicad/:
pocket-s.kicad_pro— Project settings, net classes, design rulespocket-s.kicad_sch— Hierarchical schematic (11 sheets)pocket-s.kicad_pcb— 4-layer PCB (85×55mm) with placements, zones, silkscreen
Schematic Sheets
- Top Level — ESP32-S3 module, pin assignments
- Power Management — TP4056 charger, TPS62740 buck, battery protection
- USB + UART — USB-C connector, CH340C bridge
- Display — ST7789V LCD with backlight control
- SD Card — MicroSD socket, 1-bit SDMMC
- CC1101 Sub-1GHz — Transceiver + RF matching network
- PN5180 NFC — Controller + antenna matching
- IR + 125kHz RFID — IR TX/RX, RFID reader
- Buttons + UI — D-pad, buzzer, RGB LED
- Expansion Port — 20-pin FPC connector
- Debug Header — SWD programming header
PCB Specs
- Layers: 4 (F.Cu, GND plane, Power plane, B.Cu)
- Thickness: 1.6mm FR4, ENIG finish
- Min trace: 0.15mm, Min clearance: 0.15mm
- Impedance: 90Ω USB diff, 50Ω RF single-ended
- RF keepouts: CC1101, NFC antenna, RFID coil zones
BOM
See docs/BOM.md — ~85 components, $32-52/unit
Firmware (PocketOS)
Built on ESP-IDF v5.2. Architecture:
PocketOS
├── Bootloader (Secure Boot, OTA A/B)
├── HAL (SPI, I2C, UART, GPIO, ADC, PWM, Display, SD, IR, LED, Power)
├── Radio Drivers (CC1101, PN5180, RFID, IR, BLE, WiFi)
├── Core Services (App Manager, Event Bus, Storage, Settings, Modules, CLI, OTA, Crypto)
├── Applications (Sub-GHz, NFC, RFID, IR, BLE, WiFi, GPIO, Scripts, Settings)
└── UI Framework (Core, Menu, Widgets, Status Bar, Popups, Animations)Building
cd firmware/os
idf.py set-target esp32s3
idf.py menuconfig # optional: configure options
idf.py build flash monitorCLI Commands
PocketOS> help # Show all commands
PocketOS> cc1101 freq 433920000 # Set Sub-GHz frequency
PocketOS> nfc read # Read NFC card
PocketOS> ir tx nec 0x1234 # Send IR signal
PocketOS> module list # List expansion modulesPin Assignment
| Function | GPIO | Direction |
|---|---|---|
| SPI0_MOSI (CC1101) | GPIO13 | OUT |
| SPI0_MISO | GPIO12 | IN |
| SPI0_CLK | GPIO14 | OUT |
| CC1101_CS | GPIO15 | OUT |
| CC1101_GDO0 | GPIO16 | IN |
| CC1101_GDO2 | GPIO17 | IN |
| I2C_SDA | GPIO8 | BIDIR |
| I2C_SCL | GPIO9 | OUT |
| PN5180_IRQ | GPIO10 | IN |
| PN5180_RST | GPIO11 | OUT |
| SPI2_MOSI (LCD/SD) | GPIO35 | OUT |
| SPI2_MISO | GPIO37 | IN |
| SPI2_CLK | GPIO36 | OUT |
| LCD_CS | GPIO33 | OUT |
| LCD_DC | GPIO34 | OUT |
| LCD_RST | GPIO38 | OUT |
| LCD_BL | GPIO39 | PWM |
| SD_CS | GPIO40 | OUT |
| IR_TX | GPIO4 | OUT |
| IR_RX | GPIO5 | IN |
| RFID_TX | GPIO6 | OUT |
| RFID_RX | GPIO7 | IN |
| WS2812B | GPIO20 | OUT |
| BUZZER | GPIO21 | PWM |
| BTN_UP | GPIO46 | IN |
| BTN_DOWN | GPIO45 | IN |
| BTN_LEFT | GPIO2 | IN |
| BTN_RIGHT | GPIO3 | IN |
| BTN_OK | GPIO1 | IN |
| BTN_BACK | GPIO0 | IN |
| UART1_TX (Exp) | GPIO18 | OUT |
| UART1_RX (Exp) | GPIO19 | IN |
| EXP_SPI_MOSI | GPIO41 | OUT |
| EXP_SPI_MISO | GPIO42 | IN |
| EXP_SPI_CLK | GPIO47 | OUT |
| EXP_SPI_CS0 | GPIO48 | OUT |
| BAT_ADC | ADC1_CH0 | IN |
Module System
20-pin FPC expansion port supports plug-and-play modules with auto-detection via I2C EEPROM.
| Module | ID | Description |
|---|---|---|
| LoRa SX1276 | 0x04 | Long-range 433/868/915MHz |
| GPS NEO-6M | 0x03 | Location logging |
| CAN Bus | 0x05 | Vehicle CAN bus |
| RS-485 | 0x06 | Industrial bus |
| OLED 1.3" | 0x07 | Secondary display |
| Keypad 4×4 | 0x08 | PIN entry |
| Zigbee CC2652 | 0x09 | Zigbee 3.0 |
See docs/MODULE_DESIGN.md for module development guide.
Module Connector Pinout
Pin │ Function │ Dir
─────┼──────────────┼─────
1 │ 3.3V OUT │ PWR
2 │ 5V OUT │ PWR
3 │ GND │ PWR
4 │ GND │ PWR
5 │ SPI MOSI │ OUT
6 │ SPI MISO │ IN
7 │ SPI CLK │ OUT
8 │ SPI CS0 │ OUT
9 │ I2C SDA │ BID
10 │ I2C SCL │ OUT
11 │ UART TX │ OUT
12 │ UART RX │ IN
13 │ GPIO 1 │ BID
14 │ GPIO 2 │ BID
15 │ ADC │ IN
16 │ PWM │ OUT
17 │ Interrupt │ IN
18 │ Reset │ OUT
19 │ 3.3V OUT │ PWR
20 │ GND │ PWRDocumentation
- Architecture — System architecture and design decisions
- BOM — Complete bill of materials with costs
- Module Design — Expansion module developer guide
- Hardware Build — Step-by-step assembly guide
Contributing
See CONTRIBUTING.md. In short:
- Fork → Branch → Code → Test → PR
- Follow conventional commits (
feat:,fix:,docs:) - C code follows Linux kernel style
Roadmap
v1.0 ✅
- KiCad schematic + PCB
- PocketOS firmware core
- CC1101, PN5180, IR, RFID drivers
- BLE/WiFi stack
- Module expansion system
- Lua scripting, CLI, OTA
v1.1 (Next)
- BadUSB (USB HID)
- GPS/LoRa module drivers
- Signal recording to SD
- Universal remote DB
v2.0 (Future)
- Larger display option
- Companion mobile app
- Community module marketplace
License
Firmware: MIT License Hardware: CERN-OHL-P-2.0 (Open Hardware)
Made with ❤️ by the open-source hardware community
Parts
32| Qty | Value | Footprint | References |
|---|---|---|---|
| 4 | MountingHole | MountingHole:MountingHole_2.5mm | H1, H2, H3, H4 |
| 1 | 100nF | Capacitor_SMD:C_0402_1005Metric | C1 |
| 1 | 10k | Resistor_SMD:R_0402_1005Metric | R1 |
| 1 | 10uF | Capacitor_SMD:C_0603_1608Metric | C2 |
| 1 | 26MHz | Crystal:Crystal_SMD_2520-4Pin_2.5x2.0mm | Y4 |
| 1 | 32.768kHz | Crystal:Crystal_SMD_3215-2Pin_3.2x1.5mm | Y2 |
| 1 | 32MHz | Crystal:Crystal_SMD_2016-4Pin_2.0x1.6mm | Y1 |
| 1 | BSS138 | Package_TO_SOT_SMD:SOT-23 | Q1 |
| 1 | BTN_BACK | Button_Switch_SMD:SW_SPST_B3U-1000P | SW6 |
| 1 | BTN_DOWN | Button_Switch_SMD:SW_SPST_B3U-1000P | SW2 |
| 1 | BTN_LEFT | Button_Switch_SMD:SW_SPST_B3U-1000P | SW3 |
| 1 | BTN_OK | Button_Switch_SMD:SW_SPST_B3U-1000P | SW5 |
| 1 | BTN_RIGHT | Button_Switch_SMD:SW_SPST_B3U-1000P | SW4 |
| 1 | BTN_UP | Button_Switch_SMD:SW_SPST_B3U-1000P | SW1 |
| 1 | CC1101RGPR | Package_DFN_QFN:QFN-20-1EP_4x4mm_P0.5mm_EP2.5x2.5mm | U2 |
| 1 | ESP32-S3-WROOM-1-N8R8 | RF_Module:ESP32-S3-WROOM-1 | U1 |
| 1 | Expansion_20pin | Connector_FFC-FPC:Hirose_FH12-20S-0.5SH_1x20-1MP_P0.50mm_Horizontal | J1 |
| 1 | Green | LED_SMD:LED_0603_1608Metric | LED2 |
| 1 | MicroSD_Card | Connector_Card:SD_Hirose_DM3BT-SF-PEJ | U9 |
| 1 | PN5180A0ET | Package_DFN_QFN:QFN-40-1EP_6x6mm_P0.5mm | U3 |
| 1 | Piezo_85dB | Buzzer_Beeper:Buzzer_12x9.5RM7.6 | LS1 |
| 1 | RESET | Button_Switch_SMD:SW_SPST_B3U-1000P | SW7 |
| 1 | Red | LED_SMD:LED_0603_1608Metric | LED1 |
| 1 | SWD_Debug | Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical | J2 |
| 1 | TP4056 | Package_SO:SOIC-8-1EP_4.9x3.9mm_P1.27mm | U5 |
| 1 | TPS62740DSST | Package_SON:Texas_WSON-8-1EP_2x2mm_P0.5mm | U6 |
| 1 | TSOP38238 | OptoDevice:IRReceiver_Vishay_MOLDING-3 | Q2 |
| 1 | USB_C_Receptacle | Connector_USB:USB_C_Receptacle_HRO_TYPE-C-31-M-12 | U8 |
| 1 | WS2812B | LED_SMD:LED_RGB_5050-4 | D1 |
Similar boards
- 4 layers74.1 × 130 mm

- 2 layers80 × 50 mm

- 2 layers60.5 × 213.5 mm

Stasis
TheArcher2049/Momentum-Based-Launch-System-Stasis-
Stasis is a two-subsystem embedded hardware project inspired by the Sheikah Slate's Stasis rune from The Legend of Zelda: Breath of the Wild.
90 parts - 2 layers71.9 × 58.4 mm

Atmega32u4 hub pcb 1 3
Accessible-AAC/AAC-Devices
Augmentative and alternative communications device design files based on inexpensive and open source technologies.
65 parts3 - 4 layers166.1 × 91.4 mm

Venturi MainPCB
David207025/Venturi
Highly optimized line follower robot controlled by the ESP32-S31-WROOM-3 module
114 parts - 2 layers61 × 61 mm

- 2 layers

Breakbox
gl1tchxd-git/breakbox-hardware
Hardware files, PCB, Schematic, 3D-Models for the BreakBox
8 partsGPL-3.0 - 2 layers62 × 42 mm

Petvest hub
YangD5014/PETA-CUSTOM
PETA CUSTOM 采用服装形态而非项圈形态:IMU 传感器沿犬体脊柱与四肢根部分布式布置 (见 穿戴位置示意),才能获得躯干/四肢分段姿态——这是单一项圈 设备在物理上无法实现的。主板(Hub)集成电源、主控、语音与显示,通过软排线连接 6 个缝在服装 上的 IMU 卫星节点,整机重量与柔性针对犬类穿戴优化。
74 parts
Questions
What parts does the Pocket s use?
32 parts, built around the CC1101RGPR, ESP32-S3-WROOM-1-N8R8, PN5180A0ET/C3J and TP4056. 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 Pocket s KiCad files?
From the ridhinva/pocket-s repository on GitHub, at the commit this page was made from: the board is hardware/kicad/pocket-s.kicad_pcb and its schematic hardware/kicad/pocket-s.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Pocket s design in my own project?
Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).