BNO055 USB Stick Linux Python Driver
Project description
BNO055 USB Stick Python driver
TL;DR: "Swiss army knife" for using
BNO055 USB Stick
under Linux from python3
.
BNO055 USB Stick
comes with
Development Desktop 2.0
software package,
which is available for Windows only.
If you have a BNO055 USB Stick
and want to
use it on a Linux platform
(e.g. Ubuntu, Raspbian, Yocto, Suse, etc.)
this repo provides you with a python 3
driver,
capable of reading / writing registers / burst read,
and stream data read.
OS Prerequisites
-
When plugged in on a Linux system, the
BNO055 USB Stick
should appear as/dev/ttyACM*
device. This device is a so-calledcdc_acm
(communication device class), but let us leave these details for now. -
Your Linux user must be a member of the
dialout
group (e.g. see this thread) to be able to read/writettyACM*
devices without root privileges. -
udev
is installed on the system. We do autodetect the USB stick by relying on information from udev.
Installation
pip install bno055_usb_stick_py
Supported Python version
python v3.6+
Python dependencies
TL;DR: install
(i) pyserial
,
(ii) pyudev
,
(iii) dataclasses
(if using python3.6
), and
(iv) optionally: pyquaternion
and matplotlib
,
or use
environment.yml
to create conda environment
with dependencies resolved.
For further details regarding creating conda
senvironment read this guide.
Quick start
Read register:
from bno055_usb_stick import BnoUsbStick
bno_usb_stick = BnoUsbStick()
reg_val = bno_usb_stick.read_register(0x00)
print(f"bno chip id addr: {0x00}, value: {reg_val}")
Get 10 packets in streaming mode:
from bno055_usb_stick import BnoUsbStick
bno_usb_stick = BnoUsbStick()
bno_usb_stick.activate_streaming()
for packet in bno_usb_stick.recv_streaming_generator(num_packets=10):
print(f"bno data: {packet}")
Prevent modem manager to capture serial device
When plugging bno_usb_stick
on Ubuntu,
the device is unavailable for the first 10-15 seconds,
due to the fact that ModemManager
process
takes over and tries to use the device.
To avoid this Ubuntu-specific behavior,
add an exception to the udev
rules,
s.t. the ModemManager
ignores the bno_usb_stick
.
Run the script:
python disable_modem_manager_bno_usb_stick.py
The script requires root privileges. Essentially it copies
the 97-ttyacm.rules
file to /etc/udev/rules.d
and reloads the
udev rules.
Maintainer
Dr. Konstantin Selyunin, for suggestions / questions / comments please contact: selyunin [dot] k [dot] v [at] gmail [dot] com
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for bno055_usb_stick_py-0.9.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | cfa3f693d0c36690cff237314ff0e8fc2e79461e31d334138939314440e00eed |
|
MD5 | d6225bc2023c3cedddf2e368876cb7e5 |
|
BLAKE2b-256 | 48e84056bd64a721b47451a27f7daa6c20512b2943524a4144f3c93bb3ee670a |
Hashes for bno055_usb_stick_py-0.9.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9d2a88d9ef5b77c8f04a6aedc3f3c06dba2a33378b883915103ccb173a2cfbfd |
|
MD5 | ee65b75b7458cc1675e94ceaf4b92aa3 |
|
BLAKE2b-256 | 502bb3e5d9eb5d958059496471abdb1b1f404a1dcf16aa21b3bf8d7e800112bd |