The Retro Lite CM4 - A StonedEdge and Dmcke5 Collaboration Project
Current worklogs on the Retro Lite CM4 can be found here:
Current videos on the Retro Lite CM4 can be found here:
I'd say the Retro Lite CM4 is about ready to cross over the finish line after 1.5 years of work, so its finally time for a Cutting Edge post.
First of all, I'd like to thank Dmcke5 for allowing me to work on this project with him - as can be seen with his other projects here on BitBuilt, he is very talented at both CAD design and also is quite a good programmer. Without him, I would not have been able to complete this project in the time frame we did. We had a lot of setbacks, but together we pushed through and got it done. Thanks for all your hard work.
After the WiiSPii was complete, Dmcke5 asked back in October of 2020 if I wanted to help work on designing a custom 4 layer PCB for the at the time "new" Raspberry Pi Compute Module 4 (I literally had no idea about the Raspberry Pi Compute Module line before I started, nor much about Raspberry Pi's to be honest). To be frank, coming from the Wii portable scene, I thought emulation was for chumps. I was indeed wrong. Thankfully, the Raspberry Pi/BitBuilt communities are both really supportive, and I was able to put the pieces together with lots of googling and forum posting to put together a PCB I'm pretty happy with for a prototype.
Unbeknownst to me, the complexity of the project or what was actually required to build a CM4 carrier board, I accepted his request. I was now excited to finally build my own retro gaming handheld. Although I absolutely love Wii portables, they are not suitable for emulating some older 32-bit systems, like PSP, Nintendo DS or Dreamcast. Naturally, I wanted to have a system that could play those games with the ability to upscale where possible, that wasn't a mobile phone (cheating). Little did I know, this project was going to take us both on a pretty arduous journey (close to 1.5 years, to be exact...) and quite a lot of frustration ensued after that when things wouldn't work as I had planned.
With numerous PCB revisions, late night soldering sessions, screwups and mistakes on my behalf, more code modifications/changes/updates from Dmcke5, ordering from a fab house for the first time, more money spent than I want to remember and the numerous Discord calls on a fortnightly basis, the Retro Lite CM4 is finally done. I'm pretty confident to say that at least, although there a few more final features to be integrated into the software, but the build as it is now is fully playable and fully functional at the moment.
Final specifications of the Retro Lite CM4, are:
Special thanks to these people for being awesome:
- YveltalGriffin and Aurelio, for suggesting numerous revisions to the PCB design, always providing technical explanations for my failures on a detailed level and helping with the fuel gauge code/answering all of my questions
- JuckettD, for assisting with HDMI scripts - check out his work here: https://github.com/juckettd/RaspberryPiCM4Handheld7Inch
- Skent, for offering to assemble my failed prototypes way back in June of 2021
- Makerfabs, for assembling the final prototypes
Now, there’s only one thing left to do. Put a Wii in it.
Current worklogs on the Retro Lite CM4 can be found here:
Retro Lite CM4: Handheld Gaming Console - Raspberry Pi Forums
forums.raspberrypi.com
Current videos on the Retro Lite CM4 can be found here:
I'd say the Retro Lite CM4 is about ready to cross over the finish line after 1.5 years of work, so its finally time for a Cutting Edge post.
First of all, I'd like to thank Dmcke5 for allowing me to work on this project with him - as can be seen with his other projects here on BitBuilt, he is very talented at both CAD design and also is quite a good programmer. Without him, I would not have been able to complete this project in the time frame we did. We had a lot of setbacks, but together we pushed through and got it done. Thanks for all your hard work.
After the WiiSPii was complete, Dmcke5 asked back in October of 2020 if I wanted to help work on designing a custom 4 layer PCB for the at the time "new" Raspberry Pi Compute Module 4 (I literally had no idea about the Raspberry Pi Compute Module line before I started, nor much about Raspberry Pi's to be honest). To be frank, coming from the Wii portable scene, I thought emulation was for chumps. I was indeed wrong. Thankfully, the Raspberry Pi/BitBuilt communities are both really supportive, and I was able to put the pieces together with lots of googling and forum posting to put together a PCB I'm pretty happy with for a prototype.
Unbeknownst to me, the complexity of the project or what was actually required to build a CM4 carrier board, I accepted his request. I was now excited to finally build my own retro gaming handheld. Although I absolutely love Wii portables, they are not suitable for emulating some older 32-bit systems, like PSP, Nintendo DS or Dreamcast. Naturally, I wanted to have a system that could play those games with the ability to upscale where possible, that wasn't a mobile phone (cheating). Little did I know, this project was going to take us both on a pretty arduous journey (close to 1.5 years, to be exact...) and quite a lot of frustration ensued after that when things wouldn't work as I had planned.
With numerous PCB revisions, late night soldering sessions, screwups and mistakes on my behalf, more code modifications/changes/updates from Dmcke5, ordering from a fab house for the first time, more money spent than I want to remember and the numerous Discord calls on a fortnightly basis, the Retro Lite CM4 is finally done. I'm pretty confident to say that at least, although there a few more final features to be integrated into the software, but the build as it is now is fully playable and fully functional at the moment.
Final specifications of the Retro Lite CM4, are:
- Machined aluminum 6061 housing (green/purple), custom machined and anodized by Dmcke5
- Raspberry Pi 4 SoC: Broadcom BCM2711 quad-core Cortex-A72 @ 1.5GHz (ARM CPU overclockable to 2.1GHz, GPU overclockable to 850MHz)
- 2GB of LPDDR4-3200 SDRAM
- 5.0GHz IEEE 802.11b/g/n/ac wireless, Bluetooth 5.0
- Custom AIO 4-layer PCB, with CM4 mezzanines, 5v boost rated at 2.1A continuous current, 3.3v buck, USB2422 hub, BQ24292i, MAX17055 fuel gauge, ATtiny84, WM8960 amp, TFP401 encoder, SD card slot, USB-C hardware and mini HDMI type A
- 2x controller PCBs with FFC cables
- 800 x 480 (5:3 aspect ratio) IPS display
- HDMI video output (HDMI0 - internal)
- 1080p 60fps HDMI video output (HDMI1 - external) via the mini HDMI port
- Tempered glass screen protector
- Fuel gauge for accurate battery SoC monitoring - MAX17055, custom battery indicator shown in steps of 10 icons, plus %SoC value, via dispmanx APIs on a HDMI panel
- Charging indicator
- HDMI switching scripts, to shutdown and reboot to external HDMI with an overclock applied
- ATMEGA32u4 internal USB 2.0 controller
- Brightness and volume HUD adjustment, in steps of 10 icons. Brightness is adjusted by holding select + up/down on the DPAD
- Custom menu, activated by pushing select + R3. The menu consists of 4 sections (1. Battery Information, 2. Controller Calibration, 3. Onscreen Keyboard, 4. Settings Menu) - courtesy of Dmcke5's hard work and ideas
- USB-C PD charging capabilities up to 15v (0.5C charge rate at 2A) with an original Nintendo Switch charger
- Stereo Audio Output via i2s WM8960 Wolfson audio amplifier
- Headphone jack, with automatic switching
- 4000mAh custom lipo design, providing 4 hours of gameplay
- Dual stacked shoulder buttons (L, R, LZ, RZ)
- 2x switch analog sticks, range programmable in software
- Resin casted ABXY, DPAD, start+select, shoulder buttons with acetal spring hinge + silicone membranes
- Safe software/hardware shutdown to prevent corruption to the SD card data (low voltage shutdown included)
- USB 2.0 2-port downstream hub
- External dock passthrough PCB with 4 port USB-hub (unfinished)
Special thanks to these people for being awesome:
- YveltalGriffin and Aurelio, for suggesting numerous revisions to the PCB design, always providing technical explanations for my failures on a detailed level and helping with the fuel gauge code/answering all of my questions
- JuckettD, for assisting with HDMI scripts - check out his work here: https://github.com/juckettd/RaspberryPiCM4Handheld7Inch
- Skent, for offering to assemble my failed prototypes way back in June of 2021
- Makerfabs, for assembling the final prototypes
Now, there’s only one thing left to do. Put a Wii in it.
Last edited: