ICM20948 in Sunray verwenden

Algo

Active member
Da ich statt der der MPU6050 nun die neuere IMU ICM20948 mit Sunray verwende,
hier eine kleine Anleitung wie man sie, solange keine offizielle Unterstüzung in Sunray erfolgt ist, einbinden kann.

Vielen Dank an erster Stelle für die ganze Arbeit die @WhatATest sich gemacht hat!!!
Sein Pullrequest ist hier zu finden bzw. die Anleitung basiert auf dessen Daten:

Ich habe die ICM20948 von Pimoroni in Verwendung
Sie wird genauso wie die MPU6050 angeschlossen, der INT Anschluss bleibt unbelegt.
Eingangsspannung bzw. Jumper ist egal, weil sie 3,3V und auch 5V unterstützt.
Als Halterung habe ich meine https://www.thingiverse.com/thing:5022421 weiterverwendet, den letzten Halt erhält sie durch etwas Isolierband.

Nun zur Einbindung in Sunray (verwende den letzten Sunray Release 1.0318.
- Download des Brunch
- entpacken des Ordners aus dem Brunch sunray/src/icm in den Ordner vom SunrayRelease sunray/src
- entpacken der Dateien icmDriver.ccp und icmDriver.h aus dem Brunch sunray/src/driver in den Ordner vom SunrayRelease sunray/src/driver
- Alle Änderungen die hier mit dem orangen Kästchen links sind in den jeweiligen Dateien vom Sunrayrelease abändern bzw. ergänzen.
- in der config.h müssen dann sowohl die MPU6050 und ICM20948 aktiviert werden (nicht wundern, geht aktuell leider nicht anders)
 
Zuletzt bearbeitet:
Zitat "TDK InvenSense":
NRND (Not Recommended for New Design):
MPU6050/9050/9250/9255 etc.
ICM-20948/ICM-20648 etc.

Recommended for New Design (s. hier):
ICM-42670-P / ICM-42688-P

=> die oberen Chips wird es in ein paar Jahren nur noch schwer (bzw. teuer) für neue PCB's zu kaufen geben weil abgekündigte Chips in der Regel nicht mehr produziert werden (die Programmierung unterscheided sich teilweise erheblich, daher werden ständig neue Sunray-Software-Treiber benötigt und der "ICM-20948" ist auch nur ein weiterer Zwischenschritt ;)... PS: Der Pull-Request wurde mit einigen Korrekturen in den Master-Zweig eingepflegt - für 64-Bit Systeme wie Raspberry-PI muss das ganze noch getestet werden (da gab es für 64-Bit Systeme im MPU-Code einen Bugfix damit es mit der MPU-IMU lief) )
 
Zuletzt bearbeitet:
Hat der Sensor einen merklichen Vorteil zum MPU6050?
habe mal das Thema umbenannt, ich wollte das Thema hier eigentlich nur erstellen um eine alternative IMU verwenden zu können und die Einbindung in Sunray auch anderen zu erleichtern.

Persönlich hatte ich etliche Probleme mit den MPU6050, in meiner Mähggy ist die zweite drin, die geht immerhin nun schon seit 2 Jahren. Bei meinem zweiten Mäher hatte ich bisher kein Glück und bin daher froh um eine Alternative. Wenn ich mir einige Posts hier im Forum von anderen bzgl. der MPU6050 anschaue bin ich kein Einzelfall, die Qualität scheint sehr zu schwanken. Der Langzeittest fehlt natürlich bei der ICM20948.
Einen wirklichen Vorteil gibts meiner Meinung nach nicht so lange sie vefügbar ist und man eine funktionierende erwischt, die ICM ist teurer und die Funktionen sind ja an sich gleich was Sunray betrifft.

Aber schön, dass die Implementierung/Pullrequest von @WhatATest es nun in den Masterzweig gefunden hat. :) Danke Alexander
 
I just checked why a MPU needs to be defined.
Seems like the mpu library requires one to be defined to compile and arduino IDE tries compile everything whether its included or not.

Changing line 56 in inv_mpu.c from:
Code:
#error  Which gyro are you using? Define MPUxxxx in your compiler options.
to something like
Code:
#define MPU6050
should do the trick.
 
Zuletzt bearbeitet:
Oben