Skip to main content

Uniclogs StationD

A power management Daemon for Uniclogs. Accepts network commands via UDP.

Installation

For Development (Container)

These instructions assume you have Podman installed and configured.

  1. Build and run the container:

    podman compose up -d
    
  2. Drop into the container:

    podman compose exec stationd bash
    
  3. Install dependencies (inside the container):

    pip install -e .[dev]
    

For Raspberry Pi (Hardware)

  1. Install Python dependencies:

    pip install -e .
    
  2. Modify the stationd.ini file at the root of the project to suite your needs.

  3. Run the daemon:

    python -m stationd
    

Usage

Example UDP command using Netcat

echo "vhf polarization status" | nc -u -w 1 127.0.0.1 5005

Example StationD Commands

# turn on TX for VHF amplifier
vhf pa-power on

# turn off RX for UHF amplifier
uhf lna off

# turn on power for rotator accessory
rotator power on

# returns status for all devices for the L-Band amplifier
l-band status

# return status for polarization of VHF amplifier
vhf polarization status

# returns status for all components of UHF amplifier
uhf status

# get temperature of board
gettemp

Supported Commands

<vhf|uhf> <pa-power|rf-ptt|lna> <on|off|status>

<vhf|uhf> polarization <left|right|status>

l-band <pa-power|rf-ptt> <on|off|status>

<rx-swap|satnogs-host|radio-host|sdr-b200|rotator> power <on|off|status>

<vhf|uhf|l-band|rx-swap|satnogs-host|radio-host|sdr-b200|rotator> status

gettemp

Testing

This project uses pytest as it's testing framework. Run tests with the following command:

pytest

A coverage report will be generated in the root of this project under htmlcov/ when tests are run. View the report by opening htmlcov/index.html in a browser.

Release Process

Releases are managed through an automated workflow using Github Actions. The automation is triggered when a release is published on Github.

Creating a Release

  1. Navigate to this project's "Releases" page
  2. Click "Draft a new release"
  3. Click "Tag: Select tag" and click on the "Create new tag" button
  4. Add a tag following the SemVer standard
    • e.g. v1.2.3
  5. Ensure that Target button is pointing at the main branch
  6. Add all necessary details about the release under "Release notes"
  7. Once everything looks good, click the "Publish release" button

Step 7 will trigger the pypi.yml workflow and the new release will be available on pypi.org.

Post-Release

Once a new release has been created and is available on pypi.org, smoke test the release to ensure it runs as expected.

pip install your-package==X.Y.Z

Metadata

Release files for uniclogs-stationd 1.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for uniclogs-stationd 1.0.2
File Size Uploaded
uniclogs_stationd-1.0.2.tar.gz 25.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for uniclogs-stationd 1.0.2
File Interpreter ABI Platform
uniclogs_stationd-1.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 47.8 kB

Release files / uniclogs_stationd-1.0.2.tar.gz

Download URL uniclogs_stationd-1.0.2.tar.gz
Size 25.5 kB
Tags Source
SHA-256 checksum
How to use checksums
336051152b92447bfe51172c01b92b65572153a8f7e7779059b54ae7f4146fd9
BLAKE2b-256 checksum
How to use checksums
60a7301199db0fce32ae377258f64f01cf105e9a753d27644274dea9fce8be81
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Feb 13, 2026.

Transparency log

Release files / uniclogs_stationd-1.0.2-py3-none-any.whl

Download URL uniclogs_stationd-1.0.2-py3-none-any.whl
Size 22.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
28221009d4230df1ccfe7e4e80c978be833d2f2acbdcfcac6e517c8d7f54fd12
BLAKE2b-256 checksum
How to use checksums
ca8cc44b890831ce8bc4eaef5d560467e6c78893cb18bcc454b3f28dc2e2c323
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Feb 13, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.0.2 This release

2 release files

1.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page