LoRaWAN BasicStation

From MattWiki

Basic Station is a LoRaWAN Gateway implementation, including features like:

  • Ready for LoRaWAN Classes A, B, and C
  • Unified Radio Abstraction Layer supporting Concentrator Reference Designs v1.5, v2 and Corecell
  • Powerful Backend Protocols (read here and here)
    • Centralized update and configuration management
    • Centralized channel-plan management
    • Centralized time synchronization and transfer
    • Various authentication schemes (client certificate, auth tokens)
    • Remote interactive shell
  • Lean Design
    • No external software dependencies (except mbedTLS and libloragw/-v2)
    • Portable C code, no C++, dependent only on GNU libc
    • Easily portable to Linux-based gateways and embedded systems
    • No dependency on local time keeping
    • No need for incoming connections

The full documentation is available at https://doc.sm.tc/station.

Usage[edit | edit source]

The Station binary accepts the following command-line options:

Usage: station [OPTION...]

  -d, --daemon               First check if another process is still alive. If
                             so do nothing and exit. Otherwise fork a worker
                             process to operate the radios and network
                             protocols. If the subprocess died respawn it with
                             an appropriate back off.
  -f, --force                If a station process is already running, kill it
                             before continuing with requested operation mode.
  -h, --home=DIR             Home directory for configuration files. Default is
                             the current working directory. Overrides
                             environment STATION_DIR.
  -i, --radio-init=cmd       Program/script to run before reinitializing radio
                             hardware. By default nothing is being executed.
                             Overrides environment STATION_RADIOINIT.
  -k, --kill                 Kill a currently running station process.
  -l, --log-level=LVL|0..7   Set a log level LVL=#loglvls# or use a numeric
                             value. Overrides environment STATION_LOGLEVEL.
  -L, --log-file=FILE[,SIZE[,ROT]]
                             Write log entries to FILE. If FILE is '-' then
                             write to stderr. Optionally followed by a max file
                             SIZE and a number of rotation files. If ROT is 0
                             then keep only FILE. If ROT is 1 then keep one
                             more old log file around. Overrides environment
                             STATION_LOGFILE.
  -N, --no-tc                Do not connect to a LNS. Only run CUPS
                             functionality.
  -p, --params               Print current parameter settings.
  -t, --temp=DIR             Temp directory for frequently written files.
                             Default is /tmp. Overrides environment
                             STATION_TEMPDIR.
  -x, --eui-prefix=id6       Turn MAC address into EUI by adding this prefix.
                             If the argument has value ff:fe00:0 then the EUI
                             is formed by inserting FFFE in the middle. If
                             absent use MAC or routerid as is. Overrides
                             environment STATION_EUIPREFIX.
  -?, --help                 Give this help list
      --usage                Give a short usage message
  -v, --version              Print station version.

Mandatory or optional arguments to long options are also mandatory or optional
for any corresponding short options.