^

BLHeli Telemetry View - ein Datenlogger für BLHeli_32 ESCs


Mein ESC kann mehr!

Ganz genau geht es hier um Electronic Speed Controller (ESC) für brushless Modellbaumotoren und wie wir die als Prüfstand verwenden können. Aktuelle ESCs der besseren Art haben oft Telemetrie-Funktionen, d.h. sie können Werte wie Spannung, Strom und Drehzahl messen und nach außen weitergeben.
Im Bereich der Multicopter haben sich ESCs als Quasi-Standard durchgesetzt, die mit der BLHeli Firmware laufen.

Nach zwei OpenSource Generationen dieser Firmware (BLHeli gefolgt von BLHeli_S), ist inzwischen BLHeli_32 aktuell. Diese dritte Generation ist Closed Source, trotzdem wird sie haufenweise von chinesischen Herstellern für ihre ESCs verwendet. BLHeli_32 kann Telemetrie! Die aktuelle Version 32.6 kann nun auch so eingestellt werden, dass Telemetrie-Daten permanent ausgesendet werden. Vorher war das nur auf Anforderung der für Multicopter erforderlichen Controller möglich.

Und da kommt "BLHeli Telemetry View" ins Spiel. Das ist ein Windows-Programm, das die Telemetrie Daten auslesen, anzeigen und aufzeichnen kann. Wir haben also ein Motoren-Prüfstand fast ohne zusätzliche Hardware. Alles was wir brauchen, ist ein BLHeli ESC (beim Chinesen ab 10,- Euro zu haben) und ein USB-Seriell Wandler (ca. 1,- Euro aus China).

Den ESC konfigurieren

Es gibt noch eine Hürde die nicht ohne ist, wenn wir uns noch nie BLHeli beschäftigt haben. Leider müssen wir nämlich davon ausgehen, dass ein BLHeli32_32 ESC im Auslieferungszustand nicht so eingestellt ist, dass er uns die Telemetriedaten automatisch liefert. Zwei softwaremäßige Voraussetzungen müssen gewährleistet sein:
  1. Firmware größer als Version 32.5
  2. In der Konfiguration muss "Auto Telemetry" auf "ON" eingestellt sein.

Beides können wir mir dem Programm BLHeliSuite32 erledigen. Außerdem brauchen wir ein Interface. Das kann ein günstiger Arduino sei, der von der BLHeliSuite32 zum passenden Interface geflasht wird. Jedenfalls ist das ein Thema für sich. Wer das machen möchte, sollte sich die zahlreichen Tutorials im Netz und auf YouTube dazu reinziehen.
Die BlHeliSuite32 gibt's hier: https://blhelisuite.wordpress.com


Hardware und Verbindungen



Wir brauchen:
  1. Einen telemetriefähigen ESC mit BLHeli_32 Firmware.
    Achtung: Nicht jeder mit BLHeli_32 kann Telemetrie und nicht jeder der Telemetrie kann, kann auch Strom messen. Im Bild ist ein Racerstar Tattoo plus 52A zu sehen. Der kann das alles. Einen Überblick bietet diese Seite:
    https://dronedata.info/race-drone-product-category/esc-data/?pa_esc-telementry=yes
  2. Einen USB-Seriell Konverter.
    Gängige Suchbegriffe in den einschlägigen Verkaufsportalen sind: "USB UART TTL". Ich bevorzuge die Chipsätze CH340 oder CP2102. Bei solchen mit FT232 oder PL2303 kann es wegen China-Fake-Chips zu Treiberproblemen kommen. Die passenden Treiber müssen natürlich installiert sein.
Verbindungen:
  • Den Telemetrie-Ausgang des ESC verbinden wir mit dem Eingang des USB-Seriell Konverters.
  • Für Masse (GND) nutzen wir einen der meist mit "-" (Minus) gekennzeichneten Pins an unserem Servotester oder am Empfänger.
  • Am anderen Ende des USB-Kabels hängt unser PC oder Laptop.
 

Hinweise zur Bedienung

Serielle Schnittstelle (Com Port):
BLHeli Telemetry View scannt beim Start alle verfügbaren Portnummern und versucht sich automatisch mit dem "höchsten" Port zu verbinden. Sollte der nicht passen, kann manuell ein anderer Port gewählt werden.

Motor Poles:
Der ESC misst die elektronische Drehzahl, d.h. die Feldumpolungen, die er erzeugen muss. Das muss noch durch die Anzahl der Motorpole geteilt werden (genau genommen die Hälfte der Motorpole), um die Drehzahl an der Welle zu erhalten. Sind wir uns nicht sicher, zählen wir die Magneten in der Glocke unseres Motors. Gängige Quadcopter Motoren haben 14 Pole.
 
Peak Werte:
Darunter sind die Werte zu verstehen, die bei der maximal gemessenen Drehzahl anlagen. Bei der Spannung ist dieser Wert logischerweise nicht der höchste Wert. Der Wert kann mittels der Buttons [Reset] gelöscht werden.

Log to file:
Die Werte können auch aufgezeichnet werden. Speicherort und Dateiname werden automatisch vergeben. Im Ordner Dokumente (Documents) wird ein Ordner "BLHeliTV" angelegt. Dort landen die Logdateien und werden mit Datum und einem Zeitstempel (Sekunden seit Mitternacht) benannt. Das Format ist so gewählt, dass die Daten sowohl als Text als auch mit einer Tabellenkalkulation (Excel u.ä.) verwertbar sind (.csv).
Hinweis: Die Aufzeichnung pausiert, so lange eine Drehzahl 0 gemessen wird. Außerdem kann vom Bediener pausiert werden.

Kalibrierung:
Im oben genannten Ordner wird auch eine Datei namens Calibrate.ini abgelegt. Dort können die Messwerte angepasst werden. In der Datei selber ist erklärt, wie es geht.
Hinweis: Die Kalibrierdaten werden beim Programmstart und beim Anlegen einer Logdatei eingelesen. Zum Testen der Kalibrierung ist folgende Reihenfolge sinnvoll: Geänderte Calibrate.ini speichern - in BLHeliTV Start und dann Stop klicken - die aktualisierten Kalibrierwerte werden eingelesen und in einer Logdatei dokumentiert.

Statuszeile:
Unten im Programmfenster befindet sich eine Statuszeile. Dort werden Meldungen des Programms angezeigt. Neue Meldungen werden rechts angefügt, alte verschwinden nach links.

Download

BLHeli Telemetry View - einschließlich Quelltext

Installieren / Deinstallieren

Das eigentliche Programm besteht aus einer einzigen Datei. Diese kann einfach in einen Ordner nach Wahl kopiert und von dort gestartet werden. Einträge in Registry oder Systemverzeichnisse werden nicht gemacht. Lediglich im Ordner Dokumente wird ein Unterordner "BLHeliTV" erzeugt, in dem Logdateien und Calibrierdaten abgelegt werden.

Zum Deinstallieren reicht es, die kopierten Dateien aus den Download und den Ordner "BLHeliTV" aus dem Dokumente-Ordner zu löschen.


Die verwendete Programmiersprache

Das Programm ist mittels Liberty Basic Booster (LBB) geschrieben. LBB ist Freeware und besticht vor allem damit, dass nach einem lächerlich kleinen Download von 512 kB eine komplette Programmiersprache nebst Editor und Debugger zur Verfügung steht. Nutzung der seriellen Schnittstelle und einfaches Erstellen von grafischen Oberflächen (Windows) ist nativ "eingebaut".

Die Syntax stammt von Liberty Basic; alle Hilfen dazu sind also auch für LBB nutzbar. Darüber hinaus sind auch Sprachelemente von BBC-Basic verwendbar (wovon ich auch Gebrauch gemacht habe). LBB ist eigentlich ein Liberty-Basic zu BBC-Basic Konverter und stammt vom selben Autor wie BBC-Basic. Darüber müssen uns als Programmierer aber keine Gedanken machen. Wir können auf einfachste Weise autark lauffähige exe-Dateien erstellen.

LBB bezogene Links:
LB Booster Homepage:  http://www.lbbooster.com
LB Booster Help manual:  http://www.bbcbasic.co.uk/lbb/lbb.html
LB Booster Wiki:  http://bbcbasic.co.uk/wiki/doku.php?id=lb_20booster
LB Booster Forum:  http://lbbooster.com/forum

Liberty Basic bezogene Links:
Liberty BASIC Homepage:  http://www.libertybasic.com
Liberty BASIC Online Help:  http://www.libertybasicuniversity.com/lb4help
Liberty BASIC Support Group:  https://groups.yahoo.com/neo/groups/libertybasic/info


Frank Steinberg, im November 2018


Zur Startseite

 

Haftungsausschluss    Datenschutzerklärung    Impressum

© Frank Steinberg