Skip to content

Commit 89f651d

Browse files
committed
fix & enhance base station configuration
1 parent 37e06df commit 89f651d

38 files changed

Lines changed: 957 additions & 520 deletions

CITATION.bib

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ @Misc{PyGPSClient
22
author = {{SEMU Consulting}},
33
howpublished = {GitHub repository},
44
note = {Viewed last: xxxx:xx:xx},
5-
title = {Python Graphical GPS Client Application supporting NMEA, UBX, RTCM3, NTRIP & SPARTN Protocols},
5+
title = {Python Graphical GPS Client Application supporting NMEA, UBX, SBF, UNI, QGC, RTCM3, NTRIP & SPARTN Protocols},
66
year = {2022},
77
url = {https://github.com/semuconsulting/pygpsclient},
88
}

INSTALLATION.md

Lines changed: 30 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
[Basics](#basics) |
44
[Prerequisites](#prereqs) |
5+
[User Privileges](#userpriv) |
56
[Install with pip](#pip) |
67
[Install with pipx](#pipx) |
78
[Install with script](#script) |
@@ -60,6 +61,7 @@ The exact location of the site_packages and binary directories will depend on th
6061

6162
In the following, `python3` & `pip` refer to the Python 3 executables. You may need to substitute `python` for `python3`, depending on your particular environment (*on Windows it's generally `python`*).
6263

64+
- Graphical User Interface (window system / manager)
6365
- Python >= 3.10⁴
6466
- Tk (tkinter) >= 8.6⁵ (*tkinter is a commonly used library for developing Graphical User Interfaces (GUI) in Python*)
6567
- Screen resolution >= 640 x 480 (VGA); Ideally 1920 x 1080, though at lower screen resolutions (<= 1024 width), top level dialogs will be resizable and scrollable.
@@ -95,7 +97,7 @@ Note that on MacOS, serial ports may appear as `/dev/tty*` *or* `/dev/cu*`. To u
9597

9698
### Linux (including Raspberry Pi OS)
9799

98-
Some Linux distributions may not include the necessary pip, venv, tkinter, Pillow or spatialite libraries by default. They may need to be installed separately, e.g. for Debian-based distibutions, a combination of some or all of the following:
100+
Some older Linux distributions may not include all the necessary pip, venv, tkinter, Pillow or spatialite libraries by default e.g. for Debian-based distibutions, a combination of some or all of the following:
99101

100102
```shell
101103
sudo apt install python3-pip python3-tk python3-pil python3-venv python3-pil.imagetk libjpeg-dev zlib1g-dev tk-dev libspatialite
@@ -113,18 +115,20 @@ sudo pacman -S tk libspatialite
113115

114116
To access the serial port (`/dev/tty*`) on most Linux platforms, you will need to be a member of whichever group or "`Gid`" the `/dev/tty*` device belongs to. Failure to do this will typically result in an error `[Errno 13] could not open port /dev/ttyACM0 [Errno 13] permission denied /dev/ttyACM0`
115117

116-
To check and set the necessary group permissions:
118+
To check and set the necessary group permissions (*substitute your particular serial port for* `ttyACM0`):
117119

118120
```shell
119121
stat /dev/ttyACM0 | grep Gid
120122
```
121-
`Access: (0660/crw-rw----) Uid: ( 0/ root) Gid: ( 20/ dialout)` <-- group in this case is `dialout`; add user to this group using usermod (*you may have to log out and in again for this to take effect*):
123+
`Access: (0660/crw-rw----) Uid: ( 0/ root) Gid: ( 20/ dialout)` <-- group in this case is `dialout`
124+
125+
Add your user to this group using usermod (*you will need to log out and in again for this to take effect*):
122126

123127
```shell
124-
sudo usermod -a -G dialout myuser
128+
sudo usermod -aG dialout myuser
125129
```
126130

127-
For Debian-based platforms, the group is normally `dialout`; on Arch-based platforms it may be `uucp` or `tty`.
131+
For Debian-based platforms, the group is normally `dialout` or `tty`; on Arch-based platforms it is normally `uucp`.
128132

129133
Other than this, no special privileges are required.
130134

@@ -144,6 +148,7 @@ source pygpsclient/bin/activate # (or .\pygpsclient\Scripts\activate on Windows)
144148
python3 -m pip install --upgrade pygpsclient
145149
pygpsclient
146150
```
151+
**NB**: It is recommended to use the form `python3 -m pip install` (*or less ambiguously `python3.*`, where `*` is the Python minor version e.g. `python3.13`*) rather than simply `pip3 install`, particularly if you have multiple Python environments on your platform.
147152

148153
To deactivate the virtual environment:
149154

@@ -221,17 +226,35 @@ pipx will typically create a virtual environment in the user's home folder e.g.
221226
The following scripts require sudo/admin privileges and will prompt for the sudo password.
222227
223228
### Debian Linux
224-
An example [installation shell script](https://github.com/semuconsulting/PyGPSClient/blob/master/examples/pygpsclient_debian_install.sh) is available for use on most vanilla 64-bit Debian-based environments with Python>=3.10, including Raspberry Pi and Ubuntu. To run this installation script, download it to your Raspberry Pi or other Debian-based workstation and - from the download folder - type:
229+
An [installation shell script](https://github.com/semuconsulting/PyGPSClient/blob/master/examples/pygpsclient_debian_install.sh) is available for use on most vanilla 64-bit Debian-based desktop environments, including Raspberry Pi OS Trixie and Ubuntu LTS. The script...
230+
- Installs all necessary Python system libraries.
231+
- Installs PyGPSClient into a virtual environment in the user's home directory and adds this environment to the user's PATH.
232+
- Adds user to the relevant /dev/tty* group.
233+
- Creates a desktop application launcher which can be accessed from the Applications..Other menu.
225234
226235
```shell
236+
wget https://raw.githubusercontent.com/semuconsulting/PyGPSClient/refs/heads/master/examples/pygpsclient_debian_install.sh
237+
# or use curl -O ... if you prefer
227238
chmod +x pygpsclient_debian_install.sh
228239
./pygpsclient_debian_install.sh
229240
```
230241
242+
### Arch Linux
243+
A similar [installation shell script](https://github.com/semuconsulting/PyGPSClient/blob/master/examples/pygpsclient_arch_install.sh) is available for use on most vanilla 64-bit Arch-based desktop environments (e.g. Xfce / LightDM):
244+
245+
```shell
246+
curl -O https://raw.githubusercontent.com/semuconsulting/PyGPSClient/refs/heads/master/examples/pygpsclient_arch_install.sh
247+
# or use wget ... if you prefer
248+
chmod +x pygpsclient_arch_install.sh
249+
./pygpsclient_arch_install.sh
250+
```
251+
231252
### MacOS
232-
A similar [installation shell script](https://github.com/semuconsulting/PyGPSClient/blob/master/examples/pygpsclient_macos_install.sh) is available for MacOS 13 or later running a ZSH shell (*Homebrew or MacPorts are **NOT** required*). This will also install the latest official version of Python 3 with tkinter 8.6. Download the script to your Mac and - from the download folder - type:
253+
A similar [installation shell script](https://github.com/semuconsulting/PyGPSClient/blob/master/examples/pygpsclient_macos_install.sh) is available for MacOS 13 or later running a ZSH shell (*Homebrew or MacPorts are **NOT** required*). This will also install the latest official version of Python 3 with tkinter 8.6:
233254
234255
```shell
256+
curl -O https://raw.githubusercontent.com/semuconsulting/PyGPSClient/refs/heads/master/examples/pygpsclient_macos_install.sh
257+
chmod +x pygpsclient_macos_install.sh
235258
./pygpsclient_macos_install.sh
236259
```
237260

LICENSE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
BSD 3-Clause License ("BSD License 2.0", "Revised BSD License", "New BSD License", or "Modified BSD License")
22

3-
Copyright 2020, semuadmin (Steve Smith)
3+
Copyright 2020-2026, semuadmin (Steve Smith)
44

55
Redistribution and use in source and binary forms, with or without
66
modification, are permitted provided that the following conditions are met:

0 commit comments

Comments
 (0)