

IO 16x8 matrix
Hardware for a Switch Matrix Board for PPUC
- Size
- 97.6 × 67.3 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 210
- Nets
- 147
- Pads
- 641
- Tracks, vias
- 1,944, 522
- Pours
- 2
- Routed
- Yes
- KiCad
- KiCad 6 (file 20211014)
- Created
- 24 Feb 2024
- Updated
- 1 Dec 2024
Overview
IO 16x8 matrix is an open-source printed circuit board by PPUC, from the PPUC/Hardware_IO_16x8_matrix repository on GitHub. It is a 2-layer board of 97.6 × 67.3 mm with 210 parts on 147 nets, routed with 1,944 tracks and 522 vias.
It is built around the RP2040, ADM3483ARZ and SN74AHCT1G125DBV, with the LMV321, W25Q128JVSIQ and LM339 among its other parts. Its parts include 92 resistors, 58 capacitors, 23 diodes, 10 ICs and 9 connectors. It belongs with the lEDs and displays boards and the RP2040 boards of this library.
Main components
12RP2040
LQFN-56(7x7)12bit 133MHz 30 LQFN-56(7x7) Microcontrollers (MCU/MPU/SOC) ROHSRaspberry PiMicrocontrollers (MCU/MPU/SOC)ADM3483ARZ
SOIC-8-40℃~+85℃ 1 1 250Kbps 3V~3.6V Transceiver SOIC-8 RS-485 / RS-422 ICs ROHSAnalog DevicesRS-485 / RS-422 ICsSN74AHCT1G125DBV
SOT-23-5-40℃~+125℃ 1 1 10uA 4.5V~5.5V 6.5ns@5V,15pF 74AHCT 8mA 8mA Output enable Tri-State Unidirectional SOT-23-5 Buffers, Drivers, Receivers, Transceivers ROHSTexas InstrumentsBuffers, Drivers, Receivers, TransceiversLMV321
SOT-23-5L-2.75V~-1.25V、1.25V~2.75V 0℃~+70℃ 1 10pA 10pA 1MHz 2.1V~5.5V 20mA 20nV/√Hz@10kHz 520V/ms 60uA 70dB 800uV Built-in compensation Rail-to-Rail Input, Rail-to-Rail Output SOT-23-5L Operational Amplifier ROHSJiangsu Changjing Electronics Technology (CJ)Operational AmplifierW25Q128JVSIQ
SOIC-8-208mil-40℃~+85℃ 100,000 cycles 120ms@(32KB) 128Mbit 133MHz 1uA 2.7V~3.6V 20 Years 3ms Power-on reset、Hardware write protection、Software write protection、Write enable latch、Absolute write protection SPI SOIC-8-208mil NOR FLASH ROHSWinbondNOR FLASHLM339
SOP-140℃~+70℃ 1.1mA 1.5mV 150ns 2.3nA 2V~32V 32V 57nA DTL、TTL、CMOS Four channels Open Collector SOP-14 Comparators ROHSJSMSEMIComparatorsAP2112K-3.3
SOT253.3V 600mA CMOS Low Dropout Linear Regulator with EnableDiodes IncorporatedUncategorised1N4148WS
SOD-3231.25V@150mA 100V 150mA 1uA@75V 200mW 2A 4ns Independent SOD-323 Switching Diodes ROHSJiangsu Changjing Electronics Technology (CJ)Switching DiodesMMBT3904
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)SD15
SOD-323-55℃~+150℃ 10A 12uA 15V 16.7V 1pF 30V 350W@8/20us ESD IEC 61000-4-2、IEC 61000-4-4 Unidirectional SOD-323 ESD and Surge Protection (TVS/ESD) ROHSShikuesESD And Surge Protection (TVS/ESD)SD05
SOD-323-55℃~+125℃ 1 10pF 17A 18V 1uA 350W 5V 6V IEC 61000-4-2、IEC 61000-4-4 TVS Unidirectional SOD-323 ESD and Surge Protection (TVS/ESD) ROHSMDDESD And Surge Protection (TVS/ESD)SMAJ5.0
DO-214AC(SMA)-55℃~+150℃ 400W 41.67A 5V 6.4V 800uA 9.6V TVS DO-214AC(SMA) ESD and Surge Protection (TVS/ESD) ROHSMeritekESD And Surge Protection (TVS/ESD)
README
README.mdSwitch Matrix PCB for PPUC Project
This is the hardware for a 16x8 switch matrix card which was designed for the PPUC pinball project, but can be useful in other applications as well. The intentionally usecase is to connect an original equipped pinball playfield (including cable harness and diodes). Normally I'd prefer direct switches but if all the switches and cables and diodes are in place already, it is useful to connect the switch matrix directly. The board can also be used for 16 direct inputs and 8 low power signal-outputs (no matrix).
It is designed for being low cost and functional for experimental use.
Not everything is tested nor does it fulfill EMC or any other specifications.
Use at your own risk!
To make use of anything of this project a basic understanding of electronics and programming is necessary. Nothing of it is "plug and play". I'm surely not liable for any damage to assemblies, pinball machines or even persons.
Picture of the Board

Name
IO_16x8_matrix as it has 16 inputs and 8 signal-outputs to form a 16x8 switch matrix but could also be used as direct inputs and low power outputs. Actually it has an additional high speed output (see "Special Output" below).
Power Supply
The IO card must be supplied by 5 V (+-0.5 V). In the circuit this is named 5V_IN.
Controller
A RP2040 is used for it's cost/performance ratio. It is the same controller that is used in the Raspberry Pi Pico.
Communication Interfaces
- RS_485: main communication interface for controlling the outputs. Usually connected to a host interface like a PC or Raspberry Pi or similar.
- USB C: for programming, debug and flashing
- Serial Wire: alternative for programming, debug and flashing
Switches (on board)
- Reset: hardware reset for controller (RP2040)
- Boot: if active, the board connects to a PC like an USB stick. Usually used for programming the code into the flash memory on the board.
- DIP-switches: usually used to select an address for RS485 (16 combinations)
Signal Outputs
There are 8 outputs that can be set to 5 V or GND. They are intended to drive the switch matrix (column at WPC, row at S.A.M.). The 5 V signal is derived from the 5 V supply by a 1 kOhm pull up resistor. Therefore it is only good for signaling, not for power load. If used as a matrix please be aware that every switch must have a diode in series.
Inputs
There are 16 inputs intended to receive the switch status of the matrix (row at WPC, column at S.A.M.). They are pulled up to 5 V and switch at a voltage of about 1.9 V. The inputs are made for low active signals (switched to GND). If used as a matrix please be aware that every switch must have a diode in series.
Special Output
One special output is available for high speed signals. The voltage is 5 V, it is a push pull output that can drive a current up to 8 mA. It can be used to e.g. control a WS2812 LED strip.
Connectors
There are pads for connectors that fit S.A.M. systems and also WPC systems. The pinning of the returns (rows at WPC) is unfortunately vice versa to S.A.M. so the connector of the original WPC cable harness has to be rotated by 180° (cables go to the inner side of PCB).
Parts
210| Qty | Value | Footprint | References |
|---|---|---|---|
| 39 | 100n | Capacitor_SMD:C_0402_1005Metric | C1, C3, C10, C11, C12, C14, C15, C16, C19, C20, C23, C34, C35, C36, C37, C38 +23 |
| 32 | 1k | Resistor_SMD:R_0603_1608Metric | R20, R21, R22, R23, R24, R25, R26, R27, R28, R29, R30, R31, R32, R33, R34, R35 +16 |
| 22 | 10k | Resistor_SMD:R_0603_1608Metric | R1, R7, R10, R11, R18, R38, R39, R44, R45, R50, R51, R65, R66, R71, R72, R77 +6 |
| 18 | 100R | Resistor_SMD:R_0603_1608Metric | R2, R15, R40, R41, R46, R47, R52, R53, R67, R68, R73, R74, R79, R80, R85, R86 +2 |
| 16 | 1N4148WS | Diode_SMD:D_SOD-323 | D7, D8, D9, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22 |
| 8 | 10n | Capacitor_SMD:C_0603_1608Metric | C25, C26, C27, C28, C29, C30, C31, C32 |
| 8 | MMBT3904 | Package_TO_SOT_SMD:SOT-23 | Q1, Q2, Q3, Q4, Q5, Q6, Q7, Q8 |
| 6 | 10u | Capacitor_SMD:C_0603_1608Metric | C2, C4, C17, C21, C24, C33 |
| 6 | 2k | Resistor_SMD:R_0603_1608Metric | R36, R37, R57, R60, R61, R64 |
| 5 | 1k | Resistor_SMD:R_0402_1005Metric | R6, R14, R19, R58, R62 |
| 4 | LM339 | Package_SO:SOIC-14_3.9x8.7mm_P1.27mm | U6, U7, U8, U9 |
| 2 | 1A | Diode_SMD:D_SOD-323 | D3, D23 |
| 2 | 1u | Capacitor_SMD:C_0402_1005Metric | C13, C18 |
| 2 | 27 | Resistor_SMD:R_0402_1005Metric | R12, R13 |
| 2 | 27pF | Capacitor_SMD:C_0402_1005Metric | C6, C7 |
| 2 | 5k1 | Resistor_SMD:R_0603_1608Metric | R16, R17 |
| 2 | Conn_01x06 | Out_8x10:Terminal_Block_RTMPin | J1, J4 |
| 2 | Conn_01x09 | Connector_Molex:Molex_KK-254_AE-6410-09A_1x09_P2.54mm_Vertical | J5, J7 |
| 2 | Conn_01x10 | Connector_Molex:Molex_KK-396_5273-10A_1x10_P3.96mm_Vertical | J8, J9 |
| 2 | SD15 | Diode_SMD:D_SOD-323 | D1, D2 |
| 1 | 0 | Resistor_SMD:R_0603_1608Metric | R9 |
| 1 | 100µ 35V | Capacitor_SMD:CP_Elec_6.3x7.7 | C22 |
| 1 | 120R | Resistor_SMD:R_0603_1608Metric | R4 |
| 1 | 12MHz,18pF | Crystal:Crystal_SMD_3225-4Pin_3.2x2.5mm | Y1 |
| 1 | 33k | Resistor_SMD:R_0603_1608Metric | R56 |
| 1 | 3k | Resistor_SMD:R_0603_1608Metric | R63 |
| 1 | 5k | Resistor_SMD:R_0603_1608Metric | R59 |
| 1 | ADDRESS | Button_Switch_SMD:SW_DIP_SPSTx04_Slide_6.7x11.72mm_W8.61mm_P2.54mm_LowProfile | SW3 |
| 1 | ADM3483 | Package_SO:SOIC-8_3.9x4.9mm_P1.27mm | U1 |
| 1 | AP2112K-3.3 | Package_TO_SOT_SMD:SOT-23-5 | U5 |
| 1 | Boot | Button_Switch_SMD:SW_SPST_SKQG_WithStem | SW2 |
| 1 | Conn_01x09 | Connector_Molex:Molex_KK-396_5273-09A_1x09_P3.96mm_Vertical | J6 |
| 1 | Jumper_2_Open | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | JP1 |
| 1 | LED gn | LED_SMD:LED_0805_2012Metric | D4 |
| 1 | LMV321 | Package_TO_SOT_SMD:SOT-23-5 | U14 |
| 1 | RP2040 | Package_DFN_QFN:QFN-56-1EP_7x7mm_P0.4mm_EP3.2x3.2mm | U3 |
| 1 | Reset | Button_Switch_SMD:SW_SPST_SKQG_WithStem | SW1 |
| 1 | SD05 | Diode_SMD:D_SOD-323 | D6 |
| 1 | SMAJ5.0 | Diode_SMD:D_SMA | D5 |
| 1 | SN74AHCT1G125 | Package_TO_SOT_SMD:SOT-23-5 | U4 |
| 1 | TP_GND | Connector_Pin:Pin_D1.0mm_L10.0mm | TP5 |
| 1 | TP_LED | Connector_Pin:Pin_D1.0mm_L10.0mm | TP4 |
| 1 | USB_C_Receptacle_USB2.0 | Connector_USB:USB_C_Receptacle_XKB_U262-16XN-4BVC11 | J3 |
| 1 | W25Q128JVSIQ | Package_SO:SOIC-8_5.23x5.23mm_P1.27mm | U2 |
| 1 | nmount SW Debug | Connector_PinSocket_2.54mm:PinSocket_1x03_P2.54mm_Vertical | J2 |
The 207 most common of 210 parts.
Similar boards
- 2 layers99.7 × 67.3 mm

- 2 layers100 × 100 mm

- 2 layers97.6 × 67.3 mm

- 2 layers84 × 133 mm

Radio kiosk fixed
Filip-Kin/frc-radio-kiosk
Bench box that powers and configures FRC radios: dual-mode PoE (802.3at via LTC4279, passive 12 V via TPS26600), USB-C PD or DC in, 15.6 V out for the Toughbook, 4x CR123A backup, STM32F072 firmware.
192 parts - 4 layers60.5 × 60 mm

BusPirate-5-rev10
DangerousPrototypes/BusPirate5-hardware
Bus Pirate Hardware and accessories for v5 and higher
220 parts125MIT - 4 layers111.6 × 133.9 mm

Greenhouse controller pcb
hspil/greenhouse-controller-pcb
Central controller for greenhouse automation project
115 parts - 2 layers58 × 63 mm

Camping LightRelay
Rustaphor/LightRelay4Camping
Analog light sensor to night power up LED garland. For Camping use.
91 parts2GPL-3.0 - 4 layers100 × 72 mm

FLEADiP
dennowiggle/FLEADiP
FLEADiP is a compatiable add-on board for the Z80 Retro! project
226 parts2LGPL-2.1
Questions
How big is the IO 16x8 matrix PCB?
It measures 97.6 × 67.3 mm and has 2 copper layers, 1.6 mm thick.
What parts does the IO 16x8 matrix use?
210 parts, built around the RP2040, ADM3483ARZ, SN74AHCT1G125DBV and LMV321. 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 IO 16x8 matrix KiCad files?
From the PPUC/Hardware_IO_16x8_matrix repository on GitHub, at the commit this page was made from: the board is IO_16x8_matrix/IO_16x8_matrix.kicad_pcb and its schematic IO_16x8_matrix/Drv8.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the IO 16x8 matrix design in my own project?
Its repository states no licence, so its author keeps all rights: ask PPUC before reusing the design.