Umbauanleitungen für Mähroboter (mit Brushless Motoren) anderer Hersteller

Absolut richtig, ich habe an den Coils noch 2 Wires getauscht und dann gab es Laufrichtungssymmetrie - wunderbar :)

Ich habe jetzt für die Motoren eigentlich ein ganz schönes Laufverhalten über die Driver-Boards finden können, allerdings würde ich gerne den Anlauf noch geschmeidiger machen. Bei den ersten 2-4 "+"-Stufen bekomme ich nur das typische Pfeifen, erst danach "bricht" der Motor dann los. Ich finde leider bei den Parametern keine bessere Einstellung - wo ist die Schraube, das Bit, was hier helfen könnte?

 
Du kannst mal mit den TDRIVE und DTIME spielen. Hier mal eine steilere Flanke testen. Es kann aber auch schlicht und ergreifend die Reibung des Getriebes sein und der Motor untenrum zu wenig Kraft hat.
 
@BerndS, könntest Du mir bitte kurz die Berechnung/Bit-Setting des Duty-Cycle in Reg03 erklären?

#define Reg03 0b1110100000000000 // MOD 120 = 2048(0b0101100000000000) if MOD 120 = 3970 use 0b0101111110000010
 
Ist im Datenblat eigentlich gut erklärt;
The measured input duty cycle is scaled by the contents of the MOD120 register. With a full-scale MOD120
register (4095 decimal), the output duty cycle is 2× the input duty cycle. To make the output duty cycle equal to
the input, a value of 2048 decimal should be written to MOD120.
An additional multiplication factor of 2 is introduced when the BYPCOMP bit is set; if BYPCOMP is set, the
output duty cycle is 4× the input duty cycle (when MOD120 is 4095).
 
Vielen Dank. Ich bin mir nicht sicher ob ich das Prinzip verstanden habe, ich habe es jetzt zunächst auf 2048 belassen.

Frage: Ab wieviel "+" drehen Deine Fahrmotoren los? Ich bin jetzt nochmal von 13 (~40% PWM) auf 7 (~21% PWM). Ich habe auch testweise das Getriebe abgenommen, aber das hat kein nennenswertes Losbrechmoment. Wie gesagt, Motor läuft ab ca. 21%, auch noch recht kraftlos, wird aber dann schnell besser. Wie ist das Verhalten bei den Shopmotoren oder Deinen Act-Motoren?
 
Die Shopmotoren und meine ACT laufen sehr früh an und haben auch schon etsprechend Kraft. Das ist schon ein recht linearer Anstieg.
 
Sind die Parameter-Sets im git genau die, die derzeit in die Shop-BL-Driver geschrieben werden? Oder gibt es hier einen aktuelleren Stand?
Gleiches für das Set von Deinen ACT-Motoren - ist das was im git liegt der "letzte" Stand?

Ich würde das vor dem OTP gerne nochmal gegenprüfen - auch ob der anderen Basic-Parameter wie EN oder DIR.
 
Ich bin noch auf folgendes Problem gestossen:
Die im git liegende sunray-FW hat in Ihrer config.h den Eintrag:
// ----- gear motors --------------------------------------------------
// #define MOTOR_DRIVER_BRUSHLESS 1 // uncomment this for new brushless motor drivers
Ich hatte das für die DIY-Treiber nur auskommentiert und bekam dann trotzdem im Startup-Log des M4 die Ausgabe No_Brushless_Drivers (oder so ähnlich), verbunden mit einer Angabe von ca. 12A Stromaufnahme.

Nach Änderung auf
// ----- gear motors --------------------------------------------------
#define MOTOR_DRIVER_BRUSHLESS true // uncomment this for new brushless motor drivers
sank die angegebene Stromaufnahme auf 0.2A - soweit so gut.

Ich betreibe die DIY-Treiber derzeit an einem sep. Netzteil, da die Motoren mit 15V angegeben sind (aber im Husqvarna 230/260/265 mit 18 bzw. 22V gefahren werden) und um das Setup der DIY-Treiber zu halten, da ich meine Config noch nicht per OTP geschrieben habe.

Vor der o.a. Änderung wurde ausgegeben, dass die Motoren im Overload sind. Bei AT+E wurden zwar die Ticks gezählt, wenn man den Motor von Hand drehte, aber die Stromaufnahme war mit je 3.2A angegeben.

Nach der o.a. Änderung wird im Log "Left Motor Fault" ausgegeben, der Fehler wandert mit, wenn man die Driverboards wechselt. Bei AT+E wird für beide Motoren eine Stromaufnahme von 0.irgendwas angegeben, allerdings werden auch nur noch die Ticks des "funktionierenden" Motors angezeigt. Wohlgemerkt dreht sich bei AT+E noch kein Motor.

Bei beiden Treiberplatinen liegen 18V an, die Hallspannung beträgt 5V.

MUSS per OTP vorher die Konfig in die DIY-Baords geschrieben werden, damit diese am PCB funktionieren? Was dagegen spricht: Warum wird nur ein Motor als Faulty angezeigt?
(Ich habe die Driver/Motoren) jetzt noch nicht wieder am Nano getestet - das hole ich gleich noch nach - um zu schauen, ob Motor/Treiberplatine an sich noch iO sind.
Die Motoren laufen an den Treiberplatinen mit angestcktem Nano einwandfrei.

Hat jemand einen Tip wo ich ansetzen könnte? Vielen Dank!
 
Zuletzt bearbeitet:
Hallo,

kleiner Fortschritt: Es scheint so zu sein, dass der Versuch, die Konfiguration per SPI in die Driver zu schreiben, für die Fehlermeldung Motor Fault Left & Right sowie Motor Recovery Failed ursächlich ist.

Im Wiki steht zwar: "... But via SPI, all register parameters can be changed during operation and they will be active until power down the Board." - aber ich weiss nicht wie das zu bewerkstelligen sein soll.

Wenn ich die Motoren mit den unprogrammierten Diver-Boards anhänge, bekomme ich auf der M4-Konsole keinerlei Fehlerausgaben dazu. Jeder Versuch, z.B. nach PowerUp mit aufgestecktem oder abgezogenem Verbindungskabel zu Adapter-Board die Konfiguration per SPI zu schreiben sorgt dann im Nachgang für die Fehlermeldung wie oben angegeben. Lt. motor.cpp werden die Fehlermeldungen bei Überstrom oder Übertemperatur ausgelöst - aber wie kommt es in meinem Setup dazu? Enable-Polarität falsch gesetzt? HAL-Spannung liegt bei an PCM angeschlossenen, per SPI programmierten Driver-Baords bei 5V, sollte also passen...

Übrigens ist zu merken, dass die Motoren, wenn man sie an den ungebrannten Driver-boards in Betrieb nimmt, "fest" sind, also auf eine Art "gebraked".

Da ich mit meinem Parameter-Satz, der zwar Stand-Alone auf dem Schreibtisch recht annehmbar läuft, nicht sicher bin, ob das dann auch so am Ardumower läuft, würde ich diesen Parameter-Satz vor dem Brennen/OTP gerne am PCB testen - aber wie?

Dann habe ich noch etwas Unklarheit, ob im Parameter-Satz zB Register PWM (10) oder PWM (01) zu setzen ist (im DRV8308-Sketch finden sich beide Varianten), wie Enable gesetzt werden soll und ob eine Brake-Funktionalität zu setzen ist. Daher die Frage nach dem "Referenz"-Parametersatz der auf die Driver-Boards für die Shop-BL-Motoren und/oder @BerndS' ACT-Motoren geschrieben wird, um hier einen Anhalt zu haben. Es finden sich zwar Sätze im Sketch/git, die sind für mich aber nicht 100%ig eindeutig, daher wäre es nett, wenn hier Klarheit geschaffen werden könnte.

Kann hier jemand helfen?
 
... mir gehen leider langsam die Haare & Ideen aus - möglicherweise/wahrscheinlich? ist's nur ne Kleinigkeit. Aber ich bekomme die Motoren am PCB nicht ans laufen - mit dem Programmer jedoch wunderbar.

Lt. Datenblatt wird das Setup aus dem OTP-Speicher gelesen (ist noch nicht gebrannt weil ichs vorher am PCM testen möchte) - es sei aber jederzeit möglich auch während der Nutzung per SPI andere/geänderte Parameter zu schreiben. Das scheitert hier.

Wenn ich die Fahrmotoren am PCB habe scheinen diese wie bereits beschrieben zumindest irgendwie gebremst zu sein. Fehlermeldung Motor Fault kommt nicht. AT+E zeigt, dass ich wenn ich die Radnaben drehe, die Ticks angezeigt bekomme. Strompro Motor ist aber trotz Stillstand auch nicht ganz 0 - schwankt von 0.1 bis 0.3.

Stecke ich das Programmer-Board an und schreibe meinen Parametersatz in den Driver - das Script ergänzt um das explizite Nullen des Fehlerregisters, so "löst" sich die Bremse, es werden aber bei AT+E auch keine Ticks mehr angezeigt, schwankende Anzeige einer Minimalstromaufnahme bleibt bestehen.

Ich habe die Ansteuerung mit RegisterPWM als auch PWM getestet (bei PWM only tut sich auf dem Schreibtisch Driver/Motor allein nix - ich hatte den Verdacht, dass, da vom PCB extern über PWM angesteuert wird, hier der Haken sein könnte - wars aber auch nicht (jedenfalls hatte ich keine Änderung).

Hat jemand mit den DIY-Treiberboards bereits seine eigenen Motoren an das PCB gebracht und könnte vielleicht Hilfestellung oder Tips geben, wo ich noch ansetzen könnte?

DANKE! :)
 
Hallo;
erstmal, dass die Stromaufnahme nicht null ist, liegt daran dass auf dem BL Adapter die Stromaufnahme des BL-Driver gemessen wird, da ja auch im Stillstand einige mA zieht,
Ich habe noch nicht genau verstanden was da nicht fuktioniert. Aber wenn PWM nicht läuft ist es bei mir immer der Fehler dass ich vergessen habe im Reg. 0 von SPI Reg. Mode auf PWM zu ändern. Bit 5&4 auf 01 für PWM
1627299399813.png
 
Hallo Bernd!
Ja, das hatte ich jetzt im letzten Versuch auch nochmal explizit probiert.
-> Änderung Reg00, Bit5&4 auf 01 -> PWM iso 10 RegisterPWM.
-> Board eingeschaltet
-> SPI/Programmer aufgesteckt
-> Sketch mit PWM 01 übertragen
-> ... kein Erfolg :-(

Ich will nicht ausschliessen, dass ich bei dem Vorgang selbst einen Fehler gemacht habe, aber die Idee mit 01 hat bei dem letzten Test (noch) nicht funktioniert.

Wie machst Du das mit noch nicht per OTP parametrierten Drivern: Wie schliesst Du den SPI-Programmer bei ebenfalls am PCB angeschlossenen DIY-Boards an und änderst die Konfig? Oder - was lt. Datenblatt egal sein sollte - wie änderst Du die Parametrierung am PCB bei bereits per OTP beschriebenen Drivern?

Welche Logs kann ich Dir posten, damit Du evtl. den Fehler nachvollziehen kannst?

... ich gehe nochmal in den Keller und werde nochmal das mit PWM 01 testen... wer weiss....
 
Output AT+E
CON:AT+E
motor test - 10 revolutions
t=0 ticks Left=0 Right=0 current Left=0.09 Right=0.10
t=1 ticks Left=0 Right=0 current Left=0.10 Right=0.13
t=2 ticks Left=0 Right=0 current Left=0.13 Right=0.09

-> ok, looks fine.

Aktueller Regelsatz:
#define Reg00 0b1001101101010001
#define Reg01 30
#define Reg02 0b0000001110110100
#define Reg03 0b1110100000000000
#define Reg04 0b0000010010010010
#define Reg05 0b0011100000000111
#define Reg06 0b0000010010110000
#define Reg07 950
#define Reg08 0b0000000100101100
#define Reg09 0b0000001001011000
#define Reg0A 0b10000011100101100 // 0 am Ende zuviel?
#define Reg0B 0
#define Reg2A 0

Wenn ich das PCB normal einschalte bekomme ich mit AT+E o.a. Listing - wenn ich händisch eine Nabe drehe sehe ich auch Ticks. Nach dem schreiben des Parameter-Sets werden keine Ticks mehr gezählt.

... mir fehlt halt der Mut den Satz per OTP zu brennen, ohne zu wissen ob die Motoranpassung gut genug ist oder noch Luft für ein besseres Setup da wäre... ... ich denke, die Chance, dass es mit OTP dann läuft ist ja da - aber ich bin mir halt nich sicher - sollte ja auch vorher per SPI zu testen sein.
 
Zuletzt bearbeitet:
Da kommen die Odo Ticks nicht durch. Ist das Odo Kabel richtig gesteckt?

Ich habe heute leider wenig Zeit, aber lass uns doch mal norgen telefonieren, dann geht das schneller und ich verstehe besser was du schon genacht hast.
Schick mir mal 'ne PN mit deiner Tel. Nr. und wann du erreichbar bist.
1627301697877.png
 
Die Odo-Ticks kommen durch, solange per SPI noch nicht der Parametersatz geschrieben wurde:

CON:AT+E
motor test - 10 revolutions
t=0 ticks Left=0 Right=0 current Left=0.06 Right=0.09
t=1 ticks Left=0 Right=0 current Left=0.11 Right=0.11
t=2 ticks Left=0 Right=0 current Left=0.05 Right=0.15
t=3 ticks Left=0 Right=0 current Left=0.14 Right=0.11
t=4 ticks Left=0 Right=0 current Left=0.08 Right=0.11
t=5 ticks Left=0 Right=4 current Left=0.05 Right=0.11
t=6 ticks Left=0 Right=7 current Left=0.11 Right=0.13
t=7 ticks Left=0 Right=12 current Left=0.08 Right=0.08
t=8 ticks Left=0 Right=12 current Left=0.04 Right=0.10
t=9 ticks Left=0 Right=12 current Left=0.14 Right=0.15
t=10 ticks Left=1 Right=12 current Left=0.10 Right=0.10
t=11 ticks Left=7 Right=12 current Left=0.10 Right=0.10
t=12 ticks Left=7 Right=12 current Left=0.06 Right=0.09
t=13 ticks Left=7 Right=12 current Left=0.06 Right=0.11

... händisch gedreht - nur ein minimales Stück, Motoren scheinen gebremst.
 
ok, was mir dazu spontan einfällt, Polarität von ENBL (Reg. 0 Bit11) oder BRK (Reg. 0 Bit9) falsche ( evtl auch den PulUp nicht angelötet (Drv. Version 1.1)
Oder FGSEL mit 10 oder 11 geladen, dann erwartet der Tachosignale.

1627302704377.png
 
Register 00 bei mir derzeit: 1001101101010001

AG_SETPT: 1001 -1.5kHz
ENPOL: 1 - Device is active when ENABLE is low
DIRPOL: 0 - Normal DIR pin behavior
BRKPOL: 1 - Brake when BRAKE is low
SYNRECT: 1 - Enabled
PWMF: 01 - 50 kHz
SPDMODE: 01 - PWM / Clock PWM Mode
FGSEL: 00 - Use HALL_U to generate FG
BRKMOD: 0 - Coast when ENABLE is inactive (outputs 3-state)
RETRY: 1 - Automatic retry in case of fault

Brushless Adapter und Brushless Driver beide V1.1 - nach meinem Kenntnnisstand keinerlei Pullups nötig, korrekt?
 
So, läuft :)

Es war tatsächlich das ENPOL-Bit. Ich kam nicht drauf, weil die HAL-Spannung bei 5V lag und ich daher von einem funktionierenden Enable ausgegangen war.

FG-Sel habe ich von XOR auf U_Hall umgestellt, das scheint schöner zu regeln.

Vielen Dank, @BerndS, für die Tips... war ne schwierige Geburt aber am Ende doch nur die erwartete Kleinigkeit :)
 
Hallo zusammen!
Mein Viking imow 422p nervt. Seit jeher.
Macht es in euren Augen Sinn, ihn zum Ardumower umzubauen?
Falls ja, was brauchst ich dafür ungefähr? Das Ardumower Mainboard?

Danke für jeden Tipp,
Andi
 
Oben