APM serial port numbers on Navio 2

Hard to find out exactly but which serial port in APM corresponds to the various ports on the Navio2. Havent seen this simply explained anywhere.

I’m using an uart to s-port converter to get radio telemetry on my frsky x8d/ taranis (1. Setup · Clooney82/MavLink_FrSkySPort Wiki · GitHub) But no luck in sending the correct signal.

I’m using -c /dev/ttyAMA0 (UART) and in APM setting the serial_0 port up for the correct parameters.

Has anyone used this before or can point out my errors?


try serial_4 port!

So serial_4 corresponds to the UART port on the Navio 2? I’ll try.

The mapping is indeed a tad confusing. As a matter of fact I could not find a doc entry on the subject in ArduPilot documentation, either. We’ll fix it. Thanks for noticing! For now there’s a pretty good description here.

-C switch is SERIAL1

So, I suppose you can just change SERIAL1_PROTOCOL parameter to Frsky S-PORT in GCS while connected via Wi-Fi (-A udp:<ip>:<port>) and you’re good to go :slight_smile:

1 Like

so the juice from the meat is

serial_0 = uartA (always console)
serial_1 = uartC (normally telem1)
serial_2 = uartD (normally telem2)
serial_3 = uartB (normally first gps)
serial_4 = uartE (normally second gps)
serial_5 = uartF

really essential stuff, thanks for clearing that up. would be great if there were posts we could suggest to be added to the docs.

Couple of questions though. What does always console mean?
I should be using
-A tcp: -C /dev/ttyAMA0
would it make any difference of I used?
-C tcp: -A /dev/ttyAMA0

And as far as the UART port on the Navio2 is concerned is it bound to uartC or serial_1 and if not how is it changed?

these answers will really clear up how the navio 2 ports operate for me.


There’s a slight difference for UART ports. Default baudrate on serial_0 is 115200 whereas it is 57600 on serial_1. 3DR radios usually work on the latter. That’s why people usually go with -C switch with /dev/ttyAMA.

Added to the task tracker :slight_smile: Thanks!

So if I would use serial port 0 for telemetry and serial port 1 for geo-tag images on FLIR Vue Pro, it should look like: -C /dev/ttyAMA0 -D /dev/ttyAMA1 ?

Take a look at this table that @Wildtypitch (kudos once again) had made earlier.

So I guess you can use -C /dev/ttyAMA0 switch for Vue Pro as it expects 57600 baudrate Mavlink stream.

/dev/ttyAMA0 corresponds to a port soldered out on Navio 2 and named UART.

In order to use a radio for telemetry you’d need an additional UART (i.g. FT232 or CP2102 will do). After you hook up one, this will be identified as /dev/ttyUSB0.

To sum up, this will be something like -C /dev/ttyAMA0 -D /dev/ttyUSB0.

You can also use Wi-Fi for telemetry. This is way easier:

-A udp:<GCS_IP>:<PORT> -C /dev/ttyAMA0.

I hope, it’s clearer now.

1 Like

Can I use more than Serial 5?

I’m planning to use one telemetry, one emlid reach for RTK injection, one echo sounder and a LIDAR with serial output.

Since RPi has four USB ports, can I not use more than UART_F? In AP common serial options, a total of 8 serial ports inputs are supported.

Hi @Nyi_Nyi_Nyan_Lin,

Did I get correctly that you’d like to use more than 5 ports simultaneously?

1 Like

Hello @svetlana.nikolenko,

I’m sorry that I didn’t check this in earlier. Yes. Exactly. I would love to use/assign more ports simultaneously.

Thank you very much.

Hi @Nyi_Nyi_Nyan_Lin,

I believe the number of ports you can use simultaneously is restricted by the number of switch flags (A, B, C, D, E, F).

1 Like

Yes, I believe so, too. Is there any possibility that the dev team will work to enable this in the future?

Hi @Nyi_Nyi_Nyan_Lin,

We don’t have such plans for now. However, thank you for the request!