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
Problem with imu compass. (SOLVED)
#1
Hi,

I would really appreciate some help on this one.

I just installed an openplotter 4 system in my plastic sailboat including a raspberrypi 5, low power motorcontroller, butchered tillerpilot, usb gps and an icm20948 imu. I'm not using any hats.

My problem is that I can't seem to get a stable heading.
I'm om the latest release of OP4 and I believe up to date on everything running pypilot version 0.54

Using the pypilot calibration gui I can calibrate the accelerometer seemingly without any problem but in the compass menu I only get one dot and it doesn't move.

When looking at the alignment menu the compass rotates when I rotate the imu but slowly returns to some arbitrary heading that's decided when I press "boat is level" my uneducated guess is that the heading changes because of the gyroscope but slowly reverts back to magnetic? Which seems to be locked in place. At first I assumed the imu was broken so I tested 2 others I had ordered from different vendors although same model. And got exactly the same behavior, so I'm holding on to a sliver of hope that it's something without a multi week leadtime.

I have tried:
Unbolting the compass and other semi nearby magnets and placing them about 5 meters away.
Disconnecting everything in the boat but the motorcontroller, pi, 12 to 5vdc converter and PV chargers.
Connecting the imu through a 5M shielded cable and holding it over the side of the boat trying to calibrate.
Running a fresh install of OP4.
Calibrating in autopilot and imu only mode.
Aligning the imu in diffrent orientations, but no matter what the heading axis behaves strangely while all others seem fine.


I also cant reach the Pypilot_hat web interface at 33333 but other than that everything seems fine. I even managed to have it try it's best navigating a route from opencpn, worked well enough if you weren't planning to go in any particular direction.

Any and all help i very much appreciated and a massive thank you to everyone who helped develop and maintain these masterpieces of open-source software.
Reply
#2
without the hat service you wont be able to reach the web interface for pypilot hat.

As for the compass. You might have a bad sensor. Did you try plotting the compass axes with pypilot_scope? See if all 3 axes are working correctly.
Reply
#3
Hi,
Thank you for the quick reply

I did successfuly get everything up and running and used the pilot at sea for a couple of days by switching out the RPI to a model 3B running OP3 and pypilot 0.52.

The PI3 leaves some to be desired, so the quest to get the PI5 running is very much alive.

Im thinking the imu problem might not be hardware related but likely related to my desperate lack of linux knowledge.
This is the general model of imu I'm using  ICM-20948 9-Axis 9DOF MEMS Motion Low Power Tracking Device Sensor Module | eBay

I have looked around for a bit and can't find any thread that describs this exact problem so i captured som logs in the hope that someone could take a look
.

Running pypilot from terminal:
Code:
pi@openplotter:~ $ pypilot
autopilot start 818.975750983
world magnetic model not available
failed to initialize udp socket, this may affect manual control performance [Errno 98] Address already in use
imu process 6153
nmea process 6161
                 nmea server on port 20220: bind failed.
                                                        made imu process realtime
Using settings file RTIMULib.ini
                                 Settings file RTIMULib.ini loaded
                                                                  Detected ICM20948 at standard address
                       Using fusion algorithm Kalman STATE4
                                                           IMU Name: ICM-20948
                                                                              min/max compass calibration not in use
                                    Using ellipsoid compass calibration
                                                                       Using accel calibration
              gps process 6165
                              loading servo calibration /home/pi/.pypilot/servocalibration
          WARNING: using default servo calibration!!
                                                    Available Pilots: ['basic', 'absolute']
           pypilotServer process 6170
                                     load file /home/pi/.pypilot/pypilot.conf
                                                                             store_file /home/pi/.pypilot/pypilot.conf.bak 819.073 False
                                                        pypilotinit complete 819.07346775
         pypilot_server: bind failed; already running a server?
                                                               serialprobe removing gps device /dev/serial/by-id/usb-Prolific_Technology_Inc._USB-Serial_Controller_D-if00-port0
                gps filter process 6167
                                       signalk zeroconf service add openplotter._http._tcp.local. _http._tcp.local.
                                   signalk zeroconf service add openplotter._http._tcp.local. _http._tcp.local.
                               ICM-20948 init complete
                                                      failed to read IMU! 819.382517557
       nmea server on port 20220: bind failed.
                                              Failed to open SPI bus 0, select 0
                                                                               ERROR: No IMU Detected 820.082574511
                                   nmea server on port 20220: bind failed.
                                                                          gpsd connected
        GPSD devices []
                       Detected ICM20948 at standard address
                                                            IMU Name: ICM-20948
                                                                               min/max compass calibration not in use

Running pypilot with op debugging
Code:
pi@openplotter:~ $ pypilot
autopilot start 1058.272478135
world magnetic model not available
failed to initialize udp socket, this may affect manual control performance [Errno 98] Address already in use
imu process 6456
nmea process 6460
nmea server on port 20220: bind failed.
gps process 6465
                loading servo calibration /home/pi/.pypilot/servocalibration
WARNING: using default servo calibration!!
Available Pilots: ['basic', 'absolute']
made imu process realtime
Using settings file RTIMULib.ini
Settings file RTIMULib.ini loaded
pypilotServer process 6467
                          Failed to open SPI bus 0, select 0
                                                            Using fusion algorithm Kalman STATE4
                pypilotinit complete 1058.363558172
load file /home/pi/.pypilot/pypilot.conf
store_file /home/pi/.pypilot/pypilot.conf.bak 1058.369 False
pypilot_server: bind failed; already running a server?
serialprobe removing gps device /dev/serial/by-id/usb-Prolific_Technology_Inc._USB-Serial_Controller_D-if00-port0
gps filter process 6466
signalk zeroconf service add openplotter._http._tcp.local. _http._tcp.local.
signalk zeroconf service add openplotter._http._tcp.local. _http._tcp.local.
nmea server on port 20220: bind failed.
nmea server on port 20220: bind failed.
gpsd connected
GPSD devices []
nmea server on port 20220: bind failed.
pypilot_server: bind failed; already running a server?
nmea server on port 20220: bind failed.
calibration loaded, starting 6454
nmea server on port 20220: bind failed.
nmea server on port 20220: bind failed.
signalk process 6464
pypilot_server: bind failed; already running a server?
signalkread token eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkZXZpY2UiOiJQWVBJTE9ULTZlYmYtNGY1Ny1iNGFlLTdhNTY3NmIzYzAxYSJ9.tnFQRbhdenh5aecw7xO32UXeFPO41KyTE7GytkX2mcA
signalk server found 192.168.243.30:3000
nmea server on port 20220: bind failed.

Running sudo pypilot with op debugging

Code:
pi@openplotter:~ $ sudo pypilot
autopilot start 1204.449405785
world magnetic model not available
WARNING: running autopilot as root!!
failed to initialize udp socket, this may affect manual control performance [Errno 98] Address already in use
imu process 6650
nmea process 6654
nmea server on port 20220: bind failed.
loading servo calibration /root/.pypilot/servocalibration
                                                         WARNING: using default servo calibration!!
                   Available Pilots: ['basic', 'absolute']
                                                          gps process 6660
                                                                          made imu process realtime
                   Using settings file RTIMULib.ini
                                                   Settings file RTIMULib.ini loaded
    Failed to open SPI bus 0, select 0
                                      Using fusion algorithm Kalman STATE4
                                                                          pypilotServer process 6665
                    pypilotinit complete 1204.544953037
                                                       failed to monitor  /root/.pypilot/ Call failed (should not be -1): (-1) ERRNO=(0)
                                                        load file /root/.pypilot/pypilot.conf
             failed to load pypilot.conf [Errno 2] No such file or directory: '/root/.pypilot/pypilot.conf'
                           load file /root/.pypilot/pypilot.conf.bak
                                                                    backup data failed as well [Errno 2] No such file or directory: '/root/.pypilot/pypilot.conf.bak'
     pypilot_server: bind failed; already running a server?
                                                           serialprobe removing gps device /dev/serial/by-id/usb-Prolific_Technology_Inc._USB-Serial_Controller_D-if00-port0
            signalk zeroconf service add openplotter._http._tcp.local. _http._tcp.local.
        signalk zeroconf service add openplotter._http._tcp.local. _http._tcp.local.
    gps filter process 6662
                           nmea server on port 20220: bind failed.
                                                                  nmea server on port 20220: bind failed.
                         gpsd connected
                                       GPSD devices []
                                                      nmea server on port 20220: bind failed.
             pypilot_server: bind failed; already running a server?
                                                                   nmea server on port 20220: bind failed.
                          calibration loaded, starting 6648
                                                           nmea server on port 20220: bind failed.
                  servo probe ('/dev/ttyAMA10', 38400) 1209.653807044


Regarding the hat service i have struggled with this for a while and tried the solutions of older threads i found but without succsess.
A common problem they describe is the checkbox in pypilot unchecking but i have not encountered this.

I tried following the pypilot/workbook but cant find the "44444" in pypilot_hat.service but im guessing this might be outdated info.

I captured some logs regarding this too.

Code:
pi@openplotter:~ $ /usr/local/bin/pypilot_hat
hat start 502.159445181
waiting for gpiomem... [Errno 13] Permission denied: '/dev/gpiomem'
waiting for gpiomem... [Errno 13] Permission denied: '/dev/gpiomem'
waiting for gpiomem... [Errno 13] Permission denied: '/dev/gpiomem'
waiting for gpiomem... [Errno 13] Permission denied: '/dev/gpiomem'
waiting for gpiomem... [Errno 13] Permission denied: '/dev/gpiomem'
waiting for gpiomem... [Errno 13] Permission denied: '/dev/gpiomem'
waiting for gpiomem... [Errno 13] Permission denied: '/dev/gpiomem'
waiting for gpiomem... [Errno 13] Permission denied: '/dev/gpiomem'
waiting for gpiomem... [Errno 13] Permission denied: '/dev/gpiomem'
waiting for gpiomem... [Errno 13] Permission denied: '/dev/gpiomem'
waiting for gpiomem... [Errno 13] Permission denied: '/dev/gpiomem'
waiting for gpiomem... [Errno 13] Permission denied: '/dev/gpiomem'
^CTraceback (most recent call last):
  File "/usr/local/bin/pypilot_hat", line 33, in <module>
    sys.exit(load_entry_point('pypilot==0.54', 'console_scripts', 'pypilot_hat')())
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/bin/pypilot_hat", line 25, in importlib_load_entry_point
    return next(matches).load()
           ^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/importlib/metadata/__init__.py", line 202, in load
    module = import_module(match.group('module'))
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1206, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1178, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1149, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 940, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/usr/local/lib/python3.11/dist-packages/pypilot/hat/hat.py", line 17, in <module>
    import gpio
  File "/usr/local/lib/python3.11/dist-packages/pypilot/hat/gpio.py", line 25, in <module>
    time.sleep(1)
KeyboardInterrupt

Code:
pi@openplotter:~ $ sudo /usr/local/bin/pypilot_hat
hat start 595.303445864
have gpio for raspberry pi
hat import done 595.326761983
loading config file: /root/.pypilot/hat.conf
config failed: [Errno 2] No such file or directory: '/root/.pypilot/hat.conf'
config read exception printing exception [Errno 2] No such file or directory: '/root/.pypilot/hat.conf'
failed to read config file, trying backup config
loading config file: /root/.pypilot/hat.conf.bak
config failed: [Errno 2] No such file or directory: '/root/.pypilot/hat.conf.bak'
config read exception printing exception [Errno 2] No such file or directory: '/root/.pypilot/hat.conf.bak'
host localhost 595.327186381
failed to load /proc/device-tree/hat/custom_0 : [Errno 2] No such file or directory: '/proc/device-tree/hat/custom_0'
assuming original 26 pin tinypilot with nokia5110 display
write config
Bus error
pi@openplotter:~ $

Generally with both issues it seems to be struggeling with reading and writing files in /home/pi/.pypilot.
I managed the get the hat service to generate a config file in the home/pi/.pypilot once by messing with permissions but it didnt fix the web interface and i can't remember the details of what i did.
Running as sudo seems to create the files in /root instead, and copying them over does not fix the problem either.

Im very grateful for any help and hopefully this can help some other poor soul in the future.

PS.
Tip to anyone reading with the same serious mental disability as me, higher PID values =/= better PID values.
Reply
#4
Hi
h pThe sensor you linked appears to be a bare icm20948. To be clear that chip is spec for 1v8 levels while the pi is 3v3. What this means is you normally need some sort of level translation to reliably use it. This can be as simple as a few mosfets and resistors, but without it, I am unsure it is wise to use that chip directly.

I am wondering.. you said you were at sea a few days.. did pypilot work at all??

Most of the errors running pypilot indicate the service is already running. This is why the message "failed to initialize udp socket, this may affect manual control performance [Errno 98] Address already in use" and "bind failed" etc

You would have to stop the service with
sudo service pypilot stop
for example before running it directly on the console like that

The hat does need permissions for /dev/gpiomem which is why you saw those errors.

For web control you have to run the pypilot_web service. Normally these can be configure in the openplotter-pypilot interface, but I must admit I have not tried it in the most recent version of openplotter (so many other projects) If you do run into issues there be sure to post it.
Reply
#5
Hi,

I believe this thread:  Pypilot in OpenPlotter 4 released (openmarine.net) came to the conclusion that the imu should work and the sellers specsheet does specify "VDD operating range of 1.71V to 3.6V"

Quote:Sully:
I am having the same problem. My IMU is not detected. I thought it was because I didn't solder a few pins properly. Will retry soon.
I'm using this one: https://www.aliexpress.com/item/4000910277147.html
Quote:Sean:
I am not sure but guessing you didnt use level translators?  That chip uses 1v8 levels and the pi is 3v3.  For this to work you need mosfets and resistors and without these you might have damaged the part.
Quote:Sailoog:
Do not worry, those ICM-20948 modules are ready for 3.3V: "VDD operating range of 1.71V to3.6V"

I think your intermittent issues mean a previously damaged module or bad contact.

But i would like to caution against these models as 1 out of 3 i ordered works intermittently from the moment i got it and i believed another one died a few hours ago while doing nothing special in openplotter



Yeah to clarify, pypilot works without any real issues on the Rpi3, i probably sailed over 30nmi with the autopilot in compass mode using the opencpn pypilot plugin.
All hardware being identical except the Rpi3b instead of Rpi5 and 16GB microSD instead of 128GB. Gpio pins also connected identicaly.

I also did a quick seatrial with the Rpi5 a few weeks back and everything i tested worked except for the compass/heading and Hat service.
The motor controller, rudder angle calibration and end switches worked without a problem but when activating the autopilot in compass or gps mode it was "a litte" confused due to the lack of heading data, The web control worked both from the pi and my phone except for the center rudder button which only worked in the "Openplotter-pypilot -> Control" gui. 


Today i flashed a new openplotter-starting 2024-06-19 image changing nothing in the Rpi imager software.

Booted it, ran sudo apt-get update/upgrade, Enabled i2c, installed pypilot through openplotter settings and encountered the same behavior from the compass calibration. Later enabled serial port and SPI and got the same behavior from the HAT service.
Im starting to question my sanity, am i missing something obvious?

I followed your advice about actualy stopping the service before starting it and got this from the fresh install:
Code:
pi@openplotter:~ $ sudo service pypilot stop
pi@openplotter:~ $ pypilot
autopilot start 1008.126914346
world magnetic model not available
imu process 3518
nmea process 3522
                 listening on port 20220 for nmea connections
                                                             gps process 3527
loading servo calibration /home/pi/.pypilot/servocalibration
WARNING: using default servo calibration!!
Available Pilots: ['absolute', 'basic']
                                       pypilotServer process 3533
made imu process realtime
                         Using settings file RTIMULib.ini
                                                         Settings file RTIMULib.ini loaded
          Detected ICM20948 at standard address
                                               Using fusion algorithm Kalman STATE4
   IMU Name: ICM-20948
                      min/max compass calibration not in use
                                                            Using ellipsoid compass calibration
               Using accel calibration
                                      pypilotinit complete 1008.228716193
load file /home/pi/.pypilot/pypilot.conf
store_file /home/pi/.pypilot/pypilot.conf.bak 1008.230 False
server setup has 6 pipes
serialprobe removing gps device /dev/serial/by-id/usb-Prolific_Technology_Inc._USB-Serial_Controller_D-if00-port0
servo probe ('/dev/ttyAMA0', 38400) 1008.279908239
zeroconf addresses ['127.0.0.1', '192.168.243.30'] 2
gps filter process 3530
signalk zeroconf service add openplotter._http._tcp.local. _http._tcp.local.
signalk zeroconf service add openplotter._http._tcp.local. _http._tcp.local.
ICM-20948 init complete
imu rate set to rate 20
IMU all sensor axes verified
setting initial gyro bias [-0.19, 0.46, -0.08]
Arduino motor controller EEPROM SIGNATURE ok
arduino servo found ['/dev/ttyAMA0', 38400]
serialprobe success: /home/pi/.pypilot/servodevice ['/dev/ttyAMA0', 38400]
gpsd connected
GPSD devices ['/dev/ttyOP_gps']
calibration loaded, starting 3516
signalk process 3526
signalkread token eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkZXZpY2UiOiJQWVBJTE9ULTAzZjMtNGE0OC04MTMwLTdmZjQ1OTEyNjM4NCJ9.fHBamdw0OUbuxY2XYa0mP4-jglCKij8mSV6Q__7tCAY
signalk server found 192.168.243.30:3000
signalk found ws://192.168.243.30:3000/signalk/v1/stream?subscribe=none
signalk connected to ws://192.168.243.30:3000/signalk/v1/stream?subscribe=none
^CTraceback (most recent call last):
  File "/usr/local/bin/pypilot", line 33, in <module>
Process ZeroConfProcess-4:
    sys.exit(load_entry_point('pypilot==0.54', 'console_scripts', 'pypilot')())
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/pypilot/autopilot.py", line 519, in main
    ap.iteration()
  File "/usr/local/lib/python3.11/dist-packages/pypilot/autopilot.py", line 346, in iteration
  File "/usr/local/lib/python3.11/dist-packages/pypilot/client.py", line 429, in receive
    self.poll(timeout)
  File "/usr/local/lib/python3.11/dist-packages/pypilot/client.py", line 294, in poll
    events = self.poller.poll(int(1000 * timeout))
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/pypilot/autopilot.py", line 193, in cleanup
    raise KeyboardInterrupt # to get backtrace on all processes
    ^^^^^^^^^^^^^^^^^^^^^^^
KeyboardInterrupt


To fix the /dev/gpiomem error i tried 
Code:
sudo adduser pi gpio
Which tells me that the user is already in the group.

I also tried
Code:
sudo chown root.gpio /dev/gpiomem

Which tells me the command was incorrectly formatted and that the file could not be found, im writing this from home so my memory might fail me here.

I just found this advice from google and have a poor understanding of what exactly they do and how the permission system in linux works.
But if nothing else i get of on running random scripts i find online as sudo, especially when i dont know what they do.

Peeping in /dev with the file explorer i cant find a "gpiomem" only "gpiomem0", "gpiomem1" etc, probably nothing strange but i tought it worth mentioning.

Edit:
The pypilot scope shows nothing when enabling imu.compass except for one time when it showed a flat lite.
imu.accel and som others i tried seems to work fine.
Also the scope does not show anything at all in "IMU only" mode if i remember correctly.

Thanks again for taking the time!
Reply
#6
(2024-06-27, 10:08 PM)Mentula Wrote: Hi,

I believe this thread:  Pypilot in OpenPlotter 4 released (openmarine.net) came to the conclusion that the imu should work and the sellers specsheet does specify "VDD operating range of 1.71V to 3.6V"
Yes but VCCIO is only 1.8 volts which is the voltage for the i2c signals. Or am I confused? Maybe it works at 3v3 out of spec??

If it did not need level shifters why would everyone be using them? For example see:
https://learn.adafruit.com/adafruit-tdk-...u/overview

Quote:Sailoog:
Do not worry, those ICM-20948 modules are ready for 3.3V: "VDD operating range of 1.71V to3.6V"

I think your intermittent issues mean a previously damaged module or bad contact.

It depends on the particular module. Many have level shifters on the module, but if you just have the one you linked to, there are no level shifters.

If you can get imu.accel but not imu.compass you have a defective chip or maybe as mentioned it is burned out from using 3v3 when it needs 1v8??
Reply
#7
Hi,

I would wager that you are correct about the voltages.
Running things on higher than ratad voltages happens to be one of my favorite passtimes and I have noticed that they can be suprislingly ressilient.
Could be that they are just ever so slowly giving up the ghost.
It would certainly explain why one of them suddenly dropped dead.

I ordered the imu model you linked to and will report back when I have tested it.


Altough It still perplexes me that the very same imus that are giving me trouble on the raspberrypi 5 works on the raspberry pi 3b. I gathered that they both use 3v3 for i2c so I can't rationalize why it wouldn't work on both of them.

Hopefully the adafruit imu will shed some light when it arrives in a couple of weeks.

Until then, have a good one.
Reply
#8
(2024-07-01, 12:06 AM)Mentula Wrote: Altough It still perplexes me that the very same imus that are giving me trouble on the raspberrypi 5 works on the raspberry pi 3b. I gathered that they both use 3v3 for i2c so I can't rationalize why it wouldn't work on both of them.

So if you put it back on the pi3 it works fine? Or did one die and others work?

If we do want to find the issue we need to understand every detail.

Maybe you have both fried the i2c bus on one, and have software issues on the pi5?
Reply
#9
Hi,

To put it shortly, yes the imus works with the rpi3b as of right now.


The chain of events went something like this.

1. I ordered the icm20948 based chips in January and tested them on the rpi3b. Imu1 and imu2 worked flawlessly but imu3 only worked intermittently.
The test in question was getting them calibrated in openplotter-pypilot.


2. The rpi5 arrived and I spent a lot of time trying everything out and getting things set up. I ran imu1 and imu2 for a while and confirmed that the accelerometer worked. I did not see the compass move but not knowing any better I figured it would sort itself out when mounted in the boat. 
In total I probably had atleast imu1 plugged in and powered up for >40 hours.


3. I installed the rpi5 and the accompanying hardware in the boat, went out to sea to test it but could still not get the compass to calibrate. (The magnetic heading seems locked in place, moving when I turn quickly only to return to "xxx" degrees after a few seconds). 
This was when I started the thread.


4. As a last ditch effort I brought the rpi3b that had laid untouched since maybe fabruary, with me when we went sailing over the local holidays. I installed it while under way and to my suprise everything worked.
 Imu1 that had gotten the most use and I previously believed was the best one had some issues, dropping out for fractions of a second every few seconds.
Imu2 worked flawlessly so I used that one.
Imu3 was sometimes not detected as before.
But I managed to get heading data out of all three.
The hat web interface started successfully but I didn't do any further testing with that.
After some fiddeling with the autopilot gains I had it running well enough.


5. After retuning home I flashed a new op4 image and tested everything with the rpi5, same behavior as before.
I.e no compass and no hat web interface.
During this testing imu2 went "not detected" in pypilot when switching from "disabled" to "imu only" one time,  and stayed that way when I switched out the microSD to another image. I figure it's probably dead but I have yet to test it on the rpi3b.
Imu1 still works and does not stutter like it did on the rpi3b. (in the accelerometer menu, still no lifesigns from the compass).



I can't remember doing any f.ups with the gpio wiring but I can't rule out damage to the rpi5's i2c bus. Are there any tests I can run except getting another rpi5 and/or imu? I don't have an oscilloscope at hand, but I could probably convince my boss I need one if necessary.


It's a bit long winded but I hope it leads to less confusion instead of more.


Thank you again for taking the time!
Reply
#10
I dont think it would damage the rpi5 i2c bus, but it could damage the icm20948 i2c (maybe)

It must be a software issue. I have so many projects I have not begun testing on the pi5, yet. I initially put an image and it did not boot so I must try again.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)