wasp-os: MicroPython for PineTime!
#20
(04-22-2020, 07:39 AM)patchedsoul Wrote: What are your thoughts on using uBluetooth and NimBLE so this thing is 100% open?

I'm a big fan of MicroPython and really tempted to lend a hand with wasp-os, but the use of Nordic's softdevices bums me out.
What are your thoughts?

Pretty much the same as yours Smile .

I'd really prefer to be using an open source BLE stack but the combination of easy to adapt bootloaders and a pre-existing MicroPython port meant using SoftDevice allowed me to get the Python code running so much quicker. In the end I concluded that given MicroPython effectively acts as a HAL there was no point in switching away from SoftDevice immediately... The situation is not perfect but there is no technical debt accumulating related to BLE: it is not *harder* to port MicroPython to NimBLE (or any other BLE stack) than it was when I started wasp-os!

Anyhow there are a couple of options for designing out the SoftDevice.

1. Bring up the Zephyr or MyNewt ports of MicroPython on the watch and then do the small amount of porting required to bring up wasp-os on that. In either of the above scenarios it isn't really geting wasp-os runnig that is the hard bit. The hard bit is replacing wasp-bootloader with something equally robust. To be honest the bootloader is the key component that has made the PineTime fun for me to hack on! Having something that allows me to confidently load *untested* payloads at my watch without really worrying about bricking it it awesome.

2. Bring up NimBLE on bare metal doing all the internal scheduling from a timer interrupt and passing on any unexpected interrupts to the application (in other words develop a NimBLEDevice that provides the same runtime mode that SoftDevice does). From there both MicroPython and wasp-bootloader can be ported to the NimBLEDevice

If I were doing the work I'd be inclined to adopt MyNewt and modify mcuboot a bit so it can exploit the SPI flash (e.g. main image in nRF flash, upgrade image in SPI flash and an emergency NimBLE OTA image in SPI flash that mcuboot copies over the main nRF flash if a button is pressed during boot). The main reason I would take this approach is because it is best for the PineTime community! The resulting bootloader would become neutral on what BLE stack the application uses meaning many different firmwares could use it. There would also likely be improvement found for @lupyuen 's MyNewt port which would be cool too.
PineTime: wasp-os and MicroPython, Pinebook Pro:  Debian Bullseye


Messages In This Thread
wasp-os: MicroPython for PineTime! - by danielt - 02-04-2020, 01:43 PM
RE: wasp-os: MicroPython for PineTime! - by mulm - 02-22-2020, 09:31 AM
RE: wasp-os: MicroPython for PineTime! - by mulm - 02-22-2020, 10:45 AM
RE: wasp-os: MicroPython for PineTime! - by 33YN2 - 03-06-2020, 04:02 PM
RE: wasp-os: MicroPython for PineTime! - by 33YN2 - 04-13-2020, 09:46 PM
RE: wasp-os: MicroPython for PineTime! - by tllim - 04-20-2020, 11:47 AM
RE: wasp-os: MicroPython for PineTime! - by danielt - 04-22-2020, 08:57 AM
wasp-os: MicroPython for PineTime! - by lupyuen - 05-28-2020, 01:59 AM
RE: wasp-os: MicroPython for PineTime! - by 33YN2 - 07-15-2020, 07:01 PM
wasp-os: MicroPython for PineTime! - by lupyuen - 06-03-2020, 05:38 PM
wasp-os: MicroPython for PineTime! - by lupyuen - 07-15-2020, 07:08 PM
wasp-os: MicroPython for PineTime! - by lupyuen - 07-16-2020, 02:43 AM
wasp-os: MicroPython for PineTime! - by lupyuen - 07-16-2020, 03:53 AM
wasp-os: MicroPython for PineTime! - by lupyuen - 08-02-2020, 03:55 AM
RE: wasp-os: MicroPython for PineTime! - by Igor7 - 10-11-2020, 07:27 AM
RE: wasp-os: MicroPython for PineTime! - by 33YN2 - 10-15-2020, 06:39 PM
RE: wasp-os: MicroPython for PineTime! - by 33YN2 - 10-24-2020, 01:56 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
  Develop a new firmware for PineTime belushi 2 1,283 09-25-2023, 12:32 PM
Last Post: ccchan234
  Bluetooth BLE-MIDI-controller app for PineTime / InfiniTime Luno 0 501 08-20-2023, 05:17 AM
Last Post: Luno
  Zephyr Backlight Examples for PineTime lcj 0 691 05-06-2023, 02:54 PM
Last Post: lcj
  Zephyr is ready for pinetime jandy 1 2,075 05-06-2023, 02:15 PM
Last Post: lcj
  Send a message from Android to pinetime via BLE razrosman 0 905 11-05-2022, 08:24 AM
Last Post: razrosman
  PineTime Stuck in DFU Mode Eesha Barua 1 2,001 07-25-2022, 09:17 PM
Last Post: heyhewmike
  Idle tracking with PineTime: how versatile it is? schaman 1 1,614 07-13-2022, 12:50 AM
Last Post: wibble
  PineTime implemented with partial of pebble API jandy 0 1,535 03-20-2022, 08:58 PM
Last Post: jandy
  "Pine64 USB JTAG Adapter + OpenOCD + PineTime" should it work? ITCactus 4 3,877 03-02-2022, 05:58 AM
Last Post: wibble
  Zephyr based Pinetime jandy 4 4,634 11-11-2021, 05:53 AM
Last Post: jandy

Forum Jump:


Users browsing this thread: 3 Guest(s)