Skip to content
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

drivers/uavcan: subtree merge last working libuavcan (preserving history) #23819

Merged
merged 1,868 commits into from
Oct 17, 2024

Conversation

dagar
Copy link
Member

@dagar dagar commented Oct 16, 2024

Upstream libuavcan was broken and then marked deprecated. This pull request fully absorbs the libuavcan submodule (renamed libdronecan to deconflict) up to our last good working commit and all commit history is kept.

Other than fixing the regression introduced in #23113 the goal here is to put us in a much better position to easily evolve the library as needed now that we have full control.

Fixes #23727

Missing features for LPC11C24
dagar and others added 13 commits August 12, 2020 14:32
    The server will now attempt to provide files from the primary
    path RootPath and then the alternate AltRootPath. This alows
    a layered approch to file service.

    Setting the RootPath to an SD card and the AltRootPath to a
    ROM FS will allow a user to provide an updated uavcan firware
    file that will be used instead of the baked in one without
    any copying.

    The path as been removed from the interactions with nodes.
    There by supporting Non-compliant nodes that could not
    handle the specified path length.

    The vitrual pathing has been moved into the FDCache.
@mrpollo
Copy link
Contributor

mrpollo commented Oct 16, 2024

scared

@dagar dagar changed the title [WIP] drivers/uavcan: subtree merge last working libuavcan (preserving history) drivers/uavcan: subtree merge last working libuavcan (preserving history) Oct 16, 2024
@dagar dagar marked this pull request as ready for review October 16, 2024 16:56
@dagar dagar added the UAVCAN label Oct 16, 2024
…ory)

 - upstream libuavcan was broken and then marked deprecated, this fully absorbs the submodule (renamed libdronecan to deconflict) up to our last good working commit and all commit history is kept
 - fixes #23727 (regression introduced in #23113)
 - this puts us in a much better position to evolve the library as needed now that we have full control
@julianoes
Copy link
Contributor

@dagar will this break CubeID? I guess I can check.

And how does this relate to https://github.com/dronecan/libcanard? Should we move over to that one?

@dagar
Copy link
Member Author

dagar commented Oct 16, 2024

@dagar will this break CubeID? I guess I can check.

This includes the latest DSDL, so I believe it should work, but yes please check.

And how does this relate to https://github.com/dronecan/libcanard? Should we move over to that one?

I believe there's some interest in that, but to be honest I don't think it's actually going to be any better. In fact I would guess it's probably a lateral move after quite a lot of effort. I don't think the hate for libuavcan is completely justified, there's actually quite a lot it does very well, it's just somewhat inaccessible template heavy c++ code. By bringing it in tree we could potentially keep some of the good parts while dropping unnecessary extras and duplication. For example libuavcan needs its own dedicated timer for monotonic time and we could more tightly integrated it with our own subscription callback and scheduling mechanisms.

@julianoes
Copy link
Contributor

@dagar you're right, Remote ID still works. I tested both CubePilot CubeID and the Holybro's AP_Periph based remote ID.

Copy link
Member

@AlexKlimaj AlexKlimaj left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like this is working. Tested parameters through QGC, firmware dating from the FC, and sensor data from an ARK Flow.

@dagar
Copy link
Member Author

dagar commented Oct 17, 2024

This also saves about 3kB of flash.

Thanks everyone.

@dagar dagar merged commit 371a99c into main Oct 17, 2024
56 of 57 checks passed
@dagar dagar deleted the pr-libuavcan_subtree_merge branch October 17, 2024 20:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Bug] Dronecan Firmware Updating is Broken on Main