OlliW’s DIY Koaxmischer

Hier stelle ich den Selbstbau eines Mischers wie er für die boardless brushless (BLBL) Umrüstung eines Koaxhelis benötigt wird vor.

Features:
– für alle Gyros geeignet, einschliesslich der neuen billigen MEMS Gyros (LH GY520, GA250)
– unterstützt den Gyro Digitalmodus, bis 450 Hz @ 1520 us
– funktioniert ohne jegliche Einstellungen, einbauen, fertig
– bietet, optional, vielfältige „Profi“-Einstellmöglichkeiten zur perfekten Anpassung an jeden Koax
– einfaches Anlernen der BESC
– Failsafe
– exterm einfacher Nachbau
– niedrige Kosten


Einführung

Der Mischer ist ein wichtiges Kernstück eines boardless brushless (BLBL) Umbaues eines Koaxhelis und bestimmt ganz wesentlich die Flugeigenschaften mit (Koax Elektronik: Brushless Umbau). Gute Mischer gibt es allerdings nach wie vor nicht zu kaufen; die üblichen Verdächtigen (Turnigy vtail mixer, GWS vtail mixer, Diyonisus coaxial mixer) haben so Ihre „Eigenheiten“, und arbeiten mit den neuen MEMS Gyros (LH GY520, GA250) nicht zusammen oder nutzen deren Potential nicht. Es gibt einige, teils wirklich gute, DIY Mischerprojekte, allen voran Achim’s Koax BLBL Mischer „Deluxe“ aber auch z.B. Ralf’s einfacher Mix-Me-Up Mischer. Der Bastelaufwand ist allerdings – zumindest aus „Anfängersicht“ – beträchtlich. Das Thema BLBL-Umbau ist jetzt natürlich nicht mehr topaktuell, aber software-mäßig hatte ich aufgrund des GA250 Koaxgyromischer Projekts alles Nötige zusammen und eine sehr funktionale Mischerfirmware war schnell zusammen gestrickt. Zusätzlich haben sich in jüngster Zeit die kleinen Arduinos als ideale Hardwareplatform für so alles Mögliche in mein Bewustsein geschoben, und so ist dieses Projekt hier, quasi als „Abfallprodukt“, entstanden.


Übersicht über das Projekt

Der Mischer ist so gehalten, dass er einerseits sehr einfach aufgebaut und sehr einfach in der Anwendung ist, auf der anderen Seite aber auch „mitwachsen“ kann und dann sehr ausgewachsene Möglichkeiten bietet um das Maximale aus jedem BLBL-Umbau heraus zu holen. Die Firmware ist immer die Gleiche, die unterscheidlichen Möglichkeiten ergeben sich daraus ob man die Features nutzt oder nicht. Welche Features man nutzen kann hängt dabei von der „Ausbaustufe“ des Mixers und/oder weiteren Geräten ab bzw. ob man sich die bauen/zulegen will oder nicht. Dies ist aber wie gesagt optional, für den „Profi“, der Mixer wird bereits in der Grundkonfiguraton seinen Dienst sehr gut erledigen. Hardware-mäßig besteht das Projekt aus:

Koaxmischer
Gain-Poti (optional)
USB-Adapter (optional)
Programmierbox (optional)

Der Koaxmischer in seiner einfachsten Form, ich nenne ihn dann Typ I, funktioniert für alle Gyros, auch die MEMS Typen und auch im Digitalmodus, die Mischrate ist aber fest auf 30% eingestellt. Rüstet man den Koaxmischer mit einem Poti aus, ich nenne ihn dann Typ II, was in drei Handgriffen erledigt ist, lässt sich die Mischrate im Bereich von 14-46% durch drehen des Potis einstellen. Mit dem zusätzlichen USB-Adapter, welcher auch leicht und kostengünstig (<10Eur) aufgebaut ist, kann der Koaxmischer an einen PC angeschlossen werden. Alle verfügbaren Optionen im Koaxmischer können dann über das Windows PC Program AvrConfig eingestellt werden, und mit Hagen’s Program AVRootloader ist ein Update des Koaxmischers mit der jeweils neuesten Firmware möglich. Mit der Programmierbox, welche eine umprogrammierte Robbe Programming Box ist, lassen sich ebenso (fast) alle verfügbaren Optionen im Koaxmischer einstellen, „in-field“, unabhängig von einem PC (ein USB-Adapter wird dann nicht benötigt). Die Programmierbox ist auch sehr leicht zu realisieren, aber mit ca. 20Eur nicht ganz billig. Alle diese Optionen lassen sich jederzeit nachträglich „nachrüsten“.

Zusätzlich zu der eben genannten Hardware benötigt man in jedem Fall einen ISP AVR Programmer. Klaro, die Koaxmischer-Firmware muss ja in den „Koaxmischer“ (bzw. dessen Mikrokontroller) kommen, sonst wäre das nur ein Klumpen Masse. Der ISP Programmer und das brennen der Firmware in den Mikrokontroller ist also unvermeidlich.

Bezgl. der Software für den Koaxmischer mit der dessen Mikrokontroller programmiert wird ist zwischen dem Bootloader und der eigentlichen Koaxmischer-Firmware zu unterscheiden. Der Bootloader wird im Prinzip nur für die Parametereinstellung über den PC und/oder die Firmwareupdate-Möglichkeit (siehe USB-Adpater) benötigt, aber es „kostet“ nichts ihn immer zu benutzen, was ich daher auch sehr empfehle. Bei der Programmierung des Mikrokontrollers mit dem ISP AVR Programmer wird daher tatsächlich gleichzeitig Firmware und Bootlader gebrannt (für die Experten, Firmware-hex-Datei und Bootloader-hex-Datei sind zu einer hex-Datei zusammengefasst).

Mikrokontroller
Um einen Koaxmischer zu realisieren braucht es nichts weiter als einen Mikrokontroller mit zwei Eingängen für Rudder und Throttle und zwei Ausgängen für die beiden Motor-BESCs. Aus der Atmel AVR Serie reicht dafür der Attiny25/45/85 aus. Will man auch ein Poti zum Einstellen der Mischrate (im folgenden auch Gain genannt) habe wird noch einen ADC-Eingang benötigt. Der Attiny24/44/84 bietet sich dann an. Ich habe mich für die Atmega8 bzw AtmegaX8 Serie entschieden. Warum den das, werdet Ihr fragen. Nun, mit Durchsteckteilen aufgebaut wird der Mischer so oder so „riesig“, 1-2 g mehr machen das Kraut dann auch nicht fett. Aber, als SMD sind die Atmega kaum größer, sie sind leicht und billig zu beschaffen, und, was mir gut gefällt, haben einen Hardwaremultiplizierer. Und zu Letzt, mit dem Arduino Pro Mini steht eine kleine, praktische, und kostengünstige Hardwarebasis zur Verfügung, so dass sich der Mischer mit extrem wenig Aufwand erstellen läßt. Da nur sehr wenige Bauteile benötigt werden, ist der Mischer aber auch schnell und billig mit Durchsteckbauteilen auf einer kleinen Platine aufgebaut.

Bootloader
Wie „immer“ benutze ich auch diesmal wieder Hagen’s AVRootloader (Infos dazu hier und hier), und wie immer Tausend Dank an Hagen für diese tolle Arbeit. Der Bootloader wird über den MotorB-Stecker angesprochen (Arduino Pin D10, Atmega Pin PB2/OC1B).

Arduino Pro Mini Hardware
Der Arduino Pro Mini ist für unsere Zwecke ziemlich gut geeignet, da er genügend klein ist, relativ billig ist, und alle nötigen Anschlüße als Pads zur Verfügung stellt, so das für den Umbau zum Koaxmischer nur vier Servokabel angelötet werden müssen.

Den Arduino Pro Mini gibt es als 5 V und 3.3 V Variante, wobei die Erstere etwas billiger ist. Beide sind für uns geeignet. Ich habe mich allerdings für die 3.3 V Variante entschieden da der vorhandene Spannungsregler (BEC in RC-Sprech) dann optimal genutzt wird und der Mixer bestmöglich vor evtl. Faxen auf der Versorgungsspannung geschützt ist. Da an den Ein/Ausgängen keine Schutzwiderstände vorgesehen sind, kann das allerdings dann Probleme bereiten, wenn die Pegel der PPM-Signale vom Gyro und/oder Empfänger deutlich größer 3.3 V sind (was sie heutzutage aber selten sind). Bei der 5 V Variante liegt der kritische Pegel bei ca. 4 V, aber die Spannung ist nicht gut stabilisiert. Entscheidet selber.

Den Arduino Pro Mini gibt es auch mit verschiedenen Mikrokontrollern, zur Zeit ist meist der Atmega328P verbaut. Welcher ATmegaX8 drauf ist, ist egal. Den Schaltplan findet ihr hier.

arduino pro mini top olliw arduino pro mini weight olliw

BEMERKUNG: Der Arduino Pro Mini ist aus Asien für unter 10 Eur zu bekommen, ebay checken. Man sollte darauf achten was man bekommt, nicht alle China Pro Mini’s haben das selbe Layout.

BEMERKUNG: Der Arduino Pro Mini wird manchmal mit Steckerleisten angeboten, diese sollten aber NICHT bereits verlötet sei. Also, bitte darauf achten.

USB Adapter (optional)
Der USB-Adapter kann auf sehr viele verschiedene Weisen realisiert werden. Ich empfehle die Variante mit einem USB TTL Adapter mit FTDI Chip FT232RL, auch wenn es Billigere gibt, aber diese hat bisher als Einzige bei Jedem zuverlässig funktioniert. Schnell zu beschaffen aber etwas teurer sind die USB TTL Adapter von Sparkfun (DEV-09873, DEV-09716, DEV-10008), ich benutze gerne wegen des niedrigen Preises die Arduino USB Adapter (JY-MCU), welchen es aus Asien für <10$ gibt (ebay!). Die aller billigste aber trotzdem genauso gute Lösung is der FTDI USB Adapter von Hobbyking (Produkt ID: 009000003). Die Schaltung ist einfach und wie nachfolgend angegeben. Für den Koaxmischer wird der Widerstand R* nicht benötigt und der TxO Ausgang wird direkt mit dem RxI Eingang verbunden. Der extra Powerplug kann auch weggelassen werden, insb. wenn keine Programmierbox gewünscht ist. ga250 programming adapter

Updaten der Firmware (optional, benötigt USB Adapter)
Die Firmware wird in den mit dem Bootloader „ausgerüsteten“ Koaxmischer geflasht, indem der Mischer über den MotorB-Anschluss mit dem USB Adapter und dieser widerum mit einen Windows PC verbunden wird. Der eigentliche Flashvorgang wird dann mit Haagen’s Programm AVRootloader.exe durchgeführt.

avrootloader olliw

Die hex-Datei mit der aktuellen Firmware ist unter Firmware zu finden.

ACHTUNG: Auf keinen Fall die hex-Datei flashen die Firmware&Bootloader enthält!

Konfigurieren des Koaxmischers vom PC aus (optional, benötigt USB Adapter)
Die Parametereinstellung kann über das Windows PC Program AvrConfig.exe vorgenommen werden. Das Prinzip ist ähnlich zum Updaten der Firmware: Koaxmischer über den MotorB-Servosteckerüber den USB Adapter an den PC anschliessen, und AvrConfig ausführen. AvrConfig wird auch bei einigen meiner anderen Projekten verwendet, und weitere Info gibt es dort.

Bild der AvrConfig GUI für die Koaxmischer-Firmware Version v0.07:
coax mixer arduino v007 avrconfig olliw

Programmierbox (optional)
Auch die Programmierbox kann verschieden realisiert werden; ich verwende dazu eine Robbe Programmer Box, welche mit einer neuen Firmware umprogrammiert wird. Der Aufbau ist genauso wie bei meinen anderen Projekten, und z.B. hier Das GA250 Gyro Firmware Projekt beschrieben.

progbox olliw


Bauanleitung

Prinzipiell sind für den Aufbau zwei Schritte durchzuführen:
– Brennen der Firmware & Bootloader und setzten der Fuses mit Hilfe des ISP AVR Programmer
– Anlöten der Servokabel, evtl des Potis, und Verschrumpfschlauchen nach Belieben

Im Folgenden werden die nötigen Schritte mit Blick auf Arduino Pro Mini beschrieben. Die relevanten Anschlüsse bzw. Pads sind in diesem Bild bezeichnet:
coax mixer arduino pads top bottom olliw

Brennen der Firmware, des Bootloaders und Setzen der Fuses
Einer der wichtigsten Schritte ist das Brennen des Bootloaders und der Firmware, und das setzen der Fuses. Für diese Schritte wird der ISP AVR Programmer benötigt, und mit den ISP Pins am Mikrokontroller verbunden. Beim Arduino Pro Mini geht das leicht da die entsprechenden Anschlüsse über die (im obigen Bild blau bezeichneten) Pads zugänglich sind, d.h. man muss nur den ISP Programmer mit den entsprechenden Pads verbinden (löten). Der Bootloader und die Firmware sind in einer hex-Datei zusammengefasst, d.h. beide werden zusammen in einem Arbeitsschritt gebrannt. Das hört sich jetzt vielleicht alles etwas wild an, ist aber wirklich leicht zu bewerkstelligen.

Jeder beliebige ISP AVR Programmer ist geeignet. Wer noch keinen hat und wenig Geld ausgeben will, dem sei der USBasp zu empfehlen, ist sehr gut und es gibt ihn aus China bereits für 3 Eur inkl. Versand.

Die Fuses sind wie folgt zu setzen (Atmega328P):
– low fuse: 0xFF (CKDIV = 1, CKOUT = 1, SUT1:0 = 11, CKSEL3:0 = 1111)
– high fuse: 0xDE (BOOTSZ1:0 = 11, BOOTRST = 0)
– extended fuse: 0x05 (BODLEVEL2:0 = 101)

Firmware & Bootloader:
– die .hex Datei mit dem Firmware&Bootloadercode ist unter Firmware zu finden

Um diesen Schritt möglichst einfach zu halten, habe ich ein kleines Windows-Progrämmchen geschrieben, welches ich AvrBurnTool genannt habe. Damit lässt sich das Brennen des richtigen Bootloaders und Firmware, und der Fuses in sechs Klicks erledigen. Das folgende Bild sollte ziemlich selbsterklärend sein.

Bild der AvrBurnTool GUI:
coax mixer arduino avrburntool 01 olliw

Umbau des Arduino Pro Mini zum Koaxmischer, Typ I
So kann der Umbau des Arduino Pro Mini zum Koaxmischer (Typ I) aussehen:
coax mixer arduino type1 olliw
Ich habe dazu zwei Servo-Verlängerunsgkabel benutzt, sie passend abgelängt, und dann braucht man sie nur noch an die entsprechenden Pads anzulöten (Pads sind im Bild oben rot angezeichnet). Zur besseren Erkennung habe ich jedes Servo-Kabel noch mit nem Schrumpfschlauch versehen. Der durchsichtige einhüllende Scrumpfschlauch ist der von Hobbyking, welcher allerdings ziemlich dick ist und Alleine schon 0.75 g auf die Waage bringt. Da könnte man also etwas besseres finden.

Materialliste:
1 x Arduino Pro Nano, 3.3 V Version (5 V geht auch)
2 x ServoKabel (z.B. 40CM Servo Lead (JR) 32AWG Ultra Light 10pcs/bag, Hobbyking)
1 x Stück Schrumpfschlauch 2mm rot (z.B. WHS-2MM-RED, Hobbyking)
1 x Stück Schrumpfschlauch 2mm blau (z.B. WHS2MM-Blue, Hobbyking)
1 x Stück Schrumpfschlauch 2mm gelb (z.B. WHS2MM-Yelow, Hobbyking)
1 x Stück Schrumpfschlauch 2mm schwarz (z.B. WH-2MM-BLACK, Hobbyking)
1 x Stück Schrumpfschlauch 16mm klar (z.B. WHS16-Transpa, Hobbyking)

Der Aufbau en Detaile in Einzelschritten:

Umbau des Arduino Pro Mini zum Koaxmischer, Typ II
So kann der Umbau des Arduino Pro Mini zum Koaxmischer Typ II aussehen:
coax mixer arduino type2 olliw
Der Unterschied zum Typ is nur, dass auf der Vorderseite noch ein 5mm Trimmpoti wie zu erkennen an die entsprechenden Pads gelötet wurde. Um das Poti einstellen zu können muss natürlich auch ein passendes Loch, z.B. mit einer Nagelschere, in den Schrumpfschlauch geschnitten werden. Ansonsten war es das.

Materialliste:
1 x alles wie bei Koaxmischer Typ I
1 x 5 mm Trimpoti, Widerstand 5k – 100k Ohm

Der Aufbau en Detaile in Einzelschritten:

Selbstbau des Koaxmischers Typ II mit Durchsteckbauteilen


Aktuelle Firm- und Software

26. März 2013, v20130326
Firmware für Koaxmischer Version v0.07:

  • olliw_coax_mixer_firmware_v007_m328p_8mhz.hex, olliw_coax_mixer_firmware_v007_m328p_16mhz.hex
    oder mit Bootloader integriert:
    olliw_coax_mixer_firmware_v007_wbootloader_m328p_8mhz.hex
    olliw_coax_mixer_firmware_v007_wbootloader_m328p_16mhz.hex

Bootloader für Koaxmischer:

  • BL_4CoaxMixer_MotB_m328p_8mhz.hex, BL_4CoaxMixer_MotB_m328p_16mhz.hex

Windows GUI AvrConfig Version v0.17:

  • AvrConfig.exe, AvrConfig.ini, AvrConfig.tls, CoaxMixer-328-v007.dev

Firmware für Programmierboxen Version v0.14c:

  • ProgBox_v014c_RobbeBox_m88pa.hex oder ProgBox_v014c_RobbeBox_m88pa_wbootloader.hex
  • ProgBox_v014c_RobbeBox_m88.hex
  • ProgBox_v014c_TurnigyDLuxBox_b000_m8_8mhz.hex oder
    ProgBox_v014c_TurnigyDLuxBox_b000_m8_8mhz_wbootloader.hex
  • ProgBox_v014c_TurnigyDLuxBox_b002_m8_16mhz.hex oder
    ProgBox_v014c_TurnigyDLuxBox_b002_m8_16mhz_wbootloader.hex
  • ProgBox_v014c_ArduinoShield_m328p16mhz.hex

Bootloader für Programmierboxen:

  • BL_4RobbeBox_m88PA.hex
  • BL_4RobbeBox_m88.hex
  • BL_4TurnigyDLuxBox_b001_m8_8mhz.hex
  • BL_4TurnigyDLuxBox_b002_m8_16mhz.hex

Weitere Zusatzprogramme:

  • Windows Program AvrBurnTool Version v1.01: AvrBurnTool_v101.exe, AvrBurnTool.ini, AvrBurnTool4coaxmixer.dev
  • Windows Program AVRootloader (by Hagen): AVRootloader.exe, AVRootloader.ini, AVRootloader.dev
  • avrdude.exe, avrdude.conf, FT_PROG.exe, FTD2XX_NET.dll

Alles zusammen als zip File: coax mixer firmware & software v007 [.zip]

Terms of usage: The softwares/firmwares are NOT FREE. You may use it gratis and freely for private purposes only. You may not distribute it publicly or include it in distributions; use links to this page. Furthermore, it is strictly forbidden to use the work in full or in parts in any manner that is intended for or directed toward commercial advantage or private monetary compensation, except you have a written agreement by the author.


12 Kommentare

Hinterlasse einen Kommentar