Connecting Septentrio RTK3B to PX4

I have followed the documentation for the mosaic-go

There are some differences I have found with the RTK3B

-the 6 pin jst connector has different pinouts on the RTK3B
-the jst socket is com3 on the RTK3B, it is com1 on the mosaic-go

I adjusted the instructions for these differences but it still doesnt work. This involved connecting com1 from RTK3B instead of the 6 pin JST connector.

On line 203 of this:

I think it shows the setup of the outward SBF streams from the mosaic. I have copied these manually but no joy. When I connect to the mosaicX5 with the web application, it doesnt seem to set up new SBF streams automatically.

Can I use an NMEA message that the PX4 will understand? If so, which NMEA messages is the PX4 expecting?

Could I just set the SBF outputs manually on COM3? This seems like it would be the best solution, but I can’t seem to get it to work

Is there a downside to using NMEA over SBF? There must be a reason to have a new driver supporting SBF if this is important.

Any help much appreciated!

@SeppeG @rroche Thoughts on this or others we might ask?

In particular should this work using SBF driver we have now or does it make assumptions the RTK3B might not meet? We don’t say this board would work, but it would be good to understand why not.


I have personally not worked with the RTK3B board, so I cant say the same auto-config will work. But you can definitely disable the auto-config and set the output stream manually with the Septentrio web-interface to

setSBFOutput, Stream1, COM3, PVTGeodetic+VelCovGeodetic+DOP+ (for Heading only: +AttEuler+AttCovEuler), msec100

(dont forget to save the settings for startup)

then it should work.

You should also be able to use the NMEA GPS (SBF is lighter and has custom fields specifically for Septentrio receivers), these are the packages you need to provide:

//  check if we got all basic essential packages we need
	bool _TIME_received{false};
	bool _POS_received{false};
	bool _ALT_received{false};
	bool _SVNUM_received{false};
	bool _SVINFO_received{false};
	bool _FIX_received{false};
	bool _DOP_received{false};
	bool _VEL_received{false};
	bool _EPH_received{false};
	bool _HEAD_received{false};

If you keep having issues, I would suggest raising a ticket with Septentrio Customer support