Hacker News new | past | comments | ask | show | jobs | submit login
RePalm (dmitry.gr)
503 points by p_l on April 10, 2023 | hide | past | favorite | 145 comments

This is an incredibly cool write-up, demonstrating a level of technical skill far beyond me. Kudos!

I am a little confused by all the "but why" comments here. Because it's fun! Because it's cool! Because it's full of weirdness, archaisms, and edge cases - working through those is a playful challenge, and conquering them all gives a wonderful feeling of mastery. It doesn't need to be any more 'useful' than any other hobby or game.

I think there are two kinds of "but why" questions:

1. Derisive, insinuating that the project is silly or a waste of time.

2. Inquisitive, actually wanting to know what motivated the creator to do something that most people don't see a value for, and/or would never have thought to bother with.

We should discourage the former, but IMO we should encourage the latter.

I think the "Motivation" section is the most important section of documentation. Why is this great and why should we keep reading?

Also true, but I don't think we need to enforce that kind of standard for personal hobby projects. You're not under any obligation to convince people that your project is worth being interested in, unless you specifically want other people to start using it.

You are right, it's not something that needs to be enforced or demanded on a personal hobby project.

You can write documentation and software for yourself, and share it for no particular reason, or write documentation/software for other people, and share it to help others. If it's the latter, you might care that other people read the documentation, because you think it will be useful and helpful and you want to help them.

As a non-expert, I like having the main and most relevant use cases and underlying motivations of authors and users made obvious. For me, having specific use cases in mind makes documentation easier to read and interpret. If I were an expert in a field and felt the motivation for the documentation was obvious and self-explanatory, I might not feel the need to have it explicitly articulated.

When I write documentation, I often need to refer to the Motivation to stay motivated and stay on target. What are all the great outcomes that are going to come about as a result of the documentation existing? If I didn't have those in mind from the outset, I might not want to write the docs.

I do the same in my brain dumps when coding.

For me it stops my mind from wandering and describes to myself why I am writing that function.

This is such a great idea for people who have trouble staying focused. It can help you decide whether to actually spend time on whatever you're doing, or to just dump some ideas to a scratchpad (or your Zettelkasten!) and get back to the actual work at hand.

Funny, this is the exact workflow I settled on. During pomodoro cycles I brain dump all unrelated things I want to think about into a scratchpad, and then afterwards transfer the ones I'm still interested in into my Zettelkasten.

It's been significantly impactful; I actually get work done when I can feel like I don't have to address an idea right away out of fear of forgetting it.

Side note: Dmitry (creator of RePalm) is a treasure and his impact on the Palm community cannot be understated. He has a world-class depth of knowledge of the inner workings of these things and is one of the key players in extending PalmOS device capabilities today (patching ROMs, new hardware, etc.).

He also contributes regularly to apps the community is developing, teaching us hobby devs new tricks. :)

As someone who still uses PDAs regularly, I can't express enough gratitude.

Is there a recommended Palm device for modern use? What software do you use on Linux/Mac/Windows to sync the PDA?

Palm Desktop still works fine today on modern Windows, just have to grab USB drivers: https://palmdb.net/help/hotsync-setup

On Linux there's pilot-link (command line) or J-Pilot (GUI on top of that). I don't love the UI for J-Pilot, admittedly, which feels a little rougher than Palm Desktop. A Windows VM is also a common approach.

For devices, there's a dividing line between 68k and ARM.

A 68k will feel more "classic" and will often get you things like AAA batteries and LCD grayscale screens with a bit of an e-ink vibe. Some models like Handsprings are expandable with more "modern" (for 2001) capabilities like extra storage, a camera, or GPS. Some Palm/Sony devices have SD slots too. Most devices of this age involve feature tradeoffs, however. You'll often find color, or AAA, or 16MB of RAM, but not all 3. For a 68k daily driver, you probably want something running OS3.5 or OS4 to avoid the limitations of the super early versions.

ARM models (Tungstens, various Cliés, Treos, etc.) close the gap with smartphones much more--and some literally were. Color, higher resolutions, lithium, media support, SD, bluetooth, wifi, etc. These run OS5+ and having ARM under the hood unlocks an additional class of apps the older ones can't run.

A reminder also to definitely tune one's expectations to the era. Truly modern connectivity requires fiddling and having no-to-rudimentary HTTPS support can make these feel more disconnected today than they originally were. Still, you might also be surprised at how many daily tasks today were achievable 20 years ago in a way that's generally familiar to us now.

Thanks for the detailed guidance!

take your pick on Ebay but jPilot is still maintained and is a clone of the original Palm Pilot desktop. be sure to sign up for the mailing list.

> cannot be understated

Seeing this a lot recently[1]. I guess you mean the opposite of what this implies ("his impact is less than you could state"), but I'm curious how this has ended up being almost as commonly used as the "correct" form[2]. Is it an in-joke or reference I'm not getting?

1: https://www.google.com/search?q=%22cannot+be+understated%22+...

2: https://www.google.com/search?q=%22cannot+be+overstated%22+s...

Oof, and it's too late for me to go back and fix it (unless Dang would be so kind, for posterity).

Definitely meant the positive version and I have no idea how I transposed those two! Apologies for contributing to the mess and appreciate you catching it. :)

Oh, well your meaning is obvious from context, didn't mean to nitpick you but was just curious about the trend I seem to be observing, so apologies back :)

I parsed "cannot be understated" as "must not be understated", or "we cannot allow it to stay understated". I took it to mean a call to action, "this cannot be x!".

I imagine it's much like "I could care less" - the phrase is the literal opposite of its proper form "I couldn't care less" but both have evolved to be used synonymously.

Out of interest, and a genuine question, why do you use PDAs when smartphones exist? Surely they do everything the PDAs did but better?

A totally valid question! I did adopt the smartphone for many, many years. My father had a gen-1 iPhone which captured my imagination. At the same time, I've also never really let them run my life. I've habitually always maintained the old (Apple?) hub-and-spoke model where the PC is the core and everything else is a mobile extension of it.

I do own some, but they don't get used for much (browser-on-the-go, mostly).

Smartphones are definitely better all-rounders, but what I've come to adopt in recent years is a hobby of finding whatever tech/concept seems "best" to me (from any period in time) and then using that. Sometimes that means hardware from 1920, sometimes from today (e.g. I have a current-gen GPU to join the AI arms race). Sometimes that means a modern evolution of the concept without losing the spirit.

Easy examples:

* iPod -> Music player w/ FLAC + 1TB SD

* Gameboy -> Analogue Pocket (or sometimes original hardware)

* A modern standalone camera, etc.

It's sort of like living in the dream version of 2002 where tech stayed hopeful and fun (not sure if that's good or bad). Definitely brought me the most joy in tech I've had in years.

PDAs (and a _lot_ of tech from <2010) have the advantage of still being built entirely to serve the user. For my needs, I basically view it as day-planner or complement to a notepad and don't expect it to be a smartphone. My opinion is that these devices basically "solved" the digital calendar by ~1999 and that almost every calendar feature since (except maybe sharing) usually serves some other business need in addition to the user, or is just clunkier.

A PDA just wants to take good notes, manage the day's work, and be a simple extension of your mind. Most modern tasks (that don't require a network connection to be useful) have apps that still exist and don't spy on you: Food journals, encrypted notes, flashcards, project management, ebooks, cached news, Wordle, period trackers...

So, if your life today doesn't _depend_ on a specific vision of modernity, you don't miss out on much of it while benefiting from some forgotten UX benefits: Offline-first, great UI, week-long batteries (AAA if so inclined), Graffiti input, etc. :)

"I've habitually always maintained the old (Apple?) hub-and-spoke model where the PC is the core and everything else is a mobile extension of it."

This is the model I use in my own life but with a slight variation:

My server at the datacenter is the core and everything else is a mobile extension of it.

I aspire to implement this vision of modernity on my life as well. Perhaps it’s time to dust off an old UX40/UX50 and finally make this happen.

Wait until you see the prices on these for a working one.

> * iPod -> Music player w/ FLAC + 1TB SD

Out of curiosity, which Music player did you settle on? I am in the market for one and looking for options (currently leaning towards a FiiO M11).

Currently a FiiO M3K and I've been super happy with it. Might be discontinued now, however.

The thought process for the purchase was that I wanted a standalone DAP without a touchscreen (iPod-esque), without wireless connectivity, with expandable storage, and not running Android. The M3K also has good Rockbox support including dual-boot, so I swap between that and the native Linux firmware at times.

I am considering getting a second device of some kind with Bluetooth because there are occasional but persistent times where it honestly would be nice. Ideally it'd still be running a pretty basic OS, though.

Thank you for pointing out that device.

I believe you are correct. I was only able to find a listing on Amazon for a used one of the M3K devices. Also found a listing on ebay.

I need a device with Bluetooth as my car doesn't have an auxiliary jack. Suppose that I could also make use of an low power FM transmitter also.

That seems reasonable. I did pick up an old colour screen CompaQ a number of years ago for nostalgia reasons but haven't really fiddled with it much yet. I really should..

What are some examples of 1920s tech that you use?

There's less the further back in time you go, of course, but a few 20s examples:

* Westinghouse desk fan. Tanky and moves a ton of air because it has essentially no grill, but I do have it on a kill switch to protect little fingers.

* As @zamnos mentioned, radio. I have several consumer receivers and amateur transmitters from the period. These fall less into the "best" category for obvious reasons, but are more for kids' historical context. I'm exploring arcane combos like a cassette player + tiny AM transmitter + antique radio. Sort of a [mono] stereo with a non-all-you-can-eat music library combined with experiencing the physicality of RF propagation. Also they have standard 1/4" headphone jacks!

* Many books around that age. Tom Swift, Oz, etc.

* A few kitchen gadgets like an electric waffle iron and a hand grinder (I do have modern ones too).

Probably not a television, but radio was first invented in the 1920s so possibly that.

I can't even find anything which works as the simple Palm "ToDo" application. No free ones at least. PalmOS had this developer requirement that nothing should take more than 3 clicks. I used the ToDo tool as a shopping list. I kept all my common groceries in that list and used a single tap to indicate that I was out of something, and a single tap when I bought something I was out of. Whatever I try to do on a phone is just too much hassle so I end up not using it. My old Tungsten T3 was easier in so many respects.

Strongly agree that so many more features lead to more friction and the tool becoming less useful. The original Palm devices were really awesome. Dedicated todo button, push it, and your todos instantly come up, one tap to drop down the category selection, and one more to select a category, and you're there.

The iPhone has historically been really bad at this, and even regressed. A year ago I had to wake the phone, point it at my face, wait a second, then go to the home screen, open the app, wait a couple of seconds, then navigate to where I wanted to.

Recently, lock screen widgets, shortcuts, and even some siri features have started to make this a little better.

I don't use non-smartphone PDAs anymore, but I really miss:

1. Their ability to do absolutely everything offline. No need to worry that I won't be able to access something because somewhere without data service

2. The ability to have all the PDA features at my fingertips without being hooked up to the world's biggest attention-killing distraction network.

3. For the "big 4" applications at least, the Palm was significantly faster and significantly more usable than anything I've seen on smartphones.

Also the “search entire device” feature. It used to be so easy to find something across contacts, calendar, and memos.

you just described an ordinary smartphone with wifi/data turned off.

I wish that were true, but unfortunately some apps do not seem to be designed well in the case of data being turned off.

They have a much better stand-by battery life on AAA batteries, and they are not as distracting because they are offline-first (or even offline-only, for the early models). Or, you can just use them if you find them neat (which I do). But ckz’s answer is a very good glance into the kind of mindset that I share for the most part as well.

I wish I could remember which phone it was, but there was something absolutely magical about using IrDA to connect a Palm to a cellphone and get a 56kbit Internet connection on the go. In my mind it was a Nokia 3310, but it seems those didn’t have IrDA.

In 2018, I read James M. Tabor's Blind Descent: The Quest to Discover the Deepest Cave on Earth (pub. 2010), which particularly focused on Bill Stone's and ALexander Klimchouk's respective explorations. (Contrary to perhaps popular understanding, as evidenced by an answer I saw on Quora that asserted that the temperature got hotter and hotter the farther Klimchouk's team descended in "their" cave, Stone's and Klimchouk's teams started out high in the mountains and temperatures were freezing throughout the descents; furthermore, Stone's and Klimchouk's deepest descents still ended above sea level. [The Quora question had something to do with digging deep into the earth.])

Anyway, this was the first I'd read much about caving and, in browsing around the web, I discovered that Palm Pilots were(/are?) used by serious cavers for mapping caves. Auriga (https://auriga.top/) was the most frequently referenced Palm app I saw; its latest update was in December 2022. Obvious advantages as I understand them are: (1) long battery life coupled with replaceable AAA batteries; (2) a display that can be read in low light without battery-draining backlighting. Phone and wi-fi are useless underground. (I vaguely recall reading somewhere that ~80Khz radios for use in caves were being developed; equally vague memory: I believe initial prototypes were based around audio amplifiers that happened to reach up into that frequency. Okay, a 2018 Hackaday has links to more information, although not about what I [mis]remembered: https://hackaday.com/2018/07/11/ham-designed-gear-used-in-th...)

Also, sometime I saw an article about automotive performance afficianados using a Palm App to interact with their engines' onboard computers -- in the PalmOS Emulator (POSE) on Windows laptops. Obviously they liked the app and I imagine they had a considerable intellectual investment (e.g., historical experimental settings and performance results, etc.) that made them loathe to switch to more modern apps.

But yeah. I cleaned the battery crud out of my Palm M105 last month, put fresh batteries in, and the digitizer is shot. So, back to my phone ... :)

Re. automotive, I've also heard there is/was an overlapping group of Palm + auto enthusiasts. Quite possibly they're using something like OBD Gauge: http://www.weidefamily.net/vanagon/Pending_Content/Engine_Co...

Getting that working up is on my to-do list. Today I use some Python scripts to read engine codes and such, but it's not like I always have my phone or laptop on me. :)

I see a lot of value in having the "smart" airgapped away from the modem

They don’t spy on you

This is just insane, and I'm completely blown away by the technical know-how (both depth and breadth) and flippant stuff like:

I also did not find any good emulators for Cortex-M class chips. At this point, I took a two-week-long break from this project to write CortexEmu. It is a fully functional Cortex-M0/M3/M23 emulator that faithfully emulates real Cortex hardware. It has a GDB stub so I can attach GDB to it to debug the running code, It has rudimentary hardware emulated to show a screen, and support an RTC, a console, and a touchscreen. It supports privileged and unprivileged mode, and emulates the memory protection unit (MPU) as well.

Also very interesting is the errata section on the STM32F429 errata section [1], that stuff is real gold for people who do advanced stuff on these chips. Very nice to see that published, I hope it gets picked up by search engines (or, better of course, ST themselves if that hasn't happened yet). There should be serious bug bounty for finding hardware errors like these!

[1]: http://dmitry.gr/?r=05.Projects&proj=27.%20rePalm#_TOC_7dc6f...

PalmOS was killed by its design mistakes and technical weaknesses.

16 bits memory limitation, even at the time that was silly.

Armlets? Extremely hard to write simple native code or to port apps and games from other platforms.

No file system, a custom and rather slow database instead…

But they had tons of documents on how to follow their UI/UX guidelines.

Basically, they had no real kernel upon which building an OS, they tried anyway and it was a mess of epic proportions.

Palm was killed by their inability to evolve the platform in the face of quantum leaps from other players -- but that same thing caught out pretty much every other mobile platform of the era.

In 2004, the Treo 650 was as good as it got. I LOVED mine, and there was really no other player in the market that could truly best it until Apple landed with the iPhone. (And I say this having sampled best-of-breed Windows Mobile stuff in that era -- the HTC hardware was slick, but WinMo was useless and incredibly dumb.)

RIM and Palm suffered the same kind of huge technical debt on the low-level kernel stuff.

They basically started with something very crude that barely did the job, and built stacks on top.

But they had nice frontends, nice hardware, especially the Sony Clié series was quite ahead of its time hardware wise.

RIM's sins were much more serious. Their devices were designed in a time when having the horsepower to actually run a mail client on them wasn't possible, and so they were dependent on an intermediate server.

Using a Blackberry in the absence of BES (and an Exchange server) was pretty weak sauce.

Palm, OTOH, had a real platform that worked on its own. My Treo could talk directly to my ISP's IMAP server, something Blackberries of the era couldn't do. My Treo made it easy to separate work and personal mail. My Treo's PIM apps were superior to the Blackberry's.

Also, you and I apparently had VERY different experiences with the Clie line. I had one. It was physically interesting but insanely fragile, and for SOME reason needed different sync software than Palm (or Handspring) branded Palms.

I was creating software (mostly games) for a wide range of handheld devices at the time.

When you're doing that you can quite easily get an idea of the weaknesses and strengths of the platform, and I can tell you that PalmOS was quite weak but almost OK at the very beginning but it quickly deteriorated and at the end they could simply not push it forward at all.

Sony did a good job considering, but they simply bet on the wrong horse.

To be honest, Android also started in a very weak state, not the same kind of mess that PalmOS was, but it was riddled with over-engineering and absurd design choices, but with a huge effort they managed to fix the worst parts and still push it forward.

I was surprised they could pull it off.

I never cared about mobile gaming in the era, so I can only go on what I used the device for: communication and personal information management. PalmOS was good at those things.

To be fair to Sony, there wasn't really any other horse to bet on in that era. The problem was their hardware was fragile vs. Palm or Handspring devices.

Symbian and WinCE were relatively strong competitors.

And there was an attempt at Linux + Qt made by Sharp with the Zaurus and Qtopia.

Er, no.

Symbian had some presence via Nokia devices, but was kinda an also-ran in the US in terms of actual viable smartphone platforms.

WinCE and WinMo were gawdawful and unusable unless you were just really, really drinking the Redmond Kool-Aid.

(Amusingly, if you Google "symbian" now the first link is for a thing that is absolutely not related to smartphones, but which uses a name that is "symbian" without the "m". NSFW.)

Symbian was a contender in Europe, many mobile gaming companies in Europe started on this Platform, especially in Finland/UK. Remember the Ngage?

It was nothing compared to what came later, but if you were in this business at that time, Symbian was a thing.

Yeah, my bias is definitely US, since that’s where I live. Symbian devices were very very few and far between for us.

> the HTC hardware was slick, but WinMo was useless and incredibly dumb

You’re not kidding. I had a HTC HD2 and the hardware was very futuristic-feeling (one of the first phones with the original Qualcomm Snapdragon, and a “huge” 4.3” screen that my friends gently mocked for being ridiculously large), but the software experience was leagues behind iOS and Android, despite they themselves being in relative infancy. It would have been pretty nice if it got an update to Windows Phone 7, which was promised but never came.

HTC’s own customisations were the worst part. Their flashy animated home screen was very nice, but the iOS-style threaded SMS app couldn’t deal with threads longer than about 300 messages and would routinely lock up the phone for minutes at a time until you deleted your conversation history.

In the years after I got rid of it people continued to port newer versions of Android to it, but I just remember it being shit at texting and browsing the web—the only things I actually wanted it for.

My HTC was branded an 8525 by AT&T. I think that means it was a Tytn in other markets.

When it was introduced, there was no iOS yet. And even so, it sucked out loud compared to the 800 pound gorillas of the era, Palm and (in full deployments) Blackberry. WinMo was SO DUMB. I remember discovering the hard way that if you left the browser in the foreground, on-page refresh directives (like CNN used to use) would still be honored even if the device's screen was off. Result? Dead battery in no time.

WinMo also had no way to deal with IMAP mail natively. It was Exchange or POP unless you bought an aftermarket mail client.

True fact: I actually didn't text much until I got an iPhone, so I can't speak to texting on the 8525. I think lots of people my age only came to texting later, whereas if you're like 10 years younger than I am (say, born in 1980 instead of 1970) you probably texted on flip phones in high school or whatever.

IMHO Palm was killed by endless M&A activity and other finance shenanigans, which resulted in a lack of long term focus and stability to migrate from the original cramped architecture.

And then iphone's multitouch UI drove the final nail.

I had three different palm phones (a Palm and two Kyoceras) and a WindowsCE based MDA before I got my first modern smartphone (A Tmobile G1). I think the final nail was simple hubris. Everyone thought their established market position and share would be enough to defend. The iPhone wasn't viewed as a PDA by most incumbents... it was a weird iPod phone targeting consumers. Android was starting at zero, and I think there was a lot of belief that Palm, RIM and Microsoft would have something way better once their touch screen options came out. A lot of that belief was fueled by the importance of enterprise groupware to corporate buyers at the time. I remember having developer reps from Palm and MS try to talk us (I owned a small dev shop at the time) out of looking at Android and iOS because the next version was going to kill them both.

It turned out easier to use, cloud services (Google apps, iCloud), maps+GPS (G1 had it, iPhone had it soon after), and much better media player features were simply more desirable than enterprise groupware. It also turned out that as cell phone usage normalized, a lot of employers stopped providing cell phones to employees... mostly driven by unlimited talk+text+internet plans... which really favored the non-enterprise-y Androids and iPhones.

Yet somehow using it was far more pleasurable than Pocket PC. I could certainly do more things with my beastly 640x480 624mhz ipaq, but everything about the UX was better on Palm. Apps saved state automatically. I didn't have to open a start menu to launch something and I didn't have to open two menus and manually close them because Windows Mobile doesn't close anything when you hit the X button. The buttons, d-pads, and styli all felt better, and the screen didn't waste 20% of its real estate with two giant useless buttons across the bottom of every app.

Yeah, it's a shame, Microsoft had the better kernel and SDK (by a long shot) but their UX was crude and relied too much on old Windows paradigms.

They should have kept the kernel and ditched the Shell to build something tailored for the form factor and usage.

They're still addicted to marketing-first design. Imagine what users before 20110 would say if you told them every PC now comes with a splash screen that doesn't do anything that you have click past to then get to the login screen.

Bad developer experience might have contributed but I think the primary cause was the same as what killed Windows Mobile and Symbian: The iPhone reset the bar for user experience and at the same time Apple changed handset + app distribution models, Palm failed to meet the situation. Google figured it out, scrapped the Android UX, and managed to be #2. With the high per-platform cost of mobile dev there's apparently not room for more than two so even Microsoft couldn't catch up.

PalmOS was already dead when the iPhone was launched.

In fact most players had divested the market at this stage. The PocketPC team was a skeleton and Symbian was being eaten from inside by competing internal projects.

Apple had a highway.

>PalmOS was already dead when the iPhone was launched.

It was declining but not dead. Palm's swan song, Palm Centro, released in 2007, was a big success. They sold at least 2 million units[1]. According to AdMob, in terms of web traffic, at some point it was the second most popular smartphone in the US (7th worldwide)[2].

[1] - https://web.archive.org/web/20080805094357/http://blog.palm....

[2] - https://web.archive.org/web/20080913073944/http://www.admob....

Exactly, good brand and decent market position making the situation potentially salvageable with better strategy. Look at Apple around ten years earlier, classic MacOS and the beige boxes and a business bleeding cash. Palm has the Pre on the way, that was a really nice device but delivered too late and without a good enough app strategy.

All of that and also a lack of a compelling mass market story. I bought a couple of them and enjoyed playing with them, but they weren’t better-enough to change my habits.

Canadianfella's reply is dead so I'll reply here.

Eventually Symbian (sp?) was better and when Sony killed their Zire division I just have Palm Treo one last chance. It was a bit laggy and the battery didn't last long enough.

I always wanted to give Zaurus a try, but the Linux ones not the Palm ones.

Symbian OS was much better engineered than PalmOS, but was nevertheless full of idiosyncrasies. They had a very short stack limit that created tons of bugs and it was not possible to build software without their own customized toolchain that disallowed some standards C/C++ stuff such as static variables.

The best kernel at the time was WinCE, good old Win32 API with basic POSIX capabilities for networking, filesystem and memory management.

Microsoft had a winner platform on their lap, but for some reason they invested very little on the platform, I remember talking with someone on the PocketPC team at the time and they were less than twelve developers, and shrinking.

It was the same era when Intel stopped all their investments on the ARM architecture after successfully building the most impressive one at the time (the StrongARM followed by the XScale)

WinCE was nice in terms of kernel but it was really begging for a decent UI. Palm and Psion did have that part covered.

Better than what? What was the competition back then?

Day planner, paper, hipster pda: https://www.43folders.com/2004/09/03/introducing-the-hipster... [edit, another e.g.]

People have kept day planners and contact books since forever. Just being electronic isn’t enough of a value prop.

They copied all those mistakes from the Mac, even though by that time Apple already knew those decisions were mistakes.

> PalmOS was killed by its design mistakes and technical weaknesses.

You're not wrong, but this skips over an even bigger mistake. Arguably 2 in fact.

The kernel of the original 68K PalmOS was, I believe, bought in, just as Apple bought in a Pixo OS for the iPod:


PalmOS ran on top of the AMX 68000 RTOS kernel from Kadak:


When Palm moved to ARM chips, it chose not to licence the Arm version of AMX from Kadak. It considered adopting the Symbian kernel:


... but in the end the deal didn't happen.

This was a huge mistake. Symbian was already the smartphone leader and supported multiprocessors, multimedia, and all sorts of fancy features, while being smaller and far less resource-hungry than contemporary rivals such as WinCE or the then-huge Linux. Symbian originally shipped on a circa 8MHz Arm device with 8MB of RAM and no swap: full GUI, full multitasking, Internet stack, etc. No Linux could run usefully on that level of kit.

Symbian already supported GSM phone stacks, Bluetooth, Wifi, all that stuff. It also supported pluggable UI layers, and had about 3 or 4 on sale at its peak: UIQ, a stylus- or touchscreen-driven UI from Japan for keyboardless phones; Series 60, for keypad-driven phones; Series 80, for landscape-orientation touchscreen phones; Series 90, for QWERTY-keyboard-driven PDAs. Adding another for Palm, with a Palm UI and Graffiti, would not have been a stretch.

It would have been a great fit.

Palm decided to write its own instead. Probably it was cheaper. Probably as Palm was mainly American it didn't appreciate that there were tens of millions of happy European and Japanese users with Symbian smartphones that they loved. I was using 32-bit Arm-powered smart devices with the Symbian kernel a decade before the iPhone, and ones running the direct ancestor of Symbian in the early 1990s.

This was commercial suicide #1.

Palm had no multitasking, little media support, and a single-tasking 68000 OS ported to Arm. It was very uncompetitive, but it's all Palm owners knew so they thought it was fine and liked it.

But it did have a comeback attempt.

Palm ended up under the same ownership as Be and the core BeOS team, and it eventually came up with an in-house multitasking media-enabled networked PalmOS, based on BeOS tech, called Cobalt:


This was commercial suicide #2.

Cobalt looked good but it was too little too late and as far as I know it never shipped on a single retail device.

As an aside, I would love a brand new Palm device, with modern tech it could be obscenely tiny and have good battery life.

Palm devices had physical buttons, one of which immediately (0 perceivable lag) opened a todo list

When I used to be have a palm, anytime I was feeling idle I'd pull out my palm and press the Todo list button and see what was next on my schedule. It was literally life changing and every smart device since is a laggy piece of shit when it comes to physical Todo lists.

The Samsung Note series could have been great if it allows for replacing the lock screen with a Todo list that you can interact with, but no, the Note cannot be used as a fucking note pad.

I once burst into the office of the PM in charge of the Tasks ui for Windows Mobile and asked him why we did such a shitty job, but because he had never used a palm before, he didn't even realize what we were shipping was garbage.


For people that do these kinds of projects, I always wonder how much progress is getting made in an average night of poking around. I'm only able to make big leaps on things by just eating up evenings. Are some people just really good at picking things up and making progress?

I don't claim to be in the same league as OP but I can tell you from my experience. I have a demanding job (CTO of Cloudflare) and I have a partner with whom I like to spend time.

One of the projects I am currently working on is restoring an IBM ThinkPad 701CS (https://blog.jgc.org/2023/03/repairing-tiny-ribbon-cable-ins...) which has required a total teardown and rebuild. I started this project in early January and currently have a working machine that's in parts. I work on this when I have time. Which might be for two or three hours a week maximum. Basically, I decided to get satisfaction from small improvements. So, one time when working on this I just cleaned up the battery contacts, another time I replaced the CMOS battery and saw that it was retaining RAM size, another time I repaired the keyboard, another time I just sat down and figured out which parts of the case I needed to 3D print to replace, etc. etc.

I usually have two to three projects ongoing and just pick them up when I have time and inclination.

This is great advice. I also try to make incremental gains in projects as it is the one way I’ve experienced consistent progress. This includes things like learning handstands as a project. A little bit of forward progress is better than no progress. I’ve heard it said it’s like putting pennies (or similar currency) into a savings account. It never seems like much but over time it adds up. The hardest thing for me was recognizing the value in those pennies. Ego, insecurity, etc want the big cathartic jump in progress.

I read that article when it was published, very cool. I was wondering, if the grafting failed could you replace the ribbon with something standard e.g. from mouser/digikey?

> I have a demanding job (CTO of Cloudflare)

Please use your influence to bring sturdy, repairable laptops with great keyboards back! I'd buy a cloudflare branded thinkpad clone.

Buy a Framework laptop?

Doesn't ship to Greece. (yet). Also the keyboard is less than ideal.

I quite like the keyboard, but then again I'm not very picky with keyboards. I got mine reshipped from Germany, so that's a route you can go.

If you want a repairable laptop with a good keyboard, getting a Framework now gets you much closer than hoping someone makes one. Also, you enable and encourage the company that already makes a repairable laptop to eventually sell a great keyboard, which giving your money to Apple or Dell doesn't do.

I will wait a bit more in case they expand their shipping.

What do you think of the monitor by the way? Does it compare to e.g. a Macbook even a little bit?

I really like the laptop in general, but, again, I'm not very picky. I have an old MacBook Air and the Framework's monitor is just as good (though much higher res). My only issue is that it's a little dim in sunlight.

Also, obviously Intel can't compare to an M1, but I hope the new AMD processors will improve on that somehow.

I work on my projects the same way. Enjoy the little wins when I get them; put it down in favor of another project for a while if I get bored.

I started work on this in 2018. It’s been five years. A few projects (side-quests) came out of this one, like m0FaultDispatch and the PIP diss play driver discussed here yesterday. On an average night, not really any progress. Long weekends and long plane rides do produce more progress.

According to the main page of the linked article, this RePalm project has been ongoing since at least Dec 30 2018. How often and how much the author works on this particular project at a time I don’t know. But from this I think it is safe to assume that it takes time, and perseverance above all is key. Probably.

Some people are better than others. If you are single with no kids that leaves a lot of time. If you have a relationship that takes time (assuming you want to maintain it), and kids are a large time sink (well worth it, but not if you count time or money). Of course different relationships have different needs. And different people have different budgets, if you are born rich maybe you don't need to work and so this isn't an evening hobby. Retired people also have more time for projects like this.

If you make it a point though most everyone can find an hour every day to do something like this despite the above. However for most of us it is easier to turn on the TV/youtube/read books/.... Even the more productive things like learn a foreign language, politically support a candidate, and the like. There is lots of competition for your limited time and most people won't make projects like this a priority. Some of the things above are worth doing on their own, some are just a waste of time. (though if you are nearly burned out you probably don't have the energy to spend on more than TV)

I'm working on a few of these kinds of projects and progress is highly variable. Some days, I might only get a few lines of code done. Hardly enough to make a difference but then other nights, in maybe the same amount time, I'll build out some massive subsystem.

I think big progress will eat up an evening but I think the important point is that it's not a job -- so when it eats up an evening it should be fun and when you've not other important/interesting things to do. I almost never know when I'm going to make progress when I start.

Amazing project, one that will seemingly go on for the foreseeable future. This is quite a labor of love, and it shows. It is very interesting to see the bifuracted comments: either but why (these are the people, probably mostly younger who just don't see the point) or PalmOS-based were so cool (cleaner, simpler, etc). I think Dmitri's project makes clear that there was a huge difference between the experience of PalmOS as products and the way they were created as software and hardware. Yes, many of the shortcuts and hacky looking design decisions taken 20+ years ago seem inexplicable today. Many were made based on the constraints of the time (supply chain, expertise on the team, bloodymindedness, etc) but ultimately the biggest driver was a great PDA experience, more a portable, always on digital replacement for paper that could do several things well, rather than everything you could imagine. Great ideas for power management, sophisticated kernel not so much.

As much as I love retro stuff I see no point in reviving Palm. It's like bringing back MS-DOS, perhaps you have something ready made for that environment and you want to use it as is because you don't want to relearn some newer interface. That's ok, it can be done with emulation. But other than that why would you want to impose yourself a bunch of anachronistic limitations?

For context dmitry was a bit of a legend back wen palm was alive. His patches fixed a bunch of stuff palm never bothered to. His apps were top notch and pushed the limit on what was possible in palmOS.

So, in a way, im not surprised he’s done something like this. A work of ¿love? ¿Art?. A testament of deeply knowing the object of his passion.

Take a look at his code and admire it for what it is. Read how he explains it. It’s worthy on its own.

> As much as I love retro stuff I see no point in reviving Palm.

I see a big opportunity should rePalm be ported to generic low cost embedded hardware. ESP32(|ARM|Risc-V) board+LCD+LTE module, all costing a dozen bucks each or less, would make the basis for a powerful dumbphone for when manufacturers will cease any production of them. I would personally love to have such a device.

Broadly speaking, PalmOS had filesystems, networking, graphics and interface controls, sound, hardware access and more. Who cares if I can't watch high resolution movies or play AAA games with it, the goal should rather be to use it to do things where Linux is not only overkill but also would require hardware that cost a lot more. Forget about phones and PDAs, if I want to build an I/O panel with buttons and display for some instrument, a light OS like this one could help to lower costs by doing it on much cheaper hardware.

For that matter, why revive any older tech, like record players, wrist watches, and fountain pens? The simple answer is that people like the simplicity and retro feel of those old devices.

Over 13 years ago I wrote an online tool (palm2csv.com) that converts Palm Datebook (Calendar) and To Do (Tasks) to CSV and iCal/ICS format. To this day people continue to use it and email me with stories of how they love Palm Desktop and their Palm device, and are reluctant to give it up in exchange for a modern phone.

why would you bother with the overhead to make it Palm-compatible though? at most, an emulation subsystem might make sense, but having all things including new development run in a Palm-compatible system right now makes no sense.

Note that it wouldn't even be a dumbphone by definition if it has an OS running arbitrarily installed software on it.

> why would you bother with the overhead to make it Palm-compatible though

Not having to design and explain API is a plus

yes, then you go for the subsystem route as in MacOS Classic or Win32

perhaps worth a shot but I seriously doubt the compatibility is going to be worth enough for enough people, instead of just running an emulator

FWIW, there was an arm-native video player for the T5, and I was able to watch mpeg4/divx encoded movies on it.

> can be done with emulation

Funny you should say that. There WAS no emulator for any ARM palm devices. Ever. Until I wrote the only one: https://github.com/uARM-Palm/uARM

Well, that does make sense.

It wasn't a slight at you. I appreciate good work and also recreational computing. But is reviving Palm a practical endeavour? Nope, sorry.

The emulator is a good idea for whatever abandonware people might want to use. I might try it myself.

Art can be worthwhile for its own sake, no?

This has more value to more people than a painting of an apple, I'd guess. I don't see much point in either of them myself; but I don't have to. I can see the point in them in that they gave their creator joy while making them and even more in that others can appreciate them, even if i can't.

FreeDOS brought MS-DOS back from the dead. Was it useless? In my opinion, far from it.

Yes, Palm is useless and archaic of networked features are your #1 use case for a PDA (smartphone) and there’s little use reviving it. However, if you care about old Palm games, or about efficiently organising your life with minimum distractions, then IMO not many modern devices will beat a Palm OS device.

Analogously to MS-DOS, there is a huge application base that you can dip into for most tasks that don’t require online access, that can still be used today. The UI is miles ahead of both iOS and Android, IMO (in both responsiveness and look-and-feel), if you are willing to work within its limitations (that include using a stylus). Dmitry is even working on Unicode support.

I’m glad that RePalm exists. If it didn’t, all we’d be left with is emulators and devices that are starting to fall apart.

FreeDOS is exactly what I was describing. Makes sense to use that old software, but not to actually develop for these days. Because you'd be imposing weird anachronistic restrictions on yourself for no good reason.

> imposing weird anachronistic restrictions on yourself for no good reason

It's worth noting that this also describes virtually all poetry, the rules of all sports, etc. :)

> Because you'd be imposing weird anachronistic restrictions on yourself for no good reason.

Learning to count every byte has value today too, and this is practice in that skill

The C64 demo scene is still alive and well today. Restrictions sometimes are the point.

yea for recreational computing

nobody is trying to bring back C64 compatibility as a practical platform though, they are working on emulators and in the legacy machines themselves

I love the C64 demo scene myself, it was my main introduction to computing back in the day

I had the interesting experience to work at Palm in the early 2000's on a project that was to compete with the Blackberry.

Needless to say, it never saw the light of day but I still remember that we had to ask the PalmOS engineering group to create a hardware layer thread so that we could do network I/O in parallel with running the user app.

It was an enormously challenging platform to work with.

Great writeup. For those interested in the subject there is also PumpkinOS (https://github.com/migueletto/PumpkinOS) with accompanying blog posts going in to details.

This project has some of the most satisfying deep yak shaves of any hobby project I know, to the point of writing a custom kernel, JIT compiler, and CPU fault emulator.

> Most people would not take on a task of writing a just-in-time translator alone. But that is just because they are wimps :) (Or maybe they reasonably assume that it is a huge time sink with more corner cases than one could shake a stick at)

The linked article's title is pretty open-ended, so I looked at it with just a scintilla of hope that it might include a Graffiti emulator for iOS devices, especially iPad with Apple Pencil. Sadly, no joy.

Wrapping grafiti.prc into the bare minimum PalmOS api it would need to run isn’t hard. A few years back I made a wrapper for it that ran on Android Wear. But due to my employment I am pretty sure publishing anything for iOS would be a no-no

I've been wishing for a computing reboot using low power MCUs such as the RPI 2040 and the ESP-32 and much simpler OSes. Projects like this one give me hope.

Basically can we create a secure computing & networking stack from scratch that can work on these devices, and build a useful ecosystem around it? For example the Gemini protocol could be a great starting point for an internet-like connected experience.

One can always dream. In the mean time, thank you for doing the Lord's work Dmitry!

This is really awesome work! Thank you for sharing, and good luck for what’s ahead. Several source files are referenced through the post (emu.c, emuC.c, emuJit.c, patchpace.c, etc.), but I could not find them. Where can these be accessed please?

> To start with, Linux kernel lacks some API that PalmOS simply needs, for example ability to disable and re-enable task switching. Yup... PalmOS sometimes asks for preemption to be disabled.

The POSIX port of FreeRTOS (FreeRTOS running on top of Pthreads) has a way to emulate this behavior. All tasks are threads and all but one stays suspended at any given time. The FreeRTOS scheduler can switch out which task is allowed to run by sending signals to their respective thread. This allows the tasks to operate as if the FreeRTOS scheduler is in control as normal and the Linux scheduler only has an opportunity to run the one thread flagged by the signalling mechanism.

This is amazing. I would leap at the chance to build a simple palm device with a 3D printed case, modern hardware that lasts an absolute eternity.

Working on it. Standby. Sadly might be months. Hobby project takes back seat to job and life…

What a teaser! Can't wait to see it. Anything you can share right now about what you are building?

I wired up higher density screen support into the OS's blitter, so a modern very-hi-dpi screen with smooth fonts works. Utf8 support is a work in progress (palm did not have it). Modern wifi is easily provided by an ESP32, and a modern-ish browser engine is being ported (slowly)

Same here. I can still write Graffiti without thinking, and something I could use as a notepad would be great.

Could something like this be implemented as an iOS keyboard, I wonder?

It was. Amazingly enough, there was one that did that, but it's gone.

I get mocked for using Sigma instead of E. :-)

This is amazing! I’m super excited. I loved PalmOS.

I lack the wherewithal to do anything more than to appreciate the sheer scope in the most general terms, but nostalgia is kicking in quite hard.


I'm with you on the nostalgia kick. What Palm did you have? I had a Palm IIIe SE in high school, didn't use it for much except sending sub7 to anything with an IR port and play dope wars, but still my fav computer I've ever owned.

The IR port could be used for remote control level interactions with a LEGO Mindstorms RCX. That was a major use case for my high school handspring.

Possibly silly question. Why go through the trouble of emulating the ARM mode on Thumb instead of running the emulator on ARM Linux but with own userspace scheduler that implements the necessary features? I don't really know how to go about preemption, but that should have still been much easier than doing all that he did.

Because there aren’t any stable arm Linux boards that are small and documented. data sheets are under NDA. And please don’t mention rPi. I’ve never seen one with uptimes in the years. They randomly kernel panic once a month no matter what they do

Initially when I started I did run it under arm Linux on a Chromebook

Way back in about 2001, I developed a text messaging (sms) and phone book management app for palmOS. I bought an m505 and a new fangled Bluetooth adapter. For the time it seemed revolutionary to be able to sync to a phone in your pocket without having to align IR ports

Slightly OT but what is the display type in the Sony Clié shown in the IMG_4158.MOV video in the project gallery?

That is exactly the display type I would love to be able to use for a bit of typing up while sitting outside in the sun.

Transflective lcd

It is both transmissive and reflective. With back light, light goes through it. Without backlight, light is reflected off of

I think that porting WinCE in the same manner would be more promising.

That OS had was really a solid foundation, I have no idea why MS abandoned the project. To make modern UI layer on top of it and it may fly.

From my experience "WinCE" and "solid" doesn't really belong in the same sentence. It felt like hodgepodge of various pieces outsourced to lowest bidder, with atrocious documentation. I don't know, maybe it was late stage decline and it was actually better in early versions (I only used WEC7). Why would they want to keep developing this instead of migrating to NT?

Do it. sounds cool!

I did UI part of it.

Up until last year my Sciter ( https://sciter.com ) worked on WinCE.

Dropped support after my last customer that was using WinCE decided to drop support of that OS.

WinCE had pretty solid and stable core runtime and API. Graphics was limited by GDI (no antialiasing and alpha channel) but that was the only major problem.

It would be interesting to run this on a e-ink device one day. I'm pretty sure there are some android e-ink devices that might be up to the task.

Long article. What is it about?

Don't see any intro or summary. Just "history" and then diving straight into the details.

Really fascinating...General question: Is this an example of the type of tech job that users of LLMs will find way more difficult than average coding jobs?

(Seems this particular example doesn't equate to a paid job but there are certainly analogs in the career world)

Dmitry was a palmos hacker back in the beginning of 2Ks

Beyond impressed.


I hesitated to post the same question but guess the answer would be: "Why not?"

That's usually the answer. Kennedy said it best: "We choose to go to the Moon in this decade and do the other things, not because they are easy, but because they are hard"

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact