First steps towards an open PDA
On the Fediverse and also in Geminispace there's been a lot of chatter around people restoring 20 year old Palm Pilots. The advantage of a Palm Pilot over an iPhone is that the Palm Pilot cannot connect to the internet and is thus incapable of updating on you and breaking, as well as being designed with the user experience in mind instead of how the manufacturer can keep their hooks in you and make it too hard to leave.
Kelbot[a] lamented that there isn't an open source, offline-first PDA available and that piqued my interest.
Who better to try and fill that hardware gap than someone who only barely knows how to solder?
I've got an ESP32-CAM on my desk that I've lost the CAM for so I decided to start with what I'm good at and got stuck in messing with software.
Python tends to be my weapon of choice when it comes to stupid ideas so I decided to install Micropython on the ESP32. This gives me a a nice Python REPL/shell to play with.
My current theory is that I'll write a launcher script which will handle mounting an SD card and enumerating /sd/apps for python files and display those as a menu. The scripts will be executed with exec(path/to/script) and will be responsible for their own rendering and stuff.
On the UI side, it looks like LVGL will be my best bet. It seems fairly powerful, has micropython bindings, is MIT licensed and even has an on-screen keyboard built in out of the box.
Next step is to start building something with a display so to that end I have ordered a cheap LCD touchscreen from Aliexpress so now I have to wait for it's delivery some time between now and the heat death of the universe.
Goals of the PDA Project
- Build it with easily accessible parts.
- All software should be designed to be offline first. The launcher should be designed to kill internet connections when applications close. If an application can connect to the internet, it should connect, download what it needs and then disconnect again.
- All data should be stored as JSON. Python works well with JSON and it's easily readable to humans as well.
- The device really needs a freakin sweet cradle because syncing cradles are rad and should make a comeback.
[a] Kelbot's post