|
Was ist BLHeli?
BlHeli ist eine Firmware für ESCs. Wie der Name schon
andeutet, sind
Flächenflugzeuge nicht die Zielgruppe dieser Software. BLHeli ist der
Quasi-Standard für ESCs im Multikopter Bereich. Dennoch lässt
sich ein BLHeli ESC so umfangreich konfigurieren, dass wir diesen auch
sehr gut für Flächenflugzeuge verwenden können. Über zwei Dinge müssen
wir uns aber im Klaren sein:
- Das Konfigurieren geht sinnvoll nur über ein PC oder
Handy. Wir
brauchen dafür neben einer Software (kostenlos) ein extra Gerät, das
als Schnittstelle fungiert. Das kann ein entsprechend programmierter
Arduino sein oder ein USB-Seriell-Wandler mit ein paar extra Bauteilen.
- Bis auf sehr wenige Ausnahmen sind alle BLHeli-ESCs
ohne BEC. Wir
müssen ein separates benutzen oder selber eine Spannungswandler-Platine
auflöten. Wie das aussehen kann, zeige ich weiter unten.
Belohnt werden wir mit sehr kleinen und dennoch leistungsfähigen
Controllern, die teilweise sogar Telemetrie-Daten zur Verfügung stellen.
BLHeli gibt es inzwischen in drei Generationen.
- Die 1. Generation heißt schlicht BLHeli.
Auch heute noch können wir ESCs mit dieser Firmware kaufen. Diese sind
entgegen meiner Aussage von oben oft mit BEC, haben aber weder von den
Abmessungen noch vom Gewicht Vorteile gegenüber den klassischen ESCs.
Wir können uns auch nicht darauf verlassen, dass diese ESCs mit der
BLHeli-Software kompatibel ist. BLHeli der 1. Generation war OpenSource
und manche Hersteller haben die Firmware verändert - EMAX ist so ein
Kandidat.
- Die 2. Generation heißt BLHeli_S und
das läuft ausschließlich auf 8 bit Controllern der Firma SiLabs, die
speziell zur Motorensteuerung konstruiert wurden. Auch BLHeli_S ist
OpenSource und so verwenden es die chinesischen Hersteller häufig für
ihre ESCs. Schlecht: Meines Wissens gibt es keinen BLHeli_S ESC mit
BEC.
- Die 3. Generation heißt BLHeli_32.
Die 32 steht dabei für die erforderlichen 32 bit Prozessoren. Der
Programmierer hat den Quellcode für diese Generation nicht freigegeben
und verkauft die Firmware stattdessen an die chinesischen Hersteller.
BLHeli_32 kann auch die oben erwähnten Telemetrie-Daten liefern.
|
Programmieradapter
für BLHeli
Die Multikopter-Leute können ihre ESCs über ihren Flugcontroller
programmieren. Der wird mit einem Computer verbunden und die
Controller-Software stellt die Möglichkeit zum Einstellen der ESC zur
Verfügung. Was machen wir, die wir keinen Controller einsetzen?
Zumindest haben wir den Vorteil, nicht gleich 4 ESCs programmieren zu
müssen. Deshalb reicht ein USB-Seriell Converter. So ein Kaufgerät ist
genau das mit etwas Zusatzbeschaltung. Wie gut die käuflichen USB-Linker
genannten Teile sind, kann ich nicht beurteilen. Ich habe keinen.
Wir können uns einen USB-Linker auch leicht selber bauen.
Dann können wir den dazu verwendeten USB-seriell Konverter auch für
andere Zwecke nutzen. So ein Gerät sollte jeder Modellbauer im Haushalt
haben, der im digitalen Zeitalter angekommen ist!
Ich empfehle dringend, ein Modul mit FT232RL Chip zu kaufen,
preislich nimmt sich das nichts. Höchstwahrscheinlich ist der verbaute
Chip kein Original von FTDI, sondern ein China-Clone. Dennoch
funktionieren diese in Zusammenarbeit mit mit BLHeli ESCs sehr gut. Ich
habe auch die gängigen Konkurrenten probiert (CP2102, CH340). Die sind
weitaus zickiger und wir müssen mit der Größe des Pullups
experimentieren. Deshalb bis ich auch etwas skeptisch, was das
Kaufgerät (Bild oben) betrifft. Das basiert auf einem CH340.
Wir müssen als Extra-Hardware noch
eine Diode und evtl. einen (Pullup-) Widerstand ergänzen und schon ist
unser "USB-Linker" fertig. Die Diode kann eine beliebige Silizium Diode
sein (z.B. 1N4148) oder eine Shottky-Diode. Bei mir hat der
Selbstbau-Linker bei allen meinen ESCs ohne
Pullup funktioniert. Wichtig ist, dass wir den Jumper auf 3.3V
setzen. Andernfalls sind auch die Pegel auf den Signalleitungen (Rx,
Tx) bei 5V und das könnte den Prozessor auf dem ESC beschädigen.
|
Verbindung
herstellen
Sind wir endlich stolzer Besitzer eines Programmieradapters, schließen
wir den zunächst an den Computer an. Beim Erstkontakt muss
wahrscheinlich ein Treiber installiert werden. Da möchte ich hier nicht
darauf eingehen, das unterscheidet sich nicht von anderen Geräten. Bei
Windows Nutzern sollte im Gerätemanager anschließend ein neuer COM-Port
zu sehen sein:
Auf der anderen Seite verbinden wir die vereinte Rx/Tx Leitung unseres
Programmieradapters (gelbe Leistung in der Skizze) mit der
Signalleitung vom "Servokabel" des ESC. Außerdem wird die schwarze
Leitung (Masse/GND) mit GND verbunden. Die mittlere Ader des
"Servokabels" bleibt frei. Die Stromversorgung des ESC muss durch die
Akkukabel erfolgen. Damit sind wir bereit, die Software zu starten.
|
Software für
BLHeli - BLHeliSuite32
Es gibt zwei Software Varianten, eine für Android und eine für
Desktop-Computer. Die Desktop-Variante heißt BLHeliSuite32 und
die beschreibe ich im Folgenden. Es gibt auch noch eine BLHeliSuite
ohne den Zusatz "32". Die ist für die 1. und 2. Generation BLHeli
vorgesehen.
Link zur Download Seite der BLHeliSuite32 auf GitHub;
es gibt Versionen für Windows, Linux und Mac.
Nach dem Start der Software wählen wir zuerst das passende Interface
aus; wir brauchen USB/Com:
Als nächstes müssen wir dem Programm die Schnittstelle mitteilen, an
der unser Programmieradapter hängt. Wir erinnern uns: In meinem Fall
hat der Gerätemanager COM8 gemeldet. Der taucht erwartungsgemäß in der
Auswahl im Programmfenster unten links auch auf. Wir wählen also COM8
und drücken auf "Connect". Dann sollte eine Meldung in der Fußzeile
erscheinen: "Connecting Interface: Wait for Arduino bootloader timeout
...". Wenn nach einigen Sekunden "Interface Connected" erscheint, haben
wir es
geschafft.
Abschließend lesen wir die Einstellungen aus dem angeschlossenen ESC,
indem wir "Read Setup" drücken. Jetzt können wir alle Parameter ändern
und diese anschließend in den ESC zurückschreiben ("Write Setup"). Aus
dem Programm selber können wir eine umfangreiche Doku abrufen
(englisch), in der alle Parameter erklärt werden. Im Bild unten sind
die Einstellungen zu sehen, mit denen ich meine Deltas fliege:
Das geschulte Auge erkennt: Der Razor32 V2 ESC kann keine S.Port
Telemetrie ausgeben (siehe Kapitel "Telemetrie"). Die onboard LED ist
deaktiviert (blitzt aber beim Anstecken der Stromversorgung kurz auf).
Der Stromsensor hat zu wenig angezeigt, weshalb ich ihn auf +18%
kalibriert habe. Informationen zu allen Einstellungen können im
Programm unter "BLHeli_32 Info" aufgerufen werden.
|
Huckepack BEC
Wie schon erwähnt habe die meisten BLHeli ESCs keine eingebaute
Stromversorgung für unser RC-Equipment, sprich BEC. Wir können
natürlich ein käufliches externes BEC verwenden. Dann haben wir aber
wieder zusätzliche Kabelei, weil wir ja die Akkuanschlüsse anzapfen
müssen. Viel eleganter ist es, wenn das BEC fest mit dem ESC verbunden
ist. Da haben wir ja Zugriff auf das Kabel vom Akku und eine Verbindung
zum Empfänger gibt es auch bereits.
Also bauen wir doch einfach ein BEC Huckepack auf den ESC. Außerhalb
der Modellbau-Welt werden fertige Platinen als "DC-DC step down
converter" oder " DC DC buck converter" angeboten. Das sind
Schaltregler, die den Spannungsunterschied durch "schnelles Schalten"
der
Eingangsspannung erzeugen. Bei Standard ESCs wird das SBEC (Switched
BEC) genannt. Im Gegensatz zu den Linearreglern erzeugt
das weniger Wärme, kann aber empfindliche Elektronik stören.
Nichtsdestotrotz hat das für meine Anwendung bisher problemlos
funktioniert. Ich habe allerdings bisher damit nur kleine Flugmodelle
mit 2 Servos betrieben.
Warnen möchte ich vor neuen Modulen die einen speziellen
Überlastungsschutz haben. Der ist so realisiert, dass der Ausgang
abgeschaltet wird, sobald der Strom einen zulässigen Wert
überschreitet. Das Modul arbeitet erst wieder, nachdem es kurz von der
Eingangsversorgung getrennt wurde. Wenn also mal eine Ruderanlenkung
blockiert, fällt unser Modell vom Himmel, weil ohne Stromversorgung - NICHT
GUT! Der "MINI 560 dc-dc stepdown converter" arbeitet so. Schade
der soll 5A liefern können statt der sonst üblichen 3A max.
|
BLHeli_32
Telemetrie
BLHeli in der 3. Generation kann Telemetriedaten ohne zusätzliche
Sensoren zur Verfügung stellen. Geliefert werden Drehzahl,
Akkuspannung, Strom, entnommene Kapazität und Temperatur. Beim Strom
und
bei der Kapazität müssen wir beachten, dass nicht jeder ESC mit einem
Stromsensor ausgerüstet ist. Fast immer ist das ein niederohmiger
relativ großer Widerstand (Shunt). Fehlt dieser, werden für Strom und
entnommene Kapazität Nullwerte übertragen. Leider geben die
Beschreibungen oft nicht her, was in Sache ist.
Wir können auf den Bildern den erwähnten Shunt (rote Kennzeichnung)
relativ leicht
identifizieren.
Die nächste Herausforderung ist, den Telemetrie-Pin zu identifizieren
(blaue Kennzeichnung). Der ist meist mit "Tx", "TE" oder schlicht "T"
gekennzeichnet. Da löten wir ein Kabel an, über das die
Telemetrie-Daten entweder im S.Port Format oder als serielle Daten im
Kiss-Format in unseren Empfänger fließen.
Wie kommen die Telemetrie-Daten auf meinen Sender?
Möglichkeit 1:
Wir besitzen einen FrSky Empfänger mit S.Port Telemetrie. Haben wir
einen ESC der damit kompatibel ist, können das Datenkabel direkt an
den S.Port Datenpin des Empfängers anschließen. Ob unser ESC kompatibel
ist sehen wir, sobald wir das gute Stück mit der BLHeli-Software
verbinden. Erscheint der Menüpunkt "S.PORT Physical ID", kann unser ESC
S.Port Telemetrie Daten direkt ausgeben. Wir müssen dazu einen Wert
ungleich 0 auswählen.
Möglichkeit 2:
Wir
besitzen einen beliebige Telemetrie Fernsteuerung. Einzige
Voraussetzung ist, dass einer der weiter unten genannten Konverter das
Telemetrieformat verarbeiten kann. In der BLHeli Software aktivieren
wir "Auto Telemetry". Dann gibt unser ESC die Telemetrie-Daten als
seriellen Datenstrom aus (Kiss-Format).
Das wiederum kann ein Konverter in Formate für diverser
Fernsteuerungshersteller
umwandeln. Solche Konverter sind z.B. mein eigener "BLHeli Telemetry Feeder" oder "oXs_on_RP2040".
oXs_on_RP2040
... kann BLHeli-Telemetrie ab
Version 2.11.12 lesen. Ausgeben kann der
Konverter (Stand 3/2024) expressLRS, FlySky, FrSky-S.Port,
FrSky-FBus, Futaba-SBUS2, HOTT, JETI-Ex, JETI-ExBus, MPX, Spektrum-SRXL2.
oXs_on_RP2040 läuft auf
günstigen Boards mit einem Raspi RP2040 Prozessor. Empfohlen ist das
links abgebildete RP2024-Zero Board. Das ist nicht nur sehr klein,
sondern wandert auch gegen sehr geringes Entgelt in unser Eigentum. Zum
"Programmieren"
reicht ein USB-C Kabel. An das Board können wir dann noch
verschiedenste weitere Sensoren anschließen, z.B. ein GPS-Modul um
damit die Geschwindigkeit messen.
|
Windows Software
zum Anzeigen der
Telemetriedaten
Zu guter Letzt noch ein Hinweis auf eines meiner anderen Projekte. Wir
können und die Telemetriedaten auch auf einem Windows-PC anzeigen und
protokollieren lassen. Damit haben wir praktisch einen Motoren-Prüfstand.
Der ESC muss für "Auto Telemetry On" und wenn vorhanden "S.PORT
Physical ID - Off" konfiguriert sein. Wir verwenden unseren bereits
bekannten USB-Seriell Wandler und verbinden den Telemetrieausgang des
ESC mit Rx und natürlich GND mit GND.
Das Programm dazu heißt BLHeli
Telemetry View.
|
|