A 3rd-party implementation of Microbot Push service.
This project is planned to contain three separate elements:
- python library to interact with Microbot Push devices via BLE
- daemon that handles most of the BLE-related chores (e.g. device discovery/pairing/etc)
- simple web interface to interact with the daemon
You can find a dump of my current understanding of the Microbot's low-level Bluetooth API here
$ cd "${PY_PUSH_CHECKOUT_DIR}"
$ pip install -r ./requirements/prod.txt
$ ./bin/serve.sh --ble_driver bluegiga --ble_device /dev/tty.usbmodem1 web_ui
$ sudo -i
# cd "${PY_PUSH_CHECKOUT_DIR}"
# pip install -r ./requirements/prod.txt
# pip install -r ./requirements/bluez.txt
# ./bin/serve.sh --ble_driver pybluez --ble_device hci0 web_ui
At the moment, the library supports two BLE stacks:
- Bluegiga: available for all platforms that support USB COM devices, does not require root access, does require purchase of a $15 piece of hardware
- PyBlueZ (custom fork): Linux-only, requires elevation to root to run. The implementation is more of proof-of-concept, BLE operations are somewhat unstable (causing I/O delays). Don't forget to deploy PyBlueZ requirements for this mode.
Microbot Push Library Documentation
Code:
- Fixed missing
createMicrobotFromUUID
method in the PyBlueZ stack (kudos to @javaftper)
Docker container:
- Now has embedded PyBlueZ support
- Updated to the latest revision of code