Comments (4)
It appears this is a problem in the ESP32 i2c arduino software. The board works with the 1.0.0-rc3 release but everything newer fails.
from sparkfun_mpu-9250-dmp_arduino_library.
Over on the ESP32 github here espressif/arduino-esp32#1761
They suggested a fix which I tried, but most samples still only work intermittently. They often work from a cold start but pressing the reset button they will only sometimes start. After 3 or so presses they generally fail to come up until cold started again.
Some samples still seem to fail 100% of the time.
Could this be a timing issue of some kind because the ESP32 is a faster chip? Maybe the 9250 is not getting enough time to reset and get itself started?
from sparkfun_mpu-9250-dmp_arduino_library.
Some more info, take a look at espressif/arduino-esp32#1761 for more details.
It appears the 9250 is getting into a state where it pulls sda low and leaves scl high. Resetting the ESP doesn't clear this. As long as the 9250 has power it stays stuck this way, only cycling power fixes it.
Is there any way to do a hardware reset of the 9250? When it gets into this state you can't communicate with it so a software reset isn't possible.
from sparkfun_mpu-9250-dmp_arduino_library.
It appears the problem has to do with resetting the CPU when the 9250 is in a particular state. The transaction doesn't complete and leaves the 9250 holding the bus with SDA low and SCL high.
Some new code has been added to the ESP32 repository to cause the I2C bus to recover if it comes up in a bad state after a boot. This code will be in the next release or you can get it now by updating to the latest ESP32 arduino code.
Seems to fix the problem so I'm closing this.
from sparkfun_mpu-9250-dmp_arduino_library.
Related Issues (20)
- endless loop with vibration HOT 2
- How to change axis in DMP? HOT 5
- ~60 MS DELAY EVERY ~.5S HOT 2
- Max sampling rate for DMP HOT 1
- Unable to Read Compass in FiFO mode due to bug
- Unable to get raw accelerometer data after calculating quaternion HOT 5
- Bug in setLowPass Filter Function - Accel lowpass is never configured HOT 4
- When loading the sparkfun_mpu-9250-dmp_arduino_library library with platformio, the min function was not found HOT 1
- Use 2 IMU with 1 arduino HOT 1
- Arduino Micro Tap Detection and Wake On Motion (I2C)
- Mag Calibration Missing
- INF ouput when reading Quaternions
- dmpSetAccelBias is undefined
- Reboot in SparkFunMPU9250-DMP.cpp at line 46 HOT 2
- Change I2C address
- [Arduino IDE] Error Compiling for Raspberry Pi Pico
- MPU on raspberry pi 4
- Starkfan
- Mystical oddities with the MPU9250 and the library
- linear acceleration values
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from sparkfun_mpu-9250-dmp_arduino_library.