On my Navio 2 running Arducopter 3.4 I’ve been trying to feed telemetry to an osd as well as to a gimbal. In order to do this I need at least three telemetry streams, as one of them goes to the ground station. Because this didn’t work as I tried initially, I did some tests:
start AC with -A udp:ip:port -> gcs works.
start AC with -A udp:ip:port -C /dev/ttyAMA0 (SR1 speed 57) -> gcs and osd work.
start AC with -A udp:ip:port -D /dev/ttyAMA0 (SR2 speed 57) -> gcs works, osd doesn’t.
start AC with -A udp:ip:port -B /dev/ttyAMA0 (SR3 speed 57) -> gcs works, osd doesn’t.
(protocol is always Mavlink 1, configured in Arducopter)
Don’t really know… but is supposed to behave like this? If yes, what did I miss?
Is there maybe someone who could test an osd with option -D or -B on their Navio 2? Or maybe an idea, thought, anything? If the solution to my problem is obvious, please tell me anyways. Also if I didn’t manage to put my problem in the right words in order for you to understand it, please tell me as well.
Any input would be much appreciated.
You can select Mavlink for SERIAL5_PROTOCOL and select appropriate speed for the device. After that launch ArduPilot with -F switch i.e. sudo ArduCopter-quad -A udp:<ip>:<port> -C /dev/ttyAMA0 -F /dev/ttyUSB0.
Thanks for your answer.
I didn’t try serial 4 (E) and serial 5 (F) since there are no parameters for them available in Mission Planner.
If I launch ArduPilot as you suggested, data is transmitted on serial 5 (F). That basically works. But I need to tweak the SR5_xxxxx parameters, which are not available. How do I configure what is coming out of serial 5 and even more importantly how often these things are updated?
Well, there are SERIAL5_xxx parameters, which set speed and protocol of the corresponding serial port.
But as you can see on the screenshot I attached, regarding serial 4 as well as serial 5 the SR4_xxx/SR5_xxx parameters are missing. So I can configure which protocol is used at which speed, but I’m not able to define what data exactly is transmitted and how often it is updated.
I am facing the same problem as @finst. Right now I have a Navio2 mounted on a Raspberry3 and I have integrated a Lidar and a gimbal. Following this post I set the three output streams as:
-A for udp connection with the GCS.
-C for serial connection with the gimbal (through /dev/ttyUSB0)
-D for serial connection with the Lidar (through /dev/ttyAMA0)
Then in the GCS i set the SERIALX parameters correctly (I know they are correct because I had tried the interconnection of each device separately streaming only to -C port) and the only device that was working was the gimbal.
Then as @george.staroselskiy suggested I configured the second output port to be SERIAL5 on APM and forwarded it to /dev/ttyAMA0 and it worked perfectly.
My question is what are the -D and -E outputs made for, since we can’t use them. I know that -A is preconfigured to be used as console and -B for primary GPS, but let’s say I want to integrate the Reach RTK to the drone along with the gimbal and the Lidar, how would I do it if I can not stream (nor receive) on more than two ports? Is there any way to have more than two devices connected?
@Nacho_Carnicero good to know I’m not the only one having this issue. At least then this problem is not specific to my hardware. Maybe interesting to other folks having this issue:
after @george.staroselskiy suggested using option -F I discovered that despite there are no SR5_xxx parameters, serial 5 (aka -F) responds to the settings made in SR3_xxx parameters. So my configuration works with the startup command “sudo ArduCopter-y6 -A udp:: -C /dev/ttyAMA0 -F /dev/ttyUSB0” where an osd is connected to the uart port and the gimbal is connected to an usb to uart converter. The parameters necessary for osd are configured in SR1_xxx parameters and the parameters for the gimbal in SR3_xxx parameters. One strange thing though: In this configuration the -C option only outputs data if the speed for SR1 is set to 115. But since the osd supports serial speeds up to 115 kbit/s, its totally fine in my scenario. But your milelage may vary. Maybe this helps.
Guys, thanks a lot for pointing out this misbehavior. @ivan.smirnovfixed the issue and it was already backported to AC-3.4.3 which you can download a stable binary by following our docs or wait for an upcoming upgrade.
From now on -D switch works as well as others.