Live data from Hacker News

MicroPython Smartwatch

tolidano.com

1–10 of 14 posts

Re: MicroPython Smartwatch

#4
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!

Re: MicroPython Smartwatch

#5
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).

Re: MicroPython Smartwatch

#6

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…

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

Re: MicroPython Smartwatch

#7
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.

Re: MicroPython Smartwatch

#8
post #6

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…

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

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.
Post reply on HN