Page 1 of 1

Conflict between Flow V2 deck and Multi-ranger deck?

Posted: Sat Feb 29, 2020 11:14 am
by Setito
Hello,

I'm just doing my first steps with my Crazyflie and I'm getting a weird situation.
I'm running a really simple code that makes the drone go up 0.3mts, then going down 0.2mts and finally land. Pretty easy code to test if everything was connected correctly.

The real problem here is that the described routine executes well if the drone only has attached the Flow V2 deck. If I attach the Multi-ranger deck, the dron just flies until the roof, crash it and fall...

Could someone assist me on this?
I'll be quite thankful for any advice!

Thanks!

Re: Conflict between Flow V2 deck and Multi-ranger deck?

Posted: Sun Mar 01, 2020 4:33 am
by Setito
Hello again,

To keep you in the loop, this is what I'm getting from the Client console:

Having attached only the Flow V2 deck:
SYS: Crazyflie 2.1 is up and running!
SYS: Production release 2020.02
SYS: I am 0x20383347344D50070037002F and I have 1024KB of flash!
CFGBLK: v1, verification [OK]
DECK_CORE: 1 deck(s) found
DECK_CORE: Calling INIT on driver bcFlow2 for deck 0
ZR2: Z-down sensor [OK]
PMW: Motion chip id: 0x49:0xB6
IMU: BMI088 Gyro I2C connection [OK].
IMU: BMI088 Accel I2C connection [OK]
IMU: BMP388 I2C connection [OK]
ESTIMATOR: Using Kalman (2) estimator
CONTROLLER: Using PID (1) controller
MTR-DRV: Using brushed motor driver
EEPROM: I2C connection [OK].
DECK_CORE: Deck 0 test [OK].
STAB: Wait for sensor calibration...
SYS: Free heap: 5328 bytes
STAB: Ready to fly.
ESTKALMAN: State out of bounds, resettingSYSLOAD
Having also attached the Multi-ranger deck:
SYS: Crazyflie 2.1 is up and running!
SYS: Production release 2020.02
SYS: I am 0x20383347344D50070037002F and I have 1024KB of flash!
CFGBLK: v1, verification [OK]
DECK_INFO: Memory error: wrong header ID
DECK_INFO: Deck 0 has corrupt OW memory. No driver will be initialized!
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].
STAB: Wait for sensor calibration...
SYS: Free heap: 8216 bytes
STAB: Ready to fly.
As you can see in the second case, there is a Memory error, I assume related with the Multi-ranger deck.

Finally, this is the output I get from the client debugger:
Cfclient
Cfclient version: 2020.02
System: win32
Python: 3.6.8
Qt: 5.12.2
PyQt: 5.12.1

Interface status
radio: Crazyradio version 0.53
serial: None
udp: None
UsbCdc: No information available

Input readers
PySDL2 (0 devices connected)

Input devices
None

Crazyflie
Connected: radio://0/80/2M
Firmware: 00 (CLEAN)

Decks found
N/A: rev=N/A, adr=0D4A713600000063
bcFlow2: rev=A, adr=0DAB385100000071

Sensors found
BMP388: 0
HMC5883L: 0
MS5611: 0

Sensors tests
MPU6500: 0
HMC5883L: 0
MS5611: 0
Looks like there is a problem with the sensors, they should be showing 1 instead of 0.
Could be that my Multiranger deck is broken?

Re: Conflict between Flow V2 deck and Multi-ranger deck?

Posted: Mon Mar 02, 2020 12:25 pm
by tobias
Something is indeed wrong with the Multiranger and for some reason the 1-wire memory seems not to have been programmed at all.

Quick test if you know how to build your own FW?

1. Put CFLAGS += -DDECK_FORCE=bcMultiranger in you config.mk to force the Mulitranger deck on.
2. Build a debug FW and flash it with cload (you get a lot of build warnings when building the debug FW but that is OK)

Code: Select all

make clean all cload DEBUG=1
3. Test if the Multiranger works now.

If you can't build the FW yourself I can make one for you.

Re: Conflict between Flow V2 deck and Multi-ranger deck?

Posted: Tue Mar 03, 2020 3:00 am
by Setito
Hello Tobias,

Thanks for answering!
In order to doing a proper testing and not mess it up building a debug FW, could you please assist me on this as well?

Thanks,

Re: Conflict between Flow V2 deck and Multi-ranger deck?

Posted: Tue Mar 03, 2020 9:05 am
by kimberly
Hi!

There is no danger of flashing this debug firmware in the way that tobias describes with a crazyradio. You can always flash the normal firmware afterwards after done testing. As long as you type 'make clean all cload DEBUG=1" in a terminal, there is no way to break the bootloader, and that is the most important element to be able to reflash the firmware normally.

Do you have experience with flashing the firmware from a terminal in windows, as Tobias described?

Re: Conflict between Flow V2 deck and Multi-ranger deck?

Posted: Tue Mar 03, 2020 9:50 am
by tobias
Like Kimberly says I would recommend trying to build the FW your self but I have provided one to test with. You can flash it using the cfclient and just select the bin file.

Re: Conflict between Flow V2 deck and Multi-ranger deck?

Posted: Tue Mar 03, 2020 12:28 pm
by Setito
Hello Tobias and Kimberly,

I've tried to follow tobias instructions for a couple of hours and it didn't work for me. About Kimberly's question, I don't have any experience on this type of things, first time :(
I'm doing something bad for sure, really sorry.

Anyway, I just tried to test the FW provided by tobias, and it worked!
Thank you so much for the support :)
Just one more question.
I assume that this is not fixing the problem of my Multiranger, or I would be able of using the official FW?

Re: Conflict between Flow V2 deck and Multi-ranger deck?

Posted: Wed Mar 04, 2020 9:36 am
by kimberly
Hi!

If you don't have experience yet with flashing the firmware like before, it will be quite difficult to get this to work from windows (I haven't even managed to set this up on the computer myself :shock: ). Ubuntu is just much easier with this... But you can consider checking out the linux virtual machine we made as described here: https://www.bitcraze.io/getting-started ... velopment/

About the Multiranger, if this one has a corrupted one wire memory (OW), this will not work with the official FW...

So there are two options we think:
  • You get acquainted with development on VM, where you are able to build and flash the latest from terminal and use the example scripts from the crazyflie python library to directly communicate with your crazyflie. Than you can run a python script which will rewrite the OW memory and solves your problem
So it is up to you. The first option might be faster and will get you acquainted with development, which might be what you want to do in the end anyway. Let us know what you prefer.