Skip to content

Commit 7d254e9

Browse files
committed
Documentation updates.
1 parent 45fb64c commit 7d254e9

File tree

3 files changed

+53
-90
lines changed

3 files changed

+53
-90
lines changed

docs/UbxLogger_GL-iNet_Installation_Guide.md

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ The GL-iNet router has three main user interfaces
6666

6767
1. GL-iNet Web Admin Panel (http://192.168.8.1)
6868
2. OpenWrt LuCI web user interface (http://192.168.8.1/cgi-bin/luci)
69-
3. SSH to the router BusyBox ash shell ()`ssh root@192.168.8.1`)
69+
3. SSH to the router BusyBox ash shell (`ssh root@192.168.8.1`)
7070

7171
The first is a Grafical User Interface (GUI) for standard settings
7272
and firmware upgrades. The second is a GUI to do more advanced settings with `OpenWrt LuCI`. Many
@@ -77,6 +77,11 @@ which will be used for setting up regular Linux stuff and `UbxLogger`.
7777

7878
Plug-ins can be installed from the `GL-iNet Web Admin Panel -> Applications -> Plug-ins`,
7979
or from `OpenWrt LuCI -> System -> Software`, or from the CLI using the `oplg` package manager.
80+
At this time it is a good idea to update the package list and install `usbutils` (for the `lsusb`
81+
command)
82+
83+
> opkg update\
84+
> opkg install usbutils
8085
8186
A few plugins need to be installed to be able to use MicroSD card storage and to install some
8287
prerequisites for `UbxLogger`.These are described in the next section
@@ -104,10 +109,9 @@ Next, in `OpenWrt LuCI -> System -> Mount points`, in the section on `Moint Poin
104109
select the device, click on the `Edit` button, and enter as mount point `/mnt/sda1`,
105110
and click on `Save`. Then click on `Save and Apply` to complete the process.
106111

107-
Now you should be able to see the mounted SD card under Mounted file systems and the
112+
Now you should be able to see the mounted SD card under `Mounted file systems` and the
108113
SD card is ready to be used.
109114

110-
111115
## Download and install `UbxLogger` software
112116

113117
To install the `UbxLogger` software download the installation script, run and follow the instructions
@@ -117,7 +121,7 @@ To install the `UbxLogger` software download the installation script, run and fo
117121
118122
The script will guide you step by step through the installation process providing sensible defaults. When the script
119123
finishes the software and executable are installed on the micro SD card, and the user is provided with some
120-
guidance on how to preceed with the second part of the installation.
124+
guidance on how to proceed with the second part of the installation.
121125

122126
The second part of the installation is done by a separate script that is installed along with
123127
the software. To run the second part of the install
@@ -127,7 +131,7 @@ the software. To run the second part of the install
127131
128132
For other platforms replace *openwrt-mips* with one of the architectures provided in the `ubxdir/sys` folder.
129133

130-
Thi script will create symbolic links to the executable and scripts installed during the first step, install
134+
This script will create symbolic links to the executable and scripts installed during the first step, install
131135
necessary packages, enable crontab and add a service (`cronatreboot`) to resume logging after a reboot.
132136

133137
The script will provide you with the option to install RTKLIB's `str2str` using an OpenWrt package or
@@ -183,7 +187,7 @@ To configure `UbxLogger`
183187
Replace `identifier` with the value(s) that you selected. If you don't plan on logging navigation data - something that we recommend not to do - then you need to enter also the
184188
approximate coordinates of the station in the configuration file.
185189

186-
In this phase of the installation process the software is fully functional and can be started and stopped manually, as is decribed in the [software manual][2].
190+
In this phase of the installation process the software is fully functional and can be started and stopped manually, as is described in the [software manual][2].
187191

188192
## Starting and stopping the software
189193

@@ -207,7 +211,7 @@ Crontab on OpenWrt does not support the `@reboot` directive. This directive must
207211
The `cronatreboot` service that is installed during the second part of the install will use the commented out
208212
directive to start logging after a (re)boot.
209213

210-
Note that `crontab` works with local time. To have this synchronized with `UTC` make sure that you're local time is set to `UTC`.
214+
Note that `crontab` works with local time. To have this synchronized with `UTC` set local time to `UTC` or account for the time difference in the crontab (which can be tricky with daylight saving time).
211215

212216
## Remote connections
213217

@@ -218,7 +222,7 @@ To access the router remotely through the 4G LTE interface some additional setup
218222
### GL-iNet GoodCloud
219223

220224
The easiest way to achieve remote connectivity over the 4G or WAN network is via GL-iNet's [GoodCloud](https://www.goodcloud.xyz/#/login)
221-
Cloud Management Software. *GoodCloud* uses reverse `ssh` to set up a long lasting connection. The connection is initiated by the
225+
Cloud Management Software. *GoodCloud* uses something similar to reverse `ssh` to set up a long lasting connection. The connection is initiated by the
222226
router, so as long as the router can connect to the Internet your are okay. No hassle with firewalls, dynamic DNS, etc.
223227

224228
First, enable GoodLife in the admin Web interface on the router. Then, create an account on *GoodCloud*, and bind the device
@@ -230,18 +234,12 @@ GoodCloud is free software with unlimited number of devices. There is a paid ent
230234

231235
### Dynamic DNS (DDNS)
232236

233-
Dynamics DNS (DDNS) is not needed with GoodCloud. The ip number can be retrieved from the GoodCloud interface.
234-
235-
However, it is a good idea to setup a dynamic DNS as backup, so that you can use a webbrowser and ssh to access the
236-
router remotely over the 4G network (except when CG-NAT is used by the telecom provider). If you do this, it is
237-
a good idea to limit the ip-range with access by setting the appropriate firewall rules.
238-
239-
You also need to enable access from the WAN to ports 80 and 22 .
237+
Dynamics DNS (DDNS) is not needed with GoodCloud. The ip number can be retrieved from the GoodCloud interface. However, if you want, setup dynamic DNS as backup, so that you can use a webbrowser and ssh to access the
238+
router remotely over the 4G network (except when CG-NAT is used by the telecom provider). If you do this, you must set an ip-range with appropriate Firewall rules and enable access from the WAN to ports 80 and 22 .
240239

241240
### Firewall settings
242241

243242
No modifications in the firewall settings are needed when *GoodCLoud* is used.
244-
245243
In case Dynamic DNS (DDNS) is used, or, if the system has a public ip, and ssh and/or web access are enabled, then it will be definitely necessary to add firewall rules to limit access to certain ip-ranges.
246244

247245
### Reverse ssh and other cloud platforms
@@ -262,8 +260,8 @@ and stopping the `ubxlogd` deamon and automated conversion and file transfer.
262260
[2]. H. van der Marel (2024), UbxLogger Software Manual, TU Delft, September 2024.
263261

264262

265-
[1]: <UbxLogger_Hardware_manual.md> "H. van der Marel (2024), UbxLogger Hardware Manual, TU Delft, September 2024."
266-
[2]: <UbxLogger_Software_manual.md> "H. van der Marel (2024), UbxLogger Software Manual, TU Delft, September 2024."
263+
[1]: <UbxLogger_Hardware_Manual.md> "H. van der Marel (2024), UbxLogger Hardware Manual, TU Delft, September 2024."
264+
[2]: <UbxLogger_Software_Manual.md> "H. van der Marel (2024), UbxLogger Software Manual, TU Delft, September 2024."
267265

268266
## Appendices
269267

docs/UbxLogger_Hardware_Manual.md

Lines changed: 14 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ must first be configured to send raw measurement data to the USB port. We use u-
4545
the proper COM port.
4646
2. Open `View->Messages View`, select `UBX-MON-VER` in the left pane, and check that the firmware version is `1.32` or higher. If not, upgrade
4747
the firmware to version 1.32.
48-
3. Open `View->Generation 9 Configuration View`, deselect `SBAS` and `QZSS` (unless you really want this data), and send configuration to
48+
3. Open `View->Generation 9 Configuration View`, deselect `SBAS` and `QZSS` if not needed, and send configuration to
4949
RAM+BBR+Flash
5050
4. Open `View->Configuration View`
5151

@@ -76,18 +76,18 @@ OpenWrt saves the raw receiver data to the router's MicroSD card, optionally con
7676
optionally send it to an upstream server using the 4G connection.
7777

7878
<figure>
79-
<img src="20240915_162004.jpg" width="800"
79+
<img src="20240915_162004.jpg" width="600"
8080
alt="GL-iNet basic GNSS logger">
81-
<figcaption>GL-iNet basic GNSS logger with a single U-blox ZED-F9P.</figcaption>
81+
<figcaption><em><small>GL-iNet basic GNSS logger with a single U-blox ZED-F9P.</small></em></figcaption>
8282
</figure>
8383

8484
\
8585
With an additional USB hub the router can log data from more than one receiver.
8686

8787
<figure>
88-
<img src="20240915_161440.jpg" width="800"
88+
<img src="20240915_161440.jpg" width="600"
8989
alt="GL-iNet dual GNSS logger">
90-
<figcaption>GL-iNet dual GNSS logger with two U-blox ZED-F9P's.</figcaption>
90+
<figcaption><em><small>GL-iNet dual GNSS logger with two U-blox ZED-F9P's.</small></em></figcaption>
9191
</figure>
9292

9393
\
@@ -115,10 +115,7 @@ installation manual.
115115

116116
## Raspberry Pi with Teltonika RUT240 4G router
117117

118-
This setup is now obsolete as the *GL-iNet X750* is our preferred platform because of the
119-
lower power requirements and ease of installation and use. Some description may be added
120-
at a later time for historical reasons. We use the hardware setup with Raspberry Pi also as
121-
a reference benchmark for comparisons.
118+
This setup on a Raspberry Pi is pretty standard and not further discussed (The *GL-iNet X750* is our preferred platform because of the lower power requirements).
122119

123120
## UbxLogger software
124121

@@ -147,33 +144,25 @@ upstream server, desktop or laptop using the same scripts.
147144

148145
All data files follow the RINEX3 file naming convention
149146

150-
> SITExxST#_YYYYDDDHHMM_FFU_DDU_MO.{ubx|rnx|crx}[.gz]
147+
> SITE9CHAR_YYYYDDDHHMM_FFU_DDU_MO.{ubx|rnx|crx}[.gz]
151148
152149
All elements are fixed length and are separated by an underscore “_” except
153150
for the file type (`ubx`, `rnx` or `crx`) and optional compression field (`.gz`)
154151
that use a period “.” as a separator.
155152

156-
The 9 character station name `SITExxST#` consists of a 4-character site name `SITE` (e.g.
157-
'ZEGV', 'ROVN', ...), a fixed separator `xx`, and an instrument sub-identifier `ST#`.
158-
Note that we cannot use `_` or `-` as separators or in the names, as `_` is reserved for
153+
The 9 character station name `SITE9CHAR` consists usually follows the convention `SITEMRCCC` with a 4-character site name `SITE` (e.g.
154+
'ZEGV', 'ROVN', ...), two decimals `MR` for the monument and receiver number, and the country code `CCC`.
155+
However, you can use any naming convention as long as the total length does not exceed 9 characters, and you don't use `_` or `-` in the name, as `_` is reserved for
159156
separating fields in the RINEX name, nor can we use `-` as this is very
160-
awkward for shell scripting. The `xx` sets it also apart from the IGS naming convention.
161-
162-
The instrument identifier `ST#` can basically be anything as long as it is 3 characters, so
163-
that the total length of the station name does not exceed 9 characters. A sensible
164-
naming scheme could be the following: two characters `ST` (for stratum) identifying the
165-
foundation depth followed by a number `#` to indicate the location at a site (to cover
166-
situations when there are multiple instrument locations at a site). The stratum `ST` can either
167-
be *TS* an instrument embeded in the top soil, *DF* for a deeply founded instrument, or *SA*,
168-
*SB*, *SC*, etc., to indicate a specific stratum in the soil layers.
157+
awkward for shell scripting.
169158

170159
The software is managed through the `ubxlogd` script. The syntax is
171160

172161
> ./ubxlogd.sh [start|stop|check|restart|status] 'identifier'\
173162
> ./ubxlogd.sh status\
174163
> ./ubxlogd -h
175164
176-
The 9 character station name `SITExxST#` is used for `'identifier'`.
165+
The 9 character station name `SITE9CHAR` is used for `'identifier'`.
177166

178167
For more details and other commands see the [UbxLogger Software Manual][1].
179168

@@ -263,9 +252,9 @@ meter is used. For the 5 V circuit a USB 3.0 *AT35 3.7-30V 0-4A* digital Multime
263252
Both instruments measure instantaneous Voltage (V), Amperes (A) and Power (W) and the consumed energy (Wh) over time.
264253

265254
<figure>
266-
<img src="./20240915_150119.jpg" width="800"
255+
<img src="./20240915_150119.jpg" width="600"
267256
alt="GL-iNet dual GNSS logger">
268-
<figcaption>Power test measurement setup with GL-iNet dual GNSS logger with two U-blox ZED-F9P's.</figcaption>
257+
<figcaption><em><small>Power test measurement setup with GL-iNet dual GNSS logger with two U-blox ZED-F9P's.</small></em></figcaption>
269258
</figure>
270259

271260
#### GL-iNet X750V with two ZED-F9P receivers

docs/UbxLogger_Software_Manual.md

Lines changed: 23 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -73,11 +73,13 @@ The command `./ubxlogd.sh status 'identifier'` only writes to the console. It do
7373
anything in the log file. It is intended to be used from the command line to inspect the
7474
status of the deamon. It can be used with and without optional `'identifier'`.
7575

76-
The `'identifier'` is the name of the stream. It typically consists of a four letter sitename,
77-
followed by 'xx', and then a three letter instrument code. Two examples are *ZEGVxxTS1* and
78-
*ZEGVxxDF1*, for a site in Zegveld, one instrument on the top soil (*TS1*) and the other
79-
deeply founded (*DF1*). The number is used when there are more instrument locations on the
80-
same site. See also the sections on naming conventions.
76+
The `'identifier'` is the name of the stream. It is usually the same as the 9 character
77+
RINEX-3 station name `SITEMRCCC`, with `SITE` a four letter sitename, followed by two
78+
digits `MR` for the monument and receiver number, and country code `CCC`. Other naming
79+
conventions are also possible, as long as the total length does not exceed 9 characters,
80+
and you don't use `_` or `-` in the name, as `_` is reserved for
81+
separating fields in the RINEX name, nor can we use `-` as this is very
82+
awkward for shell scripting.
8183

8284
The raw ubx data is written to hourly files in the `run/` directory following the RINEX3 naming
8385
convention, with `ubx` as file extension (instead of `rnx`) and `'identifier'` as station
@@ -272,6 +274,7 @@ The default directory stucture for `UbxLogger` is
272274
> | | |- doy
273275
> | | v
274276
> | v
277+
> |- docs
275278
> |- log
276279
> |- run
277280
> |- scripts
@@ -308,22 +311,17 @@ The default directory structure can be changed in the configuration file.
308311

309312
All data files follow the RINEX3 file naming convention
310313

311-
> XXXXMRCCC_R_YYYYDDDHHMM_FFU_DDU_MO.{ubx|rnx|crx}[.gz] \
312-
> XXXXMRCCC_R_YYYYDDDHHMM_FFU_MN.rnx[.gz] \
313-
>
314-
> SITExxST#_YYYYDDDHHMM_FFU_DDU_MO.{ubx|rnx|crx}[.gz]
314+
> SITE9CHAR_R_YYYYDDDHHMM_FFU_DDU_MO.{ubx|rnx|crx}[.gz] \
315+
> SITE9CHAR_R_YYYYDDDHHMM_FFU_MN.rnx[.gz] \
315316
316-
All elements are fixed length and are separated by an underscore _ except
317+
All elements are fixed length and are separated by an underscore "_" except
317318
for the file type (`ubx`, `rnx` or `crx`) and optional compression field (`.gz`)
318-
that use a period “.” as a separator. The individual elements are:
319+
that use a period "." as a separator. The individual elements are:
319320

320-
Station/project name `XXXXMRCCC` or `SITExxST#`
321-
: This is a 9 character station or project name. The IGS convention is to use 4 characters
322-
`XXXX`for the site/station, two digits `MR` to indicate the monument respectively receiver number,
321+
Station/project name `SITE9CHAR`
322+
: This is a 9 character station or project name. The IGS convention is to use `XXXXMRCCC` with
323+
`XXXX` 4 characters for the site/station, two digits `MR` to indicate the monument respectively receiver number,
323324
and the ISO country code `CCC`, but this is not mandatory for other projects.
324-
For subsidence monitoring and geodetic extensometer applications the following naming
325-
convention for the 9 character station name is proposed,`SITExxST#`, see also the next
326-
section.
327325
This element is also used as `UbxLogger` stream/receiver identifier `'identifier'`.
328326

329327
Data source `R`
@@ -355,28 +353,6 @@ Data type and format `{MO|MN}.{ubx|rnx|crx}[.gz]`
355353
It is standard to archive the files in a layered directory structure `./YYYY/DDD/` with `YYYY`
356354
the year and `DDD` the day number of the year.
357355

358-
## Station naming convention
359-
360-
For subsidence monitoring and geodetic extensometer applications the following naming convention
361-
for the 9 character station name, used for the first element in the file name (see above) and used
362-
as identifier in `UbxLogger`, is proposed:
363-
364-
> SITExxST#
365-
366-
with `SITE` the 4-character site name (e.g. 'ZEGV', 'ROVN', ...), `xx` a fixed separator, and
367-
`ST#` the instrument identifier at the site. Note that we cannot use `_` or `-` as separators or in the names,
368-
as `_` is reserved for separating fields in the RINEX name, nor can we use `-` as this is very
369-
awkward for shell scripting. The `xx` sets it also apart from the IGS naming convention.
370-
371-
The instrument identifier `ST#` can basically be anything as long as it is 3 characters, so that the
372-
total length of the station name does not exceed 9 characters. A sensible
373-
naming scheme could be the following: two characters `ST` (for stratum) identifying the
374-
foundation depth followed by a number `#` to indicate the location at a site (to cover situations when
375-
there are multiple instrument locations at a site). The stratum `ST` can either be *TS* an instrument
376-
embeded in the top soil, *DF* for a deeply founded instrument, or *SA*, *SB*, *SC*, etc., to
377-
indicate a specific stratum in the soil layers.
378-
379-
380356
## USB port number assignment
381357

382358
The device name (ttyACM0, ttyACM1, ..), which is needed by `ubxlogd`, is assigned more or
@@ -391,25 +367,25 @@ serial id that otherwise can be used to distinquish between receivers.
391367
between receivers using the USB device path.**
392368

393369
The device path must then be specified in the configuration file for each receiver.
394-
An example for setting the device paths in the configuratuin file is given below:
370+
An example for setting the device paths in the configuration file is given below:
395371

396-
> devpath_ZEGVxxTS1=1.3.2 \
397-
> devpath_ZEGVxxDF1=1.3.4
372+
> devpath_ZVTS00NLD=1.3.1 \
373+
> devpath_ZVDF00NLD=1.3.2
398374
399-
The identifier (e.g. `ZEGVxxTS1`) must preceeded by `devpath_`, the value is the USB
375+
The identifier (e.g. `ZVTS00NLD`) must preceeded by `devpath_`, the value is the USB
400376
device part (think of this a kind of port number) with variable name `${devpath}`.
401377

402378
These settings are used by a function 'get_dev', also defined in the configuration file,
403-
which uses the instrument identifier `${identifier}` variable (e.g. "ZEGVxxTS1") to
404-
find the corresponding device path, set `${devpath}` (e.g. "1.3.2"), and then resolve
379+
which uses the instrument identifier `${identifier}` variable (e.g. "ZVTS00NLD") to
380+
find the corresponding device path, set `${devpath}` (e.g. "1.3.1"), and then resolve
405381
the device name (e.g. ttyACM0) and return this in the variable `${dev}`.
406382

407-
The logic is to look for the USB device path `${devpath}` in the system directory
383+
The logic is to look for the USB device path `${devpath}` in the system directory
408384
`/sys/bus/usb/devices/1-${devpath}:1.0/tty)`, which points to the tty device `${dev}` (e.g. ttyACM0)
409385
that is used for the USB serial device.
410386

411387
The value of `${devpath}` must be set in `devpath_${instrument}=${devpath}`, e.g.
412-
`devpath_ZEGVxxTS1=1.3.2`. The actual value, in our case '1.3.2', depends on the USB port
388+
`devpath_ZVTS00NLD=1.3.1`. The actual value, in our case '1.3.1', depends on the USB port
413389
that we are using. In this case it is the second port on a USB hub which itself has
414390
device path '1.3'. The actual numbers are different for each system.
415391

0 commit comments

Comments
 (0)