Simple F9P (rtk) howto
Posted by grin on 14 November 2021 in English. Last updated on 21 November 2021.Simple uBlox F9P howto
I got a question about specific usage of the F9P from zero to hero, so, here’s some summary from the beginning.
It is simple and almost hassle-free.
I got my board from uBlox directly but I guess it works the same with all the F9P boards. The board came with an external antenna (if you don’t have that you definitely have to find a good one, makes a lot of difference), and an USB-B cable for power.
As for the hardware, you need:
- power source; I am using a 10 Ah powerbank which is enough for 10+ hours (probably even more)
- a box, to put the board into, and preferably stable within, either by screws or some foamy stuff. The connectors are said to be sensitive, so try to find a way to relieve any stress on them.
- for the external antenna you should find a way to keep it at the top seeing the satellites. My antenna has a strong magnet and I got a metal plate so I usually put the antenna outside of the top of my backpack sticking to the metal plate inside.
- You need a mobile phone with bluetooth. Preferably Android, since I can’t help with iAmrich models. (Theoretically you could use a laptop but, uh.)
The board does not really need any setup, but there are freely available windows® programs turning the internal knobs. Since the board came with Bluetooth enabled I didn’t need to fiddle with settings (but I’m a fiddly type, so I have, but you don’t have to).
For the phone you need an app which can
- connect to the board by bluetooth
- able to retrieve an NTRIP stream from the network (about that later)
- can send the stream to the board
- can retrieve the NMEA log from the board
- and preferably can provide mock locations for the phone.
There are two free apps available at the moment I am aware of:
- Lefebure NTRIP client is an older, non open source program which works quite well but has the nasty habit of disconnecting and never reconnecting
- Bluetooth GNSS is an open source program which shows a bit less logs but way more reliable, and the author is more responsive. I suggest using that one.
Also you need continuous internet connection on your mobile to get realtime position. (In fact you can do it offline by recording the raw GPS stream and later use correction with NTRIP but that’s way beyond this howto.)
You need an NTRIP stream
You need an NTRIP stream, which is an internet service sending you atmospherical corrections from a Base station through a continuous TCP stream. There are countless services selling you that for a lot of dineros, but there are some nice people providing freely available streams.
I am using EUREF-IP, which has a perpetually dying chain of webpages, right now it seems to be available through bund.de, but may be accessed through euref-ip.net or igs-ip.net or else. You have to request access to the streams on this page and they usually respond within days. You need a bit of luck to find the streams for this specific login, I am using euref-ip.net TCP/80 as a server with the login they accepted.
As StephaneP mentioned there may be a lot of other freely available streams, or community provided streams - generally you need a base station as close to you as possible. It may work from 300 km but way better within 10 km. Search… (Check the maps on bund.de.)
Enable mock locations for Android
To let whichever app to see/use your location you have to enable Developer options on your Android (it needs no root or modification, just a few clicking, google it), then enable your NTRIP app to provide Mock locations.
This will let you to use any of the usual apps, like OsmAnd.
Ready?
At this point you are ready. Power up the board, go outside to see some satellites, then fill out the data in the app (stream server and port, login name and password, and the NTRIP station you chose). Then connect to bluetooth of the board, and the app shall start retrieving NTRIP from the internet, send to the board, and get GPS data. You will probably see a DGPS fix pretty soon, and if your NTRIP stream fits your atmosphere and you stay put you will have FloatRTK or real RTK fix within minutes. And the location will be seen in OsmAnd or navigation or logger or else.
You go and start mapping.
At the end, you stop track recording, then disconnect the app from bluetooth then disconnect power from the board. Then you process and upload to OSM. :-)
[Update]: It is usually useful to request your NTRIP app to log the GPS stream (usully NMEA), because it may contain more precise information about the fix type, which help you later when you are mapping. JOSM has nice setting to display GPS tracks with precision circle showing how precise the GPS unit thinks the measurement was. It is usually reliable, but the more money you pay for something the more reliable it is, and since F9P is a midrange chip it sometimes make mistakes; I have seen 1-2 meters error when moving but for non-moving measurements I haven’t seen any errors so far.