Stabilizer never completes calibration, appears to have started after changing radio channel

Post here to get support
Post Reply
super_flie_guy
Beginner
Posts: 2
Joined: Thu Aug 20, 2020 10:26 pm

Stabilizer never completes calibration, appears to have started after changing radio channel

Post by super_flie_guy »

Hey all, I'm pretty new to the Crazyflie(2.1) platform so perhaps this is just user error... but I've hit a bit of a conundrum and tried everything I could think to do with the python client, logging the results over crazy radio (all zeroes from the stabilizer) and leaving them on the stablest surface I could find until they could calibrate. No matter what I do, the problem drones always report the following output to console in the python client.
SYS: ----------------------------
SYS: Crazyflie 2.1 is up and running!

SYS: Production release 2020.06

SYS: I am 0x20383347344D5008002D0057 and I have 1024KB of flash!

CFGBLK: v1, verification [OK]

DECK_CORE: 0 deck(s) found

IMU: BMI088 Gyro I2C connection [OK].

IMU: BMI088 Accel I2C connection [OK]

IMU: BMP388 I2C connection [OK]

ESTIMATOR: Using Complementary (1) estimator

CONTROLLER: Using PID (1) controller

MTR-DRV: Using brushed motor driver

EEPROM: I2C connection [OK].

IMU: BMI088 gyro self-test [OK]

STAB: Wait for sensor calibration...

SYS: Free heap: 13216 bytes
With it just ending there and never completing the process as it normally would (and does) for the other drones I acquired, which I was able to compare it to.
SYS: ----------------------------

SYS: Crazyflie 2.1 is up and running!

SYS: Production release 2020.06

SYS: I am 0x20383347344D50070039004A and I have 1024KB of flash!

CFGBLK: v1, verification [OK]

DECK_CORE: 0 deck(s) found

IMU: BMI088 Gyro I2C connection [OK].

IMU: BMI088 Accel I2C connection [OK]

IMU: BMP388 I2C connection [OK]

ESTIMATOR: Using Complementary (1) estimator

CONTROLLER: Using PID (1) controller

MTR-DRV: Using brushed motor driver

EEPROM: I2C connection [OK].

IMU: BMI088 gyro self-test [OK]

STAB: Wait for sensor calibration...

SYS: Free heap: 13216 bytes

STAB: Ready to fly.
I speculated that it might be a some sort of hardware error, but thinking back it seems to have occurred the same way to two of my drones (which I then learned not to try on the others): I changed the radio channel from the default 80 to some other one following the upload of the newest firmware(https://github.com/bitcraze/crazyflie-r ... 020.06.zip) via the boot loader, which immediately caused them to go from sending telemetry data while connected to none at all. Switching back to the default channel unfortunately did not restore telemetry data, which prompted me to start trying to figure out why and then clued me into the stabilizer not calibrating. I'm not really certain what I could have done to bust the stabilizer otherwise, or how to return them to their original out of the box state (tried the python EEPROM script, no luck) so any advice you all could provide on what might have gone wrong or what I might be overlooking in the crazyflie that's accessible by Python would be super appreciated.
kimberly
Bitcraze
Posts: 523
Joined: Fri Jul 06, 2018 11:13 am

Re: Stabilizer never completes calibration, appears to have started after changing radio channel

Post by kimberly »

Hi!

It is odd since the IMU test passed according to the debugprints....


Have you tried looking at the raw IMU values in the plotter of the cfclient?
super_flie_guy
Beginner
Posts: 2
Joined: Thu Aug 20, 2020 10:26 pm

Re: Stabilizer never completes calibration, appears to have started after changing radio channel

Post by super_flie_guy »

kimberly wrote: Mon Aug 24, 2020 9:45 am Hi!

It is odd since the IMU test passed according to the debugprints....


Have you tried looking at the raw IMU values in the plotter of the cfclient?
Hey there, sorry for not responding quicker, The plotter tab only provides the same output for both the working and non working drones when I connect them to the client (see the attached). It might be different for the one that can fly once it gets airborne, but I didn't test that since the other can't fly right now anyway. On the other hand the terminal logs for the cf client seem to show a slight difference between the drones. Here is the output of the working version vs the never stabilizing one. I can see that the extra bit refers to the loco deck (which I do not have, and never tried to configure) but is it possible I somehow put it into a loco deck seeking mode with the boot loader? I did not have the loco position tab open when connecting to the bugged out drone, and also didn't when I first flashed the firmware, but again any insights you all could provided would be super appreciated.

Normal output
INFO:cflib.drivers.cfusb:Looking for devices....
INFO:cflib.crazyflie:Callback->Connection initialized[radio://0/80/2M]
INFO:cflib.crazyflie:We are connected[radio://0/80/2M], request connection setup
INFO:cflib.crazyflie:Callback->Connected to [radio://0/80/2M]
INFO:cflib.crazyflie.platformservice:Procotol version: 4
INFO:cflib.crazyflie.toc:TOC for port [5] found in cache
INFO:cflib.crazyflie:Log TOC finished updating
INFO:cflib.crazyflie.mem:9 memories found
INFO:cflib.crazyflie:Memories finished updating
INFO:cflib.crazyflie.toc:TOC for port [2] found in cache
INFO:cflib.crazyflie:Param TOC finished updating
INFO:cflib.crazyflie:Callback->Connection setup finished [radio://0/80/2M]
INFO:cfclient.utils.logconfigreader:Parsing [stabilizer.json]
QObject::connect: Cannot queue arguments of type 'QList<QPersistentModelIndex>'
(Make sure 'QList<QPersistentModelIndex>' is registered using qRegisterMetaType().)
QObject::connect: Cannot queue arguments of type 'QList<QPersistentModelIndex>'
(Make sure 'QList<QPersistentModelIndex>' is registered using qRegisterMetaType().)
QObject::connect: Cannot queue arguments of type 'QList<QPersistentModelIndex>'
(Make sure 'QList<QPersistentModelIndex>' is registered using qRegisterMetaType().)
INFO:cfclient.ui.tabs.LEDTab:Memory: id=1, type=LED driver, size=24
INFO:cfclient.ui.tabs.locopositioning_tab:Crazyflie connected to radio://0/80/2M
INFO:cfclient.ui.tabs.locopositioning_tab:Requesting loco deck parameter
INFO:cfclient.ui.main:LED write done callback
QObject::connect: Cannot queue arguments of type 'QList<QPersistentModelIndex>'
(Make sure 'QList<QPersistentModelIndex>' is registered using qRegisterMetaType().)
QObject::connect: Cannot queue arguments of type 'QList<QPersistentModelIndex>'
(Make sure 'QList<QPersistentModelIndex>' is registered using qRegisterMetaType().)
QObject::connect: Cannot queue arguments of type 'QList<QPersistentModelIndex>'
(Make sure 'QList<QPersistentModelIndex>' is registered using qRegisterMetaType().)
INFO:cfclient.ui.tabs.FlightTab:[imu_sensors.BMP388]: 0
INFO:cflib.crazyflie.log:Have successfully started logging for id=1
INFO:cflib.crazyflie.log:Have successfully started logging for id=3
INFO:cflib.crazyflie.log:Have successfully started logging for id=4
INFO:cfclient.ui.tabs.FlightTab:[imu_sensors.HMC5883L]: 0
INFO:cflib.crazyflie.log:Have successfully started logging for id=5
INFO:cfclient.ui.tabs.FlightTab:[imu_sensors.MS5611]: 0
Never stabilizes output
INFO:cflib.drivers.cfusb:Looking for devices....
INFO:cflib.crazyflie:Callback->Connection initialized[radio://0/80/2M]
INFO:cflib.crazyflie:We are connected[radio://0/80/2M], request connection setup
INFO:cflib.crazyflie:Callback->Connected to [radio://0/80/2M]
INFO:cflib.crazyflie.platformservice:Procotol version: 4
INFO:cflib.crazyflie.toc:TOC for port [5] found in cache
INFO:cflib.crazyflie:Log TOC finished updating
INFO:cflib.crazyflie.mem:8 memories found
INFO:cflib.crazyflie:Memories finished updating
INFO:cflib.crazyflie.toc:TOC for port [2] found in cache
INFO:cflib.crazyflie:Param TOC finished updating
INFO:cflib.crazyflie:Callback->Connection setup finished [radio://0/80/2M]
INFO:cfclient.utils.logconfigreader:Parsing [stabilizer.json]
QObject::connect: Cannot queue arguments of type 'QList<QPersistentModelIndex>'
(Make sure 'QList<QPersistentModelIndex>' is registered using qRegisterMetaType().)
QObject::connect: Cannot queue arguments of type 'QList<QPersistentModelIndex>'
(Make sure 'QList<QPersistentModelIndex>' is registered using qRegisterMetaType().)
QObject::connect: Cannot queue arguments of type 'QList<QPersistentModelIndex>'
(Make sure 'QList<QPersistentModelIndex>' is registered using qRegisterMetaType().)
INFO:cfclient.ui.tabs.LEDTab:Memory: id=1, type=LED driver, size=24
INFO:cfclient.ui.tabs.locopositioning_tab:Crazyflie connected to radio://0/80/2M
INFO:cfclient.ui.tabs.locopositioning_tab:Requesting loco deck parameter
INFO:cfclient.ui.main:LED write done callback
QObject::connect: Cannot queue arguments of type 'QList<QPersistentModelIndex>'
(Make sure 'QList<QPersistentModelIndex>' is registered using qRegisterMetaType().)
QObject::connect: Cannot queue arguments of type 'QList<QPersistentModelIndex>'
(Make sure 'QList<QPersistentModelIndex>' is registered using qRegisterMetaType().)
QObject::connect: Cannot queue arguments of type 'QList<QPersistentModelIndex>'
(Make sure 'QList<QPersistentModelIndex>' is registered using qRegisterMetaType().)
INFO:cfclient.ui.tabs.FlightTab:[imu_sensors.BMP388]: 0
INFO:cflib.crazyflie.log:Have successfully started logging for id=1
INFO:cflib.crazyflie.log:Have successfully started logging for id=3
INFO:cflib.crazyflie.log:Have successfully started logging for id=4
INFO:cfclient.ui.tabs.FlightTab:[imu_sensors.HMC5883L]: 0
INFO:cflib.crazyflie.log:Have successfully started logging for id=5
INFO:cfclient.ui.tabs.FlightTab:[imu_sensors.MS5611]: 0
INFO:cfclient.ui.tabs.locopositioning_tab:No Loco deck installed
QObject::connect: Cannot queue arguments of type 'QVector<int>'
(Make sure 'QVector<int>' is registered using qRegisterMetaType().)
QObject::connect: Cannot queue arguments of type 'QVector<int>'
(Make sure 'QVector<int>' is registered using qRegisterMetaType().)
INFO:cfclient.ui.tabs.FlightTab:Changed effect to 0
Attachments
working.png
working.png (10 KiB) Viewed 321 times
kimberly
Bitcraze
Posts: 523
Joined: Fri Jul 06, 2018 11:13 am

Re: Stabilizer never completes calibration, appears to have started after changing radio channel

Post by kimberly »

Unfortunately the cfclient terminal output will not give that much useful information, only the 'console tab' is supposed to do that.

I don't see any value plotted in the plotter tab though. Please checkout the guide. The drones don't need to be flying for this.

You can check also if you are getting the same problem if you connect the crazyflie through microUSB to your computer
Post Reply