12 ms·
RePalm
- voxadam 4y agoRecently related: https://news.ycombinator.com/item?id=35507933 https://news.ycombinator.com/item?id=35507933
- T3OU-736 4y agoI 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. Bravo!
- neom 4y agoI'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.
- mikepurvis 4y agoThe 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.
- bioemerl 4y agoThis 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.
- dmitrygr 4y agoWorking on it. Standby. Sadly might be months. Hobby project takes back seat to job and life…
- e-_pusher 4y agoWhat a teaser! Can't wait to see it. Anything you can share right now about what you are building?
- dmitrygr 4y agoI 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)
- rcarmo 4y agoSame here. I can still write Graffiti without thinking, and something I could use as a notepad would be great.
- rtpg 4y agoFor 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?
- codetrotter 4y agoAccording 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.
- bluGill 4y agoSome 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)
- jgrahamc 4y agoI 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-inside-28.html 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.
- ckz 4y agoSide 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.
- walterbell 4y agoIs there a recommended Palm device for modern use? What software do you use on Linux/Mac/Windows to sync the PDA?
- Cosi1125 4y agohttp://www.jpilot.org/ http://www.jpilot.org/
- throwawayapples 4y agotake 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.
- ckz 4y agoPalm Desktop still works fine today on modern Windows, just have to grab USB drivers: https://palmdb.net/help/hotsync-setup 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.
- user3939382 4y agoThis is amazing! I’m super excited. I loved PalmOS.
- erkkonet 4y agoGreat writeup. For those interested in the subject there is also PumpkinOS (https://github.com/migueletto/PumpkinOS https://github.com/migueletto/PumpkinOS) with accompanying blog posts going in to details.
- gjmacd 4y ago[flagged]
- pantulis 4y agoI hesitated to post the same question but guess the answer would be: "Why not?"
- eddieroger 4y agoThat'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"
- jjulius 4y ago[flagged]
- deleted 4y ago[deleted]
- stephc_int13 4y agoPalmOS 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.
- lproven 4y ago> 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: https://apple.fandom.com/wiki/Pixo https://apple.fandom.com/wiki/Pixo PalmOS ran on top of the AMX 68000 RTOS kernel from Kadak: http://www.kadak.com/rtos/rtos.htm http://www.kadak.com/rtos/rtos.htm When Palm moved to ARM chips, it chose not to licence the Arm version of AMX from Kadak. It considered adopting the Symbian kernel: https://www.theregister.com/1999/10/13/ms_out_in_cold_as/ https://www.theregister.com/1999/10/13/ms_out_in_cold_as/ ... 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: https://www.palmsource.com/palmos/cobalt.html https://www.palmsource.com/palmos/cobalt.html 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.
- markb139 4y agoWay 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
- njacobs5074 4y agoI 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.
- muyuu 4y agoAs 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?
- zubiaur 4y agoFor 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.
- dmitrygr 4y ago> 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 https://github.com/uARM-Palm/uARM
- muyuu 4y agoWell, 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.
- h2odragon 4y agoArt 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.
- selfhoster11 4y ago
- troad 4y agoThis 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.
- doublerabbit 4y agoI 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.
- nerdponx 4y agoThis 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.
- ghodith 4y agoFunny, 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.
- nerdponx 4y agoI 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.
- dctoedt 4y agoThe 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.
- dmitrygr 4y agoWrapping 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
- tantalor 4y agoLong article. What is it about? Don't see any intro or summary. Just "history" and then diving straight into the details.
- c-smile 4y agoI 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.
- dmitrygr 4y agoDo it. sounds cool!
- c-smile 4y agoI did UI part of it. Up until last year my Sciter ( https://sciter.com 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.
- garaetjjte 4y agoFrom 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?
- themodelplumber 4y agoReally 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)
- HALtheWise 4y agoThis 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)
- devbent 4y agoAs 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. Ugh.
- vrglvrglvrgl 4y ago[dead]
- iseanstevens 4y agoBeyond impressed.
- billiam 4y agoAmazing 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.
- omneity 4y agoI'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!
- kevin_thibedeau 4y ago> 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.
- grishka 4y agoPossibly 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.
- dmitrygr 4y agoBecause 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
- notgettingit 4y agoThis 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?
- DoingIsLearning 4y agoSlightly 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.
- dmitrygr 4y agoTransflective lcd It is both transmissive and reflective. With back light, light goes through it. Without backlight, light is reflected off of
- unwind 4y agoThis 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_7dc6f1c77b85c0e75518885955ed41e3 http://dmitry.gr/?r=05.Projects&proj=27.%20rePalm#_TOC_7dc6f...
- pulketo 4y agoDmitry was a palmos hacker back in the beginning of 2Ks
- j45 4y agoIt 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.