Skip to main content

u-blox GPS Baud Rate Configuration

Here is a problem that looks like a dead GPS module and is not one.

You buy a GPS module, use it on an ArduPilot build, and it works perfectly. Later you move it to a Betaflight quad — and Betaflight cannot find it at all. The wiring is right, the port is right, the module powers up. Nothing.

The cause: ArduPilot reconfigures the receiver's port to a faster baud rate — often 230400 — and that setting lives in the module, not the flight controller. It travels with the module. Betaflight only supports 115200 and below, so it is listening at a rate the module no longer speaks.

This guide fixes that with u-center, u-blox's own configuration tool, and a USB-to-TTL adapter. The same procedure sets a u-blox module to any rate you need.

This only applies to u-blox receivers

It covers modules built on u-blox chips — the MG-A01, M10G-5883, MG-902 and MG-903, the MG-F10-C, and the u-blox-based MA-RTK-AIR-F9P. The Unicore-based RTK modules use a different tool.

What you need

Software

  • u-center — u-blox's official tool. Recent versions all work; the screenshots here are from a current release.
  • A USB-to-serial driver for your adapter, if Windows does not already have one:

Hardware

  • A u-blox GPS module
  • A USB-to-TTL serial adapter
  • Jumper wires, or the module's own connector lead

Wire it up

Power straight through, data crossed:

USB-to-TTL adapterGPS module
5V5Vpower
GNDGNDground
TXDRXadapter transmits → module receives
RXDTXadapter receives ← module transmits

Wiring a u-blox GPS module to a USB-to-TTL adapter with the data pair crossed

Plug the adapter into the computer, then open Device Manager and find it under Ports (COM & LPT). Note the COM number — you will need it in a moment.

Windows Device Manager showing a USB-to-serial adapter under Ports (COM and LPT)

Nothing listed? Either the driver is missing, or the USB cable is a charge-only one.

Step 1 — Connect

You do not yet know what rate the module is running at, so let u-center find out.

  1. Open u-center.
  2. Receiver → Autobauding — switch it on.
  3. Receiver → Connection → pick your COM port.

Connecting to a COM port in u-center through the Receiver menu

When it connects, the status bar at the bottom turns green and blinks, and shows the baud rate it found.

Step 2 — Read the current rate

  1. View → Configuration View (Ctrl+F9).
  2. In the list on the left, select PRT (Ports).
  3. Read the Baudrate field and write the number down.

u-center Configuration View showing the PRT Ports page and the current baud rate

This is what the module is actually set to — the factory value, or whatever the last autopilot left behind.

Step 3 — Lock u-center to that rate

Autobauding is useful for finding a connection and unhelpful for changing one, because it keeps re-hunting while you are trying to make a deliberate change. Pin it down:

  1. Receiver → Autobauding — switch it off.
  2. In the toolbar's baud rate box, select the same rate you just read.

Selecting the baud rate manually in the u-center toolbar

  1. Press F6 to open the Packet Console. Messages should be scrolling past.

The u-center Packet Console showing NMEA messages arriving from the receiver

Scrolling data means a solid, stable link. Do not continue without it — a half-working connection is how configuration changes get half-applied.

Step 4 — Set the new rate

  1. Back in Configuration View → PRT (Ports).
  2. Change Baudrate to your target value — 115200 for Betaflight compatibility.
  3. Click Send at the bottom left.

Setting the target baud rate to 115200 on the u-center Ports page

The connection will now break. That is correct and it is the proof it worked: the module switched to 115200 the instant you pressed Send, and u-center is still talking at the old rate.

Step 5 — Save it permanently

Do not skip this. What you did in step 4 changed the running configuration only. Power-cycle now and the module goes straight back to the old rate — which is exactly how people end up repeating this procedure three times and concluding the module is faulty.

  1. Change the toolbar baud rate to 115200 so u-center reconnects.
  2. In Configuration View, select CFG (Configuration).
  3. Tick Save current configuration.
  4. In the Devices list, select all entries, 0 through 4 (they highlight blue).
  5. Click Send.

Saving the configuration to non-volatile memory in u-center CFG Configuration

Selecting every device entry writes the setting to whichever non-volatile memory the module actually has, without you needing to know which that is.

Step 6 — Verify with a cold start

The only test that means anything is one that removes power completely.

  1. Close u-center, unplug the adapter, and leave it unplugged for a moment.
  2. Plug it back in and reopen u-center.
  3. Set the toolbar baud rate to 115200 directly — do not use Autobauding, because it would connect at any rate and tell you nothing.
  4. Connect, then press F6.

Verifying the saved baud rate after a cold start, with data scrolling in the Packet Console

Data scrolling at 115200 after a full power cycle means the change is saved. Fit the module to the aircraft.

Easily confused points

Baud rate lives in the module, not the flight controller. This is the whole reason the problem exists: swapping the module to another aircraft carries the old setting along with it.

Applying and saving are two separate actions. The Ports page applies; the CFG page saves. Both are needed, in that order.

Losing the connection after Send is success, not failure. It means the module changed rate.

Autobauding is for finding, not for setting. Turn it off before changing anything, and do not rely on it for the final verification — it will connect happily at the wrong rate and hide a failed save.

Betaflight's 115200 ceiling is a real limit. No configurator setting works around it; the module has to be brought down to meet it.

ArduPilot will do this again. Left on automatic configuration, ArduPilot may raise the rate the next time the module is fitted to an ArduPilot aircraft. That is normal and good for ArduPilot — just expect to repeat this procedure if the module later moves back to Betaflight.

Troubleshooting

SymptomWhat to check
No COM port in Device ManagerDriver not installed, or a charge-only USB cable.
u-center connects but no dataThe data pair is not crossed — adapter TXD to module RX, adapter RXD to module TX.
Autobauding finds nothingCheck 5 V is actually reaching the module, and that both ends share a ground.
Rate reverts after a power cycleThe CFG save step was missed, or not all device entries 0–4 were selected.
Connection drops right after SendExpected. Change the toolbar rate to the new value.
Betaflight still cannot see itConfirm the saved rate really is 115200 with a cold start, then check the port assignment and GPS feature in the configurator.

Written and maintained by the Robofusion engineering team.