ControlBlock – Game Controllers, Power Switch, and I/O for the Raspberry Pi
The ControlBlock is an add-on board for the Raspberry Pi. The two key features of the ControlBlock are
- a safe power button functionality to shutdown the Raspberry Pi without the risk of any data losses and
- terminal blocks and a driver for connecting original game controllers for arcade machines and various game consoles.
The ControlBlock makes it very easy to connect arcade controllers or console controllers, for example, for (S)NES, Atari, Genesis/Megadrive, or Sega Master System consoles. Up to two players are supported by a single ControlBlock. Stacked upon each other, up to four players are supported. The open-source driver for the ControlBlock is easy to install and can be configured to your liking.
The power switch functionality allows to turn on and off the power to the Raspberry Pi with a toggle switch without the risk of data loss. You can also connect a status LED for indicating the power status of the Raspberry Pi.
Demo Videos
Features and Technical Specifications
- Supports arcade and original game controllers
- Arcade controls
- SNES and NES controllers
- Atari controllers
- Sega Master System controllers
- Sega Genesis / Megadrive controllers
- All supported controllers for up to two players
- Safe power button (includes the same functionality as the PowerBlock)
- Supports toggle and momentary switches
- Automatic detection of switch type
- Smooth power status indication via optional external LED
- All 32 GPIO channels of the ControlBlocks can accessed via SPI and, thus, can also be used for any other purpose for your project!
- Input Voltage: 5V
- Output Voltage: 5V
- Continuous Current @ 25°C: maximum 7 A
- MOSFET Static On-Resistance: 0.006 Ω
You can order the ControlBlock here:
What our customers say
I purchased this ControlBlock to build a RetroPI. I was impressed with the look and quality of the board, and included parts. After receiving my board I went to the website and followed the assembly instruction. It was very easy to assemble and looks great. I have not had a chance to try it out yet because I’m still waiting for some other parts. I even have my son interested in building a RetroPI after I get mine completed. Thanks Florian for a great product.
Truly, it took this project to the next level. I can’t recommend it highly enough.
This is by far the most effective way of providing control inputs and start/stop your Pi without coruupting the filesystem with hard resets. It’s exactly what is needed and nothing you don’t. Delivery was good. Doc is excellent.
Buy a Pi3, add this control block and a class D 20w Adafruit amp and you’re done. Everything just works without any stress. And, don’t forget to donate to RetroPie. Worth every single cent.
Used this in a super Famicom retropie build. Wanted to use original case controller board, power, led, ect. Very easy to install and use. Did not run into a single problem.
Hardware Interface of the ControlBlock
Here is a top-view of the ControlBlock:
2x13 stackable pin header as connector to the Raspberry Pi
2x13 stackable pin header as connector to the Raspberry Pi
The ControlBlock is attached to the Raspberry with a 2×13 stackable pin header. This header is used for connecting to the voltage and ground pins as well as the additional GPIO pins. The board is prepared for breaking out all other pins of that header so that you can easily access all other pins that are not used by the ControlBlock.
USB Type Power Supply
USB Type Power Supply
Just as the Raspberry Pi the ControlBlock provides a USB connector for the power supply. That means you can use your existing USB Micro cable. As an alternative you can optionally solder a USB-B socket to the ControlBlock that can be used as input for power supply.
Pin Outs for 5V Power Supply
Pin Outs for 5V Power Supply
If you do not want to use the USB connector, GND and the 5V supply voltage can also be accessed via two pins so that you could use batteries or whatever you like for power supply.Pin Outs for a Toggle or a Momentary Button
Pin Outs for a Toggle or a Momentary Button
To control the power state of the Raspberry Pi the ControlBlock provides an interface for attaching a toggle or a momentary buttons. The type of the button is detected automatically. The on-board microcontroller monitors the state of that switch as well as the one of the Raspberry. It safely shuts down the Raspberry without any risk of data loss.
Pin Outs for a Status LED
Pin Outs for a Status LED
The current power state can be indicated with a 5V status LED that can be attached to the two pins that are provided by the ControlBlock. These states can be “off”, “booting”, “on”, and “shutdown”. The different state are indicated with easy-to-distinguish static and pulsing patterns.
Additional 2x16 GPIO Pin, Game Controllers
Additional 2x16 GPIO Pin, Game Controllers
Two GPIO expanders provide 32 additional GPIO pins for arbitrary usage. With revision 2.X of the Raspberry Pi, these pins can be accessed via the SPI interface of the Raspberry Pi (With revision 1.X of the ControlBlock, these pins can be accessed via the I2C interface with the I2C addresses 0x20 and 0x27). You can use the provided ControlBlock driver to easily connect various original game controllers.
In-Service Programmer (ISP) Pin Outs
In-Service Programmer (ISP) Pin Outs
The power switch logic is implemented with the help of an Atmel ATtiny85 micro controller. You have the possibility to access the microcontroller with the ISP header. In this way you could reprogram the microcontroller with whatever functionality you like.
GPIO Pins used by the ControlBlock
GPIO Pins used by the ControlBlock
The ControlBlock uses these GPIO pins of the 40-pin header of the Raspberry Pi: 3.3V (pin 1), 5V (pin 2), GPIO 17 (pin 11), GPIO 18 (pin 12), MOSI (pin 19), MISO (pin 21), SCLK (pin 23), CE0 (pin 24).
Getting Started with the ControlBlock – Hardware and Software Setup
Regarding the software you need to install the ControlBlock driver to enable the power switch and game controllers functions. You find detailed instructions for the driver installation here.
Related Posts
The ControlBlock got updated
The ControlBlock got updated! Similar to the PowerBlock it now comes with USB-C and a high-current power switch circuitry for your most energy demanding projects. Of course, it [...]
PowerBlock and ControlBlock also Support Momentary Buttons
Many of you have asked for the possibility to support toggle as well as momentary buttons for safely switching your Raspberry Pi on and off. We are glad to announce that the ControlBlock and the [...]
Our Boards Compatibility with the Raspberry Pi 4
The Raspberry Pi 4 was recently released. This post is about our boards and their compatibility with the Raspberry Pi 4. Are our extension boards like the PowerBlock or the ControlBlock compatible with it? The [...]
Tutorial: ControlBlock with RetroPie and SNES or NES Controllers
Introduction This is a post as part of a tutorial series about getting to start with the ControlBlock with various images for the Raspberry Pi. In this tutorial we will learn how to use the [...]
All gadgets fully compatible with Raspberry Pi 3 Model B+
Hi everyone! This is a short post about the compatibility of our boards with the new Raspberry Pi model. As you probably already have heard the Raspberry Pi 3 Model B+ was recently released. Compared [...]
Quick Installation Script for the ControlBlock
We realized that the installation of the ControlBlock driver could be simplified. Therefore, we created an installation script that does all the needed steps for compiling, installing the binary, and configuring the ControlBlock service for [...]