I2C Error - zählt zwar nicht hoch, aber sie sind da...

ripschemitkraut

schläft auf /dev/dsk/c0t0
#1
Hallo. Habe meinen Copter zusammen gebastelt und ein paar Probleme.
Ich fang mal an _
Komponenten :
Megaboard von Goodluckbuy.
IMU 10DOF -> MPU6050 + HMC5883L + MS5611 von Drotek.
HLNE 15A Regler , turnigy motor

Am Anfang hate ich als I2C Errors und er zählte sich dumm und dämlich. Dann habe ich die Pullupwiederstände direkt auf die Imu gelötet an 5v - SDL und 5v an SDA. Dann haben die Fehler aufgehört zu zählen. Jetzt wollte ich alles einstellen und in der Gui steht dann manchmal 4 Errors oder auch 6 Errors und manchmal auch 0. Hochzählen tut er garnichts und die Imu arbeitet auch so wie sie soll. Ich vermute mal das hat was mit dem FTDI Adapter zu tun, da er ein wenig locker ist oder habe ich was übersehen ?

Beim starten des Copters hebt er nur vorne hoch und hinten kippt er über. Motordrehrichtung stimmt wie in diesem Bild .Propeller sind richtig herum drauf.Wirkrichtung ist auch in Ordnung in der Gui. Regler wurden einzeln angelernt. Hier ein Screenshot der Gui.



Jetzt meine Frage. Kann ich getrost hinwegsehen wegen der I2C Fehler ? Auch wenn sie nicht hochzählen.Passiert nur beim connecten der Gui.
Wie bekomme ich es hin das die hinteren motoren schneller laufen als die vorderen, da er ja vorne abhebt und hinten dann kippt ? Ist evtl der Akku hinten zu schwer ? Hier ein Bild des Copters.

.

Bin für jede Hilfe dankbar. Wenn sich jemand aus dem Rhein Main Gebiet hier rum tummelt und in der Nähe von Wiesbaden wohnt, wäre das optimal wenn da mal einer drüber schaut.
Muss sagen, dies ist mein erster. Bin nur Koaxial und hauptsächlich nur Fläche geflogen.

Hoffe habe nichts vergessen, bzw. einfach fragen was noch für Infos fehlen. Gruss aus Wiesbaden
 
Zuletzt bearbeitet von einem Moderator:

ripschemitkraut

schläft auf /dev/dsk/c0t0
#4
es ist die MultiWii_dev_r1143. Weil ich dort den ppm ausgang umlegen kann auf dem Board. Eprom Clear mach ich gleich mal und schau dann nochmal. So in etwa ?
/*
* EEPROM Clear
*
* Sets all of the bytes of the EEPROM to 0.
* This example code is in the public domain.

*/

#include <EEPROM.h>

void setup()
{
// write a 0 to all 512 bytes of the EEPROM
for (int i = 0; i < 512; i++)
EEPROM.write(i, 0);

// turn the LED on when we're done
digitalWrite(13, HIGH);
}

void loop()
{
}
 

Roberto

Erfahrener Benutzer
#5
Bei der IMU (http://www.drotek.fr/shop/en/62-imu-10dof-mpu6050-hmc5883-ms5611.html) darf es keine I2C Fehler mit der ORIGINAL 2.1 geben. " Dann habe ich die Pullupwiederstände direkt auf die Imu gelötet" Wie jetzt? Ich dachte, die hat LLC und Pullups dabei und man müsste höchstens noch Lötbrücken schliessen? Die multiwiiconfig ist auf der Seite auch angegeben. Die "internal pullups" weiter auskommentiert lassen - is klar. Eeprom clear ist natürlich auch wichtig, da hat kayle vollkommen recht.
Sonst fällt mir nur noch ein Wackelkontakt ein (z.B schlechte Lötstelle auf der IMU selbst) oder eine sehr "unsaubere" Spannungsversorgung ein.
LG
Rob
 

ripschemitkraut

schläft auf /dev/dsk/c0t0
#6
Zur wirkrichtung der Sensoren.
Wenn ich das Board nach recht um 45° schwenke geht Roll auch auf +45°. Das Board z.b. wie eine Rakete nach oben stelle steht bei pitch -90°. Ist das richtig ?
 

Roberto

Erfahrener Benutzer
#11
Hi!

Ich meinte diese Lötbrücke, die ich im Foto rot eingekringelt habe, die müsste dann die beiden Widerstände R1&2 zuschalten.
Die Sensor Wirkrichtung ist in den Devs gegenüber der orig 2.1 nicht geändert, d.h. Du kannst sie so, wie auf der Drotek Seite beschrieben verwenden:
Zitat:
MultiWii Code (with last version):

#if defined(DROTEK_10DOF_MPU)
#define MPU6050
#define HMC5883
#define MS561101BA
#define ACC_ORIENTATION(X, Y, Z) {accADC[ROLL] = Y; accADC[PITCH] = -X;
accADC[YAW] = Z;}
#define GYRO_ORIENTATION(X, Y, Z) {gyroADC[ROLL] = X; gyroADC[PITCH] = Y;
gyroADC[YAW] = -Z;}
#define MAG_ORIENTATION(X, Y, Z) {magADC[ROLL] = -Y; magADC[PITCH] = X;
magADC[YAW] = -Z;}
#define MPU6050_ADDRESS 0X69
#define MPU6050_I2C_AUX_MASTER // MAG connected to the AUX I2C bus of MPU6050
#undef INTERNAL_I2C_PULLUPS
#endif
LG

Rob
 

Anhänge

ripschemitkraut

schläft auf /dev/dsk/c0t0
#13
Ok nun hat sich die Drotek Imu erledigt. Mir ist soeben der Deckel vom MS5611 Baro abgegangen und ein kleiner chip ist rausgefallen. Habe den Baro jetzt ausgeschaltet. Das Board funktioniert zwar noch, aber halt ohne Baro.
Jetzt wechsel ich auf die 9Dof von Flyduino und und einen einzelnen MS5611 Baro mit Breakoutboard. Hoffe mal das klappt. Meld mich dann nochmal zurück :)
 

ripschemitkraut

schläft auf /dev/dsk/c0t0
#15
Habe jetzt die Imu getauscht auf eine 9Dof von Flyduino Diese funktioniert einwandfrei. Jetzt habe ich noch dieses MS5611 Breakoutboard von Drotek . Dieses habe ich mit an den I2C Bus drangelötet. Statt wie bei der Flyduino mit 5v habe ich diese an 3.3v angeschlossen. Bekomme dabei nur i2c Errors. Wie schließe ich das MS5611 BBoard mit an ? Auch an 5v. ? oder muss ich eine Brücke setzen wegen den spi und i2c anschluss ?
 

Roberto

Erfahrener Benutzer
#16
Der Versand ging aber schnell!
Das http://www.drotek.fr/shop/en/44-ms5611-pressure-barometric-board.html
schliesst Du nur auf 3,3V an! Dann müssen die I2C Leitungen HINTER dem LLC des Flyduino reingekabelt werden, also NICHT einfach parallel an die I2C Leitungen des 5V Arduino - das soll beim BMP085 evtl gehen.
Dein Bild bezieht sich auf den 3,3V Arduino.
Lötpunkt auf I2C und Adr. $77 (wird so von der Mwii erwartet: Original 2.1 "Sensors" ab Zeile 40)

LG
Rob
 

ripschemitkraut

schläft auf /dev/dsk/c0t0
#18
ok habe die ms5611 direkt an die flyduino 9dof dran. immer noch i2c errors. Habe die Brücken bez. i2c Adressen geschlossen und auch in Multiwii angegeben. Kein Erfolg. Argl. werd noch wahnsinnig.
 

ripschemitkraut

schläft auf /dev/dsk/c0t0
#19
Also Jürgen. Ich habe diese Drotek ausgetauscht gegen eine 9dof von Flyduino. Aber zurück zur Drotek. Meine sieht so ähnlich aus. Nur das GND und 3.3 vertauscht sind und die Lötbrücken unter A1 und A2 sind nicht vorhanden.
 

ripschemitkraut

schläft auf /dev/dsk/c0t0
#20
Da das ganze ein wenig unübersichtlich wird zähle ich mal auf was funktioniert und was nicht.

Flyduino 9Dof mit Pullupwiederständen auf Imu gelötet und an i2c bus von Megaboard. Läuft astrein.
Ms5611 wie von Robert beschrieben an flyduino 9Dof und an i2c bus vom Megaboard = i2c Fehler.
Habe alle konstelationen durch. Adressbrücke i2c + adresse in multiwii bestimmt = i2c fehler. Pullupbrücke auf ms5611 board gesetzt = i2c fehler.
ich bin am ende des Lateins.
 
FPV1

Banggood

Oben Unten