-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
random errors with #4
Comments
This is almost certainly a hardware fault. The internal pullups are not strong enough for I2C. I recommend external resistors pulling up to 3.3V. The value is not critical, anywhere in the range 1KΩ to 10KΩ should be OK. |
Peter, i agree that the randomness of the error points to hardware problem but since the breadboard is as simple as it can be, I am stumped what can i do differently. It is a breadboard so the I2C is less than an inch long and there is nothing else on it. I tried your suggestion with both 1K and 3.3K external pull-ups. Unfortunately, there is no change in the outcome. Heading 289 roll 73 pitch 53 |
PS: i tried another ESP board. same result |
If your ESP boards have SPIRAM the problem may be your choice of pins. See this doc. |
Same Problem on a NUCLEO_H743ZI2 Board: |
Have you fitted pullups as described above? |
Yes and this was not the error. |
OK, thanks for that. Most of my testing was with hard I2C. The datasheet seems to lack timing information on the I2C bus, so the correct value for the timeout is guesswork. I have put a note in the README file. |
I have studied this in connection with the RP2 chip. The BNO055 performs clock stretching to varying degrees. The longest I measured was 500μs. You might want to increase your timeout value to give a better margin, say to 1000μs. |
Peter, i downloaded and installed the driver per your instructions. It started right away and produced meaningful data (all i care is the heading) but then it stopped and produced the error below
Traceback (most recent call last):
File "", line 23, in
File "bno055_base.py", line 94, in temperature
File "bno055_base.py", line 113, in _read
OSError: [Errno 110] ETIMEDOUT
i restarted and got similar but not the same error. no changes to the code !!!!!
Traceback (most recent call last):
File "", line 26, in
File "bno055_base.py", line 60, in
File "bno055_base.py", line 91, in scaled_tuple
File "bno055_base.py", line 123, in _readn
OSError: [Errno 110] ETIMEDOUT
i tried again and got the same results
File "", line 21, in
File "bno055_base.py", line 107, in calibrated
File "bno055_base.py", line 99, in cal_status
File "bno055_base.py", line 113, in _read
OSError: [Errno 110] ETIMEDOUT
my breadboard is super simple BNO, ESP32 and nothing else. I am using PIN 16 for sda and and PIN 17 for scl. I am pulling them up via code per the MicroPython reference page.
from machine import Pin, SoftI2C
import time
from bno055 import *
sda=Pin(16,Pin.PULL_UP)
scl=Pin(17,Pin.PULL_UP)
i2c = SoftI2C(scl, sda, freq=100000)
i2c.init(scl,sda,freq = 100000)
the rest of the code is AS IS. The ESP32 is HiLetgo ESP-WROOM-32 ESP32 ESP-32S
I assume that i am doing something wrong but not sure what. Can you please advise?
The text was updated successfully, but these errors were encountered: