OTES - Portable Retro CRT Game Console

by Görkem in Circuits > Raspberry Pi

16262 Views, 90 Favorites, 0 Comments

OTES - Portable Retro CRT Game Console

One-Thumb Entertainment System
DSC_4701-7.jpg
DSC_4710.jpg

OTES (One-Thumb Entertainment System) is a Raspberry Pi powered, retro-inspired portable CRT Game Console which has only one button. It's running PICO-8, a fantasy console. And It's based on a stand-alone cartridge firmware meaning that it will boot directly to the game on the SD card like a GameBoy. So SD cards can be used as cartridges.

Currently, It has one game called ODEF(Ocean Defender) developed by me and my friends.(You can play it here) And I hope there will be many others as people develop games that can be played with only one button on this platform.

Outline

In the first step, I'll talk about the Idea&Inpiration behind this project, later I'll give you a list of the things you'll need to build this on your own. Then I will talk about Fantasy Consoles, After giving you a step by step assembly guide I will end this Instructable with a troubleshooting guide.

The Idea

DSC_4716.jpg

My gaming journey began with the GameBoy Advance SP. And with time other versions joined my collection. It has been 13 years since I got my first GameBoy and I still enjoy playing it to this day. I think the main reason for that is the aesthetics created by the limitations of the hardware.

While I was searching for a GB emulator on the internet I came across PICO-8. which is an emulator for a console that does not exist, called Fantasy Console. So what is a Fantasy Console?

It's basically a virtual console with a development environment. The console is designed to be limiting like 8bit retro computers. In case of PICO-8, the display is limited by 128x128 pixels, disk size by 32k etc.(more details on step 3.) Developers building games using this platform can share/play their games and many others on the internet. You can explore some here.

While I was trying to learn game development in this environment I came up with the Idea to build fantasy hardware for this fantasy console. Also adding some limitations to the hardware. like a 'one button' input.

Tools & Parts

20190429_122434.jpg

Tools:

  • 3D printer (optional)
  • Soldering Iron
  • Jumper cables

Parts:

  • CRT viewfinder (details on next step)
  • Raspberry Pi Zero
  • Arduino Micro
  • 9V Battery
  • DC-DC 5V step-down voltage regulator
  • Pushbutton
  • On-Off Switch
  • 3 x (20mm M3 bolt & nut)
  • 4 x (8mm M3 bolt & nut)
  • 3 x (5x5mm M3 heat insert)
  • 1 x (3x5mm M3 heat insert)

3D Printed Parts :

  • Base
  • Lid
  • Hand Piece
  • Knob
  • Rail
  • Rail Holder

Note: All part files are on step 8.

Fantasy Console

pico8_2019-04-30_02-35-21.png

In this step I will get into some detail on the Fantasy Console we will be using called PICO-8. And how to set up your raspberry pi Zero.

PICO-8

The pico-8 environment has everything in it to develop a game from scratch:

  • A lua code editor.
  • Sprite and tile creation tools.
  • Map editor.
  • Sound effect and music editor.

You can get PICO-8 here.

Here is a video by Dylan Bennett that shows how easy it is to create games using PICO-8:

If you want to develop your own games, here are some tutorials to get you started with game development using PICO-8:

PICO-8 Game Dev. for Beginners Series - by bridgs

PICO-8 Fanzine #1

Setting up your ZERO

We will be using PICOPi which is a stand-alone, corruption resistant cartridge firmware which uses an sd card to act as a cartridge (like a Gameboy). The Raspberry Zero will directly boot into the game on the SD card, so you can create different cartridges for different games.

You can follow this guide to create your SD card:

CRT Viewfinder ​Disassembly

20190429_154958.jpg
20190429_155036.jpg

The most important thing first. You have to find an old camcorder which has a CRT viewfinder. It's usually easy to tell if a camcorder has a CRT viewfinder since it's a bulky part sticking off the side of the camcorder. I found this viewfinder on an old JVC camcorder which I bought from the flea market. To test the viewfinder I used a 9v battery to power up the camcorder. There was no image on the viewfinder but I got a static white noise which is enough to tell if the viewfinder works. Now It's time to disassemble it and find the composite cable.

Finding the Cables

Power

First you need to find the (+9V) and GND cables. It's usually obvious, red being (+) and black being GND. If not, try to use a multimeter to measure the outputs while the camcorder is connected to power.

Composite

The second cable you need to find is the composite video input. Which you'll use to get the video signal from your Raspberry Pi to the CRT. Usually, it is the yellow colored cable but if you are not sure, try to connect the cable to your raspberry pi.

Now mark the cables and you are done!

Assembly - Electronics

FO91UOGJV2R2RL6.LARGE.jpg

For the first protoype you don't have to use a soldering Iron. I strongly recommend you to use jumper cables, so you can change any component if it isn't working properly.

Raspberry Pi Zero

The raspberry pi zero runs pico 8 firmware and displays it on the CRT via the Composite output on it. two cables from the CRT(composite(+) and GND) are connected to the raspberry pi.

Arduino Micro

The arduino micro acts like a keyboard to the raspberry pi. when the button is pressed it passes the signal as the "z" key on the keyboard. To do that first you have to upload this basic sketch to the arduino micro:

#include <keyboard.h><br>int buttonPin = 9;  // Set a button to any pin </keyboard.h>void setup()
{
  pinMode(buttonPin, INPUT_PULLUP);  // Set the button as an input
  Keyboard.begin();
} void loop()

{

if (digitalRead(buttonPin) == 0)  // if the button goes low

 {

Keyboard.press('z');  // send a 'z' to the computer via Keyboard HID     // delay so there aren't a kajillion z's
}else{

 Keyboard.releaseAll(); 
  }
  delay(50);
}

Voltage Regulator

The Raspberry Pi does not have a voltage regulator on it. Thus the 9V from the battery can fry the board. This is why you have to use a voltage regulator to output the voltage to 5v which is the raspberry pi input voltage.

Downloads

First Prototype & Test

20190123_132322.jpg
20190128_121054.jpg
20190128_121223.jpg

Plug in the SD card you've prepared to your Raspberry Pi and power it up! You should see the booting screen of PICO-8.

If you don't have a 3D printer you can use the CRT Viewfinder case with rubberbands to hold the Raspberry Pi ZERO on it. Before I've built the 3D enclosure I used it as seen on the picture.

If you are having problems go to the troubleshooting section at the end of this project.

3D Print

20190428_111106.jpg

I recommend you to print all pieces before assembly. It will be much easier to assemble with every piece on your reach.

The printer I used is the TEVO Tornado with the following settings:

  • Nozzle: 0.4mm
  • infill: %20
  • Filament: PLA

Downloads

Assembly - Case

20190429_121633.jpg
20190429_122854.jpg
20190429_123229.jpg
20190429_125849.jpg

Soldering

DSC_4688.jpg
20190123_153311.jpg
20190424_130325.jpg
DSC_4689.jpg
20190429_132023.jpg
20190429_124940.jpg

Detailed comments are available on the images.

I recommend you to use heatshrink on the cables to prevent short circuits.

Final Assembly & Test

20190429_132009.jpg
DSC_4694.jpg
20190429_132643.jpg

Fit the CRT in to the box gently with the 9V battery. Before closing up the box test the setup and check if it's still working.

You're done with the build now it's time to test it!

Troubleshooting

DSC_4706.jpg

- There is no image visible on the CRT

Many CRT's have their own contrast/brightness potentiometers on them. You can use a small screwdriver to set these to get a clearer image

- Raspberry Pi is not booting

The SD card may be corrupted you can format it on your PC and start a fresh install of your cartridge

- The Case is wobbling

You heat inserts can get detached from the case make sure they are sturdy. If not, use your soldering iron to secure them into place.

What's Next

DSC_4715.jpg

In this step, I will list some things I had in my mind. Feel free to add more Ideas or ways to improve this project in the comments:

A few ideas:

  • Create a more portable case. So it can be attached to your belt etc.
  • Attach a mini-speaker for sound
  • Adding a color CRT for more range of colors!
  • Create custom cartridge boxes

This is not a finished Project. I hope many of you try to build their own consoles so we can develop this together.

If you have any questions ask away! & tell me about your build!