Skip to content

Conversation

@wvarty
Copy link
Collaborator

@wvarty wvarty commented Sep 12, 2024

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.
Screenshot_8

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.
Screenshot_7

In the LUA, under Other Devices, set the receiver Serial2 protocol to DisplayPort, 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.
Screenshot_9

With only the secondary receiver powered up, in the LUA, under Other Devices, set the receiver Serial protocol to DisplayPort.
Screenshot_10

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 DisplayPort as their output will send an arm signal 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.

@JyeSmith
Copy link
Member

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.

@JyeSmith JyeSmith added enhancement 🪄 New feature or request V4.0 🍔 labels Sep 12, 2024
}

// Use ch5 to check armed state
bool armed = channelData[4] > CRSF_CHANNEL_VALUE_MID;
Copy link
Collaborator

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

@eakDev
Copy link

eakDev commented Sep 21, 2024

TX: RM TX16s MK2 ELRs Version
RX: ER8 PWM Receiver

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.

@mha1
Copy link
Contributor

mha1 commented Sep 21, 2024

This PR is not part of 3.5. It wasn't merged yet and is currently tagged for V4.

@Pancronos
Copy link

TX: RM TX16s MK2 ELRs Version RX: ER8 PWM Receiver

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.

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

@wvarty
Copy link
Collaborator Author

wvarty commented Sep 29, 2024

Needs a rebase :|

@pkendall64
Copy link
Collaborator

I merged and fixed it for you.

Copy link
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'm not happy with putting arming knowledge back in the RX, but Mickey is doing some work around that, so...

@wvarty
Copy link
Collaborator Author

wvarty commented Sep 29, 2024

I merged and fixed it for you.

Love your work 💖

Copy link
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.

I cant test this... but Im sure Mads will 😄

@JyeSmith JyeSmith merged commit 3573a4b into master Sep 29, 2024
@JyeSmith JyeSmith deleted the dji-O3-arming branch September 29, 2024 21:22
frank26080115 pushed a commit to frank26080115/ExpressLRS that referenced this pull request Oct 19, 2024
* 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>
wimalopaan pushed a commit to wimalopaan/ExpressLRS that referenced this pull request Oct 22, 2024
* 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>
ot0tot pushed a commit to ot0tot/ExpressLRS that referenced this pull request Nov 22, 2024
* 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>
@3DRacer
Copy link

3DRacer commented Dec 5, 2024

Is that only for DJI O3 Device? Will it work with older DJI Air Units and Caddx Vista also?

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.

8 participants