LockerGnomeTech news and nostalgia for today's technology professionals
Subscribe

Search

Software

A Python smartwatch’s free RAM rose from 7.1 to 12.4 KB after filesystem work

A wasp-os revival also repairs flashing and recovery, while moving the little watch toward mainline MicroPython.

Chris in metal filigree, opening the back of a small smartwatch with tweezers
Illustration: LockerGnome

Four kilobytes can be a home renovation when the whole application budget fits in a rounding error. Michiel’s PineTime smartwatch had 7.1 KB free at boot. His wasp-os revival brought that to 12.4 KB, with filesystem work removing a permanent 4 KB buffer. The watch finally had a little time and space.

The developer’s account describes a device with 64 KB of RAM in total. Bluetooth and MicroPython take their shares before an application gets a turn. That makes a few recovered kilobytes directly relevant to what the watch can run. A desktop can misplace that amount of memory between two icons; this machine needs it back before lunch.

The filesystem fix aligned it with the external flash chip’s actual 4 KB blocks. The account credits that change with eliminating the standing buffer. The reported free-memory increase is 5.3 KB, so assigning every recovered byte to the 4 KB buffer alone would overstate what the description establishes. The full revival changed several things, and the two before-and-after totals belong to that broader result.

The watch runs wasp-os, a MicroPython-based alternative to its original InfiniTime firmware. Michiel found wasp-os difficult to build and tied to a 2019 MicroPython fork. Reviving it meant work on the foundations, rather than merely writing a new face and hoping the old layers would keep behaving. A stylish clock is much less fun when updating it feels like archaeology.

The account describes faster Bluetooth flashing, visible errors when flashing fails, a watchdog for hangs and fixes to touch and vibration behavior. Those are ordinary device functions until one breaks. A motor that keeps buzzing after a swipe is a very persuasive argument that recovery code belongs in the feature list.

A flat battery exposed another failure. A chip had left the I2C bus stuck, so a recharge ended at a hardware-initialization error. The revived software attempts to unstick that bus at startup and reports the actual error if something still fails. The charger should restore a watch, not promote its owner to an unpaid bus mechanic.

Upstream work matters too. Michiel says three MicroPython changes were merged, allowing wasp-os to use mainline MicroPython without keeping its own fork. The post describes their target release as planned, rather than already released. That distinction leaves room for the release process to finish while explaining why fewer private patches could make future maintenance less awkward.

The November 2 update adds a human consequence: the original maintainer invited him to help maintain wasp-os, and he accepted. The post’s short version is, “I’m the new maintainer!” The recovered memory is therefore part of a project coming back to life, with a person taking responsibility for the next release.

Someone considering a PineTime experiment could begin by checking the firmware branch, supported update path and recovery process before flashing. The next concrete milestone in the account is a new release after a long gap. A few kilobytes have found a second career; the software still has a release to make.

The second hand got a second chance.

Orange links with a double underline go to Amazon. As an Amazon Associate, LockerGnome earns from qualifying purchases.

More Software

Every Software story →