In this post, we will try to guide you in as much detail as possible to be able to build an NTRIP CASTER RTK server with ESP32.
Yes, you didn’t get it wrong!
You will have your own fully functional NTRIP CASTER CORS server that can be used for any RTK application without RTK2GO any more (ESPrtk version 3.9.95 ).
I would like to give all thanks for RTK2GO.com , It is always my top recommendation for a high quality and free NTRIP service. The SNIP team has created a great service !
For DIY users, hopefully the parameters below meet their needs :
- Realtime CORS NTRIP CASTER server.
- Support NTRIP Client (Rover PUSH-DOWN).
- Support NTRIP Server (Basestation PUSH-UP).
- Support analysis of NMEA GGA/RMC from Rover and display on map.
- MAX SOCKET : 9 + 1 (including Admin dashboard).
- MAX BAN IP : 50
- MAX ACCOUNT : 100
- MAX BANDWIDTH : 3600000 bps
- BASE EACH ACCOUNT : 1
- ROVER EACH ACCOUNT : 10
- NMEA/RTCM injection : GGA , RTCM 1005,1006,1007,1008,1032,1033,1004,1012 (for TOPCON, Trimble and Hemisphere)
- Admin management page (Account, kick or ban connection, map, graph, restart …)
- Runs in local network ( address 192.168.x.x:port )
- Run in the global network and connect anywhere in the world with the free DDNS service!
- Access and Server type select (img)
- Account manager for each Base/Rover (img)
- Custom STR editor for each Base/Rover (img)
- Socket manager , force kick out, ban IP user , IP/Port/Acount/Speed …… for each Base/Rover (img)
- Set limit bandwidth , limit time , limit rover numbers , VRS , password login ,…. for each Base/Rover (img)
- STR/NMEA/GGA/RMC collector , real time tracking and position viewer by map view , auto marker , tooltip – popup ,… for each Base/Rover (img)
- View all position of Base and Rover on a single page (img)
- Mountpoint Sourcetable view on browser (img)
- Dash board viewer : CASTER PROFILE , CURRENT TOTAL BANDWIDTH , TOTAL SOCKET OPENNING, SERVER UPTIME + STREAM COUNT BYTE, MOST ACTIVE ACCOUNT 24 HOUR , LAST 24 HOUR REVENUE , LAST 24 MINUTES REVENUE ,MOST ACTIVE ACCOUNT 1 MINUTE , Socket StatusData in (Kbps)Data out (Kbps), SOCKET DETAIL (Socket , Mode,IP +Time +In bps+Out bps+In&Out bps+Lat +Long+ Acount Name +HTTP User Agent ) ,BANDWIDTH (ALL+IN+OUT) , SOCKET COUNT (All+BASE+ROVER) (img)
Learn all the powerful features here:
We also created a video tutorial here: #ESPrtk- DIY NTRIP CASTER CORS Server with ESP32 and free DDNS host name - ESP32 RTK - F9P PX1122R. - YouTube
Hardware preparation
ESPrtk NTRIP CASTER is supported since version 3.9.89 .
But we recommend using the latest version of ESPrtk. ( currently 3.9.95 ).
Learn about ESPrtk 3.x.x version here: 3.x.x Firmware Support
Hardware.
-
App Build : NTRIP/MQTT RTK BaseStation+Rover+CASTER
-
ESP32 : ESP32 DEV KIT C Espressif ( ESP32_WROOM_32U or ESP32_WROOM_32UE CHIP)
-
RTK GNSS: F9P or PX1122R
-
Display: OLED SSD1306 0.96 inch or SH1106 1.3 inch( option !)
-
Power supply: 5V 2.5A Adapter
-
Other: LED , Button, Switch , 2.4Ghz WiFi Antenna , GNSS RTK Antenna, RJ45 Etheret cable, Micro USB Cable , 3.3V Active Buzzer , …
Register and download the firmware for the ESP32
The process of downloading firmware for ESP32 consists of 2 steps.
- Upload the register file Register.bin (If it is a new ESP32 chip).
- Upload the App.bin file.
Please read this article carefully: http://esprtk.wap.sh/tt/t3/register_update_firmware.html
Configure ESP32 and GNSS module RTK
ESPrtk Configure – Action Planning
ESPrtk Configure – Internet WIFI
ESPrtk Configure – CASTER port
ESPrtk Configure – Auto inject RTCM 1008,1007,1033,1004,1012…
For PX1122R Navspark.
Click here for more detail : Tutorial - Configure NS-HP GL/BD/GN as BaseStation- ESPrtk - ESP32 RTK
GNSS Configure – PX1122R Base mode
GNSS Configure – PX1122R RTCM out
Hardware connect for F9P and BASE station configure.
ESPrtk | ZED-F9P | M8P - LEA -NEO | Other |
---|---|---|---|
TX-UART1 | RX1 | RX1 | RX-UART Conigure |
RX-UART1 | TX1 | TX1 | TX-UART Conigure |
TX-UART2 | RX2 | RX2 | RX-UART Conigure |
RX-UART2 | TX2 | TX2 | TX-UART Conigure |
GNSS Configure – F9P RTCM 3 output
Read detail here : Configure F9P/M8P Ublox as BASE Station
GNSS Configure – F9P Base FIX/Survey mode
Read detail here : Configure F9P/M8P Ublox as BASE Station
GNSS Configure – F9P Save All configure to Flash
Read detail here : Configure F9P/M8P Ublox as BASE Station
** Hardware connection – ETHERNET + Full standards.**
For RTK Basestation applications with up to several months or years of continuous uptime, we always recommend users to use the W5500 Ethernet module for their systems to ensure a stable 24-hour connection !.
In addition, it is possible to add 1 buzzer on the ERROR LED pin (3.3V Active Buzzer) and 1 small OLED module to be able to see the operating status, (connection status, error, flow rate, etc.) of the whole. system .
To connect ESPrtk with RTK receiver, Ethernet, OLED …, Click here for more detail.
- PX1122R/PX1172R – Navspark (Fullsize)
- F9P – Drotek (Fullsize)
- F9P – Ardusimple (Fullsize)
- F9P – Sparkfun (Fullsize)
- F9P – C099-F9P UBLOX (Fullsize)
ETHERNET select.
Account for DDNS service
There are many DDNS service providers, either free or purchase.
- DuckDNS
- No-ip
- DynDNS
- Dynu
- ENom
- all-inkl
- selfhost.de
- strato
- freemyip
- afraid.org
- OVH.com
In this article, we choose NO-IP. You can get the service free for 30 days (or even free forever as long as you need confirmation of renewal for your account at the end of the month).
First access NO-IP at: https://www.noip.com/
We go to user account management. (This will be the username and password used to configure DDNS in the Router below).
Then add a new domain name .
In this example, my DDNS account is
- Name: esprtk
- Password: esprtk_caster
- Hostname: esprtk1.myddns.me
(Of course you’ll need to create your own one that’s different from the one I’m using!).
Router Configure
Router Configure – Disble Firewall + Enable NAT
Router Configure – NAT Port
Router Configure – Add DDNS provider
Router Configure – Force DHCP assign a fixed Local IP address by MAC address
Check Port open
Make sure your ESP_CASTER is working when checking the port status !
Check CASTER Server address
Check with real app and device
Test the actual operation with multi-connection and multi-device support.
- NTRIP Client Lefebure :1
- NTRIP Client RTKLIB : 3
- NTRIP Client SNIP : 1
- NTRIP Server RTKLIB : 1
Check Admin Dashboard page
Build multi CASTER Server on multi port
Multi CASTER – Hardware prepare
Multi CASTER – NAT Multi Port
Multi CASTER – Force DHCP assign a fixed Local IP address by MAC address
Multi CASTER – Final Full Test
Quick check our ESP32 NTRIP CASTER server here:
- S1 : http://esprtk.myddns.me:81/admin
- S1: http://esprtk.myddns.me:2101
- S2 : http://esprtk.myddns.me:82/admin
- S2: http://esprtk.myddns.me:2102
- S3 : http://esprtk.myddns.me:83/admin
- S3: http://esprtk.myddns.me:2103
- S4 : http://esprtk.myddns.me:84/admin
- S4: http://esprtk.myddns.me:2104
Admin dashboard login:
- Name login : admin
- Password: abc123ABC
NTRIP Client/Server login:
- Name login: name_0 (or name_1 , name_2 ,…)
- Password: pass_0 ( or pass_1 , pass_2 ,…)
Learn all the powerful features here:
We also created a video tutorial here: #ESPrtk- DIY NTRIP CASTER CORS Server with ESP32 and free DDNS host name - ESP32 RTK - F9P PX1122R. - YouTube
What we want to emphasize is that this is a server run by only low cost ESP32 module, no need for Raspberry PI computer or a complicated server system !
Hope this project helps all of you.
The Router in our guide may be different from yours. If you have difficulty in setting up DDNS, NAT port, firewall,… Feel free to ask us on this forum or via email : contact@esprtk.com
We will try to help you set up your system successfully for free !
At the end of the article, we would like to thank @Torriem , @Timmy95 and @M_elias (on TheCombineForum ) for announcing that the AGOPENGPS forum has moved to a new hosting address.
Congratulations on the growth of AGOPENGPS !
Best regards – ESPrtk Dev Team.