RTKBase: a GUI for your own Gnss Base Station

Ooh, careful with that, you can easily corrupt your file system if it’s writing when you pull the power. I’ve attached a simple switch to pins 5 and 6 (IIRC) so it can be rebooted elegantly.

“Immutable” Linux is all the rage these days to address problems like power failures, or seven security breaches. nixOS has been talked about a lot online. I haven’t had time to explore it, but it sounds interesting. The idea is everything is read-only, so no changes are possible, and updates are atomic, so the system is always guaranteed to be in a good state, and new installs of the OS are always repeatable if you had to replace your hardware, for example. Usually I dread upgrading my system because I end up having to rebuild lots of things and config files, but nixOS makes that easier. So they tell me. I might be a bit too old to learn a new and very different linux distro! But if I want to make our farm RTK setup so that it’s still workable for others if something happens to me, this might be the ticket.

There is a mode in nixOS called “impermanence” where everything except some essential state is wiped every boot. This would be ideal for RTKBase.

hi, how do you change ip address of rtkBase? I am experiencing some ip conflict on my network, and my router does not show up rtkBase IP even if i can connect to it.

Hi !

It’s strange that the main service is off after a restart.
Maybe @bluerabbit case gave an answer : If the gnss board doesn’t get the same tty path, the main service will fail.

If you have another power cut, could you check if the tty path changed in /dev/ ?

Perhaps you had a very small power cut, which was long enough to cut the F9P power, but not the Pi. Then the F9P got a new tty path.

I have something that could fix that. I think I will include this in the next release. It’s a udev rules. With it the F9P will always get a ttyGNSS path.

It’s your router that gives an ip adress to your base station with its dhcp service.

That’s exactly what happened to me.

You can set a static IP on the Pi either from the GUI (right click on the network icon near the clock and follow your nose) or from the CLI:

So I set up an orange pi today. Right at the end there was this error message, and an IP scanner shows port 80 is closed. I disabled the firewall on the pi, didn’t help. Any advice? Thanks!

EDIT: trying to access via ip address doesn’t work either

You can ignore the gpsd.service error.

Check the output of sudo systemctl status rtkbase_web and for more details : sudo journalctl -u rtkbase_web

orangepi@orangepizero3:~$ sudo systemctl status rtkbase_web
● rtkbase_web.service - RTKBase Web Server
Loaded: loaded (/etc/systemd/system/rtkbase_web.service; enabled; vendor preset: enabled)
Active: activating (auto-restart) (Result: exit-code) since Fri 2023-10-13 12:59:14 UTC; 23s ago
Process: 4125 ExecStart=/usr/bin/python3 /home/orangepi/rtkbase/web_app/server.py (code=exited, status=1/FAILURE)
Main PID: 4125 (code=exited, status=1/FAILURE)
CPU: 3.811s

orangepi@orangepizero3:~$ sudo journalctl -u rtkbase_web
Oct 13 12:56:54 orangepizero3 systemd[1]: Started RTKBase Web Server.
Oct 13 12:56:57 orangepizero3 python3[4029]: /usr/local/lib/python3.10/dist-packages/_distutils_hack/init.py:33: UserWarning: Setuptools is replacing distutils.
Oct 13 12:56:57 orangepizero3 python3[4029]: warnings.warn(“Setuptools is replacing distutils.”)
Oct 13 12:56:57 orangepizero3 python3[4029]: Traceback (most recent call last):
Oct 13 12:56:57 orangepizero3 python3[4029]: File “/home/orangepi/rtkbase/web_app/server.py”, line 59, in
Oct 13 12:56:57 orangepizero3 python3[4029]: from flask_bootstrap import Bootstrap4
Oct 13 12:56:57 orangepizero3 python3[4029]: File “/usr/local/lib/python3.10/dist-packages/flask_bootstrap/init.py”, line 3, in
Oct 13 12:56:57 orangepizero3 python3[4029]: from flask import current_app, Markup, Blueprint, url_for
Oct 13 12:56:57 orangepizero3 python3[4029]: File “/usr/local/lib/python3.10/dist-packages/flask/init.py”, line 5, in
Oct 13 12:56:57 orangepizero3 python3[4029]: from .app import Flask as Flask
Oct 13 12:56:57 orangepizero3 python3[4029]: File “/usr/local/lib/python3.10/dist-packages/flask/app.py”, line 30, in
Oct 13 12:56:57 orangepizero3 python3[4029]: from werkzeug.urls import url_quote
Oct 13 12:56:57 orangepizero3 python3[4029]: ImportError: cannot import name ‘url_quote’ from ‘werkzeug.urls’ (/usr/local/lib/python3.10/dist-packages/werkzeug/urls.py)
Oct 13 12:56:58 orangepizero3 systemd[1]: rtkbase_web.service: Main process exited, code=exited, status=1/FAILURE
Oct 13 12:56:58 orangepizero3 systemd[1]: rtkbase_web.service: Failed with result ‘exit-code’.
Oct 13 12:56:58 orangepizero3 systemd[1]: rtkbase_web.service: Consumed 4.057s CPU time.
Oct 13 12:57:28 orangepizero3 systemd[1]: rtkbase_web.service: Scheduled restart job, restart counter is at 1.
Oct 13 12:57:28 orangepizero3 systemd[1]: Stopped RTKBase Web Server.
Oct 13 12:57:28 orangepizero3 systemd[1]: rtkbase_web.service: Consumed 4.057s CPU time.
Oct 13 12:57:28 orangepizero3 systemd[1]: Started RTKBase Web Server.
Oct 13 12:57:31 orangepizero3 python3[4099]: /usr/local/lib/python3.10/dist-packages/_distutils_hack/init.py:33: UserWarning: Setuptools is replacing distutils.
Oct 13 12:57:31 orangepizero3 python3[4099]: warnings.warn(“Setuptools is replacing distutils.”)
Oct 13 12:57:31 orangepizero3 python3[4099]: Traceback (most recent call last):
Oct 13 12:57:31 orangepizero3 python3[4099]: File “/home/orangepi/rtkbase/web_app/server.py”, line 59, in
Oct 13 12:57:31 orangepizero3 python3[4099]: from flask_bootstrap import Bootstrap4
Oct 13 12:57:31 orangepizero3 python3[4099]: File “/usr/local/lib/python3.10/dist-packages/flask_bootstrap/init.py”, line 3, in

Thanks,
Could you open a ticket on the github repository with all these informations and add the informations asked for a new ticket ?

Like that?

1 Like

Hello,

I seem to have a strange problem, which I am having a hard time to fix.

My orange pi base has worked flawless for a year or so, but now ntrip service a is working as should, connected to centipede. My ntrip service b connected to rtk2go is not working. It seems to be connected but just not sending corrections. Rtk2go pointed me to a Rtklib known problem and suggested a power cycle, which did not solve the problem for me.

Any suggestions?

Ntrip A (caster.centipede.fr) is working
but
Ntrip B (rtk2go) isn’t working ?

Seems to be the case, although I get the feeling service A is not behaving as should, loose rtk quite easily it seems the past few weeks…

What is your mount point on the centipede caster ? I will check the rtcm stream.

It is: DRGHZ

Everything seems ok with the centipede caster. As the source is the same for all the ntrip service, rtk2go should be ok too.

image

Thank you for checking, might try to make a new mountpoint with rtk2go, or stick with centipede which usually works fine for me.

I encountered the problem with Werkzeug tonight. The solution seems to be to add Werkzeug==2.2.2 to the requirements.txt so pip will install that version instead of the current 3.0.0 version, which Flask is not compatible with. I added a comment to the github issue linked to earlier to indicate this.

So did you manually install it? Or just “threw it in” requirements.txt when you were done running the ./install.sh?