Table of Contents

Introduction

Welcome to the forefront of GPS precision – a realm where innovation meets DIY enthusiasm. In this comprehensive guide, we’ll delve into the exciting realm of triple mining, bringing together the powerful forces of Geodnet, Onocoy, and RTKDirect. Join us on a journey where technology meets customization, and global navigation takes a leap forward. Whether you’re a DIY enthusiast or a tech-savvy navigator, this guide is your gateway to revolutionizing your GPS experience.

Note: This article doesn’t contain nor should it be represented as an endorsement of any of the projects mentioned nor as financial advice. This article is for educational purposes only.


Hardware Requirements:

Hardware Recommendations

For this project we need a few things.

  1. Geodnet Miner
  2. Any system running linux
  3. A UM980 or Mosaic-X5 Based GPS Receiver
  4. A GPS Antenna (You can use the one that came with your geodnet device)
  5. A really good Power Blocking Antenna Splitter
RTKDirect DIY Compute for Receivers

Raspberry Pi and Pi Clones:

Hard to get ahold of these days but they are super low power and are quite customizable. For info on how to install Raspbian on your Raspberry Pi:

ModelDescription

Preferred Option: If available, the Orange Pi 5 is recommended for its super low power and high customizability.

Consider this DIY kit for Raspberry Pi enthusiasts looking for a versatile and customizable computing solution.

A ready-to-go starter kit for Raspberry Pi 4, suitable for those who prefer a convenient setup with moderate power.

Similar to the 4GB kit but with more RAM, ideal for users with higher performance requirements on the Raspberry Pi 4.

Any Mini PC with Intel N5100 or similar

For a super low power Raspberry Pi equivalent but on an x64 platform:

ModelDescription

The Beelink U59 Mini PC offers a low-power alternative for those seeking Raspberry Pi functionality on an x64 platform.

Another option for an x64 platform, the TRIGKEY Mini Computer provides a compact and efficient computing solution.

Ultra Low Power / Low Budget

Compute Notable Mentions

Older Raspberry Pi models (1, 2, 3) should be sufficient. But newer models should be significantly more efficient and allow you do run multiple low powered mining setups on a single device. This is why we recommend newer compute hardware.

There are many receivers on the market but at a bare minimum it must support RTCM (Radio Technical Commission for Maritime Services) and ideally have the ability to be hooked up to an antenna outside of the install location with 360 degree unobstructed view of the sky.

These are all going to be devices that are Triple-Band, High Pull Rate, Extreme Position Receivers. Most won’t support USB. They will require PCI-E, UART, I2C, or Serial Connections. THey will allow you to be capable of at most of the RTKDirect rewards. While you’ll be able to use the same software we mention below, the instructions we’ve provided may not exactly line up. Be advised that things like COM ports and the dongle specific instructions may be different for you.

The Best GPS Receivers
ModelDescription

Preferred Option: Unicorecomm UM980 Based, Triple Band L1, L2, and L5, All-Constellation, High Precision, 1408 Channels, 20Hz pull rate, 80% Rewards. Use discount code SIMEONSECURITY_GNSS for an additional 5% discount.

Preferred Option: Unicorecomm UM982 Based, Triple Band L1, L2, and L5, All-Constellation, High Precision, 1408 Channels, 20Hz pull rate, 80% Rewards. Use discount code SIMEONSECURITY_GNSS for an additional 5% discount.
ModelDescription
mosaic-go GNSS module receiver evaluation kitSeptentrio Mosaic X5 Based, 50-100Hz Pull Rate, Anti-Interference, Anti-Jamming, Anti-Spoofing. Firmware update required.

We’ve covered this in a more in depth guide about the Best GPS Base Station Antennas .

Ardusimple and GNSS.STORE Surveying Antennas
ModelDescription

Preferred Option: Calibrated Quad-Band, Extremely High Precision, Anti-interference, Supports All Bands. $230.

Strong Antenna Signal, High Precision, Built-in Anti-interference. $95.

Calibrated Triple Band RTK Antenna, IP67, Supports All Bands. $135.

Supports Most Bands, IP67 Rated. $205.

When choosing antenna splitters for your setup, it’s crucial to avoid options that may harm your radios, such as the one linked here . This type of splitter can potentially damage your equipment.

Instead, consider opting for antenna splitters that intelligently split the signal without affecting the DC power.

Here are two recommended options:

ModelDescription

A reliable option for signal splitting that intelligently splits the signal without affecting the DC power.

Another recommended choice for signal splitting, ensuring the signal is split intelligently without compromising the DC power.

These alternatives provide a reliable solution for signal splitting without the risk of damaging your equipment.


OS Installation:

We won’t go into the technical details of how to install an operating system here. However here are some great resources to get you started.

Raspbian:

Ubuntu:


Triple Mining Setup Instructions

Wiring

You’ll take the Power Blocking GPS Splitter and split your antenna connection going between the Geodnet MobileCM Miner and whatever GPS Receiver you have connected to your Linux system .

Wiring Diagram

Geodnet MobileCM Miner <—–> Power Blocking GPS Splitter <—–> Antenna

Linux System <—> GPS Receiver <—–> Power Blocking GPS Splitter

Linux - Docker Container

1. Install Docker

Consult the following guides for more information on how to install docker

2. Run the Docker Container

> You don't have to specify both Onocoy and RTKDirect credentials. The backend script is smart and looks to see if they have been set. You can use one or both and this should function perfectly.

If the environment variable ONCOCOY_MOUNTPOINT or ONOCOY_USE_NTRIPSERVER or RTKDIRECT_USE_NTRIPSERVER is specified, the docker container will use NTRIPSERVER for Onocoy or RTKDirect respectively, otherwise it’ll use RTKLIB for the connection to Onocoy and/or RTKDirect. The container will still use RTKLIB for the splitting of the feed no matter what. LAT, LONG, ELEVATION, INSTRAMENT, and ANTENNA are all optional and are only used if RTKLIB is being used and NTRIPSERVER is not.

You may specify TCP_OUTPUT_PORT to change the tcp server’s output port if using docker’s host networking mode . Otherwise use the appropriate docker port mappings .

You can host any RTKLIB or tcp server instance on another machine and retreive the data using our dockers tcp client mode by defining TCP_INPUT_IP and TCP_INPUT_PORT. In which you’ll specify your tcp servers ip and port.

docker run \
-td \
--restart unless-stopped \
--name sosrtk \
--device=/dev/<YOUR_USB_PORT> \
-e USB_PORT=<YOUR_USB_PORT> \
-e BAUD_RATE=<YOUR_SERIAL_BAUD_RATE> \
-e DATA_BITS=<YOUR_SERIAL_DATA_BITS> \
-e PARITY=<YOUR_SERIAL_PARITY> \
-e STOP_BITS=<YOUR_SERIAL_STOP_BITS> \
-e ONOCOY_MOUNTPOINT=<YOUR_ONOCOY_MOUNTPOINT> \ 
-e ONOCOY_USERNAME=<YOUR_ONOCOY_MOUNTPOINT_USERNAME> \
-e ONOCOY_PASSWORD=<YOUR_ONOCOY_MOUNTPOINT_PASSWORD> \
-e RTKDIRECT_MOUNTPOINT=<YOUR_RTKDIRECT_MOUNTPOINT> \
-e RTKDIRECT_USERNAME=<YOUR_RTKDIRECT_MOUNTPOINT_USERNAME> \
-e RTKDIRECT_PASSWORD=<YOUR_RTKDIRECT_MOUNTPOINT_PASSWORD> \
-e LAT=<OPTIONAL_YOUR_LATITUDE> \
-e LONG=<OPTIONAL_YOUR_LONGITUDE> \
-e ELEVATION=<OPTIONAL_YOUR_ELEVATION_FROM_SEA_LEVEL_IN_METERS> \
-e INSTRUMENT=<OPTIONAL_YOUR_GPS_RECEIVER_DESCRIPTION> \
-e ANTENNA=<OPTIONAL_YOUR_ANTENNA_DESCRIPTION> \
simeononsecurity/docker-rtklib-onocoy-rtkdirect:latest

Ensure you replace the placeholder values (<...>) with your specific configuration.

Ex.

docker run \
 -td \
 --restart unless-stopped \
 --name sosrtk \
 --device=/dev/ttyUSB0 \
 -e USB_PORT=ttyUSB0 \
 -e BAUD_RATE=921600 \
 -e DATA_BITS=8 \
 -e PARITY=n \
 -e STOP_BITS=1 \
 -e ONOCOY_MOUNTPOINT=YOUR_ONOCOY_MOUNTPOINT \
 -e ONOCOY_USERNAME=YOUR_ONOCOY_MOUNTPOINT_USERNAME \
 -e ONOCOY_PASSWORD=YOUR_ONOCOY_MOUNTPOINT_PASSWORD \
 -e RTKDIRECT_MOUNTPOINT=YOUR_RTKDIRECT_MOUNTPOINT \
 -e RTKDIRECT_USERNAME=YOUR_RTKDIRECT_MOUNTPOINT_USERNAME \
 -e RTKDIRECT_PASSWORD=YOUR_RTKDIRECT_MOUNTPOINT_PASSWORD \
 -e LAT=37.7749 \
 -e LONG=-122.4194 \
 -e ELEVATION=50 \
 -e INSTRUMENT="Your GPS Receiver" \
 -e ANTENNA="Your Antenna" \
 simeononsecurity/docker-rtklib-onocoy-rtkdirect:latest

Linux - Manually

1. Install RTKBase

cd ~
wget https://raw.githubusercontent.com/Stefal/rtkbase/master/tools/install.sh -O install.sh
chmod +x install.sh
sudo ./install.sh --all release #must not be run as root
#RTKbase comes with a web element that doesn't work for our purposes.
sudo systemctl disable rtkbase_web 
sudo systemctl stop rtkbase_web

or if you’re on Ubuntu specifically

sudo apt install -y rtklib

2. Set up STR2STR

  1. Test Set up USB to local TCP server

Note: When setting up USB to a local TCP server using the str2str command, ensure you specify your serial settings correctly. In the provided example:

str2str -in serial://ttyUSB0:921600:8:n:1#rtcm3 -out tcpsvr://:5015 -b 1 -t 0
  • ttyUSB0: Specifies the USB port. Adjust this based on your system configuration.
  • 921600: Represents the baud rate. Modify this value if your device requires a different baud rate. Another common baud rate for GPS receivers is 115200.
  • 8: Indicates the data bits.
  • n: Represents no parity.
  • 1: Indicates one stop bit.

Make sure to customize these settings according to your specific hardware and communication requirements.

For those who aren’t following my guide exactly and are using a standalone NTRIP device, like the NTRIP-X or Ardusimple Devices with the Wifi Master, or have followed our ESP32 guide, you’ll end up doing something like the following str2str -in ntrip://your-ntrip-source-here#rtcm3 -out tcpsvr://:5015#rtcm3 in combination with a service like Emlid Caster . Play around with the --help. You goal should be to take NTRIP in and do local TCP out. Unfortunately the two software packages available for Linux don’t let you take in NTRIP in as a caster directly, so we have to go through a middle man and access it as a NTRIP client.

  1. Test Set Up NTRIPv1 to RTKDirect

You’ll need the USERNAME, PASSWORD, and MOUNTPOINT from the RTKDirect Console .

str2str -in tcpcli://localhost:5015#rtcm3 -out ntrips://username:[email protected]:2101/mountpoint#rtcm3 -msg "1006(30), 1033(30), 1077, 1087, 1097, 1107, 1117, 1127, 1137, 1230" -p lat long elevation(m) -i "RTKBase UM980,2.4.2" -a "GEODNET ANTENNA" -t 0

Notes:

  • Be sure to replace the message numbers if you know you don’t use MSMv7 RTCM3 messages . Otherwise, don’t touch them.
  • Be sure to replace the values for -p, -i, and -a with your, geo cords, receiver model and your antenna if applicable. If you don’t know them, omit this information from the command.
  • Elevation relative to sea level in meters.
  • Use tools like gps-coordinates.net to get your coordinates and FreeMapTools to get your elevation.
  • Under -out be sure to specify the port number the dashboard gives you.
    • The IP provided in the dashboard, at least for now, is the same as ntrip.rtkdirect.com. They point to the same space.
  1. Test Set Up NTRIPv1 for Onocoy

You’ll need the Mountpoint Username and Password from the Onocoy Console

str2str -in tcpcli://localhost:5015#rtcm3 -out ntrips://:[email protected]:2101/username#rtcm3 -msg "1006(30), 1033(30), 1077, 1087, 1097, 1117, 1127, 1137, 1230" -p lat long elevation(m) -i "SimeonOnSecurity UM980 RTKLIB DIY" -a "GEODNET ANTENNA" -t 0

Notes:

  • Be sure to replace the message numbers if you know you don’t use MSMv7 RTCM3 messages . Otherwise, don’t touch them.

  • Be sure to replace the values for -p, -i, and -a with your, geo cords, receiver model and your antenna if applicable. If you don’t know them, omit this information from the command.

  • Elevation relative to sea level in meters.

  • Use tools like gps-coordinates.net to get your coordinates and FreeMapTools to get your elevation.

  • Under -out be sure to specify the password and username number the onocoy console gives you.

  1. Set Up STR2STR SYSTMCTL Services

To make sure that it starts up on boot, we need to create a service.

Using the commands we created earlier, you’re going to create two services. Use the commands and template below to do that.

  • Set Up TCP Server Service

    sudo nano /etc/systemd/system/rtkdirect-str2str1.service
    
    
    [Unit]
    Description=STR2STR Service 1
    After=network.target
    Wants=network-online.target
    After=network-online.target
    
    [Service]
    ExecStart=str2str -in serial://ttyUSB0:921600:8:n:1#rtcm3 -out tcpsvr://:5015 -b 1 -t 0
    Restart=always
    RestartSec=30
    StartLimitBurst=10
    StartLimitInterval=5min
    TimeoutStartSec=600
    User=root
    
    [Install]
    WantedBy=default.target
    
  • Set Up RTK Direct NTRIP v1 Service

    sudo nano /etc/systemd/system/rtkdirect-str2str2.service
    
    
    [Unit]
    Description=STR2STR Service 2
    After=network.target
    Wants=network-online.target
    After=network-online.target
    
    [Service]
    ExecStart=str2str -in tcpcli://localhost:5015#rtcm3 -out ntrips://username:[email protected]:2101/mountpoint#rtcm3 -msg "1006(30), 1033(30), 1077, 1087, 1097, 1107, 1117, 1127, 1137, 1230" -p lat long elevation(m) -i "RTKBase UM980,2.4.2" -a "GEODNET ANTENNA" -t 0
    Restart=always
    RestartSec=30
    StartLimitBurst=10
    StartLimitInterval=5min
    TimeoutStartSec=600
    User=root
    
    [Install]
    WantedBy=default.target
    
  • Set Up Onocoy NTRIP v1 Service

    sudo nano /etc/systemd/system/rtkdirect-str2str3.service
    
    
    [Unit]
    Description=STR2STR Service 3
    After=network.target
    Wants=network-online.target
    After=network-online.target
    
    [Service]
    ExecStart=str2str -in tcpcli://localhost:5015#rtcm3 -out ntrips://:[email protected]:2101/username#rtcm3 -msg "1006(30), 1033(30), 1077, 1087, 1097, 1107, 1117, 1127, 1137, 1230" -p lat long elevation(m) -i "RTKBase UM980,2.4.2" -a "GEODNET ANTENNA" -t 0
    Restart=always
    RestartSec=30
    StartLimitBurst=10
    StartLimitInterval=5min
    TimeoutStartSec=600
    User=root
    
    [Install]
    WantedBy=default.target
    

    Enable and start the services.

    sudo systemctl daemon-reload
    sudo systemctl enable rtkdirect-str2str1 rtkdirect-str2str2 rtkdirect-str2str3
    sudo systemctl start rtkdirect-str2str1 rtkdirect-str2str2 rtkdirect-str2str3
    

Windows

Please see the Windows instructions for Onocoy instructions , use STR2SRV to output to one NTRIPServer for onocoy and one tcpclient for RTKDirect.

Bonus: Quadruple Mining with FrysCrypto DIY GPS Miner(Windows Required)

Note: We do not recommend doing anything with FrysCrypto. Don’t invest anything you aren’t willing to lose.

Note: This section is not tested as far as we’d normally like. We had a few readers suggest this configuration. Your milage may very. We’ll update this as we learn more and improve on it.

This part gets a bit complicated. You’ll likely need to install your UM980 using the Linux instructions . Then, you’ll need to run the following instructions on a system running Windows:

  1. First download and install the Outdoor Sattlite Miner Alpha Download from the FryFoundation Website. This will install python, a python script, a batch script, and U-Blox’s U-Center 2 .
    1. When you’re setting it up, it’ll ask for your algorand wallet’s private key, please make sure you create a dedicated algorand wallet for this purpose. Do not use your existing wallet.
  2. Download and install com0com from the Null-modem Emulator project.
    1. Use all the default options and hit next until the last page, then click “Open Setup” and next one last time.
      1. Remove all non COM devices.
      2. Take note of the preconfigured COM device names. We got COM3 and COM4
  3. Download and install HW VSP3 - Virtual Serial Port .
    1. You only need the single-port version
    2. On the Virtual Serial Port Tab
    3. HW VSP3 - Virtual Serial Port
    4. Specify the COM PORT from com0com, IP and Port Number of the RTKLIB or Docker Based TCP server and click Create COM
  4. Open U-Blox’s U-Center 2 and on the second tab you’ll see an option to “Add Device”.
    1. Click “Add Device” and select the com port you created during the com0com setup and selected in HW VSP3..
    2. You should see data coming into U-Center after a few seconds.
  5. Lastly, don’t forget to register your BYOD Outdoor Satellite Miner

Credit to @Arco in the Onocoy discord for helping us link together the final pieces.


Conclusion

As we conclude our exploration into triple mining with Geodnet, Onocoy, and RTKDirect, envision a world where GPS precision is not just a necessity but a customizable, cost-effective, and rewarding adventure. The DIY spirit intertwines with cutting-edge technology, creating a tapestry of possibilities for navigation enthusiasts worldwide. The journey doesn’t end here – it’s an ongoing revolution. Unleash the potential of your GPS navigation, contribute to a global network, and embrace the future of geolocation. Precision awaits; your adventure begins now!


References