

SynthPass
An open-source protocol & hardware design for to detect nose boops & transfer simple data, designed for protogen/synth fursuits
- Size
- 19.1 × 16.8 mm
- Copper layers
- 4
- Thickness
- 1.6 mm
- Parts
- 17
- Nets
- 24
- Pads
- 73
- Tracks, vias
- 148, 41
- Pours
- 2
- Routed
- Yes
- KiCad
- KiCad 10.0 (file 20260206)
- Created
- 30 Jan 2026
- Updated
- 18 Oct 2026
Overview
SynthPass is an open-source printed circuit board by JackToaster, from the JackToaster/SynthPass repository on GitHub, published under the GPL-3.0 licence. It is a 4-layer board of 19.1 × 16.8 mm with 17 parts on 24 nets, routed with 148 tracks and 41 vias.
It is built around the CH572D and SM04B-SRSS-TB. Its parts include 4 resistors, 3 capacitors, 2 connectors, 1 IC and 1 diode. It belongs with the audio and music boards of this library.
Main components
2README
README.mdSynthPass
An open-source protocol & hardware design for to detect nose boops & transfer simple data, designed for protogen/synth fursuits.
Built to solve a very important problem. With SynthPass, you won't have to break character or pull off your paws and fumble with your phone to trade contact details. Just nose-boop, and SynthPass will automagically trade a small chunk of user-defined data, like a web link, username, or anything else that can fit in a couple hundred bytes of plain text. Then plug in your SynthPass at the end of the day and download all the data you've collected.
SynthPass is also designed to easily interface with nearly any protogen/synth fursuit. SynthPass hardware can be powered by a single 3.3V supply, and supports digital several digital interface options.
Features
-
Simple interface to fursuits
- GPIO: pin HIGH (3.3V) when booped, LOW (0V) when not booped. Additional pin that's high
- UART: Message for boop start/end
- I2C: Register for boop status
- Don't want to modify your firmware or connect the digital pins to your controller? The GPIO output can also drive an LED to indicate when another SynthPass is nearby and when a nose boop is detected.
-
Advanced interface
- UART/I2C Only
- Approximate range & unique ID of peer prior to boop
- Extra boop parameters (e.g. boop expression, color, name/species of peer)
-
USB interface
- Mass storage device for downloading collected data. Simply plug in the SynthPass into a computer and open
MESSAGES.HTMin your web browser.- Edit the files
ME/BOOP.TXTandME/PROX.TXTto set your own messages to be transferred on proximity/boop - Edit
ME/SYNTHPAS.INIto change settings for LED behavior, boop range, and enable proximity messages
- Edit the files
- Software bootloader switch for firmware updates over USB - send the character 'b' to the USB TTY that appears to switch to the USB bootloader.
- Mass storage device for downloading collected data. Simply plug in the SynthPass into a computer and open
Hardware
SynthPass is based on the ultra-low-cost WCH CH57x series microcontrollers.
-
2.4GHz radio
- Boop detection by RSSI (radio signal strength)
- ISLER protocol for peer-to-peer and broadcast communication without need for pairing
- CH572 also supports BLE (possibility for future companion app?)
-
Protogen/Synth Suit Interface
- 4-pin JST SH connector, compatible with QWIIC/Stemma QT (TODO?)
- Single 3.3V input (possibly support 5V input with some hardware designs)
- Option for I2C, UART, or GPIO communication protocol
- Designed for easy integration with most synth/protogen heads
Software
Using CH32Fun + iSLER library for communication
SynthPass communicates using BLE advertising frames with a fixed MAC address so that SynthPassdevices can easily be detected.
Communication (currently) uses a fixed channel (Channel 37) and PHY mode (1Mbps).
TODO document stuff better :3
Development
Building SynthPass
SynthPass uses PlatformIO to manage the firmware toolchain, and the ch32fun framework to handle the ch572's hardware interfaces.
To compile the firmware, you'll need to:
- Clone the SynthPass repo
git clone https://github.com/JackToaster/SynthPass.git - Run
pio run -e [board hardware target].[board hardware target]should be replaced with one of the targets defined inplatformio.ini:nanoch57xfor the nanoch57x dev boardpretzelslabfor the SynthPass hardware in this repo & the SynthPasses handed out at Anthrocon 2026axionqcfor AxionQc's hardware design
Updating firmware
We have a custom upload script built into the PlatformIO configuration for SynthPass, all you need to do to update the firmware is:
pio run -e [board target] -t upload
for the "official" Pretzel's Lab hardware: pio run -e pretzelslab -t upload
If the firmware is borked and the flashing script doesn't work, hold down the boot button while plugging in the SynthPass to force it into ISP bootloader mode.
Parts
17| Qty | Value | Footprint | References |
|---|---|---|---|
| 4 | 5.1k | Resistor_SMD:R_0402_1005Metric | R1, R2, R3, R4 |
| 2 | 10u | Capacitor_SMD:C_0402_1005Metric | C1, C3 |
| 1 | 0.1u | Capacitor_SMD:C_0402_1005Metric | C4 |
| 1 | 32MHz | Crystal:Crystal_SMD_3225-4Pin_3.2x2.5mm | Y2 |
| 1 | CH572D | CH572D:CH572D | U2 |
| 1 | LED_Small | LED_SMD:LED_0603_1608Metric | D1 |
| 1 | LOGO | graphics:synthpass | G*** |
| 1 | LOGO | graphics:qr | G*** |
| 1 | LOGO | graphics:pretzel | G*** |
| 1 | PCB Antenna | RF_Antenna:Texas_SWRA117D_2.4GHz_Right | AE1 |
| 1 | SM04B-SRSS-TB | Connector_JST:JST_SH_SM04B-SRSS-TB_1x04-1MP_P1.00mm_Horizontal | J1 |
| 1 | SW_Push | Button_Switch_SMD:SW_SPST_TS-1088-xR020 | SW1 |
| 1 | USB_C_Plug_USB2.0 | Connector_USB:USB_C_Receptacle_G-Switch_GT-USB-7010ASV | P1 |
Questions
How big is the SynthPass PCB?
It measures 19.1 × 16.8 mm and has 4 copper layers, 1.6 mm thick.
What parts does the SynthPass use?
17 parts, built around the CH572D and SM04B-SRSS-TB. 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 SynthPass KiCad files?
From the JackToaster/SynthPass repository on GitHub, at the commit this page was made from: the board is hardware/SynthPass.kicad_pcb and its schematic hardware/SynthPass.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the SynthPass design in my own project?
Its repository publishes it under the GPL-3.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).
Similar boards
- 2 layers34.6 × 10.9 mm

- 4 layers76.1 × 70.7 mm

Usb sp dev
Ismael034/usbsp
Have you ever tried to plug a USB device into a computer that has USB restrictions enabled? It's frustrating, isn't it? You can't use your USB devices, and you have no way to bypass the restrictions.
79 parts2MIT - 2 layers17.8 × 28.9 mm

CH572
cyao1234/c57
Low-cost bluetooth devboard with a ch572 MCU. To program it press the boot button, and use either mountriver studio or ch32fun.
23 partsCERN-OHL-P-2.0 - 2 layers90 × 64 mm

Divine light
tobycm/divine-light
A handheld device with neopixels so you can have lights wherever you want :b
88 partsMIT - 2 layers28 × 34.5 mm

Ch570-led halo
cnlohr/cnhardware
My dumping grounds for all my kicad projects and random hardware bringup.
30 parts114 - 4 layers101.6 × 53.3 mm

- 4 layers79 × 79 mm

Minuet
brown-studios/minuet
Minuet upgrades your MAXXAIR Maxxfan with a brushless DC motor, home automation features, and accessories.
103 parts67MIT - 8 layers106 × 62 mm
