"BradWii" und welche 30.5mm 'nano-sized' FC mit onboard Baro

skyfreak

a freak on a leash
#1
hallo community

bin über die BradWii FW gestolpert
http://www.rcgroups.com/forums/showthread.php?t=1922403
und konnte hier im forum nichts zu BradWii finden :(

ich finde die feautres recht sexy und würde die gerne mal testen.

nun ist es so, dass alle meine MultiWii FCs 32-bit sind und die BradWii leider nur auf bestimmten Boards läuft.

2 fragen dazu:

ad 1) hat jemand damit schon mal experimentiert und die BradWii getestet?

ad 2) gibt es eine BradWii kompatible FC mit onboard baro in 'nano-size' also 30.5mm?

ich würde das gerne mal auf meiner neuen kleinen rakete testen und da ist eine nano-FC mit 30.5mm bohrungen und onboard baro pflicht.

gruss,
der skyfreak
 
Zuletzt bearbeitet:

Zuse

Erfahrener Benutzer
#2
hi,
ist ja interessant :)
habe mich gerade eben durch die "Brad-Wii" gelesen und mal trocken kompiliert ...
und wollte hier nachfragen, weil die Suchfunktion mir nichts lieferte ...

In der "defs.h" sind die derzeitigen Boards gelistet und mit Baro finde ich ad hoc
das "HK MultiWii 328P" , das "Sirius AIR", das Sirius Paris V4", das "Whitespy MultiWii Pro2".
Weitere Boards kannst Du in der "config.h" definieren.
Über die Größe der genannten Boards weiß ich allerdings nichts, weil es a) für mich nicht wichtig ist
und b) meine MWC Flip 1.5 vom Createur der Software berücksichtigt ist.

Manfred
 

skyfreak

a freak on a leash
#3
hallo manfred

da hätte ich auch selbst drauf kommen können in der def.h nachschauen zu können ;)
bin zu verwöhnt mit den fertigen hex der Harakiri, die auf allen meinen 32-bit läuft.

witespy flip wäre von der grösse her passend aber ohne baro
der rest sieht nach 45-er MK size aus :(

aber ich habe schon mal einen MS5611 direkt auf eine acro naze gelötet. vielleicht geht das ja beim flip auch.

grüsse,
guido
 

Zuse

Erfahrener Benutzer
#5
Guido,
ich vermute mal aus dem Handgelenk, dass es möglich sein sollte, eine weitere FC in der defs.h anzulegen,
quasi eine Kopie einer vorhandenen und den MS5611 hinzufügen,
eine FC mit dem MS5611 ist, glaube ich, schon vorhanden und somit die Definitionen für diesen Baro.
Für heute ist es mir allerdings schon zu spät bzw. früh für weitergehende Checks

Manfred
 

skyfreak

a freak on a leash
#6
... das eilt auch nicht.
aber ich wäre sehr flücklich, wenn du das mal checken könntest, denn ich habe nicht wirklich einen plan davon.
sprich mein nanowii habe ich noch mit arduino seinerzeit ordentlich in die luft bekommne, aber da war ja auch nur ein wneig die config.h anupassen, sprich einkommentieren.
selber kompiliert habe ich noch nie und in den anderen files rumgefummelt.

gutnacht und danke bis hier;)
skyfreak
 

Zuse

Erfahrener Benutzer
#7
moin Guido,
vorab:
wenn Du bei der NanoWii die config.h angepasst hast und die FC " ... ordentlich in die Luft bekommen ..." hast, hast Du damit praktisch kompiliert (und das Ergebnis neu geflasht).
Wesentlich anders ist es mit der BradWii auch nicht, gleiche Umgebung, gleiches Vorgehen.

Voraussetzung ist, dass das passende Board vom Kollegen Brad oder einem seiner Mitstreiter bereits eingebracht worden ist - das erkennst Du in seiner "config.h" an einer Liste verschiedener Boards - oder Du ergänzt diese Liste um einen neuen Eintrag in der Art
Code:
#define CONTROL_BOARD_TYPE CONTROL_BOARD_WITESPY_FLIP2.5
und um die _passenden_ Zeilen in der defs.h ...

Letzeres ist auf den ersten Blick nicht allzu schwierig:
unter den Definitionen für das "MWC Flip 1.5" findest Du whitespys "MultiWii Pro 2.0" und dieses enthält u.a. Deinen ersehnten Baro MS5611!
Somit ist klar, dass dieser Typ von BradWii unterstützt wird.

Würdest Du eine Kopie vom darüber definierten " ... CONTROL_BOARD_WITESPY_FLIP" machen und diese z.B. "... FLIP2.5" nennen, könntest Du an der Stelle, wo als Baro
Code:
   #ifndef BAROMETER_TYPE
      #define BAROMETER_TYPE NO_BAROMETER // baro
   #endif
ein
Code:
   #ifndef BAROMETER_TYPE
      #define BAROMETER_TYPE MS5611
   #endif
machen ...

Aber der Teufel steckt ja im Detail:

weitere Definitionen betreffen z.B. den Kompass - das kleine Flip 1.5 hat keinen, das 2.5 aber wohl.
Natürlich kannst Du hier ebenso vorgehen, wie oben beim Baro beschrieben, aber dazu musst Du erst mal feststellen, wie der Kompass bei Deinem Board integriert ist, ob solo intern am I2C oder wie bei der Vorlage "PRO 2.0".
Dort werden die Kompasswerte durch den ACC MPU6050 durchgeschleift.
Selbst wenn zu vermuten ist - aber nicht sein muss - dass Whitespy in beiden Entwürfen die gleiche Technik verwendet, muss m.W. zusätzlich die Betriebsart des MPU6050 für das Durchleiten der externen Daten umgestellt werden.
Aber es bleiben noch weitere Hürden, z.B. die Anzahl der Seriellen Schnittstellen, die ein paar Zeilen tiefer definiert werden.
Man muss also Zeile für Zeile überprüfen, was beim neuen Board noch stimmt / passt und was _wie_ geändert werden muss.
Ich fürchte, ohne Schaltungsschema und etwas besseren Schaltungskenntnissen wirst Du nicht weit kommen.
Aber eventuell hilft es, beim Autor der BradWii anzufragen, inwieweit er die verschiedenen Boards von Whitespy inzwischen integriert hat - er scheint mir aus der Ferne betrachtet sehr hilfsbereit zu sein.


Gruß
Manfred
 
Zuletzt bearbeitet:

skyfreak

a freak on a leash
#8
hallo manfred

besten dank für deine detaillierten infos!
im rcg thread habe ich gestern abend schon mal nachgefragt, mal schauen was da kommt.

auch wenn ich meine deine ausführungen nachvollziehen zu können, und mir z.b. der kompass völlig wurscht ist, bleibt eben doch noch der von dir beschriebene rest :(

aber wie du schon sagst, brad scheint recht kooperativ und jetzt warten wir mal was drüben kommt an feedback.

vielen lieben dank und grüsse,
der skyfreak
 

Zuse

Erfahrener Benutzer
#10
hallo Guido,
ich habe mich in der Zwischenzeit mal ein wenig umgesehen - Whitespy tönt zwar auf seiner Webseite "Alles zum Fliegen an einem Platz", nimmt sogar das Wort "Documents" in den Mund und zeigt auf einen Dropbox-Ordner, aber von einem Schema weit und breit keine Spur.
Deshalb habe ich mal einen Blick in die dort angebotene "MultiWii_Flip_2_5" getan und finde folgendes:
in der "config.h" hat er die "FreeIMU043" als Board ausgewählt, d.h. dieses soll kompatibel zu seinem Flip2.5 sein, und unter defs.h finde ich den entscheidenden Hinweis bei den verbauten Sensoren:
Code:
#if defined(FREEIMUv043)  || defined(MICROWII)
  #define MPU6050
  #define HMC5883
  #define MS561101BA
  #define ACC_ORIENTATION(X, Y, Z)  {accADC[ROLL]  = -X; accADC[PITCH]  = -Y; accADC[YAW]  =  Z;}
  #define GYRO_ORIENTATION(X, Y, Z) {gyroADC[ROLL] =  Y; gyroADC[PITCH] = -X; gyroADC[YAW] = -Z;}
  #define MAG_ORIENTATION(X, Y, Z)  {magADC[ROLL]  =  X; magADC[PITCH]  =  Y; magADC[YAW]  = -Z;}
  #define MPU6050_I2C_AUX_MASTER // MAG connected to the AUX I2C bus of MPU6050
  #undef INTERNAL_I2C_PULLUPS
#endif
Somit scheint klar, dass der Kompass, wie schon vermutet, als Slave hinter dem/der MPU6050 seine Daten über den ACC abliefert.
Und das gleiche finden wir in der BradWii für die "Whitespy_MultiWii_PRO_2" !

Übernimmt man nun die beiden Einträge / Codezeilengruppen für den Baro und für den Mag aus dem letztgenannten in eine Kopie der "Whitespy_Flip", sollte es das gewesen sein.
Zu den von mir erwähnten seriellen Schnittstellen habe ich mir inzwischen die Meinung gebildet, dass sich Whitespys Flip1.5 und Flip2.5 diesbezüglich nicht unterscheiden; sie unterscheiden sich lediglich in der Sensorenausstattung ... und im Preis.

Ich werde gleich nach diesem Text einfach mal die obigen Änderungen durchführen und "trocken" kompilieren.
Ernsthaft testen könnte ich es wegen fehlendem Flip2.5 eh nicht.

Gruss
Manfred
 

Zuse

Erfahrener Benutzer
#11
Hallo Guido,

Änderungen in der BradWii "config.h" :
(wegen Übersichtlichkeit den kompletten Abschnitt angezeigt)

Code:
// Choose your control board:
//#define CONTROL_BOARD_TYPE CONTROL_BOARD_HK_MULTIWII_PRO_2
//#define CONTROL_BOARD_TYPE CONTROL_BOARD_HK_MULTIWII_328P
//#define CONTROL_BOARD_TYPE CONTROL_BOARD_HK_NANOWII
//#define CONTROL_BOARD_TYPE CONTROL_BOARD_HK_POCKET_QUAD
//#define CONTROL_BOARD_TYPE CONTROL_BOARD_SIRIUS_AIR
//#define CONTROL_BOARD_TYPE CONTROL_BOARD_SIRIUS_AIR_GPS
//#define CONTROL_BOARD_TYPE CONTROL_BOARD_SIRIUS_PARIS_V4
//#define CONTROL_BOARD_TYPE CONTROL_BOARD_WITESPY_FLIP
#define CONTROL_BOARD_TYPE CONTROL_BOARD_WITESPY_FLIP_2_5
//#define CONTROL_BOARD_TYPE CONTROL_BOARD_WITESPY_MULTIWII_PRO_2
//#define CONTROL_BOARD_TYPE CONTROL_BOARD_WITESPY_MULTIWII_PRO_2_GPS
Du siehst in der drittletzten Zeile eine neue Controlboard Definition

In der "defs.h" fügst Du folgenden Block komplett ein:

Code:
#elif (CONTROL_BOARD_TYPE==CONTROL_BOARD_WITESPY_FLIP_2_5)
   #define MICROCONTROLLER_TYPE MEGA328P
   #define GYRO_TYPE MPU6050 // gyro
   #define GYRO_ORIENTATION(VALUES,X, Y, Z) {VALUES[ROLLINDEX] =  -Y; VALUES[PITCHINDEX] = X; VALUES[YAWINDEX] = -Z;}
   #define ACCELEROMETER_TYPE MPU6050 // accelerometer
   #define ACC_ORIENTATION(VALUES,X, Y, Z)  {VALUES[ROLLINDEX]  = X; VALUES[PITCHINDEX]  = Y; VALUES[YAWINDEX]  =  Z;}
   #ifndef COMPASS_TYPE
      #define COMPASS_TYPE HMC5883_VIA_MPU6050 // compass
   #endif
   #define COMPASS_ORIENTATION(VALUES,X, Y, Z)  {VALUES[ROLLINDEX]  =  X; VALUES[PITCHINDEX]  = Y; VALUES[YAWINDEX]  = -Z;}
   #ifndef BAROMETER_TYPE
      #define BAROMETER_TYPE MS5611            // baro
   #endif
   #ifndef MULTIWII_CONFIG_SERIAL_PORTS
      #if (RX_TYPE!=RX_DSM2_1024 && RX_TYPE!=RX_DSM2_2048)
         #define MULTIWII_CONFIG_SERIAL_PORTS SERIALPORT0
      #else
         #define MULTIWII_CONFIG_SERIAL_PORTS NOSERIALPORT
      #endif
   #endif
   #ifndef GPS_TYPE
      #define GPS_TYPE NO_GPS
   #endif
   #if ((RX_TYPE==RX_DSM2_1024 || RX_TYPE==RX_DSM2_2048) && !defined(RX_DSM2_SERIAL_PORT))
      #define RX_DSM2_SERIAL_PORT 0
   #endif
   #define AUX2_RX_INPUT (DIGITALPORTB | 4)
   #define PCINTERRUPT4PORTANDPIN AUX2_RX_INPUT
Zugegeben, dass ist die billigste Art :)
Feiner wäre ein gemeinsamer "elif Whitespy_Flip ODER Whitespy_Flip_2_5" Definitionsblock und dann im Block eine Unterscheidung beim Barometer und beim Kompass, wenn Flip, dann Baro=No_Baro, sonst Baro=MS5611 usw usw...

Ich habe problemlos durchlaufen lassen, die Codegröße wächst - natürlich - von ca. 21k auf 26k an, schließlich kommen die beiden Sensoren nun hinzu.

Gruß
Manfred

Edit:
Schwachstelle könnte die Orientierung des Kompass sein!
Wenn der Sensor auf dem Flip2.5 anders angeordnet ist als auf der MultiWii_PRO_2, kann es Probleme geben!
 
Zuletzt bearbeitet:

skyfreak

a freak on a leash
#12
ganz grosse kino manfred !!! daaaanke !!!

der mag sollte für mich und meine belange eh kein problem darstellen, auf meinen naze32 mit harakiri schalte ich den immer in der multiwii pid auf "machtlos" mit MagP = 0 (war ein tip von roberto um zumindest den einfluss des mag komplett zu eliminieren, ohne ihn von der naze löten zu müssen oder die FW anzupassen und zu kompilieren.)

was ich mit der bradwii testen möchte sind

- auto pid tuning
- the Throttle Helper
- baro / altitude hold
- Uncrashability Mode

und dazu sollte der baro reichen denke ich?!

meine
Flip 2.5 ist noch auf dem postweg, kann noch 2-3 wochen dauern denke ich. man berichtet witespy Lieferungen sind nicht die schnellsten :(

mit deiner erlaubnis würde ich deinen input gerne auch in der RCG posten.
ad 1) gibt es da noch jemanden mit einer flip 2.5 der wie ich auch keinen plan hat aber schon testen könnte da er die Flip 2.5 da hat.
ad 2) wenn die kollgen drüben den code sehen und rüber schauen, dann findet sich vielleicht doch jemand der Flip via elif in 1.5 und 2.5 kombiniert wie von dir beschrieben.

aber ohne dein ok werde ich da noch nichts anleiern, würde mich also über dein GO freuen.

danke und grüsse,
der skyfreak



ui gleich noch eine frage bitte, und sorry fass ich da echt keinen plan habe.

bei der multiwii ist ja immer eine .ino dabei die ich öffne und dann alle relevanten dateien in reitern sehe, editiere und dann neu kompiliere und in die FC spiele.

wenn ich das master zip lade finde ich aber nigrends eine .ino.
im arduino dann "öffnen" finde auch nichts was out of the box geöffnet wird wie bei der multiwii ino.
und dann sah ich aber eine .hex und bin jetzt noch mehr verwirrt :(

wie spiele ich das ganze denn in die
[FONT=arial, helvetica, sans-serif]Flip 2.5?
so wie bei der mutliwii im arduino über compile und upload scheint es ja nicht zu funktionieren.
[/FONT]
 
Zuletzt bearbeitet:

Zuse

Erfahrener Benutzer
#13
Hi Guido,

im RCG habe gerade eben eine Kurzform vom obigen Text eingestellt.

Zur *.ino:

die Endung *.ino wird auch hier bei mir (Win8) versteckt, ist aber vorhanden!
Wenn Du die BradWii.zip ausgepackt hast, findest Du eine (einzige) bradwii mit ca. 22k, das ist die einzige *.ino
Diese in Arduino1.0.5 öffnen reicht und Du siehst alle mit anhängenden Files bzw. Sektionen.
Dann kannst Du nach Herzenslust die config.h und die defs.h ändern.

Vor dem Kompilieren und flashen solltest Du in der Arduino IDE dann eine 16MHz 328er 5V als Ziel einstellen, das passt dann.

Manfred
 

franko_

Erfahrener Benutzer
#15
Ich möchte auch mal die BradWii testen und habe aus Versehen die Multiwii Pro Version von Whitespy geordert.
Leider steht die ja nicht so direkt auf auf der Liste, da sich andere Sensoren auf dem Board befinden.

Soweit ich das beurteilen kann, müssten der BMP085 und ITG3205 in den Code implementiert werden.
Kann sein das ich da evtl.von Euch Unterstützung brauche.

P.S.: Bei mir dauern Bestellungen bei Whitespy i.d.R. nicht länger als 15 Tage, dann habe ich die im Briefkasten.
(finde ich jetzt nicht sooo lange)
 

zerosight

Erfahrener Benutzer
#16

franko_

Erfahrener Benutzer
#17
Das ging aber schnell, Danke @zerosight!

Habe ich garnicht überprüft, schön das es Dir aufgefallen ist. :)
Dann brauche ich mir darüber gar keinen Kopf zerbrechen..

So dann muss mal Whitespay gas geben, will endlich mal BradWii fliegen.
 

franko_

Erfahrener Benutzer
#18
Gestern habe ich mal versucht, aber den Baro BMP085 kriege ich nicht gescheit zum laufen.
Kriege immer werte von 118 angezeigt, das Board was unter Multiwii läuft ist das FFIMUv2.

Habe auch schon andere getestet, aber der Baro scheint nicht mit Bradwii sauber zu funktionieren.
 
Zuletzt bearbeitet:
FPV1

Banggood

Oben Unten