-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Arm DJI O3 directly from an ELRS receiver #2926
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
Conversation
|
Killer feature for the community and a nice write up 💪 I wish I knew more about the protocol and what the O3 requires, so for now Ive just left some basic comments. |
| } | ||
|
|
||
| // Use ch5 to check armed state | ||
| bool armed = channelData[4] > CRSF_CHANNEL_VALUE_MID; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Bringing back the arming channel on the RX Sad trombone
|
TX: RM TX16s MK2 ELRs Version Serial2 Protocol DisplayPort does not exist from the options, this is not a help section but, this is new and can't find other references. My goggles still show low power mode. |
|
This PR is not part of 3.5. It wasn't merged yet and is currently tagged for V4. |
If you want to try it go in configurator on top bar "GIT pull request" and select Arm DJI O3 directly from an ELRS receiver #2926 |
|
Needs a rebase :| |
|
I merged and fixed it for you. |
pkendall64
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not happy with putting arming knowledge back in the RX, but Mickey is doing some work around that, so...
Love your work 💖 |
JyeSmith
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I cant test this... but Im sure Mads will 😄
* Initial commit - WIP - more to do * Allow on serial1 * Cleanup * Remove unneeded msp msgs * Use device duration now that it works --------- Co-authored-by: Paul Kendall <pkendall64@gmail.com>
* Initial commit - WIP - more to do * Allow on serial1 * Cleanup * Remove unneeded msp msgs * Use device duration now that it works --------- Co-authored-by: Paul Kendall <pkendall64@gmail.com>
* Initial commit - WIP - more to do * Allow on serial1 * Cleanup * Remove unneeded msp msgs * Use device duration now that it works --------- Co-authored-by: Paul Kendall <pkendall64@gmail.com>
|
Is that only for DJI O3 Device? Will it work with older DJI Air Units and Caddx Vista also? |
Introduction:
If you use the DJI O3 system on a craft that doesn't have a flight controller onboard, then you probably know that you need some sort of external device that can arm the O3 to kick it out of low power mode.
There are some good existing solutions that will handle this, but they typically require external hardware, and at that point, are you really much better off than just adding a small FC to handle the arming?
But what if you could use your ExpressLRS control link to send the O3 and arming signal instead?
Introducing the new Display port output option for ExpressLRS receivers, which will send the MSP DisplayPort arming signal to the O3 whenever channel 5 goes HIGH, and it will also disarm the O3 (to keep it nice and cool) when ch5 goes LOW.
Setup:
There are a couple of different ways that you might want set this up:
The most obvious use case is that you already have a PWM receiver on the craft, and you want to use that same receiver to arm the O3.

To set this up, jump into the webUI for the PWM receiver and find a PWM channel that supports Serial2, and set it to

Serial2 TX.In the LUA, under
Other Devices, set the receiver Serial2 protocol toDisplayPort, and wire the signal pin of the PWM channel to the O3 UART rx pin. Make sure you also have a common GND between the receiver and the O3.The alternative approach suits cases where you have already used all the channels on your PWM receiver, or if your O3 is not physically co-located near your receiver. In these case, you may want to add a secondary receiver to the craft, which uses the same binding phrase as the first receiver.

With only the secondary receiver powered up, in the LUA, under

Other Devices, set the receiver Serial protocol toDisplayPort.Wire the tx pad of the secondary receiver to the O3 UART rx pin. Make sure you also have a common GND between the receiver and the O3.
Access the webUI for the secondary receiver and turn telemetry off. This is so that the two receivers don't fight for the telem connection.
Usage:
Channel 5 is the arm/disarm channel in ExpressLRS. When channel goes HIGH, any receivers that are configured with
DisplayPortas their output will send anarmsignal to the O3. To use / test this feature, simply wire it up, power it all up, and then arm using ch5. You should see the O3 jump from low MBits to high MBits as it exits low power mode.Disarming using ch5 will send a disarm signal to the O3. It takes 5s+ for the O3 to drop back to low power after disarming.