Description
The ubluepy module for the nRF is pretty lacking. For one, if a BLE connect fails, it just hangs forever. I saw somewhere that @jimmo had a plan to swap the Nordic SoftDevice for NimBLE which would give the Nordic folks access to the awesomeness that is aioble.
I spent the better part of today trying to figure that out, but I just lack foundational knowledge on the Cortex-M4 platform. I did manage to get NimBLE compiled with the RAM HCI within the MicroPython build tree, but it doesn’t run because there’s no background task.
Since the nRF52 and STM32 are both M4s, it looks like we should be able to use the same SysTick mechanism to run the BLE stack, but that’s where I got in over my head with all the IRQ stuff. I don’t quite understand the M4 platform or how MicroPython uses/allocates interrupts.
Is my analysis reasonable? Is this something somebody could help me understand so I can finish porting? Or is this easy enough that it might get implemented easily by the MicroPython team? I’ve got some nRF52832s and nRF52840s I’d really like to get MicroPython working on. With time I could figure it out, but it looks so similar to the STM32, maybe somebody knows how to get it done more quickly?
Thanks.