Close
0%
0%

Tin PiBoy

A portable retro game emulator inside a tin.

Similar projects worth following
The Tin PiBoy is a retro game emulator that is designed to fit inside a Altoid tin. The raspberry pi zero runs retropie and uses fbcp to run emulationstation on a small TFT display. It also uses Adafruit-retrogame to map the buttons as input.

Resources:
http://www.raspberrypirobot.com/1-8-tft-lcd-display-raspberry-pi-expansion-board/
http://www.sainsmart.com/blog/ada/
https://learn.adafruit.com/retro-gaming-with-raspberry-pi/buttons
https://learn.adafruit.com/running

Above you see the assembled PiBoy without the tin case

4-way Navigation switch:

Pinout

Datasheet: https://www.adafruit.com/datasheets/SKQUCAA010-ALPS.pdf


Display to RPi connections:

RPi HeaderTFT Display
GPIO 11 (SCLK)SCK
GPIO 10 (MOSI)MOSI
GPIO 8 (CE0)CS
GPIO 24D/C
GPIO 25RESET
5vVCC, BL
GNDGND

Emulators that are readable:

  • GameBoy
  • GameBoy color
  • NES

Button configuration:

GPIOFunctionKeyboard key
5LeftLeft arrow
6RightRight arrow
13UpUp arrow
19DownDown arrow
26ANumpad 7
21BNumpad 8
20StartZ
16SelectX
12L5
23R6

RetroArch key config:

add this to /opt/retropie/configs/all/retroarch.cfg

input_player1_a = keypad7
input_player1_b = keypad8
input_player1_y = keypad5
input_player1_x = keypad4
input_player1_start = z
input_player1_select = x
input_player1_l = num5
input_player1_r = num6
input_player1_left = left
input_player1_right = right
input_player1_up = up
input_player1_down = down
input_player1_l2 = num7
input_player1_r2 = num8
input_player1_l3 = num9
input_player1_r3 = num0

You also may want to add the following to easily exit the emulators

input_enable_hotkey = z
input_exit_emulator = x
To make this config work in your emulators you have to go to your emulator config file and append this

#include "/opt/retropie/configs/all/retroarch.cfg"

Adafruit-Retrogame config:

ioStandard[] = {
        // This pin/key table is used when the PiTFT isn't found
        // (using HDMI or composite instead), as with our original
        // retro gaming guide.
        // Input   Output (from /usr/include/linux/input.h)
        {   5,     KEY_LEFT     },
        {   6,     KEY_RIGHT    },
        {  13,     KEY_UP       },
        {  19,     KEY_DOWN     },
        {  20,     KEY_Z        },
        {  16,     KEY_X        },
        {  26,     KEY_KP7      },
        {  21,     KEY_KP8      },
        {  12,     KEY_5        },
        {  23,     KEY_6        },
        {  -1,     -1           } }; // END OF LIST, DO NOT CHANGE

View all 9 components

  • 1
    Step 1

    Setting up the display

    First you need to wire up the display as following:

    RPi HeaderTFT Display
    GPIO 11 (SCLK)SCK
    GPIO 10 (MOSI)MOSI
    GPIO 8 (CE0)CS
    GPIO 24D/C
    GPIO 25RESET
    5vVCC, BL
    GNDGND
  • 2
    Step 2

    When you have wired the display you have to boot your Raspberry pi and run:

    sudo raspi-config
    In this menu you have to expand the file system and enable SPI under the Advanced Options menu.
  • 3
    Step 3

    To make the module load on boot-up run this

    sudo REPO_URI=https://github.com/notro/rpi-firmware rpi-update
    sudo nano /etc/modules
    fbtft_device name=sainsmart18 rotate=90

    Source: http://www.raspberrypirobot.com/1-8-tft-lcd-display-raspberry-pi-expansion-board/

View all 7 instructions

Enjoy this project?

Share

Discussions

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates