-
Notifications
You must be signed in to change notification settings - Fork 13.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
UAVCAN 1 on master (2018-06-12) broken #9648
Comments
@DanielePettenuzzo as mentioned here #9534 (comment)
What this means is the FW server (for historical RAM size limitation) a separate task under uavcan on the FMU is that is started in the configuration phase and then stopped to conserver RAM. It is responsible for 1) dynamic node ID allocation (think DHCP on can) 2) FW upgrade - using the brickproof bootloader on a UAVCAN node to update the fw on the node. 3) Parameter setting on the nodes. This is where the hardfault was happening and why it is only related to CAN1. |
UAVCAN FW server is not running on CAN2 therefore the function that causes the hardfault is never called. |
I think it is not fixed for CAN1 @DanielePettenuzzo still has a fix to push |
Rough ETA I got from Daniele is noon CEST 2018-06-13 |
@DanielePettenuzzo There is also the PR from David with the UAVCAN update which might address a couple of issues. |
See #9650 |
@DanielePettenuzzo - I think this was related to a race that happens because of the F7. I could have been speed, ordering or having 2 CAN interfaces. The Fix is #9652. I found that send_uavcan was called before enque_uavcan_request on the F7. This was not the case on a AUAV X2.1. I am not sure if it related to having 2 can interfaces or we would have seen it on FMUv2 w/2MB |
@davids5 thanks you. Today I also tried with Pixhawk 3 Pro (fmu-v4pro) that has 2 can interfaces and I didn't have this issue.. Instead with the Pixhack v5 (also fmu-v5) I have the same issues as on Pixhawk 4. |
@DanielePettenuzzo For the record my assumption above about a race was wrong! The bug has been in the code forever. It was not a race. The dereferencing null on the F4 did not pitch the exception but does on the F7. Please cross test the PR as well. |
@davids5 will do one more test first thing tomorrow morning although this is the same change I did today and it was working fine. |
@DanielePettenuzzo - thank you! The value add will be testing on the new libuavcan that is now on master. |
@davids5 perfect. will do. |
I have different behaviours when using UAVCAN to control ESCs on CAN1 and CAN2 on a Pixhawk 4.
CAN1: everything works fine if we are not connected to QGC. When I launch QGC it will request the UAVCAN parameters and I get a hardfault in the send_uavcan function in mavlink_parameters.cpp. This happens because initially the _uavcan_open_request_list pointer is null. I tried returning the function until the pointer is different from null and then it works fine (after several retries).
CAN2: the issue that I have on CAN1 doesn't occur because the uavcan module fails to get the parameters and therefore send_uavcan is never called.
This warning comes up when I connect to QGC and CAN2 is used:
On a Pixracer's CAN1 I don't have any of the two issues.
Now I will test on other nuttx boards.
The text was updated successfully, but these errors were encountered: