I am trying to switch from a iNav/F-35/DJI to ArduPilot. I have the latest stable Ardupilot/Plane for F-35 loaded on the F-35 and in Mission Planner it tips when I tip the F-35 and the aileron servos move in a reasonable way and GPS works. However, I can not get the “Radio Calibration” to show any movement when I move the sticks on the DJI FPV controller. I had it communicating with iNav loaded, so I think my cables are fine. I can’t find any documentation that is specific to ArduPilot /F-35/DJI-FPV but have looked over both the F-35 and the DJI documentation. I have tried setting the SerialProtocol to 33 on several different serial ports but none have made it work. Is there anyone who has used DJI and F-35? What serial port number and settings did you use? I am confused that the “default UART order” does not have SerialN going to UartN. How do I check that my order is the same as in the default in the wiki? My notes so far are at http://www.letsfly.ai/2021/06/switching-from-inav-to-ardupilot.html
The DJI documentation says to set MSP_OPTIONS=0 but this is not available in “stable”. I upgraded to “beta” or 4.1 and then I can set this. But my remote is still not communicating with the flight controller. Any ideas of what else to try?
I don’t have a dji transmitter, but if you are trying to get rc into the flight controller are you using an air unit?
Yes. We have the DJI Air Unit (original not V2). It has nice digital video and good range on the remote and it is a simple package (not a lot of wires and connections). With iNav we had this same hardware working, the remote sticks were seen as RC inputs to the Flight Controller. So it seems like it has to be some configuration problem.
So the air unit outputs SBUS (hdl) on a separate pin on the air unit and that should go to a free RCIN port or another uart with protocol 23. The MSP is for OSD.
Just found this.
Thanks. I did not understand that it would be two different serial ports for the connection. That is a big help.
Yes, I have seen that F35 page but it is not clear to me what serial port number I should be using for the SBUS with the RC info coming from the DJI Air Unit to the F-35.
We also have this for the DJI but now guess this is just OSD on DJI:
The key part seems to be:
We know the GPS is on serial port #3. We believe our cable is good (worked on iNav).
Not sure of the serial port numbers for RC in or OSD out.
So we thought that we should be able to just go through the other serial ports and try 23 for
each and find one where the remote worked. We did not find any working.
We also tried going through all other serial ports putting 33 and never saw any extra OSD info on the goggles.
Not sure why we can’t get anything working either way.
Do we need to put something in SerialX_Options that is specific to SBUS?
Any ideas how to proceed?
So the serial ports in the doc correspond to the image.
- SERIAL0 = console = USB
- SERIAL1 = Telemetry1 = USART1 (= BLE port on orig. F-35)
- SERIAL2 = Telemetry2 = UART5 (= M-RX port on orig. F-35)
- SERIAL3 = GPS1 = USART2 (= GPS port)
- SERIAL4 = not used
- SERIAL5 = USER = UART4 (only TX4 pinned out, TX-pin on orig. F-35’s VTx port)
- SERIAL6 = USER = USART6 (only TX6 pinned out as “SPO” with hardware inverter, TX-pin on orig. F-35’s F-RX port)
USART3 RX used as RC input (F-RX port’s Rx pin on orig. F-35)
USART 1 = rx tx 1 = telem2
Looks to me if the image is wrong as it says it should be telem 1
You should be able to plug into usart3 rcin and it will pick it up, I did see some thing about speed setting for the dji Rc as hdl is not sbus but some sort of fast sbus. So if you can configure it to normal on the dji transmitter and it looks like you should be able to then it will work.
So we set serial2 to 115 and protocol=33 and are now able to get OSD in the goggles.
I am puzzled because I am sure we tried that before and it did not work.
We have set serial1 protocol to 23 and tried to several different speeds and also inverted option, but it has not worked yet. Sometimes the displayed positions in the remote calibration page have changed, but never as we were moving the sticks. It is really puzzling.
We are sort of half way there…
Have you changed the hdl setting for the DJI RC?
Not sure what you mean by “hdl”. I have not changed any settings inside the DJI Air Unit. You said something about slowing it down, but since I have had this same F-35 talking to this same DJI Air Unit over this same cable with iNav, it seems like I should be able to talk at whatever speed the DJI is at if I get the settings right in ArduPlane. Is that what you are talking about?
OK so the output from the air unit is HDL protocol, which I believe is a faster version of sbus. I have read a few posts after googling that you can change the protocol to standard sbus, through the goggles maybe. I don’t know I don’t have one. But it would be worth searching for it.
I found this post regarding the hdl https://forum.dji.com/thread-198403-1-1.html
We tried changing changing the protocol settings in the goggles and neither “normal” or “sbus baud fast” worked for us.
Any ideas of anything else to try?
Found the last problem!
When we took the top off the F-35 to connect things to get into DFU mode I put one cable into the wrong connector! Once it is plugged into the right spot on the F-35 it works fine (as it did in iNav).
Thanks much for your help!
Glad you got there in the end