Skip to the content
2 layers97.6 × 67.3 mmIO 16x8 matrix, the printed circuit board in 3D

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

12

README

README.md

Switch 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

PCB Pic

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
QtyValueFootprintReferences
39100nCapacitor_SMD:C_0402_1005MetricC1, C3, C10, C11, C12, C14, C15, C16, C19, C20, C23, C34, C35, C36, C37, C38 +23
321kResistor_SMD:R_0603_1608MetricR20, R21, R22, R23, R24, R25, R26, R27, R28, R29, R30, R31, R32, R33, R34, R35 +16
2210kResistor_SMD:R_0603_1608MetricR1, R7, R10, R11, R18, R38, R39, R44, R45, R50, R51, R65, R66, R71, R72, R77 +6
18100RResistor_SMD:R_0603_1608MetricR2, R15, R40, R41, R46, R47, R52, R53, R67, R68, R73, R74, R79, R80, R85, R86 +2
161N4148WSDiode_SMD:D_SOD-323D7, D8, D9, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22
810nCapacitor_SMD:C_0603_1608MetricC25, C26, C27, C28, C29, C30, C31, C32
8MMBT3904Package_TO_SOT_SMD:SOT-23Q1, Q2, Q3, Q4, Q5, Q6, Q7, Q8
610uCapacitor_SMD:C_0603_1608MetricC2, C4, C17, C21, C24, C33
62kResistor_SMD:R_0603_1608MetricR36, R37, R57, R60, R61, R64
51kResistor_SMD:R_0402_1005MetricR6, R14, R19, R58, R62
4LM339Package_SO:SOIC-14_3.9x8.7mm_P1.27mmU6, U7, U8, U9
21ADiode_SMD:D_SOD-323D3, D23
21uCapacitor_SMD:C_0402_1005MetricC13, C18
227Resistor_SMD:R_0402_1005MetricR12, R13
227pFCapacitor_SMD:C_0402_1005MetricC6, C7
25k1Resistor_SMD:R_0603_1608MetricR16, R17
2Conn_01x06Out_8x10:Terminal_Block_RTMPinJ1, J4
2Conn_01x09Connector_Molex:Molex_KK-254_AE-6410-09A_1x09_P2.54mm_VerticalJ5, J7
2Conn_01x10Connector_Molex:Molex_KK-396_5273-10A_1x10_P3.96mm_VerticalJ8, J9
2SD15Diode_SMD:D_SOD-323D1, D2
10Resistor_SMD:R_0603_1608MetricR9
1100µ 35VCapacitor_SMD:CP_Elec_6.3x7.7C22
1120RResistor_SMD:R_0603_1608MetricR4
112MHz,18pFCrystal:Crystal_SMD_3225-4Pin_3.2x2.5mmY1
133kResistor_SMD:R_0603_1608MetricR56
13kResistor_SMD:R_0603_1608MetricR63
15kResistor_SMD:R_0603_1608MetricR59
1ADDRESSButton_Switch_SMD:SW_DIP_SPSTx04_Slide_6.7x11.72mm_W8.61mm_P2.54mm_LowProfileSW3
1ADM3483Package_SO:SOIC-8_3.9x4.9mm_P1.27mmU1
1AP2112K-3.3Package_TO_SOT_SMD:SOT-23-5U5
1BootButton_Switch_SMD:SW_SPST_SKQG_WithStemSW2
1Conn_01x09Connector_Molex:Molex_KK-396_5273-09A_1x09_P3.96mm_VerticalJ6
1Jumper_2_OpenConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJP1
1LED gnLED_SMD:LED_0805_2012MetricD4
1LMV321Package_TO_SOT_SMD:SOT-23-5U14
1RP2040Package_DFN_QFN:QFN-56-1EP_7x7mm_P0.4mm_EP3.2x3.2mmU3
1ResetButton_Switch_SMD:SW_SPST_SKQG_WithStemSW1
1SD05Diode_SMD:D_SOD-323D6
1SMAJ5.0Diode_SMD:D_SMAD5
1SN74AHCT1G125Package_TO_SOT_SMD:SOT-23-5U4
1TP_GNDConnector_Pin:Pin_D1.0mm_L10.0mmTP5
1TP_LEDConnector_Pin:Pin_D1.0mm_L10.0mmTP4
1USB_C_Receptacle_USB2.0Connector_USB:USB_C_Receptacle_XKB_U262-16XN-4BVC11J3
1W25Q128JVSIQPackage_SO:SOIC-8_5.23x5.23mm_P1.27mmU2
1nmount SW DebugConnector_PinSocket_2.54mm:PinSocket_1x03_P2.54mm_VerticalJ2

The 207 most common of 210 parts.

Similar boards

  • 2 layers99.7 × 67.3 mmOpto 16, the printed circuit board in 3D

    Opto 16

    PPUC/Hardware_Opto_16

    Hardware for an Opto Board for PPUC

    206 parts
  • 2 layers100 × 100 mmIO 16 8 1, the printed circuit board in 3D

    IO 16 8 1

    PPUC/Hardware_IO_16_8_1

    Hardware for the generic I/O Board for PPUC

    227 parts5
  • 2 layers97.6 × 67.3 mmOut 8x10, the printed circuit board in 3D

    Out 8x10

    PPUC/Hardware_Out_8x10

    Hardware for Lamp Matrix Board for PPUC

    172 parts
  • 2 layers84 × 133 mmRadio kiosk fixed, the printed circuit board in 3D

    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 mmBusPirate-5-rev10, the printed circuit board in 3D

    BusPirate-5-rev10

    DangerousPrototypes/BusPirate5-hardware

    Bus Pirate Hardware and accessories for v5 and higher

    220 parts125MIT
  • 4 layers111.6 × 133.9 mmGreenhouse controller pcb, the printed circuit board in 3D

    Greenhouse controller pcb

    hspil/greenhouse-controller-pcb

    Central controller for greenhouse automation project

    115 parts
  • 2 layers58 × 63 mmCamping LightRelay, the printed circuit board in 3D

    Camping LightRelay

    Rustaphor/LightRelay4Camping

    Analog light sensor to night power up LED garland. For Camping use.

    91 parts2GPL-3.0
  • 4 layers100 × 72 mmFLEADiP, the printed circuit board in 3D

    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.