BubblePy is a project to make the creation of Bluetooth LE Services and Beacons in Python as frictionless as possible on IoT devices.

BubblePy brings MicroPython, a Bluetooth LE API and the GPIO Zero API to micro-controllers supported by Apache Mynewt project.

BubblePy has these main goals:

  1. Enhance MicroPython with Bluetooth LE and port it to the Nordic nRF5x series and other ARM based Arduino boards.
  2. Provide an easy to use Python API for implementing Bluetooth LE Services and Beacons for both the MicroPython port and the Raspberry Pi.
  3. Provide the GPIO Zero API popular on the RaspberryPi in BubblePy.
  4. Make MicroPython a core component of Apache Mynewt (an open source modular operating system for IoT devices)
  5. Become a well supported and maintained Open Source project.

BubblePy runs on a number of platforms, some of them include:

 The list of tested hardware where these examples (link) will run on include (as of the 1st November 2017):

  • BBC micro:bit (nRF51) 
  • Arduino Primo (nRF52)
  • Adafruit Feather nRF52 Pro (with myNewt Bootloader)
  • RuuviTag (nRF52)
  • Arduino M0 Pro (Cortex-M0)*
  • Arduino Zero (Cortex-M0)*
  • BMD-300-EVAL-ES from Rigado (Cortex-M4) 
  • nRF51 DK from Nordic Semiconductor (Cortex-M0) 
  • nRF52 DK from Nordic Semiconductor (Cortex-M4)

*MCU doesn't have Bluetooth LE built in but the non-BLE examples still work.

The following Bluetooth LE enabled devices should work, however BubblePy firmware has not been tested on actual hardware yet:

  • Arduino Zero Pro (Cortex-M0) 
  • Adafruit Feather M0 Bluefruit + Bluefruit LE Friend
  • STM32F3DISCOVERY from ST Micro (Cortex-M4) 
  • STM32-E407 from Olimex (Cortex-M4)