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).<p>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).
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.
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.<p>I remember making watch face bitmaps with paint!