This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
MPU-9250 not detected
#31
Can you simply run the pypilot_boatimu script from the console?

It should give an output showing the sensor or better error message. Ensure pypilot and no other service accessing the device is run. It should work on either 0x68 or 0x69
Reply
#32
It appears that my MPU9250 is detected. However, I'm facing other issues. Something about "bind failed" and "failed to read IMU" doesn't look to be too good. Running i2cdetect -y1 returns a result at 68. Shouldn't I also be seeing another? I'm concerned that I might be one of those poor saps who reveived an incomplete module Angry.

I hope that somebody might be able to decipher the following and perhaps lead me down the road to a successful install...

Code:
Detected MPU9250/MPU9255 at standard address
IMU Name: MPU-925x
min/max compass calibration not in use
Using ellipsoid compass calibration
Using accel calibration
MPU-925x init complete
imu process failed to keep time 0.48403546400004416 1611.37877089 1611.862660615 1611.86273541 1611.862805428
pypilot_server: bind failed; already running a server?
failed to read IMU! 1612.46334929.06407425683304 heading 250.55594938302625
Detected MPU9250/MPU9255 at standard address
IMU Name: MPU-925x
min/max compass calibration not in use
Using ellipsoid compass calibration
Using accel calibration
I2C read error from 12, 16 - Failed to read compass fuse ROM
ERROR: IMU Init Failed, no inertial data available 1612.463997374
imu process failed to keep time 0.3076851910000187 1612.463344883 1612.770943353 1612.77098763 1612.771029741
IMURead failed!

I'm runing pypilot 3.2.11 with OpenPlotter 3.5.0 on a Pi 4b

(2023-03-28, 11:10 PM)HeviiSailor Wrote: It appears that my MPU9250 is detected. However, I'm facing other issues. Something about "bind failed" and "failed to read IMU" doesn't look to be too good. Running i2cdetect -y1 returns a result at 68. Shouldn't I also be seeing another? I'm concerned that I might be one of those poor saps who reveived an incomplete module Angry.

Yet I do see 2 data sources from Pypilot in SignalK:
  • navigation.attitude (populated)
  • navigation.headingTrue (also populated)
Reply
#33
(2023-03-28, 11:10 PM)HeviiSailor Wrote: It appears that my MPU9250 is detected. However, I'm facing other issues. Something about "bind failed" and "failed to read IMU" doesn't look to be too good.

I'm not familiar with OpenPlotter but "bind failed" might indicate that you're launching two instances of pypilot, which could explain why the second one is not able to access the MPU.
Reply
#34
also me I have a smimilar issue wth bind failed...

Failed to open SPI bus 0, select 0
Using fusion algorithm Kalman STATE4
BŁĄD: Nie wykryto IMU 378.787526965
pypilot_server: wiązanie nie powiodło się; masz już serwer?

if I go to Web control I see details for IMU. Wondering if Web control doesnt disturb here?

Ps.

not actual, I solved the issue Smile
Reply
#35
Hi,

I have a similar problem with the MPU-9250. It is not recognized by Pypilot. Therefore I did troubleshooting with an Arduino Nano.

I’ve tried multiple modules (4 different ones from 2 vendors), and they all behave as if they are MPU-6500s, even though they are labeled MPU-9250. The WHO_AM_I register consistently returns 0x70, indicating it is an MPU-6500 without a magnetometer. Given the module labeling and the vendors’ claims, I doubt all of these are MPU-6500s and suspect something else is going on.

What I’ve done so far:

I2C Detection:
  • I used an I2C scanner, and the module is detected at address 0x68.
  • The I2C bus is stable, and the gyroscope and accelerometer provide data without issues.

Bypass Mode Activation:
  • I enabled bypass mode by writing 0x02 to the INT_PIN_CFG register (0x37).

Magnetometer Initialization:
  • I wrote 0x16 to the AK8963’s CNTL1 register (0x0A) for continuous mode with 16-bit output.
  • I attempted to read from registers 0x03–0x08 for magnetometer data, verifying the ST1 register for data-ready status. However, the data always shows 255 or remains constant.

Basic Functionality Testing:
  • The gyroscope and accelerometer work as expected, which confirms the MPU-6500 part of the chip is functional.
  • The magnetometer (AK8963) does not respond, even when I attempt to communicate with it directly in bypass mode.

My Questions:
  • Is there a way to conclusively verify whether the module includes a working AK8963 magnetometer?
  • Could I be missing something in the hardware setup or wiring or librarys that blocks magnetometer access?
  • Is there another sensor I could use instead of the MPU-9520 (Preferably without changing the PyPilot code)

Thank`s for your ideas.
Reply
#36
Yes you should try the icm20948 This is just as good as the mpu9255 except without all the defective units. That is my experience anyway.

pypilot will basically not work if the sensors are not working, and it does require the compass. It maybe possible to make it working using a wind sensor and only gyros, but the modes would be much more limited. It just isn't supported right now.

Bind failed almost certainly means you are running the service twice. This is just a configuration error not a hardware problem. I should improve the error message as too many people are confused by this.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)