Skip to content

Commit 5f2a7a8

Browse files
authored
Merge pull request #298 from Stefal/dev
Merge dev 2.4.0 to master
2 parents fe17b9e + 2b66027 commit 5f2a7a8

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

72 files changed

+1962
-671
lines changed

CHANGELOG.md

Lines changed: 43 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,49 @@
11
# Changelog
2+
3+
## [2.4.0] - 2023-02-20
4+
### Added
5+
- GUI -> Settings: Added a 2nd NTRIP output. #240
6+
- GUI -> Settings: Added features to backup, restore and reset RTKBase settings.
7+
- GUI -> Settings: Added a button to detect and/or configure the gnss receiver. #70
8+
- GUI -> Settings: Added a button to show/hide the Ntrip passwords. Thanks to @GwnDaan #208
9+
- GUI -> Settings: Added Gnss receiver informations (Model and firmware release).
10+
- GUI -> Settings: Added Operating system informations.
11+
- GUI -> Settings: Alert when user wants to leave the page with unsaved settings. #235
12+
- GUI -> Status: Added tooltip on the blue pin to explain that it's a coarse location. #247
13+
- GUI -> Status: Added an alert if the main service isn't active.
14+
- GUI -> Logs: Added 3 more Rinex presets, and modified rinex window layout. #43 #134 #190 #200
15+
- Bidirectionnal communication with the gnss receiver is enabled. #277
16+
- More informations are available in the local caster source table. #183
17+
- Port number for the web server is configurable in settings.conf
18+
### Changed
19+
- RTKLib upgraded to release b34g from rtklibexplorer. #222
20+
- RTKLib binaries are bundled for armv6l, armv7l, aarch64, x86. Compilation from source isn't needed anymore for these platforms.
21+
- Command line: Many changes on install.sh arguments/options. See `install.sh --help`
22+
- Flask upgraded to v2.2.2 and other dependencies upgraded too.
23+
- SocketIO upgraded to v4.4.1
24+
- Bootstrap upgraded to v4.6.1
25+
- Bootstrap-table upgraded to v1.21.1
26+
- Password for local caster isn't mandatory anymore. Thanks to @GwnDaan #210
27+
- Change socketio connection method. Thanks to @jaapvandenhandel
28+
- Change 127.0.0.1 to localhost for better ipv6 support. Thanks to @by
29+
### Fixed
30+
- GUI -> Status: Sat. levels and coordinates are set to zero in case of a signal interruption. #164
31+
- GUI -> Status: Sat. levels are left align. Thanks to @GwnDaan #72
32+
- GUI -> Status: New provider for OpenStreetMap HOT tiles.
33+
- GUI: After a RTKBase update, the browser won't use the old javascript files anymore (cache busting). #217
34+
- Remaining space check could not work with non english shell. Thanks to @GwnDaan #213
35+
- GUI -> Settings: No more "bounce" issues with the switches. Thanks to @GwnDaan
36+
- Max Cpu temp was not updated when no user were connected. Thanks to @GwnDaan
37+
- GUI -> Settings: Check update now display an error in case of a connection error. Thanks to @GwnDaan #221
38+
- GUI -> Logs: Better logs table behaviour on mobile devices.
39+
- Grep pattern fixed on PPS example. Thanks to @by.
40+
41+
### Security
42+
243
## [2.3.4] - 2022-04-01
344
### Fixed
4-
- Failure with some python dependancies. #215
5-
- More fixes with Gpsd service restart. #94
45+
- Failure with some python dependancies. #215
46+
- More fixes with Gpsd service restart. #94
647

748
## [2.3.3] - 2022-02-28
849
### Fixed

README.md

Lines changed: 81 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,10 @@ Frontend's main features are:
99

1010
+ View the satellites signal levels
1111
+ View the base location on a map
12-
+ Start/stop various services (Sending data to a Ntrip caster, Ntrip caster, Rtcm server, Sending Rtcm stream on a radio link, Log raw data to files)
12+
+ Detect and configure the Gnss receiver (F9P)
13+
+ Start/stop various services (Sending data to a Ntrip caster, internal Ntrip caster, Rtcm server, Sending Rtcm stream on a radio link, Log raw data to files)
1314
+ Edit the services settings
15+
+ Convert raw data to Rinex
1416
+ Download/delete raw data
1517

1618
## Base example:
@@ -34,12 +36,12 @@ If you use a Raspberry Pi, thanks to [jancelin](https://github.com/jancelin), yo
3436

3537
+ Open a terminal and:
3638

37-
```bash
38-
$ cd ~
39-
$ wget https://raw.githubusercontent.com/Stefal/rtkbase/master/tools/install.sh -O install.sh
40-
$ chmod +x install.sh
41-
$ sudo ./install.sh --all
42-
```
39+
```bash
40+
cd ~
41+
wget https://raw.githubusercontent.com/Stefal/rtkbase/master/tools/install.sh -O install.sh
42+
chmod +x install.sh
43+
sudo ./install.sh --all
44+
```
4345

4446
+ Go grab a coffee, it's gonna take a while. The script will install the needed software, and if you use a Usb-connected U-Blox ZED-F9P receiver, it'll be detected and set to work as a base station. If you don't use a F9P, you will have to configure your receiver manually (see step 7 in manual installation), and choose the correct port from the settings page.
4547

@@ -54,8 +56,8 @@ If you use a Raspberry Pi, thanks to [jancelin](https://github.com/jancelin), yo
5456

5557
## Manual installation:
5658
The `install.sh` script can be used without the `--all` option to split the installation process into several different steps:
57-
```bash
58-
$ ./install.sh --help
59+
```
60+
./install.sh --help
5961
################################
6062
RTKBASE INSTALLATION HELP
6163
################################
@@ -69,64 +71,81 @@ The `install.sh` script can be used without the `--all` option to split the inst
6971
sudo ./install.sh
7072
7173
Options:
72-
--all
73-
Install all dependencies, Rtklib, last release of Rtkbase, gpsd, chrony, services,
74+
-a | --all
75+
Install all you need to run RTKBase : dependencies, RTKlib, last release of Rtkbase, services,
7476
crontab jobs, detect your GNSS receiver and configure it.
7577
76-
--dependencies
78+
-v | --alldev <branch>
79+
Install all as --all option, but use the rtkbase github repo instead of the release
80+
You have to select the git branch you want to install.
81+
82+
-u | --user
83+
Use this username as User= inside service unit and for path to rtkbase:
84+
--user=john will install rtkbase in /home/john/rtkbase
85+
86+
-d | --dependencies
7787
Install all dependencies like git build-essential python3-pip ...
7888
79-
--rtklib
80-
Clone RTKlib 2.4.3 from github and compile it.
81-
https://github.com/tomojitakasu/RTKLIB/tree/rtklib_2.4.3
89+
-r | --rtklib
90+
Get RTKlib 2.4.3b34g from github and compile it.
91+
https://github.com/rtklibexplorer/RTKLIB/tree/b34g
8292
83-
--rtkbase-release
84-
Get last release of RTKBASE:
93+
-b | --rtkbase-release
94+
Get last release of RTKBase:
8595
https://github.com/Stefal/rtkbase/releases
8696
87-
--rtkbase-repo
88-
Clone RTKBASE from github:
89-
https://github.com/Stefal/rtkbase/tree/web_gui
97+
-i | --rtkbase-repo <branch>
98+
Clone RTKBASE from github with the <branch> parameter used to select the branch.
99+
100+
-f | --rtkbase-custom <source>
101+
Get RTKBASE from an url.
90102
91-
--unit-files
103+
-t | --unit-files
92104
Deploy services.
93105
94-
--gpsd-chrony
106+
-g | --gpsd-chrony
95107
Install gpsd and chrony to set date and time
96108
from the gnss receiver.
97109
98-
--detect-usb-gnss
99-
Detect your GNSS receiver.
110+
-e | --detect-usb-gnss
111+
Detect your GNSS receiver. It works only with usb-connected receiver like ZED-F9P.
100112
101-
--configure-gnss
113+
-n | --no-write-port
114+
Doesn't write the detected port inside settings.conf.
115+
Only relevant with --detect-usb-gnss argument.
116+
117+
-c | --configure-gnss
102118
Configure your GNSS receiver.
103119
104-
--start-services
120+
-s | --start-services
105121
Start services (rtkbase_web, str2str_tcp, gpsd, chrony)
106122
123+
-h | --help
124+
Display this help message.
125+
107126
```
108127
So, if you really want it, let's go for a manual installation with some explanations:
109128
1. Install dependencies with `sudo ./install.sh --dependencies`, or do it manually with:
110129
```bash
111-
$ sudo apt update
112-
$ sudo apt install -y git build-essential python3-pip python3-dev python3-setuptools python3-wheel libsystemd-dev bc dos2unix socat
130+
sudo apt update
131+
sudo apt install -y git build-essential pps-tools python3-pip python3-dev python3-setuptools python3-wheel libsystemd-dev bc dos2unix socat zip unzip pkg-config psmisc
113132
```
114133

115134
1. Install RTKLIB with `sudo ./install.sh --rtklib`, or:
116-
+ clone [RTKlib](https://github.com/tomojitakasu/RTKLIB/tree/rtklib_2.4.3)
135+
+ get [RTKlib](https://github.com/rtklibexplorer/RTKLIB)
117136

118137
```bash
119-
$ cd ~
120-
$ git clone -b rtklib_2.4.3 --single-branch https://github.com/tomojitakasu/RTKLIB
138+
cd ~
139+
wget -qO - https://github.com/rtklibexplorer/RTKLIB/archive/refs/tags/b34g.tar.gz | tar -xvz
121140
```
122141

123142
+ compile and install str2str:
124143

125144
Optionally, you can edit the CTARGET line in makefile in RTKLIB/app/str2str/gcc
126145

127146
```bash
128-
$ cd RTKLIB/app/str2str/gcc
129-
$ nano makefile
147+
cd RTKLIB/app/str2str/gcc
148+
nano makefile
130149
```
131150

132151
For an Orange Pi Zero SBC, i use:
@@ -136,33 +155,33 @@ So, if you really want it, let's go for a manual installation with some explanat
136155
Then you can compile and install str2str:
137156

138157
```bash
139-
$ make
140-
$ sudo make install
158+
make
159+
sudo make install
141160
```
142161
+ Compile/install `rtkrcv` and `convbin` the same way as `str2str`.
143162

144163
1. Get latest rtkbase release `sudo ./install.sh --rtkbase-release`, or:
145164
```bash
146-
$ wget https://github.com/stefal/rtkbase/releases/latest/download/rtkbase.tar.gz -O rtkbase.tar.gz
147-
$ tar -xvf rtkbase.tar.gz
165+
wget https://github.com/stefal/rtkbase/releases/latest/download/rtkbase.tar.gz -O rtkbase.tar.gz
166+
tar -xvf rtkbase.tar.gz
148167
149168
```
150169
If you prefer, you can clone this repository to get the latest code.
151170

152171
1. Install the rtkbase requirements:
153172
```bash
154-
$ python3 -m pip install --upgrade pip setuptools wheel --extra-index-url https://www.piwheels.org/simple
155-
$ python3 -m pip install -r rtkbase/web_app/requirements.txt --extra-index-url https://www.piwheels.org/simple
173+
python3 -m pip install --upgrade pip setuptools wheel --extra-index-url https://www.piwheels.org/simple
174+
python3 -m pip install -r rtkbase/web_app/requirements.txt --extra-index-url https://www.piwheels.org/simple
156175
157176
1. Install the systemd services with `sudo ./install.sh --unit-files`, or do it manually with:
158177
+ Edit them (`rtkbase/unit/`) to replace `{user}` with your username.
159178
+ If you log the raw data inside the base station, you may want to compress these data and delete the too old archives. `archive_and_clean.sh` will do it for you. The default settings compress the previous day data and delete all archives older than 90 days. To automate these 2 tasks, enable the `rtkbase_archive.timer`. The default value runs the script every day at 04H00.
160179
+ Copy these services to `/etc/systemd/system/` then enable the web server, str2str_tcp and rtkbase_archive.timer:
161180
```bash
162-
$ sudo systemctl daemon-reload
163-
$ sudo systemctl enable rtkbase_web
164-
$ sudo systemctl enable str2str_tcp
165-
$ sudo systemctl enable rtkbase_archive.timer
181+
sudo systemctl daemon-reload
182+
sudo systemctl enable rtkbase_web
183+
sudo systemctl enable str2str_tcp
184+
sudo systemctl enable rtkbase_archive.timer
166185
```
167186
1. Install and configure chrony and gpsd with `sudo ./install.sh --gpsd-chrony`, or:
168187
+ Install chrony with `sudo apt install chrony` then add this parameter in the chrony conf file (/etc/chrony/chrony.conf):
@@ -174,7 +193,7 @@ So, if you really want it, let's go for a manual installation with some explanat
174193
```
175194
# Devices gpsd should connect to at boot time.
176195
# They need to be read/writeable, either by user gpsd or the group dialout.
177-
DEVICES="tcp://127.0.0.1:5015"
196+
DEVICES="tcp://localhost:5015"
178197
179198
# Other options you want to pass to gpsd
180199
GPSD_OPTIONS="-n -b"
@@ -190,9 +209,9 @@ So, if you really want it, let's go for a manual installation with some explanat
190209
```
191210
+ Reload the services and enable them:
192211
```bash
193-
$ sudo systemctl daemon-reload
194-
$ sudo systemctl enable chrony
195-
$ sudo systemctl enable gpsd
212+
sudo systemctl daemon-reload
213+
sudo systemctl enable chrony
214+
sudo systemctl enable gpsd
196215
```
197216

198217
1. Connect your gnss receiver to raspberry pi/orange pi/.... with usb or uart, and check which com port it uses (ttyS1, ttyAMA0, something else...). If it's a U-Blox usb receiver, you can use `sudo ./install.sh --detect-usb-gnss`. Write down the result, you may need it later.
@@ -201,37 +220,38 @@ So, if you really want it, let's go for a manual installation with some explanat
201220

202221
If it's a U-Blox ZED-F9P (usb), you can use
203222
```bash
204-
$ sudo ./install.sh --detect-usb-gnss --configure-gnss
223+
sudo ./install.sh --detect-usb-gnss --configure-gnss
205224
```
206225

207226
If it's a U-Blox ZED-F9P (uart), you can use this command (change the ttyS1 and 115200 value if needed)):
208227
```bash
209-
$ rtkbase/tools/set_zed-f9p.sh /dev/ttyS1 115200 rtkbase/receiver_cfg/U-Blox_ZED-F9P_rtkbase.cfg
228+
rtkbase/tools/set_zed-f9p.sh /dev/ttyS1 115200 rtkbase/receiver_cfg/U-Blox_ZED-F9P_rtkbase.cfg
210229
```
211230
212231
If you need to use a config tool from another computer (like U-center), you can use `socat`:
213232

214233
```bash
215-
$ sudo socat tcp-listen:128,reuseaddr /dev/ttyS1,b115200,raw,echo=0
234+
sudo socat tcp-listen:128,reuseaddr /dev/ttyS1,b115200,raw,echo=0
216235
```
217236

218237
Change the ttyS1 and 115200 value if needed. Then you can use a network connection in U-center with the base station ip address and the port n°128.
219238

220239
1. Now you can start the services with `sudo ./install.sh --start-services`, or:
221240
```bash
222-
$ sudo systemctl start rtkbase_web
223-
$ sudo systemctl start str2str_tcp
224-
$ sudo systemctl start gpsd
225-
$ sudo systemctl start chrony
226-
$ sudo systemctl start rtkbase_archive.timer
241+
sudo systemctl start rtkbase_web
242+
sudo systemctl start str2str_tcp
243+
sudo systemctl start gpsd
244+
sudo systemctl start chrony
245+
sudo systemctl start rtkbase_archive.timer
227246
```
228247

229248
Everything should be ready, now you can open a web browser to your base station ip address.
230249

231250
## How it works:
232251
RTKBase use several RTKLIB `str2str` instances started with `run_cast.sh` as systemd services. `run_cast.sh` gets its settings from `settings.conf`
233252
+ `str2str_tcp.service` is the main instance. It is connected to the gnss receiver and broadcast the raw data on TCP for all the others services.
234-
+ `str2str_ntrip.service` get the data from the main instance, convert the data to rtcm and stream them to a Ntrip caster.
253+
+ `str2str_ntrip_A.service` get the data from the main instance, convert the data to rtcm and stream them to a Ntrip caster.
254+
+ `str2str_ntrip_B.service` get the data from the main instance, convert the data to rtcm and stream them to another Ntrip caster.
235255
+ `str2str_local_ntrip_caster.service` get the data from the main instance, convert the data to rtcm, and act as a local Ntrip caster.
236256
+ `str2str_rtcm_svr.service` get the data from the main instance, convert the data to rtcm and stream them to clients
237257
+ `str2str_rtcm_serial.service` get the data from the main instance, convert the data to rtcm and stream them to a serial port (radio link, or other peripherals)
@@ -251,10 +271,10 @@ The default map background is OpenStreetMap, but you can switch to a worldwide a
251271
## Development release:
252272
If you want to install RTKBase from the dev branch, you can do it with these commands:
253273
```bash
254-
$ cd ~
255-
$ wget https://raw.githubusercontent.com/Stefal/rtkbase/dev/tools/install.sh -O install.sh
256-
$ chmod +x install.sh
257-
$ sudo ./install.sh --alldev
274+
cd ~
275+
wget https://raw.githubusercontent.com/Stefal/rtkbase/dev/tools/install.sh -O install.sh
276+
chmod +x install.sh
277+
sudo ./install.sh --alldev dev
258278
```
259279

260280
## Other usages:
@@ -321,4 +341,4 @@ RTKBase uses some parts of other software:
321341
+ [pystemd](https://github.com/facebookincubator/pystemd) (L-GPL 2.1)
322342
+ [gpsd](https://gitlab.com/gpsd/gpsd) (BSD-2-Clause)
323343

324-
RTKBase uses [OpenStreetMap](https://www.openstreetmap.org) tiles, courtesy of [Empreinte digitale](https://cloud.empreintedigitale.fr).
344+
RTKBase uses [OpenStreetMap](https://www.openstreetmap.org) tiles. Thank you to all the contributors!

copy_unit.sh

Lines changed: 0 additions & 15 deletions
This file was deleted.

images/internal.png

-13.5 KB
Loading

images/internal_synoptic.odp

3.81 KB
Binary file not shown.

images/web_all_settings.png

138 KB
Loading

images/web_global.png

-51.9 KB
Loading

images/web_global_large.png

254 KB
Loading

images/web_logs.png

-6.97 KB
Loading

images/web_settings.png

11.2 KB
Loading

images/web_status.png

73.8 KB
Loading

0 commit comments

Comments
 (0)