What's new

Worklog Retro Lite CM5

StonedEdge

a.k.a. ClonedEdge
.
.
Joined
Nov 16, 2018
Messages
387
Likes
1,557
Location
Japan, Tokyo
Portables
2
Revision 1.1 of the main board is almost ready to be ordered! I can feel the project end drawing near. There's still a lot to be excited about in the future with this board, like Vulkan support and newer linux kernels which will improve performance significantly compared to the GLES binary blobs. But for now, they work well.

I've been having fun with Box86 too. I wanted to test out our gyro and its working really really well, the EKF algorithm is something else. Portal is the perfect game for using it too (which runs at over 60 FPS, by the way with this SoC! I was surprised). I also installed all of the NSFU titles and they run at playable frame rates too. Wine is really great with this board.




Battery life testing has been rough, however. With a 5Ah cell, we don't exceed more than 2 hours in heavy demanding titles, such as GoW or Shadow of the Colossus. I'm thinking to upgrade to a 6Ah cell since there is plenty of room for that, but the SoC is indeed very power hungry.

We also have a working low power mode. It was a simple as driving PWRON_L to ground momentarily. It'll be interesting to see how "ultra low power" this mode really is. But I got far too excited to see how simple this was to do.


Anyway, things are going very well! There's a few things I want to polish off with the case, like moving everything to the front so that the rear shell doesn't have anything mounted to it, which we are working on. I also would like to make some rubber membranes as I did for the CM4, as the buttons IMO are very loud at the moment.
 
Last edited:

JMCD

.
Joined
Feb 18, 2024
Messages
49
Likes
37
Location
UK
We also have a working low power mode. It was a simple as driving PWRON_L to ground momentarily. It'll be interesting to see how "ultra low power" this mode really is. But I got far too excited to see how simple this was to do.

Haha, I can definitely sense the "clap on, clap off" vibes in that video!

I am blown away by this project, congratulations to you both!
 
Joined
Oct 27, 2023
Messages
6
Likes
27
Location
London, United Kingdom
Since you enjoyed the pin clapping, here are a couple more demos from the other side of the world, where I'm working on other power functions for Retro Lite CM5.

Safely shutting down the board with a (long) button press, and then cutting the power:


Safely shutting down the board from the menu, and then (you guessed it) cutting the power:
 

JMCD

.
Joined
Feb 18, 2024
Messages
49
Likes
37
Location
UK
Since you enjoyed the pin clapping, here are a couple more demos from the other side of the world, where I'm working on other power functions for Retro Lite CM5.

Safely shutting down the board with a (long) button press, and then cutting the power:


Safely shutting down the board from the menu, and then (you guessed it) cutting the power:

Nice, nothing like seamless integration to polish a project. I can only aspire to achieve the same for my hodgepodge pi build.

Keep up the great work :)
 

StonedEdge

a.k.a. ClonedEdge
.
.
Joined
Nov 16, 2018
Messages
387
Likes
1,557
Location
Japan, Tokyo
Portables
2
Added some rear grips to the back of the shell for ergonomics. Still tweaking the design slightly and need to re-add all of the internal features and ribbing, but it’s definitely more comfortable to hold now. I like them a lot. It does increase the thickness quite a lot - by around 18mm.

I’m working on another revision of the grips as an alternative, so I’ll share that here once done for comparison. Would appreciate your feedback on which you think looks the most comfortable! But these ones are very good and so far my hands don’t cramp at all now when holding it so that’s a win!

CF2B9F31-C4D6-4DAC-9272-24F58AF37217.jpeg


EDIT: Here is the second design. This time it’s done with surface modeling so the surface is more rounded and overall a bit better curvature. Doing a test print right now!

12AABD77-A416-4D01-A8C5-AEF701030A7A.png
 
Last edited:

StonedEdge

a.k.a. ClonedEdge
.
.
Joined
Nov 16, 2018
Messages
387
Likes
1,557
Location
Japan, Tokyo
Portables
2
Well, the project is drawing near its end...

New PCBs have arrived and I only made one mistake, nothing crucial luckily... everything is working!

We're on the home stretch now... hopefully we can get an Android 13 image also working soon. For now we have Armbian and ROCKNIX. Photo bomb incoming...
29AA4937-EF54-4222-9050-FA83BBE72093.jpeg
419583E2-83B9-4154-8789-A6AFE75A792E.jpeg

449085356_436358922552098_227367663345948028_n (1).jpg

448917166_1203245077499164_6066635115162395713_n (1).jpg

449082343_1399433237399167_2730770395665766420_n (1).jpg
448931818_981855730270203_1924562227126350790_n (1).jpg
448474176_1228367308052238_1444578658375696754_n (1).jpg
449090836_1465954848139314_6389979949203732740_n (1).jpg
448728072_1405577860156076_1380169791598245129_n (1).jpg

448759526_834798024757239_8848329575730505895_n (1).jpg

448453926_1544246869467468_252207630260057660_n (1).jpg
 
Last edited:
Joined
Oct 27, 2023
Messages
6
Likes
27
Location
London, United Kingdom
I've got a lot of catching up to do, so I've been quite busy ever since I've received the carrier board... Needless to say, I went as flamboyant as possible, because why not.

OK, without further ado, let's get cracking. The picture below is missing a couple parts, and some are slightly wrong (all's already fixed in the repo), but you'll get the general idea.

20240710_151447.jpg


Pretty cool, huh? Let's try putting it together. Some prep work is needed: heat set inserts are going to make the assembly and disassembly much easier.

20240706_151718.jpg


Halfway there...

20240711_224410.jpg


OK, almost done (don't mind the sudden color change on the controller board, stuff happens, had to use a replacement for the time being).

20240712_170503.jpg


But will it boot?..

20240712_131456.jpg


Oh yeah! Told you it's flamboyant. :)

20240712_131509.jpg


Testing HDMI for a good measure...

20240712_172419.jpg


"This is getting out of hand, now there are two of them!"
 
Joined
Oct 27, 2023
Messages
6
Likes
27
Location
London, United Kingdom
We're still not quite done with everything, some extra polish is always a good idea.
For example, how do you update your gamepad firmware, ideally without even opening the case? Well, we've got you covered. Just Ctrl+Alt+Del the thing (well, I mean HotkeyPlus+HotkeyMinus+Select+Start, but whatever), then simply drag&drop, done.
 

StonedEdge

a.k.a. ClonedEdge
.
.
Joined
Nov 16, 2018
Messages
387
Likes
1,557
Location
Japan, Tokyo
Portables
2
We finally have a working beta Android 13 image! Here's a couple of shots of it running Android 13. Downloadable here, flash with rkdevtools or the following method to boot from SD card (I'm keeping Armbian on the eMMC for now):

A big thanks to notime2d8 for helping us to get this to work. There is still a few things to iron out, including wakelocks for sleeping the device (currently it doesnt sleep due to analog input noise coming from the controller) and auto shutdown on low battery SoC - for some reason, the system wont shut off on dead battery condition... but most of the features that make a handheld a handheld, work.

Currently the kernel is a bit older on Android 13 (5.10.160) vs. what we're using on Armbian.
The main reason you'd ever want to use Android is to test the Vulkan performance via blob drivers, which gives plenty more performance than OpenGLES does in my tests. Anyway, here's a couple of photos of Android.

Running EmulationStation-DE - a neat frontend to load your emulators and can be used to replace ATV/Quickstep/whatever launcher. Gives it more of a "handheld vibe" instead of a phone:

455990668_940252908147301_5829620287011090469_n.jpg


For those that have asked, I've tested a couple of games on the "emulator that should not be named".
All of these are running in handheld mode at 720p resolution (1x scale). Even though these emulators were developed with Qualcomm Adreno GPUs in mind, I was pleasantly surprised of the performance I got out of these easier to emulate titles on the Mali GPU.

Crash Team Racing Nitro Fueled
1x resolution
Handheld mode
30 fps

456588957_889933386285122_685639521542168844_n.jpg


Super Mario Bros Wonder
1x resolution
Handheld mode
50-60 fps

457244808_3715851655396049_8301711453712901528_n.jpg


Crash Bandicoot Insane Trilogy
1x resolution
Handheld mode
30 fps

456303005_918896003381908_8163579438237071296_n.jpg


Hades
1x resolution
Handheld mode
50-60 fps

456595568_489846940560541_4590918962965387623_n.jpg


And here's a couple of other neat emulators you can run... Lime3DS for example wouldn't work on Linux but does work on Android thanks to Vulkan. Nearly every 3DS game I've tested has run at 3-4x resolution. And of course, touch works out of the box.

456898789_1237203870969296_1391511937733155013_n.jpg
 
Last edited:

StonedEdge

a.k.a. ClonedEdge
.
.
Joined
Nov 16, 2018
Messages
387
Likes
1,557
Location
Japan, Tokyo
Portables
2
So, its been a while and we have some updates to share.
I'll try not to steal @GinKage's thunder, but here goes.

Firstly, we have migrated our software setup to the latest Armbian 6.1 rkr5 kernel, which now supports the latest g24 Valhall blobs with built in Vulkan support. We are currently rendering the desktop with OpenGL ES. Unfortunately, this breaks a lot of apps without the big boy Open GL available, but hey, it’s the only way to have this good performance on this chipset at the moment (sure, you could reboot and use Panthor via an overlay, but that's besides the point).

Of course, in order to get Vulkan working at all on the GPU, GinKage had to work his voodoo magic. Specifically, what we needed is a wayland compatibile WSI layer in order to get a Vulkan surface available for drawing to, as the driver is only a headless one. Unfortunately, we haven't had much luck with an X11 compatible WSI layer yet, so Wayland will have to do for now. One too many hacks later, we were able to use Vulkan!

We needed to compile the WSI layer with the flag -DENABLE_WAYLAND_FIFO_PRESENTATION_THREAD=1 and force vsync within the WSI layer to prevent jitteriness on Mutter (this doesn't happen on Weston with built in explicit sync, where things work just fine). I can confirm we now have (albeit somewhat broken in some games) working switch emulation via Citron and Ryujinx on ARM64! Oh yeah.

But onto the big news.... which is, RPCS3 is now decently playable (insert huge caveat here) on a cheap ARM SBC!

The RPi5 was showcased by the RPCS3 team recently (OpenGL only), but games needed to be dropped to PSP resolution to get it to not look like a slideshow. But... drumroll please... the RK3588 can play Demon's Souls at a reasonable framerate (25-30 fps) and many other less intensive games with Vulkan. Wow! This was definitely far more complicated than just downloading the AppImage and away you go, though. GinKage had to modify RPCS3 source code to handle texture decompression on ARM64 as games just crashed when trying to decompress any sort of textures. These patches are currently being reviewed by the RPCS3 team, but if the PR is accepted, this means it will be available in upstream RPCS3 soon for people to try with libmali drivers. Here is Demon's Souls running at 30 FPS in the tutorial area.


Ryujinx also works very well! Between the two emulators (Citron and Ryujinx fork (Ryubing)), a large amount of games are playable. Albeit the games you'd expect to not work (Breath of the Wild, Tears of the Kingdom, etc) are slideshows and graphical messes. But... the good news is...!

I've been able to get 60 FPS out of Luminescent Platinum (Brilliant Diamond Hack) as well as a solid 28-30 FPS out of Pokemon Legends Arceus. Super Mario Wonder will also work at 60 FPS with resolution dropped to 0.75x. Many other games crash or die, but hey, this is far more than we should be able to do anyway on this $100 SBC!

In order to get Ryujinx to work on Wayland, you'll need to use the SDL2 backend (headless) and force the SDL video driver to Wayland with SDL_VIDEODRIVER=wayland environment variable to get it to work. Avalonia doesn't work with native Wayland.

Here's Legends Arceus running at 30 FPS 1x resolution. I needed to apply some graphical "potato" hacks (namely less shadows and lower the draw distance) to get decent FPS in the open world areas, but hey... it just works (and stably too!)


In summary, it's safe to say, the project has definitely improved on the software side over the past 6-12 months - and that is mainly due to GinKage's awesome hackery work.

The last piece to the puzzle for this handheld is the open-source PanVk mesa drivers, which, are currently released as of Mesa 25.0, exposing Vulkan 1.1. Hopefully by the end of 2025 we would have a decently conformant open source Mesa driver (maybe with Vulkan 1.3 support), which would mean proper working xwayland, and potentially much better compatibility with gaming and emulators. But by then, we may be onto the RK3688, which is going to be even more powerful! Watch this space!
 
Last edited:
Top