I'm trying to make an Arduino-compatible portable games console. I have seen many of these on the Internet, but I feel the prices are ridiculous. I hope that by making my own, I can identify areas of opportunity to cut costs and deliver the same or better user experience. I enjoy Atari games, and would like to port a couple of my favorites to this architecture. I feel this project would get more people interested in coding and assembling their own hardware instead of just buying consumer electronics.
128X96 OLED Screen
We have to have some kind of display
I finally got the Asteroids example code running on the Arduino clone! I still need to hook up some controls, but you can "play" it now by shorting the pins used for each switch to ground with your fingers for now. It's hard to tell, but I captured the UFO in this pic:
This is a great motivation for me to finish this project up, since it is a lot easier to see it all coming together now. As you can see, I'm not that good at controlling it with my fingers on some pins:
I also received my shirt in the mail today for being one of the runners-up in the Trinket EDC contest! It came with some stickers, so I'm gonna have to find something to plaster with my HaD swag, lol. I have a couple Hackaday shirts already, but this one I won, which makes it all the more sweeter:
Thanks to our new evil overlords, and thanks to everyone who makes the projects site everything that it is! I've just got to get my controls wired up, figure out a case solution, and then this project can be filed away as done!
I'm still working on getting the code onto the Trinket. It's ridiculous what I have tried to do and still failed. The most recent failure was using the GPIO on the Raspberry Pi to program Trinket over SPI. I don't know what I did wrong, but Avrdude wouldn't even connect...
So I have given up on that part for now, I will come back to it when I'm not so frustrated with it. I can continue prototyping the project with my $3 Chinese Arduino Nano clone for now, and when I figure out the transfer process, just put it all on the Trinket. I did get the OLED screen working without a hitch tho, so that's some good news.
So far this is my main gripe about theTrinket; no easy upload from the Arduino IDE. I futzed about with drivers, settings, baud rates, config files, SPI and more all to have nothing work. My Chinese hunk of junk that costs 60% less is plug and play, no hassle. I know it works, and I know it's something I'm doing wrong. But knowing these things does nothing for me but frustrate me even further. But whatevs, I'll figure it out if I have to use one of the Chinese clones as a programmer!!!
Much research online has revealed that apparently the Trinket doesn't show up when programming it over USB. The Raspberry Pi hasn't been much help yet, but I think I have figured out a solution using the GPIO on the Pi to just code the Trinket over SPI, but I haven't tried it yet.
I have worked on getting the LiPo backpack configured the way I wanted to, because originally it was just soldered on to test. Here I you can see that I have desoldered the backpack and bent it around to access the underside of the board. I covered the .5A jumper with electrical tape and soldered wires to the power switch pads:
Here's the top view of the same thing:
After being bent back into place and resoldered, I cut the trace between the pads for the power switch so the power switch would actually work. Otherwise it's on the entire time the battery is connected and it has a charge in it (kinda annoying, but I see why this is the default). This pic is close enough that you can see the razor cut between the pads. I didn't think it was good enough first try, but a quick continuity check with the multimeter reassured me:
Finally I had to verify that the switch wires weren't going to contact the Trinket and mess anything up in operation:
I'm done with this for today. I may do some more work on the code upload situation later tonight, but either way I should have that part figured out in the next couple days at least.
I stayed up far too late last night trying to get the Trinket to show up on my device manager. I tried two different laptops and nothing, I couldn't even get it to pop the "new device" dialogue when I plugged it in.
I don't have a working desktop at the moment, so I was out of options until I remembered the Raspberry Pi! I even have an old Apple IIc screen to program on for extra geek cred:
Only after installing the IDE did I realize the screen doesn't have the resolution to even show the title bar, and I'm not skilled enough in Linux to do it from the command line. I guess I could have used my limited skills to see if it was showing up at all, but I just decided I would tackle it tomorrow on an HDMI screen.
It was not a complete waste of a h@xing night however, as I gave consideration to the other issues that I will be facing. I just thought about sound; it wasn't important to me in prototyping, but I think it will have to be in the final product. Also my battery is going to provide great life, but it might be too much. Should I break out the I2C ports to make multiplayer gaming possible? And finally, what will I call it? There's so many variations on the name Arduino and Game boy that finding an original one that is memorable is nigh on impossible. I'll keep it in mind while I'm working on it and hopefully I can figure something out.
I have all my hardware together, Trinket with LiPo battery, OLED screen, and inputs. I put together a custom board for the inputs, just an 8-way mini joystick and 2 tact switches for the buttons. Here's the switches mounted to a protoboard that I hacksawed down to a more manageable size:
I have the OLED set up on a breadboard for testing and prototyping with an Arduino, although I'm gonna port the code to the Trinket. I'm currently having a problem making the Trinket show up in my USB device tree, although I am reasonably certain I can fix this soon.
The battery and charging circuit work fine, the pre-loaded demo of the LED fading runs for a little over 24 hours off the 500 mAh LiPo.
Current to do list:
1. Make USB work
2. Get screen output from the Arduino or the Trinket
3. Solder the buttons and joystick to some of the outputs
4. Port the games that run on TVOut to my setup
5. Make some original games, or ports of my Atari favorites