This week’s Community Spotlight goes to forum member kite, and the awesome custom all-in-one PCB he made for his Game Boy Zero build! We’ve seen lots of custom PCBs for the GBZ project, but this one takes it to a whole new level.
- DPI LCD support for the included 320×240 LCD (MUCH clearer/nicer than a composite display interface, 640×480 support coming soon)
- Built-in USB hub
- Built-in ATMEGA32u4 for buttons and joystick (as well as battery monitor, current monitor, audio amp and WiFi enable/disable, status LED, backlight brightness control)
- Full button PCB, which supports the classic ‘SNES’ style button arrangement as well as the ‘vertically aligned’ style (required for the 3DS joystick in the middle)
- 1.0A charger and load balance (takes the place of the PowerBoost 1000C)
- SD card slot (sits in the contrast port)
- 3.2W stereo amplifier + headphone jack (with auto switch off when headphones plugged in)
- On-board volume potentiometer
- Over-temperature fan enable (5V or 3.3V)
- Safe shutdown, with low-batt warning
- Emergency shutdown (REALLY important if the Pi freezes or crashes as otherwise you’d have to disassemble to remove the power!)
- WiFi (with enable/disable by button combo)
- External USB port in the ‘EXT’ slot
- Micro USB port for charging and uploading sketches to the on-board ATMEGA32u4
- Additional ‘mode’ button to enable things like backlight adjustment, audio amp disable/enable, wifi enable/disable, etc.
- Supports the Raspberry Pi Zero (directly soldered to PCB), as well as the Pi 3 (or 2) with optional ‘GPIO Extender’
To illustrate how much is crammed onto this board, to build a GBZ all you need is this board and:
- A case and buttons
- Power switch
- Pi Zero or Pi3
That’s it! Crazy!
kite was kind enough to answer a few questions about his project:
You squeezed just about everything needed for a GBZ into your All-In-One board – was there anything you wanted to add that didn’t work out or you haven’t had a chance to yet?
It’s pretty full, the only thing missing in my view is HDMI output, but there are additional complications to get that working with the type of screen that I have used. Personally, I think this is OK as it is meant to be a portable and it’s something that can be addressed in the future!
What was the hardest thing to get right?
Combining the charger, safe shutdown, power switch, emergency shutdown button (that also acts as a an auxiliary button during normal use) was definitely the hardest bit as that circuit consists of all those parts working together, especially getting it so that when shut off that it would draw no power (so no phantom battery drain). But I did it and it works amazingly well! Getting the DPI screen to work was also very tricky, a lot of prototype boards and jumper cables really helped out here.
How long has designing the board taken you?
Since seeing wermy’s original build I very quickly started work on making a PCB to link everything together. It has evolved into what it is now as my requirements and wants changed over time, but overall I think I have been working 4-5 months on the board. After 3 months I had a full working prototype which I use daily! Since then it has been refining, and organising with a manufacturer in order to produce it (it’s a lot more difficult than just sending an email asking for someone to make it!).
Do you design PCBs like this for a living or just a hobby?
By day I am a software engineer, but since university I have been designing PCBs to do anything that I could think of a use for, but they mostly ended up being to aid my other hobby, which is RC Drones! Recently I have been designing and selling micro flight controllers, hence the manufacturing know-how and contacts I’m still doing this particular project as a hobby type thing and seeing where it takes me! Perhaps a whole line up of custom boards may be produced who knows
Given that your board removes a ton of the work in building a GBZ, how long do you think it would take the average person to assemble one using your board?
If you had all the parts, it is very possible to do it all in a single weekend! If you were doing it a little more casually and taking time to make sure everything was perfect I can imagine it still not taking that long so a couple of weekends would be fine!
Is there anything that the board will do that you haven’t mentioned?
The feature list is very large now.. additionally, one of the status LEDs on the top will actually be a GREEN/YELLOW/RED colour changing LED that will show the battery state. The microcontroller that controls the buttons has a data connection to the Pi, and the Pi can actually request the voltage and current (power being used) and I’m working on some software that will show a battery icon (and wifi/volume status) on the LCD (so you know the exact battery status). The buttons are configured as a gamepad, but the software allows changing into a mouse + keyboard mode which should allow for other types of uses (e.g. quake/UT/Minecraft need a mouse/keyboard). The buttons can be put in two layouts (the standard ‘SNES’ layout, or the layout in the pictures which allow the joystick in the center).