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:
GPS_TYPE=1(AUTO)
SERIAL3_PROTOCOL=5(GPS)
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.
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
START
PC6 USART6_TX USART6
PC7 USART6_RX USART6
… #Omnibus F4 V3 and later had hw inverter on UART6 #Overide it to use as GPS UART port
PC8 SBUS_INVERT_RX OUTPUT LOW
PC9 SBUS_INVERT_TX OUTPUT LOW END
How do I override to use the GPS on UART6? Should I just comment the lines for PC8 and PC9, like below?
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:
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… ) 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:
SERIAL3_PROTOCOL=5
SERIAL3_BAUD=38
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.
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.
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.