Add custom splash screens to handheld Raspberry Pi–powered devices. Configure early boot splash screens for SPI and I2C based displays. Earlier this year, M5Stack revealed a tiny CM0-based computer they were launching on Kickstarter.
One of their goals was to display a splash screen as early as they possibly could, but achieving this required running U-Boot as an entirely additional boot step. Since Thomas Griffiths was joining us for the summer, we thought it would be a great idea for him to work on a firmware extension that would allow such SPI/I2C-based displays to be configured very early in the boot sequence, pulling the splash screen up in just a couple of seconds. A pre-production M5Stack Cardputer Zero sent to us for improving booting responsiveness With the cyberdeck trend inspiring countless colourful Raspberry Pi creations, and the release of new handheld maker devices such as the Cardputer Zero and Hackberry Pi, there has been an increase in small SPI and I2C displays being used as the main display for Raspberry Pi.
To help them look more responsive during boot, we have developed a way to add custom splash screens to these devices using a little language and an interpreter in the bootloader. The little language I took inspiration from Noralf Trønnes’ mipi-dbi language for much of the layout and syntax of the language, as a lot of the displays being used will ultimately be run through his Linux driver. I also took some liberties with it, adding more features and changing some of the architecture.
The ST7789 I have on my desk displaying a splash screen The splash language also supports I2C and statically compiles the image into the binary, but a lot of the configuration code is ultimately compatible with mipi-dbi.
Discover more from ChuckysCarnage
Subscribe to get the latest posts sent to your email.

