bno055 works on Arduino but get "bad chip id" on ESP32

All ESP32 boards running MicroPython.
Target audience: MicroPython users with an ESP32 board.
Post Reply
Hello-world
Posts: 13
Joined: Mon Mar 11, 2019 2:23 pm

bno055 works on Arduino but get "bad chip id" on ESP32

Post by Hello-world » Sat Apr 06, 2019 7:37 am

I had my bno055 and esp32 working fine a day ago. I decided to solder the bno055 to the esp32 instead of using jumper wires. Thats when it stopped working correctly....

I de-soldered the bno055 and have done the following:

1. I can connect my bno055 to an Arduino Uno and run their "rawdata" sketch. This lets me read values:

Code: Select all

X: 0.90 Y: 5.97 Z: -7.59		CALIBRATION: Sys=1 Gyro=3 Accel=3 Mag=3
X: 0.91 Y: 6.02 Z: -2.55		CALIBRATION: Sys=1 Gyro=3 Accel=3 Mag=3
X: 0.90 Y: 6.03 Z: -2.54		CALIBRATION: Sys=1 Gyro=3 Accel=3 Mag=3
X: 0.88 Y: 5.99 Z: -7.58		CALIBRATION: Sys=1 Gyro=3 Accel=3 Mag=3
X: 0.85 Y: 6.01 Z: -7.61		CALIBRATION: Sys=1 Gyro=3 Accel=3 Mag=3
This tells me the bno055 is working correctly

2. I then hook up the same bno055 (using the same wires I used to connect it to UNO) to my ESP32 and I get:

Code: Select all

Ready to download this file,please wait!
...
download ok
exec(open('./starter, line 46, in __init__
  File "bno055.py", line 90, in init
RuntimeError: bad chip id (0 != a0)
>>> 
This makes me think the chip id might have been corrupted (?). I wonder how the arduino can communicate with the bno055 then...

3. I have tried another ESP32 heltec wifi board running the same micropython build (latest from today) and I get the same results.

4. I have a spare bno055 and if I run that on my ESP32, it does show up but I don't get any actual data from is (e.g.

Code: Select all

>>>print(s.temperature())
>>> 0
I am wondering if I should reset the bno055 that gives me the bad chip id on the ESP32 and see if that helps?


Thanks in advance for any insight,

Post Reply