I wrapped up the second Phonetroller prototype this past weekend, just as a massive April snowstorm hit Minneapolis:
above, 14" of snow by Saturday evening with another 5" or so to come. Yes, we almost got half a meter of snow. In mid-fucking-April.
Getting wires tacked onto the right parts of the controller boards proved to be a bit more tedious than I'd hoped. The XBOX 360 PCB seems to use 6mil (0.15mm) traces and the vias are generally tented with the same conductive rubber crap that covers the membrane button contacts; even after scraping it off I had trouble soldering to the vias. I ended up sticking the end of the 34 AWG enamelled copper wire into the vias, scraping soldermask off traces for the soldered connection, then securing the connections with a bit of conformal coating:
These images show the righthand side of the controller; I didn't allow quite enough extra enamelled wire for the board to lay flat during assembly which made the whole process that much more difficult. Note the heatshrunk cable passthrough above as well; I hot-glued it flat to keep it out of the way of the PCB.
Then this shit happened:
Turns out soldering brass studs onto FR4 isn't a great technique. I suspect this one moved a bit during solidification; the fracture surface shows evidence of significant porosity:
Sounds like a job for . . .SPAAAACE GLUE! Not the prettiest solution but this (along with the remaining studs) has held up well:
above, a bit of space glue squeezed out between the FR4 and the ABS controller shell. Also note the continued heatshrink tube for the button signal wires.
The lefthand control was pretty simple to build. I added a few cm to the enamelled wires which made assembly substantially easier, and the PCB isn't nearly as complex as the righthand one (which has the processor and connector):
The last steps were to add mounting points for springs and strings, and build up the two JST cable assemblies:
After finishing the construction and updating the Teensy code (nothing terribly special there beyond a bit of debouncing), I bought the Android port of Square Enix's Final Fantasy VI and settled in for an excellent weekend:
above: ah yes, this is excellent.
Overall the experience was terrific. I put around 10 hours on the controller between Saturday and Sunday and learned a ton. A few notes that should guide the next iteration:
- Android apps have varied and generally shitty support for controllers, and it's not always spelled out in the Play store. I also bought FFIX but couldn't get the input device to change from touch to controller; Sonic 2 (yes, there is an Android port!) had some button mapping issues; and other games, like PUBG Mobile, don't support controllers at all. Even FFVI isn't perfect; the D-pad and selection buttons work well (which covers 95% of play), but I still had to touch the screen occasionally. Kinda annoying for a game that was originally built around controller-only play (as it's from the SNES).
- The headphone jack is frustratingly inaccessible. I was using my Koss Porta Pros whose 45-degree 1/8" phono plug could fit around the controller back, but I had to carefully plug in the headphones while I was sliding the phone into the dock. Not convenient.
- More recently I did experience a few reliability issues; sometimes even with OTG Storage engaged the phone doesn't seem to recognize the input device. I think this is a phone issue as the hardware seems fine. Also pulling the phone out of the controller immediately crashes FFVI.
- The design, while it looks pretty awesome (in a sorta cyberpunky way), is sharp and bulky and somewhat delicate. The ergo bits from the XBOX360 controller halves take up a ton more space in my bag compared to the first prototype.
- The phone itself is set back pretty far from the joysticks and buttons. As I mentioned above, FFVI and many other games with controller support still require _some_ touchscreen interaction, and having the screen a bit closer to the user would make this easier. Having said that, I'm still able to tap where I need to without dropping the controller. Still easier than the devices that mount the phone _above_ the joysticks.
I can't control the biggest issue; lack of Shovel Knight, Ori and the Blind Forest, and Risk of Rain. Those three recent platformers are some of my favorites and would have been a delightful way to test the device. So if you have any recommendations for Android platformers with solid external controller support -- please let me know!