Settings

Theme

MicroPython Smartwatch

tolidano.com

49 points by tolidano · 13 comments

Reader

5 threads
Scene_Cast2

I tried micropython on an ESP32-S3. On one hand, it's just amazing in a lot of regards. Writing BT with aioble is a breeze (can't say that about ESP-IDF). On the other hand, it's limited. No dual core support, no hardware interrupts, no enums... Dual core support is needed for anything real time at multi-kHz together with BT (BT takes over the core for about half a millisecond when sending anything).

The saving grace is that modifying or adding functionality to micropython is pretty straight forward. It's just a FreeRTOS app, the organization is intuitive, the code is fairly short. Anything performance heavy can be written in C and called from micropython (same idea as torch or numpy).

  • blt

    no hardware interrupts? that seems like a big limitation for a microcontroller environment.

    • jononor

      MicroPython supports interrupts. But on some platform, like ESP32, the callback is scheduled. Preemption is still used, but it adds some microseconds and the delay is a bit variable. So it will work for some things, like reacting to a interrupt from an I2C sensor etc, or button push. But probably not good enough for a high speed protocol (so better use peripherals for that, like RMT in ESP32).

    • Scene_Cast2

      It only supports hardware interrupts on some platforms, with some pretty hefty limitations (not being able to allocate memory means that a lot of Python stuff is unavailable). I timed the "soft interrupts", those triggered within 80 or so microseconds IIRC.

bdcravens

I actually bought a PineTime referenced in the article, but it ended up going in a box and I never ended up tinkering

anigbrowl

Useful info, but I'm not too clear on why you need to flash the watch from a phone as opposed to from your development machine. It was hard to filter out the technical information from the irrelevant asides.

csmeyer

I loved programming for Pebble back in the day. They actually had a pretty nice in browser IDE and IIRC their APIs were fairly well documented.

I remember making watch face bitmaps with paint!

qup

These things have a microphone? Can I capture an audio file?

  • jononor

    No microphone on the PineTime. The Lilygo T Watch S3 does have microphone. Right now the PDM protocol is not supported in mainline MicroPython though, but I hope that will change soon. And 16 MB of FLASH limits how much audio can be stored.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection