Die uConsole AIO V2 (GPS + LoRa) ist ein extrem leistungsfähiges Add-on, aber viele grundlegende Funktionen erfordern normalerweise direkte GPIO-Zugriffe, manuelles Starten von gpsd oder Low-Level-Diagnose via UART und SPI. Genau hier setzt aioctl an.

Zusammen mit einer AI habe ich ein kleines, robustes Bash-Tool geschrieben, das die wichtigsten Funktionen sauber kapselt und reproduzierbar macht. Ich stelle es hier zur Verfügung, weil es vielen uConsole-AIO-Besitzern helfen dürfte.

Image made with Rabbit R1 Magic Camera

Ziel von aioctl

  • GPS Power ein- und ausschalten
  • gpsd starten und stoppen
  • NMEA-Output direkt lesen (Debug)
  • LoRa-Modul ein- und ausschalten
  • LoRa Reset auslösen
  • SPI- und GPIO-Status prüfen

Das Tool greift direkt auf GPIO, UART und SPI zu und vermeidet unnötige Abstraktionsschichten.

Technischer Hintergrund

Das uConsole AIO V2 verwendet dedizierte GPIO-Pins für Power-Control und Status:

GPS

  • UART: /dev/ttyS0
  • Power GPIO: BCM 27
  • Baudrate: 9600

LoRa (SX1262)

  • SPI Device: /dev/spidev1.0
  • Power GPIO: BCM 16
  • Reset GPIO: BCM 25
  • Busy GPIO: BCM 24
  • IRQ GPIO: BCM 26

aioctl nutzt pinctrl, um diese Pins deterministisch zu steuern.

Voraussetzungen

Hinweis: GPIO-Zugriffe erfordern Root-Rechte.
Verwende daher sudo.
System muss folgende Komponenten bereitstellen:

  • Linux mit GPIO-Support
  • pinctrl Tool verfügbar
  • SPI aktiviert
  • optional: gpsd installiert
  • Root-Rechte für GPIO-Zugriff

Typischer Test:

which pinctrl
ls /dev/spidev*

Installation

Script herunterladen und ausführbar machen:

chmod +x aioctl

Optional systemweit installieren:

sudo install -m 0755 aioctl /usr/local/bin/aioctl

Verwendung

GPS Power einschalten

sudo aioctl gps power on

GPS Power ausschalten

sudo aioctl gps power off

gpsd starten

sudo aioctl gpsd start

gpsd stoppen

sudo aioctl gpsd stop

Hinweis: aioctl verwaltet einen eigenen gpsd-Prozess und vermeidet Konflikte mit anderen Instanzen.

GPS NMEA direkt lesen (Debug), Standard 10 Sekunden:

sudo aioctl gps nmea

Beispiel 30 Sekunden:

sudo aioctl gps nmea 30

Dies erlaubt direkte Hardware-Verifikation ohne gpsd.

LoRa einschalten

sudo aioctl lora on

LoRa ausschalten

sudo aioctl lora off

LoRa Reset

sudo aioctl lora reset

Hardware-Reset ist wichtig bei Kommunikationsproblemen.

LoRa Status prüfen

sudo aioctl lora status

Zeigt:

  • vorhandene SPI-Devices
  • BUSY-Pin Status
  • IRQ-Pin Status

Sicherheit und Design

aioctl wurde bewusst defensiv implementiert:

  • Fail-fast Verhalten bei Fehlern
  • Validierung aller Parameter
  • keine unsicheren eval oder dynamischen Shell-Konstrukte
  • deterministische GPIO-Kontrolle
  • keine versteckten Hintergrundprozesse
    • aioctl verwendet keine Hintergrunddienste ausser dem optional gestarteten gpsd.

Typische Anwendungsfälle

  • Hardware-Debugging
  • GPS-Verifikation
  • LoRa-Reset bei Kommunikationsproblemen
  • Systemintegration
  • Automatisierung via Scripts oder systemd

Download

Script: aioctl (MIT License)

Lizenz

MIT Lizenz, Copyright 2025/2026 Fischerman.ch