After flashing Linux to an ESP32-S3 and turning a Raspberry Pi Pico into a GPU, Clem takes the next logical step in his twisted journey and creates a cursed DIY single-board computer (SBC). Dubbed the "Sudosom SRSLY," this contraption isn't just bizarre for its own sake; it also lets you connect a Raspberry Pi to create a single-board computer on your single-board computer. Clem's project pushes the boundaries of weirdness and functionality, integrating multiple computers, enabling text mode displays, and overcoming design mishaps, all while inviting you to contribute your insights for even stranger future developments.
<embed video>
For every maker, there is usually that one elusive project that they might one day tackle. That day came for clem when he tried to make a single board computer (SBC), and to be truly on brand, it must be a weird one. Not just an unusual computer but one with a very niche purpose and an uncommon shape.
If you have not seen it yet, check out Clem’s previous episode where he shows how to run Linux on an ESP-32, using that project, and combining it with turning a Raspberry Pi Pico into a GPU Clem turns the weirdness factor up to eleven.
There are a few modes on with Clems SBC, which he aptly named the “Sudosom SRSLY” (that unfortunately includes a fitting typo in his name on the PCB):
- The ESp32s3 on the board runs “normal" real-time microcontroller (MCU) code, written with ESP-IDF / Arduino and it can directly interact via I2C to a Raspberry Pi (RPI) Pico (also freely programable).
- Full access to RPI style GPIO with two USB ports that make it a fully-fledged MCU platform with added DVI output.
- The ESp32s3 runs the Linux kernel, and it could theoretically talk to the Pico over I2C, but the implementation in the currently flashed Linux port is not capable (yet).
- One can add another computer into the mix (so many computers). The GPIO headers allow you to connect an additional SBC to the board.
- Clem uses an RPI 3A+ and an RPI 4 in the video trying to push data to the Pico and the ESP.
- The whole monstrosity can plug into a host PC motherboard via the onboard PCIe connector exposing all devices in the mix on the SMBUS. (At least theoretically).
Clem put the SBC through its paces by testing the functionality on a LattePanda Delta, running vanilla Ubuntu 22.04 LTS. In doing so, Clem discovered that the devices do not show up correctly in I2C detection. This is likely due to not reacting to system calls that ask for device/vendor identification during boot.
If this is truly the case, Clem would like input from the Community, as perhaps someone has experience with enumeration on SMBUS to resolve this and can comment with guidance.
In its production, Clem must work around a few mishaps in the design of the board. Designing and populating the PCB with the wrong type of SATA power connector did not help, either. The solution to this is hacky but functional. USB cables sling around the board that connect USB-A to USB micro-B and type C ports to provide data lines and power to all devices.
Now the data can flow via USB/UART.
Clem adapts the code to allow for serial messages to be directly pushed in text mode to the screen and after a lot of fiddling around with code, and setup, he manages to push messages pipelined into a very simple USB / GPU driver script onto a secondary screen. This also works over SSH, and even with pipelining program output directly into the usb / GPU driver, showing the content of files onto a little DVI monitor.
In a fortunate turn of events, the way that this is set up appears beneficial for further development. When utilizing the pico-GPU board as a simple module to add video output to projects. Clem also ponders the possibility of using a real PCIe interface chip to circumvent the need to learn about any required Linux kernel shenanigans to get everything working, which gives him the enjoyment of potentially building a much more integrated and weirder SBC. Only time will tell.
Bill of Materials
Product Name | Manufacturer | Quantity | Buy Kit |
---|---|---|---|
Raspberry pi pico | Raspberry pi | 1 | Buy Now |
Raspberry pi 4 | Raspberry pi | 1 | Buy Now |
MCP1825s | microchip | 2 | Buy Now |
FT230X USB uart bridge | FTDI | 1 | Buy Now |
Raspberry pi 5 | Raspberry pi | 1 | Buy Now |
Raspberry pi 3A+ | Raspberry pi | 1 | Buy Now |
Lattepanda delta | Dfrobot | 1 | Buy Now |
Product Name | Manufacturer | Quantity | |
Esp32s3 | |||
DVI/hdmi screen | |||
Downloads and Links
- Sudoflash - tool to flash Linux onto ESP32s3
- pico GPU - Raspberry Pi Pico as a crude GPU
- Episode 659 Resources - Code and firmware for this project