This is probably not for this forum, but perhaps you can give me some direction.
I have a BME680 and BNO055 connected to my BBB via i2c. I2cdetect and i2cdump work as expected, so I think I’m good with wiring and low level stuff.
I want to access these sensors from a Python program. I have carefully followed all of Adafruit’s instructions regarding installation of libraries, copying of files, etc.
From the command line, I can communicate with the sensors as follows:
Python 3.7.3 (default, Jul 25 2020, 13:03:44)
[GCC 8.3.0] on linux
Type “help”, “copyright”, “credits” or “license” for more information.
>>> import board
>>> import busio
>>> import adafruit_bno055
>>> i2c = busio.I2C(board.SCL,board.SDA)
(-0.11, 0.52, -0.01)
When I create the following program and try to run it, I get an error message.
Grrr, I installed it by copying files from their circuit python bundle, those instructions must be out of date. I see they’ve made a proper package now, I’ll give it a try.
AFAIK CircuitPython is Adafuit’s port of micropython, meant for embedded devices. What you are looking for is the Adafruit_BBIO library.
There has been work to port CircuitPython to at least the PocketBeagle, but I am not sure how it does for the BBB. It does appear to be working with the PB at least.
the Adafruit discord channel
channel is where you can get advice from their side
Here’s a few other links that could help
( a link to the beaglebone black (as well as others) is on that page https://circuitpython.org/blinka/beaglebone_black/ )
You probably don’t need to do any porting - but insights can be gained here: https://learn.adafruit.com/adding-a-single-board-computer-to-blinka
If you look in the board.py file you can see what boards are supported already. This does appear to include the BB Black.
OK, you set me on the right track. After doing all of the following:
sudo pip3 install Adafruit_BBIO -U
sudo pip3 install adafruit_circuitpython-lis3dh
sudo pip3 install adafruit-circuitpython-busdevice
sudo pip3 install adafruit-circuitpython-register
Everything is working as expected. I had already done the first two, but I’m including them here in case anyone else comes across this.
The instructions here: https://learn.adafruit.com/welcome-to-circuitpython/circuitpython-libraries are outdated. It is not necessary (and in fact is detrimental) to copy the busdevice and register directories from the bundle linked on that page.
I am pretty sure it is not necessary to copy the device files from the bundle either, it is sufficient to do:
sudo pip3 install adafruit-circuitpython-ds3231
sudo pip3 install adafruit-circuitpython-bme680
sudo pip3 install adafruit-circuitpython-bno055
But I would want to test this on a clean installation to be 100% certain.
Adafruit has developed an interface package -- blinka -- designed to
permit use of circuitpython libraries on multiple Linux-based boards: R-Pi,
BBBlack, PocketBeagle... cf:
The interface package uses the board specific libraries (adafruit-bbio,
equivalent on R-Pi) behind the scenes, allowing code to be written to the
common CircuitPython libraries.
Adafruit are slowly migrating their non-CircuitPython libraries (for
example: Adafruit_bno055) over to CircuitPython
My suggestion for the OP is to use an independent SSH client and to get
OUT of the cloud9 environment. Try writing the program and running it from
a direct login to the beagle.
debian@beaglebone:~$ cat bno055.py
debian@beaglebone:~$ python3 bno055.py
Help on module adafruit_bno055:
``adafruit_bno055`` - Adafruit 9-DOF Absolute Orientation IMU Fusion
Breakout - BNO055
Did you ever figure out how to manage to get the ADC or any analog instance working for the BBB from this lib?