GPS Fix-float-invalid

goosst

New member
Dear,

I bought NTRIP version of the ardumower, I've tried to search in the forum but this didn't lead to much hits (or my German search terms are the issue).
The issue is my Arduino due does not want to find the gps receiver (serial monitor log of the arduino due is below).
I'm looking for advice how to debug this issue.

1706210288694.png
1706210190027.png



19:51:14.830 -> trying to detect Bluetooth 4.0/BLE (HM-10 module) (make sure your phone is NOT connected)115200...
19:51:15.306 -> BLE: AT
19:51:15.862 -> OK
19:51:15.862 -> AT+T,0x14
19:51:16.038 -> Bluetooth 4.0/BLE (HM-10) module found!
19:51:16.558 -> BLE: AT+VERSION
19:51:16.854 -> +VERSION=ESP32 firmware V0.4.5,Bluetooth V4.0 LE
19:51:16.854 -> AT+V,0x16
19:51:17.569 -> BLE: AT+NAMEArdumower
19:51:17.845 -> +NAME=Ardumower
19:51:17.845 -> AT+S,0x13
19:51:18.557 -> BLE: AT+RESET
19:51:18.845 -> +RESET
19:51:19.061 -> RCModel disabled in config
19:51:19.061 -> ENABLE_PASS
19:51:19.061 -> ENABLE_TILT_DETECTION
19:51:19.061 -> FREEWHEEL_IS_AT_BACKSIDE: 1
19:51:19.061 -> WHEEL_BASE_CM: 36
19:51:19.061 -> WHEEL_DIAMETER: 250
19:51:19.061 -> ENABLE_ODOMETRY_ERROR_DETECTION: 0
19:51:19.061 -> TICKS_PER_REVOLUTION: 525
19:51:19.061 -> MOTOR_FAULT_CURRENT: 6.00
19:51:19.061 -> MOTOR_OVERLOAD_CURRENT: 0.80
19:51:19.061 -> USE_LINEAR_SPEED_RAMP: 0
19:51:19.061 -> MOTOR_PID_KP: 2.00
19:51:19.061 -> MOTOR_PID_KI: 0.03
19:51:19.061 -> MOTOR_PID_KD: 0.03
19:51:19.061 -> MOW_FAULT_CURRENT: 8.00
19:51:19.061 -> MOW_OVERLOAD_CURRENT: 2.00
19:51:19.061 -> ENABLE_OVERLOAD_DETECTION: 1
19:51:19.061 -> ENABLE_FAULT_DETECTION: 1
19:51:19.061 -> ENABLE_FAULT_OBSTACLE_AVOIDANCE: 1
19:51:19.061 -> ENABLE_RPM_FAULT_DETECTION: 0
19:51:19.061 -> SONAR_INSTALLED
19:51:19.061 -> SONAR_ENABLE: 1
19:51:19.061 -> SONAR_TRIGGER_OBSTACLES: 1
19:51:19.061 -> RAIN_ENABLE: 0
19:51:19.061 -> BUMPER_ENABLE: 0
19:51:19.061 -> BUMPER_DEADTIME: 1000
19:51:19.061 -> BUMPER_TRIGGER_DELAY: 0
19:51:19.061 -> BUMPER_MAX_TRIGGER_TIME: 30
19:51:19.061 -> CURRENT_FACTOR: 1.98
19:51:19.061 -> GO_HOME_VOLTAGE: 21.50
19:51:19.061 -> BAT_FULL_VOLTAGE: 28.70
19:51:19.061 -> BAT_FULL_CURRENT: 0.20
19:51:19.061 -> BAT_SWITCH_OFF_IDLE: 1
19:51:19.061 -> BAT_SWITCH_OFF_UNDERVOLTAGE: 1
19:51:19.061 -> REQUIRE_VALID_GPS: 1
19:51:19.061 -> GPS_SPEED_DETECTION: 1
19:51:19.061 -> GPS_MOTION_DETECTION: 1
19:51:19.061 -> GPS_REBOOT_RECOVERY: 1
19:51:19.061 -> GPS_CONFIG: 1
19:51:19.061 -> GPS_CONFIG_FILTER: 1
19:51:19.061 -> CPG_CONFIG_FILTER_MINELEV: 10
19:51:19.061 -> CPG_CONFIG_FILTER_NCNOTHRS: 10
19:51:19.061 -> CPG_CONFIG_FILTER_CNOTHRS: 30
19:51:19.061 -> ALLOW_ROUTE_OUTSIDE_PERI_METER: 1.00
19:51:19.061 -> OBSTACLE_DETECTION_ROTATION: 1
19:51:19.061 -> KIDNAP_DETECT: 1
19:51:19.061 -> KIDNAP_DETECT_ALLOWED_PATH_TOLERANCE: 1.00
19:51:19.061 -> DOCKING_STATION: 0
19:51:19.061 -> DOCK_IGNORE_GPS: 0
19:51:19.061 -> DOCK_AUTO_START: 1
19:51:19.061 -> TARGET_REACHED_TOLERANCE: 0.05
19:51:19.061 -> STANLEY_CONTROL_P_NORMAL: 3.00
19:51:19.061 -> STANLEY_CONTROL_K_NORMAL: 1.00
19:51:19.061 -> STANLEY_CONTROL_P_SLOW: 3.00
19:51:19.061 -> STANLEY_CONTROL_K_SLOW: 0.10
19:51:19.061 -> BUTTON_CONTROL: 1
19:51:19.061 -> USE_TEMP_SENSOR: 0
19:51:19.061 -> BUZZER_ENABLE
19:51:19.061 -> SERIAL_BUFFER_SIZE=1024 (increase if you experience GPS checksum errors)
19:51:19.061 -> -----------------------------------------------------
19:51:19.061 -> UBLOX::begin serial
19:51:19.061 -> using gps driver: UBLOX
19:51:19.061 -> trying to connect to ublox f9p...
19:51:19.061 -> NOTE: if GPS is not responding either set 'GPS_CONFIG=false' in config.h or perform GPS wire fix (see Wiki)
19:51:19.061 -> trying baud 115200
19:51:22.360 -> ERROR: GPS receiver is not responding
19:51:22.360 -> trying baud 38400
19:52:49.306 -> ERROR: GPS receiver is not responding
19:52:49.306 -> trying baud 38400
19:52:52.606 -> ERROR: GPS receiver is not responding
19:52:52.606 -> trying baud 115200
19:53:21.071 -> +NAME=Ardumower
19:53:21.832 -> BLE: AT+RESET
19:53:22.074 -> +RESET
19:53:22.074 -> AT+T,0x14
19:53:22.309 -> RCModel disabled in config
19:53:22.309 -> ENABLE_PASS
19:53:22.309 -> ENABLE_TILT_DETECTION
19:53:22.309 -> FREEWHEEL_IS_AT_BACKSIDE: 1
19:53:22.309 -> WHEEL_BASE_CM: 36
19:53:22.309 -> WHEEL_DIAMETER: 250
19:53:22.309 -> ENABLE_ODOMETRY_ERROR_DETECTION: 0
19:53:22.309 -> TICKS_PER_REVOLUTION: 525
19:53:22.309 -> MOTOR_FAULT_CURRENT: 6.00
19:53:22.309 -> MOTOR_OVERLOAD_CURRENT: 0.80
19:53:22.309 -> USE_LINEAR_SPEED_RAMP: 0
19:53:22.309 -> MOTOR_PID_KP: 2.00
19:53:22.309 -> MOTOR_PID_KI: 0.03
19:53:22.309 -> MOTOR_PID_KD: 0.03
19:53:22.309 -> MOW_FAULT_CURRENT: 8.00
19:53:22.309 -> MOW_OVERLOAD_CURRENT: 2.00
19:53:22.309 -> ENABLE_OVERLOAD_DETECTION: 1
19:53:22.309 -> ENABLE_FAULT_DETECTION: 1
19:53:22.309 -> ENABLE_FAULT_OBSTACLE_AVOIDANCE: 1
19:53:22.309 -> ENABLE_RPM_FAULT_DETECTION: 0
19:53:22.309 -> SONAR_INSTALLED
19:53:22.309 -> SONAR_ENABLE: 1
19:53:22.309 -> SONAR_TRIGGER_OBSTACLES: 1
19:53:22.309 -> RAIN_ENABLE: 0
19:53:22.309 -> BUMPER_ENABLE: 0
19:53:22.309 -> BUMPER_DEADTIME: 1000
19:53:22.309 -> BUMPER_TRIGGER_DELAY: 0
19:53:22.309 -> BUMPER_MAX_TRIGGER_TIME: 30
19:53:22.309 -> CURRENT_FACTOR: 1.98
19:53:22.309 -> GO_HOME_VOLTAGE: 21.50
19:53:22.309 -> BAT_FULL_VOLTAGE: 28.70
19:53:22.309 -> BAT_FULL_CURRENT: 0.20
19:53:22.309 -> BAT_SWITCH_OFF_IDLE: 1
19:53:22.309 -> BAT_SWITCH_OFF_UNDERVOLTAGE: 1
19:53:22.309 -> REQUIRE_VALID_GPS: 1
19:53:22.309 -> GPS_SPEED_DETECTION: 1
19:53:22.309 -> GPS_MOTION_DETECTION: 1
19:53:22.309 -> GPS_REBOOT_RECOVERY: 1
19:53:22.309 -> GPS_CONFIG: 1
19:53:22.309 -> GPS_CONFIG_FILTER: 1
19:53:22.309 -> CPG_CONFIG_FILTER_MINELEV: 10
19:53:22.309 -> CPG_CONFIG_FILTER_NCNOTHRS: 10
19:53:22.309 -> CPG_CONFIG_FILTER_CNOTHRS: 30
19:53:22.309 -> ALLOW_ROUTE_OUTSIDE_PERI_METER: 1.00
19:53:22.309 -> OBSTACLE_DETECTION_ROTATION: 1
19:53:22.309 -> KIDNAP_DETECT: 1
19:53:22.309 -> KIDNAP_DETECT_ALLOWED_PATH_TOLERANCE: 1.00
19:53:22.309 -> DOCKING_STATION: 0
19:53:22.309 -> DOCK_IGNORE_GPS: 0
19:53:22.309 -> DOCK_AUTO_START: 1
19:53:22.309 -> TARGET_REACHED_TOLERANCE: 0.05
19:53:22.309 -> STANLEY_CONTROL_P_NORMAL: 3.00
19:53:22.309 -> STANLEY_CONTROL_K_NORMAL: 1.00
19:53:22.309 -> STANLEY_CONTROL_P_SLOW: 3.00
19:53:22.309 -> STANLEY_CONTROL_K_SLOW: 0.10
19:53:22.309 -> BUTTON_CONTROL: 1
19:53:22.309 -> USE_TEMP_SENSOR: 0
19:53:22.309 -> BUZZER_ENABLE
19:53:22.309 -> SERIAL_BUFFER_SIZE=1024 (increase if you experience GPS checksum errors)
19:53:22.309 -> -----------------------------------------------------
19:53:22.309 -> UBLOX::begin serial
19:53:22.309 -> using gps driver: UBLOX
19:53:22.309 -> trying to connect to ublox f9p...
19:53:22.309 -> NOTE: if GPS is not responding either set 'GPS_CONFIG=false' in config.h or perform GPS wire fix (see Wiki)
19:53:22.309 -> trying baud 115200
19:53:25.617 -> ERROR: GPS receiver is not responding
19:53:25.617 -> trying baud 38400
19:53:28.903 -> ERROR: GPS receiver is not responding
19:53:28.903 -> trying baud 115200
19:53:52.930 -> I2C bus error. Could not clear (PCB not powered ON or RTC module missing or JCx jumper set for missing I2C module)
19:53:52.930 -> SCL clock line held low
19:53:55.450 -> I2C bus error. Could not clear (PCB not powered ON or RTC module missing or JCx jumper set for missing I2C module)
19:53:55.450 -> SCL clock line held low
19:53:56.928 -> SD card found!
19:53:56.928 -> RESET cause: unknown
19:53:56.928 -> Sunray,1.0.298
19:53:56.928 -> compiled for: Arduino Due
19:53:56.928 -> using robot driver: AmRobotDriver
19:53:56.928 -> robot id: 36:04:31:20:33:35:24:55:30:30:31:31:39:30:30:37
19:53:56.928 -> MOTOR_DRIVER_BRUSHLESS: no
19:53:56.928 -> enableCharging 0
19:53:56.928 -> probing for HM-10 module (NOTE: will fail for ESP32)...
19:53:56.928 -> trying to detect Bluetooth 4.0/BLE (HM-10 module) (make sure your phone is NOT connected)9600...
19:53:57.431 -> BLE: AT
19:53:57.431 -> }trying to detect Bluetooth 4.0/BLE (HM-10 module) (make sure your phone is NOT connected)115200...
19:53:58.156 -> BLE: AT
19:53:58.414 -> OK
19:53:58.467 -> AT+V,0x16
19:53:58.637 -> Bluetooth 4.0/BLE (HM-10) module found!
19:53:59.152 -> BLE: AT+VERSION
19:53:59.428 -> +VERSION=ESP32 firmware V0.4.5,Bluetooth V4.0 LE
19:53:59.428 -> AT+S,0x13
19:54:00.138 -> BLE: AT+NAMEArdumower
19:54:00.456 -> +NAME=Ardumower
19:54:01.140 -> BLE: AT+RESET
19:54:01.478 -> +RESET
19:54:01.746 -> RCModel disabled in config
19:54:01.746 -> ENABLE_PASS
19:54:01.746 -> ENABLE_TILT_DETECTION
19:54:01.746 -> FREEWHEEL_IS_AT_BACKSIDE: 1
19:54:01.746 -> WHEEL_BASE_CM: 36
19:54:01.746 -> WHEEL_DIAMETER: 250
19:54:01.746 -> ENABLE_ODOMETRY_ERROR_DETECTION: 0
19:54:01.746 -> TICKS_PER_REVOLUTION: 525
19:54:01.746 -> MOTOR_FAULT_CURRENT: 6.00
19:54:01.746 -> MOTOR_OVERLOAD_CURRENT: 0.80
19:54:01.746 -> USE_LINEAR_SPEED_RAMP: 0
19:54:01.746 -> MOTOR_PID_KP: 2.00
19:54:01.746 -> MOTOR_PID_KI: 0.03
19:54:01.746 -> MOTOR_PID_KD: 0.03
19:54:01.746 -> MOW_FAULT_CURRENT: 8.00
19:54:01.746 -> MOW_OVERLOAD_CURRENT: 2.00
19:54:01.746 -> ENABLE_OVERLOAD_DETECTION: 1
19:54:01.746 -> ENABLE_FAULT_DETECTION: 1
19:54:01.746 -> ENABLE_FAULT_OBSTACLE_AVOIDANCE: 1
19:54:01.746 -> ENABLE_RPM_FAULT_DETECTION: 0
19:54:01.746 -> SONAR_INSTALLED
19:54:01.746 -> SONAR_ENABLE: 1
19:54:01.746 -> SONAR_TRIGGER_OBSTACLES: 1
19:54:01.746 -> RAIN_ENABLE: 0
19:54:01.746 -> BUMPER_ENABLE: 0
19:54:01.746 -> BUMPER_DEADTIME: 1000
19:54:01.746 -> BUMPER_TRIGGER_DELAY: 0
19:54:01.746 -> BUMPER_MAX_TRIGGER_TIME: 30
19:54:01.746 -> CURRENT_FACTOR: 1.98
19:54:01.746 -> GO_HOME_VOLTAGE: 21.50
19:54:01.746 -> BAT_FULL_VOLTAGE: 28.70
19:54:01.746 -> BAT_FULL_CURRENT: 0.20
19:54:01.746 -> BAT_SWITCH_OFF_IDLE: 1
19:54:01.746 -> BAT_SWITCH_OFF_UNDERVOLTAGE: 1
19:54:01.746 -> REQUIRE_VALID_GPS: 1
19:54:01.746 -> GPS_SPEED_DETECTION: 1
19:54:01.746 -> GPS_MOTION_DETECTION: 1
19:54:01.746 -> GPS_REBOOT_RECOVERY: 1
19:54:01.746 -> GPS_CONFIG: 1
19:54:01.746 -> GPS_CONFIG_FILTER: 1
19:54:01.746 -> CPG_CONFIG_FILTER_MINELEV: 10
19:54:01.746 -> CPG_CONFIG_FILTER_NCNOTHRS: 10
19:54:01.746 -> CPG_CONFIG_FILTER_CNOTHRS: 30
19:54:01.746 -> ALLOW_ROUTE_OUTSIDE_PERI_METER: 1.00
19:54:01.746 -> OBSTACLE_DETECTION_ROTATION: 1
19:54:01.746 -> KIDNAP_DETECT: 1
19:54:01.746 -> KIDNAP_DETECT_ALLOWED_PATH_TOLERANCE: 1.00
19:54:01.746 -> DOCKING_STATION: 0
19:54:01.746 -> DOCK_IGNORE_GPS: 0
19:54:01.746 -> DOCK_AUTO_START: 1
19:54:01.746 -> TARGET_REACHED_TOLERANCE: 0.05
19:54:01.746 -> STANLEY_CONTROL_P_NORMAL: 3.00
19:54:01.746 -> STANLEY_CONTROL_K_NORMAL: 1.00
19:54:01.746 -> STANLEY_CONTROL_P_SLOW: 3.00
19:54:01.746 -> STANLEY_CONTROL_K_SLOW: 0.10
19:54:01.746 -> BUTTON_CONTROL: 1
19:54:01.746 -> USE_TEMP_SENSOR: 0
19:54:01.746 -> BUZZER_ENABLE
19:54:01.746 -> SERIAL_BUFFER_SIZE=1024 (increase if you experience GPS checksum errors)
19:54:01.746 -> -----------------------------------------------------
19:54:01.746 -> UBLOX::begin serial
19:54:01.746 -> using gps driver: UBLOX
19:54:01.746 -> trying to connect to ublox f9p...
19:54:01.746 -> NOTE: if GPS is not responding either set 'GPS_CONFIG=false' in config.h or perform GPS wire fix (see Wiki)
19:54:01.746 -> trying baud 115200
19:54:04.983 -> ERROR: GPS receiver is not responding
19:54:04.983 -> trying baud 38400
19:54:08.274 -> ERROR: GPS receiver is not responding
19:54:08.274 -> trying baud 115200
 
Zuletzt bearbeitet:
probably the gps is not the issue, if I put
#define GPS_CONFIG false
I get a whole bunch of crap reported over serial ...

Is there somewhere a list of codes that can be used to debug (over serial or whatever)?
Some firmwares have menu's in serial, sunray has not?, I read things about pfodapp, ... it's quite overwhelming what is applicable in searches and what information is outdated ... . How to test basic things in sunray like IMU, sonar, basic motor driver communication, ... is there somewhere a lead without reverse engineering code ?


20:41:53.857 -> 0:0:42 ctlDur=0.02 op=Idle(initiatedByOperator 0) freem=81823 sp=2 bat=26.86(0.03) chg=0.04(0.00) tg=0.00,0.00 x=0.00 y=0.00 delta=0.00 tow=0 lon=0.00000000 lat=0.00000000 h=0.0 n=0.00 e=0.00 d=0.00 sol=0 age=42.12
20:41:55.810 -> Error: motor driver mow signaled fault
20:41:56.866 -> motor fault recover counter 1
20:41:58.818 -> 0:0:47 ctlDur=0.02 op=Idle(initiatedByOperator 0) freem=81823 sp=2 bat=26.69(0.05) chg=0.04(0.01) tg=0.00,0.00 x=0.00 y=0.00 delta=0.00 tow=0 lon=0.00000000 lat=0.00000000 h=0.0 n=0.00 e=0.00 d=0.00 sol=0 age=47.12
20:42:00.075 -> Error: motor driver mow signaled fault
20:42:01.125 -> motor fault recover counter 2
20:42:01.780 -> COMM CRC ERROR:
 
Zuletzt bearbeitet:
Ok so I made quite some progress,

Status:
  • all sensors seem to work
  • it reliably finds a gps-fix when being outside (NTRIP over wifi)
  • installed an outdoor access point to have a good wifi connection
  • with the app, all movement is smooth etc.
  • I make a map with cassandra and try to let it mow a test pattern / go to some point
    But everytime it starts to mow / move, it loses the gps fix and gps state toggles between fix, float and invalid
debug:
  • if I ping to the ESP32 and the ESP32-xbee, all ping times seems reasonable (sometimes it goes a bit over 150/200 ms, but on average it's in the x0s of ms)
  • If I look in the log of the ESP32-xbee, I seem to have a reliable connection to the correction provider
  • So my question is now basically: what is the best way to debug futher:
    • Is it expected to be linked to the wiring / do I need to start a science experiment to reduce EMC/EMI ?
      • where do you guys put the very long wire of the gps-antenna? I'm wondering if this is picking up a lot of noise.
    • Any logs from due/esp's which could help finding the root cause of the issue?

In case wiring would be the likely candidate, I've added some pictures in case some bad/good experiences could be shared :).
The gps antenna wire is coiled up under the xbee module.

1707509092680.png1707509276206.png

thanks in advance!
 
I make a map with cassandra and try to let it mow a test pattern / go to some point
But everytime it starts to mow / move, it loses the gps fix and gps state toggles between fix, float and invalid
Your position mode is wrong, you have to switch to absolute and set a reference point (e.g. your charge station)
 
Thanks as usual ... this solved the gps fix :).
I'm now in the next issue where the map upload fails from Cassandra.
1707562760541.png
 
Apparently it was due to a wrong setting in the sunray-app of the origin (longitude/lattitude) position or a mismatch between this position in cassandra and what was configured through the sunray-app, not sure which of the two created the issue.
But at least, it has tried to mow a map now :). Not very smooth yet but that will be for the next round of debugging ... .
 
Oben