Crius AIOP v2 - LEA-GPS & MAG v1.2 anschließen

DerFlash

Erfahrener Benutzer
#1
Heyho zusammen. Bevor ich da was falsch mache, frag ich hier lieber nach entsprechenden Erfahrungen.

Ich habe bisher das Crius AIOP v2 mit einem 0815 GPS von eBay am laufen. Zb das hier ist es:
http://www.ebay.de/itm/Ublox-NEO-6M...=Wissenschaftliche_Geräte&hash=item19e37ebf69
Angeschlossen am S0~S3 passte das wunderbar. Die Qualität des Signals lies jedoch auf Grund der Mini-Antenne und keinem SAW Filter etc zu wünschen übrig ;-)

Daher hab ich mir dieses hier geshopt:
http://www.goodluckbuy.com/index.php?target=products&product_id=102726

Wenn ich die Kabel-Belegung richtig verstehe, scheint das natürlich eher für das original APM Board zu sein. Daher müsste ich nun also entsprechend um-löten und will dabei nichts falsch machen.

Ein paar Infos hatte ich schon hier gefunden, jedoch nicht das was mir hilft:
http://fpv-community.de/showthread.php?35817

Was ich mich also nun frage:

Verglichen mit dem Manual des Originals ist der I2C Port (3V3,SCL,SDA,GND) also für den MAG. Dieses kommt sicherlich einfach an den I2C Port des Crius AIOP v2 - da hab ich bisher nichts weiter dran. SCL & SDA müssen dabei nicht vertauscht werden, oder? Woher allerdings bekomme ich die 3V3? Beim FC kommen ja 5V raus. Und bei der Produkbeschreibung steht das 3V auch nur als optional. Kann ich das Kabel also einfach weg lassen und es reichen die 5V am zweiten Port des GPS? Ich hab auch etwas von einer Lötbrücke gelesen und finde die auch in der Nähe des I2C auf dem GPS Board. Was hat es damit auf sich?
Jemand ggf. auch direkt einen Hinweis, was ich seitens Firmware anpassen muss, um den dann zu nutzen?

Ansonsten ist da nun also noch der GPS-Port (+5V,TXD,RXD,GND). Den würd ich nun einfach wie das alte Board auch über Kreuz auf den S0~S3 Port legen. Sofern das Protokoll das Gleiche wie beim NEO vorher ist, dürfte das doch adhoc laufen, oder?

Vielleicht hat ja der ein oder andere unter euch genau dieses Setup laufen und mag mir ein paar Infos geben, bevor ich da etwas zerhaue.
 

matthiasw

Erfahrener Benutzer
#2
Dein neues GPS läuft mit 5V, sollte also problemlos am seriellen Port laufen.
Aber der Kompass läuft laut Platinenaufdruck mit 3.3V, aus dem Crius-Board kommen aber 5V! Also brauchts dazwischen einen Spannungsregler! Ob der schon auf dem GPS-Board verbaut ist, kann ich auf dem Foto nicht erkennen. In der Beschreibung steht zwar was davon; im Zweifel nachmessen, ob am Kompass die 3.3V anliegen, wenn das GPS mit 5V versorgt werden.

Beschaltung am I2C-Bus: SDA an SDA, SDL an SDL.
Internen Mag deaktivieren!
(#define DISABLE_INTERNAL_MAG in der AP_InertialSensor_MPU6000_I2C.cpp)

VG
Matthias
 
Zuletzt bearbeitet:

DerFlash

Erfahrener Benutzer
#3
Sodele...

Als erstes hab ich die kleinen PINs vorsichtig aus dem Stecker geholt und konnte die so entsprechend umverteilen bzw in den größeren Stecker des breiten S0~S3 Anschlusses umverlegen.
Somit bekommt das Board nun auf dem GPS Anschluss die 5V & RX/TX und läuft auch prima an (blaue LED). GPS Infos scheint er auch zu bekommen. Analog hab ich also auch die SCL/SDA & Masse des I2C Ports schon verbunden.

Dann hab ich mir mal die kleine Brücke angeschaut die auf dem GPS Board neben dem I2C Port liegt. Eines der Pads geht an den 3V3 Pin des Ports und auf dem anderen messe ich bereits 3.3V.
Ich bin kein Elektro-Fachmann, aber ich rate nun also mal, dass man hier also die Brücke setzen könnte und 3.3V über den Stecker zusätzlich füttern könnte um den internen LDO zu "entlasten/umgehen", da dieser ja grundsätzlich für Störungen verantwortlich sein könnte. Allerdings scheint der somit schon prima zu arbeiten, ich kann mir externe 3.3V also sparen...

Das Define DISABLE_INTERNAL_MAG hab ich gesetzt und die Firmware neu aufgespielt. Das Interne scheint damit auch prima abgeschälten, denn im APM Planner regt sich beim Bewegen des Copters nix mehr im HUD. Compass Rotation hab ich auch korrekt auf "Roll 180", da der Compass ja unter dem Board liegt. Und natürlich auch die Compass-LiveCalib durchgeführt, was auch prima Werte erkannte. Auch sehe ich im Graph bei RAW_IMU.xmag entsprechende Ausschläge beim Bewegen des Boards.

Trotzdem will das Ganze noch nicht so recht:

Denn der Compass unten im HUD dreht sich zwar mit, die "Lage" oben aber bleibt still :-/ Ich hab in den Advanced-Parametern mal noch "Compass_external" auf 1 gesetzt, auch kein Erfolg. Und die Accel Calibration schlägt auch fehl und hat bei den Offsets nur jeweils den ersten Wert?! oO

Hab ich irgend etwas vergessen?
 
#4
Wenn der interne Compass Disabled wird IN der der Firmware, muss auch der externe IN der Firmware enabled werden.

Steht hier auch irgendwo etwas dazu.

In der Originalen APM gehts per MP, bei einem Crius nicht.
 

matthiasw

Erfahrener Benutzer
#5
Sehr komisch. Ich habe ja nun auch einen externen Kompass verbaut, meiner hat aber einen eigenen Spannungsregler und läuft daher mit 5V. Ansonsten genau so, wie Du beschrieben hast und funktioniert zumindest im Planner tadellos.
Ich stecke in dieser Materie zwar noch in den Kinderschuhen, aber eigentlich sollte alles funktionieren.
I2C-Errors im Statusfenster?

Wenn der interne Compass Disabled wird IN der der Firmware, muss auch der externe IN der Firmware enabled werden.
Steht hier auch irgendwo etwas dazu.
In der Originalen APM gehts per MP, bei einem Crius nicht.
Hab ich noch nicht gelesen/gefunden - bin für einen Tipp auch dankbar :)
 
Zuletzt bearbeitet:

DerFlash

Erfahrener Benutzer
#6
Sehr komisch. Ich habe ja nun auch einen externen Kompass verbaut, meiner hat aber einen eigenen Spannungsregler und läuft daher mit 5V. Ansonsten genau so, wie Du beschrieben hast und funktioniert zumindest im Planner tadellos.
Eben. Dieses Board scheint auch einen eigenen 3V Regler an Board zu haben. Daher kann ich mir die Beachtung der 3V am Anschluss sparen, darf eben nur nicht 5V drauf geben ausversehen ;-) Daher hab ich das Kabel direkt weggelassen.

Ich stecke in dieser Materie zwar noch in den Kinderschuhen, aber eigentlich sollte alles funktionieren.
I2C-Errors im Statusfenster?
Bin mit I2C auch nicht wirklich firm, aber ich schau mal was ich dazu finde.

Wenn der interne Compass Disabled wird IN der der Firmware, muss auch der externe IN der Firmware enabled werden.
Hab ich noch nicht gelesen/gefunden - bin für einen Tipp auch dankbar :)
Hmm, das wär mir auch neu. Auch im Code find ich dazu nix und er scheint ja bereits irgendwelche Daten zu bekommen, sonst würd ich keine MAG_X Ausschläge haben.
Was ich dagegen nun fand:

https://github.com/MegaPirateNG/ardupilot-mpng/issues/120
You have to erase and reset to factory default after uploading. Please get external compass in the correct orientation. By the way, you dont realy need ext compass. I had reverted back to the onboard compass now.
Das würd es zumindest erklären. Ich resette mal und mach vorher nen Backup ;-)

[edit]
Ha! Das war die Krux! Nun bekomm ich im HUD bereits leichte Bewegungen und lern nun erst einmal wieder alles an.

*freu*
 
Zuletzt bearbeitet:

DerFlash

Erfahrener Benutzer
#8
Nachdem der interne Kompass über das besagte #define deaktiviert war (Bestätigung: beim Abstecken des externen Kompass gibt's im Graph unter MAG_X etc. nur noch eine Null-Linie ***), wollt ich mit dem Setup also los düsen. Pustekuchen: Im Loiter zog er sofort wie ein Irrer davon in irgend eine zufällige Richtung. Manchmal ging er auch "nur" in eine 30m große Tollet-Bowl ;-)

Nachdem ich dann geraten hab, dass es trotz HDOP von weit unter 2 und genug Satelliten dennoch am GPS liegen dürfte, war dem leider nicht so. Auch mit Standard-Werten und 9600 baud (die APM Firmware stellt dann beim Hochfahren selbst alles nötige ein) machte er weiterhin diesen Quatsch.
Also hab ich ein wenig geforscht und fand auf diydrones.com häufiger den Hinweis, dass auch das COMPASS_ORIENT ggf. falsch sein könnte und man doch beim original 3DR GPS&MAG eben "Roll 180" einstellen solle. Das allerdings hatte ich bereits getan und lustigerweise brachte auch "None" den Copter problemlos in die Luft, aber auch da mit derben Loiter-Problemen.

Lange Rede kurzer Sinn: Ich hab dann also die COMPASS_ORIENT ein wenig durch geraten und kam irgendwann auf die Idee: "Er steht zwar auf dem Kopf, aber ggf. schaut er auch in die falsche Richtung(YAW). Also dacht ich mir, dass doch 180° Roll und 180° YAW mal ein guter Versuch wäre. Das ist dann natürlich das Gleiche wie "Pitch 180", was ich also direkt mal gesetzt hab. Und WUSCH, stand er 1A in der Luft im Loiter und kam auch beim RTL mit ner Punktlandung herunter! YEA!

Ergo: Bei obig genanntem Device und dem Standard-Einbau (Pfeil nach vorn und GPS-Antenne nach oben), nicht "Roll 180", sondern "Pitch 180" einstellen - dann klappt's auch!


Ich würde das Ganze nun gern noch bestätigen. Dafür kann ich mir doch sicher den Chip mal anschauen. Würd den also gleich mal ausbauen, müsst nur wissen, auf was ich achten muss?! Jemand ne Idee?
[edit]Ganz simpel erledigt: Ich hab den Chip flott gefunden (L883...) und das GPSMag Board genau so hingelegt, dass der Chip genau so ausgerichtet ist, wie der auf dem Crius AIOP Board. Rolle ich dann das GPS Board um 180°, zeigt der Pfeil nach hinten *g* Ergo ist es tatsächlich "Roll 180, Yaw 180", wenn ich den Pfeil nach vorn zeigen lasse beim Einbau! Also besagtes "Pitch 180"... Na klasse, könnten die Chinesen bitte mal RICHTIG herum kopieren? Danke! :p
[/edit]


Alternativ könnte man sicher auch im Log beim Bewegen des Copters schauen, wie die ausgegebenen Werte sich beim Bewegen des Copters verhalten. Aber auch hier weiss ich so spontan nicht was sich wohin bewegen muss. Hier jemand eine Idee?

*** wichtiger Hinweis: Nicht verwirren lassen! Das HUD funktioniert nur deswegen noch, weil er dafür auch die Beschleunigungssensoren nehmen kann *g*
 
Zuletzt bearbeitet:
FPV1

Banggood

Oben Unten