Meet the GamepadBlock
The GamepadBlock is an Arcade and Original Game Controller USB Interface for your computer. Are you working on your own arcade machine? Or are you building your own retro-gaming machine with original controllers? The GamepadBlock is the ideal device for easily connecting original gamepads and arcade controls like joysticks and buttons to your computer. It is connected to your computer via USB cable. Depending on the controller mode you can connect up to two gamepads to the GamepadBlock. It is fully HID compliant so that you do not need to install any drivers. Windows, Mac, and Linux are supported, which also includes system-on-chip platforms like the Raspberry Pi. You can use two or more adapters on one computer.
What is special about the GamepadBlock?
There already exist USB interfaces that allow you to connect arcade controls. And there are also other USB interfaces that allow you to connect one type of original game controllers or another type of controllers. In some cases these interfaces also only allow to connect a controller for one player. The key feature of the GamepadBlock is that it supports a whole range of controller types at the same time. It, therefore, combines several of the individually available adapters within one device. And since the GamepadBlock is USB HID-compliant, it can be used on Windows, MacOS, and Linux including system-on-chip platforms like the Raspberry Pi or Odroid. For all gaming consoles that are supported two gamepads can be connected. And you can even switch between the controller types via a virtual COM port.
- Connect your favourite arcade and original game controllers to your computer
- Compatible with Windows, Mac, and Linux (including, for example, Raspberry Pi™️)
- Standard HID (Human Interface Device) compliant: No need to install any drivers, plug the GamepadBlock into your PC and you are ready to go
- Supports any 4-way arcade joysticks and up to 12 arcade buttons (for one player)
- Currently supported original gamepads (each for up to two players):
- Atari 2700, Atari 7800, Atari 800XL
- C64, C128
- Nintendo Entertainment System (NES)
- Sega Genesis/Megadrive, Sega Mastersystem
- Super Nintendo Entertainment System (SNES)
- Controller mode is set
- via DIP switch or
- via virtual COM port (scriptable)
- Full Speed USB 2.0 support, on-board micro controller, no input lacks
- No extra power supply needed
- Connections with the controllers are easily made with screwing terminal blocks
- Firmware of the GamepadBlock can be updated via USB for future additional gamepad types or other feature updates
- Multiple GamepadBlocks can be used to increase the number of controllers to your needs
- Dimensions (Width x Length x Height): 41 x 47 x 13 mm
- Input Voltage: 5V via Micro USB Connector
- Output Voltages:
- Screwing Terminals 1 to 16: 5V or GND
- Screwing Terminal 17: 3.3V or GND
- The signal level depends on the set Controller Mode
- DIP switch to set Controller Mode (alternatively via virtual COM port)
- 2×3 In-Service-Programmer (ISP) Pin Outs
- Reset Button to activate firmware update mode
- 2 Mounting Holes
Attaching the GamepadBlock to the PC
In order to connect the GamepadBlock to your PC you need a USB cable with a micro USB connector on the one end and an USB-A connector on the other end. A green LED indicates an active power supply.
For Windows and Mac platforms you do not have to install or configure anything on their machine. The native USB HID drivers are used for the GamepadBlock. For Linux platforms you also do not need to install any drivers. However, you need to activate a so-called HID quirk until our patch has been merged into the Linux mainline. You can find instructions for that in the tutorial section below.
Attaching the Original Controllers to the GamepadBlock
You use the screwing terminal blocks for connecting the original controllers. If you are looking for controller sockets, we made good experiences with controller sockets from extension cables for the corresponding controllers. Alternatively, you could use original hardware from old consoles.
In the following tables you can find wiring details for every supported controller types. Click on the tab that shows the controller type that you are interested in.
- Arcade Controllers
- SNES, NES Controllers
- Sega Genesis/Megadrive, Atari 2700, Atari 7800, 800XL, Amiga, C64, C128, Sega Master System, VC20
|Terminal Pin||Controller Wire|
|GND||GND of all controls|
All controls are low active. This means that you can use a single wiring harness for GND.
|Terminal Pin||Controller Wire|
|1||VCC Player 1|
|2||Clock Player 1|
|3||Latch Player 1|
|4||Data Player 1|
|5||GND Player 1|
|9||VCC Player 2|
|10||Clock Player 2|
|11||Latch Player 2|
|12||Data Player 2|
|13||GND Player 2|
|Terminal Pin||Controller Wire|
|1||DB 1 Player 1|
|2||DB 2 Player 1|
|3||DB 3 Player 1|
|4||DB 4 Player 1|
|5||DB 5 Player 1|
|6||DB 6 Player 1|
|7||DB 7 Player 1|
|8||DB 9 Player 1|
|9||DB 1 Player 2|
|10||DB 2 Player 2|
|11||DB 3 Player 2|
|12||DB 4 Player 2|
|13||DB 5 Player 2|
|14||DB 6 Player 2|
|15||DB 7 Player 2|
|16||DB 9 Player 2|
|GND||DB 8 (GND) Player 1 and Player 2|
For Genesis / Megadrive controllers you can use 6 button controllers. Switch to 6-button mode with the button combination “A+B+C+Start+Up”.
Setting the Controller Mode
The controller mode determines how the GamepadBlock polls the terminal inputs. You need to set the three DIP switches according to the controller that you want to attach to the GamepadBlock.
To activate the new configuration, you need to unplug and reattach the micro USB cable. The following table shows the needed DIP switch settings for all supported controller types:
|1||0||0||Super NES Controllers|
|0||0||1||Not used yet (Arcade Controllers as default)|
|1||0||1||Atari 2700, Atari 7800, 800XL, Amiga, C64, C128, Sega Master System, VC20|
|1||1||1||Not used yet (Arcade Controllers as default)|
In order to install that rule you can simply run the following command from within the Linux console:
wget -q -O - https://raw.githubusercontent.com/petrockblog/GamepadBlockScripts/master/linux-udevrule.sh | sudo bash
Updating the firmware
The firmware of the GamepadBlock can easiliy be updated via the USB connection. We recommend to update the firmware before first use. This ensures that you get the latest firmware version with the maximum of features.
To update the firmware we have developed the tool “GamepadBlock Updater”. You can find detailed instructions about the tool and a how to for updating the firmware on this dedicated page.
Getting it and Support
Tutorials and Posts about the GamepadBlock
Gadgets that you might also be interested in
If you are working on a Raspberry Pi project and are looking for a combination of power (“on – off”) switch and game controller interface, you might very well be interested in the ControlBlock.
If you are looking for a power switch only for your Raspberry Pi project, the PowerBlock is the gadget for you.
The firmware of the GamepadBlock makes use of the great Lightweight USB Framework for AVRs – in short “LUFA” – by Dean Camera. You can find the complete license of LUFA in the following toggle box:
Copyright (C) Dean Camera, 2013.
dean [at] fourwalledcubicle [dot] com
Permission to use, copy, modify, and distribute this software
and its documentation for any purpose is hereby granted without
fee, provided that the above copyright notice appear in all
copies and that both that the copyright notice and this
permission notice and warranty disclaimer appear in supporting
documentation, and that the name of the author not be used in
advertising or publicity pertaining to distribution of the
software without specific, written prior permission.
The author disclaims all warranties with regard to this
software, including all implied warranties of merchantability
and fitness. In no event shall the author be liable for any
special, indirect or consequential damages or any damages
whatsoever resulting from loss of use, data or profits, whether
in an action of contract, negligence or other tortious action,
arising out of or in connection with the use or performance of
The GamepadBlock is an easy to use, multi-platform USB interface for connecting arcade controls as well as various original console gamepads. Up to two gamepads can be connected. You do not need to install any drivers, only connect the controllers and you are ready to go. The GamepadBlock can be updated via USB for future enhancements. You can find technical details, videos and tutorials above in this article.