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

Fix: Resolving Servo Telemetry Clashes and making DroneCAN Servo compatible. #270

Merged
merged 2 commits into from
Dec 27, 2024

Conversation

loki077
Copy link
Contributor

@loki077 loki077 commented Dec 15, 2024

Problem Statement:
In Ottano, the use of DroneCAN Servo causes telemetry log clashes due to indexing messages by Actuator ID. This occurs because multiple servos (aileron, elevator, rudder) share the same Actuator ID, resulting in overlapping logs that cannot distinguish between individual servo outputs.

Solution:
Split Servo Outputs For each Servo:
To address this, each servo output is now uniquely defined by function and position (right/left), ensuring no telemetry clash:

SERVO6_FUNCTION,19  # Elevator Right  OUT1 56  
SERVO10_FUNCTION,4  # Aileron Right   OUT1 60  
SERVO11_FUNCTION,21 # Rudder Right    OUT2 61  

SERVO12_FUNCTION,19 # Elevator Left   OUT1 62  
SERVO13_FUNCTION,4  # Aileron Left    OUT1 63  
SERVO15_FUNCTION,21 # Rudder Left     OUT1 64

Broadcast Servo Outputs Across Both Buses:
The changes ensure all six servo outputs are broadcasted on both CAN buses, facilitating flexibility to relocate a servo between buses in the future. As in Volanti Right Wing and Left Tail are on one bus and in Ottano Right Wing and Right Tail are on same bus. Also, the impact on BUS bandwidth is not massive.

Scope and Implementation:
This change is specifically needed for Ottano and the upcoming Octtano platforms.
It has been ported to Volanti for future compatibility without impacting current aircraft functionality. This prepares Volanti for potential DroneCAN servo integrations.

Testing Requirements:
Testing is required on IronBird first, followed by validation on Ottano and Volanti.

Upgrade Impact:
When upgrading Ottano or Volanti, users must reset the Left Wing/Tail Parameters (CPN) to default after writing the updated firmware.

@loki077
Copy link
Contributor Author

loki077 commented Dec 15, 2024

I need a review from @LachlanConn @robertlong13 and @Jono453 on this.

Copy link
Collaborator

Choose a reason for hiding this comment

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

Let's remove the CPN changes from consideration here. We can keep the Cube changes.

Defaulting CPN params on an update is a pain that I'd like to avoid, and it buys us nothing. The Cube changes on their own pave the way for DroneCAN servos in Volanti, and no living Ottanos have servo CPNs anymore.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Agreed, I was about to mention that point where I will remove the Volanti CPN changes.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

changes done

@loki077 loki077 force-pushed the feature/SW-483-ottano-can-servo-logging-clash branch from dee1d2b to 3994741 Compare December 16, 2024 00:36
Copy link
Contributor

@Jono453 Jono453 left a comment

Choose a reason for hiding this comment

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

Legacy Ottano CPNs do not need the params changed as they have been replaced by CPCs. Instead, the parameters in each of the 6 x droneCAN servos will need to be updated to have their actuation_id match their new CUBE servo mappings

@LachlanConn
Copy link
Contributor

Looks good, once the CPN parts are removed I'll approve.

@loki077 loki077 force-pushed the feature/SW-483-ottano-can-servo-logging-clash branch from 3994741 to 9b0c0d8 Compare December 16, 2024 21:37
@loki077 loki077 force-pushed the feature/SW-483-ottano-can-servo-logging-clash branch from 9b0c0d8 to 7b3cbd7 Compare December 16, 2024 21:41
Copy link
Contributor

@Jono453 Jono453 left a comment

Choose a reason for hiding this comment

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

Ill update the dronecan servo QC page once this is ready as well

Copy link
Contributor

@Pradeep-Carbonix Pradeep-Carbonix left a comment

Choose a reason for hiding this comment

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

LGTM

@loki077
Copy link
Contributor Author

loki077 commented Dec 27, 2024

going to be tested by https://carbonix.atlassian.net/browse/FTE-22

@loki077 loki077 merged commit 2db399e into CxPilot-7 Dec 27, 2024
35 checks passed
@loki077 loki077 deleted the feature/SW-483-ottano-can-servo-logging-clash branch December 27, 2024 03:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants