Got Ublox F9P working with FJ Dynamics and Trimble

If your not losing connection I would not worry about the 7-12 satellites, the satellites are in dynamic orbits and constantly on the move. They get cut off by the horizon only to have new ones move into view behind them. There are only 3 stationary orbit GPS satellites and they are used for WAAS, so they do not matter for RTK either.

The only odd thing about trimble is the receiver sometimes will be capable of using the satellites, register them as in view, but will not actually use them because they are not… Unlocked.

Thanks for the reply. Because it happens every couple seconds I figured it might be something with the frequency of RTCM messages being sent or how they are getting through the arduino. My only concern is we farm around a lot of trees and specifically unlocked GLONASS on our displays to ensure we have access to more satellites. When using mobile corrections through our states DOT CORs network it’ll lock on 12-15 satellites and rarely change. Recently moved to the F9P base as the CORs network has been less reliable lately.

Is this arduino running RTKLIB or some “simpler” program to just insert 1008? I was wondering if you have the -TDAJ=1 configured for RTKLIB.

Sounds odd if the number of satellites changes between 12 to 15 very frequently, every few seconds unless perhaps if this is under strong foliage. I cannot see how your RTCM message stream could cause this. Most of the messages are needed only once, 1004/1012 or the equivalent MSM messages should come every second but a loss for several seconds should not make any visible difference.

By the way, is this an old Trimble rover that only supports GPS and Glonass? Or is the base configured for the two constellations only? With four constellations under open sky you should see many times more satellites.

My mate’s Trimble is the same but it still holds a good line.

If it’s any interest folks, I started looking at the outputs and comparing them - Soil Essentials appear to have changed what they’re outputting, unless I’m very much mistaken, it was a much simpler subset the other week. The “working” columns are what I found to work, compared to what my mate was using on the same devices from commercial providers. He was using Soil Essentials on the FJD, hence “Working FJD”.

Yes, I am using RTKLIB to parse the corrections. Whenever it sees a 1006 message it is inserting a blank 1008 message. All other messages are simply being passed through.

The rover is a Trimble FM750 with GLONASS unlocked. As I said, I think it’s something with my GLONASS corrections as the number of satellites it’s bouncing between would be the difference between having GLONASS and not. We previously did not have GLONASS unlocked and would be in the 6-7 satellite range with RTK Fix and after upgrading to GLONASS we now see 12-15 satellites. The jumping is pretty random but can be every couple seconds. Could some messages be getting hung up or corrupt through the Arduino? If for some reason my 1084 message doesn’t make it through every second but my 1074 does would it possibly do this?

I’m not sure what the -TDAJ=1 config is. I’ll need to look into this.

So, after all this, I deployed another base station at my mates, left rtkbase on the defaults and … it works on FJD and Trimble.

Serves me right - trying to be too clever for my own good I reckon, before I’d come across rtkbase, I had sniffed the two providers for FJD and Trimble and thought “OK, so that’s what I need then”. And it turns out rtkbase should have been left to its own devices.

I’ll write up a guide for how to deploy rtkbase and the zed-f9p, the more of these things casting the better. Still need some other machinery to try it out with tho!, the mount points are BALLOCH and BAYFIELD.

The default messages are: 1004,1005(10),1006,1008(10),1012,1019,1020,1033(10),1042,1045,1046,1077,1087,1097,1107,1127,1230

I also had opportunity to test it against John Deere, and… didn’t work. But it works on 1004,1006,1008,1012,1013,1019,1020,1033,1045,1046,1230 fine. It appeared to keep dropping packets when MSM* data was present but without it it was quite happy.

So that’s John Deere, FJ Dynamics and Trimble working at the moment. Progress, slowly.

1 Like

My topcon screen also works with the rtkbase from stefal. It runs the following messages: 1005(10), 1077(1), 1087(1), 1097(1), 1127(1), 1230(10) and the topcon screen connect through I’ve seen it counts 30 sattelites. Works like a charm…


I’m unable to get something similar working. I’m trying ublox F9P base sending corrections 1005, 1077, 1087,1230 over xbee, reading in with ESP32, injecting 1008 message after 1005 and sending out to Trimble ag372 via RS232 adapter on port C
And my receiver says no signal detected…
Wonder if you can tell me something I might be missing here ? I’m all new to all of this but I’m willing to try anyway maybe I can save on RTX subscription next year

Try MSM4!!!
1074, 1084, … instead of 1077, 1087…!!!

1 Like

Is it RTK unlocked?

MSM7 definitely works with the 372. That’s what I use. What do you mean it says “no signal detected?” Where does it say this? When you go to the RDI interface (on a Pro 700 that’s Diagnostics->RDI) what does it say? Usually it will say CMR A something, which indicates the age of the RTCM messages it is getting from your base station. If the age is between 1 and 2 you know it’s seeing the base station messages at least. And of course is your Port C baud rate set to the same thing as your ESP32?

I’m not real familiar with the 372s but do recall a 252 I had years ago would only allow input of correction data on certain ports. Do you use AgRemote to change the port settings? If so, make sure when you change the input to RTCM it remains unchanged after you power cycle your 372 or disconnect AgRemote and re-connect. Not to state the obvious but also make sure your baud rates align.

You can make sure you are getting clean RTCM data through your device that is inputting the 1008 message by utilizing a program called SNIP. It’s free to download and you can use a USB to serial adapter to your computer to read a serial stream and view the RTCM data in their RTCM viewer. I initially had some issues with mine and this helped me see exactly what was coming through my arduino where I was injecting the 1008 message.

Last thought…do you have an NTRIP client stream where you could input CMR data to ensure the 372 is actually receiving the data? I think through SNIP you can connect to available streams all over the world. You could potentially use any of them that have CMR data and push it to your 372. You obviously wouldn’t want to use it for steering but it would be a way to check that your 372 is receiving data.

Where are you located?


Ok I’ve downloaded SNIP connected it to my ESP32 usb port and if I look at Raw HEX data then yes it’s streaming but when I go to “show in RTCM3 viewer” there’s nothing, I’m somewhat confused the arduino sketch on my ESP32 I copied from

and then modified that a little for example serial communications

If the 372 is unlocked for RTK? I’m assuming yes because I have 5 of these receivers and this is the only one that has “RTK” option in “correction type” under settings. I asked the case ih tech guy and he couldn’t give me a quick answer

Under RDI-CMR it stays at 0% which makes sense if the data is seemingly not clean data

My Receiver settings are same as this guy is showing it in this video

Yep my baudrate is 38400 on ESP32 same as on the receiver

I’m from San Pedro, Paraguay

My whole idea is based on Michael torries project

At this point I’m not sure what’s wrong because I stack the xbee module on a ardusimple rover, I get a fix quickly, put it back on ESP32 and the messages seem to be incomplete


Is the Trimble configured for CMR? That is Trimble default language, your F9P must be giving RTCM 3.x.

Quick thought….are you going straight from the esp32 to your computer or 372 or are you running it through a logic converter? I’m willing to bet you have 3.2TTL logic from your esp32 that needs converted to regular serial that your 372 or computer can read.

I use these. Let me know if the link doesn’t work.

HiLetgo 5pcs RS232 to TTL Converter Module COM Serial Port Board MAX3232 MAX232CSE



It’s a bit odd that SNIP isn’t decoding anything coming from your ESP32. Not sure what to say there. You should see valid RTCMv3 packets. Which serial is your input and which is your output on the ESP32?

As for the ESP32 stack are you converting the serial output to RS232 with a converter? The ESP32 speaks TTL serial only, which is 3.3v as @EricLit says. The 372 requires actual RS232 signals. I use a TTL to RS232 converter for mine. Any that can handle 3.3v will do. Doesn’t matter if you use DTE or DCE adapters, although the pinout for TX/RX is reversed on the one vs the other. DTE (male pins) RX is pin 2 and TX is ping 3 on the DB9, but on the DCE (female pins) it’s opposite.

1 Like

Ok I found the problem, it’s getting corrupted over the radio link, I ended up connecting the ESP32 directly to the ardusimple base on UART2 and then I saw the messages, 1 thing I learned if SNIP can’t decode something on the first run then I had to kill and restart SNIP because if I just disconnect and reconnect it’s not even trying, so that toke me a long time to realize

If I know about the serial conversion? yes I have the same MAX3232 chip

One thing I can’t figure out why these Xbee SX radios can’t do a better job, has anyone dealt with this problem already?

I connected everything directly to the 372 and immediately got a fix, it works very nicely except it’s only getting 9 or 10 satellites, with RTX I get 14-16, I’m wondering if I can add a message to get more sats?
Currently I’m sending 1005 1008 1077 1087 every 2 seconds and 1230 every 5 seconds

Thanks Eric for telling me about SNIP it’s been very helpful to identify the problem with it, it took me a while to learn how it works but now it’s a game changer
But really thanks to everyone I would’ve giving up probably if you guy’s didn’t step in to share some experience

I need corrections over 15 km radius with hills and unstable Internet, what would you guys recommend? Setting up a couple bases or is there a radio solution for this? Maybe a 20m pole? So far I’m not overly impressed with these Xbees, they’re advertised to cover 18 km but they hardly do 1 km…
I’m willing to spend a couple grand as long as it works

Is this the 1 watt SX pro? I had mine up about 25 feet and could reach about 5 miles pretty well, but terrain got in the way quite a bit. If you’ve got hills you need to have height. The higher the better. 20m would be more than enough for my terrain, but I don’t know what your hills and trees are like.

I have my antenna up at about 30 feet, enough to get line of sight to my whole farm, but the coax cable I made up for it seems to have problems as I cannot get signal more than half a mile. So either my old 9Xtend transmitter module has issues (very possible as it’s quite old and I do have a newer SX Pro to try), or the cable is not good. I used to get good range with it.

The 372 lets you set up RTX as a backup. If you get an RTK fix, it will let you fall back to RTX for 15 minutes at a time if the RTCM signal is blocked or taken away for short periods of time. It works transparently.

Hello everyone,

I’m located in Slovenia. After Septembre 2022 I’m having problems connecting my ag372 to my RTKBASE mount name PRIME.
I didn’t change anything. After talking to the creators of RTKBase someone mentioned that I should check the Firmware and update it to the latest one. Has anyone expirience similar problems?



You need email.

1 Like