

Opto 16
Hardware for an Opto Board for PPUC
- Size
- 99.7 × 67.3 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 206
- Nets
- 145
- Pads
- 628
- Tracks, vias
- 2,012, 467
- Pours
- 2
- Routed
- Yes
- KiCad
- KiCad 6 (file 20211014)
- Created
- 26 Mar 2025
- Updated
- 25 May 2025
Overview
Opto 16 is an open-source printed circuit board by PPUC, from the PPUC/Hardware_Opto_16 repository on GitHub. It is a 2-layer board of 99.7 × 67.3 mm with 206 parts on 145 nets, routed with 2,012 tracks and 467 vias.
It is built around the RP2040, ADM3483ARZ and SN74AHCT1G125DBV, with the LMV321, W25Q128JVSIQ and LM339 among its other parts. Its parts include 110 resistors, 43 capacitors, 25 connectors, 10 ICs and 7 diodes. It belongs with the RP2040 boards of this library.
Main components
10RP2040
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 IncorporatedUncategorisedSD15
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.mdOpto PCB for PPUC Project
This is the hardware for a opto board which was designed for the PPUC pinball project, but can be useful in other applications as well.
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.
Name
Opto_16 as it has 16 inputs and 16 led divers. Additionally it has one special output.
Application
Please be aware that in pinball many different opto types are used. You have to know which type of opto coupling you need for your purpose. I found the following types:
- Optos with photo transistors as a receiver and common collector (used for example in Dirty Harry with board A-16998.1).
- Optos with photo transistors as a receiver and common emitter (used for example in Rollergames with board C-13205). Commonly used for drop targets and flipper buttons.
- Optos with photo diodes as a receiver (used for example in World Poker Tour with board 520-5239-01).
The transmitter LEDs I've seen so far, are either single (2 pins) or share a common cathode.
This Opto_16 PCB can be used to drive transmitter LEDs from a 5 V power supply and can cope with common collector photo transistors and photo diodes.
There are 2 groups of inputs (2 x 8). One group is for photo transistors. The other group can be configured to be inputs for photo diode or photo transistor. Jumpers are used for configuration. You can only change the whole group (8 inputs), not a single channel. If no jumper is placed (all open) then the configurable group of 8 inputs are good for photo diodes. If you want them to be for photo transistors you have to close jumper JP2 and also put jumpers on the channel-connectors J18 to J25. Actually only the connectors for used channels has to be shorted by a jumper, not used channel can be left open.
If you have an application with common emitters you can use the inputs of the switch-matrix board (IO_16x8_matrix) of the PPUC project. The inputs of the standard IO board (IO_16_8_1) should work as well. In either case you need to drive the transmitter LED with a constant current of about 20 mA. This can be done with a 180 Ohm resistor at a 5 V supply (you have to wire this yourself).
If you have an opto board already (e.g. from an existing pinball machine) you can use this with the inputs of the switch-matrix board (IO_16x8_matrix) or the inputs of the standard IO board (IO_16_8_1). Connect the output transistor of the opto board to the input of the PPUC board in a way that the transistor switches to ground. Be aware that opto boards are powered with either 12 V or 5 V in existing pinball machines. Both can be used with PPUC.
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)
LED drivers
There are 16 outputs. Each of them drives one LED (usually red or infra red).
Inputs
There are 2 groups of inputs, each with 8 channels:
- A group of 8 inputs are designed to be used with optos that use a photo transistor as receiver and are connected to have a common collector.
- A group of 8 inputs are designed to be used with optos that use a photo diode as receiver. They are usually single (two pins) or share a common cathode.
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.
Additional analog functions
- There are 2 ADC channels from the RP2040 made accessible through a connector. Filtered by a 1st order low pass (1 kOhm/100 nF, fg = 1.6 kHz).
- 6 GPIOs are also routed to this connector. They are also filtered by a 1st order low pass (1 kOhm/100 nF, fg = 1.6 kHz) and could be used for analog output per PWM.
Connectors
There are pads for connectors that fit the A-16998.1 board. Additionally for 8 inputs and drivers there are pins for single LEDs (transmitter and receiver) in 2.54 mm pitch.
Parts
206| Qty | Value | Footprint | References |
|---|---|---|---|
| 31 | 100n | Capacitor_SMD:C_0402_1005Metric | C1, C10, C11, C12, C13, C15, C16, C17, C20, C21, C22, C23, C24, C25, C26, C27 +15 |
| 22 | 10k | Resistor_SMD:R_0603_1608Metric | R1, R5, R6, R8, R33, R55, R56, R61, R62, R67, R68, R73, R74, R79, R103, R104 +6 |
| 21 | 2k | Resistor_SMD:R_0603_1608Metric | R14, R18, R19, R28, R51, R58, R60, R64, R66, R70, R72, R76, R78, R102, R107, R110 +5 |
| 17 | 1k | Resistor_SMD:R_0603_1608Metric | R52, R57, R59, R63, R65, R69, R71, R75, R77, R81, R84, R89, R92, R100, R105, R108 +1 |
| 16 | 180R | Resistor_SMD:R_1206_3216Metric | R35, R36, R37, R38, R39, R40, R41, R42, R43, R44, R45, R46, R47, R48, R49, R50 |
| 16 | Conn_01x02 | Connector_Molex:Molex_KK-254_AE-6410-02A_1x02_P2.54mm_Vertical | J7, J8, J9, J10, J11, J12, J13, J14, J18, J19, J20, J21, J22, J23, J24, J25 |
| 13 | 1k | Resistor_SMD:R_0402_1005Metric | R4, R12, R15, R20, R21, R22, R23, R24, R25, R26, R29, R30, R34 |
| 8 | 1M | Resistor_SMD:R_0603_1608Metric | R82, R85, R90, R93, R98, R101, R106, R109 |
| 7 | 10u | Capacitor_SMD:C_0603_1608Metric | C2, C4, C18, C30, C33, C34, C35 |
| 4 | Conn_01x10 | Connector_Molex:Molex_KK-254_AE-6410-10A_1x10_P2.54mm_Vertical | J6, J15, J16, J17 |
| 4 | LM339 | Package_SO:SOIC-14_3.9x8.7mm_P1.27mm | U7, U8, U9, U10 |
| 2 | 100R | Resistor_SMD:R_0603_1608Metric | R2, R16 |
| 2 | 1A | Diode_SMD:D_SOD-323 | D3, D7 |
| 2 | 1u | Capacitor_SMD:C_0402_1005Metric | C14, C19 |
| 2 | 27 | Resistor_SMD:R_0402_1005Metric | R10, R11 |
| 2 | 27pF | Capacitor_SMD:C_0402_1005Metric | C6, C7 |
| 2 | 5k1 | Resistor_SMD:R_0603_1608Metric | R31, R32 |
| 2 | Conn_01x06 | Out_8x10:Terminal_Block_RTMPin | J1, J5 |
| 2 | SD15 | Diode_SMD:D_SOD-323 | D1, D2 |
| 1 | 0 | Resistor_SMD:R_0603_1608Metric | R7 |
| 1 | 100µ 35V | Capacitor_SMD:CP_Elec_6.3x7.7 | C31 |
| 1 | 120R | Resistor_SMD:R_0603_1608Metric | R3 |
| 1 | 12MHz,18pF | Crystal:Crystal_SMD_3225-4Pin_3.2x2.5mm | Y1 |
| 1 | 330k | Resistor_SMD:R_0603_1608Metric | R53 |
| 1 | 33k | Resistor_SMD:R_0603_1608Metric | R13 |
| 1 | 3k | Resistor_SMD:R_0603_1608Metric | R27 |
| 1 | 5k | Resistor_SMD:R_0603_1608Metric | R17 |
| 1 | 6k8 | Resistor_SMD:R_0603_1608Metric | R54 |
| 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 | U6 |
| 1 | Boot | Button_Switch_SMD:SW_SPST_SKQG_WithStem | SW2 |
| 1 | Conn_01x10 | Connector_PinSocket_2.54mm:PinSocket_1x10_P2.54mm_Vertical | J4 |
| 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 | U3 |
| 1 | RP2040 | Package_DFN_QFN:QFN-56-1EP_7x7mm_P0.4mm_EP3.2x3.2mm | U4 |
| 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 | U5 |
| 1 | TP_GND | Connector_Pin:Pin_D1.0mm_L10.0mm | TP2 |
| 1 | TP_LED | Connector_Pin:Pin_D1.0mm_L10.0mm | TP1 |
| 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 |
| 1 | open: LED, closed: Transistor | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | JP2 |
The 203 most common of 206 parts.
Similar boards
- 2 layers97.6 × 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 - 2 layers226.5 × 75 mm

Gridiron
dededecline/Gridiron
Gridiron keyboard designed by me. All files for production are inside this repository.
159 parts13GPL-3.0 - 4 layers111.6 × 133.9 mm

Greenhouse controller pcb
hspil/greenhouse-controller-pcb
Central controller for greenhouse automation project
115 parts - 4 layers60.5 × 60 mm

BusPirate-5-rev10
DangerousPrototypes/BusPirate5-hardware
Bus Pirate Hardware and accessories for v5 and higher
220 parts125MIT - 2 layers99.1 × 99 mm

XDuinoRail Debug
chatelao/xDuinoRail-Decoder
The friendly decoder development plattform for model railroad tinkers.
170 partsAGPL-3.0
Questions
How big is the Opto 16 PCB?
It measures 99.7 × 67.3 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Opto 16 use?
206 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 Opto 16 KiCad files?
From the PPUC/Hardware_Opto_16 repository on GitHub, at the commit this page was made from: the board is Opto_16/Opto_16.kicad_pcb and its schematic Opto_16/Drv8.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Opto 16 design in my own project?
Its repository states no licence, so its author keeps all rights: ask PPUC before reusing the design.