Ich arbeite an einer eigenen Firmware für den Assan GA250 Gyro, und den Fortlauf des Projekts werde ich hier beschreiben.
Features
- Servos 1520us @ 55Hz, 250Hz, 333Hz und 760us @ 333Hz
- Servo Endposition rechts und links und Mittenposition frei einstellbar
- Debounce Parameter für perfekte Pirouettenstops im Headinghold Modus
- viele weiter Einstellmöglichkeiten wie Drehmomentkompensation, fixed wing Modus, usw.
- Parameter Einstellung über eine Windows-GUI oder in-field über eine Programmingbox
It’s the best of the cheap!
Anleitungen
siehe unter Externe Beiträge
Nachbauer (soweit mir bekannt, Leute, meldet Euch
)
linuxholgi… der erste Mutige [rc-heli.de Thread]
chris3002… der zweite Mutige [rc-heli.de Thread](Bericht hier)
steidlmick… und schon der dritte Mutige [rc-heli.de Thread]
mestre @ rcgroups (mit Testbericht und Vergleich zum LH GY520)(und hier), Pitchfella @ rc-heli.de, BrucePage @ rcgroups, robbancs @ rcgroups, ablack @ rcgroups (Einsatz als Flächengyro!), JanRy @ rcgroups (mit toller Eigenbau-Programmierbox hier), closedsink @ rcgroups, ElectoPete @ rcgroups, Rotosaab @ rcgroups (mit Vergleich zum origanlen GA250 und LH GY520), richy18 @ rc-heli.de
Neueste Nachrichten
13. März 2012: Ich habe ein kleines Tool, AvrBurnTool v0.01, geschrieben. Damit wird das Brennen des GA250 mit dem ISP AVR Programmer nun zum Kinderspiel.
8. März. 2012: Diskussionsthread: Gyro GA250 + alternative Firmware: The Best of the Cheap!?
7. März 2012: Neue Firmware v0.16 verfügbar. Mit Debounce-Parameter für perfekte Pirostops! Darauf bin ich jetzt ein bischen stolz. Ich habe einen Weg gefunden wie sich auch im Headinghold-Modus ziemlich perfekte und trotzdem crispe Pirostops erreichen lassen, und dies läßt sich über nur einen Parameter (getrennt für CCW und CW Piros falls nötig) einstellen. Das Tunen des Gyro bleibt damit einfach. Ich behaupte das jetzt einfach mal: Mit der neuen Firmware ist der GA250 mit Abstand der Beste der “billigen” Gyros.
5. Feb. 2012: Neue Firmware v0.15 verfügbar.
10. Jan. 2012: Holger hat eine super Anleitung (auf Englisch) geschrieben. DANKE!
30. Dez. 2011: Neue Firmware v0.14 verfügbar.
28. Nov. 2011: Diskussionsthread: Alternative Firmware für den Assan GA250 Gyro (nicht mehr supported)
24. Nov. 2011: Für’s Flashen und der Programmierung über die Windows-GUI bin ich nun vom Gain-Anschluss auf den Servo-Anschluss gewechselt… ist einfach doch praktischer… aber dazu musste die Firmware für die Programmingbox ein bischen geändert werden => neue Firmware. Heute nachmittag konnte ich dann auch zwei Flüge filmen (bzw mein Sohn). Aber es war (sau)kalt und es hat nicht so geklappt wie ich mir das dachte… die Filme haben auch schlechte Qualität… aber seht selbst hier.
20. Nov. 2011: Nach vielen Testflügen war heute die Gelegenheit die aktuelle Firmware “ernsthaft” zu testen. Eigentlich hatte ich das gar nicht vor, sondern bin, nach den X Testflügen auf der Strasse vorm Haus, heute mit dem Testheli einfach mal auf “mein” Feld gegangen, allerdings in der Erwartung bald wieder zurück zu sein. Dementsprechend vorsichtig bin ich das angegangen, aber flugmäßig hat sich das so gut angefühlt, dass ich bei der Hälfte des ersten Lipos alle Zurückhaltung aufgegeben habe und einfach alles geflogen bin was mir möglich ist… und weil es so gut ging “musste” ich alle Lipos durchfliegen. Ich muss echt gestehen, dass ich immer noch ein bischen baff bin wie gut der Gyro ging. Ärgerlich das ich keine Kamera dabei hatte (kommt hoffentlich nächste Woche). Jedenfalls, deswegen gibt es das erste Release der Firmware, siehe unten unter Firmware.
Einführung
Der Assan GA250 bietet für 9.99$ einen echten MEMS Gyro, und wie der Schaltplan zeigt ist er für eigene Projekte perfekt geeignet: (1) es wird ein ATmega8 verwendet, (2) die ISP-Pins sind leicht zugänglich, und (3) er ist hardware-mässig IMHO gut designt.
Mein erstes GA250-Projekt war/ist der GA250-Fp&Koax-Gyromischer, was insoweit relevant ist als ich im Zuge dessen bereits einige wichtige “Probleme” gelöst habe, worauf ich hier zurück greifen werde.
Ich bin nicht der Erste und Einzige der auf diese glorreiche Idee gekommen ist eine neue Firmware zu entwickeln. Cruzado hat bereits ein solches Projekt am Laufen: http://freecode4ga250.blogspot.com. Ich denke mein Projekt ist aber deutlich “ausgereifter”.
Ich will natürlich schon auch eine bessere Firmware erstellen, aber das war nicht meine Hauptmotivation. Das Gyro-Thema beschäftigt mich seit einiger Zeit, siehe meine 4-1+2in1 und Koax-Gyromischer Projekte. Know-How mäßig ist da allerdings ein gewisses “Ende” erreicht, und ein CP-Gyro war die logische nächste Herausforderung.
Übersicht über das Projekt
Das ganze Projekt besteht, neben der Firmware, aus weiteren “Teilen”:
- GA250 Gyro mit aufgespieltem Bootloader, um die Firmware zu flashen und updaten zu können
- Programmierbox um die Parameter des Gyros “im Feld” einzustellen
- Programmieradapter um den Gyro mit einem PC zu verbinden
- Windows-Program AvrConfig, um die Parameter per PC einzustellen
Der Programmieradapter wird zum Flashen einer neue Firmware und/oder zum Benutzen von AvrConfig benötigt. Zum Einstellen der Parameter des Gyros werden also zwei Möglichkeiten geboten, per PC mittels einer Windows-GUI und/oder mittels einer Programmierbox, bei der man unabhängig vom PC ist. Eine Einstellung der Parameter über den Sender ist, ausser die übliche Gain-Einstellgeschichte, bisher nicht vorgesehen.
GA250 Gyro Hardware
Alles zur Hardware des GA250 habe ich hier aufgeschrieben: MEMS Gyro GA250 Bilder und Schaltplan.
Bzw. fast Alles: Die Masse- und Versorgungsleitungen der Anschlüsse für Rudder, Gain, und das Heckservo sind nicht alle mit dem Gyro elektrisch verbunden! Der Gyro bekommt seine Versorgung NUR über den (roten) Gain Stecker! Die Masse/Versorgungsleitungen des Rudder- und Servo-Steckers sind zwar miteinander verbunden, aber NICHT mit denen des Gain-Steckers. Das schränkt die Möglichkeiten bzgl der Programmierung des GA250 (Flashen, Programmierbox, AvrConfig) ein. Ist eigentlich “saublöd” gelöst.
Assan hat das vermutlich in Anlehnung zum Spartan Quark so gemacht, was dort im Übrigen zu den gleichen “blöden” Einschränkungen führt: Um den Spartan Quark über den Computer zu programmieren muss man sich einen “Simplex Data Adapter” und einen “Flash-Link” anschaffen… nicht gerade die billigste Lösung, und auch nicht die Einfachste, und IMHO auch nicht die Komfortabelste….
Bootloader
Als Bootloader kommt wieder Hagen’s AVRootloader zum Einsatz, alle Info’s dazu gibt’s hier und hier. Ich finde den einfach super, und für unseren Zweck hat er den Vorteil dass er klein ist, schnell startet (300 ms, und keine >4 s wei bei so manch anderem Bootloader…), und einen Zugriff auf das EEPROM ermöglicht.
Der Bootloader kann sinnvollerweise entweder über den Gain-Stecker (bzw. Pin PD1 oder PD0) oder den Servo-Stecker (Pin PB2) angesprochen werden. Das Letztere ist IMHO vom Handling her praktischer (man muss nicht immer den Gainstecker aus dem Empfänger wursteln), aber man hat dann ein “Stromversorgung-Problem” (der Gyro kann ja nur über den Gain-Anschluss versorgt werden). Trotzdem, ich habe mich für den Servo-Stecker als Bootloader- und Programmierport entschieden. Man muss also die Masse/Vcc-Leitungen des Gain- und Rudder-Steckers verbinden, z.B. durch Einstecken in den Empfänger.
Brennen des Bootloaders und Setzen der Fuses
Um den GA250 für das Projekt einsetzbar zu machen muss nur der Bootloader gebrannt werden. D.h., GA250 aufschrauben, ISP-Pads mit einem ISP-AVR-Programmierer verbinden (löten), Fuses richtig setzen und Bootloader in den Mikrokontroller brennen, GA250 wieder zuschrauben, fertig. Hört sich vielleicht wild an, ist aber wenn man ein bisserl löten kann wirklich leicht zu bewerkstelligen. Einige weitere Infos gibt’s in den GA250-Hardware und Gyromixer Blogs. Bei Interesse kann ich auch noch mehr Infos posten, aber für den Moment soll das genügen.
Die Fuses sind wie folgt zu setzen:
- low fuse: 0xBF (ChkOpt = 1, SUT1:0 = 11, CKSEL3:0 = 1111, BODEN = 0, BODLEVEL = 1)
- high fuse: 0xDC (BOOTSZ1:0 = 10, BOOTRST = 0)
Bootloader:
- die .hex Files mit dem Bootloadercode sind unter Firmware zu finden
Um den Vorgang möglichst einfach zu gestalten, habe ich das Windows PC Program AvrBurnTool geschrieben. Dieses kleine Tool ist ein einfach zu bedienendes und auf den Zweck massgeschneidertes Frontend für avrdude (ein sehr gutes aber nicht gerade benutzerfreundliches Program zum Brennen von AVRs). Man braucht nur den angegebenen 6 Schritten zu folgen. Ein Kinderspiel.
Bild der AvrBurnTool GUI (Version 0.01) zum Brennen der Fuses und des Bootloaders:

Programmieradapter
Der Programmieradapter kann verschieden realisiert werden. Bei der von mir empfohlenen Variante besteht er aus einem USB-TTL-Adapter und einem Schalter-Kabel-Stecker-Gewirr, dass man sich schnell selber zusammenlötet. Der USB-TTL-Adapter MUSS dabei den FTDI Chip FT232RL verwenden. Solche Adapter gibt es günstig “überall”. Wer keinen ISP-AVR-Programmer hat oder anschaffen will, der könnte die USB-TTL-Adapter von Sparkfun (DEV-09873, DEV-09716, DEV-10008) in Betracht ziehen; diese können mit der entsprechenden Software auch als AVR-Programmer benuzt werden. Ansonsten sollte jeder USB-TTL Adapter mit FT232RL geeignet sein, wie z.B. die JY-MCU Arduino USB-Adapter.
ACHTUNG: Es gibt GA250 mit 3.3 V und 3.0 V interner Spannungsversorgung (die Neueren scheinen 3.0V zu haben), die Schaltung wie nachfolgend angegeben funktioniert für die 3.0 V Variante nicht unter allen Umständen zuverlässig. Bei mir funktioniert es sehr gut wenn man zum 100 Ohm Widerstand eine Diode (1N4148) parallel schaltet (Anode am TxO Ausgang).
Wer eine “echte” serielle RS232 Schnittstelle oder einen USB-RS232 Adapter (also einen Adapter der RS232-konforme Signale ausgibt) hat, der kann die Originalschaltung wie von Hagen vorgeschlagen benutzen:
Geeignete Shottky-Dioden wären z.B. BAT85, SB120 (es gibt natürlich noch X mehr). Der Widerstand ist im Prinzip kritisch, aber muss nicht exakt 2.7k sein.
BEMERKUNG: Die Schaltung wie angegeben funktioniert oft aber nicht immer, bzw. man muss mit den Dioden und den Widerständen evtl. “rumspielen”! Der GA250 mit 3.0 V interner Spannung scheint diesbezüglich wohl etwas anspruchsvoller zu sein als die 3.3 V Variante (bei mir hat die 3.3 V Variante mit SB120 und 2.2k perfekt funktioniert, aber nicht die 3.0 V Variante). Bei Steidlmick funktioniert BAS85 (=BAT85) und 2.7k auf vielen Rechnern, mehr dazu ab hier.
BEMERKUNG: Bei Verbindungsproblemen kann es sich lohnen verschiedene Baudraten auszuprobieren, z.B. alles zwischen 19200, 38400, 57600, und 115200.
Flashen der Firmware
Die Firmware wird in den mit dem Bootloader “ausgerüsteten” GA250 Gyro geflasht, indem man den Gyro über den Bootloader-Port (bei mir der Servo-Stecker) mit dem Programmieradapter und diesen widerrum mit einen Windows PC verbindet. Der eigentliche Flashvorgang wird dann mit Haagen’s Programm AVRootloader.exe durchgeführt.
Das .hex File mit der aktuellen Firmware ist unter Firmware zu finden.
Programmierbox
Die Programmierbox kann verschieden realisiert werden, z.B. mit einem Arduino mit LCD-Shield. Ich benutze die Robbe Programmier Box, weil es kaum billiger und einfacher geht, und eine schöne coole komfortable Lösung ist. Dazu muss ganz ähnlich wie beim GA250 auch nur der passende Bootloader gebrannt und die Fuses entsprechend gesetzt werden. Also, aufschrauben, ISP-Pins anlöten… usw … fertig. Alles zur Hardware der RobbeBox habe ich hier aufgeschrieben: Robbe Programmer V2 No.8642 Bilder und Schaltplan. Zum Brennen der Fuses und des Bootloaders mit dem IST AVR Programmer kann wieder AvrBurnTool benutzt werden. Und auch die Firmware für die Programmierbox wird auf ganz ähnlichem Wege wie beim Ga250 geflasht.
Fuses für die Robbe Box (Atmega88 und Atmega88PA):
- low fuse: 0xCF (CKDIV8= 1, SUT1:0= 00, CKSEL3:0= 1111)
- high fuse: 0xDD (BODLEVEL2:0= 101)
- ext fuse: 0×04 (BOOTSZ1:0= 10, BOOTRST= 0, Bootloader @ PD1/TXD)
Bootloader und Firmware für die Robbe Box:
- die nötigen .hex Files sind unter Firmware zu finden
Beim GA250 kommen als Anschlussport für die Programmierbox im Prinzip alle drei Servoanschlüsse in Frage. Der Rudder- und Gain-Stecker stecken allerdings im Empfänger, und sind in meinen Augen daher weniger leicht zugänglich. Deswegen habe ich den Servo-Stecker gewählt. Also, Servo abstecken, Programmierbox anstecken, Batterie an, und schon kann man den GA250 einstellen.
Konfigurieren des GA250 Gyros vom PC aus
Das Windows-PC Program AvrConfig.exe erlaubt es die Parameter des Gyros mittels einer GUI einzustellen. Dies ist praktisch da man so alle Parameter schön im Überblick hat, und man Konfiguartionen auch als Dateien zum Wiederverwenden abspeichern kann, aber man braucht halt einen PC in Reichweite…
Das Prinzip ist ähnlich zum Flashen der Firmware: Gyro über den Bootloader-Port (bei mir der Servo-Stecker) mittels Programmieradapter an den PC anschliessen, und AvrConfig ausführen.
Bild der GUI (Version 0.18) für die GA250 Firmware Version v0.16:

Testumgebung
Telemetrie Gyrotester
Ich wollte nicht nur “wild” rumprobieren und rumprogrammieren, sondern will das möglichst auch verstehen was ich so treibe. Der entscheidende Teil des Gyros, indem auch das ganze Know-How steckt, ist der PID Regler, bzw. eine verallgemeinerte Variante davon, und Aufgabe ist es die richtige Controller-Struktur zu finden und die beste Anpassung. Also mussten Meßdaten her, und so habe ich mir kurzerhand einen Telemetrie-Gyrotester gebaut. Das war einfach weil ich hierbei Code und Zeugl von meiner 450er-Telemetrie benutzen konnte. Als Messaufnehmer fungiert einfach ein weiterer GA250, an dem ich ein RFM02 Funkmodul angeschlossen habe. Als Empfänger dient mein Telemetrie-Empfänger, der passend umprogrammiert wurde. Damit kann ich während des Flugs die Gyro-, Rudder-, und Servo-Signale messen, welche alle 20 ms zusammen mit einem Zeitstempel mit 1 ms Auflösung an den Telemetrie-Empfänger gesendet und von dort an den PC weitergegeben werden. Zuerst hatte ich mit 100 ms gearbeitet, aber das reicht nicht aus. 20 ms gehen ganz gut, obwohl Schneller schon noch besser wäre, aber da müsste man sich deutlich Mühe geben um die Daten so schnell über den Äther zu schaufeln.
Mein Test-Heli
Damit hat man eigentlich alles Nötige zusammen, was natürlich noch fehlt ist eine Heli. Jetzt wollte ich aber nicht meinen schönen geliebten TRex Sport dazu auseinanderreißen, der soll immer flughfähig bereit stehen…, daher habe ich meinen eingemotteten CopterX wieder ausgemottet. Tatsächlich hat der Heli mit einem CopterX nicht mehr viel gemein, es ist ein Mischmasch aus CopterX V2, HK 450 Pro, und Align Teilen.
Vielleicht relevant: Regler Robbe Roxxy 950-6 mit Governor an, Motor Hobbymate HB2835 3800 kV, Ritzel 13er. Die Drehzahl ist ca. 2900-3000 U/min für idle down und ca. 3200-3300 U/min für idle up, aber so genau kann man das in den Tests nicht sagen, da sich die Lipospannung ändert und ich die Drehzahl nicht mit aufzeichen kann.
Grundsätzliche Überlegungen
Ich habe mit der Gyrotester-Telemetrie recht umfangreiche Testflüge gemacht. Die Ergebnisse sowie meine grundsätzlichen Überlegungen zum Gyro als Regler habe ich hier
Der Heli-Gyro als Regler: Theorie und Experiment (noch nicht vollständig)
vorgestellt, sowie in einem Thread bei RCGgroups, The Heli Gyro as a Controller: Theory and Experiment.
Basics zur Firmware
Ich habe mich bei meinem Design der Firmware sehr bemüht, das Maximale aus der Hardware herauszuholen. Dazu sollte man sich aber zunächst klar werden was das meint.
Was der GA250 kann, und was er nicht kann
Der GA250 wird in seiner Leistungsfähigkeit nie an die (meisten) teuren Gyros (und FBL-Systeme) herankommen, einfach wegen der verwendeten Hardware. Leider konnte ich keine guten Bilder vom Inneren teurer Gyros/FBL-Systeme im Netz finden, aber die die ich gefunden haben deuten an, dass z.B. nicht die ITG320?/IS?-Gyrofamilie verwendet wird, sondern die teureren Analog Devices Gyros (man sieht of BGA Gehäuse). Schaut man sich auf deren Webseite um, dann kommen da für einen Heli gar nicht so Viele von in Frage, aber eines scheint sichtbar zu sein, die Bandbreite dieser Gyros ist über 1 kHz, während die des im GA250 verwendeten ISZ650 Sensors mit 140 Hz angegeben ist. (EDIT: Ich bin mir nicht sicher ob das Analog-Devices-Bandbreiten-Argument zutrifft, Ich habe im Netz nun auch eine Aussage gefunden dass im GY410 ein anderer Sensor mit erheblich weniger Bandbreite benutzt wird). Zudem wird typischerweise auch ein “besserer” Mikrokontroller verwendet, der z.B. 12 bit Auflösung des ADC bietet. Es gibt also doch einen Grund warum die teureren Gyros teurer sind. Aber nun zu der guten Nachricht, für die wirklichen Hardcore-Heliflieger dürfte es zutreffen, dass der GA250 z.B. nicht ausreichend schnell ist, aber, soweit ich das sehe ist er für alle Anderen bei Weitem ausreichend.
Diese Zahl, eine Bandbreite von 140 Hz, entsprechend einer Zeitkonstante von 1.1 ms, sollten wir im Kopf behalten.
Ich habe mich wie gesagt bemüht das Maximale aus dem GA250 herauszuholen, das betrifft vier Punkte:
ADC Wandler
Ich lasse den ADC Wandler im free running mode mit maximaler Samplingrate laufen, und schicke alle ADC-Werte durch einen Tiefpass-Filter. Die Überlegung ist zum Einen dem Aliasing-Problem möglichst gut zu begegnen. Jeder kennt diesen Effekt, und seine Bedeutung, er wird aber komischerweise anscheinend wenig ernst genommen. Die Samplingzeit ist 104 us, d.h., die Samplingfrequenz beträgt 9.6 kHz. Der anschliessende Tiefpass “mittelt” über 16 Werte, so dass sich eine Zeitkonstante von 1.66 ms entsprechend einer Bandbreite von 96 Hz ergibt. Das ist nun etwas kleiner als die 140 Hz vom Gyrosensor, da verschenke ich im Moment also ein bischen. Für die ersten Versuche denke ich macht das nichts aus, und es wäre ja auch schnell gemacht nur über 8 Werte zu “mitteln” (0.83 ms, 190 Hz). Das werde ich bei Gelegenheit noch genau testen ob das einen Unterschied macht. Der Sinn der Mittelung ist es natürlich ein möglichst rauschfreies Signal zu bekommen. Der Filter hilft aber auch beim Antialiasing. Und zuletzt kann er auch als Decimation begriffen werden, so dass sich die Auflöung des ADC-Wandlers auf effektiv 11.5 Bit verbessert. Bei der Implementierung muss man, da der ADC-Interupthandler alle 104 us oder alle 832 Taktzyklen aufgerufen wird und der Filter im Interrupt laufen muss, gut darauf achten effektiv zu programmieren um den Interrupthandler kurz zu halten. Bei mir sind’s zur Zeit maximal 5 us.
Regler Zeitschritte
Ganz ähnlich wie bei der ADC Abtastung kommt es auch beim Regler auf die “Abtastrate” an. Die Regel ist einfach, so schnell wie möglich, was in der Praxis etwa 20 mal schneller als die Responsezeit des zu regelnden Systems bedeutet. Für einen 450er Heli sind das größenordnungsmäßig so 100 ms, d.h., der Regler sollte mit Zeitschritten von wenigen ms arbeiten. Bei einem reinen P-Regler wäre es ausreichend den Regler mit der Frequenz des Servosignals laufen zu lassen, also z.B. mit 3 ms bei einem 333 Hz Servo, aber wir wollen uns ja nicht auf einen P-Regler einschränken. Bei mir läuft die Regelung im 1 ms Takt. Vielleicht gingen noch 0.5 ms, werde ich bei Gelegenheit mal testen, aber das wird dann schon ganz schön knapp und mehr ist nicht drinnen, d.h., die 1 ms sind IMHO schon ganz gut.
Gain Signal Verarbeitung
Das Einlesen des Ruddersignals stellt keine große Herausforderung dar, da hierfür der ICP-Kanal genommen wird, und sich so “automatisch” korrekte Messungen für die Rudderimpulslänge ergeben. Das ist aber beim Gain-Signal nicht so. Das wird über den INT0-Interrupt eingelesen, und die Zeitmessung hat daher einen Jitter. Ich habe mir nun viel Mühe gemacht diesen Jitter zu minimieren und möglichst auszublenden. Die Überlegung ist wieder einfach, der Gain-Wert wird im PID Regler verwendet, und wenn der Gainwert wackelt dann wackelt auch das Regler-Signal, und der ganze Aufwand möglichst gute Gyro- und Rudderwerte zu bekommen wäre zunichte gemacht, denn das wirkt sich genauso aus wie Noise. Für den Jitter sind die andere Intrrupts verantwortlich, wobei hier allen voran der ADC Interrupt zu nennen ist, der ja wirklich oft aufgerufen wird. Wenn man da nicht aufpasst, bekommt man leicht einen Jitter von 10-20 us (ich habe 15 us gemessen). Durch “Aufpassen” konnte ich den Jitter auf wenige us bekommen. Zusätzlich habe ich noch eine etwas kompliziertere Filter-artige Weiterverarbeitung des Gain-Werts eingebaut (average + threshhold). Vereinfacht gesagt werden nun nur beabsichtigte Änderungen im Gain-Wert die größer als +-2% sind durchgelassen. Damit ist das Gain-Signal immer perfekt stabil und bringt kein eigenes Rauschen ein. Das bedeutet aber auch, dass man den Gain-Wert nicht in kleinen Schritten ändern sollte. Ist aber kein Problem, einfach kurz den Gain-Switch am Sender einmal hin-und-her geflipt und schon passt’s.
Sicherheit
Viel Mühe ging auch in Sicherheit, der Heli soll ja nicht wegen dem Gyro abstürzen. Bei einem Heli-Gyro kann man da nicht viel machen, ausser dafür zu sorgen dass ein Failsafe erkannt wird und das Servo auf Mitte gestellt wird. Aber das ist auch schon etwas. Während ich glaube die obigen beiden Punkte schon ganz gut gelöst zu haben, kann man in Punkto Sicherheit immer noch Verbesserungen finden, diesbezgl. will ich also nicht behaupten bereits das Maximum realisiert zu haben. Was ich z.B. noch machen will ist den Watchdog mitzubenutzen. Dann können auch kurze Spannungseinbrüche verkraftet werden. Kommt aber erst noch.
Firmware
7. März 2012:
Firmware für GA250 Version v0.16: Ga250_Cp_Gyro_Firmware_v016.hex
Bootloader für GA250: BL_4GA250CpGyro_RedGainPlug.hex oder BL_4GA250CpGyro_BlackServoPlug.hex
Windows GUI Version v0.18: AvrConfig
Firmware für Programming Box Version v0.14b: Olliw_GA250_ProgBox_v014b_m88.hex oder Olliw_GA250_ProgBox_v014b_m88pa.hex
Bootloader für Programming Box: BL_4RobbeProgger_m88.hex oder BL_4RobbeProgger_m88pa.hex
Alles was an Software/Firmware nötig ist hier zusammen als zip File:
GA250 gyro firmware & software v016 [.zip] (Du musst für einen Zugriff angemeldet sein)
“Features” in v0.16:
- das wichtigste neue Feature: Die Parameter DebounceCCW/CW. Damit lassen sich perfekte Pirostops im Headinghold-Modus erreichen. Die “alten” De-/Acceleration Parameter sind noch vorhanden, aber sollten nicht mehr benutzt bzw. benötigt werden.
- die Windows GUI wurde überarbeitet, und bietet die mittlerweile doch vielen Parameter, von denen die Meisten nie gebraucht werden, übersichtlicher in Tabs an.
- Gain Input Function bietet nun zusätzlich die Option “pitch”. In dieser Einstellung wird das Signal am Gaineingang als Pitch/Throttle interpretiert, und kann mit den Parametern Pitch Mix und Pitch Zero dem Servosignal zugemischt werden. Dies erlaubt eine Drehmomentkompensation (DMA), wie sie bei CP wie auch FP Helis nützlich ist (Feature in der Praxis noch nicht getestet).
- Die Reglerstruktur kann geändert werden, so dass das Verhalten dem von kommerziellen Gyros entspricht (“classic” und “fixed wing”) und z.B. für fixed wings besser geeignet ist (Feature in der Praxis noch nicht getestet).
“Features” in v0.15:
- der Parameter I Dead Band wurde geändert, als Resultat funktioniert das Heading Hold nun noch BESSER! I Dead Band sollte immer =1 bleiben können.
- es wurde der neue Parameter Gain Input Function eingeführt, mit dem eingestellt werden kann was mit dem Signal am Gain-Anschluss anzustellen ist. Die Einstellung Gyro Mode = by gain entfällt, dies entspricht nun Gain Input Function = set gain & mode.
- es gibt eine Diagnose-Möglichkeit, um einige wichtige interne Settings im GA250 auszulesen
- die Firmwarestruktur wurde intern etwas vereinfacht und auf zukünftige Möglichkeiten vorbereitet
“Features” in v0.14:
- Bug in Gyro Orientation beseitigt (Danke an Holger!)
- erweiterte und verbesserte Rudder Mitten und Rudder Deadband Behandlung
- die Wirkung von Gain wurde verdoppelt, die Wirkung von PID I halbiert.
- mit 10 Sekunden Rudder ganz links kommt man nun jederzeit in den Programmiermodus, das vereinfacht/beschleunigt die Parameter Einstellerei erheblich
Hinweis: Die GA250 Firmware sollte zwar für alle Empfänger funktionieren, aber ich habe sie nur für Spektrum getestet (weil das halt das ist was ich habe). Bei anderen Nutzern läuft sie mit folgenden Systemen: Turnigy 9X von Hobby King, FlySky/FrySky, Assan, Graupner MX16s mit Corona 2,4 GHz CT8Z-DIY Modul, Graupner MC22 35 MHz Tx mit Jeti 7-Kanal Empfänger.
Hinweis: Das ist KEIN ausentwickeltes Produkt, sondern ein Bastlerprojekt, die Benutzung der Firmware erfolgt natürlich völlig und zu 100% auf eigene Verantwortung und Gefahr.
Nutzungsbedingungen: Die Soft- und Firmware darf für private Zwecke kostenlos benutzt und an Kollegen und Freunde weiter gegeben werden. Eine kommerzielle Verwendung auch in Teilen ist ohne Zusage von mir ausdrücklich untersagt; “kommerzielle Verwendung” schließt hierbei Alles ein wobei ein Gewinn von mehr als 0,- Eur ensteht, inkl. z.B. Vergütungen für aufgewendete Arbeitszeit.
Terms of usage: The softwares/firmwares are not free. You may use it gratis and freely for private purposes. However, you may not use the work in full or in parts in any manner that is intended for or directed toward commercial advantage or private monetary compensation without explicit agreement by the author.
Firmware Repository:
Firmware v0.15 als zip File: olliw-ga250-cp-gyro-v015-v014b-v017-2012-02-05.zip
Firmware v0.14 als zip File: olliw-ga250-cp-gyro-v014-v014b-v015-2011-12-30.zip
“Leistungsschau”
Das mit dem Filmen hat nicht ganz so geklappt wie ich mir das dachte, es war kalt, der Heli hatte sich irgendwie besonders “kraftlos” angefühlt, die Pirouetten am Angang habe ich nicht gescheit hinbekommen, der Speicher in der Kamera war plötzlich voll… etc pp… aber ich möchte Euch das Ergebnis nicht vorenthalten… mit der Bitte die schlechte Qualität zu verzeihen.
Bei den Pirouetten am Anfang habe ich zwischen Heading-hold und Rate-Mode hin-und-her gewechselt… wer sieht wann welcher Mode benutzt wurde? (man kann es sehen, aber dieses “Suchspiel” soll demonstrieren dass der implementierte Regler im HH-Mode ganz gut funktioniert)
Externe Beiträge
Holger’s super Anleitung Idiot’s Guide to Olliw’s GA250 Firmware:
Post bei rc-heli.de: Olliw FW Idiots Guide 1.1.pdf
Post bei rcgroups: Olliw FW Idiots Guide 1.1.pdf
Direkter link aufs .pdf: OlliW-FW-Idiots-Guide-1.2.pdf









Hallo Olli,
ich habe nun erfolgreich zwei ga250 sowie eine ProgBox gemoddet, du kannst mich also gerne in die “Hall of fame” mit aufnehmen (richy18@rc-heli)
Zunächst aber vielen Dank für die tolle Entwicklung und die guten Anleitungen. Auch das Forum auf rc-heli.de verdient hier viel Lob (spezieller Dank an Steidlmick).
Was ich nun für den Erstflug noch sehr nützlich fände wäre eine kurze Beschreibung der Parameter. Also quasi ein kurzes HowTo, welches erklärt, bei welchen Problemen/Optimierungswünschen ich an welchem Parameter drehen muss.
Oder gibt es so was vielleicht irgendwo?
Viele Grüße aus Köln,
Ralf (aka richy18)
Hallo Ralf,
eine Beschreibung der Parameter und das gewünschte HowTo gibt es so nicht. Aber eigentlich habe ich in den verschiedenen Threads schon bereits recht viele Informationen dazu gepostet, sind halt etwas verteilt.
Übrigens: Es steht Jedem frei hier mit Engagement Abhilfe zu schaffen
Ansonsten, noch viel Spass,
Olli
I really admire your hard works for such cheap hardware gyro you had made it works like those big name gyro.
I wish I could do that on all my GA250 gyro, unfortunately I’m limited to works & very little times for my RC hobby.
I had many Heli projects up comming to works on for the latest models.
Not mention to improve my pilot skill for more advance 3D skills. It is hard, getting more harder & require more & more flight times to get things right.
I had no knowledge for software programming and electronics device for such works.
May be next time after I had complete all the advance pilot skills(takes more than a year for my current state)
Hi Olli!
Find’ ich richtig gut, was Du da machst, besonders Deine grundsätzlich theoretischen Ansätze statt “wildes Gefummel”. Meine Kragenweite.
Tom, dl7uae
Hallo Olli,
gern weitere Unterhaltungen in deinem rc-heli.de-Threat.
Hab schon mal meinen nächsten Beitrag dort gepostet…
bin dort der “Minicharl”.
Gruß vom Volker
Hallo OlliW,
den Bootloader (Hagen) hatte ich etwas angepasst und den natürlich zuvor mit nem AVR-Programmer auf den GA250 gebrannt. Danach konnte ich dann “einfach so” mit dem Hacker-Stick die Firmware flashen.
Problem für mich ist leider AvrConfig. Damit komm ich nicht ans EEprom ran… übrigens funzt das aber mit dem AVRrootloader, damit kann ich im EEPROM lesen sowie auch schreiben (hatte das im Bootloader zugänglich gemacht).
Nur nützt mir das halt net viel, kann zwar diese 512 Byte lesen wie auch beschreiben, doch was gehört wohin???
An ner Windos-GUI hab ich mich auch noch nicht versucht, wäre aber nen Veruch wert…
Gruß vom Volker
Hallo Volker,
klingt ja sehr sehr interessant… ich habe ein Thread bei rc-heli.de gestartet (siehe letzte Antwort)
Eigentlich sollte AvrConfig genau das Gleiche machen wie AVRootloader. Wie sich jetzt aber beim Testen der verschiedenen Methoden zeigt, ist das aber irgendwie nicht so. Wenn die Kommunikation mit AvrConfig funktionieren würde, würdest du damit auch das EEPROM auslesen und beschreiben. Was AVRootloader genau macht ist leider schlecht dokumentiert und Hagen hat sich abgemeldet. Ich habe mich versucht so gut wie es mir möglich ist an AVRootloader zu halten… aber irgendwo ist tief im Detail bei der seriellen Kommunikation wohl doch etwas anders. Tja.
Übrigens: Dieser Fehler “Opening port COM11 FAILED!” sollte bei richtiger Wahl des Com-Ports nicht auftauchen.
Hallo OlliW,
ich verfolge aufmerksam die Projekte zur alternativen Firmware zum Kreisel GA250 Ihrerseits
sowie die Aktivitäten im RCGrops-Form dazu.
Find ich erstmal große Klasse das sich einige Leute so gut mit der Materie auskennen und befassen.
Hut ab also…
Vielleicht kann ich ja auch eine Kleinigkeit dazu beitragen.
Im RCGrops-Form ging es ja grad um die Anbindung zum Kreisel via 1-Wire. Nun ist mein Englisch
wirklich nicht so gut das ich dort etwas posten möchte, darum also auf diesem Wege hier.
Ich hab einfach mal meinen Programmieradapter den ich für meine “Hacker-Regler” benutze hierfür
ausprobiert. Und Bingo… sofortige Kommunikation mit einer Geschwindigkeit bis zu 128000bps.
Auch flashen mit der maximalen Geschwindigkeit ist möglich.
Das ist das “X-PRO USB-INTERFACE V2″. Gibts z.B. bei Conrad(Best.-Nr.: 208974 – 62).
Drin ist ein CP2102 verbaut. Am Rx und Tx sitzen so wie`s ausschaut zum Ausgang hin nur zwei Dioden.
(SMD`s mit dem Aufruck 1A47).
Nur mit dem AvrConfig-Programm klappt`s leider nicht. Meldung: (Opening port COM11 FAILED!).
Ansonsten bin ich echt begeistert von den Projekten und bin sehr gespannt auf einen ersten
“Flug”.
Hallo Volker,
Danke für diese Rückmeldung und Info. Mir ist noch nicht 100%ig klar was du genau gemacht hast:
(1) Du hast den Hacker-Stick dazu benutzt um den GA250 über die ISP Pins zu brennen?
(2) Du hast den Bootloader mit einem AVR-Programmer auf den GA250 gebrannt, und konntest dann mit dem Hacker-Stick und AVRootloader die Firmware flashen? Wenn ja, welchen Bootlader hattest du genommen?
Es scheint so zu sein das AvrConfig wesentlich pingeliger bzgl. einer Kommunikation ist. Ich weis leider nicht woran das liegt. Windos-GUI-programmieren ist nicht so mein Ding, ich war froh dass es überhaupt (u.U.) geht.
Wegen dem Posten, ich habe bei rc-heli.de einen Thread aufgemacht: Alternative Firmware für den Assan GA250 Gyro
Na das sieht ja sehr vielversprechend aus! Was mich davon abhaelt ist der USB TTL Adapter. Der von dir beschriebene Chip scheint (zumindest bei Ebay) eher die Ausnahme. Gibt es Alternativen? Verstehe ich richtig, das sich der Kreisel nicht mehr ueber den Sender programmieren laesst? Anderfalls wuerde ich mir einfach eine Kombination aus Bootloader+FW in den Kreisel flashen. Einen USB AVR Programmer habe ich.
Gruss
Holger
Hallo Holger,
Und den Adapter braucht man IMHO eh. Das ist kein durchentwickeltes kommerzielles Produkt! Und wenn es bei denen schon dauernd Updates braucht… 
“Der von dir beschriebene Chip scheint (zumindest bei Ebay) eher die Ausnahme.”
ja, die Adapter mit dem FTDI Chipsatz sind etwas teurer… und wer will das schon
“Gibt es Alternativen?”
vermutlich, aber ich habe da schon so viel Zeit reininvestiert (erst gestern und heute wieder “nur” um eine Alternative zu finden) das ich keinen “Bock” mehr habe. Es gibt eine verlässliche und für “Alles” funktionierende Lösung, ist aber ein paar Euro teurer.
“Verstehe ich richtig, das sich der Kreisel nicht mehr ueber den Sender programmieren laesst?”
Ja. Mein Gedanke: wozu wegen ein paar Euronen da viel Zeit reininvestieren
Have Fun, Olli
Hi Olli
Ok, trotzdem danke für deine Antwort.
Mittlerweilen bin ich zur Überzeugung gekommen, dass mein Gyro einen Fehler hat.
Ich hab mir nochmal eins bestellt.
Gruss,
Mark
Hallo
Ich hab diesen Gyro gekauft, aber irgendwie funktioniert der nicht richtig. Wenn ich den Sender einschalte und den gain Hebel mehrfach bewege geht der Gyro nicht in den Servo Setup Mod (rot LED). Irgendwie hab ich es dann doch mal geschafft. Nachdem ich den korrekten Server ausgewählt und den Gyro neu gestarte hatte dreht sich nun der Servo kaum mehr, bzw nur auf eine Seite und das auch nur bei vollem Hebelausschlag.
Schliesse ich den Servo direkt am Receiver an funktioniert er einwandfrei.
Nun meine Frage, gibt es eine möglichkeit das Ding zu reseten?
Mark
Übrigends, klasse Projekt!
Hallo Mark,
schön dass du vorbeischaust, auch wenn du dich ein bischen in der “Tür” geirrt hast… hier geht’s ums Modden des GA250 und nicht um die Alltagssorgen mit dem GA250
Deine Frage kann ich dir leider nicht beantworten, ich habe den GA250 selber noch nie benutzt… immer nur ausgepackt, aufgeschraubt, umgeflascht… also keine Ahnung was der normalerweise macht, oder eben auch nicht. Sorry. Du bist mit deiner Frage vermutlich in einem der GA250 Threads in den Foren besser aufgehoben… oder machst dort einfach einen neuen Thread auf.
Viel Glück, Olli