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

O4 arming workaround #10598

Merged
merged 1 commit into from
Jan 16, 2025
Merged

O4 arming workaround #10598

merged 1 commit into from
Jan 16, 2025

Conversation

mmosca
Copy link
Collaborator

@mmosca mmosca commented Jan 16, 2025

DJI strikes again, the O4 firmware currently shipping has a regression, when compared to DJI O3.

DJI O4 seem to not accept INAV's reply to STATUS/STATUS_EX commands.

This patch adds the option to re-use the workaround needed for the Original DJI FPV System, where INAV would reply with a custom message to those messages.

The main difference is related to the number of flight modes in INAV vs Betaflight. INAV has a lot more modes and is likely sending a reply that DJI thinks is too big and marked as invalid.

While the arming bit is supposed to be the same accross BF and INAV, they are also not using the correct workflow of asking the firmware for the list of modes supported (and corresponding bits) to check what is active or not.

While it is not critical to check the modes, as it is very unlikely the ARM bit will move/change, it is certainly incorrect to ignore the reply based on the number of modes, if you haven't checked how many modes there should be.

There has been zero communication from DJI about INAV firmware or font and the team had zero access to hardware/firmware before release. As it stands, we can only reinforce the recommendation of using HD-Zero, Walksnail or Analog for the full INAV OSD compatibility.

To enable the fix, type this on the cli: set enable_broken_o4_workaround= ON

The O4 firmware currently shipping has a regression, when compared to
DJI O3.

They are not accepting INAV's reply to STATUS/STATUS_EX commands.

This patch adds the option to re-use the workaround needed for the
Original DJI FPV System, where INAV would reply with a custom message to
those messages.

The main difference is related to the number of flight modes in INAV vs
Betaflight. INAV has a lot more modes and is likely sending a reply that
DJI thinks is too big and marked as invalid.

While the arming bit is supposed to be the same accross BF and INAV,
they are also not using the correct workflow of asking the firmware for
the list of modes supported (and corresponding bits) to check what is
active or not.

While it is not critical to check the modes, as it is very unlikely the
ARM bit will move/change, it is certainly incorrect to ignore the reply
based on the number of modes, if you haven't checked how many modes
there should be.
@mmosca mmosca added this to the 8.0 milestone Jan 16, 2025
@mmosca mmosca added Testing Required Release Notes Add this when a PR needs to be mentioned in the release notes labels Jan 16, 2025
@mmosca mmosca marked this pull request as ready for review January 16, 2025 11:13
@ohcrfpv
Copy link

ohcrfpv commented Jan 16, 2025

If I already flush 7.1.2, how to use this update. Appreciate your work.

@mmosca
Copy link
Collaborator Author

mmosca commented Jan 16, 2025

If I already flush 7.1.2, how to use this update. Appreciate your work.

This fix is only available in this PR, so you need to upgrade to 8.0.0 and flash the artifacts in this PR: https://github.com/iNavFlight/inav/actions/runs/12807537088?pr=10598#artifacts

@mmosca mmosca merged commit b41e900 into master Jan 16, 2025
22 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Release Notes Add this when a PR needs to be mentioned in the release notes
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants