Hi there,
I wanted to share with everyone here the final product - a gaming handheld we've designed from scratch in Solidworks. I've been working on this with a fellow Armbian contributor @GinKage for quite some time (probably over a year now... time really does fly) who has helped me learn a lot on the software side, which I wasn't really familiar with before I reached out to him. Despite it's shortcomings, I'm really happy with the v1 build. I hope you guys like it!
Open source files can be found here, including CAD files, Armbian build files and more.
https://github.com/StonedEdge/Retro-Lite-CM5
Retro Lite CM5: Radxa CM5 Gaming Handheld
Specifications
Hardware specifications
3D printable housing in PLA. Comfort grips for added ergonomics
Radxa CM5 Compute Module (8GB RAM/64GB eMMC)
SoC – Rockchip RK3588S octa-core processor with 4x Cortex‑A76 cores @ up to 2.4GHz, 4x Cortex‑A55 core @ 1.8GHz Arm Mali-G610 MP4 “Odin” GPU Video decoder – 8Kp60 H.265, VP9, AVS2, 8Kp30 H.264 AVC/MVC, 4Kp60 AV1, 1080p60 MPEG-2/-1, VC-1, VP8 Video encoder – 8Kp30 H.265/H.264 video encoder
WiFi 6/Bluetooth 5.2 via PCIe E-key slot (Intel AX210) - https://www.intel.com/content/www/us/en/products/sku/204836/intel-wifi-6e-ax210-gig/specifications.html
6 layer carrier board with 3 B2B mezzanine connectors to interface with any Radxa CM5 module
5v boost rated at 3.5A continuous current
RP2040 gamepad HID controller - complete with SDL mappings and evdev gyro support/mouse control via MPU6050
1280 x 720 (5.5" DSI IPS LCD): DSI video output on internal display
Up to 4k HDMI video output via HDMI output
Up to 4k DisplayPort Alternate Mode via Type-C
USB 2.0/3.1 capable USB-C data transfer
USB-C dual role port functionality (sink/source)
Brightness and volume HUD adjustment. Brightness is adjusted by holding plus hotkey + down/up. Volume controlled either by volume buttons or plus hotkey + left right DPAD
USB-C PD charging support via sink profiles supporting 5V/3A, 9V/3A, 12V/2A & 15V/2.6A (switch charger) via TPS65987D PD controller (see binary in TPS65987D folder). Recommended to use <12V for best charge and play performance
Stereo Audio Output via i2s. Dual stereo speakers with ported chambers
Headphone jack, with automatic switching
5000mAh lipo, providing around 1.5-5 hours of gameplay depending on load (to be upgraded to a larger size)
Dual stacked shoulder buttons (L, R, LZ, RZ) with dual tact buttons for GameCube functionality (LR analog/LR digital)
2x hall effect analog sticks running at 3v3
Resin casted ABXY, DPAD, start+select, shoulder buttons
Silicone membranes for nice button feel
Software specifications
Armbian GNOME desktop (Kernel 6.1.57 as of this post)
Full upstream Rocknix support
Hardware graphics support via Panfrost/OpenGLES (no Vulkan support… for now)
Safe software/hardware shutdown (either from software or via button)
Low power sleep mode
Internal Components/Hardware/Random Pictures
All of the components laid out - ready for assembly time!
Internal PCBs - 6 layer boards designed myself, fitted with the compute module (v2.2 pictured)
Handmaking all of the buttons with silicone and resin from a machined polished mould. 3D printed buttons really dont feel good so I wanted to make these special
Final internal pictures before closing it up
Front shot of Armbian desktop 😁 Flashed to the internal eMMC (non-socketable) with an SD card for added storage for running games via RetroPie
Docking. DisplayPort functionality works over Type-C with my TPS65987D/TUSB546 PD extcon config. I have set it up to work with 2 lanes of DisplayPort and 2 lanes of USB 3.0 over Type-C
Grips for added comfort. Because why not?
Purple build! (GinKage)