tl;dr
I have already made a homebrew arduboy but I didn’t like the small screen. I looked around to see if there was a bigger screen to use. I found that you can use a SSD1309 OLED 2.42″ screen with a arduboy. I was going to put it in a Gameboy Advance shell but the someone beat me to it. I decided to go for a Gameboy SP shell. Join me below to see if I pulled it off.
Hardware
- Arduino pro micro
- W25Q128 128Mb “flash cart”
- SSD1309 2.42″ oled screen
- TP4056 USB C lipo charger
- Dome buttons x7
- Switches x2
- Piezo Speaker x1
- Gameboy Advance SP shell
- Lipo battery
- USB C port 6 pin
- 10k 1206 resistors x2
- 5.1k 1206 resistors x2
- 2n2222 SMD transistor
Like I said I had already dipped my foot in the world of making homebrew Arduboys but I wanted a bigger screen. I had a look to see what was out there. I had seen a few people had used the SSD1309 2.42″ Screen so I ordered one. I thought I would just hook it up the same way as the last screen I used. I was wrong, The screen was split into 2.
I looked to see if anyone else was having the same problem I found this forum post the had the same problems as me. I didn’t have the mentioned BC557(B), 2N3906, BC309B and S8850 But I found that a 2N2222 transistor would work (the only one I had on hand). I bread boarded it up and got it to work before laying out the board.
Here is the schematic if anyone’s interested
PCB reverse engineering without the PCB
With the Gameboy color Retropie AIO build I had a complete Gameboy color to measure from including the PCB but with this one I only had my childhood GBA SP and didn’t fancy taking that apart to measure. Instead I just ordered a GBA SP replacement shell and used photos off the internet as reference. I also could print out the PCB as I went to see how it fitted into the shell. All in all I think I did a good job considering. I also had to order a 0.8mm thick board because that’s what in the GBA SP.
As shown above I had to draw through the case to get a rough idea of where to put the buttons. I also made the button pads bigger than they needed to be for the fine tuning to find the final placement. The buttons I used were the same as the ones used in the original GBA SP so they would work with the stock buttons caps. The buttons are clicky but not that annoying as some are.
Too many buttons
As you can already tell the Arduboy doesn’t need all of the buttons the Gameboy Advance SP, I didn’t need the start and select buttons and the L and R buttons ether. I could have used one of the start and select buttons as the reset button but I instead choose to use the screen brightness button. I also wanted a hardware mute button because some of the games don’t have the option to turn the sound off, I used the volume slider with a switch behind it. When you slide the switch/slider up like when you turn the volume up it turns the sound on and when you switch/slide it down it mutes it.
I reused the power switch just like I did with the gameboy color AIO build, I used a through hole switch but mounted it on its side. I had to cut the clip off the switch because it wasn’t needed.
The screen
The only downside to the arduboy was how small the screen was, When I seen how easy it was to use a SSD1309 2.42″ screen I just had to order one. The one downside to this screen is that you need to patch the games before using them. Luckily the very talented MrBlinky has made a python script to build and upload flash cart images. All you need to do is rename the “flashcart-writer.py” to “flashcart-writer-1309.py” so it patches the games then uploads them. I just used some wires to connect the screen to the PCB and snaked it thought where the ribbon cable would normally have gone. I had to get creative with the 3d printed surround to be able to hold the screen and have space for the wires to go.
The case
In all honesty I really didn’t know if this was going to fit in the case, I didn’t want to have to cut the case at all. There were a few problems with the fit and finish, Firstly the USB C port didn’t stick up enough above the board to fit thought the EXT hole in the case. I only had to file it down by a few millimeters so It wasn’t soo bad. I had also made the holes in the PCB a little too small and because they were slightly out of position it didn’t quite fit. Again I just filled some of the screw posts but I have since made the holes in the PCB bigger to account for this, So if you do decide to make one you will not have to worry about it.
I opted to put all the chips I.E arduion, DCDC boast, charge board and flash chip where the original gameboy cart would go so that I knew I would have enough space for them. I then 3d printed a cover in the shape of a gameboy advance cart and held it in with a magnet. I also had access to the arduino micro USB port so I could upload more games or just flash a test build of a game to it.
The power
When I made the last arduboy I had trouble with the DC DC Boost with this one I optioned for a super small DD0505MD, Its only rated for 250MA but the arduino pro micro doesn’t draw much power so it was the prefect fit. I found a battery that would fit in the battery bay, at 650mah it will give the arduboy hours of battery life. The charger I used was the classic TP4056 with a USB C port, I wanted to put the USB C port where the charge port where at the back of the case. I couldn’t use the charge port hole because that’s where the original ribbon cable of the screen went and that is where I would be soldering the new screen too so I had to put it coming out of the EXT port but the TP4056 charger wouldn’t fit up there so I had to just put a USB C female port that was connected to the charger.
I made a 3d printed cover for the charge port because behind it was all the screen wires and it looked pretty ugly and messy.
Video
Files
Github – https://github.com/facelessloser/ardubigboy_sp
Thingiverse – https://www.thingiverse.com/thing:4777596
Comments