- 15 Mai 2021
- 128
- 357
- E-Scooter
- G30D / PRO2
VESC Einbau
mit Xiaomi Display SupportVorwort
Du möchtest einen VESC verwenden, aber hast dich bisher noch nicht dazu entscheiden, denn du möchtest nicht auf das Xiaomi Display verzichten und hast keine Lust auf komplizierte Verkabelung des Lichts, Bremsen, Gashebels und weiteren Komponenten.Dann ist mein Guide für den Einbau eines VESC in den Xiaomi Mi Scooter Pro (2) (auch andere Scooter wie G30 sind unterstützt - sind im Ablauf leicht anders - Erwähnung beachten !!), das richtige, denn hiermit können wir Kompromisslos die Verwendung eines VESC im Xiaomi ermöglichen.
Zu diesem Beitrag bitte auch den Haftungsausschluss der Nutzungsbedingungen - Pkt.8 beachten!
Was ist ein VESC?
Ein VESC ist ein Motorsteuergerät so wie der Xiaomi ESC oder auch Controller genannt. Es gibt etliche verschiedene VESC, denn der Name "VESC" ist lediglich die Bezeichnung für die Open-Source Software des Steuergerätes. Es gibt daher etliche Motorsteuergeräte die sich VESC nennen können und ansteuerbar sind über das VESC Ökosystem. Damit auch kompatibel mit diesem Guide!(Ich spreche hier nicht über die VESC Firmware (SmartESC) für Xiaomi ESCs, sondern um Drittanbieter ESCs mit VESC firmware)
Warum ein VESC verwenden?
Das kann mehrere Gründe haben:- Mehr Einstellungsmöglichkeiten und Einsatzzwecke
- Höheres Leistungspotenzial, effizienter und geräuschloser durch höhere Schaltfrequenzen
- Field Weakening
- Schöne Smartphone App mit Realtime Übersicht
- Leichte Modifikation der Firmware (Open-Source)
- Große Kompatibilität mit jedem Motor (selbst ohne Hallsensor im Sensorless Modus)
Warum keinen VESC verwenden?
Das kann mehrere Gründe haben:- Bisher keine Unterstützung für das Xiaomi BMS Protokoll (OHNE BMS KOMMUNIKATION LIMITIERT AUF 19A - KEINE VERWENDUNG!)
- Kein Rücklicht - aufgrund fehlender Pins.
- Benötigter Aufwand, Geschick und Geduld. Auch bei Problemen die auftreten können beim Einbau und der Verwendung.
- Risiko besteht Schäden an den Komponenten zu hinterlassen, durch die falsche Konfiguration eines VESC.
1x VESC (Flipsky 75100 - siehe "Kompatible VESCs")
1x VESC Bluetooth Modul (Optional): 1x V6 NRF51 Wireless Bluetooth Modul (AliExpress)
3x 5mm Goldstecker F&M: (AliExpress)
1x 7P JST 2,0mm Pitch Anschluss Kabel PH2.0 Stecker: (AliExpress)
1x 6P JST 2,0mm Pitch Anschluss Kabel PH2.0 Stecker: (AliExpress)
1x 1K Ohm Widerstand (Aliexpress)
Übliches Lötwerkzeug: T100 Lötkolben, Lötzinn und Lötpaste
Spintend Ubox (Absolute Empfehlung):
-> Single Ubox 80v 100A Alu PCB (
-> Single Ubox 85v 200A Alu PCB (
84100/200HP Alu PCB (In-built Bluetooth, DC-DC Switch usw):
-> Makerbase 84100HP VESC (AliExpress - 85€)
-> Makerbase 84200HP VESC (AliExpress - 120€)
60100HP Alu PCB:
-> Makerbase 60100HP VESC (AliExpress)
75100 Box:
-> Makerbase 75100 VESC (AliExpress - 75€)
-> Flipsky 75100 VESC (
75100 Alu PCB:
-> Makerbase 75100 Alu PCB (AliExpress - 95€)
-> Flipsky 75100 Alu PCB (AliExpress - 151€)
75200 Alu PCB:
-> Makerbase 75200 Alu PCB (AliExpress - 143€)
-> Flipsky 75200 Alu PCB (AliExpress - 266€)
Warnung: Die 75XXX Lineup von Flipsky und Makerbase hat einen Designfehler, bei diesem die MOSFETs nach einem BMS cut-out defekt werden, aufgrund eines fehlenden Pulldown. Ebenso mangelt es bei diesen an Qualitätskontrolle. Ich rate daher von diesen ab, wenn ihr euch nicht sicher seid ob euer Akku dafür geeignet ist. Ansonsten sind die aber ganz OK. Wer nach etwas besseren schaut, sollte sich die Ubox anschauen oder selbst was basteln.
Selbstbauen:
MP2 300A 100V/150V VESC (
und weitere, die hier nicht aufgelistet sind. Jeder VESC der auf VESC 6.0+ geupdated werden kann ist unterstützt.
-> Single Ubox 80v 100A Alu PCB (
Um Links zu sehen, melde dich bitte an
)-> Single Ubox 85v 200A Alu PCB (
Um Links zu sehen, melde dich bitte an
)84100/200HP Alu PCB (In-built Bluetooth, DC-DC Switch usw):
-> Makerbase 84100HP VESC (AliExpress - 85€)
-> Makerbase 84200HP VESC (AliExpress - 120€)
60100HP Alu PCB:
-> Makerbase 60100HP VESC (AliExpress)
75100 Box:
-> Makerbase 75100 VESC (AliExpress - 75€)
-> Flipsky 75100 VESC (
Um Links zu sehen, melde dich bitte an
)75100 Alu PCB:
-> Makerbase 75100 Alu PCB (AliExpress - 95€)
-> Flipsky 75100 Alu PCB (AliExpress - 151€)
75200 Alu PCB:
-> Makerbase 75200 Alu PCB (AliExpress - 143€)
-> Flipsky 75200 Alu PCB (AliExpress - 266€)
Warnung: Die 75XXX Lineup von Flipsky und Makerbase hat einen Designfehler, bei diesem die MOSFETs nach einem BMS cut-out defekt werden, aufgrund eines fehlenden Pulldown. Ebenso mangelt es bei diesen an Qualitätskontrolle. Ich rate daher von diesen ab, wenn ihr euch nicht sicher seid ob euer Akku dafür geeignet ist. Ansonsten sind die aber ganz OK. Wer nach etwas besseren schaut, sollte sich die Ubox anschauen oder selbst was basteln.
Selbstbauen:
MP2 300A 100V/150V VESC (
Um Links zu sehen, melde dich bitte an
- Selbstbau)und weitere, die hier nicht aufgelistet sind. Jeder VESC der auf VESC 6.0+ geupdated werden kann ist unterstützt.
Vorbereitung der Verkabelung
Flipsky 75100 Verkabelungsplan
Allgemeine Verkabelung (Akku, Motor):
Als aller erstes haben wir das Rot (+) und Schwarz (-) Kabel für die Verbindung mit dem Akku, dort löten wir einen XT60/XT90 Stecker an.
Als nächstes gibt es es die 3x Phase Kabel für den Motor, dafür verwenden wir die 5mm Goldstecker und löten diese an die Kabel des VESCs (sowie an die Kabel des Motors).
Für die Hallsensor Kabel des Motors verwenden wir ein 6P JST PH2.0 Stecker (oder missbrauchen den mitgelieferten Hallsensor Adapter) und verbinden GND, 5V und die HALL Pins (Reihenfolge ist bei einem VESC unwichtig - diese erkennt er automatisch). TEMP lassen wir dabei jedoch frei, wenn kein Temp Sensor am Motor vorhanden ist.
Verkabelung für das Display
Hierfür nutzen wir den COMM Anschluss, dieser verfügt über einen 5V, 3.3V, TX, RX und GND Pin welche wir für das Display verwenden.
Das Original Xiaomi Display Kabel für das Xiaomi BLE verfügt über Drähte für 5V, Button, Dataline und GND.
Nun wie verbinden wir diese mit dem VESC? Wir können uns hierfür die Farben der Drähte zu nutzen machen (Nur bei den original Kabel - die Aftermarket Kabel haben häufig andere Farben - in dem Fall lieber mit der Pin Belegung abgleichen).
Wir nehmen dafür einen 7P JST 2,0mm PH2.0 Stecker und verbinden ihn wie folgt:
Rot auf 5V
Schwarz auf GND
Gelb auf TX (UART-HDX)
Grün auf RX (Button)
1K Widerstand von 3.3V auf RX (Button)
Optional: Um die Spannung zu filtern verwenden wir einen Kondensator auf 5V+GND, und 3.3V+GND.
Montieren des VESC
Wie ihr den VESC montiert ist euch überlassen, jedoch empfehle ich die direkte Befestigung der MOSFETs an einer Heatsink mit Kontakt am Gehäuse des Scooter.Beispiele:
Beim Flipsky 75100 demontiert ihr vorerst das schwarze Gehäuse und nehmt die Platine heraus. An den MOSFETs befindet sich nun eine Aluminium Heatsink, welche ihr nun durch das Bohren von 3x Löchern an der Seite des Scooters befestigen könnt.
Dateien für das Design auf Anfrage.
Erstmals müssen wir VESC Tool von der VESC Project Webseite (
Um mit dem VESC Tool den VESC anzusteuern müssen wir diesen vorher mit dem mitgelieferten USB Kabel an einen Computer anschließen, alternativ geht auch die Verbindung über Bluetooth.
Damit wir den VESC auf 6.05 oder neuer upgraden können benötigen wir erstmals die neue Firmware. Diese können wir uns entweder selbst kompilieren oder wir laden sie herunter von GitHub.
Jetzt fängt der eigentliche Firmware Upgrade an.
ACHTUNG: Der Motor muss frei liegen! Der Motor wird sich beim Setup nämlich anfangen zu drehen und erschrecke dich nicht vor den Geräuschen!
Um Links zu sehen, melde dich bitte an
) herunterladen, um den Download zu erhalten müssen wir vorerst ein Konto erstellen und das kostenlose Paket "kaufen". Danach erhalten wir Zugriff auf die Downloads und wir laden nun das für unser Betriebssystem entsprechende VESC Tool herunter.Um mit dem VESC Tool den VESC anzusteuern müssen wir diesen vorher mit dem mitgelieferten USB Kabel an einen Computer anschließen, alternativ geht auch die Verbindung über Bluetooth.
Firmware Upgrade auf VESC 6.05 oder neuer
Falls unser noch mit VESC 5.3 Firmware ausgeliefert wurde, müssen wir diesen vorest auf VESC 6.05 updaten, denn wir benötigen für die Integration des Xiaomi/NineBot Display (BLE Modul) das neue Lisp-Skript Feature, welches erlaubt in der Programmiersprache Lisp geschriebene Skripte auszuführen.Damit wir den VESC auf 6.05 oder neuer upgraden können benötigen wir erstmals die neue Firmware. Diese können wir uns entweder selbst kompilieren oder wir laden sie herunter von GitHub.
Jetzt fängt der eigentliche Firmware Upgrade an.
- Verbinde dich mit VESC Tool mit dem VESC über den AutoConnect Knopf
- Updaten wir den Bootloader
- Gehe in den Firmware Tab
- Klicke auf den Reiter "Bootloader"
- Wähle "generic" aus (oder die andere übrige Auswahl)
- Drücke auf den Upload Button (Knopf mit Pfeil nach unten)
- Warte bis der Vorgang abgeschlossen ist.
- Updaten wir die eigentliche Firmware
- Klicke auf den Reiter "Included Files" und aktiviere die Option "Show non-default firmwares".
- Wähle nun deine Hardware Version aus (Flipsky/Makerbase 75100 V2 (auch Alu): 75_100_V2, Ubox Single: UBOX_SINGLE_100)
-> Beim ersten Mal: Firmware direkt vonUm Links zu sehen, melde dich bitte anherunterladen und bei "Custom files" auswählen. - Wähle nun die Firmware: VESC_default_no_hw_limits.bin (damit entsperren wir auch jegliche Limitierungen - für Power User nützlich)
- Drücke auf den Upload Button (Knopf mit Pfeil nach unten)
- Warte auf den Abschluss des Uploads und auf den Dialog. Warte bis der VESC sich neugestartet hat und verbinde dich nun wieder. (10+ Sekunden)
- Nun sollte dein VESC mit der aktuellen VESC 6.0 laufen.
Konfiguration des VESC
ACHTUNG: Der Motor muss frei liegen! Der Motor wird sich beim Setup nämlich anfangen zu drehen und erschrecke dich nicht vor den Geräuschen!
- Verbinde dich mit VESC Tool mit dem VESC
- Drücke den "Setup Motors FOC" Knopf
- Beim Dialog "Load default Parameters" auf "No".
- Bei der Auswahl des Motors auf "Generic" und auf "Next", dann "Large Outrunner" und auf Next, beim Dialog auf "Yes".
- Bei der Konfiguration des Akku beim Feld "Battery Cells Series" die Anzahl der Zellen in Serie angeben (36V - 10 Stück, 48V - 13S Stück ... usw), bei "Battery capacity" die Amperestunden deines Akkus. Nun ist wichtig "Advanced" aktivieren. Bei "Battery Current Regen" die maximalen Ampere die durch Regeneration zurück in den Akku fließen dürfen. Bei "Battery Current Max" die maximalen Ampere die aus dem Akku gezogen dürfen werden (bspw. 30A). Dann auf Next.
- Direct Drive aktivieren (wir haben schließlich keine Gänge an unserem Scooter), den Durchmesser des Rads und die Anzahl der Magneten angeben (Das ist nicht so wichtig - denn dies dient lediglich der Messung der Geschwindigkeit). Nun können wir auf "Run Detection" drücken. Beim Dialog auf "No". denn wir nutzen nur einen Controller, bei mehreren auf "Yes".
- Nun startet der Erkennungsprozess und der Motor fängt an zu fiepsen und sich zu drehen.
- Nun können wir auf "FWD" drücken und erkennen ob der Motor sich falsch herum dreht oder nicht, wenn er sich falsch herum dreht dann aktiviere den "Inverted" Regler, der wird den Motor nun richtig herum drehen lassen. Dann auf "Finish".
- Wir sind nun mit den Basics fertig und können mit der Einbindung des Displays weitermachen.
Damit der VESC mit dem Display kommunizieren kann, müssen wir ein Skript auf den VESC laden. Dazu muss der Quellcode des Skripts in die Zwischenablage kopiert werden:
Für das Xiaomi BLE verwenden wir:
Um den Text in roher Fassung auszugeben drücken wir auf "Raw" und können uns bedenkenlos alles kopieren.
Folgende Features sind implementiert:
Allgemeine Einstellungen (
(0 steht für DEAKTIVIERT, 1 steht für AKTIVIERT)
"software-adc" aktiviert das Software-ADC - also die Gas und Bremse läuft über das Display, andernfalls läuft es über die Hardware ADC Pins.
"show-batt-in-idle" aktiviert die Anzeige der Batterieprozent im Idle im geheimen Modus.
"min-speed" gibt die minimale Geschwindigkeit an in der er denken soll dass man nicht fährt (Idle-Modus). Empfehlenswert auf 1 lassen!
Einstellen der Geschwindigkeitsmodi (
Dafür haben wir "speed", "current" und "watt", "fw", sowie folgend den Namen des Modi. Bspw. "speed-sport".
Speed gibt die maximale Geschwindigkeit an. Watt gibt die maximalen Watt des Modis an, Current gibt die Prozentualen Phase Ampere an (welche als maximal eingestellt sind). FW die Ampere des Field Weakening.
Eco ist der Gehmodus, Drive der D Modus, Sport der S Modus. Secret ist der geheime Modus der durch die Kombination: Gas+Bremse gedrückt, 2x Knopf aktiviert werden kann.
Für das Xiaomi BLE verwenden wir:
Um Links zu sehen, melde dich bitte an
Für das G30 BLE verwenden wir:
Um Links zu sehen, melde dich bitte an
(
Um Links zu sehen, melde dich bitte an
)Um den Text in roher Fassung auszugeben drücken wir auf "Raw" und können uns bedenkenlos alles kopieren.
Folgende Features sind implementiert:
- Gashebel drücken beschleunigt deinen Motor ab einer Geschwindigkeit von 1km/h
- Bremshebel drücken bremst mit deinem Motor ab
- Langes drücken des Button schaltet das Display ab (jedoch nicht den VESC selbst!), einmal drücken schaltet ihn wieder an.
- Einmal drücken schaltet das Licht an und aus.
- Doppelt drücken wechselt den Speedmodi.
- Bremse halten und doppelt drücken sperrt den Scooter - erneuter Ablauf macht dieses wieder rückgängig.
- Anzeige des Batteriestandes im Idle (0 km/h) als Geschwindigkeitsanzeige
- Verbinde den vorher vorbereiteten Displaystecker mit dem COMM Anschluss.
- Verbinde dich nun mit VESC Tool mit dem VESC.
- Drücke auf den Tab "VESC Dev Tools", gehe nun auf den Reiter "Lisp"
- Füge nun das Skript aus der Zwischenablage in das große Textfeld ein
- Klicke nun auf Upload und in der Konsole sollte nun eine Nachricht erscheinen
- Begutachte nun dein Display und schaue ob nun der Batteriestand ersichtlich ist
- Fertig. Nun kannst du dein Display verwenden.
Allgemeine Einstellungen (
Um Links zu sehen, melde dich bitte an
):
C-ähnlich:
(def software-adc 1)
(def min-adc-throttle 0.1) ; do not touch
(def min-adc-brake 0.1) ; do not touch
(def show-batt-in-idle 1)
(def min-speed 1)
(def button-safety-speed (/ 0.1 3.6)) ; disabling button above 0.1 km/h (due to safety reasons)
(0 steht für DEAKTIVIERT, 1 steht für AKTIVIERT)
"software-adc" aktiviert das Software-ADC - also die Gas und Bremse läuft über das Display, andernfalls läuft es über die Hardware ADC Pins.
"show-batt-in-idle" aktiviert die Anzeige der Batterieprozent im Idle im geheimen Modus.
"min-speed" gibt die minimale Geschwindigkeit an in der er denken soll dass man nicht fährt (Idle-Modus). Empfehlenswert auf 1 lassen!
Einstellen der Geschwindigkeitsmodi (
Um Links zu sehen, melde dich bitte an
):
C-ähnlich:
(def eco-speed (/ 7 3.6))
(def eco-current 0.6)
(def eco-watts 400)
(def eco-fw 0)
(def drive-speed (/ 17 3.6))
(def drive-current 0.7)
(def drive-watts 500)
(def drive-fw 0)
(def sport-speed (/ 21 3.6))
(def sport-current 1.0)
(def sport-watts 700)
(def sport-fw 0)
(def secret-enabled 1)
(def secret-eco-speed (/ 27 3.6))
(def secret-eco-current 0.8)
(def secret-eco-watts 1200)
(def secret-eco-fw 0)
(def secret-drive-speed (/ 47 3.6))
(def secret-drive-current 0.9)
(def secret-drive-watts 1500)
(def secret-drive-fw 0)
(def secret-sport-speed (/ 1000 3.6)) ; 1000 km/h easy
(def secret-sport-current 1.0)
(def secret-sport-watts 1500000)
(def secret-sport-fw 10)
Speed gibt die maximale Geschwindigkeit an. Watt gibt die maximalen Watt des Modis an, Current gibt die Prozentualen Phase Ampere an (welche als maximal eingestellt sind). FW die Ampere des Field Weakening.
Eco ist der Gehmodus, Drive der D Modus, Sport der S Modus. Secret ist der geheime Modus der durch die Kombination: Gas+Bremse gedrückt, 2x Knopf aktiviert werden kann.
Zuletzt bearbeitet: