RetroLite Station

StonedEdge

a.k.a. ClonedEdge
.
.
Joined
Nov 16, 2018
Messages
366
Likes
1,495
Location
Japan, Tokyo
Portables
2
Hi all,

I've finally finished my docking station for the Retro Lite CM4! I've opened sourced all of the STL files + code, and the PCBs + BOMs are to come later once I make a few fixes to the hardware design.


Introducing the RetroLite Station - a cool metadata box for RetroPie systems!

---------------------------- RetroLite Station ----------------------------

68747470733a2f2f696d6775722e636f6d2f677949677a49562e6a7067.png
68747470733a2f2f696d6775722e636f6d2f576e574d7966752e6a7067.png
68747470733a2f2f696d6775722e636f6d2f5a6537623537652e6a7067.png


This was my first real attempt to dive into embedded programming and to be honest my first attempt did not go well at all!
I started this project back in September 2022 and here we are 10 months later in an attempt to learn how to use Python, C and microcontrollers.

I think I've come out of this project with a tonne of knowledge on basic programming concepts and I'm really grateful for everyone who helped me along the way to get this completed.

Features:
  • Custom 3D printable case
  • Integrated SSD1351 1.5 inch 128x128 SPI 16-bit color display for showing crisp RGB565 images and text over SPI
  • Receives stats, image and metadata over serial USB
  • 3 modes, splashscreen, statistics and game mode
  • Push button to cycle modes
  • 3 x external USB 2.0 ports - usable with a keyboard, mouse & other peripherals. Self powered so capable of providing 500mA on each port instead of bus powered
  • USB-C charging to charge the battery
  • HDMI video output - to display 1080p to an external monitor
  • Uses a Raspberry Pi Pico
  • Device code in C (Pico)
  • Host code in Python (CM4)
Some pictures of it working in stats mode, game mode + a video of the description scrolling:

354719955_646661187369730_2385681739978439226_n.jpg

352507138_907707697193572_2036338052473386924_n.jpg

354471785_1303811620555200_4180721185757131123_n.jpg

352572019_1905041359877672_7045303987758872637_n.jpg


Internals:
354786589_928771694901388_6530537836380509595_n.jpg

354479915_3566697380270088_6374683070006653844_n.jpg


Video of a cool scrolling description!
The Python script makes sure that the text is word wrapped so that there is no breaks in a word before it drops down to a new line.


It was my hope to be able to send a small video to the OLED as well which I think is definitely possible, but would require me to dig deeper into tinyUSB and figure out how I can at least get transfer speeds greater than 0.9MB/s for a 32kB size frame (the Pi Pico only supports USB 1.1). Not to mention that the Pico RAM is only 264kB, so it would require it all to be done on the fly. Maybe I will look into it but for now the dock works just fine, albeit with very slow transfer speeds for very little data (which I'd like to improve at some point).

Let me know what you're thinking!
 
Last edited:

Retro95

.
2023 3rd Place
Joined
Mar 29, 2023
Messages
180
Likes
235
Location
Oregon
Portables
2
That is just about one of the neatest things I've seen in a while. Projects that push you to learn new things are the most satisfying in the end. Congrats on the end result!
 
Top