Servers by jDrones

ESPrtk 5$ for RTK positioning solution with M8P ublox or NS-HP-GL Navspark

rtk

(Develop ESPrtk) #1

What is ESPrtk ?

ESPrtk is a small circuit board used to transmit wireless GNSS data in high precision positioning applications.

ESPrtk is geared towards the ability to use high quality, independent, wireless and low cost platforms.
ESPrtk’s heart is a powerful ESP32 processor.

So what does ESPrtk include?

ESPrtk is an abbreviation for ESP32 RTK.
ESPrtk is available in two formats. Software for DIY users and hardware for direct users.
An ESPrtk V1 circuit board:


ESPrtk board V1 pinout mapping:

and features on its 2.4.1 version:

ESPrtk can be used with many GNSS RTK devices.

RTK-capable receivers require precisely calibrated antennas to process signals transmitted by the GNSS satellites. The process for achieving centimeter-level position accuracy in GNSS involves a complex algorithm known as real time kinematic (RTK) processing. In addition, they must receive and process corrections data from a ground network of GNSS receivers. These factors made traditional RTK-capable receivers costly (in excess of $5000 or even $10,000 ) and bulky, making them unsuitable for cost- and size-sensitive applications.
Recently, GNSS equipment manufacturers have started advertising inexpensive (less than $500) and compact RTK-capable receivers. Some prominent names:

RTK receivers are getting smaller and smaller, but accuracy is improving. At the same time, there was a powerful embedded CHIP is ESP32, which attracted everyone in IoT applications and GNSS data transmission for RTK positioning is one of them.
esprtk_esp32

ESPrtk aims to be simple, user-friendly and safe to use.

ESPrtk was born to provide High quality RTK positioning solution with low cost option. This is an effort to make accessing and using high-precision positioning technology easier for everyone. Especially for those who have hobby about it.

Highlights of the design are the Web Config User Interface (UI) application, which makes it easy to test or configure it and the peripherals it connects to.

Along with that are layers of security with high-level encryption for transmitting GNSS data to public servers (where your data can be abused without your permission). Data encryption is also applied to all important files on ESPrtk in order to protect users as much as possible. Users can even activate a permanent lock with their password to make sure no one can change anything on their ESPrtk.


(Screenshot ESPrtk-BLE is running web configure on Google Chrome to setting some profile’s information. )

RTCM 3.x, RAW, NMEA are data types transmitted.

ESPrtk uses two ways to transmit data:
Online: ESPrtk is a client that uses a service to collect / distribute data from the server via an internet connection (WiFi/Ethernet).
Offline: ESPrtk will use its own Wifi or Bluetooth connection to perform wireless communication in the distribution of data.

If set to a Base, it will collect data from one of the UART ports and then send it over the wireless interface to one or more other devices (Rover).
If set to Rover, the data received from the Base will be streamed to the UART port to the RTK module.

MQTT model:


MQTT RTK is the most powerful transmission model today and will be the future alternative to NTRIP.

REAL-TIME VEHICLE MONITORING AND POSITIONING USING MQTT FOR RELIABLE WIRELESS CONNECTIVITY

MQTT Protocol for Real‐Time GNSS Data and Correction Distribution

China Satellite Navigation Conference (CSNC) 2018 Proceedings
ESPrtk, when fully configured, can provide multiple connections at the same time.
ESPrtk is a Base can send RTCM / RAW to MQTT Server (Broker). (and Stream out NMEA data collection from the Rover to controler center.)
ESPrtk is a Rover that receives RTCM data from the Broker. ( can also export NMEA data to another device via Bluetooth at the same time.)

NRTIP model:

NTRIP has a history of over 20 years of development with extensive base networks around the world. Supported on any existing device. ESPrtk too.
ESPrtk is a Base can send RTCM / RAW to NTRIP Server (Caster).
ESPrtk is a Rover that receives RTCM data from the Caster. ( can also export NMEA data to another device via Bluetooth at the same time.)

Offline using WiFi signal:


When the internet connection is unavailable (the NTRIP / MQTT online service is not available), ESPrtk can use its WiFi signal to transmit GNSS data.
This is similar to the full MQTT functionality but is offline. The connections deployed in both protocols are TCP and UDP with the distance constrained to the WiFi transmit power.
ESPrtk will operate stably with a 150 to 200 meter baseline when using external antennas.

(Esp32-wroom-32u-front-back support external antenna. )

Bluetooth bridge RTK:


SPrtk will work just like the Bluetooth-To-Serial module. It will collect (regardless of RTCM / NMEA / RAW / … data type) from the RX-UART1 port and then send it to the Bluetooth device, or (and) Stream the data received via Bluetooth to the TX-UART2 port.
This function is particularly useful for users who want to collect output data from a GNSS device without having to directly connect to the wire. Featured Android applications such as “NTRIP Client” , “GNSS Surveyor”, “Bluetooth GPS”, “Bluetooth GPS Provider” ,”Mapit GIS”,”Bluetooth GPS Status Tool”, “SkyPro GPS Status Tool”…. supported this function.

(screenshot on GNSS Surveyor app)

And more…

There is much to say about detail ESPrtk with interesting functions on it. I hope the introduction is not too short to finish, please read other articles to know more about them…on esprtk.wordpress.com
Free Firmware , Debug tool, Opensourse Hardware design, tutorials blog , image,… are available now at https://esprtk.wordpress.com/download-and-documents/
and follow us on https://twitter.com/esprtk


(James Pattison) #2

Hi there!
That’s a cool project, but we try to keep the blog for ArduPilot stuff: it gets mirrored to our homepage. So I’ve moved this to general hardware.
Do you have a guide for setting this up with ArduPilot?


(Develop ESPrtk) #3

Well there are many topics, I don’t know which topic is best suited for this article and I chose “blog”. I hope to get help from you. Does this article need to change anything?


(James Pattison) #4

I think it’s fine in the topic it’s in now.
It would be useful for the audience here if you could describe how to setup the esprtk with ArduPilot though.


(Develop ESPrtk) #5

Yes, thank you for your prompt question.

Positioning RTK may have become familiar to many people. Rover needs RTCM data from Base station to calculate the wave phase to help it locate high accuracy and keep it stable for a long time. Rover needs to move and data transmission by radio waves or via the internet has been applied.

For users of development board RTK receivers such as M8P or NS-HP-GL, ESPrtk will also be another option to maintain between cost and performance.

ESPrtk uses ESP32 module, its connection is really simple, some LEDs, 4 neopixel LED and 2 push buttons, some resistors and capacitors are enough for DIY users to own it.

Below is a diagram using ESP32 nodeMCU to create ESPrtk with the same function.

Here is ESPrtk’s circuit diagram :

ESPrtk when using NTRIP / MQTT will need these connections:

ESPrtk receives / sends GNSS data (RTCM / NMEA) from RTK modules, it will need internet connection with NTRIP / MQTT services via a Wifi router. (So ​​Ethernet connection is not required, but it is still supported). ESPrtk supports up to 2 UART ports to connect to RTK module (3rd port to export ESPrtk status).

Connect ESPrtk to NS-HP-BD (or GL) from Navspark

Connect ESPrtk to M8P from Ublox

To be able to configure and perform settings on ESPrtk, users will access the configuration page in the form of a web page by browsing through a WiFi connection to the local network created by ESPrtk.
(It is similar to the way Emlid-Reach works, but it will not need to be connected through the Router.) It also has many features on Webconfigure .

Profile- To configure ESPrtk action.

Your profile : Change name,password, custom avata-nickname-logo.

Action Planning: Select mode RTK.(they are described in the article above)

Wifi Hotspot: Set the router parameters that ESPrtk will use to connect to the Internet through it. ESPrtk supports storing 3 different access points with automatic network selection.

MQTT RTK: Configured to use MQTT service to transmit RTCM data, ESPrtk can be used as a Base station to publish RTCM data to Rover or as a Rover to stream RTCM data for RTK receivers. It also encrypts / decrypts data directly to protect RTCM data from abuse by the MQTT service provider.

NTRIP Client: Use ESPrtk as a client to receive RTCM / RAW data … from NTRIP Caster (Server) and then export data to RTK rover receiver. It supports automatic updating and browsing of Ntrip Caster tables, filtering and suggestions when selecting a mountpoint, automatically detecting alerts from the server, sending GPGGA and logging in …



NTRIP MASTER: Use ESPrtk as an client ,collect RTCM data from Basestation and send data to NTRIP Caster. Support for duplicate mountpoint detection already exists.

WIFI TCP-UDP: Configure to use ESPrtk GNSS data transmission by wifi waves itself. Support up to 20 Rover at the same time.


Display Viewer: Configure Neopixel’s display brightness or LCD.

Event Log for Debugging: The best way to see the status of ESPrtk is to collect TX-UART0 output data, the purpose of this is to find the error and fix it.

However, this requires a continuous connection from ESPrtk to the terminal display device, and will make it difficult for users without the necessary tools, or distance obstacles.

Event Log will overcome that disadvantage.

When the Eventlog is activated, during operation, data about the operation, error status, … will be recorded in a file named Event_Log.bin and stored forever until the user delete it.

Simple Debug: When you collect the ID of the error on ESPrtk (ID number or color seen on Neopixel), you can decode it using this simple tool to see what error has occurred.

Online Version in here : esprtk.wap.sh

Navspark configure: Used to directly configure Navspark modules without PC software from the manufacturer. It supports both Query and Configure

GNSS Viewer : NMEA data viewer, just supply NMEA data to the RX port of ESPrtk, it will be displayed as a GNSSViewer viewer.

BLE-Viewer: ESPrtk when configured Rover on all modes (MQTT / NTRIP / WIFI) supports BLE-Viewer. When the BLE-Viewer is activated, along with exporting RTCM data to RTK receivers, it can collect NMEA data and send it to other Bluetooth devices.It is similar to bluetooth bridge but only one way.


Blueooth Bridge to UART:Works the same as bluetooth bridge modules.Use ESPrtk as a “Bluetooth to Serial” module.

ESPrtk will work just like the Bluetooth-To-Serial module. It will collect (regardless of RTCM / NMEA / RAW / … data type) from the RX-UART1 port and then send it to the Bluetooth device, or (and) Stream the data received via Bluetooth to the TX-UART2 port.
This function is particularly useful for users who want to collect output data from a GNSS device without having to directly connect to the wire.

Rover Send Back NMEA:

(Support on MQTT and WIFI.) Along with exporting RTCM data from BaseStation, Rover will collect NMEA data and send it to ESPrtk Base, ESPrtk Base will export that NMEA data to TX port.


(ppoirier) #6

May I ask how all the above is related to ArduPilot?


(Develop ESPrtk) #7

With topic RTK, I hope someone in the ArduPilot forum is using the M8P or NS-HP-GL or even Reach-Emlid positioning module on their UAV or Robot that might be interested.