This project goes back a ways. I first heard of the “portabilizing” thing (making a console into a handheld game system) around 2006 when I saw Ben Heckendorn’s VCSp. I thought it would be a fun project, but complex, so I put it aside. Last year, while working on the MULTICON_Retro, I decided I was ready to give it a try. When I got my Makerbot Replicator 2 all the pieces were in place – I decided I finally had the tools to allow me to make it, and make it look cool. It’s hardly an original project. There are many like it but this one is mine blah blah blah. Don’t care, I’m going to have fun doing it.
(BTW, all the pictures are clickable for more sizes, if you need to see details.)
The NES was the obvious choice to portabilize – it has the best selection of games among retro machines, and you can get a NOAC (NES on chip) pretty cheap (I preferred not to chop up a real NES – call it honour among the elderly). The machine of choice was the Retro-BIT RES, which goes for about $15 (it’s a Yobo derivative). It’s a good thing I chose a cheap machine, because I fried one during early experiments (sorry, Steve). I ended up having to get a couple of replacements.
For the display, I used a 4.3″ TFT reverse camera screen, which goes for around $20. They run off around 7v, and have composite video in, meaning they can plug right into the RES. For the power source, I chose a 1500mAh NiMH rechargeable battery used in radio control cars. The trend in portables is to use lighter and smaller LiPo batteries, but these can be temperamental and require a special discharge circuit. Here are the main parts running together off the battery:
All the bits draw around 450mA, meaning you should easily get two and a half to three hours of game time between charges. Once the main components were locked in, it was time to start understanding how all the electronics fit together, and measure everything so we could design the case around them. The RES consists of three circuit boards:
- Board A contains the controller ports, power and reset switches, and the power LED. For this project I would only use controller port 1, so we can exclude this whole board from the final design.
- Board B holds the video and audio filters, and the power regulator (which is not very good; I replaced it with a 7805, which is less efficient but more robust).
- Board C is the big one – it contains the CPU, cartridge socket and other magic bits under a glop-top.
Time to grab the multimeter and start noting how all the pins fit together. Board A was cut from the project altogether; but B and C would need to find a home in the case. Here are my pinout notes:
The next step was the fun bit – measure all the components, then grab OpenSCAD and start designing the case. I decided that I wanted the cartridge to be enclosed by case to ensure that it would not wiggle while running (which would eventually ruin the contacts). This was the first iteration of the design:
I liked the general look, but it would be too fat to hold comfortably. I moved the battery to under the C board, and then made the top narrower. In the end, the case was made in a series of layers:
- Back of the case, which holds board C, the battery charging plug and the speaker. It is designed in two halves so that it fits in the Replicator 2 print volume.
- Separator tray, which holds most of the electronics, and provides a smooth surface facing the cartridge slot to ensure that the carts don’t snag on anything while being inserted.
- Support beams to allow better gluing of the case halves.
- Tac switch supports to hold the buttons in place.
- Front of the case, which holds the volume buttons, power and reset buttons, headphone jack and screen.
- The D-pad and buttons (more on those below).
- The power light/logo (more on that below).
Once all the parts were reviewed for printability, I got some nice bright white Zen Toolworks PLA (this is a really excellent filament), and started some test prints. I had a really tough time getting anything to print until I realized that although I was updating the Makerware client to create print files, but not the firmware on the Replicator 2. Oh. Once the firmware update was done, suddenly everything worked, like magic, dude. Here is a n early print to test relative size (this one has the wrong screen size, as marked by the red Sharpie notes):
Polylactic acid (PLA) is a great material for this kind of work where you match printed parts to pre-existing physical parts, because it shrinks very little – so you don’t really need to compensate by enlarging your parts. One word of warning – although PLA can be tapped, due to the rigidity of the plastic the threads can give if you are not careful with the screwdriver.
Once the test pieces were printed, there were quite a few bugs to iron out in OpenSCAD. Once I had those fixed, it was time to print the production parts. I used mostly medium resolution on the Replicator 2, and printed on blue painter’s tape with hair spray to ensure the parts grip the surface (plus I level the print surface after every part – it’s a pain, but it improves print quality). I have also upgraded the Replicator 2 with an anodized aluminium print surface, so I get good prints almost always (the Replicator 2 is a great machine, but the default print surface lets it down).
Printing all the parts, by the way, took fourteen and a quarter hours. 3D printing is very powerful, but it is slow as anything. What would Louis CK say? “Is your miracle machine that creates physical manifestations of figments of your imagination not fast enough for you? Six months ago you never even knew this was even possible but now it’s too slow for you?” Here is a breakdown of how those happy times were spent:
Due to the size of the project, I could not print the front and back halves in one shot – they were printed as halves with support beams between. These were all glued using cyanoacrylate (superglue), which on PLA gives a ridiculously strong bond in just a couple of hours curing time (and it’s $1 for a tube).
After all the printing was done, I did some testing of how the printed parts fit in with the other components. Once I started soldering and gluing electronics to the plastic, it would be too expensive to make design changes. Remember kids: Test early and test often!
Once that was done, it was time to sign the case, as is my wont.
Now to take care of the electronics. Board C was simply bolted into the back of the case, together with the power socket from the RES and an 8Ω speaker. The separator tray then gets the bulk of it – the PCB from one of the RES controllers, board B, the 7805 voltage regulator with a small heat sink (which hits 104°F/40ºC when the game is running!), and the audio components. For audio, I built my own LM386 based amplifier, which worked, but frankly sounded crap – I need to learn more about filters. So I replaced that with an off-the-shelf LM386 based amp module ($3, not too bad), and a DS1809-010 digital potentiometer to have push button volume control. And lots of solder and ribbon cable. A LOT of solder. And a fair bit of hot glue. Anyway, enough about my gels. Here is the layout of the back half (with separator tray screwed into place):
By comparison, the front half is pretty simple. It has only the screen, headphone jack (a model which disconnects the speaker), and 6mm tac switches for the buttons:
Once all this was done, it was time for the “squish test”, where you try to close the case to ensure all the cables and bits fit. During this test, I realized insulation is important because something shorted and I fried the screen. Ouch. Thanks to Amazon Prime, I was back in action two days later with a new screen. Then I cracked the glass on that, and I wondered if I was compus mentis enough to complete this project. Luckily marrying the driver board of the new screen with the glass of the old one left me with a working Frankenscreen (which I was then overly careful with):
That test also proved (1) that cable ties held the battery nicely to the case, (2) the whole machine it was a good size to hold and use (at least with hands my size) and (3) the taps and screws were strong enough to hold everything together. Big relief. The test also showed this was a hefty beast – you can play it during Crossfit and no-one will tell you you’re slacking off.
I decided to completely print the buttons rather than re-using the RES buttons – and designign them was quite a bit of fun. Each button consists of a bezel (which is inserted from the front of the machine), a retaining ring which, when glued to the bezel, grips the faceplate to keep the whole thing in place, and the button itself, which has a ridge at the bottom to prevent it from falling out of the machine if it is turned upside down. At the bottom is a 6mm tactile switch, which captures the clickies:
To get better curves on the rounded tops of the buttons, I used a hi-res print (0.10mm layers). It worked quite well, but I had to shrink the buttons slightly in relation to the bezels because the grooved edges of the bezels (a side effect of 3D printing) would grip the grooved edges of the buttons causing them to stick.
The D-Pad works on the same basic principle. Instead of being a single button though, there is a disc which rests on a sphere (so it can tilt in any direction), and four tac switches:
The final step was now to take care of the front and back faceplates. Rather than printing those, I decided to cut clear acrylic sheet (with the CNC router). There are a number of advantages to using acrylic sheet rather than printed pieces in this case:
- The plates would give the case a lot of its torsional strength. A printed piece might delaminate and split, so continuous material is a better choice.
- Acrylic sheet is completely smooth, giving a nice, professional look.
- Being completely clear (a printed piece can never be clear, it is translucent at best) you can insert art under it. I put art in the front and left the back clear so you can see some of the guts as well as which cart you have inserted.
- The entire face essentially becomes the safety glass over the delicate screen (I wasn’t going to lose another screen on this project).
- Hey, I have a fearsome routing robot in the garage, might as well bend it to my will! Look how fearsome it is:
The one downside about acrylic is that it is a little pricey – I got my 12″x26″x0.125″ sheets at TAP plastics at about $11 a sheet. Because I had never married a CNC cut piece to a printed piece, I wanted to make sure it would work before I wasted $11 (this thing was already bleeding funds like a Pentagon project), so I cut test pieces out of 0.125″ MDF instead (that goes for about $1 a piece). Fortunately, everything measured up fine.
Once I had cut the acrylic places (so much faster than printing), I added the art (designed on Inkscape then printed on regular paper on my inkjet), and added the button bezels and retaining rings. Notice that they keep the artwork in place. Now to add the remaining electronics and close it up.
The pièce de résistance of this device was the light up logo. Using a nice retro font, I printed a black faceplate with the logo, and glued a transparent printed piece to the back of it which held two 5mm red LEDs, with some resistors to restrict current usage. This is then the new power light. I love this little thing.
Final assembly! Here is the beast, ready for play. The nice thing about it being so chunky is that it can stand by itself, which is nice for display.
I took a week off work to do this project, but even working pretty much full time, I did not finish (partly due to waiting for replacement parts, etc). In total – design and construction time – this took about two full working weeks. Excluding the parts I busted, it probably cost around $80. If you’d like to give this project a try, you can download the source files at Thingiverse.