RP ✔️ VLT Firmwares, in DE 22Kmh⚡ mit Vanilla Firmware und vieles mehr

Codi hats verstanden 😉. Mir geht es nur allgemein um das einstellen variabler Werte - dezimal zu hex kriege ich ja auch noch hin, aber - und da wiederhole ich mich - mit "
46f2a813 "MOVW R3,#MILLIAMPERE_IN_HEX" 0x5f4c 9a42 8042" braucht mir keiner kommen, das ist für mich chinesisch 🤷🏼‍♂️
 
  • Liebe zum Detail! (2 Punkte)
Reaktionen: Axxelfoley
Daniel_Gee Daniel_Gee
Ich denke mal, das genannte Offset war nur ein Beispiel. Ich kann mit diesen "Offset Vorher Nachher" auch nichts anfangen, bzw. bin noch nicht hinter das System gestiegen. Die Offsets von vooDooShamane im Startpost verstehe ich und hatte mir damit auch vot dem Web Patcher meine VLT Firmwares erstellt.
Ja, gut......das liest sich tatsächliche nicht gleich ersichtlich.
Ich habe auch etliche Stunden damit verbracht die Firmware zumindest im Ansatz zu verstehen, damit ich selbst die passenden Offsets finden konnte was mal mehr und leider auch weniger von Erfolg gekrönt war.
Bevor du ein Offset änderst ist es dennoch ratsam zu wissen was man da ändert und nandtek nandtek und VooDooShamane VooDooShamane sind diesbezüglich die Vollprofis.
Post automatically merged:

Codi hats verstanden 😉. Mir geht es nur allgemein um das einstellen variabler Werte - dezimal zu hex kriege ich ja auch noch hin, aber - und da wiederhole ich mich - mit "
46f2a813 "MOVW R3,#MILLIAMPERE_IN_HEX" 0x5f4c 9a42 8042" braucht mir keiner kommen, das ist für mich chinesisch 🤷🏼‍♂️
Das Offset für die Ampere ist 0x5f48, dort zu finden ist 46f2a813 und das bedeutet "MOVW R3, #MILLIAMPERE_IN_HEX" in Assembler.
 
Das Offset für die Ampere ist 0x5f48, dort zu finden ist 46f2a813 und das bedeutet "MOVW R3, #MILLIAMPERE_IN_HEX" in Assembler.

Bitte was??? Du verstehst mich nicht- ein Offset zu finden geht klar, einen Hexwert in einen anderen zu ändern auch, aber ich kann ja schlecht da einfach "MOVW R3, #MILLIAMPERE_IN_HEX" reinschreiben....

Assembler.... Da kannst auch sagen, bau mir ne Rakete 🤦

PS: du versuchst es zu erklären, das ist nett, danke, aber ich verstehe es leider nicht... und der Rest 0x5f4c 9a42 8042.... irgendwie sind das zuviele Werte für "Offset, Vorher, Nachher".... das wären bei mir 3 Blöcke mit Zahlen/Buchstaben 🥺
 
Daniel_Gee Daniel_Gee

Ich behaupte mal, daß die meisten User hier (mich eingeschlossen), die vor dem Web Patcher eine VLT FW erstellt haben, zum ersten Mal einen HEX Editor genutzt haben.
Ich hatte mich in die 1A Beschreibung von vooDooShamane eingelesen, das entsprechende Offset gesucht und ein oder zwei Zahlen geändert.
Der neue Web Patcher macht das ganze nun noch einmal ein großes Stück einfacher und ist nun auch für absolute Laien nutzbar.
Aber mit "46f2a813 und das bedeutet "MOVW R3, #MILLIAMPERE_IN_HEX" in Assembler" kann ich relativ wenig anfangen.
 
Zuletzt bearbeitet:
Leute,
Es wird alles noch in gewohnter art und weise von mir klar ersichtlich unter Offsets in den ersten Post schaffen.
Momentan bitte ich euch aber noch um etwas Geduld.
Denn nandtek nandtek und ich sind seit Gestern zusammen via Discord call dabei die Firmware zu untersuchen.
Wir haben Gestern und Heute bestimmt insgesammt wieder an die 10std daran gesessen die Firmware zu reverse engineeren.

Wir sind auch sehr weit gekommen und es darf sich mal wieder auf kommende komplett neue noch nie da gewesene Mods gefreut werden.
Nur braucht das Reversen sehr viel zeit, Zeit die mir dann momentan für Dokumentation bzw anpassen des ersten Post fehlt.
Aber keine Sorge, das wird alles noch klar ersichtlich von mir dargestellt.
Und bekommt natürlich dann auch mit den neuen Mods ein dementsprechendes Update.
VooDooShamane VooDooShamane Wir hatten doch mal über 27 km/h Mod für GM gesprochen oder? Quasi zwei Mods: +2 km/h für DE und +2 km/h für GM/Global.
Ja genau,
Sollten wir dann auch in vlt-firmwares.com einbauen.

LG
VooDooShamane
 
Dass den Ausdruck "MOVW R3, #MILLIAMPERE_IN_HEX" die wenigsten verstehen ist mir schon klar. Das dient hier auch nur dem Dokumentationszweck, denn jeder soll wissen, was hinter den Schiebereglern im Web Patcher steckt.

Beispielrechnung: Wir sind unvernünftig und wollen 32000mA haben, wir suchen im Netz nach einem Dezimal zu Hex Konverter und bekommen für 32000 in Hex die Zahl "7D00". Bei Hex hängt man nun vorne noch eine "0x" dran damit jeder weiß, dass es Hex ist, also "0x7D00".
Nun gehen wir auf und geben oben ein: MOVW R3, #0x7D00 (meine Vorlage genommen und das MILLIAMPERE_IN_HEX ersetzt durch 0x7D00)

1645221250182.png
Unten bei "THUMB" steht dann auch schon das Ergebnis in Hex Bytes, das ihr bei euch an den angegeben Offset klatschen könnt.

Voodoo hat euch das Leben einfach gemacht, weil er sich bestimmte Werte rausgepickt und für diese das fertige Ergbnis schon präsentiert hat. Gerade bei Amperewerten fällt es mir aber schwer, bestimmte Werte auszuwählen, daher diese Schreibweise, wo ich aber hoffe, dass ihr das jetzt besser nachvollziehen könnt.
 
Zuletzt bearbeitet:
Dass den Ausdruck "MOVW R3, #MILLIAMPERE_IN_HEX" die wenigsten verstehen ist mir schon klar. Das dient hier auch nur dem Dokumentationszweck, denn jeder soll wissen, was hinter den Schiebereglern im Web Patcher steckt.

Beispielrechnung: Wir sind unvernünftig und wollen 32000mA haben, wir suchen im Netz nach einem Dezimal zu Hex Konverter und bekommen für 32000 in Hex die Zahl "7D00". Bei Hex hängt man nun vorne noch eine "0x" dran damit jeder weiß, dass es Hex ist, also "0x7D00".
Nun gehen wir auf und geben oben ein: MOVW R3, #0x7D00 (meine Vorlage genommen und das MILLIAMPERE_IN_HEX ersetzt durch 0x7D00)

Anhang anzeigen 14122
Unten bei "THUMB" steht dann auch schon das Ergebnis in Hex Bytes, das ihr bei euch an den angegeben Offset klatschen könnt.

Voodoo hat euch das Leben einfach gemacht, weil er sich bestimmte Werte rausgepickt hat und für diese das fertige Ergbnis schon präsentiert hat. Gerade bei Amperewerten fällt es mir aber schwer, bestimmte Werte auszuwählen, daher diese Schreibweise, wo ich aber hoffe, dass ihr das jetzt besser nachvollziehen könnt.
👍👌
Screenshot_20220218_230255.webp
 
So liebe Leute,

ich habe nun die Ehre euch die Früchte der Arbeit von VooDooShamane VooDooShamane und mir vorstellen zu dürfen 😀
Wir haben eine einzigartige Mod für die deutsche Roller Community geschaffen. Großen Dank an dieser Stelle an Vooodoo für die tolle Zusammenarbeit, es hat wirklich sehr viel Spaß gemacht und ich freue mich auf das, was noch so kommt :)

LT GM: Lite Touch German Maneuver

1645230400953.png

Mod Beschreibung
Statt Seriennummern zu verändern, um ein bestimmtes Verhalten des Rollers zu erreichen, haben Voodoo und ich einen Weg gefunden, das Verhalten direkt zu kontrollieren. Es wird keine Seriennummer mehr angefasst, kein Neustart/Reset mehr benötigt und keine Tricksereien wie beim GM bisher. Das LTGM wird wie das DPC einfach per Registerflag ein- oder ausgeschaltet. Heißt: Man kann per Schalter den Roller zwischen einem deutschen Roller und einem internationalen Roller hin- und herschalten und diese Veränderung ist sofort scharf gestellt! Dadurch entsteht außerdem viel Raum für neue Ideen, z.B. LTGM über eine bestimmte Tastenkombination sofort aktiveren/deaktiveren.

Wie sieht die Mod aus?
Gepatcht werden für die Mod insgesamt 12 Offsets. Die folgende Tabelle zeigt die vollständige Mod für DRV236 und DRV304.

DRV236DRV304
OffsetVorherNacherOffsetVorherNacher
0x72290f8431090f83a110x72290f8431090f83a11
0x73a90f8430090f83a010x73290f8430090f83a01
0xbfa92f8432092f83a210xc0292f8432092f83a21
0x156890f8430090f83a010x157090f8430090f83a01
0x5e6895f8431095f83a110x5e7095f8431095f83a11
0x5edc95f8431095f83a110x5ee495f8431095f83a11
0x5f5695f8433095f83a310x5f5e95f8433095f83a31
0x5f6c95f8433095f83a310x5f7495f8433095f83a31
0x616095f8430095f83a010x618295f8431095f83a11
0x616e95f8430095f83a010x619095f8431095f83a11
0x61ec95f8430095f83a010x620e95f8430095f83a01
0x68ae81f8432081f83a210x68d681f8432081f83a21


Was genau passiert da?
Der letzte von den 12 Offsets setzt eine Flag in einer bestimmten Adresse, wenn eine deutsche Seriennummer erkannt wurde (Voodoo und ich haben sie spaßhaft "German Flag" genannt). Alle anderen Offsets lesen diese Flag lediglich aus. Die Firmware entscheidet nun anhand von der Flag, ob bestimmte Dinge so oder so ablaufen sollen, z.B. wird mit Flag das reduzierte Speedlimit benutzt, Cruise Control deaktiviert und vieles mehr. Es sind also 12-1= 11 Entscheidungen, die bei einer deutschen Seriennummer anders getroffen werden!

Eins war uns sofort klar: Wenn wir die Kontrolle über die Flag übernehmen können, dann könnten wir auch alle Entscheidungen die getroffen werden verändern. Das es tatsächlich so ist, haben wir dann in unserer gemeinsamen Session nachweisen können, denn alle Entscheidungen sind Teil der Main Loop des Hauptprogramms. D.h., das Setzen/Rücksetzen der Flag macht sich sofort zur Laufzeit bemerkbar: der Scooter muss nicht neugestartet werden, wie beim GM.

Das einzige was uns bei diesem Vorhaben im Weg stand, ist die Tatsache, dass die Adresse der Flag außerhalb des Bereiches liegt, auf die das Kontrollregister des ESC zugreifen kann. Das Setzen/Rücksetzen der Flag ist also erstmal nicht möglich. Dann kam mir die Idee, dass man ja einfach die Adresse in der Firmware ändern könnte, undzwar auf eine Adresse auf die wir Zugriff haben und die anderswertig nicht in der Firmware genutzt wird. Glücklicherweise war bereits die erste "reservierte" Adresse die wir unter die Lupe genommen haben ein Volltreffer.

Also zusammenfassend, was passiert da: Wir ändern einfach die Adresse des "German Flag" von einer Adresse, die wir nicht kontrollieren können, auf eine Adresse, die wir kontrollieren können. Ganz einfach oder?

Gibt es da noch irgendwas zu beachten?
Bitte informiert euch zu den Rechten und Pflichten zum Betreiben eures E-Scooters im öffentlichen Straßenverkehr! Zu diesem Beitrag wie bei allen übrigen Mods auch bitte den Haftungsausschluss der Nutzungsbedingungen - Pkt.8 beachten.

Für Roller mit EU/US Seriennummer gilt: Das Rücksetzen des LTGM ist nur per Flag möglich, jedoch nicht per Neustart/Reset! Hat man die German Flag gesetzt, so verhält sich der EU/US Roller nach dem Neustart/Reset weiterhin wie ein DE Roller.

Umgekehrt ist das nicht der Fall: Startet man einen DE Roller neu, der die German Flag nicht gesetzt hat, so wird diese beim Neustart wieder gesetzt. Damit verhält sich der DE Roller nach dem Neustart immer wie ein DE Roller. Also wie vom GM gewohnt.

Wann wird es die Mod geben?
Da Voodoo einen Pro2 hat und ich einen 1S, haben wir die Mod bereits auf beiden Rollern testen können. Ich mache morgen noch einen abschließenden Test auf dem 1S und dann wird die Mod in den Patcher geladen! Nach kleiner Anpassung der GM App (siehe Signatur), die ich zeitnahe einspiele, wird man die Mod dann auch direkt schon nutzen können. Die Mod kann man entweder selbst mit dem Hex Editor und den oben angegebenen Offsets erstellen oder über im Bereich "Erweitert". Die Mod kann anschließend über meine GM App (siehe Signatur) oder eine eigene App, die das entsprechende Register liest/schreibt, bedient werden.

Schlafenszeit, gute Nacht. Mehr dazu gibt's morgen Nachmittag :)
 
Zuletzt bearbeitet:
Wunderbare Arbeit, echt!

Was mir noch einfällt (nicht viel, hab keine Xia/Ninebots mehr)

Schreib öfter GM aus zwecks Sichtbarkeit für Google & co bzw. dahinter in Klammer. (Auch im Topic des Threads der anderen App)
Kauft euch endlich nen G30 noch um auf allen Klavieren spiel zu können 😅