Skip to content

Permanently arm DJI (or other MSP displayport) air units using an RX#3028

Merged
wvarty merged 4 commits intomasterfrom
permanent-dji-arming-option
Jan 11, 2025
Merged

Permanently arm DJI (or other MSP displayport) air units using an RX#3028
wvarty merged 4 commits intomasterfrom
permanent-dji-arming-option

Conversation

@wvarty
Copy link
Copy Markdown
Collaborator

@wvarty wvarty commented Nov 11, 2024

This is a feature request from the community:

Ian (Madstech):

  • "Guys on the O3 MSP Arming, im sure I read there was a way to force it on all the time?"
  • "What was discussed before was it would be great if this msp also allowed for complete standalone arming on boot. The use of the receiver as an permanent arming tool."
  • "Yea was more thinking where there was no RC. Today there are adapters that are $20 to just force arming. It would he great to have that in this for elrs receiver. I know it's not project related but being able to say hay get an elrs module for less than $10 and flash it this way would be good even if it did not directly mean people were using elrs."

There was an original PR that was merged a few weeks back that added MSP displayport as a protocol on the RX. This is what Ian is referring to above. In that PR, I am currently tieing the armed state of the O3 VTX to the arm state in ELRS (channel 5 state).

Ian now wants enhancements that allow someone to force the O3 to arm, even if they dont use ELRS at all.
I.e. they buy an ELRS RX and set the protocol to Displayport via the web ui, then enable the permanent arm option, and then whenever they power up, the RX spams the armed command, and O3 exits low power mode.

This PR adds a new checkbox to the receiver's web UI, which enables permanent arming, even if the RX isn't linked or used with a ELRS TX at all.

https://youtu.be/cDwpVcaxmxI

A few notes:

  • I have discovered a quirk with the O3, where it needs to see a state change in order to properly arm and exit low power, so I cant just spam armed = true from boot. It needs to be false first, then go true after (in terms of what the O3 sees). This PR should now wait for some UART activity from the O3, then wait an additional 10s before changing to armed. This will happen ONLY if permanent arming is enabled.
  • Permanent arming will require a full UART connection to the O3 (both tx and rx pads connected to the O3). This is so we can detect activity on the UART. If you are using ELRS switch arming (CH5) then you don't need a full UART, and can get away with only connecting to the tx pad on the receiver.
  • When using permanent arming, if you power up the RX + O3 while the goggles are still powered off (no link on the DJI side), and wait for the RX to start spamming the armed command, then power up the goggles, the O3 stays in low power. Make sure the goggles are powered up before powering the craft (O3).

@wvarty
Copy link
Copy Markdown
Collaborator Author

wvarty commented Nov 11, 2024

I'm still waiting for Ian to test this latest iteration and confirm it matches expectations.

Copy link
Copy Markdown
Member

@JyeSmith JyeSmith left a comment

Choose a reason for hiding this comment

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

Im unable to test but have no comment re code.

@wvarty
Copy link
Copy Markdown
Collaborator Author

wvarty commented Dec 22, 2024 via email

@Pancronos
Copy link
Copy Markdown

Pancronos commented Dec 23, 2024

Hey Matt, Try updating your configurator version. Should fix it for you. I just tried building using v1.7.7 (latest) configurator, and got a green build. Wez

On Mon, Dec 23, 2024 at 12:28 AM MatCron @.> wrote: I am trying to test this pr, but i get error image.png (view on web) https://github.com/user-attachments/assets/a1c80939-434d-4da9-89ce-2d728476def0 image.png (view on web) https://github.com/user-attachments/assets/d8389f57-9d39-4d69-b849-daada6ca2a70 image.png (view on web) https://github.com/user-attachments/assets/7b1ac95f-8093-41da-bcc0-4e9597dbb81c — Reply to this email directly, view it on GitHub <#3028 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AOIZRZUSFBQVMMHKLDWOUBT2G3EBXAVCNFSM6AAAAABRQ3I5IKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDKNJYGQ3TINZVHE . You are receiving this because you authored the thread.Message ID: @.>

Yeah building and importing the bin via web works fine,
image

flashing straight via wifi returns the error
image
ExpressLRSBuildLog_20241223182228934.txt

@wvarty wvarty added enhancement 🪄 New feature or request V4.0 🍔 labels Dec 26, 2024
Copy link
Copy Markdown
Collaborator

@pkendall64 pkendall64 left a comment

Choose a reason for hiding this comment

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

I merged master and changed to use the isArmed flag as per comment by @mha1

@wvarty
Copy link
Copy Markdown
Collaborator Author

wvarty commented Jan 2, 2025

Nice! Thanks @pkendall64
I'll give it a quick re-test today with the O3 and then merge.

@wvarty
Copy link
Copy Markdown
Collaborator Author

wvarty commented Jan 11, 2025

Tested the latest changes with:

  • DJI O3 & Goggles 2

  • Permanent arming disabled

  • 1-wire UART connection between RX and O3 (just the tx pin connected to the O3)

  • Ranger Bling + Speedybee nano RX, both flashed with this branch.
    RESULT: Arming working correctly on ch5 (didnt check other channels for arming, but that should work too in theory) ✅

  • DJI O3 & Goggles 2

  • Permanent arming enabled

  • 2-wire UART connection between RX and O3 (both the tx and rx pins connected to the O3)

  • Ranger Bling + Speedybee nano RX, both flashed with this branch.

  • Ranger power on, so that it links to the receiver.
    RESULT: O3 armed automatically within 10s of connecting to the goggles, as expected ✅

  • DJI O3 & Goggles 2

  • Permanent arming enabled

  • 2-wire UART connection between RX and O3 (both the tx and rx pins connected to the O3)

  • Ranger Bling + Speedybee nano RX, both flashed with this branch.

  • Ranger power OFF, simulating the case where someone is using a completely standalone ELRS receiver as an O3 armer.
    RESULT: O3 armed automatically within 10s of connecting to the goggles, as expected ✅

@wvarty wvarty merged commit 64c721b into master Jan 11, 2025
@MadRC
Copy link
Copy Markdown

MadRC commented Jan 11, 2025

I can confirm this is working now as expected with O3, Arming and recording are working as expected with correct RF behavior and display messaging.

Note: I have found that sometimes the rx needs to be powered after O3 to work but this has not been consistent.

DJI O4 - Not Working - Not Required BUT

I have tested this with O4 and its not working at all, its not allowing arming and there appears to be no change.

Its worth Noting that this is not actually required for O4 as DJI have resolved the low power mode behavior and it now works as expected with full RF power available when not armed. But this feature still may be useful for some and its worth understanding why its not working incase future O3 update causes same behavior.

This is a great feature for the community and a big thanks to the ELRS dev team for implementing this based on feedback.

@wvarty wvarty deleted the permanent-dji-arming-option branch October 6, 2025 05:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement 🪄 New feature or request V4.0 🍔

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants