element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Raspberry Pi
  • Products
  • More
Raspberry Pi
Blog Can you run PalmOS on the Raspberry Pi RP2040?
  • Blog
  • Forum
  • Documents
  • Quiz
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Raspberry Pi to participate - click to join for free!
Featured Articles
Announcing Pi
Technical Specifications
Raspberry Pi FAQs
Win a Pi
GPIO Pinout
Raspberry Pi Wishlist
Comparison Chart
Quiz
  • Share
  • More
  • Cancel
Group Actions
  • Group RSS
  • More
  • Cancel
Engagement
  • Author Author: dychen
  • Date Created: 21 Sep 2023 9:41 PM Date Created
  • Views 1366 views
  • Likes 3 likes
  • Comments 0 comments
Related
Recommended
  • pda
  • raspberry pi pico
  • PalmPilot
  • Arm Cortex-M0
  • PalmOS
  • porting OS
  • rp2040
  • cpu
  • reverse engineer
  • pace
  • arm
  • DAL

Can you run PalmOS on the Raspberry Pi RP2040?

dychen
dychen
21 Sep 2023

How do you run an obsolete OS on modern hardware?

PalmPilot
Figure 1: Palm TX (Source: Brusselsshrek/Wikipedia)

Remember the PalmPilot? PalmPilots came out in the 90's and were one of the earliest PDAs (personal digital assistants). They were basically a pocket computer with a big screen and very few physical buttons.  Sound familiar?  PalmPilots were without a doubt a big reason why we have the smartphones of today.

PalmPilots ran on their own operating system, called PalmOS. Despite having 74% market share for PDAs in 2000, PalmOS started disappearing as PDAs started adopting the Pocket PC platform from Microsoft.  Soon, even the next generation of Palm devices ran on Windows Mobile.

Is PalmOS obsolete?

Maybe not, thanks to a talented young engineer by the name of Dmitry Grinberg. Dmitry recently ported PalmOS 5.2.8 to the RP2040, the first microcontroller from Raspberry Pi.

What does porting an OS mean?

PalmOS was originally designed to run on Motorola 68k processors. When the speedier ARM processors were released, PalmOS was ported over so Palm devices could use them. This was done through PACE - the Palm Application Compatibility Extension. When something designed for the 68k processor made an OsCall, PACE would intercept it, and translate it to use the ARM Native OsCall. In effect, Palm had created a 68k emulator for ARM processors. It worked, and it was fast! Palm eventually created Native ARM applications, although this was never documented.

How do you port an OS?

The native API of PalmOS 5.x was never documented, so porting it over to new hardware meant a lot of reverse engineering. Dmitry started by writing a basic DAL (Data Access Layer), which handles the kernel, memory management, and most of the low-level functions of the CPU. It took months, with every function and feature being a new problem to solve. These included audio, memory management, drawing, screen resolution, SD card, serial ports, stylus, and more.  Every function was reverse engineered and meticulously recreated. "rePalm" was working perfectly on Dmitry's PC.

Why Raspberry Pi's RP2040?

Because rePalm had support for the Arm Cortex-M0, Dmitry decided on the RP2040, because it was the only Cortex-M0-based chip with enough RAM. Dmitry chose a Raspberry Pi Pico  with a touch screen display. After some tweaking and experimentation, Dmitry was able to get the world's most modern PalmOS device working, the results of which are shown in the video below.

#rp2040 runs unmodified PalmOS 5.2.8 (showing off world’s only ARM-to-thumb1 JIT) pic.twitter.com/b9n5OG4a1l

— Dmitry Grinberg (@dmitrygr) September 20, 2023

To learn more about Dmitry's project, check out the rePalm project on Dmitry's website.

  • Sign in to reply
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube