

ClassicsController
Breathe new life into your classic Williams pinball machine
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 43
- Nets
- 308
- Pads
- 521
- Tracks, vias
- 0, 0
- Routed
- Not yet
- KiCad
- KiCad 6 (file 20211014)
- Created
- 12 Dec 2022
- Updated
- 21 Dec 2022
Overview
ClassicsController is an open-source printed circuit board by LegacyPinball, from the LegacyPinball/ClassicsController repository on GitHub. It is a 2-layer board with 43 parts on 308 nets.
It is built around the RP2040, W25Q128JVSIQ and SN74CBT16233DGGR, with the SN74CBT16245CDLR among its other parts. Its parts include 18 capacitors, 10 ICs, 6 resistors, 2 connectors and 2 switches. It belongs with the RP2040 boards of this library.
Main components
4RP2040
LQFN-56(7x7)12bit 133MHz 30 LQFN-56(7x7) Microcontrollers (MCU/MPU/SOC) ROHSRaspberry PiMicrocontrollers (MCU/MPU/SOC)W25Q128JVSIQ
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 FLASHSN74CBT16233DGGR
TSSOP-56-6.1mm-40℃~+85℃ 16 250ps 2:1 4.75V~5.25V 5.2ns 5.3ns 7Ω TSSOP-56-6.1mm Analog Switches, Multiplexers ROHSTexas InstrumentsAnalog Switches, MultiplexersSN74CBT16245CDLR
SSOP-48-300mil-40℃~+85℃ 0.15ns 16/16 3uA 4V~5.5V 74CBT Output enable high-impedance、Power-off protection Single Supply SSOP-48-300mil Signal Switches, Multiplexers, Decoders ROHSTexas InstrumentsSignal Switches, Multiplexers, Decoders
README
README.mdLegacy Pinball Classics Controller
Specifications:
- Enables communication between Mission Pinball Frameworks (MPF) and 6808/6802 based Williams MPU Boards. Designed for System 6, with System 3-7 support coming soon.
- Compatible with existing original or aftermarket MPU and Driver boards
- Drop in replacement for MC6808 CPU IC1
- USB Interface makes MPF computer connection easy, with a high retention USB-B connector
Planned:
- Onboard 6808 socket enables true original code execution, switchable via Mission Pinball control
- Enhanced hardware debugging via Classics Controller helps identify bad ROMs, RAM, PIAs, and more
Future:
- MPU/Driver Emulation mode enables virtual memory space for 6808 which can be modified in real time, via the Bus Interconnect Matrix
- 6808 Emulation mode eliminates the need for a real 6808 CPU
Hardware overview:
- Classics Controller is comprised of a custom PCB hosting an onboard RP2040 with 2+MB flash, socketed 6808 with crystal, and bus interfacing ICs.
- Optional USB isolation IC ADUM3160 and 5V-5V isolated module adds $20-$25 to BOM.
- RP2040 communicates with the MPU bus using 2 Microchip MCP23S17 SPI GPIO expanders, adding an additional 32 pins for bus data, addressing, and bus logic (such as VMA, IRQ, NMI, Reset monitoring, and Φ2).
- RP2040 interfaces with MCP23S17 via an 8 channel 3.3V to 5V bidirectional logic level translating buffer.
- The RP2040 expander bus is 2:1 multiplexed with the real 6808 bus using 2 Texas Instruments SN74CBT16233DGGR, 16 channel bidirectional general purpose bus multiplexer (mux), providing a total of 32 channels of bus control.
- The output of the 2:1 bus multiplexer is connected to 2 Texas Instruments SN74CBT16245C, a 16 channel bidirectional 1:1 bus switch, enabling the disconnect of the Classics Controller from the MPU bus. In conjunction with the "Test" inputs of the 2:1 bus mux, this allows the RP2040 to communicate directly with the 6808 without any interference from devices on MPU or Driver board. In the future, this can allow the RP2040 to emulate the MPU board and control the state of a live 6808 CPU.
- Classics Controller connects to System 6 MPU via ribbon cable and 40 position 0.600" DIP IDC connector. The Classics Controller hosts a keyed, standard 2x20 2.54mm male header connector.
Simplified Hardware Diagrams
Overview:
graph LR
PC([Computer Running MPF]) <--> |USB Cable| CC[Classics Controller]
CC --> MPU[System 6 MPU Board]
MPU --> DRV[Driver Board]Address and Data Flow:
graph TB
USB(USB) --> RP[RP2040]
RP --> BLT[Bidirectional Level Translator]
BLT --> MCP1[SPI GPIO Expander, Addr0x20]
BLT --> MCP2[SPI GPIO Expander, Addr0x22]
MCP1 --> MUX1[2:1 Multiplexer, 16CH]
6808 -->|Address 0:15| MUX1
6808 -->|Data 0:7 + Bus Control| MUX2
MCP2 --> MUX2[2:1 Multiplexer, 16CH]
MUX1 --> SW1[Bus Switch, 16CH]
MUX2 --> SW2[Bus Switch, 16CH]
SW1 --> RC[Ribbon Cable to MPU Board]
SW2 --> RCBuffer Control:
graph TB
RP2040 --> BLT[Bidirectional Level Translator]
BLT -->|A/B Switch + 'test'| MUX1[2:1 Multiplexer, 16CH]
BLT -->|En| SW1[Bus Switch, 16CH]
BLT -->|HALT| 6808
BLT -->|En| SW2[Bus Switch, 16CH]
BLT -->|A/B Switch + 'test'| MUX2[2:1 Multiplexer, 16CH]Firmware Overview
The Firmware for the Legacy Pinball Classics Controller is written in MicroPython.
Both cores of the RP2040 are utilized:
Core 0:
- Initializes USB Serial and SPI Component
- Waits for a connection with MPF
- Disables 6808
- Implements serial protocol to communicate with MPU board
- Manages locks and mailboxes
- Schedules core 1
Core 1:
- Abstracts address translation layer
- Polls and writes to PIA on MPU and Driver Board
- Handles bus control
Parts
43| Qty | Value | Footprint | References |
|---|---|---|---|
| 9 | 0.1uF | Capacitor_SMD:C_0805_2012Metric | C4, C5, C6, C7, C8, C9, C10, C11, C12 |
| 5 | C | Capacitor_SMD:C_0805_2012Metric | C1, C2, C3, C15, C16 |
| 2 | 1uF | Capacitor_SMD:C_0805_2012Metric | C13, C14 |
| 2 | 27.4 | Resistor_SMD:R_0603_1608Metric | R5, R6 |
| 2 | 27pF | Capacitor_SMD:C_0805_2012Metric | C17, C18 |
| 2 | MCP23S17_ML | Package_DFN_QFN:QFN-28-1EP_6x6mm_P0.65mm_EP4.25x4.25mm | U5, U6 |
| 2 | SN74CBT16233DGGR | Package_SO:TSSOP-56_6.1x14mm_P0.5mm | U7, U8 |
| 2 | SN74CBT16245CDL | Package_SO:SSOP-48_7.5x15.9mm_P0.635mm | U9, U10 |
| 2 | SW_SPST | Button_Switch_SMD:SW_SPST_CK_RS282G05A3 | SW1, SW2 |
| 1 | 1k | Resistor_SMD:R_0603_1608Metric | R2 |
| 1 | 3.3k | Resistor_SMD:R_0603_1608Metric | R3 |
| 1 | 3.58Mhz | Crystal:Crystal_HC52-U_Vertical | Y1 |
| 1 | 330 | Resistor_SMD:R_0603_1608Metric | R4 |
| 1 | Conn_02x20_Counter_Clockwise | Connector_IDC:IDC-Header_2x20_P2.54mm_Vertical | J2 |
| 1 | DNP | Resistor_SMD:R_0603_1608Metric | R1 |
| 1 | D_Schottky | Diode_SMD:D_1206_3216Metric | D1 |
| 1 | FerriteBead | Inductor_SMD:L_0603_1608Metric_Pad1.05x0.95mm_HandSolder | FB1 |
| 1 | Jumper_2_Open | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | JP1 |
| 1 | MC6802 | Package_DIP:DIP-40_W15.24mm | U1 |
| 1 | RP2040 | Package_DFN_QFN:QFN-56-1EP_7x7mm_P0.4mm_EP3.2x3.2mm | U2 |
| 1 | SolderJumper_2_Open | Jumper:SolderJumper-2_P1.3mm_Open_TrianglePad1.0x1.5mm | JP2 |
| 1 | TXB0108PWR | Package_SO:TSSOP-20_4.4x6.5mm_P0.65mm | U4 |
| 1 | USB_B | Connector_USB:USB_B_OST_USB-B1HSxx_Horizontal | J1 |
| 1 | W25Q128JVS | Package_SO:SOIC-8_5.23x5.23mm_P1.27mm | U3 |
Questions
What parts does the ClassicsController use?
43 parts, built around the RP2040, W25Q128JVSIQ, SN74CBT16233DGGR and SN74CBT16245CDLR. 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 ClassicsController KiCad files?
From the LegacyPinball/ClassicsController repository on GitHub, at the commit this page was made from: the board is hardware/ClassicsController.kicad_pcb and its schematic hardware/ClassicsController.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the ClassicsController design in my own project?
Its repository states no licence, so its author keeps all rights: ask LegacyPinball before reusing the design.
Similar boards
- 2 layers199.4 × 106.2 mm

- 2 layers42 × 67 mm

- 2 layers181 × 97 mm

OpenDeck r3.1.2
shanteacontrols/OpenDeck
A platform for building interactive control and sensing devices using MIDI and OSC built with Zephyr RTOS.
262 parts960Apache-2.0 - 4 layers82.6 × 82.5 mm

- 4 layers102.9 × 96.7 mm

PicoGUS chipdown
polpo/picogus
Emulation of ISA sound cards and CD-ROM on Raspberry Pi Pico (GUS, SB/Adlib, MPU-401, Tandy, CMS, Panasonic CD-ROM) with USB mouse/joystick support
99 parts805 - 4 layers180.8 × 300.3 mm

Dilemma
Bastardkb/Dilemma
The Dilemma is a vertical stagger low-profile keyboard with mods.
383 parts590 - 2 layers130.4 × 76.6 mm

Gb stream cart
Staacks/gbinterceptor
Capture or stream Game Boy gameplay footage via USB without modifying the Game Boy.
80 parts542 - 2 layers78 × 60 mm
