Umbaubericht: Ninebot G30 20s Vesc Umbau & DIY Canbus VESC bridge

7 November 2025
7
13
E-Scooter
G30 II
Hallo zusammen,

als ich hier den Scooter von frogminute frogminute gesehen habe, wusste ich sofort:
Geil – sowas brauche ich auch!
Also habe ich angefangen, Teile zu bestellen.

Antrieb​

Motor: LY 17×4 65H
Wahnsinn, was der abfeuert – 12 kW hatte ich bereits im Log stehen.
IMG_4289.webp


Schlagartig Gas geben ist nicht möglich, auch nicht bei 40 km/h.Selbst da steigt der Roller noch aufs Hinterrad
(110 kg Körpergewicht, 192 cm groß).
Das hat mich ehrlich gesagt schon etwas erschrocken.
06c31dcf-0bfd-4dfc-b6f7-450d6f870213.webp
IMG_4313.webp
b3aac2fe-2927-4d89-b7b3-e433da8d0fd3.webp
IMG_4312.webp


Regler: VESC Ubox 85/150

IMG_4095.webp



Akku​

Ursprünglich wollte ich mir einen 16s-Akku bauen,
habe mir dann aber gedacht: Was soll’s – packst du direkt 20s4p rein.

  • Zellen: RS50 5000 mAh
  • Verschweißt mit Kupfer/Nickel
  • Der Bau des Zellhalters inkl. BMS-Befestigung hat doch einiges an Planungszeit gebraucht
  • BMS: JBD 100 A, seitlich verbaut
B28F885D-722A-497D-A3EB-EF9D52992ED3.webp
IMG_3290.webp
IMG_3299.webp

IMG_3319.webp
IMG_3316.webp
IMG_4107.webp


Frontend​

  • Vorderrad: Kaboo Mantis
  • Monorim MX0 (was davon noch übrig geblieben ist …) mit Speedforks
  • Custom DIY Brackets mit Messing Buchse
  • Passgenaue Bolzen für die Speedforks
  • Kotflügel passend für Speedforks
  • DNM 39RC Dämpfer, 165 mm
  • Magura MT5 Bremse + längerer Bremsschlauch
  • Shimano Bremsscheibe + 3 mm Spacer
  • Diverse Shims für Bremse, Gabel und Vorderrad
  • 108X Daumengas (super!)
Die Bremsleistung ist sehr gut
da muss man wirklich aufpassen, blind reingreifen sollte man da nicht.
IMG_3257.webp
IMG_3322.webp


Reifen & Trittbrett & Akkuplatte&Dichtung​

  • Reifen: CST 10×2,5
    (Ulips 10×3 passen absolut nicht in den Serien-Heckkotflügel)
  • Monorim Fußablage
  • Custom Akku Platte
  • Silikon Dichtung

IMG_4105(1).webp
IMG_4190.webp


Steuerung / Elektronik​

Achtung jetzt wird es LANG !

Das Lisp bzw. die DASH-UART → VESC-Anbindung ist ein wenig der Knackpunkt gewesen.
Leider musste ich hier eine unschöne Erfahrung machen
(UART-Verbindung zum VESC weg → Position halten 😅).
Je nach Gasstellung ist das alles andere als angenehm.

Ich habe mich deshalb ziemlich intensiv damit beschäftigt
und mir etwas Eigenes aufgebaut.

Anfangs kam ein ESP32-Board zum Einsatz,
das die Hall-Sensoren einliest und die Werte per CAN an den VESC weitergibt.
Der CAN-Bus wird permanent überwacht –
kommen keine Frames mehr im VESC an, schaltet ein Watchdog den Motor ab.
Auf Core1 laufen alle sicherheitsrelevaten sachen wie ADC einlesen Canbus und Tempomat.
Auf Core2 Dashboarb, Webgui ,Hupe , Blinker ,Rücklicht und Bremslicht
Das Dash ist per UART an den ESP angebundenund wird vollständig vom ESP mit Daten versorgt:
  • Spannung
  • Geschwindigkeit
  • Motortemperatur
  • MOSFET-Temperatur
    (rot blinkend, aktivierbar über 5× Button drücken)

Für das Rücklicht ist ebenfalls gesorgt, inklusive Bremslichtfunktion.
Gesteuert wird das Ganze über einen MOSFET per PWM.
Das Licht lässt sich wahlweise wie Serie über den Taster einschalten oder dauerhaft aktiv betreiben


Zusätzlich habe ich eine Tempomat-Funktion implementiert.
Diese lässt sich entweder über einen Taster
oder durch Halten des Gasgriffs aktivieren.
Da die Funktion über einen PI-Regler realisiert ist,
hält sie die Geschwindigkeit sehr sauber
(unter 1 km/h Abweichung),
auch an Steigungen, solange die Motorleistung ausreicht.
Kann an jedem Presset an oder abgewählt werdern
IMG_4302.webp


Im Web-GUI
(WLAN-Aktivierung über 6× Button drücken) können eingestellt werden:
  • Presets
  • Rampen
  • Expo
  • Schwellen für das Bremslicht
  • weitere Parameter
  • Kickstart km/H
Der Secret Mode lässt sich frei anlernen
(jegliche Button-/Brems-/Gas-Kombination möglich).
Verlassen:
  • über 3× Button
  • oder Gas + Bremse für 1,5 s



Der Vesc wird Via Magnet oder Magsafe Hülle vom Handy aus eingeschaltet, das ist für mich ausreichend. Der Scooter wird angekettet wenn ich eben einkaufen bin.
Eine kleine Alarmanlage liegt auch schon bereit, der der Platz ist ein wenig das Problem. Das gedudele über den VESC halte ich nicht für abschrekend.

Da ich zusätzlich noch Blinker und Hupe integrieren wollte,
wurden diese Funktionen ebenfalls umgesetzt
und über drei MOSFETs realisiert.
  • Blinker im Web-GUI konfigurierbar
  • Standlichtfunktion ebenfalls umgesetzt
Funktionen wie automatische Rekuperation
(echte 1-Finger-Bedienung) sind ebenfalls implementiert.

GUI1.webp
GUI2.webp
GUI3.webp
GUI4.webp

Durch den Funktionsumfang ist die ursprüngliche Platine so groß geworden,
dass sie kaum noch unter das Dash passt.
Daher habe ich mir Prototyp-Platinen fertigen lassen welche auf dem weg sind

Platine.webp

Der Scooter macht enorm viel Spaß
und ist für mich das perfekte Gefährt, um kurze Strecken zurückzulegen.
Trotzdem sind bereits 600 km zusammengekommen 😄
Jetzt fehlt nur noch besseres Wetter.
Dennoch habe ich den auffwand unterschätzt ,alles in allem sind da einige Stunden rein geflossen. Bestimmt habe ich noch einige Mods vergessen!
Blinker + Lenker+ Schalter sind im zulauf, das wird als nächstes umgebaut.

Ein Paar Funktionen habe ich mal gefilmt und mit Angehangen.
IMG_4358.webp
 

Anhänge

  • IMG_3179(2).webp
    IMG_3179(2).webp
    574,7 KB · Aufrufe: 0
Zuletzt bearbeitet:
Vielen Dank :D
Für weitere Implementierungen bin ich gerne bereit.


Platinen wird es zu einem kleinen Preis geben ich denke, das macht am meisten Sinn.


Getestet werden jetzt erstmal die Prototypen. Bis jetzt läuft alles super.


Aktuell läuft die Spannungsversorgung über 12 V vom Ubox, die wiederum den Stepdown für den ESP versorgt. Da stellt sich die Frage: Was macht am meisten Sinn?
Oder sollte ich lieber einen vernünftigen 100 V → 12 V Stepdown (z. B. auf Basis eines LM5013-Designs) entwickeln und alles direkt vom Akku versorgen für Fernentriegelung, GPS-Tracking und ähnliche Funktionen?
 
Stepdown hinter Stepdown kann lustige Sachen machen....

Stepdown direkt am Akku macht am meisten Sinn. Allerdings die billigen chinesischen Dinger ziehen im Leerlauf auch einiges.

Daher hab ich den Stepdown für meine Beleuchtung über das ESC schaltbar gemacht. Wenn der Scooter "ein" ist, schalte ich dem Stepdown die Spannung über einen FET frei.

Ist nur die Frage ob es irgendwas gibt, was dauerhaft Spannung braucht. GPS Tracker oder so.
Ich brach das nicht.
 
  • Hilfreich!
Reaktionen: Madix
Da hast du wohl recht wenn diese nicht korrekt ausgelegt sind.

Stimmt schon möchte eigentlich nichts dauerhaft an der Akkuspannung haben.
Auch eine gute Idee den Stepdown schaltbar zu machen.
Der Fokus wird weiterhin erstmal auf eine gute Fahrbarkeit liegen, was bis jetzt schon sehr gut Funktioniert.
 
Servus,

wirklich super saubere Arbeit, da merkt man, dass du Ahnung hast ;) - bin selber gerade dran (gleiches Setup allerdings 30S und nicht 20S).
Hab auch schon paar Roller mit VESC aufgebaut...

Ich wollte dennoch gerne mit dir über folgende Aussage sprechen:
Das Lisp bzw. die DASH-UART → VESC-Anbindung ist ein wenig der Knackpunkt gewesen.
Leider musste ich hier eine unschöne Erfahrung machen
(UART-Verbindung zum VESC weg → Position halten 😅).
Je nach Gasstellung ist das alles andere als angenehm.

Ich kenn das Script von 1zuna relativ gut, da ich Tempomat, Rücklicht, Bremsslicht und viele weitere Funktionen implementiert habe.

Wenn die UART Verbindung "weg" ist, dann gibt es keine 0x65 Telegramme mehr an den VESC und die Funktion "adc-input uart-buf" wird nicht mehr aufgerufen.
Dadurch findet auch kein Override mehr statt (ja letzter Wert bsp. Vollgas ist noch "aktiv" bzw. wurde vor Ausfall ja noch gesetzt).

Hier sollte hoffentlich aber die Logik vom VESC selbst greifen!
Note: Since firmware 6.05 the ADC-app will no longer reset the timeout by itself when detached. That means that the override-commands have to be sent at a rate higher than the timeout for the output to stay enabled. This is a safety feature that prevents the motor from running after the timeout time if e.g. your script crashes.
Also meiner Meinung nach sollte dann der Timeout greifen und der Output (Motor) deaktiviert werden!

Kannst auch gerne mal einen Blick auf mein Script werfen - werde aber die Tage ein neues Script hochladen, wo der Tempomat "drin" ist.

Ich bin vor ein paar Monaten allerdings auch "umgestiegen" und nutze Gas und Bremse direkt am VESC, da es meiner Meinung nach einfach der sauberste Weg ist...
Ich persönlich habe mich damals aktiv gegen eine Bridge entschieden, da ich persönlich die Notwendigkeit nicht gesehen habe bei einem einfachen Display wie beim G30.

Schönen Gruß
Johannes
 
  • Hilfreich!
Reaktionen: Madix
Hallo Johannes,
Danke für die netten Worte 🙂

30s hört sich spannend an, das wird ziemlich schnell und zu dem auch Drehmomentstark!

Richtig, es findet kein Override mehr statt und der letzte Zustand bleibt bestehen. In meinem Fall war es schon ziemlich unangenehm 🥴. Der Mechanismus greift wenn das Skript abstürzt. Das war bei mir nicht der Fall, leider war der Stecker im vesc nicht eingerastet. Das Verhalten konnte ich auch nachstellen in dem ich den Stecker ziehe.

Zum Thema Notwendigkeit:
Das stimmt wohl, unbedingt notwendig ist das alles natürlich nicht -praktisch aber schon aus mehreren Aspekten.


Für mich der war es notwendig ,da im can noch ein esp32 c3 super mini mit einer IMU hängt welcher mir es erlaubt eine wheely Control umzusetzen. (Klappt ganz gut Winkel wird begrenzt ,bzw. gehalten) Das macht mit dem adc override keine Sinn.

Das Skript schaue ich mir gerne mal an, besonders die Umsetzung des Tempomats. Wir hast du es umgesetzt ? ,,Einfach“ den adc wert gesetzt oder eine Regelung hinterlegt ?

Ein paar Platinen fahren erfolgreich schon durch die Gegend, mittlerweile auch mit Griffheizung (wenn man es braucht).
Die Heizstufe kann über eine Blinker-Brems Kombi verstellt werden und wird dann rot blinkend angezeigt.

Ein paar Platinen bestücke ich in den nächsten zwei Wochen, Fall Interesse besteht.

Viele Grüße
Markus