Hier schauen wir, wie es um den BLE GATT support in anderen Ökosystemen bestellt ist, wobei im Vergleich zum ESP32 mit dem bereits integrierten Bluetooth Subsystem andere Hard- und Software relevant ist.
Bei der Erforschung des Adafruit-Ökosystems muss man insbesondere hardwareseitig berücksichtigen, dass die ESP32 MCUs ja bereits eingebautes Bluetooth mitbringen, während bei den für die Produktreihe um Cortex-M0 bzw. -M4 Prozessoren externe Peripherie benötigt wird. Nehmen wir doch konkret den Adafruit Feather M0 Bluefruit LE als Referenz bei der Betrachtung aus dieser Perspektive. Adafruit hat sich dabei für den Nordic nRF51822 SoC entschieden [1].
Überblick
Kevin Townsend and Lady Ada schrieben die Basisdokumentation, einige weitere arbeiten an der weiteren Ausreifung der Implementierung.
P.S.: Irgendwie war ich davon ausgegangen, dass das neue CircuitPython sowohl den ESP32 als auch die neu erschlossenen Cortex-M0 über den von Adafruit beigetragenen SAMD-Port für MicroPython unterstützen würde. Das war wohl definitiv ein Irrglaube. Mehr über den aktuellen Stand bei CircuitPython kann man bei State of the onion for CircuitPython nachlesen.
CircuitPython ist die MicroPython-Distribution von Adafruit, die vor allem für die neue Produktreihe um Cortex-M0 bzw. -M4 Prozessoren entwickelt wird, mit der Blinka Kompatibilitätsbibliothek jedoch auch auf SBCs (RaspberryPi, BeagleBone) eingesetzt werden kann, siehe State of the onion for CircuitPython ff. ↩︎
Der Support für den Nordic Chipsatz ist bereits ab Werk auch im Vanilla MicroPython vorhanden. Bzw. sogar andersherum: Seit MicroPython 1.10 gibt es einen Port für Nordic nRF5x MCUs.
BLE support
Again, we are still interested in BLE support. Links to these resources might reveil relevant things to look into.
Da in dem Nordic Gerät bereits ein Cortex M0 eingebettet ist und kürzlich ein entsprechender Port für MicroPython hinzukam, ist es wahrscheinlich möglich, MicroPython direkt auf einer solchen Briefmarke zu betreiben (und hoffentlich auch per Bluetooth funken zu können)
There are some references to the SoftDevice S110 scattered in the code at ble_drv.c. There also seem to be advanced versions or variants like 132, 140.