RL2000 with problems

SefanH

Well-known member
The mower drives 1 revolution, 5 revolutions, 180 degrees and 360 degrees and also 3 meters without problems.
Bumper rear count up, but it is set to false, is that ok?
Perimetersignals are ok.
When I start the mower, the wheel motors starts scattering.
Why?
 

Attachments

Hatten wir das Problem mit den Motoren nicht schon wo anders oder war das bei Sunray for Teensy?
 
Das war bei Sunray soweit ich gelesen hatte. Scheint am Compiler gelegen zu haben.
 
Last edited:
The problem with the scattering motors was relatet to the platformio compiler, only older version is ok for sunray.
 
I use teensyBer. The mower could drive the 3 meters (test ODO) with activated mow motors without problems, but starting in Automode is not ok!
 
Bumper rear count up, but it is set to false, is that ok?
NO.
scattering motor is dangerous for electronics, so please set PWM max speed to low value for the test.
Do you use platform-io or arduino IDE ?
We already see the issue with teensySunray, but it's also possible for teensyber because i use the same code for watchdog and other feature.

Can you share the setting var list (option x read setting with PC ide console )
 
I use Arduino IDE. The setting list follows tomorrow. Now it's soccer time. Ukraine vs. Germany 😜
 
Code:
---------- wheel motors -----------
motorAccel                 : 1500.00
motorSpeedMaxRpm           : 31.00
motorSpeedMaxPwm           : 170.00
motorPowerMax              : 50.30
motorSenseRightScale       : 1.87
motorSenseLeftScale        : 1.65
motorPowerIgnoreTime       : 2000.00
motorZeroSettleTime        : 2000.00
motorRollDegMax            : 100.00
motorRollDegMin            : 20.00
DistPeriOutRev             : 40.00
DistPeriOutStop            : 15.00
motorForwTimeMax           : 120000.00
DistPeriObstacleAvoid      : 149.00
circleTimeForObstacle      : 4000.00
motorRightOffsetFwd        : 0.00
motorRightOffsetRev        : 0.00
SpeedOdoMin                : 80.00
SpeedOdoMax                : 170.00
motorTickPerSecond         : 1007.00
motorLeftPID.Kp            : 1.00
motorLeftPID.Ki            : 0.40
motorLeftPID.Kd            : 0.00
motorRightSwapDir          : 0.00
motorLeftSwapDir           : 0.00
motorRightOffsetFwd        : 0.00
motorRightOffsetRev        : 0.00
autoAdjustSlopeSpeed       : 1.00
---------- mower motor -----------------
motorMowForceOff         : 0.00
motorMowAccel            : 1000.00
motorMowSpeedMaxPwm      : 115.00
(motorMowSpeedMinPwm     : 100.00
motorMowPowerMax         : 65.00
highGrassSpeedCoeff      : 0.70
---------- bumper -----------------
bumperUse           : 1.00
bumper_rev_distance : 0.00
---------- SD Card -------------
SDCard ready        : 0.00
---------- rain ----------------
rainUse             : 0.00
----------  Temperature ---
MaxTemperature     : 80.00
Enable_Screen        : 0.00
---------- sonar ---------------
sonarUse              : 0.00
sonarLikeBumper       : 0.00
sonarLeftUse        : 0.00
sonarRightUse       : 0.00
sonarCenterUse      : 0.00
sonarTriggerBelow   : 87.00
sonarToFrontDist    : 30.00
---------- perimeter ------
perimeterUse             : 1.00
perimeterTriggerMinSmag  : 1700.00
MaxSpeedperiPwm          : 100.00
perimeterTrackRollTime   : 1500.00
perimeterTrackRevTime    : 2200.00
perimeterPID.Kp          : 16.50
perimeterPID.Ki          : 8.00
perimeterPID.Kd          : 0.00
trackingPerimeterTransitionTimeOut: 1500.00
trackingErrorTimeOut     : 10000.00
perimeterMagMaxValue     : 5950.00
swapCoilPolarityRight    : 0.00
swapCoilPolarityLeft     : 0.00
read2Coil                : 1.00
trackingBlockInnerWheelWhilePerimeterStrug : 1.00
DistPeriOutRev           : 40.00
DistPeriObstacleRev      : 30.00
DistPeriOutForw          : 60.00
DistPeriObstacleForw     : 25.00
---------- By Lanes mowing ----------
yawSet1                   : 45.00
yawSet2                   : 90.00
yawSet3                   : 135.00
yawOppositeLane1RollRight : -138.00
yawOppositeLane2RollRight : -92.00
yawOppositeLane3RollRight : -42.00
yawOppositeLane1RollLeft  : -133.00
yawOppositeLane2RollLeft  : -88.00
yawOppositeLane3RollLeft  : -47.00
DistBetweenLane           : 38.00
maxLenghtByLane           : 9.00
---------- IMU (compass/accel/gyro) ---- 
imuUse                : 1.00
CompassUse            : 0.00
stopMotorDuringCalib  : 0.00
imuDirPID.Kp          : 4.40
imuDirPID.Ki          : 3.30
imuDirPID.Kd          : 0.00
maxDriftPerSecond     : 0.05
delayBetweenTwoDmpAutocalib : 360.00
maxDurationDmpAutocalib     : 60.00
compassRollSpeedCoeff       : 40.00
---------- model R/C ---------
remoteUse                   : 0.00
---------- battery --------  
batMonitor           : 1.00
batGoHomeIfBelow     : 24.30
batSwitchOffIfBelow  : 23.00
batSwitchOffIfIdle   : 300.00
batFactor            : 1.00
batChgFactor         : 1.00
batFull              : 29.40
batVoltageToStationStart: 0.00
batChargingCurrentMax: 2.00
batFullCurrent       : 0.05
startChargingIfBelow : 25.00
chargingTimeout      : 36000000.00
chargingMaxDuration  : 10.00
stationHeading       : 0.00
batSenseFactor       : 1.11
---------- charging station ----------------------------------
stationRevDist     : 50.00
stationRollAngle   : 45.00
stationForwDist    : 30.00
stationCheckDist   : 2.00
UseBumperDock      : 0.00
dockingSpeed       : 60.00
checkDockingSpeed  : 0.00
autoResetActive    : 0.00
---------- odometry ------------------------------------------
odometryTicksPerRevolution : 1902.00
odometryTicksPerCm         : 24.00
odometryWheelBaseCm        : 43.00
---------- RFID ----------- 
rfidUse         : 0.00
---------- RASPBERRY PI------ 
RaspberryPIUse  : 0.00
---------- MQTT        ------ 
useMqtt  : 0.00
---------- GPS -----------------------------------------------
gpsUse                                     : 0.00
stuckIfGpsSpeedBelow                       : 0.20
gpsSpeedIgnoreTime                         : 5000.00
---------- other ------------
buttonUse              : 1.00
mowPatternDurationMax  : 120.00
---------- user-defined switch -------
userSwitch1       : 0.00
userSwitch2       : 0.00
userSwitch3       : 0.00
---------- timer ----------- 
timerUse       : 0.00
 
Code:
SETUP
++++++++++++++ Start Robot Setup at 2301.00 ++++++++++++
Initialise date time library
RTC has set the system time
------------------- Initializing SD card... ---------------------
SD Card failed, or not present
Version : 1.492-Teensyber
Pfod connection initialisation at : 230400
Load ErrorData Address Start= 500.00 Stop= 522.00
UserSettings OK from Address : 2000.00 To 2500.00
Load Stats Adress Start = 800.00 Stop = 826.00
IMU: found calib data
Load Calibration
Calibration address Start = 600
Calibration address Stop = 650
-------- IMU CALIBRATION  --------
ACCEL GYRO MPU6050 OFFSET ax: -546 ay: -2229 az: 1011 gx: -3 gy: 35 gz: 41
COMPASS OFFSET X.Y.Z AND SCALE X.Y.Z
comOfs=0.00,0.00,0.00
comScale=2.00,2.00,2.00
.
--------------------------------- GYRO ACCEL INITIALISATION ---------------
MPU6050 connection successful
52
Initializing DMP...
Enabling DMP...  Packet size 28
Wait 3 secondes to stabilize the Drift
AccelGyro Yaw: 0.00--------------------------------- IMU READY ------------------------------
 ------- Initialize Perimeter Setting -------
Begin setup adc0 on pin:23
End setup adc0
Try to Start adc0 Timer Interrupt
adc0 Timer Interrupt Started
Begin setup adc1 on pin:22
End setup adc1
Try to Start adc1 Timer Interrupt
adc1 Timer Interrupt Started
START
Mower 1.492-Teensyber
Config: RL2000
press...
  d for menu
  v to change console output (sensor counters, values, perimeter etc.)
off
Starting Ina226 current sensor
Checking  ina226 current sensor connection
Ina226 Begin OK
Ina226 Configure OK
Ina226 Calibration OK
Watchdog configuration start
Watchdog configuration Finish
Setup finish
START TO SAVE USER SETTINGS PLEASE WAIT
UserSettings are saved from Address : 2000.00 To 2500.00
 
In robot.cpp near line 3890 i've made a small changing. Now its ok!

if(BUMPER_REAR_EXIST) was missing...

Code:
    // rear bumper
    if (BUMPER_REAR_EXIST) {
      if (BUMPER_ARE_NORMALY_CLOSED) {
        if (digitalRead(pinBumperRearLeft) == 1) {
          //ShowMessageln("Bumper left trigger");
          bumperRearLeftCounter++;
          bumperRearLeft = true;
        }

        if (digitalRead(pinBumperRearRight) == 1) {
          //ShowMessageln("Bumper right trigger");
          bumperRearRightCounter++;
          bumperRearRight = true;
        }
      }
      else
      {
        if (digitalRead(pinBumperRearLeft) == 0) {
          //ShowMessageln("Bumper left trigger");
          bumperRearLeftCounter++;
          bumperRearLeft = true;
        }

        if (digitalRead(pinBumperRearRight) == 0) {
          //ShowMessageln("Bumper right trigger");
          bumperRearRightCounter++;
          bumperRearRight = true;
        }
      }
    }
 
In robot.cpp near line 3890 i've made a small changing. Now its ok!

if(BUMPER_REAR_EXIST) was missing...

Code:
    // rear bumper
    if (BUMPER_REAR_EXIST) {
      if (BUMPER_ARE_NORMALY_CLOSED) {
        if (digitalRead(pinBumperRearLeft) == 1) {
          //ShowMessageln("Bumper left trigger");
          bumperRearLeftCounter++;
          bumperRearLeft = true;
        }

        if (digitalRead(pinBumperRearRight) == 1) {
          //ShowMessageln("Bumper right trigger");
          bumperRearRightCounter++;
          bumperRearRight = true;
        }
      }
      else
      {
        if (digitalRead(pinBumperRearLeft) == 0) {
          //ShowMessageln("Bumper left trigger");
          bumperRearLeftCounter++;
          bumperRearLeft = true;
        }

        if (digitalRead(pinBumperRearRight) == 0) {
          //ShowMessageln("Bumper right trigger");
          bumperRearRightCounter++;
          bumperRearRight = true;
        }
      }
    }
Thanks : I correct this bug in v493
 
Yesterday I experimented a bit and everything works perfectly. Today I connect the battery and the power board starts automatically...

The typical beeping was OK when I started it for the first time. But I couldn't start the mower. I disconnected the battery, waited 20 seconds and reconnected the battery. The DCDC converter starts immediately and supplies the ESP with power (the red LED lights up). But there is no more beeping...

Hopefully the Teensy isn't defective. ;-(

What could it be? I'm guessing Q3 or Q4, or both? But why?

I'm going to check the components first.


Edit:

Q3 and Q4 are now new and the power board is working again!

But the pinBatterySwitch was at 5.5V. The Teensy doesn't work anymore. So I ordered a replacement... Always the most expensive part.

I had controlled the start button on the power PCB and the button on the main PCB with 3 lines... There is just no common ground there, so that must have been my mistake.
 
Last edited:
The DCDC converter starts immediately and supplies the ESP with power
The Q4 was died for sure. This can happen if the GS-Voltage will exceed 24V (datasheet: Vgs max = 20V). I did a change on the power PCB after I had the same problem - see pdf attached. Also the "cheap" Mosfets from Amazon or Ali are not the best quality, better to use it from a qualified source (Conrad, Reichelt, RS...).
The main issue is, that the motors working as a generator if they break or just reduce its speed, this can kill the DC/DC converter too.
 

Attachments

The Q4 was died for sure. This can happen if the GS-Voltage will exceed 24V (datasheet: Vgs max = 20V). I did a change on the power PCB after I had the same problem - see pdf attached. Also the "cheap" Mosfets from Amazon or Ali are not the best quality, better to use it from a qualified source (Conrad, Reichelt, RS...).
The main issue is, that the motors working as a generator if they break or just reduce its speed, this can kill the DC/DC converter too.
Funktioniert das so bei dir? Dann würde ich das in der nächsten PowerPCB anpassen.
Dann kann ich die MBR1045 bei den Ausgängen auch weglassen, da die das eigentlich verhindern sollten.
 
But the pinBatterySwitch was at 5.5V
?? i don't understand how this is possible to have more than 5V here ,certainly DC/DC was not OK and deliver more than 5V on the main PCB.

I had controlled the start button on the power PCB and the button on the main PCB with 3 lines... There is just no common ground there, so that must have been my mistake.
Possible, but not sure.
For the battery mosfet Q3 or Q4, do you have heat sink on it , it's mandatory on RL2000.

Now for more understanding the issue:
ON mow motor ,do you have change my setting for higher speed or increase the power,
Do you have stop mower using the Emergency switch (or disconnect battery) when mow motor are running at full speed ?
 
The DCDC is ok, it delivers 5V exactly. Q4 was broken. I measured 5,5V from the power PCB to the batteryswitch pin... I don't know why.
A heat sink was not installed. If it's mandatory, I'll change it.
Today I've removed the weights. 45minutes and much of power. It was hard!

I've never stopped the mower at full speed.

I ordered a new teensy today.
 

Attachments

  • IMG_20240606_185320.jpg
    IMG_20240606_185320.jpg
    504.7 KB · Views: 12
  • IMG_20240606_185415.jpg
    IMG_20240606_185415.jpg
    396.7 KB · Views: 11
Back
Top