During the last weeks I created a mobile game console with the help of a Raspberry Pi Zero and RetroPie.

The result of my mobile game console “RetroPieZero” is shown below:

The RetroPieZero consists of the following parts:

To use the Waveshare LCD you need to install the drivers from the wiki. Afterwards you can use FBCP to mirror the framebuffer of RetroPie to the display.

With the help of Hubs I printed a custom case for all the components. I designed the basic parts in Adobe Illustrator and exported them to SVG. The resulting layers are imported to 123D Design. Because the units are messed up after the export of Illustrator I needed to customize the SVGs and add a transform attribute to each SVG Group (see the corresponding reddit thread)

FBTFT and Device Tree

I’ve remounted my TFT touch display and connected it to another Raspberry Pi. During the installation process I realized, that the FBTFT Kernel is now Device Tree enabled, this makes the installation and configuration process a lot easier. (

Therefore you only need to install the FBTFT enabled Firmware ( and after that you can enable the TFT display HY-28B:

Add the following statement to /boot/config.txt to enable the hy28b overlay:

dtoverlay=hy28b, rotate=90

The overlays can be found on

To enable the console output on the display you had to add the following to the first line of /boot/cmdline.txt:

fbcon=map:10 fbcon=font:VGA8X8

After a reboot the display should be recognized and working. You can check it in dmesg.

To use the display with pygame you need to install the following packages and calibrate the touchpanel:

apt-get update
apt-get install libts-bin evtest xinput python-dev python-pip
pip install evdev
sudo TSLIB_FBDEVICE=/dev/fb1 TSLIB_TSDEVICE=/dev/input/event0 ts_calibrate

Update 1:
With the integration of the FBTFT drivers in the Raspberry Pi kernel ( it is no longer neccessary to install notro’s FBTFT kernel.

Update 2:
I run in some problems with the display showing no content. The backlight was on but there were no image visible. I was able to fix the problem by setting the GPIO configuration fixed and not automatically:

dtoverlay=hy28b, rotate=90, resetgpio=25, ledgpio=18