Have a great problem with CUAV Pixhack V3. When get cold such a strange bug appeared:
I make all the calibration process in warm conditions. Via QGC I see params for 2 accels and 2 gyros. All of them are enabled and ACC0 and GYRO0 defined as prime type. When I take copter to cold conditions 5-10 degrees, it shows in QGC in startup bad accelerometer and gyro health. For a long time I tried to calibrate them again, but each time the scenario was the same. Only than I found out, that all params in Sensor Calibration tab became empty. It seems, that on startup when sensors are cold and very inconsistent - something happens and erasing all calibration params.
I solved this problem by using only 1 accel and 1 gyro. Acc0 and Gyro0 are disabled and Acc1, Gyro1 ID selected as prime. But it’s strange solution. Can it be solved in firmware anyhow?
That’s strange. What does that look like? Do you have a screenshot?
That’s odd. Did you check the calibration parameters in the advanced param tab and check the values? And make sure to refresh them after a calibration to see if they have been calibrated and therefore changed?
You can see screenshots. At first it was calibrated. Params are written in it’s places.
After that I put it in cold for a few minutes and than start agai. You can see all params are zero. And thats all.
Calibration parameters are not erased! Only CAL_ACC_ID is erased. If I put back CAL_ACC0_ID and CAL_ACC1_ID and restart - it shows back all the calibration!
@JulianOes I am wondering if the board ID is not being detecting unit correctly at boot. V2,V3 detection was and is a hack. We added Pixhack V3 on top of it. There is a dependency on sensors power sequencing that got removed at one point because of the boards that bootlooped. This all my need to be revisited.
FMUv2 ver 0xA : Rev 0 V2M
[boot] Fault Log info File No 4 Length 3177 flags:0x01 state:1
[boot] Fault Log is Armed
sercon: Registering CDC/ACM serial driver
sercon: Successfully registered the CDC/ACM serial driver
HW arch: PX4FMU_V2
HW type: V2M
HW version: 0x0009000A
HW revision: 0x00000000
FW git-hash: 82aa24adfca29321cfd1209e287eab6c2b16780e
FW version: Release 1.8.1 (17302015)
OS: NuttX
OS version: Release 7.22.0 (118882559)
OS git-hash: 63775322bf25adb406594f8e610122fe0cef2f7a
Build datetime: Oct 20 2018 00:19:12
Build uri: BUILD_URI
Toolchain: GNU GCC, 7.2.1 20170904 (release) [ARM/embedded-7-branch revision 255204]
MFGUID: 3834373233355106002d0031
MCU: STM32F42x, rev. 3
UID: 2D0031:33355106:38343732
[hardfault_log] Fault Log is Armed
INFO [tune_control] Publishing standard tune 1
INFO [param] selected parameter default file /fs/mtd_params
rgbled on I2C bus 2 at 0x55 (bus: 100 KHz, max: 100 KHz)
nsh: rgbled_pwm: command not found
MS5611_SPI on SPI bus 4 at 3 (20000 KHz)
WARN [ms5611] no device on bus 4
MS5611_SPI on SPI bus 1 at 3 (20000 KHz)
WARN [bst] no devices found
WARN [hmc5883] no device on bus 1 (type: 2)
WARN [lis3mdl] no device on bus 2
WARN [hmc5883] no device on bus 2 (type: 1)
WARN [mpu6000] no device on bus #3 (SPI1)
MPU6000 on SPI bus 4 at 4 (1000 KHz)
INFO [mpu6000] accel cutoff set to 30.00 Hz
INFO [mpu6000] gyro cutoff set to 30.00 Hz
ERROR [l3gd20] driver start failed
WARN [lsm303d] SPI init failed
ERROR [lsm303d] driver start failed
MPU6000 on SPI bus 1 at 4 (1000 KHz)
INFO [mpu6000] accel cutoff set to 30.00 Hz
INFO [mpu6000] gyro cutoff set to 30.00 Hz
HMC5883_SPI on SPI bus 1 at 5 (11000 KHz)
WARN [hmc5883] no device on bus 1 (type: 3)
INFO [load_mon] stack check enabled
INFO [px4io] default PWM output device
INFO [mavlink] mode: Normal, data rate: 1200 B/s on /dev/ttyS1 @ 57600B
INFO [mavlink] mode: OSD, data rate: 1000 B/s on /dev/ttyS2 @ 57600B
px4flow [223:100]
WARN [px4flow] scanning I2C buses for device…
INFO [mavlink] mode: Config, data rate: 800000 B/s on /dev/ttyACM0 @ 57600B
INFO [init] Mixer: /etc/mixers/hexa_x.main.mix on /dev/pwm_output0
INFO [init] Mixer: /etc/mixers/mount.aux.mix on /dev/pwm_output1
INFO [logger] logger started (mode=all)
COLD START:
FMUv2 ver 0xA : Rev 0 V2M
[boot] Fault Log info File No 4 Length 3177 flags:0x01 state:1
[boot] Fault Log is Armed
sercon: Registering CDC/ACM serial driver
sercon: Successfully registered the CDC/ACM serial driver
HW arch: PX4FMU_V2
HW type: V2M
HW version: 0x0009000A
HW revision: 0x00000000
FW git-hash: 82aa24adfca29321cfd1209e287eab6c2b16780e
FW version: Release 1.8.1 (17302015)
OS: NuttX
OS version: Release 7.22.0 (118882559)
OS git-hash: 63775322bf25adb406594f8e610122fe0cef2f7a
Build datetime: Oct 20 2018 00:19:12
Build uri: BUILD_URI
Toolchain: GNU GCC, 7.2.1 20170904 (release) [ARM/embedded-7-branch revision 255 204]
MFGUID: 3834373233355106002d0031
MCU: STM32F42x, rev. 3
UID: 2D0031:33355106:38343732
[hardfault_log] Fault Log is Armed
INFO [tune_control] Publishing standard tune 1
INFO [param] selected parameter default file /fs/mtd_params
rgbled on I2C bus 2 at 0x55 (bus: 100 KHz, max: 100 KHz)
nsh: rgbled_pwm: command not found
MS5611_SPI on SPI bus 4 at 3 (20000 KHz)
WARN [ms5611] no device on bus 4
MS5611_SPI on SPI bus 1 at 3 (20000 KHz)
WARN [bst] no devices found
WARN [hmc5883] no device on bus 1 (type: 2)
WARN [lis3mdl] no device on bus 2
WARN [hmc5883] no device on bus 2 (type: 1)
WARN [mpu6000] no device on bus #3 (SPI1)
MPU6000 on SPI bus 4 at 4 (1000 KHz)
INFO [mpu6000] accel cutoff set to 30.00 Hz
INFO [mpu6000] gyro cutoff set to 30.00 Hz
ERROR [l3gd20] driver start failed
WARN [lsm303d] SPI init failed
ERROR [lsm303d] driver start failed
MPU6000 on SPI bus 1 at 4 (1000 KHz)
INFO [mpu6000] accel cutoff set to 30.00 Hz
INFO [mpu6000] gyro cutoff set to 30.00 Hz
HMC5883_SPI on SPI bus 1 at 5 (11000 KHz)
WARN [hmc5883] no device on bus 1 (type: 3)
INFO [load_mon] stack check enabled
INFO [px4io] default PWM output device
INFO [mavlink] mode: Normal, data rate: 1200 B/s on /dev/ttyS1 @ 57600B
INFO [mavlink] mode: OSD, data rate: 1000 B/s on /dev/ttyS2 @ 57600B
px4flow [223:100]
WARN [px4flow] scanning I2C buses for device…
INFO [mavlink] mode: Config, data rate: 800000 B/s on /dev/ttyACM0 @ 57600B
INFO [init] Mixer: /etc/mixers/hexa_x.main.mix on /dev/pwm_output0
INFO [init] Mixer: /etc/mixers/mount.aux.mix on /dev/pwm_output1
INFO [logger] logger started (mode=all)
Great! It works good! It seems, the problem is solved! Thank you for your help.
I will put boot log here for exapmle. May be it will be usefull.
WARM START:
FMUv2 ver 0xA : Rev 0 V2M
[boot] Fault Log info File No 4 Length 3177 flags:0x01 state:1
[boot] Fault Log is Armed
sercon: Registering CDC/ACM serial driver
sercon: Successfully registered the CDC/ACM serial driver
HW arch: PX4FMU_V2
HW type: V2M
HW version: 0x0009000A
HW revision: 0x00000000
FW git-hash: 82aa24adfca29321cfd1209e287eab6c2b16780e
FW version: Release 1.8.1 (17302015)
OS: NuttX
OS version: Release 7.22.0 (118882559)
OS git-hash: 63775322bf25adb406594f8e610122fe0cef2f7a
Build datetime: Oct 20 2018 00:19:12
Build uri: BUILD_URI
Toolchain: GNU GCC, 7.2.1 20170904 (release) [ARM/embedded-7-branch revision 255204]
MFGUID: 3834373233355106002d0031
MCU: STM32F42x, rev. 3
UID: 2D0031:33355106:38343732
[hardfault_log] Fault Log is Armed
INFO [tune_control] Publishing standard tune 1
INFO [param] selected parameter default file /fs/mtd_params
rgbled on I2C bus 2 at 0x55 (bus: 100 KHz, max: 100 KHz)
nsh: rgbled_pwm: command not found
MS5611_SPI on SPI bus 4 at 3 (20000 KHz)
WARN [ms5611] no device on bus 4
MS5611_SPI on SPI bus 1 at 3 (20000 KHz)
WARN [bst] no devices found
WARN [hmc5883] no device on bus 1 (type: 2)
WARN [lis3mdl] no device on bus 2
WARN [hmc5883] no device on bus 2 (type: 1)
WARN [mpu6000] no device on bus #3 (SPI1)
MPU6000 on SPI bus 4 at 4 (1000 KHz)
INFO [mpu6000] accel cutoff set to 30.00 Hz
INFO [mpu6000] gyro cutoff set to 30.00 Hz
ERROR [l3gd20] driver start failed
WARN [lsm303d] SPI init failed
ERROR [lsm303d] driver start failed
MPU6000 on SPI bus 1 at 4 (1000 KHz)
INFO [mpu6000] accel cutoff set to 30.00 Hz
INFO [mpu6000] gyro cutoff set to 30.00 Hz
HMC5883_SPI on SPI bus 1 at 5 (11000 KHz)
WARN [hmc5883] no device on bus 1 (type: 3)
INFO [load_mon] stack check enabled
INFO [px4io] default PWM output device
INFO [mavlink] mode: Normal, data rate: 1200 B/s on /dev/ttyS1 @ 57600B
INFO [mavlink] mode: OSD, data rate: 1000 B/s on /dev/ttyS2 @ 57600B
px4flow [223:100]
WARN [px4flow] scanning I2C buses for device…
INFO [mavlink] mode: Config, data rate: 800000 B/s on /dev/ttyACM0 @ 57600B
INFO [init] Mixer: /etc/mixers/hexa_x.main.mix on /dev/pwm_output0
INFO [init] Mixer: /etc/mixers/mount.aux.mix on /dev/pwm_output1
INFO [logger] logger started (mode=all)
NuttShell (NSH)
nsh>
COLD START:
FMUv2 ver 0xA : Rev 0 V2M
[boot] Fault Log info File No 4 Length 3177 flags:0x01 state:1
[boot] Fault Log is Armed
sercon: Registering CDC/ACM serial driver
sercon: Successfully registered the CDC/ACM serial driver
HW arch: PX4FMU_V2
HW type: V2M
HW version: 0x0009000A
HW revision: 0x00000000
FW git-hash: 82aa24adfca29321cfd1209e287eab6c2b16780e
FW version: Release 1.8.1 (17302015)
OS: NuttX
OS version: Release 7.22.0 (118882559)
OS git-hash: 63775322bf25adb406594f8e610122fe0cef2f7a
Build datetime: Oct 20 2018 00:19:12
Build uri: BUILD_URI
Toolchain: GNU GCC, 7.2.1 20170904 (release) [ARM/embedded-7-branch revision 255 204]
MFGUID: 3834373233355106002d0031
MCU: STM32F42x, rev. 3
UID: 2D0031:33355106:38343732
[hardfault_log] Fault Log is Armed
INFO [tune_control] Publishing standard tune 1
INFO [param] selected parameter default file /fs/mtd_params
rgbled on I2C bus 2 at 0x55 (bus: 100 KHz, max: 100 KHz)
nsh: rgbled_pwm: command not found
MS5611_SPI on SPI bus 4 at 3 (20000 KHz)
WARN [ms5611] no device on bus 4
MS5611_SPI on SPI bus 1 at 3 (20000 KHz)
WARN [bst] no devices found
WARN [hmc5883] no device on bus 1 (type: 2)
WARN [lis3mdl] no device on bus 2
WARN [hmc5883] no device on bus 2 (type: 1)
WARN [mpu6000] no device on bus #3 (SPI1)
MPU6000 on SPI bus 4 at 4 (1000 KHz)
INFO [mpu6000] accel cutoff set to 30.00 Hz
INFO [mpu6000] gyro cutoff set to 30.00 Hz
ERROR [l3gd20] driver start failed
WARN [lsm303d] SPI init failed
ERROR [lsm303d] driver start failed
MPU6000 on SPI bus 1 at 4 (1000 KHz)
INFO [mpu6000] accel cutoff set to 30.00 Hz
INFO [mpu6000] gyro cutoff set to 30.00 Hz
HMC5883_SPI on SPI bus 1 at 5 (11000 KHz)
WARN [hmc5883] no device on bus 1 (type: 3)
adc sample timeout
INFO [load_mon] stack check enabled
INFO [px4io] default PWM output device
INFO [mavlink] mode: Normal, data rate: 1200 B/s on /dev/ttyS1 @ 57600B
INFO [mavlink] mode: OSD, data rate: 1000 B/s on /dev/ttyS2 @ 57600B
px4flow [223:100]
WARN [px4flow] scanning I2C buses for device…
INFO [mavlink] mode: Config, data rate: 800000 B/s on /dev/ttyACM0 @ 57600B
INFO [init] Mixer: /etc/mixers/hexa_x.main.mix on /dev/pwm_output0
INFO [init] Mixer: /etc/mixers/mount.aux.mix on /dev/pwm_output1
INFO [logger] logger started (mode=all)
Interesting thing… If I start COLD with serial wire connected ang logging in console - it starts well. Nothing erases from params. After I switch off serial wire and start it only with usb cable - bad things happen.
I also noticed, that when touching usb connector a little - Warning appears ( Accel 0 Time Out, Gyro 0 Time Out)… than disappear in some time.
@Takeshi is it running master? I aks because the git has on both posts is the same 82aa24adfca29321cfd1209e287eab6c2b16780e and the board is still reporting as a mini “FMUv2 ver 0xA : Rev 0 V2M”
The issue you are having may not be related, but we need to establish a good baseline first
I updated QGC to latest version and fetch Fw from it. It is labled as 1.8.2 Stable there. I can upload custom file from your link. But I don’t know what exactly to use.
I thought the problem was solved because of start up with serial cable connected. It’s no problem with it. Don’t know why.
Yes, this time works better! It seems, that the board is recognized correctly and all sensors are good!
Thank you very much! You saved all my project!
For information:
WARM START:
Pixhack V3 detected, forcing to fmu-v3
FMUv2 ver 0xE : Rev 0 V30
[boot] Fault Log info File No 4 Length 3177 flags:0x01 state:1
[boot] Fault Log is Armed
sercon: Registering CDC/ACM serial driver
sercon: Successfully registered the CDC/ACM serial driver
HW arch: PX4_FMU_V3
HW type: V30
HW version: 0x0009000E
HW revision: 0x00000000
FW git-hash: fce35ba9d27c33cc65e1215682785debbd99d361
FW version: 1.9.0 40 (17367104)
OS: NuttX
OS version: Release 7.22.0 (118882559)
OS git-hash: d07a1d459ee9b5b56dbf06a160e8faa4c49fcd10
Build datetime: Dec 19 2018 17:29:16
Build uri: localhost
Toolchain: GNU GCC, 7.2.1 20170904 (release) [ARM/embedded-7-branch revision 255 204]
PX4GUID: 0001000000003131363933375106004e0039
MCU: STM32F42x, rev. 3
[hardfault_log] Fault Log is Armed
INFO [tune_control] Publishing standard tune 1
INFO [dataman] Unknown restart, data manager file ‘/fs/microsd/dataman’ size is 350216 bytes
INFO [load_mon] stack check enabled
INFO [param] selected parameter default file /fs/mtd_params
rgbled on I2C bus 2 at 0x55 (bus: 100 KHz, max: 100 KHz)
WARN [rgbled_ncp5623c] no RGB led on bus #2
nsh: rgbled_pwm: command not found
Board init: /etc/init.d/rc.board
WARN [hmc5883] no device on bus 1 (type: 2)
WARN [lis3mdl] no device on bus 2
INFO [ist8310] no device on bus 1
INFO [ist8310] no device on bus 5
WARN [hmc5883] no device on bus 2 (type: 1)
WARN [mpu6000] no device on bus #3 (SPI1)
MPU6000 on SPI bus 4 at 4 (1000 KHz)
L3GD20 on SPI bus 4 at 1 (11000 KHz)
LSM303D on SPI bus 4 at 2 (11000 KHz)
MPU6000 on SPI bus 1 at 4 (1000 KHz)
HMC5883_SPI on SPI bus 1 at 5 (11000 KHz)
WARN [hmc5883] no device on bus 1 (type: 3)
px4flow [40:100]
INFO [px4flow] scanning I2C buses for device…
MS5611_SPI on SPI bus 4 at 3 (20000 KHz)
MS5611_SPI on SPI bus 1 at 3 (20000 KHz)
WARN [bst] no devices found
INFO [mpu9250] Bus probed: 2
WARN [mpu9250] no device on bus 2
INFO [mavlink] mode: Config, data rate: 800000 B/s on /dev/ttyACM0 @ 57600B
Starting Main GPS on /dev/ttyS3
Starting MAVLink on /dev/ttyS1
INFO [mavlink] mode: Normal, data rate: 1200 B/s on /dev/ttyS1 @ 57600B
INFO [px4io] default PWM output device
INFO [init] Mixer: /etc/mixers/hexa_x.main.mix on /dev/pwm_output0
INFO [init] Mixer: /etc/mixers/mount.aux.mix on /dev/pwm_output1
INFO [logger] logger started (mode=all)
Pixhack V3 detected, forcing to fmu-v3
FMUv2 ver 0xE : Rev 0 V30
[boot] Fault Log info File No 4 Length 3177 flags:0x01 state:1
[boot] Fault Log is Armed
sercon: Registering CDC/ACM serial driver
sercon: Successfully registered the CDC/ACM serial driver
HW arch: PX4_FMU_V3
HW type: V30
HW version: 0x0009000E
HW revision: 0x00000000
FW git-hash: fce35ba9d27c33cc65e1215682785debbd99d361
FW version: 1.9.0 40 (17367104)
OS: NuttX
OS version: Release 7.22.0 (118882559)
OS git-hash: d07a1d459ee9b5b56dbf06a160e8faa4c49fcd10
Build datetime: Dec 19 2018 17:29:16
Build uri: localhost
Toolchain: GNU GCC, 7.2.1 20170904 (release) [ARM/embedded-7-branch revision 255 204]
PX4GUID: 0001000000003131363933375106004e0039
MCU: STM32F42x, rev. 3
[hardfault_log] Fault Log is Armed
INFO [tune_control] Publishing standard tune 1
INFO [dataman] Unknown restart, data manager file ‘/fs/microsd/dataman’ size is 350216 bytes
INFO [load_mon] stack check enabled
INFO [param] selected parameter default file /fs/mtd_params
rgbled on I2C bus 2 at 0x55 (bus: 100 KHz, max: 100 KHz)
WARN [rgbled_ncp5623c] no RGB led on bus #2
nsh: rgbled_pwm: command not found
Board init: /etc/init.d/rc.board
WARN [hmc5883] no device on bus 1 (type: 2)
WARN [lis3mdl] no device on bus 2
INFO [ist8310] no device on bus 1
INFO [ist8310] no device on bus 5
WARN [hmc5883] no device on bus 2 (type: 1)
WARN [mpu6000] no device on bus #3 (SPI1)
MPU6000 on SPI bus 4 at 4 (1000 KHz)
L3GD20 on SPI bus 4 at 1 (11000 KHz)
LSM303D on SPI bus 4 at 2 (11000 KHz)
MPU6000 on SPI bus 1 at 4 (1000 KHz)
HMC5883_SPI on SPI bus 1 at 5 (11000 KHz)
WARN [hmc5883] no device on bus 1 (type: 3)
px4flow [40:100]
INFO [px4flow] scanning I2C buses for device…
MS5611_SPI on SPI bus 4 at 3 (20000 KHz)
MS5611_SPI on SPI bus 1 at 3 (20000 KHz)
WARN [bst] no devices found
INFO [mpu9250] Bus probed: 2
WARN [mpu9250] no device on bus 2
INFO [mavlink] mode: Config, data rate: 800000 B/s on /dev/ttyACM0 @ 57600B
Starting Main GPS on /dev/ttyS3
Starting MAVLink on /dev/ttyS1
INFO [mavlink] mode: Normal, data rate: 1200 B/s on /dev/ttyS1 @ 57600B
INFO [px4io] default PWM output device
INFO [init] Mixer: /etc/mixers/hexa_x.main.mix on /dev/pwm_output0
INFO [init] Mixer: /etc/mixers/mount.aux.mix on /dev/pwm_output1
INFO [logger] logger started (mode=all)
Now that we have a proper HW detection, we have a good baseline to test with.
Given what you noted previously on the the effects of temperature, it would be good to do some more temperature based testing to rule out any HW issues.