Python control, recording and diagnostics tools for ME GSV-8 measurement amplifiers.
Project description
GSVpiko
GSVpiko is a Python package for configuring, reading, recording and diagnosing ME GSV-8 measurement amplifiers. GSV is short for the German term GleichSpannungsVerstärker.
It includes project-specific configuration files for multiple real GSV-8 devices, sensors and setups. The NPort Administrator is not required for the supported workflow.
More information about GSVpiko is available in docs/. Reference material for the GSV measurement amplifier is available in references/.
Installation
Choose one installation method.
PyPI
Recommended for normal use:
py -m pip install gsvpiko
On systems where python is available instead of the Windows py launcher:
python -m pip install gsvpiko
Check the installation:
gsvpiko-client-tcp --help
If the command is not found on Windows, the Python Scripts directory may not be in PATH. The package is still installed in the Python environment that ran pip.
GitHub
Install the current repository state:
py -m pip install "gsvpiko @ git+https://github.com/moriz-bot/gsvpiko.git"
Install a specific tagged version:
py -m pip install "gsvpiko @ git+https://github.com/moriz-bot/gsvpiko.git@v0.1.4"
Local checkout
Clone and install the local project:
git clone https://github.com/moriz-bot/gsvpiko.git
cd gsvpiko
py -m pip install .
For development:
py -m pip install -e .
-e means editable mode: local source-code changes are used directly without reinstalling.
Version check
py -c "import gsvpiko; print(gsvpiko.__version__)"
or directly from package metadata:
py -c "from importlib.metadata import version; print(version('gsvpiko'))"
Main features
- setup-based configuration of ME GSV-8 measurement amplifiers
- multiple GSV devices + multiple 3-axis sensors
- real device, sensor and setup configuration files
- sensor scaling and software-side crosstalk compensation
- reading and recording measurement values
- CSV, text-report and PNG plot generation
- event markers in plots for GSVpiko runtime commands such as
tare - setup validation before measurement
- connection, runtime-rate and GSV status diagnostics
- external TCP control interface with a simple ASCII command protocol
- manual TCP client for testing the external control interface
- local interactive recording shell via
gsvpiko-record - CSV plotting helper via
gsvpiko-plot-csv - NPort mode switching via
transport_nport
→ no NPort Administrator required for the supported Real COM/TCP workflow - baudrate probing
→ automatic search for a working GSV-8 baudrate if the current device setting is unknown
Recording workflow
The local recording app is started with:
gsvpiko-record
The interactive workflow separates transmission from recorded capture windows:
session ipc_test01 tare if configured and start GSV transmission
start start storing samples
stop pause storing samples while transmission continues
start 20 s store samples for 20 seconds, then stop automatically
save stop transmission and write CSV/report/PNG
quit save an active session if needed and close the program
start 20s, start 30m and start 4h are accepted in addition to the spaced forms start 20 s, start 30 m and start 4 h. tare is only run at session start when the setup has zero_before_recording=True, or when the user explicitly enters tare. start never runs an automatic tare.
The external TCP interface uses the same session workflow with single-line responses for clients:
SESSION ipc_test01
START 20S
START 20S
SAVE
Transport and NPort support
Typical hardware chain:
GSV-8 → serial interface → NPort → Ethernet → computer
Supported NPort operating modes:
NPort Real COM Mode → GSVpiko transport: serial
NPort TCP Server Mode → GSVpiko transport: tcp
transport_nport can switch the NPort operating mode automatically. This is especially useful when moving between serial-style access and direct TCP access without manually changing the NPort configuration in a separate administration tool.
Output folders
Default runtime output is written relative to the current working directory:
gsvpiko_data/ CSV files and PNG plots
gsvpiko_logs/ text reports
The recording app supports process-local overrides:
gsvpiko-record --data-dir C:\Measurements\GSVpikoData --log-dir C:\Measurements\GSVpikoLogs
The local recording shell and the external TCP interface also support persistent output folders through their path command. Persistent settings are stored in the current user's GSVpiko settings file.
Baudrate probing
A GSV-8 connection can fail if the host uses a different baudrate than the device. GSVpiko includes baudrate probing utilities that test supported baudrates automatically until communication with the amplifier is established.
This is useful when the current GSV-8 baudrate is unknown or was changed previously.
Tested result for the used GSV-8/NPort setup:
accepted: 460800 bit/s
rejected: 921600 bit/s
Therefore, 460800 bit/s is the highest tested accepted baudrate for this setup.
Tested sample-rate limits
For one 3-channel sensor at 460800 bit/s, the conservative largest streamed datatype is float32.
Estimated communication limit for float32:
2880 Hz
Tested and GSV-accepted rounded-down operating value:
2400 Hz
Additional short-test values:
float32 → 2400 Hz
int24 → 3200 Hz
int16 → 4000 Hz
For conservative operation with one 3-channel sensor, float32 at 2400 Hz is the practical tested upper value.
Known hardware status observation
🔴 HARDWARE_ERROR_ANALOG_OUTPUT (0xFFFF)
On the tested hardware, this status can still occur on the affected GSV device and can cause the red MOD LED/button indication to blink.
It was observed even after setting the analog outputs inactive through SetAOutType-style configuration values:
AOutType_Mode = 0x02 (inactive)
AOutType_Enum = 5 (OFF)
In the observed setup, this analog-output hardware status did not prevent measurement output or recording.
Repository structure
src/gsvpiko/ Python package source code
docs/ project documentation and diagrams
references/ public reference documents used during development
gsvpiko_data/ local runtime CSV and plot output, not committed
gsvpiko_logs/ local runtime report output, not committed
README.md project overview and installation notes
pyproject.toml Python packaging metadata
LICENSE license file
Important package areas:
app/ command-line entry points and local interactive apps
config/ device, sensor and setup configuration
coordination/ setup resolution, validation, diagnostics and recording orchestration
device/ GSV device abstraction
external/ external TCP control interface
features/ GSV feature groups
output/ CSV, report, plot and output-path handling
protocol/ frame building, parsing, payload coding and CRC
runtime/ runtime reading, routing and buffering
transport/ serial, TCP and NPort transport handling
utils/ small generic helpers
Basic command examples
Validate a configured setup:
gsvpiko-setup-validation
Apply a configured setup:
gsvpiko-setup-application
Read values from a setup:
gsvpiko-read-values
Record values from a setup:
gsvpiko-record
Run the external TCP interface:
gsvpiko-external-tcp-interface
Run the manual TCP client:
gsvpiko-client-tcp
Plot a GSVpiko CSV file:
gsvpiko-plot-csv path\to\file.csv
License
GSVpiko is distributed under the MIT License. See LICENSE.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file gsvpiko-0.1.4.tar.gz.
File metadata
- Download URL: gsvpiko-0.1.4.tar.gz
- Upload date:
- Size: 218.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
343b2e3acd7301d2b38c5db15eab9f8c961e4248bb817752c5929f413c4849ba
|
|
| MD5 |
05d0dec4dc84a082cd5552cfc1064c9a
|
|
| BLAKE2b-256 |
78bdd9721ebc5a9ebc9d1cfc58d5b094d8320758625ed48c19b07adca4be9c39
|
Provenance
The following attestation bundles were made for gsvpiko-0.1.4.tar.gz:
Publisher:
release.yml on moriz-bot/gsvpiko
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gsvpiko-0.1.4.tar.gz -
Subject digest:
343b2e3acd7301d2b38c5db15eab9f8c961e4248bb817752c5929f413c4849ba - Sigstore transparency entry: 2232553192
- Sigstore integration time:
-
Permalink:
moriz-bot/gsvpiko@c0fd0bd2da1d84b4bcebc2fcf20cfca45d1f5da0 -
Branch / Tag:
refs/tags/v0.1.4 - Owner: https://github.com/moriz-bot
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@c0fd0bd2da1d84b4bcebc2fcf20cfca45d1f5da0 -
Trigger Event:
release
-
Statement type:
File details
Details for the file gsvpiko-0.1.4-py3-none-any.whl.
File metadata
- Download URL: gsvpiko-0.1.4-py3-none-any.whl
- Upload date:
- Size: 297.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
faa1bb2b6056bd24ac935f2076a8c4a6077b90e17eea7f4b2e8b4e139c9c0732
|
|
| MD5 |
a21e95fc5c04a9adb99e3de0f5246e3c
|
|
| BLAKE2b-256 |
41c5074188b4ff4c6b7f3df775bba8ff1204914d47425d2eaf357ec1ad2f8a64
|
Provenance
The following attestation bundles were made for gsvpiko-0.1.4-py3-none-any.whl:
Publisher:
release.yml on moriz-bot/gsvpiko
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gsvpiko-0.1.4-py3-none-any.whl -
Subject digest:
faa1bb2b6056bd24ac935f2076a8c4a6077b90e17eea7f4b2e8b4e139c9c0732 - Sigstore transparency entry: 2232554030
- Sigstore integration time:
-
Permalink:
moriz-bot/gsvpiko@c0fd0bd2da1d84b4bcebc2fcf20cfca45d1f5da0 -
Branch / Tag:
refs/tags/v0.1.4 - Owner: https://github.com/moriz-bot
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@c0fd0bd2da1d84b4bcebc2fcf20cfca45d1f5da0 -
Trigger Event:
release
-
Statement type: