Welcome to navdata.net

About navdata.net

Purpose

Develop a combination of easily accessible and cost efficient hard and software to allow community based precision geolocation. Compared to existing projects, we emphasize on creating a public networked service rather than an individual setup. We consider the project successful if we aggregate an equivalent or better service than existing NTRIP providers. While processing GNSS data, the related time information shall be made available in the form of public NTP servers.

Users

The project shall be valuable for the public at large serving diverse purposes. Improving the location precision for mobile phones, vehicles, farmers machinery, drone pilots or other location and navigation purposes.

Current goal

To create a firmware image combining:

Hardware

Software

into a ready to run RTK base station streaming correction data to a PylonGPS caster.

Resources

Documentation

Accessible on Read the Docs and maintained at https://github.com/navdata-net/documentation

Installer

Maintained on github at https://github.com/navdata-net/installer

Used to develop the navdata.net configuration and for installations not using the navdata.net images for reference hardware. The resources developed in the installer repository are reused in the yocto layer repository.

Yocto workdir

Maintained on github at https://github.com/navdata-net/workdir

Used to simplify working with yocto, develop the navdata.net yocto image configuration and make it easy to compile and develop the navdata.net image.

Yocto layer

Maintained on github at https://github.com/navdata-net/meta-navdatanet

Used to develop the recipes for software navdata.net needs to add to yocto.

Hardware for navdata.net reference basestation

This is the set of hardware currently used for development:

Configuring and using GNSS receivers for navadata.net

u-blox

By using rtklibexplorers edition of RTKLIB we get enhanced support for u-blox receivers. On rtklibexplorers website we can find an article about Configuring the GPS receiver for use with RTKLIB.

In summary:

set UBX:CFG:PRT:Baudrate to 115200
disable all NMEA messages
save configuration in UBX:CFG:CFG:Save configuration

Configuration and structure of navdata.net

Basestation

Overview

The reference basestation is based on a Raspberry Pi 3 and a u-blox M8T receiver. The basestation is configured as an NTP server, RTKlib rtkrcv for location and a combination of RTKlib str2str and PylonGPS transceiver for data streaming.

Hardware

The Raspberry Pi 3 is connected to the M8T receiver via USB for data and GPIO pin 4 for the 1 Hz PPS signal.

NTP server

The NTP server is configured as a client to 4 pool.ntp.org servers of the country of the basestations public IP. The M8T PPS signal is provided via the kernel based PPS driver and used by NTPD for precision timekeeping. NTPD is configured as an NTP server for public reuse.

rtkrcv

RTKlibs rtkrcv is the direct user of the M8T receiver via its USB based serial tty. rtkrcv continuously computes the basestations location from the satellite data. It is configured to provide several network ports on the local IP:

:3130 - telnet console (-p option)
:3134 - monitoring port (-m option)

str2str

str2str is used to shield rtkrcv from user acces and convert the u-blox receiver data format into standardised RTCMv3 format.

:3131 - passthrough receiver data / raw (u-blox format)
:3132 - passthrough receiver data / RTCM3
:3133 - TCM3 antenna location message 1006
:3141 - integrated RTCM 3 location and raw data

Developing with navdata.net

Poky

We base our image on the Poky distribution developed by the Yocto project. To avoid issues between the developers working environment and the requirements of cross compiling, we make use of Yoctos docker based build tool crops/poky.

source code location

This docker image uses a directory of its host computer as the storage for its build process. This folder is accessed at ‘/workdir’ inside the build container. For ease of use and validity of the same paths from host and container, we store our code at that same location at ‘/workdir’.

Preparing your development environment

OS setup for navdata.net development

As the underlying OS any recent linux distribution with support for docker should do. Expect up to 50GB storage space to be utilized in folder /workdir.

Ubuntu Desktop

Below commands are execute by user root. Based on default Desktop installation, add required packages:

apt install docker

We will run all development, compilation and image creation as user yocto:

adduser yocto

Development files will be on directory /workdir, this makes paths aligned with the yocto build container:

mkdir /workdir
chown yocto:yocto /workdir

Development environment setup

Clone / update workdir repository

Switch to yocto user as prepared in <os_setup>, clone your copy:

cd /
git clone https://github.com/navdata-net/workdir.git

Inside workdir, the navdata.net setup adds several additional git repositories. When you are working with navdata.net, prefer to execute your git commands from the /workdir or meta-navdatanet folder respectively to avoid any ambiguity reagrding which repository your action is meant to execute on.

Clone the poky and poky layer repositories using navdata.net script:

cd /workdir
./fetchrepos.sh

You can run the fetchrepos.sh script any time later to update / pull your copy of the repositories.

Compile navdata.net basestation image

To compile the navdata.net basestation image, you need to start the yocto build container and initiate bitbake inside it:

cd /workdir
./rundocker.sh
cd /workdir/dev
./bake.sh

Any ditbake commands should be run from within the docke build container. You can verify operating from the container by checking your username, which should be “pokyuser”.

Working with navdata.net

Indices and tables