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

[a] Kelbot's post

Proxied content from gemini://gem.rmgr.dev/blog/2021-10-05-first-steps-towards-an-open-pda.gmi (external content)

Gemini request details:

Original URL
gemini://gem.rmgr.dev/blog/2021-10-05-first-steps-towards-an-open-pda.gmi
Status code
Success
Meta
text/gemini
Proxied by
kineto

Be advised that no attempt was made to verify the remote SSL certificate.