Topics/Inputs & Controls/HotSwap Arcade Kit: Buttons, Joystick and Coin Acceptor for ESP32-S3, Nano, Pico and Zero 2 W
DIGITALSPIbeginner

HotSwap Arcade Kit: Buttons, Joystick and Coin Acceptor for ESP32-S3, Nano, Pico and Zero 2 W

One mainboard for ten buttons, a joystick, a 12 V coin acceptor and an SPI screen, and four adapters that plug it into an ESP32-S3, a classic Arduino Nano, a Raspberry Pi Pico or a Zero 2 W. Pin tables for every adapter, the power arrangement, and the code.

HotSwap Arcade Kit: Buttons, Joystick and Coin Acceptor for ESP32-S3, Nano, Pico and Zero 2 W

Specifications

In the box1 mainboard, 4 adapters, 1 joystick, 10 arcade buttons, 14 button cables, 1 coin acceptor with its cable, 4 mounting screw sets and pin headers
Adapters4 adapters: ESP32-S3 (DevKitC-1 layout), classic Arduino Nano (ATmega328P), Raspberry Pi Pico or Pico 2, Raspberry Pi Zero 2 W. Copper only, no components
SupplyUSB-C, 5 V, power only: the socket has no data contacts. 2 A or more
Acceptor supplyAbout 12 V, made on the mainboard by an MT3608 boost converter. Only the acceptor socket carries it
Inputs14 switch inputs, KEY1 to KEY10 and UP, DOWN, LEFT, RIGHT, on 2-pin sockets. Each has a 10 kΩ pull-down; pressed reads HIGH
Logic levelV(MCU), the adapter's own rail: 3.3 V on the ESP32-S3, Pico and Zero 2 W adapters, 5 V on the Nano. No level shifter needed
Coin signalsCOIN and COUNTER, active low. Each is pulled up to V(MCU) through 10 kΩ behind an SS24 diode that keeps the acceptor's 12 V out
Header26 positions, 2.54 mm, right-angle. The adapter plugs in edge to edge and lies flat beside the mainboard
Screen15-way 1.0 mm FPC, 9 contacts wired. Not connected on the Nano adapter. The kit's display examples drive an ILI9488
CodeArduino C++ on the ESP32-S3 and Nano, MicroPython on the Pico, Python on the Zero 2 W. Open source on GitHub

What it does

The kit is an arcade control panel that plugs into four kinds of development board. The mainboard has sockets for ten buttons, a joystick's four switches, a coin acceptor and a screen, and brings all of them to one 26-pin header. An adapter joins that header to your board.

The mainboard from above: a USB-C socket and a 15-way ribbon connector along the top, fourteen white two-pin sockets in rows labelled KEY1 to KEY10, UP, DOWN, LEFT and RIGHT, a four-pin socket at the bottom labelled COUNTER, GND, COIN and +12V, and a column of 26 labelled header positions down the right edge from GND, 5V(OUT) and V(MCU) to LCD-CS.
The mainboard. Everything plugs in here; the adapter goes on the long header down the right.

It also makes the coin acceptor's 12 V from the 5 V on its USB-C socket, so one supply runs everything.

The four adapters

The four adapter boards side by side from above: ESP32-S3, NANO, RASPBERRY PI PICO 1/2 and RASPBERRY PI / ZERO, each a black board with 26 labelled holes down its left edge and the outline of its development board on the right.
Each adapter is copper only. It joins the 26 header positions to one board's pins.
MainboardESP32-S3NanoPicoZero 2 W
KEY1GPIO4D2GP16BCM4
KEY2GPIO5D3GP17BCM5
KEY3GPIO6D4GP18BCM6
KEY4GPIO7D5GP19BCM12
KEY5GPIO15D6GP20BCM13
KEY6GPIO16D7GP21BCM16
KEY7GPIO17D8GP15BCM17
KEY8GPIO18D9GP14BCM19
KEY9GPIO8D10GP13BCM14
KEY10GPIO40D11GP12BCM15
UPGPIO39D12GP22BCM20
DOWNGPIO38A4GP11BCM21
LEFTGPIO9A3GP10BCM22
RIGHTGPIO47A2GP26BCM23
COUNTERGPIO21A1GP27BCM24
COINGPIO14A0GP28BCM26
LCD-BLGPIO41GP9BCM18
LCD-RSTGPIO42GP8BCM27
LCD-DCGPIO2GP7BCM25
LCD-MISOGPIO13GP6BCM9
LCD-SCKGPIO12GP5BCM11
LCD-MOSIGPIO11GP4BCM10
LCD-CSGPIO10GP3BCM8

Power in two sentences

The development board's own USB programs it and powers the buttons. The mainboard's USB-C powers everything, the coin acceptor included, but carries no data. See Two USB sockets.

Where to start

Run the input monitor with one button on KEY1: Press a button. Then the joystick, then the coins, in the handbook's order.

When it doesn’t work

Which adapter do I need?
The one named on your development board: ESP32-S3 for a DevKitC-1-style ESP32-S3 board, NANO for a classic ATmega328P Nano, PICO 1/2 for a Raspberry Pi Pico or Pico 2, ZERO for a Raspberry Pi Zero 2 W. The adapter only reroutes the header; the mainboard is the same for all four.
Can I program the board through the mainboard's USB-C?
No. That socket carries power and has no data contacts. Program and read messages through the development board's own USB socket, and use the USB-C socket to power the coin acceptor.
Do I need a level shifter for the coin acceptor?
No. The acceptor runs on 12 V but only ever pulls its signal wires to ground. A diode on each line lets that low through and blocks anything higher, and a pull-up holds the pin at your board's own voltage between pulses.
Why does a pressed button read HIGH?
Each button joins its input to V(MCU), the development board's own supply, and a 10 kΩ resistor holds the input at ground when it is released. So pressed is HIGH at exactly the voltage your board runs at.
Can I change adapters with the power on?
No. HotSwap means the adapters are interchangeable, not that they can be swapped live. Unplug every cable first: an adapter pushed on one position out puts the mainboard's 5 V onto the board's ground or its 3.3 V pin.
Does it work as a USB or Bluetooth game controller?
Not out of the box. The examples read the buttons, joystick and coins and print what they see. Turning that into a USB or Bluetooth gamepad is firmware you add, and the kit's examples do not include it.
Which screens work?
The kit's display examples are written for an ILI9488 panel. Any SPI panel on a 15-way ribbon with the same contact order will connect, but it needs a driver for its own controller: an ST7735, ST7789 or ST7796 stays white under the ILI9488 code.

The arcade kit handbook

11 articles · about 50 minutes

This page is the reference: what the part is, what it is made of, and the questions people arrive already asking. The handbook is the walk — the same part in the order somebody actually meets it.

The kit

2 articles

One board with every connector on it, and four boards with none. Which part does what, and which adapter your development board needs.

Power

2 articles

Two USB sockets that do different jobs, a 12 V rail for the acceptor, and a pin called V(MCU) that explains why no level shifter is needed.

Buttons and joystick

2 articles

Fourteen switches, one program that names each one, and a joystick that closes the switch on the far side.

Coins

2 articles

A 12 V machine on a 3.3 V pin, and why one coin arrives as a burst of pulses that the code has to put back together.

Build it

3 articles

A game that takes a coin, the screen connector and what it can drive, and a page for when something does not work.

Edit this page — content/modules/arcade.mdx

Community

Questions about this product

See what other owners have asked, and read their solutions.

Ask a question ↗

HotSwap Arcade Kit: Buttons, Joystick and Coin Acceptor for ESP32-S3, Nano, Pico and Zero 2 W

Loading discussions…

Discuss this article

Ask about this page. The answer stays here, on the page it belongs to, for whoever hits the same wall next.

Browse Modules and blocks on the forum