[SOLVED] Omnibus F4 Pro GPS on UART3 not working. Hardware is fine


I cannot get the GPS to work on UART3, Mission Planner shows “No GPS”.

The hardware setup is fine since Betaflight was showing a solid GPS fix before I flashed the board with Ardupilot 3.9.0.

I have the following parameters in Mission Planner:
SERIAL3_BAUD=9(9600) - I tried all values here.

The GPS module is a BN-220 (M8N UBLOX).

I disabled all Compasses since UART3 is shared with I2C, and I thought that leaving external compasses enabled could create conflicts with the GPS in UART3.

Any ideas?

Many thanks!!

Ardupilot can’t currently do shared ports so I would guess that UART is locked as I2C.

The hwdef.dat tells you what all the pins will do, https://github.com/ArduPilot/ardupilot/blob/master/libraries/AP_HAL_ChibiOS/hwdef/omnibusf4pro/hwdef.dat

You could either move the gps to UART1, use UART6 after disabling the inverter in hwdef.dat (line 84) or add UART3 to the hwdef.dat and remove the I2C functionality.

also the hwdef.dat say this:
“PPM” solder pad/resistor should be soldered and “S-BUS” resistor/solder pad removed
Overwise UART1 or UART6 or RCIN will not work

Hi Pete,

I will try to move the GPS to UART6 following your instructions.

It will take me some time since I never compiled the firmware before.

I’ll post the results here.

Many thanks!!

Move the GPS to UART6 is OK, has been tested and tested.

The default hwdef.dat file contains these lines:


#Omnibus F4 V3 and later had hw inverter on UART6
#Overide it to use as GPS UART port

How do I override to use the GPS on UART6? Should I just comment the lines for PC8 and PC9, like below?


Many thx!

yes, just comment them out

Would suggest setting SERIAL3_BAUD=34 as the default GPS uart speed is set to this on ublox chipset. Ardupilot will switch it to 115200 and communicate at that speed after initialization. It works fine on UART3 for me using latest ChibiOS firmware on the same board as you.

You can also try using GPS passthru mode to see if you can connect ublox app to the GPS to check configuration. Ctrl-F for the Temp screen has an option for the passthru mode.

This is the port which corresponds with Serial3_ parameters:

SOLVED: The GPS is now working on UART6!

According to the documentation here the default firmware expects the GPS connected to UART6. So instead of compiling a custom firmware (actually I tried but could not get past the compiling errors…:slight_smile: ) i just moved the GPS to UART6 and used Mission Planner to flash the default firmware (3.9.0 stable). Mission planner immediately showed “No Fix” indicating that is was receiving GPS data and waiting for it to acquire the satellites.

@pauljatherton my understanding is that RX6/TX6 represent SERIAL6 not SERIAL3 (the documentation on this boards are just terrible isn’t it?)

It is labelled UART6 as you suggest (see my image above), but in Ardupilot this is using the parameters:

On my build (latest Omnibus F4Pro firmware) I have only this parameter configured for GPS, and works fine. You should see the same if you check in mission planner.

@pauljatherton is right SERIAL3 is the UART6 for gps.

In the middle of my first build. Trying to also use the BN-220 on serial 3, but i can’t see the parameter to disable i2c. The documentation for the omnibus f4 says to " by setting BRD_ALT_CONFIG to 1, the external I2C connection is disabled". Searching in the “full parameters list” in mission planner gives no results for this variable. Not sure what to do.


Update to V4.0.6 beta Arduplane 1st. Check here Line 32:

That update fixed it. Thanks for the help. But I’m still having GPS issues. I have triple checked the wiring on the GPS. Is it plug and play or do i have to configure the GPS in mission planner? (To my knowledge i have disabled I2C, and it looks like I have when i look into the compass section of config).

EDIT: Reflashing the omnibus for a second time with the 4.0.6 ardupilot did the trick.