Home » GamepadBlock – Arcade and Original Game Controller USB Interface

GamepadBlock – Arcade and Original Game Controller USB Interface



GamepadBlock feature imageConnect your favourite arcade and original game controllers to your computer (Windows, Mac, and Linux, including Raspberry Pi™) with 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):
    • Nintendo Entertainment System (NES)
    • Super Nintendo Entertainment System (SNES)
    • Sega Genesis/Megadrive
    • Sega Mastersystem
    • Atari
  • 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

Technical Specifications

  • Dimensions (Width x Length x Height): 41 x 47 x 13 mm
    Top-down view on the GamepadBlock
  • 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


Getting Started

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.

The GamepadBlock is connected with a micro USB cable to your PC

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

Connect the controllers with the screwing terminal blocks 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 
  •  Genesis/Megadrive, Master System, Atari Controllers 

Terminal Pin Controller Wire
1 Left
2 Right
3 Up
4 Down
5 Button 1
6 Button 2
7 Button 3
8 Button 4
9 Button 5
10 Button 6
11 Button 7
12 Button 8
13 Button 9
14 Button 10
15 Button 11
16 Button 12
GND GND of all controls


Diagrams of SNES and NES controller sockets
Diagrams of SNES and NES controller sockets
SNES Controller Front Pin Out
Terminal Pin Controller Wire
1 VCC Player 1
2 Clock Player 1
3 Latch Player 1
4 Data Player 1
5 GND Player 1
6 not used
7 not used
8 not used
9 VCC Player 2
10 Clock Player 2
11 Latch Player 2
12 Data Player 2
13 GND Player 2
14 not used
15 not used
16 not used

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 (VCC) Player 1
6 DB 6 Player 1
7 DB 7 (Select) 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 (VCC) Player 2
14 DB 6 Player 2
15 DB 7 (Select) Player 2
16 DB 9 Player 2
GND DB 8 (GND) Player 1 and Player 2


Setting the Controller Mode


You set the Controller Mode with the DIP switches A, B, and C

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:

A B C Description
0 0 0 Arcade Controllers
1 0 0 Super NES Controllers
0 1 0 NES Controllers
1 1 0 Genesis/Megadrive, Master System, Atari Controllers
0 0 1 Not used yet (Arcade Controllers as default) 
1 1 1 Not used yet (Arcade Controllers as default)


Updating the firmware

The firmware of the GamepadBlock can be updated via the USB connection. Currently, there exists no firmware update. As soon as firmware updates are released you will find an update tool for download and further instructions here.

Generally, for updating the firmware you need to follow these steps:

  1. Disconnect every wire that might be connected to the terminal blocks.
  2. Connect the GamepadBlock to a PC via the micro USB cable.
  3. Press the “Reset” button on the GamepadBlock, which activates the update mode.
  4. Start the update tool and follow the instructions.
To set the GamepadBlock into update mode, you need to press the “Reset” button.


Tutorials and Posts about the GamepadBlock

GamepadBlock – Universal Game Controller USB Interface - Retro-Gaming is popular. And a lot of people are building their own arcade machines or gaming consoles as personal projects. ... Read More
Tutorial: GamepadBlock with Debian / Ubuntu - This is a post as part of a tutorial series about getting to start with the GamepadBlock. In this tutorial ... Read More
Tutorial: GamepadBlock with Raspbian - This is a post as part of a tutorial series about getting to start with the GamepadBlock with various images ... Read More


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:

LUFA License

LUFA License

LUFA Library
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
this software.



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.

%d bloggers like this: