End of the year holidays are here. Merry times putting together my own pocket game console. Components had to wait on the desk some time while I placed an order for a new soldering iron. My old and cheap 15W iron was just not good enough, my soldering skills were very rusty, and even the soldering wire was old and of bad quality. After a few tries and frustrating moments I realised I had to update my tool and supplies box, and practice a bit, otherwise I would just ruin my components and that would be the sad end of the project.
Thus started a search for a new iron. I started by checking out if Weller would be a good choice, then researched Hakko irons, missed the Black Friday and Cyber Monday deal window for an Aoyue soldering and reflow station, and finally came across a reasonably priced and relatively new product, an DC-powered iron named TS-100, which I ordered from eBay. I also got some brand new solder and flux that will probably last years. Delivery was reasonably fast, a little over a week and I finally got proper tools to continue with the project.
With some soldering tests it started to feel like I had made an excellent choice with the iron, since it seemed to suit well for this kind of PCB soldering work. The iron warms up fast, and up to about 400 degrees Celsius. It has digital temperature control built-in. I used old fashioned tin/lead solder, although also tried lead-free solder as well. I set the iron around 320-340 degrees Celsius while soldering with leaded solder wire, and a bit higher with unleaded.
What I was going to do next was to connect all my components together, power up, and run some tests on the RetroPie/Emulation Station to see if the components were OK.
Soldering connectors and wires
Soldering of the pocket console components began with the right angle connectors, male and female, that I use to bridge Arcade Bonnet and Raspberry Pi Zero together. Previously I had planned to use a shortened IDE cable between the boards, but I realised I could simply drop the cable and just use the connectors to snap the boards together. With the use of right angle connectors I could connect the boards so that they are roughly on the same plane, instead of being on top of each other, which is the usual way with hat-type Raspberry Pi accessories. The two connectors have 40 pins each. With the help of some patience and soldering flux, I got the connectors attached to the boards, and could then connect the two boards together.
Next, there were the button and thumb stick peripheral connectors on the Arcade Bonnet. The Bonnet had nice button sockets already soldered on the board and came with wire connectors ready to be plugged into the sockets. But both digital and analog joystick interfaces are just holes for connector pins. I soldered both the analog and digital joystick pins but plan to use only analog joystick in the first version of Phat Pocket Arcade. Also, I soldered the joystick pins upside down, to take up less space on top of the board. There will be a custom 3D printed control panel on top, and I did not want the connector pins to stick out too far. On the back of the board, the pins stick out much longer of course, but I can either cut the pins short, or perhaps leave them longer to function as external analog joystick connector.
For the analog joystick that will be housed on the console control panel itself I used a little four-wire breakout board from Adafruit, which is originally targeted for connecting touch screen input lines. It has a connector compatible with the analog thumb stick cable and four hole terminals, onto which I soldered short pieces of jump wires. I removed the plastic housing from two of the wires and soldered a split wire for the display power on the metal connector.
Next were the connectors for TFT SPI display. Since I had used all the GPIO connector leads to bridge Pi Zero and the Bonnet together, I had to use the GPIO pins that the Arcade Bonnet board has. Again the board had only holes for GPIO pins. I soldered seven control contact pins needed for SPI type display, plus a ground and a power pin. The display uses 3 volts, and I took it from the same pin that the analog joystick uses, using the split jump wire prepared earlier.
Final connector to solder was for the audio speaker. The connector comes with the Arcade Bonnet, but as a separate component. I attached it so that the two holes for audio speaker wires are facing inwards to the board center.
Finally I had all the wire connectors as well as wires ready. It was time to connect the components together, prepare a RetroPie SD card, and see if I could get my game running on this system.
Before video of the HW/SW test, here is summary on the connectors used on the Arcade Bonnet board:
40 pin connector to the Raspberry Pi
a 40 pin female right angle connector on the top side of the board. Raspberry Pi has right angle male connector, but on the bottom side, so that the connecting pins align properly.
9 connector pins for display
Right angle male connector pins for female jump wire connectors to display control pins. Straight male connector pins for VCC and GND wires. The wiring from Arcade Bonnet GPIO lines to the 9 control pins of the display is as follows:
Arcade Bonnet pin 24/GPIO pin 24: Display pin DC/RS
Arcade Bonnet pin 25/GPIO pin 25: Display pin RESET
Arcade Bonnet pin MO/GPIO pin 10/MOSI: Display pin SDI/MOSI
Arcade Bonnet pin MI/GPIO pin 9/MISO: Display pin SDD/MISO
Arcade Bonnet pin CLK/GPIO pin 11/SCLK: Display pin SCK
Arcade Bonnet pin C0/GPIO pin 8/CE0: Display pin CS
Arcade Bonnet pin C1/GPIO pin 7/CE1: Display pin LED
Arcade Bonnet pin ANALOG/3V: Display pin VCC (using split wire)
Arcade Bonnet pin GND/Display pin GND
4 Analog joystick pins
Straight male connectors but soldered upside down, plastic collar on top of the Arcade Bonnet board. The pins from Arcade Bonnet to the Adafruit breakout board with joystick connector is as follows:
Arcade Bonnet pin ANALOG/G: Breakout board pin X-
Arcade Bonnet pin ANALOG/Y: Breakout board pin Y+
Arcade Bonnet pin ANALOG/X: Breakout board pin Y-
Arcade Bonnet pin ANALOG/VCC: Breakout board pin X+ (using split wire)
Note that switching directions is easy as keypresses from Arcade Bonnet controls can be remapped.
4 Digital action buttons
Arcade Bonnet has directional button pins L,R,U,D,G (Left, Right, Up and Down, plus Ground pin) right next to the analog joystick pins. It also has six additional button connectors labeled 1A, 1B, 1C, 1D, 1E, and 1F on the sides of the board. I used the side connectors for my smoke tests, and plan to use the directional button pins in my pocket arcade case, in the usual 4 button diamond configuration on the right side of the control panel. Connectors 1A to 1E have two terminals that give pressed signal when connected. Each of L, R, U, D pins will give pressed signal when connected to G pin.
Audio connector: soldered on the top side of the Arcade Bonnet board, with wire terminals directed inside the board. Small audio speaker connected to the audio connector.
From power on smoke test to the playable game
I rigged all the components temporarily on top of a few small boxes, and the display in the jaws of a helping hand. Then I connected the display, analog thumb stick, and the speaker to the board connectors. With instructions from the net I set up the Arcade Bonnet and display drivers on the fresh RetroPie card plugged to Raspberry Pi Zero. A few reboots and soon both the display and the playing controls were working!
After a couple more nights setting up and configuring RetroPie and the VICE emulator for Little Knight Arthur I was ready to shoot and post a little video on how the game runs on my Phat Pocket Arcade internals:
Nice! The game plays and controls are now adequately responsive. The frame rate I get from the small display is around 24-25 frames per second, which is fast enough for the game. I managed to set up booting automatically to the the game using custom splash screen. Also, quitting the game and shutting down Pi is configured to a single button press. To accomplish all this there were a number of little tweaks in addition to setting up the game disk image in the Emulation Station VICE emulator.
I have to say I'm very happy with how well I got the components working. All my soldering seems to work as intended. I'm also satisfied with the results of the tests and tweaks running the software. Audio may need some adjustment still as sometimes there are hiccups with playback. I am planning to do a separate, detailed post on the software setup, should any of you be interested in digging into the details. And after that I will return to designing the 3D printable case and the mini control panel.
Read previous posts on my Phat Pocket Arcade project: