

RP2350A + ST60A3H1 60 GHz contactless link dev board (KiCad, generated)
- Size
- 28 × 63 mm
- Copper layers
- 6
- Thickness
- 1.6 mm
- Parts
- 100
- Nets
- 83
- Pads
- 427
- Tracks, vias
- 1,071, 316
- Pours
- 20
- Routed
- Yes
- KiCad
- KiCad 9.0 (file 20241229)
- Created
- 2 Oct 2026
- Updated
- 2 Oct 2026
Overview
Comms is an open-source printed circuit board by sequoia-hope, from the sequoia-hope/robot-link repository on GitHub. It is a 6-layer board of 28 × 63 mm with 100 parts on 83 nets, routed with 1,071 tracks and 316 vias.
It is built around the RP2350A, W25Q16JVUXIQ and TS3USB221ARSE, with the AMS1117-3.3, ME6216A13M3G and PTN3222GMJ among its other parts. Its parts include 39 capacitors, 29 resistors, 12 ICs, 5 connectors and 3 diodes. It belongs with the microcontroller boards boards and the RP2350 boards of this library.
Main components
12RP2350A
QFN-60-EP(7x7)Power-on reset (POR)、Undervoltage detection (BOR/LVD/LVR/LVI)、Watchdog reset、Integrated LDO、True random number generator (TRNG)、Hardware ECC check QFN-60-EP(7x7) Microcontrollers (MCU/MPU/SOC) ROHSRaspberry PiMicrocontrollers (MCU/MPU/SOC)W25Q16JVUXIQ
USON-8-EP(2x3)-40℃~+85℃ 100,000 cycles 10uA 133MHz 16Mbit 2.7V~3.6V 20 Years 3ms SPI USON-8-EP(2x3) NOR FLASH ROHSWinbond ElecNOR FLASHTS3USB221ARSE
UQFN-10(1.5x2)-40℃~+85℃ 12ns 2.3V~3.6V 250ps 2:1 30ns 6pF 6Ω 900MHz USB UQFN-10(1.5x2) Analog Switches - Special Purpose ROHSTexas InstrumentsAnalog Switches - Special PurposeAMS1117-3.3
SOT-223-40℃~+125℃ 0.003%Vout 1 1.1V@(800mA) 15V 1A 3.3V 5mA 72dB@(120Hz) Fixed Over Current Protection、Short Circuit Protection、Thermal shutdown Positive SOT-223 Voltage Regulators - Linear, Low Drop Out (LDO) Regulators ROHSAdvanced Monolithic SystemsVoltage Regulators - Linear, Low Drop Out (LDO) RegulatorsME6216A13M3G
SOT-23-25℃~+125℃@(Ta) 1 1.3V 300mA 65dB@(1kHz) 6V Fixed Over Current Protection、Short Circuit Protection Positive SOT-23 Voltage Regulators - Linear, Low Drop Out (LDO) Regulators ROHSMICRONEVoltage Regulators - Linear, Low Drop Out (LDO) RegulatorsPTN3222GMJ
XQFN-12(1.8x2.2)Analog Switches, MultiplexersNXP SemiconductorsTLV75518PDBV
SOT-23-5-40℃~+125℃@(Tj) 1 1.8V 33uA 380mV@(500mA) 46dB@(100kHz) 5.5V 500mA 71.5uVrms Fixed Over Current Protection、Soft Start、Enable、Thermal Shutdown Positive SOT-23-5 Voltage Regulators - Linear, Low Drop Out (LDO) Regulators ROHSTexas InstrumentsVoltage Regulators - Linear, Low Drop Out (LDO) RegulatorsTXS0108EPW
TSSOP-20-40℃~+85℃ 1 1.4V~3.6V 1.65V~5.5V 60Mbps 8 Automatic direction detection、Output enable high-impedance、Integrated pull-up resistor Bidirectional Level translator Push-Pull、Open-drain TSSOP-20 Translators, Level Shifters ROHSTexas InstrumentsTranslators, Level ShiftersUSBLC6-2SC6
SOT-23-60.35pF、0.8pF 100nA 150W@8/20us 15V 2 5V 6A@8/20us 6V ESD SOT-23-6 ESD and Surge Protection (TVS/ESD) ROHSUMWESD And Surge Protection (TVS/ESD)XC6206P282MR
SOT-23-3L-40℃~+85℃ 1 150mV@(100mA) 1uA 2.8V 200mA 6V Fixed Over Current Protection Positive SOT-23-3L Voltage Regulators - Linear, Low Drop Out (LDO) Regulators ROHSTorex SemiconductorVoltage Regulators - Linear, Low Drop Out (LDO) RegulatorsM2.5
-0.45mm 2.5mm 2mm 5mm DIN934 Hex M2.5X0.45 Nickel plated Silver white - Hexagonal nutsShuntianHex NutMMBT3904
SOT-23-55℃~+150℃ 1 NPN 100 100nA 200mA 200mW 300MHz 300mV 40V 6V NPN SOT-23 Bipolar (BJT) ROHSJiangsu Changjing Electronics Technology (CJ)Bipolar (BJT)
README
README.mdrobot-link (comms)
▶ Project page: schematic, PCB and 3D viewer
A dev board for ST's 60 GHz contactless link: an RP2350A beside an ST60A3H1 (antenna in the package), 28 × 63 mm, six layers. Two boards face each other a few centimetres apart and tunnel UART, GPIO, I²C or USB 2.0 between them. The same board is either end. On the back there is a connector for an OV2640 camera module.
Status: rev B captured, placed and routed. 100 parts, 83 nets; KiCad's DRC
and ERC report nothing, KiCad's own netlist of the drawn schematic matches
tools/circuit.py net for net, every placed part has an LCSC number and
the assembly check passes. Not fabricated, and no firmware yet.
-
Rev A (tag
rev-a): the link board, four layers. Reviewed on 2026-10-02; what the review found and changed is below. -
Rev B: rev A plus the camera, and six layers.
-
index.html— status page with the board viewer (SCH, PCB, 3D); published frommainat https://sequoia-hope.github.io/robot-link/ by GitHub Pages, and served locally withproj up comms, address fromproj url comms -
hardware/comms/— the KiCad project -
tools/— everything is generated; see below
Why the ST60A3H1 and not the ST60A2G0
The board was asked for with the ST60A2G0. That part's ball map, pin functions and the 60 GHz antenna and PCB-transition design are only in ST's NDA package; the public data brief has the package outline and a block diagram. The ST60A3H1 is the same family with a public data sheet (DS14598) and the antenna in the package, so there is no 60 GHz copper to design. It gives up speed: 480 Mbit/s (eUSB2) against the A2's 6.25 Gbit/s SLVS.
What is on it
| MCU | RP2350A with its core regulator, crystal, flash and decoupling as Raspberry Pi's minimal design (RP-006440) has them — the copper round the chip is read out of that board file |
| Link | ST60A3H1 on a grounded island with a copper-free ring round it, 3.5 mm in from the board edge, as on ST's X-NUCLEO-60K1A1 (B2379A) |
| Translator | TXS0108E, 1.8 V ↔ 3.3 V, on the configuration bus, the four tunnel pins, MODE_INT and LINK_STATUS; off until the RP2350 enables it. 4k7 pull-ups on the 1.8 V side of the configuration bus and of the tunnelled SCL/SDA |
| USB | PTN3222 eUSB2 repeater and two TS3USB221A switches: connector, RP2350 and the 60 GHz link, any two joined |
| Power | USB-C 5 V → AMS1117-3.3 → TLV75518P (1.8 V, off until GPIO11 goes high; dropping it is the ST60's power-on reset) |
| I/O | two 1 × 16 headers 0.9 in apart, SWD on JST-SH, BOOTSEL, RUN, power / link / user LEDs |
| Camera | on the back: a 24-way flex connector for the common OV2640 module (the ESP32-CAM's), its 2.8 V and 1.3 V regulators, pull-ups. Its signals are header GPIO |
| Mechanical | four M2.5 holes mirrored about the antenna's axis: a second board turned over on standoffs puts the two antennas on one line. Three fiducials |
GPIO map (tools/circuit.py has the reasons): 0–7 right-hand header · 8/9 USB
path selects · 10 RF_EN · 11 1.8 V enable · 12/13 tunnelled SDA/SCL (I2C0) ·
14 LINK_STATUS · 15 MODE_INT · 16/17 tunnelled TXD/RXD (UART0) · 18/19
configuration bus (I2C1; ST60A3H1 at 0x60, PTN3222 at 0x43) · 20 translator
enable · 21–24, 26–29 left-hand header · 25 LED.
The camera (rev B)
For the bare OV2640 module with a 24-way, 0.5 mm flex tail: the one on the ESP32-CAM. The connector (Hirose FH12-24S-0.5SH, bottom contact) is on the back of the board. The tail goes in from the USB end with its contacts toward the board; the module then lies on the back, behind the RP2350, with its lens looking away from the board. That is the side away from the board the 60 GHz link faces.
| Camera | GPIO | |
|---|---|---|
| Y2 – Y9 (data) | 0 – 7 | in order: one PIO in pins, 8 |
| VSYNC | 21 | |
| SIOD / SIOC | 22 / 23 | I2C1, on its second pair of pins (the link's configuration bus is I2C1 on 18/19: move the peripheral, the buses do not share a wire). 4k7 pull-ups |
| PWDN | 24 | 10 k pull-up: the camera sleeps until this is driven low |
| HREF | 26 | |
| XCLK | 27 | from PWM slice 5 B, or PIO: 6 – 24 MHz, so 150 MHz ÷ 8, 10 or 12 (÷ 6 is 25 MHz, too fast). Low drive strength, slow slew: it runs beside PCLK |
| PCLK | 28 | |
| RESET | none | 10 k and 1 µF; the sensor has a software reset (COM7 bit 7), to be used once XCLK is running |
These are header pins, and with no camera plugged in they are nothing else: 26–28 are the ADC pins and have no resistor on them. 22, 23 and 24 keep their pull-ups.
The sensor's core is on 1.3 V (OmniVision's data sheet from v1.8 on: 1.24 to 1.36 V. The older sheets, and the ESP32-CAM, say 1.2 V), its analogue side on 2.8 V, its I/O on 3.3 V. The regulators have no enable: a fitted camera in power-down draws 1 – 2 mA. To wake it: start XCLK, wait 10 ms, drive PWDN low, reset it over SCCB, then configure.
The order of signals on GPIO 21–28 is not free. The camera's wiring is laid
by hand on the back, from the headers' own through-hole pads to the
connector, in one layer with nothing crossing, and only this order allows
that (gen_board.camera_copper).
Checked, not tested: which end of the connector is pin 1. The module makers number the tail one way and the ESP32-CAM's schematic the other. The board's pads were checked signal by signal, twice and independently, against two module makers' mechanical drawings and Hirose's data sheet (contacts on the face away from the lens; with the tail toward you and the contacts up, NC and AGND on the right, Y0 and Y1 on the left). Check the module in hand against that before plugging it in: a variant with a mirrored tail would be the one way this is wrong.
An independent review of the camera addition (2026-10-02) confirmed the pin order and found four things, all changed: the core supply (was 1.2 V), 100 nF on each rail at the connector and wider supply tracks, more room round XCLK where the wiring allows it, and the module's outline on the silkscreen, which was 2.7 mm out. Left as they are: XCLK still runs 0.125 mm from PCLK and HREF under the connector (the pads' order puts it between them); DOVDD is 3.3 V, the data sheet's maximum, as on the ESP32-CAM.
With the headers soldered pins-down straight into a carrier board there is about 2.5 mm under the board, and the module is 5.5 mm tall: it needs sockets, or the headers the other way up.
Board rules
Six layers, JLCPCB's JLC06161H-7628 stack: F.Cu parts and signals, In1 solid ground, In2 and In3 routed signals, In4 supplies (+3V3, with +1V8 over the link section), B.Cu signals, the camera's wiring and its parts. The outer prepreg is the same 0.21 mm as JLCPCB's four-layer stack, so the antenna's ground and the USB pairs sit as they did on rev A. Routed signals are 0.125 mm track and clearance (JLCPCB's floor is 0.09), and so are the ST60's ball escapes. The USB pairs on the back are 0.28 mm wide and 0.16 mm apart. Vias 0.46 / 0.2 mm, all through.
Why six: rev A routed on four. With the camera's wiring and parts on the back, the same board on four layers left two to seven nets open in each of three attempts, the nets at the RP2350's pins that had been marginal on rev A. On six it closes in one or two.
Ordering and using it
- JLCPCB Standard PCBA, not Economic: the ST60A3H1 is a 0.4 mm BGA, and Economic stops at 0.5 mm. Standard wants edge rails (JLCPCB adds them) and fiducials (three are on the board). Ask for a 0.10 mm stencil.
- Fifteen parts are on the back (the camera's): assembly is two-sided. To build the board without the camera, leave the back unassembled; nothing on the front depends on it.
- Green solder mask: the ST60's mask openings are 0.30 mm on 0.25 mm lands, which leaves 0.10 mm webs between balls, JLCPCB's minimum for green.
- Four vias sit in the gap in the ST60's ball field, tented. Plugged vias are the safer order.
- Fit the headers pins down, and use nylon standoffs at the antenna end (H1, H2): metal 11 mm from the patch is inside its beam.
- Firmware: +1V8 is off at reset. Raise GPIO11, wait 2.25 ms, then enable the translator (GPIO20) and RF_EN (GPIO10). Before dropping +1V8, take both low first. The PTN3222 is held in reset whenever the RF link is down, so anything written to it has to be written again after each link-up.
- VBUS on the headers is the USB-C connector's VBUS, direct: it is an output. Do not feed 5 V into it with a host plugged in.
- Pull-ups added on J2/J3 (the 3.3 V side of the translator) should be 8k2 or more.
The tools
python3 tools/circuit.py # the netlist, as data, and its checks
python3 tools/symbols.py # hardware/parts/comms.kicad_sym
python3 tools/footprints.py # hardware/parts/comms.pretty
python3 tools/placement.py # where every part sits, and its checks
python3 tools/gen_board.py --force # project, schematic and the unrouted board (DISCARDS routing)
python3 tools/route.py # freerouting on a stripped copy, results copied back, stitching
python3 tools/schdraw.py --check # KiCad's netlist of the schematic against circuit.py
python3 tools/assembly.py # IPC-2581, the pin-1 answers beside it, boardvis's check
python3 tools/regen.py # every check, then the viewer and the status line on index.htmlgen_board.py lays the copper that is decided rather than routed: Raspberry
Pi's tracks and pours round the RP2350, the ST60's ball field and antenna
ground (ST's own via pattern, hole for hole where it fits), the 480 Mbit/s
USB pair, a via beside every pad on a plane net,
the camera's wiring.
route.py hands the remaining ~70 signals to freerouting 2.2.4
(~/Software/magnet/route); it is not deterministic, so it makes several
attempts and keeps the first that closes everything.
Review
Two independent passes on 2026-10-02, one over the schematic against the data sheets and one over the layout against JLCPCB's limits and ST's reference board. Neither found anything that would stop the board working. What they found, and what was done:
| Finding | Done |
|---|---|
| The antenna ground was a quarter of ST's: 13 vias in the island and 15 round it, where B2379A has 53 and 56; the signals crossed the island on a diagonal | The ball field is laid as ST lays it: nine signals straight out through one side of the ring, the supply along the top of them. ST's vias are taken from its drill file: 33 fit in the island and 45 round it |
| +1V8 fall time marginal against the ST60's 1 ms limit (3.3 µF on a 120 Ω discharge) | 1.8 µF on the rail; the regulator's enable is pulled down, so the rail only rises with 3V3 settled |
| MODE_INT strap undefined if +1V8 is cycled with the translator on | 4k7 to ground on MODE_INT |
| No pull-ups on the I²C lines; ST60 and PTN3222 both want external ones | 4k7 to +1V8 on the configuration bus and on GPIO[2]/[3] |
| USB pair geometry computed at 100 Ω; it crossed two plane splits and ran 2.4 mm over no plane | 0.28 / 0.16 mm (89 Ω by the reviewer's field solver); +1V8 plane redrawn so the pair has +3V3 under it throughout; its copper now 0.8 mm from the board edge, not 0.57 |
| Solder-mask webs between balls 0.075 mm | Mask opening 0.30 mm, webs 0.10 mm |
| Silkscreen under JLCPCB's 1.0 mm / 0.15 mm | Back labels 1.0 mm, front 0.8 mm (what fits a 2.54 mm pitch), all lines 0.15 mm |
| VBUS ran under the USB-C shell | Joined on the back |
| LEDs near dark at 1 kΩ (Vf 3.1 V) | 220 Ω |
| No fiducials | Three |
| Four 3V3 capacitors at the RP2350 fed only through the ring under the chip; one via pair into the plane at the regulator | A via beside each of the four capacitors; five more at the regulator's tab |
Left as it is, knowingly:
- TXS0108E on the I²C lines. The reviewer would rather have a pass-FET translator with no edge accelerators there: the ST60 has no glitch filter on CFG_SCL. ST's own board uses an auto-direction part (ST2378E) on the same lines; that part's data sheet was not read. If the configuration bus misbehaves with wiring on J2, this is the first place to look.
- AMS1117 with ceramic output capacitors, as Raspberry Pi's reference has an 1117: outside what the AMS data sheet characterises (22 µF tantalum). It needs about 1 V of headroom, so VBUS has to stay above 4.35 V.
- The crystal is servodrive's 2520 (CL 20 pF) with 27 pF, where Raspberry Pi specifies an ABM8-272 with 15 pF and says any change needs testing.
- USB pair skew: D− is 1.1 mm longer than D+ between the connector and the first switch (its two pads are joined under the shell). The long run to the repeater is matched to 0.05 mm.
- The ground guard round the crystal in the reference was not copied; three signals pass within 0.13 mm of the crystal nets.
Not yet verified
- Nothing has been built. The ST60A3H1 land and the PTN3222 land are drawn from the manufacturers' drawings, not from a part in hand.
- The antenna island copies ST's dimensions and vias off their Gerbers; the pattern on this board has not been simulated or measured, and it has fewer vias than ST's where this board's tracks are in the way.
- The 89 Ω figure for the USB pairs is one reviewer's solver, checked against a textbook formula only. Confirm with JLCPCB's calculator.
- JLCPCB capability figures were read off their site on 2026-10-02 through a summarising tool, not from the raw pages. Check them at order time.
- Several pin-1 answers in the assembly sidecar are package convention, not read off that part's data sheet; the sidecar says which.
- Rev B's camera connector: see "Checked, not tested" above. The camera's wiring runs 15 to 40 mm on the back over the supply plane; nothing about its signal integrity at a 20 MHz pixel clock has been measured.
- The 2.8 V regulator is listed as UMW's XC6206; its data sheet numbers the pins oddly, and the reviewer read it as the same physical order as Torex's.
Next
Firmware: the link's bring-up sequence, a PIO capture for the camera. Then a first build.
CERN-OHL-P.
Parts
100| Qty | Value | Footprint | References |
|---|---|---|---|
| 19 | 100n | Capacitor_SMD:C_0402_1005Metric | C2, C11, C12, C13, C14, C15, C16, C17, C18, C21, C22, C24, C25, C30, C31, C45 +3 |
| 11 | 4k7 | Resistor_SMD:R_0402_1005Metric | R12, R13, R15, R24, R25, R26, R27, R28, R31, R40, R41 |
| 8 | 1u | Capacitor_SMD:C_0402_1005Metric | C28, C32, C33, C40, C41, C42, C43, C44 |
| 4 | 1k | Resistor_SMD:R_0402_1005Metric | R2, R4, R6, R23 |
| 4 | M2.5 | MountingHole:MountingHole_2.7mm_M2.5 | H1, H2, H3, H4 |
| 3 | 10k | Resistor_SMD:R_0402_1005Metric | R29, R42, R43 |
| 3 | 10u | Capacitor_SMD:C_0805_2012Metric | C1, C5, C19 |
| 3 | 220R | Resistor_SMD:R_0402_1005Metric | R9, R14, R30 |
| 3 | Fiducial | Fiducial:Fiducial_1mm_Mask2mm | FID1, FID2, FID3 |
| 2 | 100p | Capacitor_SMD:C_0402_1005Metric | C27, C29 |
| 2 | 27R | Resistor_SMD:R_0402_1005Metric | R7, R8 |
| 2 | 27p | Capacitor_SMD:C_0402_1005Metric | C3, C4 |
| 2 | 4u7 | comms:C_0402_1005Metric_small_pads | C6, C7 |
| 2 | 4u7 | Capacitor_SMD:C_0402_1005Metric | C9, C10 |
| 2 | 5k1 | Resistor_SMD:R_0402_1005Metric | R10, R11 |
| 2 | TS3USB221A | Package_DFN_QFN:Texas_UQFN-10_1.5x2mm_P0.5mm | U9, U10 |
| 2 | green | LED_SMD:LED_0603_1608Metric | D1, D2 |
| 1 | 0R | Resistor_SMD:R_0402_1005Metric | R20 |
| 1 | 12MHz | Crystal:Crystal_SMD_2520-4Pin_2.5x2.0mm | Y1 |
| 1 | 1k5 | Resistor_SMD:R_0402_1005Metric | R21 |
| 1 | 1k8 | Resistor_SMD:R_0402_1005Metric | R22 |
| 1 | 33R | Resistor_SMD:R_0402_1005Metric | R5 |
| 1 | 3u3 | comms:L_pol_2016 | L1 |
| 1 | 470n | Capacitor_SMD:C_0402_1005Metric | C26 |
| 1 | AMS1117-3.3 | Package_TO_SOT_SMD:SOT-223-3_TabPin2 | U2 |
| 1 | BOOTSEL | Button_Switch_SMD:SW_SPST_B3U-1000P | SW1 |
| 1 | LEFT | Connector_PinHeader_2.54mm:PinHeader_1x16_P2.54mm_Vertical | J2 |
| 1 | ME6216A13M3G | Package_TO_SOT_SMD:SOT-23 | U12 |
| 1 | MMBT3904 | Package_TO_SOT_SMD:SOT-23 | Q1 |
| 1 | OV2640 | Connector_FFC-FPC:Hirose_FH12-24S-0.5SH_1x24-1MP_P0.50mm_Horizontal | J5 |
| 1 | PTN3222GM | comms:NXP_XQFN-12_1.75x2.2mm_P0.4mm | U5 |
| 1 | RIGHT | Connector_PinHeader_2.54mm:PinHeader_1x16_P2.54mm_Vertical | J3 |
| 1 | RP2350A | comms:RP2350-QFN-60-1EP_7x7_P0.4mm_EP3.4x3.4mm_ThermalVias | U1 |
| 1 | RUN | Button_Switch_SMD:SW_SPST_B3U-1000P | SW2 |
| 1 | ST60A3H1 | comms:ST_VFBGA-23_AiP_2.95x4.07mm_P0.4mm | U4 |
| 1 | SWD | Connector_JST:JST_SH_SM03B-SRSS-TB_1x03-1MP_P1.00mm_Horizontal | J4 |
| 1 | TLV75518P | Package_TO_SOT_SMD:SOT-23-5 | U7 |
| 1 | TXS0108E | Package_SO:TSSOP-20_4.4x6.5mm_P0.65mm | U6 |
| 1 | USB-C | Connector_USB:USB_C_Receptacle_HRO_TYPE-C-31-M-12 | J1 |
| 1 | USBLC6-2SC6 | Package_TO_SOT_SMD:SOT-23-6 | U8 |
| 1 | W25Q16JVUXIQ | Package_SON:Winbond_USON-8-1EP_3x2mm_P0.5mm_EP0.2x1.6mm | U3 |
| 1 | XC6206P282MR | Package_TO_SOT_SMD:SOT-23 | U11 |
| 1 | blue | LED_SMD:LED_0603_1608Metric | D3 |
Questions
How big is the Comms PCB?
It measures 28 × 63 mm and has 6 copper layers, 1.6 mm thick.
What parts does the Comms use?
100 parts, built around the RP2350A, W25Q16JVUXIQ, TS3USB221ARSE and AMS1117-3.3. 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 Comms KiCad files?
From the sequoia-hope/robot-link repository on GitHub, at the commit this page was made from: the board is hardware/comms/comms.kicad_pcb and its schematic hardware/comms/01_mcu.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Comms design in my own project?
Its repository states no licence, so its author keeps all rights: ask sequoia-hope before reusing the design.
Similar boards
- 2 layers27 × 27 mm

- 4 layers124.6 × 101 mm

- 2 layers69.1 × 53.8 mm

CybdoDuino
Cybdo/CybdoDuino
I have so many old Arduino-based projects, including a CNC plotter I made with old CD drives (see here), that could do with a refresh.
71 parts2MIT - 2 layers54.5 × 85 mm

Pcbcard
haohaohaoyan/pcb-badge
An RP2350A devboard and NFC card in the exact same footprint as my county's school-mandated ID badges. This was supposed to work with them but I suspect the cards are actually low-frequency and those are harder to…
59 parts - 4 layers80 × 73.8 mm

ESP32-Bit Pirate Dock
AndreiVladescu/ESP32-Bit-Pirate-Hardware
Carrier breaker-board for the ESP32-S3 Devkit. Works great with the ESP32-Bit-Pirate firmware.
49 parts85CERN-OHL-W-2.0 - 4 layers88 × 35.8 mm

- 2 layers21.3 × 68.7 mm

EnvOpenAudio
Envious-Data/EnvOpenAudio
An open source headphone/PC speaker project utilizing the RP2040, UDA1334A and TPA2016
63 partsGPL-3.0 - 4 layers32 × 63.8 mm
