Skip to the content
PCBKitNew board
4 layers74.9 × 98.3 mmArcadeMain, the printed circuit board in 3D

Swappable control panels for a homebuilt arcade

Size
74.9 × 98.3 mm
Copper layers
4
Thickness
1.6 mm
Parts
16
Nets
82
Pads
162
Tracks, vias
339, 20
Pours
4
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
10 Jul 2020
Updated
21 Sep 2020

Overview

ArcadeMain is an open-source printed circuit board by LesserChance, from the LesserChance/ArcadeController repository on GitHub. It is a 4-layer board of 74.9 × 98.3 mm with 16 parts on 82 nets, routed with 339 tracks and 20 vias.

It is built around the SBH11-PBPC-D25-ST-BK. Its parts include 10 connectors, 3 resistors and 3 diodes.

Main components

1

README

README.md

ArcadeController

The goal of this project is to make an easily-swappable control panel for a homebuilt arcade. There are two PCBs that are designed to mate through a ribbon cable connection. By default, this setup will allow for any control panel to have a maximum of 2 joysticks and 14 buttons (22 total digital inputs), 6 axes (e.g. 6 spinners) and two USB devices. You can easily edit the program on the arduino to assure all of your control panels will work, though, for instance if you need more digital inputs and fewer axes.

As I build out more control panels I'll be adding pictures and diagrams of how everything operates.

Electronics

PCB: Panel

One Panel PCB exists for each control panel. The Panel PCB exists as the interface between the controls (joysticks, trackballs, spinners, USB devices) and the Main interface. It is split into various sections. Full wiring diagrams can be found in the docs directory.

Player One Connected to "Player One" Micro.
Up, Down, Left, Right, B0-5: Four directional wires, 6 button wires. (note that B6, B7 are not wired to anything)
X1, X2, Y1, Y2, Z1, Z2: These utilize interrupt pins on the arduinos, and are used for encoder connections (trackball, spinner)

Player Two Connected to "Player Two" Micro.
Up, Down, Left, Right, B0-5: Four directional wires, 6 button wires. (note that B6, B7 are not wired to anything)
X1, X2, Y1, Y2, Z1, Z2: These utilize interrupt pins on the arduinos, and are used for encoder connections (trackball, spinner)

+5v/Ground Pulls +5v and Ground from "Player One" Micro. Useful for LEDs/etc

USB These directly wire to USB connection on the main control panel. These can be used to directly connect USB devices to your computer. Unfortunately these dont seem to be working just yet!

DIP switch Used to identify which control panel this is. Allows for different programming on the arduinos per control panel.

For detailed wiring information see the pinmap.

PCB: Main

The Main PCB is what connects to your computer through USB. In total it requires four open USB ports. Only One Main PCB is necessary. The main panels houses two Arduino Micros.

Micro Headers These are the positions where you plug in Arduino Micros.

Screw in Terminals These can be used for shared functions e.g. Player 1/2 Start/Coin as well as menu or function buttons. 6 are connected to "Player One" Micro, and another 6 are connected to "Player Two" Micro.

Arduino

The program is built to run on an Ardunio Micro. Two Arduino Micros are required for two-player functionality. Player One and the two additional USB devices will work fine with just one, though, if you can get away with a maximum of 17 total digital inputs on any control panel.

When plugged in the Arduinos will be treated as a joystick/mouse/keyboard by the computer based on the code used for the control panel. The joystick, by default is 2 axis (X/Y) and 12 button.


Schematics were designed in Kicad. I print PCBS with JLCPCB.

Documents

Pinmap

The pinmap outlines how connections are bridged between the PCBs and how they function by default through USB. Panel->Main->Arduino->Function

Wiring

The wiring doc outlines standard wiring for trackballs and spinners directly into the Panel PCB.

Supplies

Prices are USD, do not include shipping, and are as of July 2020.

Buy extra screw-in terminals to make more control panels, and buy the Panel PCBs in bulk. Given the below prices you could create 10 easily-swappable control panels for ~$80, and you may be able to find those screw terminals more cheaply, or decide to bypass those, just solder in your connections and have it all for ~$40. Of course the price of buttons/joysticks/trackballs/steering wheels/etc is additional.

ComponentPartSupplyCostCount
MainArduino MicroArdunio Store$12.302
MainPCBJLCPCB$7.001 (price is per 5 though - minimum order)
MainMicro USBDigikey$.872
MainMicro Pin HeadersDigikey$.512
MainMicro connection headersDigikey$2.951 (cut each down to 17 pins)
MainLEDsIm sure you have some laying around-3
MainCable HeaderDigikey$4.561
PanelPCBJLCPCB$12.001 (price was for 10)
PanelUSB HeaderDigikey$1.071
PanelRibbon CableDigikey$3.271
PanelCable HeaderDigikey$1.021
PanelDIP SwitchDigikey$.691
Main+PanelResistors(3) 10k, 3 (220)-6
Main+PanelScrew-in TerminalDigikey$1.735 (+4 for each additional panel)

Why do the PCBs have the Slurm logo on them? I dont know, I just really like Futurama and happened to have this image handy...

Parts

16
QtyValueFootprintReferences
4Conn_01x17_MaleConnector_PinHeader_2.54mm:PinHeader_1x17_P2.54mm_VerticalJ1, J2, J4, J5
3220Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_HorizontalR1, R2, R3
3LEDLED_THT:LED_D3.0mmD1, D2, D3
2Screw_Terminal_01x10TB001-500-08BE:CUI_TB001-500-02BEJ7, J8
2USB_B_Microryan-common-library:GCT_USB3131-XX-0230-X_REVBJ21, J24
1SBH11-PBPC-D25-ST-BKul_SBH11PBPCD25STBK:SBH11-PBPC-D25-ST-BKJ6
1Screw_Terminal_01x10TB001-500-10BE:CUI_TB001-500-10BEJ3

Questions

How big is the ArcadeMain PCB?

It measures 74.9 × 98.3 mm and has 4 copper layers, 1.6 mm thick.

What parts does the ArcadeMain use?

16 parts, built around the SBH11-PBPC-D25-ST-BK. 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 ArcadeMain KiCad files?

From the LesserChance/ArcadeController repository on GitHub, at the commit this page was made from: the board is PCBs/ArcadeMain/ArcadeMain.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the ArcadeMain design in my own project?

Its repository states no licence, so its author keeps all rights: ask LesserChance before reusing the design.

More from LesserChance/ArcadeController

1
  • 2 layers194.8 × 39.4 mmArcadePanel, the printed circuit board in 3D

    ArcadePanel

    LesserChance/ArcadeController

    Swappable control panels for a homebuilt arcade

    16 parts2

Similar boards

  • 4 layers24.5 × 14 mmMjuart, the printed circuit board in 3D

    Mjuart

    mjbots/moteus

    Brushless DC motor controller

    16 parts1.4kApache-2.0
  • 4 layers73 × 21.3 mmLa pod mmcx, the printed circuit board in 3D

    La pod mmcx

    azonenberg/starshipraider

    Open hardware test equipment

    16 parts193BSD-3-Clause
  • 4 layers26 × 54.4 mmSombrero MSX Goa'uld, the printed circuit board in 3D

    Sombrero MSX Goa'uld

    jabadiagm/MSXgoauld_tn20k

    MSX Goa'uld board with Tang Nano 20k

    16 parts101GPL-3.0
  • 4 layersCopy1, the printed circuit board in 3D

    Copy1

    embeddedalpha/PCB-Design

    Repository for PCB Design Projects

    16 parts77MIT
  • 4 layers39 × 20 mmMelonHD, the printed circuit board in 3D

    MelonHD

    mackieks/melonHD

    Lontium LT6711A HDMI to USB-C DP Alt Mode Converter Module for portablizers

    16 parts43
  • 4 layers36.2 × 17.9 mmI2c test board, the printed circuit board in 3D

    I2c test board

    mike42/65816-computer

    A 65C816-based homebrew computer (prototype)

    16 parts37
  • 4 layersCm5, the printed circuit board in 3D

    Cm5

    atopile/hil

    Hardware-In-the-Loop (HiL ⛰️) for high-quality validation 🧪 everywhere 🚀

    16 parts29MIT