The Raspberry Pi is known for its versatility and ability to run different operating systems but it seems that the $4 Raspberry Pi Pico can also run an OS. This impressive foray into the world of Palm PDA (Personal Digital Assistant) emulation on our favorite microcontroller comes from Dmitry Grinberg. They have shared an early demo of his platform known as rePalm in which he manages to run PalmOS on a Raspberry Pi Pico. Hat tip to Adafruit for spotting this cool project.
According to Grinberg, rePalm was designed so that it could theoretically support Cortex-M0 processors. The rePalm project was successfully tested on CortexEmu but Grinberg wanted to try real hardware. Testing rePalm on real hardware meant finding a Cortex-M0 board with enough RAM. This ultimately led Grinberg to choose the Raspberry Pi Pico microcontroller.
Grinberg goes on to explain how he created a custom kernel to run on Cortex-M processors. It meets all of the requirements for PalmOS which enables the RP2040 to handle rePalm. The tool has essential features like the ability to disable task switching and force-pause threads. It also has precise timers, events groups, mailboxes and other features necessary for a smooth experience.
The demo build shows a 2.8 inch touchscreen display with a Raspberry Pi Pico mounted to the back. This screen interfaces with the Pico via SPI and has a resolution of 320 x 240px. You don’t need any additional hardware to interface with rePalm.
Grinberg was kind enough to share plenty of juicy details about the inner workings of this project including the source code that brings it all together. If you want to explore the code behind this project or maybe test it out for yourself, check out the official project page shared to Grinberg’s website.
If you want to see this Raspberry Pi project in action, visit the project page for rePalm over at Dmitry’s website. There you’ll also find tons of neat information about the history of PalmOS and what Grinberg had to do in order to successfully run it on a Pico. We wonder if one day a Raspberry Pi Pico W could be used to add Wi-Fi and Bluetooth connectivity to the project? That would be the icing on the cake!