Hobby box RetroPie Joystick + Player 2 controller (semi-tutorial)
-
Hi.
I recently finished my hobby box project that took about a year with planning, ordering parts and finally building it. I’d like to share with you the design process and the decisions I made to make it happen. I will also provide download link for the hole patterns.
Back view:
I used 263 * 182 * 95mm Hobby box. First I was planning to use just screws in the corners to keep it closed, but I figured it would be much easier to use 25 * 20mm hinges so I can open it without tools for maintenance and SD-card removal. In this picture all the black screws are various length black M4 hexagonal domed screws. Corner screws are purely for decoration which I epoxied in place.
For joystick I used Seimitsu LS-40 with custom octagonal restrictor gate which was also my own design (You can see it in the pictures below). Buttons are Seimitsu PS-14-GN (bigger) and PS-14-DN (smaller).
Front view:
On the back you can see the latches that use four black M3 hexagonal domed screws. All output connectors are Neutriks which are very popular among joystick builders. Back has two USB-A->USB-B connectors.
I put small Commodore logo in the corner which I ordered from eBay from a seller who makes gaming/computer hardware related badges.
These latches were probably the most difficult part in the whole build because I couldn’t use any patters to drill the holes. Latch hooks were slightly more stretched on the other so there’s about 0,5mm difference in positioning to make them close tightly/loose enough.
Side view:
On the side has Hdmi-output and power plug which just has reversed USB-connectors.
I bought old stock Belkin 20AWG printer cable from eBay for power transfer. New ones are too expensive and cheap ones nowadays are too thin to transfer enough power. The cable is connected to USB-power source which has plenty of power for Raspberry Pi and all the perpherals.
Inside view:
Here’s where all the magic happens. I explain the interior in more detail below.
Inside view (lid):
Here you can see the custom restrictor gate. LS-40 doesn’t have an option for octagonal one so I designed and made it myself with 3mm black acrylic. The fit was just tight enough so it feels solid. I wasn’t big fan of the default square one which was hindering me on side-scrollers.
All the wiring is made from scratch with 2.8mm and 4.8mm crimp terminals and 3mm red + black silicone wires. It took some time getting used to but in the end I found a good technique so my fail/success ratio got better.
I used IPAC-2 keyboard encoder which is seated on top of plastic PCB feet which are attached with epoxy to the lid. IPAC-2 is set in gamepad mode.
Inside view (floor):
I mounted Raspberry Pi 3 on the floor also with plastic PCB feet. I had to drill RasPi’s mounting holes with 3mm drill because I think the default ones are only 2,5mm. Luckily there’s plenty of room to drill it without any damage to the board.
Red/black cable is power-only 18AWG 2.1A micro-USB cord for maximum power transfer. All the black cables are self-explanatory. Blue cable has wireless transmitter for keyboard + mouse.
Only thing I would change in this setup is IPAC-2's and other USB-output's cable with opposite USB-A angle so IPAC-2 would be always in port#0 and always player #1. For now I just temporarily unplugged other back USB to make room for port#0 for IPAC-2.
Player 2 controller (front view):
For player 2 I used NeoGeo colors for buttons and joystick. From this view there’s not much difference.
Player 2 controller (back view):
Flipped Neutrik USB-A->USB-B is the only output which is used to connect it to any two of main controller’s inputs. Also there’s “Powered by Amiga” sticker in the corner this time which is ordered from same seller than the Commodore badge.
Player 2 controller (inside view):
Inside it’s similar on the lid area and pretty much empty on the floor area.
Player 2 controller (encoder):
For player 2 I used ArcadeForge KeyStrike 1P. I made this decision because I didn’t want any possible keymapping conflicts with two IPAC-2s. Also KeyStrike was slighty cheaper with postage from Germany. It’s also working in gamepad mode. At first it wasn’t recognized in RetroPie even though jstest was showing all the inputs working ( jstest /dev/input/js0 ). I got it to work beautifully by editing
/etc/udev/rules.d/99-gamepad.rules
file by adding
SUBSYSTEM=="input", ATTRS{name}=="ArcadeForge Key Strike", MODE="0666", ENV{ID_INPUT_JOYSTICK}="1"
line.
Here you can see the epoxy blobs that secure the feet to the lid.That’s pretty much it. If you have any questions, I’m happy to answer them.
I also attached the pattern for holes.
Joystick hole templates.zip
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.