I am having trouble getting my BeagleBone Black Wireless to communicate with an Adafruit Sensirion SHT40 breakout board. The BeagleBone does not seem to be able to see that the sensor is connected at I2C address 0x44.
I have tried using both i2cdetect and the Adafruit-Blinka Python3 library along with the example code from the Adafruit CircuitPython SHT4x library.
debian@beaglebone:~$ uname -a
Linux beaglebone 5.10.120-ti-r46 #1buster SMP PREEMPT Tue Jun 28 20:04:59 UTC 2022 armv7l GNU/Linux
debian@beaglebone:~$ sudo i2cdetect -y -r 2
[sudo] password for debian:
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: – – – – – – – – – – – – –
10: – – – – – – – – – – – – – – – –
20: – – – – – – – – – – – – – – – –
30: – – – – – – – – – – – – – – – –
40: – – – – – – – – – – – – – – – –
50: – – – – – – – – – – – – – – – –
60: – – – – – – – – – – – – – – – –
70: – – – – – – – –
debian@beaglebone:~/Adafruit_CircuitPython_SHT4x/examples$ python3 sht4x_simpletest.py
Traceback (most recent call last):
File “/usr/local/lib/python3.7/dist-packages/adafruit_bus_device/i2c_device.py”, line 174, in __probe_for_device
self.i2c.writeto(self.device_address, b"")
File “/usr/local/lib/python3.7/dist-packages/busio.py”, line 169, in writeto
return self._i2c.writeto(address, buffer, stop=stop)
File “/usr/local/lib/python3.7/dist-packages/adafruit_blinka/microcontroller/generic_linux/i2c.py”, line 52, in writeto
self._i2c_bus.write_bytes(address, buffer[start:end])
File “/usr/local/lib/python3.7/dist-packages/Adafruit_PureIO/smbus.py”, line 314, in write_bytes
self._device.write(buf)
OSError: [Errno 95] Operation not supported
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File “/usr/local/lib/python3.7/dist-packages/adafruit_bus_device/i2c_device.py”, line 180, in __probe_for_device
self.i2c.readfrom_into(self.device_address, result)
File “/usr/local/lib/python3.7/dist-packages/busio.py”, line 159, in readfrom_into
return self._i2c.readfrom_into(address, buffer, stop=stop)
File “/usr/local/lib/python3.7/dist-packages/adafruit_blinka/microcontroller/generic_linux/i2c.py”, line 59, in readfrom_into
readin = self._i2c_bus.read_bytes(address, end - start)
File “/usr/local/lib/python3.7/dist-packages/Adafruit_PureIO/smbus.py”, line 181, in read_bytes
return self._device.read(number)
OSError: [Errno 121] Remote I/O error
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File “sht4x_simpletest.py”, line 10, in
sht = adafruit_sht4x.SHT4x(i2c)
File “/usr/local/lib/python3.7/dist-packages/adafruit_sht4x.py”, line 130, in init
self.i2c_device = i2c_device.I2CDevice(i2c_bus, address)
File “/usr/local/lib/python3.7/dist-packages/adafruit_bus_device/i2c_device.py”, line 61, in init
self.__probe_for_device()
File “/usr/local/lib/python3.7/dist-packages/adafruit_bus_device/i2c_device.py”, line 183, in __probe_for_device
raise ValueError(“No I2C device at address: 0x%x” % self.device_address)
ValueError: No I2C device at address: 0x44
The SHT40 is wired as follows:
P9.1 → GND
P9.3 → VIN
P9.19 → SCL
P9.20 → SDA
In both instances it doesn’t seem like the processor can see that anything is connected to the pins. Any help would be appreciated. I am at a loss for what to do next.