Got Ublox F9P working with FJ Dynamics and Trimble

Morning all

Managed to get RTKBase working with FJ Dynamics and the Trimble on a Case

Distance between me and the tractors was 18 miles, and it’s holding correction pretty well by the look of it !

Message set that worked on FJD was 1006,1008,1033,1230,1075,1085,1095,1125
The set that worked on Trimble was 1006,1008,1013,1033,1077,1087,1097,1127,1230

If you want to try it on your tractor, (IP:, port 2101 and mount point BALLOCH. That’s for the feature set working on the FJD. The Case is working on port 2101, mount point BALLOCH, username and password both “aaaa”. That’s self-hosted just now, so if my IP changes, just look up “” for the new IP.

Hope this helps someone out - a right fight I had trying to work this out!


Did you have to insert some data into the stream for the Case/Trimble stuff to work?

For Trimble, the F9P based Emlid makes this super easy.

Just check the 1008 box and you are fixed and ready to go, with free caster service as well.

No, nothing to insert. I did change the string in to be “TRIMBLE BD970” but I don’t think that was necessary. Ran out of battery in laptop before I could test completely tho.

Thanks, that’s really useful - I’ll take a look at that later!

Perhaps easier with Emlid, a matter of taste, checkboxes against a textual definition of messages. But it comes with a price compared to F9P and Stefal’s RTKbase. RTKbase also does not hide any of the RTKLIB capabilities. No need to wait for a change like 1008 being added in the past.

1 Like

EMLID M2 module is only $270CDN more than a ardusimple F9P development board, but initial power up to working NTRIP is about 20min, no additional hardware or development needed with M2. Its way easier to set up a base with emlid. Also you can check your base from the web interface on your network, no need to be tethered to it with a usb cable to your computer.

If you actually want to line up with the local datum, its also much easier to record and submit your data for PPP.

I use development boards for rovers, but for base there is nothing more streamlined than EMLID.


Seems I was assuming a different Emlid product (Reach RS2). But $270 more is about twice the RTKbase price. Not an obvious choice between price and easy installation.

Not sure about all the benefits you list. Stefal’s base also records data for PPP if needed, just a tick. It is possible to remotely connect to the F9P via RPi on the Stefal base approach.

We all have different preferences, good to have information about all decent products. Everybody can then pick up the best match for personal preferences.

1 Like

I like the idea of it being easy to start different casters with different message types (tho I’m hoping not to - still analysing what’s different between Soil Essentials and what I got working) - not an ideal solution, but with full code access in rtkbase, I can get it done.

I have an F9P as a base for my Trimble screens but am using an arduino to inject the 1008 message. One thing I haven’t been able to figure out yet is why my number of satellites bounces around on my Trimble screen. It continually jumps between 7 and 12 satellites but I never lose connection. I feel like it’s the difference between using GLONASS satellites vs not in the solution. I’m sending all the same messages you are from the F9P but at slightly different rates. 1006 and 1008 every 5 seconds instead of 10 but I am also sending the 1230 message every 5 seconds. Maybe the 1230 is my problem??

In your trials did you ever run across this issue?

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?