Dmitry Grinberg Brings Palm OS 5 to the Raspberry Pi Pico, with a Few Compromises Along the Way

Despite having just 264kB of RAM, the RP2040 proves a great device for revisiting the joys of Palm OS 5.

ghalfacree
8 months ago Retro Tech

Dmitry Grinberg's rePalm project, which aims to port Palm's classic Palm OS platform to modern hardware, has reached a new milestone: the ability to run Palm OS 5 on a Raspberry Pi Pico or other RP2040-based development board, making clever use of the chip's programmable input/output (PIO) capabilities.

"How little RAM/CPU does Palm OS 5 really require? Since rePalm had support (at least in theory) for [Arm] Cortex-M0, I wanted to try on real hardware, as previously the support was tested on CortexEmu only," Grinberg writes in a project update brought to our attention by Adafruit. "There does happen to be one Cortex-M0 chip out there with enough RAM — the RP2040, the chip in the $4 Raspberry Pi Pico."

An error occurred while retrieving the Tweet. It might have been deleted.

The RP2040 is a dual-core low-cost microcontroller featuring two Arm Cortex-M0+ cores running at 133MHz and 264kB of static RAM (SRAM). It's this RAM which would prove the biggest challenge: "The last Palm OS device to have this little RAM ran Palm OS 1.0," Grinberg explains. "If I wanted to use the entire 320x240 display in true-color mode, the framebuffer would occupy 150kB. Oof! Well, how much IS acceptable?"

With a little experimentation, Grinberg was able to pare down the RAM requirements to 231kB for the underlying operating system and storage, leaving 33kB for the framebuffer — which itself was then pared down to a 320x240 resolution at four bits per pixel, or 160×160 at eight bits per pixel.

To get a full-resolution display in just 264kB of RAM required a four-bit grayscale color depth. (📷: Dmitry Grinberg)

"There is still a lot to do: implement BT [Bluetooth], Wi-Fi, USB, debug NVFS [Non-Volatile File System] some more, and probably many more things," Grinberg admits. "However, I am releasing some little preview images to try, if you happen to have an STM32F429 Discovery Board, an AximX3, [or] a Raspberry Pi Pico with the proper screen."

More details, and a link to download the software, is available on Grinberg's website.

ghalfacree

Freelance journalist, technical author, hacker, tinkerer, erstwhile sysadmin. For hire: freelance@halfacree.co.uk.

Latest Articles