Kompass OSTC2
Posted: Thursday 15. August 2019, 23:06
Hallo,
ich finde den Kompass am OSTC 2 fast unbenutzbar, bei mir springt der Kurs gut 30° hin und her und es ist schwer den sinvoll einzusetzen..
Ich habe mir das mal genauer angeschaut. Die "Noise" scheint ja vom Magnetometer und nicht von irgend einer Rechnung an der Auflösungsgrenze oder von Beschleunigungssensor zu kommen leider
Der Chip scheint ja ein LSM303C zu sein, leider ohne Gyro, sonst könnte man einen Kalman Filter verwenden..
In der i2c.asm auf Zeile 623 b.z.w. am Sprungpunkt I2C_init_compass3, wird der Chip ja konfiguriert.
Wenn ich ins Datenblatt schaue, gibts im Register CTRL_REG1_M die Bits OM1 und OM0 sowie im Register CTRL_REG4_M OMZ1 und OMZ0.
Die Bits steuern einen sog. "Operative mode", leider ist der im Datenblatt nicht weiter beschrieben und ich habe auch sonst keine Infos drüber gefunden. Lediglich oben in den Spezifikationen findet sich ein Eintrag "Magnetic RMS noise" mit 3.5 mgauss typical sowie dem Hinweis unter Test Conditions "Ultra High Performance Mode".
Der Performance Mode scheint also irgendwie einen Einfluss auf die Noise zu haben,
Könnte man mal testweise in der i2c.asm
[pre]
movlw b'00010000' ; CTRL_REG1_M (10Hz) 0x20
zu
movlw b'01110000' ; CTRL_REG1_M (10Hz) 0x20
[/pre]
und
[pre]
movlw b'00000000' ; CTRL_REG4_M (Z in Low-power mode) 0x23
zu
movlw b'00001100' ; CTRL_REG4_M (Z in Low-power mode) 0x23
[/pre]
ändern um jeweils den "Ultra High performance Mode" zu selektieren?
Ich traue mich nicht eine selbst gebaute Firmware auf meinen OSTC2 zu flashen, da ich Angst habe ihn zu bricken ohne Möglichkeit ihn wieder herzustellen
Zusätzlich könnte man noch eine Glättung der ° Anzeige einbauen.. Einfach sowas wie
[pre]
Heading = Heading*0.8+newHeading*0.2
[/pre]
ich finde den Kompass am OSTC 2 fast unbenutzbar, bei mir springt der Kurs gut 30° hin und her und es ist schwer den sinvoll einzusetzen..
Ich habe mir das mal genauer angeschaut. Die "Noise" scheint ja vom Magnetometer und nicht von irgend einer Rechnung an der Auflösungsgrenze oder von Beschleunigungssensor zu kommen leider
Der Chip scheint ja ein LSM303C zu sein, leider ohne Gyro, sonst könnte man einen Kalman Filter verwenden..
In der i2c.asm auf Zeile 623 b.z.w. am Sprungpunkt I2C_init_compass3, wird der Chip ja konfiguriert.
Wenn ich ins Datenblatt schaue, gibts im Register CTRL_REG1_M die Bits OM1 und OM0 sowie im Register CTRL_REG4_M OMZ1 und OMZ0.
Die Bits steuern einen sog. "Operative mode", leider ist der im Datenblatt nicht weiter beschrieben und ich habe auch sonst keine Infos drüber gefunden. Lediglich oben in den Spezifikationen findet sich ein Eintrag "Magnetic RMS noise" mit 3.5 mgauss typical sowie dem Hinweis unter Test Conditions "Ultra High Performance Mode".
Der Performance Mode scheint also irgendwie einen Einfluss auf die Noise zu haben,
Könnte man mal testweise in der i2c.asm
[pre]
movlw b'00010000' ; CTRL_REG1_M (10Hz) 0x20
zu
movlw b'01110000' ; CTRL_REG1_M (10Hz) 0x20
[/pre]
und
[pre]
movlw b'00000000' ; CTRL_REG4_M (Z in Low-power mode) 0x23
zu
movlw b'00001100' ; CTRL_REG4_M (Z in Low-power mode) 0x23
[/pre]
ändern um jeweils den "Ultra High performance Mode" zu selektieren?
Ich traue mich nicht eine selbst gebaute Firmware auf meinen OSTC2 zu flashen, da ich Angst habe ihn zu bricken ohne Möglichkeit ihn wieder herzustellen
Zusätzlich könnte man noch eine Glättung der ° Anzeige einbauen.. Einfach sowas wie
[pre]
Heading = Heading*0.8+newHeading*0.2
[/pre]