Open Source Firmware für Lishui Controller

Diskutiere Open Source Firmware für Lishui Controller im Controller/Regler, Fahrerinformation, Elektronik Forum im Bereich Diskussionen; Du hoffst also, daß andere Leute (d)ein Problem lösen, das sie gar nicht haben?! Komisch... Ein Wackel-Kandidat in der Software ist ggf. die...
Hochsitzcola

Hochsitzcola

Dabei seit
04.09.2009
Beiträge
3.049
Details E-Antrieb
Gazelle mit BionX IGH3 + OpenSource Firmware
warum auch immer. Ich hoffe dass die anderen hier ein bisschen helfen können und mehr Möglichkeiten haben
Du hoffst also, daß andere Leute (d)ein Problem lösen, das sie gar nicht haben?! Komisch...

Ein Wackel-Kandidat in der Software ist ggf. die Strom-Messung bei hohem Duty-Cycle, hier wird ja der Meßzeitpunkt innerhalb der PWM-Periode dynamisch angepasst um ein ausreichend langes Meßfenster ohne Schalteinflüsse zu treffen. Meine letzten Messungen dazu waren aber eigentlich zufriedenstellend.
Wenn die Strommessung einen zu niedrigen Wert ergibt, regelt der PI-Regler natürlich auf einen zu hohen tatsächlichen Strom.

Gruß
hochsitzcola
 
Zuletzt bearbeitet:
E

Elias2000

Dabei seit
14.06.2019
Beiträge
184
Es gibt hier andere die diese "Controller wird extrem heiß" Problem auch haben, aber wohl über mehr Möglichkeiten verfügen, als ich.
Wenn ich was machen kann helfe ich gerne, aber ich habe einfach das Equipment nicht für solche Messungen.
 
A

Antonio

Dabei seit
05.06.2017
Beiträge
13
Hallo,
so allgemein mal ne frage bezüglich der Shunts in den
Motorphasen: mein Controller hat Shunts mit 1mOhm, der Controller im Wiki hat Shunts mit 2mOhm.
Hat dieses irgendwie einen Einfluss?

Gruß
 
Hochsitzcola

Hochsitzcola

Dabei seit
04.09.2009
Beiträge
3.049
Details E-Antrieb
Gazelle mit BionX IGH3 + OpenSource Firmware
Hat dieses irgendwie einen Einfluss?
ggf. ist dann bei dir Kalibrierung des Motorstroms anders. Bei mir bedeutet ein Wert von MotorCurrentMax = 300 ja ca. 12 Ampere. Der Wert ist ja leider nicht direkt meßbar und wird in der Firmware über den Duty-Cycle in einen theoretischen Batteriestrom umgerechnet. Da könntest du im Debugmodus schauen, ob das passt, der Batteriestrom in mA ist als Parameter verfügbar. Ob eine Messung über eine Strommeßzange am Motorkabel Sinn macht, weiß ich nicht, die Strommeßzangen sind ja normalerweise auf eine Netzfrequenz von 50Hz ausgelegt.

Gruß
hochsitzcola
 
E

Elias2000

Dabei seit
14.06.2019
Beiträge
184
Normalerweise müsste es heißen dass der Wert in der Software bei Shunts mit 1mohm genau das doppelte von dem an Strom bedeutet, was er
bei Controllern mit 2mohm Shunts bedeutet.
 
Hochsitzcola

Hochsitzcola

Dabei seit
04.09.2009
Beiträge
3.049
Details E-Antrieb
Gazelle mit BionX IGH3 + OpenSource Firmware
genau das doppelte
Aber nur wenn die OPs auf die gleiche Verstärkung eingestellt sind. Die Verstärkung kann man natürlich recht leicht nachmessen, indem man mit dem Labornetzteil einen definierten Strom durch den Shunt jagt, z.B. 2A, und dann am OP-Ausgang die Spannungsänderung mit dem Multimeter misst....

Gruß
hochsitzcola
 
E

Elias2000

Dabei seit
14.06.2019
Beiträge
184
Stimmt ja, da hockt ja noch der OpAmp dahinter, sorry hab ich übersehen, leider weis kein Mensch ob die Amplis bei denen alle gleich eingestellt sind, diese Chinesen bauen ja was und wie sie wollen...
 
E

Elias2000

Dabei seit
14.06.2019
Beiträge
184
Gibt es eiegntlich in China für die Lishuis noch Quellen zum kaufen (Alibaba oa?) Dann bestell ich halt nochmal welche von den Controllern,
vielleicht funktionieren die dann ja, nur die Frage, wie erkennt man ob das was man kauft ein Lishui ist, und ob da ein STM oder ein Cypress Chip drinsteckt?
 
H

Hanton

Dabei seit
04.07.2020
Beiträge
9
Hallo Hochsitzcola,
Leider klappt es nicht der Einstellung Sensorless_VESC.
Von Git, Master heruntergeladen, dann Team --- Senlorless als new Brach ausgewählt.
Als nächster Schritt alle fehlende Datei kopiert.
Die Datei main.c nicht geändert.
Configurator mit allen Display´s probiert, immer kommt der Fehler Display nicht gefunden, siehe Anhang.
Auch wenn ich #Bafang in main.c hinzu füge, kommt immer der "Display-Fehler", mit der Master-Einstellung zeigt sich kein Fehler.
Bitte schaue dir die Datei mein.c an. Bitte sende mir die geprüfte main.c zu.
Danke.
 

Anhänge

Hochsitzcola

Hochsitzcola

Dabei seit
04.09.2009
Beiträge
3.049
Details E-Antrieb
Gazelle mit BionX IGH3 + OpenSource Firmware
Bitte sende mir die geprüfte main.c zu.
Ich glaube nicht, daß du dir meinen Stundenlohn leisten kannst/willst :).

Du musst in der main.c alles was irgendwie mit Bafang zu tun hat rüber kopieren. Abschnitte fangen immer mit #if .... an und hören mit #endif auf.
Beispiel:

Code:
//variables for display communication
#if (DISPLAY_TYPE == DISPLAY_TYPE_BAFANG)
BAFANG_t BF;
#endif
oder

Code:
#if (DISPLAY_TYPE == DISPLAY_TYPE_BAFANG)
      bafang_update();
#endif
In den display_xxx.h mußt du noch jeweils die

Code:
#if (DISPLAY_TYPE & DISPLAY_TYPE_...)
.
.
.
.
#endif
hinzufügen, sonst kommt es zu der Fehlermeldung in deinem Log-File.

In der config.h mußt du dann

Code:
#define DISPLAY_TYPE DISPLAY_TYPE_BAFANG
setzen.

Viel Erfolg!

Gruß
hochsitzcola
 
H

Hanton

Dabei seit
04.07.2020
Beiträge
9
Danke Hochsitzcola für deine Mühe.

Ich habe ein Problem mit der "Software System Reset" kann ich nicht anwählen, Taste "Run" ist nicht untergelegt, muss immer mit "Close" beenden.

Für mich es ist es schwierig in der Programm Struktur hinnein zu denken, erstmal habe keine Ahnung von der Programmiersprache, noch habe Version von "Sensorless" die läuft. Wenn ich die gefunden habe, kann ich andere "Display´s" einfügen und Fehler beseitigen, immer Schritt für Schritt.
Für meine Nerven mache erst einen eine Runde mit dem Rad.

Grüße Hanton
 
Hochsitzcola

Hochsitzcola

Dabei seit
04.09.2009
Beiträge
3.049
Details E-Antrieb
Gazelle mit BionX IGH3 + OpenSource Firmware
In Zuge der Diskussion um das BionX-Projekt ist mir ein "Bug" im Lishui-Projekt aufgefallen.
Ich regle in diesem Projekt ja den Motorstrom. So wird im PAS-Modus überhalb Ramp End unabhängig von der Raddrehzahl der Motorstrom konstant gehalten. Das bedeutet aber, daß die abgegebene mechanische Leistung Pmech = Faktor * Motorstrom* Drehzahl mit steigender Geschwindigkeit steigt.
Man müsste also die Drehzahl wieder aus dem Sollwert für den Motorstrom rausrechnen, wenn man geschwindigkeitsunabhängig eine konstante Leistung durch den Motor beigesteuert haben möchte. :oops:
Das könnte auch ein Grund sein, warum einige Controller abgeraucht sind, eine Batteriestrom-Begrenzung gibt es ja in dem Projekt (noch) nicht.

Gruß
hochsitzcola
 
Zuletzt bearbeitet:
T

tomsen61

Dabei seit
18.09.2014
Beiträge
63
Ort
Raum Würzburg
Hallo, bin ebenfalls noch auf der Suche nach dem Grund für die die Überhitzung.
Habe dazu Vergleichsmessungen, zur Sicherheit mit Controller am Netzteil und Throttle am nicht eingespeichten Shengyi x2 gemacht.

Die Signale verhalten sich ähnlich. Dir original Firmware macht eine Totzeit beim Ein- u. ausschalten von je 1µs. Die OS macht das nicht.
Wie ich die gemessene Gatespannung bewerten soll weiß ich mangels E-Technik Kenntnisse nicht. Da gibt es ein Plateau beim Ausschalten.

Sehr auffällig an der OS ist die PWM, die reproduzierbar in bestimmten Zuständen nicht mehr ausschaltet. Länger als 10sec. habe ich aber nicht getestet, da der Controller schnell heiß wird. Siehe Seite 10.
Ich wollte eigentlich ein pdf anhängen. Da es scheinbar nicht möglich ist, habe ich die Seiten in ein Album gepackt. Ist leider jetzt etwas unübersichtlich.
Beim letzten Bild geht es los.


Gruß tomsen61
 
Hochsitzcola

Hochsitzcola

Dabei seit
04.09.2009
Beiträge
3.049
Details E-Antrieb
Gazelle mit BionX IGH3 + OpenSource Firmware
Dir original Firmware macht eine Totzeit beim Ein- u. ausschalten von je 1µs. Die OS macht das nicht.
Erst mal vielen Dank für die systematische Untersuchung!

Ich habe mich bisher darauf verlassen, daß der Half-Bridge-Driver von allein ausreichend Totzeit macht und deshalb bei der Timerinitialisierung die Totzeit auf 1 gesetzt. Das hatten wir ja etwas weiter oben schon diskutiert. Du kannst die Totzeit mal auf den gleichen Wert setzen, wie die Original-Software, Zeile 938 der main.c.

Code:
  sBreakDeadTimeConfig.OffStateRunMode = TIM_OSSR_DISABLE;
  sBreakDeadTimeConfig.OffStateIDLEMode = TIM_OSSI_DISABLE;
  sBreakDeadTimeConfig.LockLevel = TIM_LOCKLEVEL_OFF;
  sBreakDeadTimeConfig.DeadTime = 1;
  sBreakDeadTimeConfig.BreakState = TIM_BREAK_DISABLE;
  sBreakDeadTimeConfig.BreakPolarity = TIM_BREAKPOLARITY_HIGH;
  sBreakDeadTimeConfig.AutomaticOutput = TIM_AUTOMATICOUTPUT_DISABLE;
  if (HAL_TIMEx_ConfigBreakDeadTime(&htim1, &sBreakDeadTimeConfig) != HAL_OK)
  {
    _Error_Handler(__FILE__, __LINE__);
  }
Sehr auffällig an der OS ist die PWM, die reproduzierbar in bestimmten Zuständen nicht mehr ausschaltet
Ja, das passiert, wenn der Rotor zwischen zwei Hall-Zuständen "zappelt", dann erkennt die Software keinen Stillstand und schaltet nicht ab. Wenn man das Rad leicht rückwärts dreht, hört das zappeln auf und die PWM schaltet ab. Das hatte ich dem Branch reverse and regen ja schon mal mit einer PLL für den Rotorwinkel gelöst (Tipp von @tecnologic (y)). Die richtigen, motorspezifischen Parameter zu finden, war mir aber zu kniffelig für den "normal-User", darum habe ich das nicht in den Master gepackt. Da halte ich das zeitweise Nichtabschalten bei Stillstand für das kleinere Übel.

1597348613015.png

Überprüfe bitte mal dein Throttle_min Wert, setze ihn im Zweifelsfall ein gutes Stück höher. Das sieht mir so aus, als ob current target hier nicht Null wird. 0,8A im Stillstand ist auf jeden Fall deutlich zu viel, ich habe da in der Regel irgendwelche 170 mA.

Gruß
hochsitzcola
 
Zuletzt bearbeitet:
T

tomsen61

Dabei seit
18.09.2014
Beiträge
63
Ort
Raum Würzburg
Du kannst die Totzeit mal auf den gleichen Wert setzen, wie die Original-Software, Zeile 938 der main.c.
Hallo @Hochsitzcola, Ich würde sagen das war’s. (y) (y)

Habe den Wert .DeadTime (DT) von 1 auf 64 geändert, welches dann eine Totzeit zw. HO u. LO von 1µs ergibt.
Folgen:
  • nur noch geringe Erwärmung im Vergleich zu vorher beim Leerlaufbetrieb (I_Leerlauf = 1,4A, vorher I_Leerlauf=1,8A.
  • voher hat sich die PWM ca. in 1 von 5 Fällen nicht mehr ausgeschaltet u. es ist ein Strom von 0,8A geflossen. Dass sich die PWM nicht ausschaltet tritt nun deutlich weniger auf (1 von 30) und wenn, fließt nur ein unschädlicher Strom von 0,18A.
Da sich mit .DT=64 die Leerlaufdrehzahl gegenüber DT=1 schon ein paar Prozent reduziert hat, habe ich DT auf die Hälfte (32) reduziert. Damit hat es noch genauso gut funktioniert und die Drehzahl war noch maximal (270rpm an 38V = 7,1rpm/V).

Überprüfe bitte mal dein Throttle_min Wert, setze ihn im Zweifelsfall ein gutes Stück höher.
Ein niedriger Throttle Min-Wert (800) hat nur bei DT=1 einen negativen Einfluss. Bei DT=32 funktioniert 800 genauso wie 1200.

Ich bin jetzt natürlich auf das Verhalten eingebaut im Rad gespannt. Das kann aber noch etwas dauern.

Gruß Tomsen61

Hier noch ein Bild vom Ausgang Gatetreiber HO (gelb) u. LO (grün) mit DT=32
28 Hidden controller #4 OS HO LO DT 32 akku Screenshot_200814_185841.jpg
 
Zuletzt bearbeitet:
Hochsitzcola

Hochsitzcola

Dabei seit
04.09.2009
Beiträge
3.049
Details E-Antrieb
Gazelle mit BionX IGH3 + OpenSource Firmware
Da sich mit .DT=64 die Leerlaufdrehzahl gegenüber DT=1 schon ein paar Prozent reduziert hat, habe ich DT auf die Hälfte (32) reduziert.
Hm, damit bist du dann wieder bei den 500ns Totzeit, die der Halbbrückentreiber laut Datenblatt eigentlich von alleine machen sollte. Aber vielleicht habt ihr auch einen anderen Typ Halbbrückentreiber verbaut, der nicht eigenständig für ausreichende Totzeit sorgt. Das würde erklären, warum ich das Problem nie hatte...

Ich habe die Totzeit im Repo geändert, so sollte es jetzt für alle funktionieren.
Update main.c · stancecoke/[email protected]

Vielen Dank für die Hilfe (y)

Gruß
hochsitzcola
 
rockyyy

rockyyy

Dabei seit
22.07.2019
Beiträge
67
Hm, damit bist du dann wieder bei den 500ns Totzeit, die der Halbbrückentreiber laut Datenblatt eigentlich von alleine machen sollte. Aber vielleicht habt ihr auch einen anderen Typ Halbbrückentreiber verbaut, der nicht eigenständig für ausreichende Totzeit sorgt. Das würde erklären, warum ich das Problem nie hatte...

Ich habe die Totzeit im Repo geändert, so sollte es jetzt für alle funktionieren.
Update main.c · stancecoke/[email protected]

Vielen Dank für die Hilfe (y)

Gruß
hochsitzcola
Hab die neue main.c drübergeflasht und auch mir kommt vor, dass der Controller um einiges kühler ist bzw. alles "sanfter" läuft (vibrieren ist nun völlig verschwunden).

Eine Frage/Bitte hätte ich noch:

Ist es möglich bzw. viel Aufwand eine Schiebehilfe reinzuprogrammieren? Auf der Original FW war diese vorhanden, die ging an wenn man den "Level Up Button" der Unterstützungsstufe gedrückt hielt & ging nach loslassen wieder aus. Ist denke ich schon ein praktisches Feature wenn man zB sein Rad ne Anhöhe hochschiebt, wiegt ja doch ein wenig was das Teil :D
 
Hochsitzcola

Hochsitzcola

Dabei seit
04.09.2009
Beiträge
3.049
Details E-Antrieb
Gazelle mit BionX IGH3 + OpenSource Firmware
Ist es möglich bzw. viel Aufwand eine Schiebehilfe reinzuprogrammieren?
Das ist kein großes Ding, man muß es halt machen. Im Code einbauen könnte ich es relativ schnell, in Hardware testen nicht, da ich grad mein Bastelrad für das BionX-Projekt umbaue.
Welches Display benutzt du denn?

Gruß
hochsitzcola
 
rockyyy

rockyyy

Dabei seit
22.07.2019
Beiträge
67
Das ist kein großes Ding, man muß es halt machen. Im Code einbauen könnte ich es relativ schnell, in Hardware testen nicht, da ich grad mein Bastelrad für das BionX-Projekt umbaue.
Welches Display benutzt du denn?

Gruß
hochsitzcola
Das Testen übernehm ich natürlich gern und ausgiebig ;-)

Dieses komische Blaupunkt (das ich dir mal geschickt hab), ist unter Bafang auszuwählen.

1598614068006.png
 
Hochsitzcola

Hochsitzcola

Dabei seit
04.09.2009
Beiträge
3.049
Details E-Antrieb
Gazelle mit BionX IGH3 + OpenSource Firmware
ist unter Bafang auszuwählen.
Ich habe die Schiebehilfe jetzt für das Bafang-Protokoll quick and dirty eingebaut:
Push assist function for Bafang Display added · stancecoke/[email protected]

Die Stromstärke für die Schiebehilfe wird in der main.h definiert. Weil ich es nicht besser weiß, habe ich sie auf 30 gesetzt. Das mußt du an deine Wünsche anpassen.

Compilieren hat ohne Fehlermeldung geklappt, viel Spaß beim Ausprobieren! Die Funktion hat so natürlich auch das Potential Controller oder Motor zu grillen, da nicht abgefragt wird, ob sich das Rad auch dreht...

Gruß
hochsitzcola
 
Zuletzt bearbeitet:
Thema:

Open Source Firmware für Lishui Controller

Open Source Firmware für Lishui Controller - Ähnliche Themen

  • Tsdz2 open source firmware mit xh18

    Tsdz2 open source firmware mit xh18: Hallo zusammen, ich benötige mal eure Hilfe. Ich würde gerne meinen Tsdz2 Motor 250 Watt mit Rücktritt und xh18 display mit der Opensource...
  • KT LCD 3 Open SOurce Firmware alle Segmente leuchten steckt fest

    KT LCD 3 Open SOurce Firmware alle Segmente leuchten steckt fest: Oh mann, ihr müsst mich wohl langsam für den totalen Idioten halten. Erst das ganze wilde Gefrage mit dem Lishui und dessen Open Source Firmware...
  • KT-LCD 3 und TSDZ2 ohne Open Source Firmware ?

    KT-LCD 3 und TSDZ2 ohne Open Source Firmware ?: Hallo, ich bin kein Experte, wollte nur um eine Auskunft bitten. Kann man ein LCD3 am TSDZ2 erstmal ohne Open-Source Firmware betreiben und wenn...
  • Kunteng Kt 36 und LCD3 welche open source Firmware?

    Kunteng Kt 36 und LCD3 welche open source Firmware?: Hallo, Ich will eine Open source Firmware auf meinen KT36 installieren, dazu muss natürlich auch ein passendes Gegenstück auf das LCD3, welche...
  • Ähnliche Themen
  • Tsdz2 open source firmware mit xh18

    Tsdz2 open source firmware mit xh18: Hallo zusammen, ich benötige mal eure Hilfe. Ich würde gerne meinen Tsdz2 Motor 250 Watt mit Rücktritt und xh18 display mit der Opensource...
  • KT LCD 3 Open SOurce Firmware alle Segmente leuchten steckt fest

    KT LCD 3 Open SOurce Firmware alle Segmente leuchten steckt fest: Oh mann, ihr müsst mich wohl langsam für den totalen Idioten halten. Erst das ganze wilde Gefrage mit dem Lishui und dessen Open Source Firmware...
  • KT-LCD 3 und TSDZ2 ohne Open Source Firmware ?

    KT-LCD 3 und TSDZ2 ohne Open Source Firmware ?: Hallo, ich bin kein Experte, wollte nur um eine Auskunft bitten. Kann man ein LCD3 am TSDZ2 erstmal ohne Open-Source Firmware betreiben und wenn...
  • Kunteng Kt 36 und LCD3 welche open source Firmware?

    Kunteng Kt 36 und LCD3 welche open source Firmware?: Hallo, Ich will eine Open source Firmware auf meinen KT36 installieren, dazu muss natürlich auch ein passendes Gegenstück auf das LCD3, welche...
  • Oben