Skip to content

Latest commit

 

History

History
242 lines (166 loc) · 14.7 KB

File metadata and controls

242 lines (166 loc) · 14.7 KB

VESC Einbau

mit Xiaomi Display Support

Vorwort

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.

Für dieses Guide verwendete Mittel:

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 1-3k Ohm Widerstand

Übliches Lötwerkzeug: T100 Lötkolben, Lötzinn und Lötpaste

Kompatible VESCs

75100 Box:
-> Makerbase 75100 VESC (AliExpress - 75€)
-> Flipsky 75100 VESC (Banggood - mit Honey Add-On um die 87-89€)

75100 Alu PCB (Absolute Empfehlung):
-> Makerbase 75100 Alu PCB (AliExpress - 95€)
-> Flipsky 75100 Alu PCB (AliExpress - 151€)

75200 Alu PCB (Top Performance):
-> Makerbase 75200 Alu PCB (AliExpress - 143€)
-> Flipsky 75200 Alu PCB (AliExpress - 266€)

Weitere Empfehlungen:
Single Ubox 80v 100A Alu PCB (Spintend)
MP2 300A 100V/150V VESC (GitHub - Selbstbau)

und viele weitere.

Schritte

Einbau und Vorbereitungen

Vorbereitung des BLE / Display

Beim Xiaomi (Pro 2) überprüfen wir ob die BLE Firmware aktueller als 1.2.8 ist. Falls nicht updaten wir diese mit der SH Utility App.
Beim G30 flashen wir vorerst die Pro 1 Xiaomi BLE (0.9.0 - 1.2.2) Firmware auf das Display via ST-Link. Diese sind baugleich jedoch von der Software unterschiedlich!

Erfahrungsmäßig läuft das Skript deutlich reibungsloser mit der 1.2.8+ firmware, sollte aber auch wenn nicht möglich auf älteren BLE Versionen (bspw. Pro 1 oder G30 BLE) laufen.

Vorbereitung der Verkabelung

image

Allgemeine Verkabelung (Strom, Motor):

Als aller erstes haben wir das Rot (+) und Schwarz (-) Kabel für die Verbindung mit dem Akku, dort löten wir einen XT60/(oder 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 Ohm Widerstand von 3.3V auf RX (Button)

Optional: Um die Spannung zu filtern verwenden wir Kondensatoren auf 5V+GND, und 3.3V+GND.

image

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:

Flipsky 75100 - Original Heatsink

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.

image

Flipsky 75100 - Custom Heatsink

image image image

Konfiguration des VESC

Erstmals müssen wir VESC Tool von der VESC Project Webseite (VESC Project) 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 7.00

Falls unser VESC noch mit einer älteren Firmware ausgeliefert wurde, müssen wir diesen vorerst auf VESC 7.00 updaten, denn wir benötigen für die Integration des Xiaomi/NineBot Display (BLE Modul) das Lisp-Skript Feature, welches erlaubt in der Programmiersprache Lisp geschriebene Skripte auszuführen.

Damit wir den VESC 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 75100 V2: 75_100_V2, Ubox Single: UBOX_SINGLE_100) -> Beim ersten Mal: Firmware direkt von GitHub herunterladen 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 7.00 laufen.

Allgemeine 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.
Installation und Konfiguration der Display Integration

Das Skript muss nicht mehr von Hand in den Lisp Tab kopiert werden. VESC Scooter Support liegt als fertiges Paket im VESC Package Store.

Installation:

  • Verbinde den vorher vorbereiteten Displaystecker mit dem COMM Anschluss.
  • Öffne VESC Tool und verbinde dich mit dem VESC über Bluetooth, USB oder WLAN.
  • Gehe auf VESC Packages und drücke Update Archive.
  • Wähle unter Applications den Eintrag VESC Scooter Support und drücke Install.
  • Öffne die App UI (VESC Tool -> Navigationsleiste -> App UI), wähle dein Model und drücke Save.
  • Begutachte nun dein Display und schaue ob der Batteriestand ersichtlich ist.

Am Handy über den Package Store:

Setup am Handy

Am PC über VESC Packages -> Load Custom mit der .vescpkg aus den Releases. So kommst du an Versionen, die noch nicht im Store sind:

Setup am PC

Bedienung am Display

  • Gashebel drücken beschleunigt ab der eingestellten Start Speed.
  • Bremshebel drücken bremst mit dem Motor ab.
  • Einmal drücken schaltet das Licht an und aus.
  • Doppelt drücken wechselt den Speedmodus.
  • Gas und Bremse halten und doppelt drücken aktiviert den geheimen Modus.
  • Bremse halten und doppelt drücken sperrt den Scooter, der gleiche Ablauf entsperrt ihn wieder.
  • Langes drücken schaltet den Scooter ab, einmal drücken schaltet ihn wieder an.

Einstellungen in der App UI

Alle Einstellungen liegen in der App UI und werden im EEPROM des VESC gespeichert. Nach dem Ändern des Models startet das Skript von selbst neu.

General:

Model: G30 für das Ninebot G30 Display, M365/1S/PRO2 für Xiaomi M365, 1S, Essential und PRO 2, Slave für den zweiten ESC im Dual Setup.
Software ADC: Gas und Bremse laufen über das Display. Ausgeschaltet laufen sie über die Hardware ADC Pins des VESC.
Motor Temp Warning (°C) und FET Temp Warning (°C): ab dieser Temperatur zeigt das Display das Warnsymbol.

Modes:

Show While Idle: was im Stand angezeigt wird (Speed, Battery %, Motor Temp, Controller Temp, Voltage, Trip, Top Speed).
Start Speed (km/h): ab dieser Geschwindigkeit werden Gas und Bremse freigegeben.
Speed (km/h), Current Scale, Watts und Field Weakening jeweils für Eco (Gehmodus), Drive (D) und Sport (S).

Speed gibt die maximale Geschwindigkeit an, Watts die maximale Leistung, Current Scale die prozentualen Phase Ampere von dem was im Motor Setup als Maximum eingestellt ist.

Secret:

Der geheime Modus wird mit gedrücktem Gas und gedrückter Bremse und 2x Knopf aktiviert. Enabled schaltet ihn frei, die restlichen Felder sind die gleichen wie unter Modes.

Alarm:

Alarm Tone, Speed Trigger (km/h), Gyro Trigger (deg/s) und Volume (V) für die Alarmanlage im gesperrten Zustand (Bremse halten und 2x Knopf drücken).

Konfiguration der ADC App

Gas und Bremse gehen über die ADC App an den Motor, diese muss einmalig eingerichtet werden.

  • App Settings -> General: APP to Use auf ADC stellen, dann Write.
  • App Settings -> ADC -> General: Control Type Current, Use Filter True, Safe Start Regular, Update Rate 1000 Hz.
  • App Settings -> ADC -> Mapping: ADC Mapping öffnen, Gas und Bremse einmal komplett durchziehen und wieder loslassen, dann Apply and Write.

Im Dual Setup zusätzlich Multiple VESCs Over CAN aktivieren und das Paket auf dem zweiten ESC mit dem Model Slave installieren.