ArduMower Brushless Drive

Ja, das mit den Updates ist so eine Sache.
Heute Abend wurde anscheinend die App geupdatet und schwupps, geht die WLAN Verbindung nicht mehr.
Das ist sehr ärgerlich, die aktuelle Stable ist damit nicht mehr WLAN fähig. Kann das jemand bestätigen?
Ich finde das nicht i.O, da ich immer den Status des Mähers und Kamera über VPN checke.. Map hochladen, losschicken etc..
 
Hallo, falls es wirklich ein Verbindungs-Problem in der App gibt (und z.B. kein Browser-Update dazu geführt hat dass "CORS" aktiviert wurde), bitte hier im Thread ein kurzes Browser-Log posten (wie in dem dort gezeigten Beispiel) - Dann können wir das Problem analysieren. Danke :)
 
Zuletzt bearbeitet:
Hallo, falls es wirklich ein Verbindungs-Problem in der App gibt (und z.B. kein Browser-Update dazu geführt hat dass "CORS" aktiviert wurde), bitte hier im Thread ein kurzes Browser-Log posten (wie in dem dort gezeigten Beispiel) - Dann können wir das Problem analysieren. Danke :)
Hallo Alexander,
nein ich habe die App auf dem Mobiltelefon verwendet. Also über EVOViewer. Das ging ganz plötzlich nicht mehr, obwohl es nie ausgesetzt hatte.
BT geht noch. Weiterhin brauch ich immer seit einiger Zeit mehrere Anläufe, Karten auf den Mäher zu Laden. Über WLAN oder BT gleichermaßen.
 
:ROFLMAO:
Hast du schnell in der App den Infolink hinzugefügt.

Aber es geht wieder! Vorhin hatte ich den Mower bestimmt 3mal neu gestartet weil es nicht ging.
Wenn du es gefixt hast: Man ging das schnell.
Oder es war irgend ein anderes Problem das sich von alleine aufgelöst hat.
Funktioniert jedenfalls.
(y)

Dann kann ich morgen auf Arbeit wieder heimlich Ardumower gucken :D
 
Da mein Mähmotortreiber leider auch nicht mehr geht würde ich vorübergehend den Chinatreiber nehmen. Bis ein neuer original Brushlesstreiber wieder eintrifft. Als Dokument oder PDF kann ich das gerne zur Verfügung stellen. Habe darin aufgeführt die Verkabelung mit Bildern von Tim

Braucht man einen Poti um den in Betrieb zu nehmen? Habe mal so ziemlich alles wichtige zusammengetragen.

Die einen schreiben 5V auf Enable die anderen Enable auf Enable Bruschless Adapterboard. Funktioniert wirklich beides?

Ich habe das Bruhlesstreiberboard 1.0 mit eingelöteten Widerständen, Widerstände eingelötet lassen oder müssen die raus, das wurde bis jetzt nicht eindeutig klar beantwortet.

Genügt der Code von Tim? make min PWM a configuration option to allow custom motor drivers by timotto · Pull Request #33 · Ardumower/Sunray · GitHub
oder eher das hier von Slide: Brushless define · Issue #64 · Ardumower/Sunray · GitHub
 
Eventuell kann @AlexanderG uns ja kurz weiterhelfen und einschätzen ob man die Anpassungen an der AmRobotDriver.cpp mit den neuen Optionen der verschiedenen Treibern recht einfach integrieren kann in das aktuelle stable Build ohne komplett auf den neusten Build gehen zu müssen. :)

Ich werde Morgen denke den JYQD mal verbauen, wollte mich da an die Pinbelegung halten wo der 5V unbelegt bleibt.
Kann Morgen Abend berichten ob es funktioniert.
 

Anhänge

  • 1651744814264.png
    1651744814264.png
    1 MB · Aufrufe: 14
Die Verkabelung habe ich vorbereitet, muss nur noch vom Mähmotor die Hallkabel auspinnen und wieder einpinnen. Dann noch der richtige Code und es vorübergehend mit dem Treiber weiter.
 
Letzte offizielle war das hier: (27) News/Updates Ardumower | Ardumower

Also das die neuen Treiber nachgeliefert werden und wer einen defekten hat sich mit der Auftragsnummer vom Ardumower sich per email bei Marotronics melden soll.
Sonst weiß ich noch das die Produktion läuft, also Nachschub kommt.
 
Da mein Mähmotortreiber leider auch nicht mehr geht würde ich vorübergehend den Chinatreiber nehmen. Bis ein neuer original Brushlesstreiber wieder eintrifft. Als Dokument oder PDF kann ich das gerne zur Verfügung stellen. Habe darin aufgeführt die Verkabelung mit Bildern von Tim

Braucht man einen Poti um den in Betrieb zu nehmen? Habe mal so ziemlich alles wichtige zusammengetragen.

Die einen schreiben 5V auf Enable die anderen Enable auf Enable Bruschless Adapterboard. Funktioniert wirklich beides?

Ich habe das Bruhlesstreiberboard 1.0 mit eingelöteten Widerständen, Widerstände eingelötet lassen oder müssen die raus, das wurde bis jetzt nicht eindeutig klar beantwortet.

Genügt der Code von Tim? make min PWM a configuration option to allow custom motor drivers by timotto · Pull Request #33 · Ardumower/Sunray · GitHub
oder eher das hier von Slide: Brushless define · Issue #64 · Ardumower/Sunray · GitHub
hatte hier schon mal viel zusammengefasst https://forum.ardumower.de/threads/ardumower-brushless-drive.24030/post-52866

Was die Widerstände angeht, würde ich erst einmal ohne versuchen, es hat wohl auch schon Treiber gegeben die statt des HIGH ein LOW Signal auf dem EN wollen
 
Hallo Algo,

deinen Eintrag hatte ich schon gesehen und auch rausgezogen. Low oder High, bezieht sich auf die Widerstände oder auf den code?
 
Kann man im aktuellen Sunray Build schon damit den JYQD als Mow Motor mit den DRV8308 als Antrieb kombinieren?
Die DRV8308 wollen ja Enable Low und der JYQD Enable High?

Gibt es dafür schon einen simplen Code dass die unterschiedlich angesteuert werden oder muss man da auf das neue Sunray Release warten?

In der aktuellen Version wird ja zwischen Gear und Mow nicht unterschieden in der AMRobotDriver.cpp, es wäre ja aber ein einfaches hier einfach ein zweiten separaten Wert für den Mow Motor einzufügen?

void AmMotorDriver::begin(){
#ifdef MOTOR_DRIVER_BRUSHLESS
// logic for brushless drivers
CONSOLE.println("MOTOR_DRIVER_BRUSHLESS: yes");
faultActive = LOW;
enableActive = LOW;
#else
// logic for brushed drivers
CONSOLE.println("MOTOR_DRIVER_BRUSHLESS: no");
faultActive = LOW;
enableActive = HIGH;
#endif

// left wheel motor
pinMode(pinMotorEnable, OUTPUT);
digitalWrite(pinMotorEnable, enableActive);
pinMode(pinMotorLeftPWM, OUTPUT);
pinMode(pinMotorLeftDir, OUTPUT);
pinMode(pinMotorLeftSense, INPUT);
pinMode(pinMotorLeftFault, INPUT);

// right wheel motor
pinMode(pinMotorRightPWM, OUTPUT);
pinMode(pinMotorRightDir, OUTPUT);
pinMode(pinMotorRightSense, INPUT);
pinMode(pinMotorRightFault, INPUT);

// mower motor
pinMode(pinMotorMowDir, OUTPUT);
pinMode(pinMotorMowPWM, OUTPUT);
pinMode(pinMotorMowSense, INPUT);
//pinMode(pinMotorMowRpm, INPUT);
pinMode(pinMotorMowEnable, OUTPUT);
digitalWrite(pinMotorMowEnable, enableActive);
pinMode(pinMotorMowFault, INPUT);[/CODE]

Wobei ich mir um die Geschichte mit dem Speed setzen mehr Sorgen mache, denn hier wird aktuell noch gar nicht nach Gear und Mow unterschieden, wenn ich da also wie häufig erwähnt einfach die Zeile auskommentiere dann dürften die DRV8308 nicht mehr korrekt laufen?

void AmMotorDriver::setBrushless(int pinDir, int pinPWM, int speed) {
//DEBUGLN(speed);
if (speed < 0) {
digitalWrite(pinDir, HIGH) ;
if (speed >= -2) speed = -2;
pinMan.analogWrite(pinPWM, ((byte)abs(speed)));
} else {
digitalWrite(pinDir, LOW) ;
if (speed <= 2) speed = 2;
pinMan.analogWrite(pinPWM, ((byte)abs(speed)));
}
}
 
Zuletzt bearbeitet:
Braucht man einen Poti um den in Betrieb zu nehmen?
Braucht man nicht, nur wenn man vom Min PWM bis Max PWM durchtesten will, sonst 5V drauf und den Test mit maximal Geschwindigkeit durchführen.


Die einen schreiben 5V auf Enable die anderen Enable auf Enable Bruschless Adapterboard. Funktioniert wirklich beides?
Enable auf Enable funktioniert, die andere Variante müsste auf jeden Fall auch gehen
Ich habe das Bruhlesstreiberboard 1.0 mit eingelöteten Widerständen, Widerstände eingelötet lassen oder müssen die raus, das wurde bis jetzt nicht eindeutig klar beantwortet.
Müssen drin bleiben
Hatte Schon beides, manchmal geht einfach nur die Zeilen auszukommentieren manchmal muss man mehr ändern.
JYQD ist nicht gleich JYQD, es gibt viele Clone auf dem Markt
 
Der Einsatz von alternativen Treiber ist ein interessantes Thema.
Solange es Lieferprobleme gibt, können von solch einer Lösung alle profitieren. Es würde denjenigen helfen, deren Treiber defekt sind und es würde den Druck auf Markus und das Team reduzieren.

Vielleicht lohnt sich hier eine Wiki-Seite mit einer vollständigen Beschreibung.
Diejenigen die vor einem Problem stehen, können nur äußerst mühsam Foren-Beiträge zusammen puzzeln und das führt im schlimmsten Fall zu weiteren Defekten.

Eine Quelle eines funktionierenden JYQD-Treibers, mit einer bebilderten Verkabelung zum Motor und Adapter, sowie die relevanten Änderungen im Code würden helfen.

Ich bin mir sicher, dass das einige Mühe bereitet, doch diejenigen die sich selbst helfen wollen, wären äußerst dankbar.
 
So eben mal versucht mit meinem JYDQ... leider eher erfolglos. :(

Wenn ich den speed Part auskommentiere und Enable auf High setze dann springt er zwar meist an.
Aber er ruckelt am Anfang stark, meist geht er nach 3sek ruckeln wieder aus.
Wenn er dann mal anspringt und dann auch richtig Vollgaß gibt dann zieht der bis zu 6A (da ist mein Labornetzteil ausgegangen), das sind dann aber auch ~120W und der Motor wurde nach nur 10sek sehr heiß. Gehe davon aus dass die Signale nicht im passenden Moment kommen, sich dadurch selbst bremst und extreme Leistung auf den Motor haut um die Umdrehungen zu erreichen.

Hab dann mal das neue Sunray Build aufgespielt und da die Werte entsprechend dem Custom Treiber verwendet... allerdings das gleiche Problem wobei da der Motor deutlich reproduzierbarer eigentlich immer direkt angesprungen ist.

Code:
#define MOTOR_DRIVER_BRUSHLESS   1     // uncomment this for new brushless motor drivers
//#define MOTOR_DRIVER_BRUSHLESS_MOW_DRV8308  1 // uncomment for brushless DRV8308 driver and mowing motor
//#define MOTOR_DRIVER_BRUSHLESS_MOW_A4931  1    // uncomment for brushless A3931 driver and mowing motor
//#define MOTOR_DRIVER_BRUSHLESS_MOW_BLDC8015A 1  // uncomment for brushless BLDC8015A driver and mowing motor
#define MOTOR_DRIVER_BRUSHLESS_GEARS_DRV8308  1   // uncomment for brushless DRV8308 driver and gear/traction motors
//#define MOTOR_DRIVER_BRUSHLESS_GEARS_A4931  1    // uncomment for brushless A4931 driver and gear/traction motors
//#define MOTOR_DRIVER_BRUSHLESS_GEARS_BLDC8015A 1   // uncomment for brushless BLDC8015A driver and gear/traction motors


  CUSTOM.driverName = "CUSTOM";    // just a name for your driver
  CUSTOM.forwardPwmInvert = false; // invert PWM signal for forward? (false or true)
  CUSTOM.forwardDirLevel = LOW;    // logic level for forward (LOW or HIGH)
  CUSTOM.reversePwmInvert = false; // invert PWM signal for reverse? (false or true)
  CUSTOM.reverseDirLevel = HIGH;   // logic level for reverse (LOW or HIGH)
  CUSTOM.usePwmRamp = false;       // use a ramp to get to PWM value?
  CUSTOM.faultActive = LOW;        // fault active level (LOW or HIGH)
  CUSTOM.resetFaultByToggleEnable = false; // reset a fault by toggling enable?
  CUSTOM.enableActive = HIGH;       // enable active level (LOW or HIGH)
  CUSTOM.disableAtPwmZeroSpeed=false;  // disable driver at PWM zero speed? (brake function)
  CUSTOM.keepPwmZeroSpeed = true;  // keep PWM zero value (disregard minPwmSpeed at zero speed)?
  CUSTOM.minPwmSpeed = 0;          // minimum PWM speed your driver can operate
  CUSTOM.pwmFreq = PWM_FREQ_3900;  // choose between PWM_FREQ_3900 and PWM_FREQ_29300 here
  CUSTOM.adcVoltToAmpOfs = 0;      // ADC voltage to amps (offset)
  CUSTOM.adcVoltToAmpScale = 1.00; // ADC voltage to amps (scale)
  CUSTOM.adcVoltToAmpPow = 1.0;    // ADC voltage to amps (power of number)

Eben nochmal alles kontrolliert, aber die Verkabelung sieht so korrekt aus, es sei denn das Bild ist nicht korrekt.
Die 5V bei Set hab ich leer gelassen, da könnte ich mal 5V drauf legen?

Jemand ähnliche Erfahrung gemacht und noch eine Idee?


Alles extrem frustrierend jedenfalls... hoffe die neuen Treiber kommen recht flott.
Der Rasen wächst und wächst und wächst...
 

Anhänge

  • 20220525_153237.jpg
    20220525_153237.jpg
    1,3 MB · Aufrufe: 13
  • 20220525_153246.jpg
    20220525_153246.jpg
    1,4 MB · Aufrufe: 13
  • 1651744814264.png
    1651744814264.png
    1 MB · Aufrufe: 12
Zuletzt bearbeitet:
Wenn ich mir die Firmware 1.0.261 ansehe, scheint ein Teil des Codes von Tim schon integriert zu sein in Robot.cpp und Robot.h.
 
Aber er ruckelt am Anfang stark, meist geht er nach 3sek ruckeln wieder aus.
Dann passt deine Zuordnung U V W und/oder die Zuordnung der Hallsensoren nicht. Solange probieren bis der Motor sanft läuft keine Hitzeentwicklung hat und der Stromverbrauch Max 0,5A ist (wenn mit 120W die Leistung des Motors gemeint ist)
 
Oben