
Switch main v4-test rig
ben5049/switch-v4-hardware
KiCad design files for the 4th iteration of my single pair Ethernet (SPE) switch. The firmware can be found in unified-switch-firmware.

KiCad design files for the 4th iteration of my single pair Ethernet (SPE) switch. The firmware can be found in unified-switch-firmware.
Switch main v4 is an open-source printed circuit board by ben5049, from the ben5049/switch-v4-hardware repository on GitHub, published under the GPL-3.0 licence. It is a 6-layer board of 65 × 50 mm with 471 parts on 504 nets, routed with 2,903 tracks and 876 vias.
It is built around the 88Q2112-A2-NYD2A000-P123, TPS62290TDRVRQ1 and LMK1C1104DQFR, with the LMQ66420MC3RXBRQ1, MAX20075DATCA/V+ and TPS27S100BRRKR among its other parts. Its parts include 215 capacitors, 112 resistors, 28 ICs, 20 transistors and 18 diodes. It belongs with the STM32 boards of this library.
KiCad design files for the 4th iteration of my single pair Ethernet (SPE) switch. The firmware can be found in unified-switch-firmware.
Also see my post on r/embedded!

See the schematic for a block diagram and in-depth details.
The main switch chip is an SJA1105QEL from NXP. It is configured via SPI by an STM32H573IIK3Q. The STM32 is also connected by reduced media independent interface (RMII) to the switch so it is able to send and receive management traffic such as Spanning Tree Protocol (STP) BPDUs as well as Precision Time Protocol (PTP) packets and diagnostic information.
The connections for each SJA1105 port are shown below:
| Port | Speed (Mbps) | Description |
|---|---|---|
| 0 | 100/1000 | Marvell 88Q2112 100/1000BASE-T1 Ethernet PHY |
| 1 | 100/1000 | Marvell 88Q2112 100/1000BASE-T1 Ethernet PHY with PoDL |
| 2 | 100/1000 | Marvell 88Q2112 100/1000BASE-T1 Ethernet PHY with PoDL |
| 3 | 10 | Microchip LAN8671 10BASE-T1S Ethernet PHY with PoDL |
| 4 | 100 | Internal STM32 management processor |
Power over Datalines (PoDL) is similar to Power over Ethernet (PoE) but for SPE. In regular PoE power is sent over the center taps of the transformers, however in SPE there is only one (or no) transformer so this wouldn't work. Instead, DC power is injected into the datalines in the Coupling Decoupling Network (CDN) using differential mode inductors (DMI). The switch is only capable of being a Power Sourcing Equipment (PSE) which powers other devices. It must get its own power through the other connectors on the board.
PoDL has been implemented on ports 1, 2 and 3 of the switch.
Ports 1 and 2 are able to output 1.1A each and use a simple detection method before supplying power to a load. Firstly ~14mA is sent down the cable, then if the bus voltage is between 4.05 and 4.55V then the full supply is enabled (typically 24V). This is usually done by a zener diode on the other end of the cable.
Port 3 is also able to output 1.1A and uses a custom multidrop PoDL implementation. Detection is done by powering the bus at 6.5V, then each device on the bus draws 1mA for every 1W of power they want. Then the full supply is enabled.
An STM32H503KBU6 is used as a secondary processor to control the PoDL operations. It talks to the primary processor via UART through an optocoupler. This means the data and power circuits are galvanically isolated.
The test rig PCB is designed so that its pogo pins align directly with the test pads on the bottom of the main switch board. This means a debugger can be connected without needing to include a header on the main board.
| Version | Description |
|---|---|
| v4.1.1 | Updated to Kicad v10 |
| v4.1.0 | Fixed bugs from first revision |
| v4.0.0 | First release |
See the errata for details on bugs.
Datasheets:
PoDL:
| Qty | Value | Footprint | References |
|---|---|---|---|
| 103 | 100n | project_footprints:C_0402 | C1202, C1304, C1308, C1309, C1310, C1311, C1313, C1314, C1315, C1316, C1317, C1318, C1319, C1320, C1404, C1408 +87 |
| 48 | 4u7 | project_footprints:C_0402 | C1301, C1302, C1305, C1306, C1307, C1401, C1402, C1405, C1406, C1407, C1501, C1502, C1505, C1506, C1507, C2605 +32 |
| 35 | 1.5mm | TestPoint:TestPoint_Pad_D1.5mm | TP401, TP402, TP501, TP1101, TP1102, TP1201, TP1301, TP1302, TP1401, TP1402, TP1501, TP1502, TP2601, TP2602, TP2603, TP2604 +19 |
| 23 | 1u | project_footprints:C_0402 | C403, C404, C405, C702, C703, C704, C706, C711, C811, C815, C821, C826, C901, C902, C903, C1201 +7 |
| 23 | 4k7 | project_footprints:R_0402 | R1301, R1310, R1401, R1403, R1501, R1503, R2201, R2202, R2203, R2204, R2213, R2214, R2215, R2216, R2304, R2306 +7 |
| 21 | 10k | project_footprints:R_0402 | R302, R1103, R1106, R1601, R1602, R1604, R1605, R1606, R1607, R2207, R2209, R2212, R2218, R2220, R2223, R2301 +5 |
| 11 | DMN21D2UFB-7B | project_footprints:DMN21D2UFB7B | Q1101, Q1102, Q1103, Q1301, Q1401, Q1501, Q2203, Q2205, Q2301, Q2601, Q2602 |
| 10 | 10u | project_footprints:C_0402 | C829, C1312, C1321, C1412, C1421, C1512, C1521, C1601, C1602, C1603 |
| 10 | SZESD7241N2T5G | project_footprints:SZESD7462N2T5G | D301, D601, D1802, D1803, D1902, D1903, D2002, D2003, D2102, D2103 |
| 9 | 100k | project_footprints:R_0402 | R305, R306, R307, R403, R606, R607, R2211, R2222, R2303 |
| 9 | DMP21D0UFB-7B | project_footprints:DMP21D0UFB7B | Q801, Q1302, Q1402, Q1502, Q2201, Q2202, Q2204, Q2206, Q2302 |
| 7 | 180k | project_footprints:R_0402 | R502, R503, R504, R701, R1305, R1405, R1505 |
| 7 | 1k | project_footprints:R_0402 | R802, R1308, R1408, R1508, R2208, R2219, R2302 |
| 7 | 47k | project_footprints:R_0402 | R304, R801, R1201, R1309, R1409, R1509, R2601 |
| 6 | 100n | project_footprints:C_0603 | C301, C601, C1802, C1902, C2002, C2102 |
| 6 | 1n | project_footprints:C_0805 | C101, C102, C1803, C1903, C2003, C2103 |
| 6 | 2k2 | project_footprints:R_0402 | R2206, R2210, R2217, R2221, R2309, R2310 |
| 5 | 22p | project_footprints:C_0402 | C507, C508, C1303, C1403, C1503 |
| 5 | 78438313015 | project_footprints:L_Wurth_WE-MAIA-1610 | L501, L502, L1301, L1401, L1501 |
| 5 | TPS62290TDRVRQ1 | project_footprints:SON65P200X200X80-7N | U501, U502, U1301, U1401, U1501 |
| 4 | 10n | project_footprints:C_0402 | C1607, C1608, C1609, C1611 |
| 4 | 10p | project_footprints:C_0402 | C801, C802, C935, C936 |
| 4 | 1k5 | project_footprints:R_0402 | R1101, R1102, R1104, R1105 |
| 4 | 22R | project_footprints:R_0402 | R902, R1202, R1203, R1204 |
| 4 | 360k | project_footprints:R_0402 | R501, R1306, R1406, R1506 |
| 4 | 74930100 | project_footprints:74930100 | T1801, T1901, T2001, T2101 |
| 4 | 824012823 | project_footprints:824012823 | D1801, D1901, D2001, D2101 |
| 4 | ADL3225VT-4R7M-TL000 | project_footprints:ADL3225VT4R7MTL000 | L1901, L1902, L2001, L2002 |
| 3 | 100R | project_footprints:R_0402 | R1801, R1901, R2001 |
| 3 | 10u | project_footprints:C_0805 | C401, C402, C701 |
| 3 | 4k99 | project_footprints:R_0402 | R1307, R1407, R1507 |
| 3 | 5k6 | project_footprints:R_0402 | R309, R604, R608 |
| 3 | 88Q2112-A2-NYD2A000-P123 | project_footprints:88Q2112 | U1302, U1402, U1502 |
| 3 | ACT1210G-800-2P-TL10 | project_footprints:ACT1210G | FL1801, FL1901, FL2001 |
| 3 | M2.5 | MountingHole:MountingHole_2.7mm_M2.5_Pad | H101, H102, H103 |
| 3 | PMEG4002EL-QYL | project_footprints:PMEG4002EL-QYL | D2201, D2202, D2301 |
| 3 | TPS27S100BRRK | project_footprints:TPS27S100ARRKR | U2201, U2202, U2302 |
| 2 | 120k | project_footprints:R_0402 | R301, R601 |
| 2 | 1M | project_footprints:R_0805 | R101, R102 |
| 2 | 6p8 | project_footprints:C_0402 | C803, C804 |
| 2 | BZX884-C3V3,315 | project_footprints:BZX884 | Z2201, Z2202 |
| 2 | JST-GH-2-Horizontal | project_footprints:JST_GH_SM02B-GHS-TB_1x02-1MP_P1.25mm_Horizontal | J2401, J2402 |
| 2 | MKXS1-1 Power Input | project_footprints:10132797-031100LF | J301, J601 |
| 2 | MSPE-J2L0-B00 | project_footprints:MSPEJ2L0B00 | J2403, J2404 |
| 2 | TPS26600RHFR | project_footprints:QFN50P400X500X100-25N-D | U302, U602 |
| 2 | TPS7B8133QDRVRQ1 | project_footprints:SON65P200X200X80-7N | U401, U701 |
| 2 | TVS3301DRBR | project_footprints:SON65P300X300X100-9N-D | U301, U601 |
| 2 | XRCGB25M000F3A16R0 | project_footprints:XRCGB25M000F3A16R0 | Y801, Y901 |
| 1 | 0603L008YR | Fuse:Fuse_0603_1608Metric | F2301 |
| 1 | 0R | project_footprints:R_0402 | R2311 |
| 1 | 100p | project_footprints:C_0402 | C809 |
| 1 | 12k4 | project_footprints:R_0402 | R1608 |
| 1 | 15k | project_footprints:R_0402 | R605 |
| 1 | 1R | project_footprints:R_0402 | R2305 |
| 1 | 33k | project_footprints:R_0402 | R702 |
| 1 | 3k3 | project_footprints:R_0402 | R2101 |
| 1 | 470R | project_footprints:R_0402 | R2205 |
| 1 | 74438323022 | project_footprints:L_Wurth_WE-MAPI-2510 | L401 |
| 1 | 74438323047 | project_footprints:L_Wurth_WE-MAPI-2510 | L701 |
| 1 | ACT1210E-131-2P-TL00 | project_footprints:ACT1210E | FL2101 |
| 1 | DFE252012F-2R2M | Inductor_SMD:L_1008_2520Metric | L801 |
| 1 | ECS-.327-7-12QS-TR | project_footprints:ECS-.327-7-12QS-TR | Y802 |
| 1 | FM25CL64B-DG | project_footprints:SON95P400X450X80-9N | U801 |
| 1 | ISO6520REUR | project_footprints:SON50P300X200X105-8N-D | U2502 |
| 1 | ISO6521REUR | project_footprints:SON50P300X200X105-8N-D | U2501 |
| 1 | LAN8671C2-E_U3B | project_footprints:QFN50P400X400X100-25N-D | U1601 |
| 1 | LMK1C1104DQFR | project_footprints:SON50P200X200X80-8N | U1201 |
| 1 | LMQ66420MC3RXBRQ1 | project_footprints:LMQ664x0 | U402 |
| 1 | LOGO | project_footprints:red-scorpions-8mm | G*** |
| 1 | LOGO | project_footprints:aquila-8mm | G*** |
| 1 | LOGO | project_footprints:adeptus-mechanicus-8mm | G*** |
| 1 | MAX20075DATCA/V+ | project_footprints:SON50P300X300X80-13N | U702 |
| 1 | MSD7342-333MLC | project_footprints:MSD7342 | L2102 |
| 1 | MSD7342-333MLC_DM | project_footprints:MSD7342 | L2101 |
| 1 | MSPE-J2L0-x00 | project_footprints:MSPEJ2L0x00 | J2405 |
| 1 | NCP508MT25TBG | project_footprints:NCP508MT25TBG | U703 |
| 1 | NCS213RMUTAG | project_footprints:NCS213RMUTAG | U2301 |
| 1 | RED | LED_SMD:LED_0402_1005Metric | D801 |
| 1 | SJA1105QELY | project_footprints:BGA159C80P14X14_1200X1200X150 | U901 |
| 1 | STM32H503KBUx | project_footprints:QFN-32-1EP_5x5mm_P0.5mm_EP3.45x3.45mm | U2601 |
The 469 most common of 471 parts.

ben5049/switch-v4-hardware
KiCad design files for the 4th iteration of my single pair Ethernet (SPE) switch. The firmware can be found in unified-switch-firmware.

ben5049/switch-v5-hardware
KiCad design files for the 5th iteration of my single pair Ethernet (SPE) switch. It is similar to v4 but with more ports and an RJ45 connector so an external media converter isn't needed to connect to regular Ethernet…



ainnovators/noob-sdr
An open source SDR board derived from Michael Ossmann's Hackrf project. It should include an onboard FPGA for DSP purposes.

greatscottgadgets/urti-mainboard
Mainboard of URTI, the Universal Radio Test Instrument

owntech-foundation/OWNVERTER
The OwnVerter is an open-source 3-phase power converter that can be used to control multiple types of motors and is compatible with different types of sensors.


It measures 65 × 50 mm and has 6 copper layers, 1.05 mm thick.
471 parts, built around the 88Q2112-A2-NYD2A000-P123, TPS62290TDRVRQ1, LMK1C1104DQFR and LMQ66420MC3RXBRQ1. 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 ben5049/switch-v4-hardware repository on GitHub, at the commit this page was made from: the board is pcbs/switch-main-v4/switch-main-v4.kicad_pcb and its schematic pcbs/switch-main-v4-test-rig/switch-main-v4-test-rig.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
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).