NMEA Output streams from ArduPilot

Ardupilot has a parameter NMEA_MSG_EN that allows emitting NMEA $PASHR sentences. Where do these messages get output by default? Is there a way to transmit these messages to a particular UDP port?

It seems like the “NMEA Injector” is about setting up messages in the other direction - from an NMEA device to ArduPilot.

Hi @o.o,

I’m unsure about UDP port output, but you can try searching the parameters for “NMEA Output”, to see the options it’s at least intended to work with. I’m also unsure whether NMEA output functionality is compiled in by default, which may need to be checked (and could depend on the flight controller board you’re using).

That is correct - the BlueOS NMEA Injector is an inputting tool.

Thank you for your help. Aside from setting NMEA_MSG_EN. I had to set some NET_* options.

In my case:

NET_ENABLED = 1 to even see the networking config I needed to set on the parameters page.

Then I was able to set up TCP server with:

NET_P1_TYPE = 4 (TCP_SERVER)
NET_P1_IP0,NET_P1_IP1,NET_P1_IP2,NET_P1_IP3 = 0
NET_P1_PROTOCOL = 20 (NMEA Output)
NET_P1_PORT = 8042 (an arbitrary TCP port number)

It also seems to work to to set NET_P1_TYPE = 0 (UDP_CLIENT) and NET_P1_IP* to the destination IP address, though a TCP server fits my needs better.

1 Like