
RP2350
engelberd/sensor-system
Working notes for the first custom RP2350A board with ADXL355, USB-C development power/data, 12 V field input, RS485, and a power architecture biased toward a clean accelerometer supply.

Working notes for the first custom RP2350A board with ADXL355, USB-C development power/data, 12 V field input, RS485, and a power architecture biased toward a clean accelerometer supply.
Node rev.2 is an open-source printed circuit board by engelberd, from the engelberd/sensor-system repository on GitHub. It is a 2-layer board of 52.7 × 104.5 mm with 26 parts on 43 nets, routed with 82 tracks and 0 vias.
It is built around the MF-R050. Its parts include 5 capacitors, 2 ICs, 2 connectors, 1 diode and 1 inductor. It belongs with the RP2040 boards of this library.
Working notes for the first custom RP2350A board with ADXL355, USB-C development power/data, 12 V field input, RS485, and a power architecture biased toward a clean accelerometer supply.
12V_IN
-> input fuse/PTC
-> TVS to GND
-> reverse polarity protection
-> TPS62175 buck, 12 V to 5V_BUCK
USB-C VBUS
-> optional fuse/filter
-> TPS2121 IN2
5V_BUCK
-> TPS2121 IN1
TPS2121 OUT = 5V_SYS
-> TLV75733 -> 3V3_DIG
-> low-noise LDO -> 3V3_ADXL_PRE
-> ferrite / 0R option -> 3V3_ADXLRecommended source priority:
IN1: 5V_BUCK from 12 V, main/field source.IN2: USB_5V, fallback/development source.OUT: 5V_SYS.This means that when both 12 V and USB-C are connected, the board should run from 12 V while USB is used for data/debug. Exact TPS2121 priority and threshold resistors must be set from the datasheet during schematic entry.
| Block | Candidate part | KiCad symbol | KiCad footprint |
|---|---|---|---|
| MCU | RP2350A | MCU_RaspberryPi:RP2350A | Package_DFN_QFN:QFN-60-1EP_7x7mm_P0.4mm_EP3.4x3.4mm_ThermalVias |
| QSPI flash | W25Q128JVS, 16 MiB, SOIC-8 | Memory_Flash:W25Q128JVS if available, otherwise import/vendor symbol | Package_SO:SOIC-8_3.9x4.9mm_P1.27mm |
| Accelerometer | ADXL355BEZ-RL7, LCSC C515892 | local ADXL355BEZ | local E-14-1_ADI |
| Input PTC | PTS181212V150 | Device:Fuse / Device:Polyfuse | likely Fuse:Fuse_1812_4532Metric or vendor footprint |
| Input TVS | SM6T12A | Diode:TVS | usually SMB/SMA package; verify exact package before layout |
| Reverse protection | SS14-E3/61T, LCSC C47460 | Diode:Schottky | usually Diode_SMD:D_SMA / verify exact package |
| Buck 12 V to 5 V | TPS62175DQCR, LCSC C32097 | Regulator_Switching:TPS62175DQC | use TI DQC/VSON-10 footprint; verify against datasheet |
| Power mux | TPS2121RUXR, LCSC C485916 | local TPS2121RUXR | local RUX0012A |
| 3V3_DIG LDO | TLV75733 | Regulator_Linear:TLV75733PDBV or package-specific variant | Package_TO_SOT_SMD:SOT-23-5 for DBV variant |
| 3V3_DIG alternative | AP2112K-3.3 | Regulator_Linear:AP2112K-3.3 | Package_TO_SOT_SMD:SOT-23-5 |
| 3V3_ADXL LDO | TPS7A2033 or ADP150-3.3 | Regulator_Linear:TPS7A20xxxDBV or imported ADP150 | Package_TO_SOT_SMD:SOT-23-5 or exact vendor package |
| ADXL supply filter | MPZ2012S601AT000, 600R @ 100 MHz, 0805 | Device:Ferrite_Bead | Inductor_SMD:L_0805_2012Metric |
| RS485 TVS | CDSOT23-SM712 | Diode:SM712_SOT23 | Package_TO_SOT_SMD:SOT-23 |
| RS485 transceiver | THVD1450DR | Interface_UART:THVD1450DR | Package_SO:SOIC-8_3.9x4.9mm_P1.27mm |
| USB ESD | USBLC6-2SC6 or TPD2EUSB30 | Power_Protection:USBLC6-2SC6 / Power_Protection:TPD2EUSB30 | package-specific SOT-23-6 / X2SON, verify selected part |
| USB-C connector | select exact vertical USB-C part | Connector:USB_C_Receptacle_USB2.0_16P | select exact manufacturer footprint |
Local downloaded libraries already found:
ADXL355 symbol:
/Users/anone/Downloads/ul_ADXL355BEZ/KiCADv6/2026-05-26_12-26-55.kicad_sym
ADXL355 footprints:
/Users/anone/Downloads/ul_ADXL355BEZ/KiCADv6/footprints.pretty/E-14-1_ADI.kicad_mod
/Users/anone/Downloads/ul_ADXL355BEZ/KiCADv6/footprints.pretty/E-14-1_ADI-L.kicad_mod
/Users/anone/Downloads/ul_ADXL355BEZ/KiCADv6/footprints.pretty/E-14-1_ADI-M.kicad_mod
TPS2121 symbol:
/Users/anone/Downloads/ul_TPS2121RUXR/KiCADv6/2026-05-26_13-55-57.kicad_sym
TPS2121 footprint:
/Users/anone/Downloads/ul_TPS2121RUXR/KiCADv6/footprints.pretty/RUX0012A.kicad_modInitial 12 V input chain:
J_PWR.1 = +12V_IN_RAW
J_PWR.2 = GND
+12V_IN_RAW -> F1 PTC -> +12V_PROT
+12V_PROT -> D_TVS -> GND
+12V_PROT -> D_REV Schottky series -> +12V_SAFE
+12V_SAFE -> TPS62175 VINNotes:
PTS181212V150 is acceptable for a controlled 12 V lab input, but consider a
higher voltage-rated fuse/PTC for field or industrial-style inputs.SM6T12A is aggressive for nominal 12 V. It is fine for a well-controlled
12 V adapter, but for systems that can sit above 12 V, consider a 15 V or
18 V working-voltage TVS while keeping the TPS62175 28 V input limit safe.SS14 as a series reverse-protection diode is simple and acceptable for V1.
A P-MOS/ideal-diode style reverse protector would reduce voltage drop and heat.Target output: 5V_BUCK.
Required schematic items:
5V_BUCK, selected from TPS62175 datasheet guidance.+12V_SAFE or configured with UVLO if desired.5V_BUCK.Layout priority:
USB-C development connector:
VBUS -> USB_5V
GND -> GND
CC1 -> 5.1k -> GND
CC2 -> 5.1k -> GND
D+ -> USB ESD -> RP2350 USB_DP
D- -> USB ESD -> RP2350 USB_DMPower mux:
TPS2121 IN1 <- 5V_BUCK
TPS2121 IN2 <- USB_5V
TPS2121 OUT -> 5V_SYS
TPS2121 GND -> GNDDo not leave TPS2121 control pins floating. Configure:
Exact resistor values should be calculated directly from the TPS2121 datasheet.
Digital rail:
5V_SYS -> TLV75733 -> 3V3_DIG3V3_DIG powers:
Analog/accelerometer rail:
5V_SYS -> low-noise LDO -> 3V3_ADXL_PRE
3V3_ADXL_PRE -> MPZ2012S601AT000 / 0R option -> 3V3_ADXL
3V3_ADXL -> ADXL355 VDD and VDDIORecommendation:
3V3_DIG.3V3_ADXL.Despite the historical directory name, this in-progress schematic is not the
source of truth for the V2 boards installed in Sanok. The installed V2 pin map
is maintained in node/config/board_profile.h.
Keep the first custom board close to the current firmware pinout.
ADXL355 SPI:
SCK -> GPIO10
MOSI -> GPIO11
MISO -> GPIO12
CS -> GPIO13
DRDY -> GPIO14
INT1 -> GPIO15RS485:
UART TX -> GPIO0
UART RX -> GPIO1
DE -> GPIO2This minimizes firmware changes during bring-up.
Basic RS485 block:
3V3_DIG -> THVD1450DR VCC
RP2350 UART_TX -> D
RP2350 UART_RX <- R
RP2350 GPIO_DE -> DE and /RE control as desired
A/B -> connector
A/B -> CDSOT23-SM712 -> GND
Optional 120R termination across A/B via jumper or DNP resistor
Optional failsafe bias resistor footprints if neededUse 3V3_DIG, not 3V3_ADXL, for RS485.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 4 | MountingHole | MountingHole:MountingHole_3.2mm_M3 | H1, H2, H3, H4 |
| 2 | 100nF | Capacitor_THT:C_Disc_D5.0mm_W2.5mm_P5.00mm | C3, C6 |
| 2 | Screw_Terminal_01x02 | TerminalBlock_4Ucon:TerminalBlock_4Ucon_1x02_P3.50mm_Horizontal | J1, J2 |
| 1 | 10uF | Capacitor_THT:CP_Radial_D5.0mm_P2.00mm | C4 |
| 1 | 220uF | Capacitor_THT:CP_Radial_D8.0mm_P3.50mm | C2 |
| 1 | 470uF | Capacitor_THT:CP_Radial_D8.0mm_P3.50mm | C5 |
| 1 | FRH035080-A | Inductor_THT:L_Axial_L5.3mm_D2.2mm_P7.62mm_Horizontal_Vishay_IM-1 | L1 |
| 1 | LP2950CZ-3.3/NOPB | Package_TO_SOT_THT:TO-92_Inline_Wide | U2 |
| 1 | MF-R050 | Fuse:Fuse_BelFuse_0ZRE0016FF_L9.9mm_W3.8mm | F1 |
| 1 | OKI-78SR-5_1_5-W36-C | Converter_DCDC:Converter_DCDC_Murata_OKI-78SR_Vertical | U1 |
| 1 | P6KE15A-DIO | Diode_THT:D_DO-15_P10.16mm_Horizontal | D1 |
| 1 | RaspberryPi_Pico | Module:RaspberryPi_Pico_Common_Unspecified | PICO1 |
| 1 | SCLK | TestPoint:TestPoint_THTPad_D1.5mm_Drill0.7mm | TP8 |
| 1 | TP_12V | TestPoint:TestPoint_THTPad_D1.5mm_Drill0.7mm | TP3 |
| 1 | TP_3V3_ADXL | TestPoint:TestPoint_THTPad_D1.5mm_Drill0.7mm | TP6 |
| 1 | TP_3V3_PICO | TestPoint:TestPoint_THTPad_D1.5mm_Drill0.7mm | TP7 |
| 1 | TP_5V | TestPoint:TestPoint_THTPad_D1.5mm_Drill0.7mm | TP1 |
| 1 | TP_CS | TestPoint:TestPoint_THTPad_D1.5mm_Drill0.7mm | TP9 |
| 1 | TP_DRDY | TestPoint:TestPoint_THTPad_D1.5mm_Drill0.7mm | TP10 |
| 1 | TP_GND | TestPoint:TestPoint_THTPad_D1.5mm_Drill0.7mm | TP2 |
| 1 | ~ | Footprints:EVAL-ADXL355Z | MOD1 |
It measures 52.7 × 104.5 mm and has 2 copper layers, 0.19 mm thick.
26 parts, built around the MF-R050. 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.
From the engelberd/sensor-system repository on GitHub, at the commit this page was made from: the board is hardware/Node rev.2/Node rev.2.kicad_pcb and its schematic hardware/Node rev.2/Node rev.2.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask engelberd before reusing the design.

engelberd/sensor-system
Working notes for the first custom RP2350A board with ADXL355, USB-C development power/data, 12 V field input, RS485, and a power architecture biased toward a clean accelerometer supply.

merlindorin/esp32-fan-controller
A small KiCad board to keep my home server cabinet cool. 4 PWM fans, 4 temperature probes, one ESP32.

jonathan-iap/CoilWinder
A reprap coil winder machine based on arduino language

StudioKAT/EurorackPowerConsumptionTester
Eurorack Power Consumption Tester

grodansparadis/can4vscp-power-injector
Power injector module for CAN4VSCP




EmanuelKrabNL/Fishy8
PCB with vintage camera looking footage. A microphone and a fisheye lens.