I've moved all my code, which was implemented on the Deck-Driver to the app-Layer for better version control and future updated.
It basically consists of 2 FreeRTOS-Tasks which use the Loco-Deck to measure distances to other drones in the swarm.
Those tasks have the highest priority, which worked on the deck. As soon as I connect to the client over the radio, the radiolink.c throws an error:
Everything works like a charm, as long as I do not connect to the client, or connect with the python-lib.SYS: The system resumed after a failed assert [WARNING]
SYS: Assert failed at ../crazyflie-firmware/src/hal/src/radiolink.c:164
SYS: cfAssertNormalStart [FAIL]
Lowering the priority of the tasks solves the issue, so my code is probably taking too much computation-power. But it is the same code I used on the deck-driver.
Can you may tell me, how differently the firmware handles deck-drivers compared to code on the app-layer?
Is there a different way of allocating memory an CPU-time?
Sometimes (between 10 to 30min after start) I get the following error, even without connecting to the client:
As far as I now the watchdog kicks in if the IDLE-task does not get executed after a certain time, right?SYS: The system resumed after watchdog timeout [WARNING]
SYS: watchdogNormalStart [FAIL]
I am not sure if this is related, but may helps in solving the issue.
Thanks a lot in advance,
Michael