{
  "spec_version": 1,
  "slug": "sat-nms-io-fep2",
  "manufacturer": "SatService GmbH (sat-nms)",
  "model": "IO-FEP2",
  "category": "Ground station controller",
  "supplier_url": "https://satservicegmbh.de/files/satnms/doc/io-fep2/remote-control-modbus-remote-control-interface.html",
  "default_configuration": {
    "protocol": "modbus_tcp",
    "port": 502,
    "unit_id": 1,
    "addressing": "zero_based",
    "byte_order": "BigEndian",
    "word_order": "HighFirst",
    "native_interface": "tcp"
  },
  "coils": [],
  "discrete_inputs": [],
  "input_registers": [
    {
      "address": 1,
      "count": 1,
      "name": "Digital inputs 1-16 state",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Bit 0 = lowest-numbered input of this group; 1 = ON or FLT input, 0 = OK or OFF. The reported states already include the per-input polarity inversion and filter delay."
    },
    {
      "address": 2,
      "count": 1,
      "name": "Digital inputs 17-32 state",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Bit 0 = lowest-numbered input of this group; 1 = ON or FLT input, 0 = OK or OFF. The reported states already include the per-input polarity inversion and filter delay."
    },
    {
      "address": 3,
      "count": 1,
      "name": "Digital inputs 33-48 state",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Bit 0 = lowest-numbered input of this group; 1 = ON or FLT input, 0 = OK or OFF. The reported states already include the per-input polarity inversion and filter delay."
    },
    {
      "address": 4,
      "count": 1,
      "name": "Digital inputs 49-64 state",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Bit 0 = lowest-numbered input of this group; 1 = ON or FLT input, 0 = OK or OFF. The reported states already include the per-input polarity inversion and filter delay."
    },
    {
      "address": 5,
      "count": 1,
      "name": "Waveguide switch 1-8 position",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Two bits per switch, switch 1 in the least significant bits: 01 = position A, 10 = position B, 00 and 11 = invalid state. Unused or unlicensed switches read 00."
    },
    {
      "address": 6,
      "count": 1,
      "name": "Waveguide switch 9-16 position",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Two bits per switch, switch 1 in the least significant bits: 01 = position A, 10 = position B, 00 and 11 = invalid state. Unused or unlicensed switches read 00."
    },
    {
      "address": 7,
      "count": 1,
      "name": "Waveguide switch 17-24 position",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Two bits per switch, switch 1 in the least significant bits: 01 = position A, 10 = position B, 00 and 11 = invalid state. Unused or unlicensed switches read 00."
    },
    {
      "address": 8,
      "count": 1,
      "name": "Waveguide switch 25-32 position",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Two bits per switch, switch 1 in the least significant bits: 01 = position A, 10 = position B, 00 and 11 = invalid state. Unused or unlicensed switches read 00."
    },
    {
      "address": 9,
      "count": 1,
      "name": "Waveguide switch 1-8 alarm",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Two bits per switch, switch 1 in the least significant bits: lower bit = indication fault (both position-indication inputs read the same level), upper bit = actuation fault (commanded position not reached within the pulse width)."
    },
    {
      "address": 10,
      "count": 1,
      "name": "Waveguide switch 9-16 alarm",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Two bits per switch, switch 1 in the least significant bits: lower bit = indication fault (both position-indication inputs read the same level), upper bit = actuation fault (commanded position not reached within the pulse width)."
    },
    {
      "address": 11,
      "count": 1,
      "name": "Waveguide switch 17-24 alarm",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Two bits per switch, switch 1 in the least significant bits: lower bit = indication fault (both position-indication inputs read the same level), upper bit = actuation fault (commanded position not reached within the pulse width)."
    },
    {
      "address": 12,
      "count": 1,
      "name": "Waveguide switch 25-32 alarm",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Two bits per switch, switch 1 in the least significant bits: lower bit = indication fault (both position-indication inputs read the same level), upper bit = actuation fault (commanded position not reached within the pulse width)."
    },
    {
      "address": 13,
      "count": 1,
      "name": "Power supply alarm",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Bit 0 redundant 24 V ext fault, bit 1 redundant 24 V fault, bit 2 primary 24 V ext fault, bit 3 primary 24 V fault, bit 4 LNA supply 1 fault, bit 5 LNA supply 2 fault, bit 6 5 V fault, bit 7 3.3 V fault, bit 8 USB stick fault."
    },
    {
      "address": 14,
      "count": 1,
      "name": "Temperature alarm",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Bits 0-4 = board temperature and sensors 1-4 too high, bits 8-12 = board temperature and sensors 1-4 too low. 1 = alarm."
    },
    {
      "address": 15,
      "count": 1,
      "name": "Protection switch 1 state",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Bit 0 WG-switch fault or instance not configured, bit 1 1:1-SW-ONCE, bit 2 ENABLED, bit 3 2:1 redundancy, bit 4 fault in chain A, bit 5 fault in chain B, bit 6 SWITCHED, bit 7 chain B selected. Unused or unlicensed protection switches read 0."
    },
    {
      "address": 16,
      "count": 1,
      "name": "Protection switch 2 state",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Bit 0 WG-switch fault or instance not configured, bit 1 1:1-SW-ONCE, bit 2 ENABLED, bit 3 2:1 redundancy, bit 4 fault in chain A, bit 5 fault in chain B, bit 6 SWITCHED, bit 7 chain B selected. Unused or unlicensed protection switches read 0."
    },
    {
      "address": 17,
      "count": 1,
      "name": "Protection switch 3 state",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Bit 0 WG-switch fault or instance not configured, bit 1 1:1-SW-ONCE, bit 2 ENABLED, bit 3 2:1 redundancy, bit 4 fault in chain A, bit 5 fault in chain B, bit 6 SWITCHED, bit 7 chain B selected. Unused or unlicensed protection switches read 0."
    },
    {
      "address": 18,
      "count": 1,
      "name": "Protection switch 4 state",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Bit 0 WG-switch fault or instance not configured, bit 1 1:1-SW-ONCE, bit 2 ENABLED, bit 3 2:1 redundancy, bit 4 fault in chain A, bit 5 fault in chain B, bit 6 SWITCHED, bit 7 chain B selected. Unused or unlicensed protection switches read 0."
    },
    {
      "address": 19,
      "count": 1,
      "name": "Protection switch 5 state",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Bit 0 WG-switch fault or instance not configured, bit 1 1:1-SW-ONCE, bit 2 ENABLED, bit 3 2:1 redundancy, bit 4 fault in chain A, bit 5 fault in chain B, bit 6 SWITCHED, bit 7 chain B selected. Unused or unlicensed protection switches read 0."
    },
    {
      "address": 20,
      "count": 1,
      "name": "Protection switch 6 state",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Bit 0 WG-switch fault or instance not configured, bit 1 1:1-SW-ONCE, bit 2 ENABLED, bit 3 2:1 redundancy, bit 4 fault in chain A, bit 5 fault in chain B, bit 6 SWITCHED, bit 7 chain B selected. Unused or unlicensed protection switches read 0."
    },
    {
      "address": 21,
      "count": 1,
      "name": "Protection switch 7 state",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Bit 0 WG-switch fault or instance not configured, bit 1 1:1-SW-ONCE, bit 2 ENABLED, bit 3 2:1 redundancy, bit 4 fault in chain A, bit 5 fault in chain B, bit 6 SWITCHED, bit 7 chain B selected. Unused or unlicensed protection switches read 0."
    },
    {
      "address": 22,
      "count": 1,
      "name": "Protection switch 8 state",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Bit 0 WG-switch fault or instance not configured, bit 1 1:1-SW-ONCE, bit 2 ENABLED, bit 3 2:1 redundancy, bit 4 fault in chain A, bit 5 fault in chain B, bit 6 SWITCHED, bit 7 chain B selected. Unused or unlicensed protection switches read 0."
    },
    {
      "address": 23,
      "count": 1,
      "name": "Protection switch 9 state",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Bit 0 WG-switch fault or instance not configured, bit 1 1:1-SW-ONCE, bit 2 ENABLED, bit 3 2:1 redundancy, bit 4 fault in chain A, bit 5 fault in chain B, bit 6 SWITCHED, bit 7 chain B selected. Unused or unlicensed protection switches read 0."
    },
    {
      "address": 24,
      "count": 1,
      "name": "Protection switch 10 state",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Bit 0 WG-switch fault or instance not configured, bit 1 1:1-SW-ONCE, bit 2 ENABLED, bit 3 2:1 redundancy, bit 4 fault in chain A, bit 5 fault in chain B, bit 6 SWITCHED, bit 7 chain B selected. Unused or unlicensed protection switches read 0."
    },
    {
      "address": 25,
      "count": 1,
      "name": "Protection switch 11 state",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Bit 0 WG-switch fault or instance not configured, bit 1 1:1-SW-ONCE, bit 2 ENABLED, bit 3 2:1 redundancy, bit 4 fault in chain A, bit 5 fault in chain B, bit 6 SWITCHED, bit 7 chain B selected. Unused or unlicensed protection switches read 0."
    },
    {
      "address": 26,
      "count": 1,
      "name": "Protection switch 12 state",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Bit 0 WG-switch fault or instance not configured, bit 1 1:1-SW-ONCE, bit 2 ENABLED, bit 3 2:1 redundancy, bit 4 fault in chain A, bit 5 fault in chain B, bit 6 SWITCHED, bit 7 chain B selected. Unused or unlicensed protection switches read 0."
    },
    {
      "address": 27,
      "count": 1,
      "name": "Protection switch 13 state",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Bit 0 WG-switch fault or instance not configured, bit 1 1:1-SW-ONCE, bit 2 ENABLED, bit 3 2:1 redundancy, bit 4 fault in chain A, bit 5 fault in chain B, bit 6 SWITCHED, bit 7 chain B selected. Unused or unlicensed protection switches read 0."
    },
    {
      "address": 28,
      "count": 1,
      "name": "Protection switch 14 state",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Bit 0 WG-switch fault or instance not configured, bit 1 1:1-SW-ONCE, bit 2 ENABLED, bit 3 2:1 redundancy, bit 4 fault in chain A, bit 5 fault in chain B, bit 6 SWITCHED, bit 7 chain B selected. Unused or unlicensed protection switches read 0."
    },
    {
      "address": 29,
      "count": 1,
      "name": "Protection switch 15 state",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Bit 0 WG-switch fault or instance not configured, bit 1 1:1-SW-ONCE, bit 2 ENABLED, bit 3 2:1 redundancy, bit 4 fault in chain A, bit 5 fault in chain B, bit 6 SWITCHED, bit 7 chain B selected. Unused or unlicensed protection switches read 0."
    },
    {
      "address": 30,
      "count": 1,
      "name": "Protection switch 16 state",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Bit 0 WG-switch fault or instance not configured, bit 1 1:1-SW-ONCE, bit 2 ENABLED, bit 3 2:1 redundancy, bit 4 fault in chain A, bit 5 fault in chain B, bit 6 SWITCHED, bit 7 chain B selected. Unused or unlicensed protection switches read 0."
    },
    {
      "address": 31,
      "count": 1,
      "name": "Protection switch 17 state",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Bit 0 WG-switch fault or instance not configured, bit 1 1:1-SW-ONCE, bit 2 ENABLED, bit 3 2:1 redundancy, bit 4 fault in chain A, bit 5 fault in chain B, bit 6 SWITCHED, bit 7 chain B selected. Unused or unlicensed protection switches read 0."
    },
    {
      "address": 32,
      "count": 1,
      "name": "Protection switch 18 state",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Bit 0 WG-switch fault or instance not configured, bit 1 1:1-SW-ONCE, bit 2 ENABLED, bit 3 2:1 redundancy, bit 4 fault in chain A, bit 5 fault in chain B, bit 6 SWITCHED, bit 7 chain B selected. Unused or unlicensed protection switches read 0."
    },
    {
      "address": 33,
      "count": 1,
      "name": "Protection switch 19 state",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Bit 0 WG-switch fault or instance not configured, bit 1 1:1-SW-ONCE, bit 2 ENABLED, bit 3 2:1 redundancy, bit 4 fault in chain A, bit 5 fault in chain B, bit 6 SWITCHED, bit 7 chain B selected. Unused or unlicensed protection switches read 0."
    },
    {
      "address": 34,
      "count": 1,
      "name": "Protection switch 20 state",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Bit 0 WG-switch fault or instance not configured, bit 1 1:1-SW-ONCE, bit 2 ENABLED, bit 3 2:1 redundancy, bit 4 fault in chain A, bit 5 fault in chain B, bit 6 SWITCHED, bit 7 chain B selected. Unused or unlicensed protection switches read 0."
    },
    {
      "address": 35,
      "count": 1,
      "name": "Protection switch 21 state",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Bit 0 WG-switch fault or instance not configured, bit 1 1:1-SW-ONCE, bit 2 ENABLED, bit 3 2:1 redundancy, bit 4 fault in chain A, bit 5 fault in chain B, bit 6 SWITCHED, bit 7 chain B selected. Unused or unlicensed protection switches read 0."
    },
    {
      "address": 36,
      "count": 1,
      "name": "Protection switch 22 state",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Bit 0 WG-switch fault or instance not configured, bit 1 1:1-SW-ONCE, bit 2 ENABLED, bit 3 2:1 redundancy, bit 4 fault in chain A, bit 5 fault in chain B, bit 6 SWITCHED, bit 7 chain B selected. Unused or unlicensed protection switches read 0."
    },
    {
      "address": 37,
      "count": 1,
      "name": "Protection switch 23 state",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Bit 0 WG-switch fault or instance not configured, bit 1 1:1-SW-ONCE, bit 2 ENABLED, bit 3 2:1 redundancy, bit 4 fault in chain A, bit 5 fault in chain B, bit 6 SWITCHED, bit 7 chain B selected. Unused or unlicensed protection switches read 0."
    },
    {
      "address": 38,
      "count": 1,
      "name": "Protection switch 24 state",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Bit 0 WG-switch fault or instance not configured, bit 1 1:1-SW-ONCE, bit 2 ENABLED, bit 3 2:1 redundancy, bit 4 fault in chain A, bit 5 fault in chain B, bit 6 SWITCHED, bit 7 chain B selected. Unused or unlicensed protection switches read 0."
    },
    {
      "address": 39,
      "count": 1,
      "name": "Protection switch 25 state",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Bit 0 WG-switch fault or instance not configured, bit 1 1:1-SW-ONCE, bit 2 ENABLED, bit 3 2:1 redundancy, bit 4 fault in chain A, bit 5 fault in chain B, bit 6 SWITCHED, bit 7 chain B selected. Unused or unlicensed protection switches read 0."
    },
    {
      "address": 40,
      "count": 1,
      "name": "Protection switch 26 state",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Bit 0 WG-switch fault or instance not configured, bit 1 1:1-SW-ONCE, bit 2 ENABLED, bit 3 2:1 redundancy, bit 4 fault in chain A, bit 5 fault in chain B, bit 6 SWITCHED, bit 7 chain B selected. Unused or unlicensed protection switches read 0."
    },
    {
      "address": 41,
      "count": 1,
      "name": "Protection switch 27 state",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Bit 0 WG-switch fault or instance not configured, bit 1 1:1-SW-ONCE, bit 2 ENABLED, bit 3 2:1 redundancy, bit 4 fault in chain A, bit 5 fault in chain B, bit 6 SWITCHED, bit 7 chain B selected. Unused or unlicensed protection switches read 0."
    },
    {
      "address": 42,
      "count": 1,
      "name": "Protection switch 28 state",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Bit 0 WG-switch fault or instance not configured, bit 1 1:1-SW-ONCE, bit 2 ENABLED, bit 3 2:1 redundancy, bit 4 fault in chain A, bit 5 fault in chain B, bit 6 SWITCHED, bit 7 chain B selected. Unused or unlicensed protection switches read 0."
    },
    {
      "address": 43,
      "count": 1,
      "name": "Protection switch 29 state",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Bit 0 WG-switch fault or instance not configured, bit 1 1:1-SW-ONCE, bit 2 ENABLED, bit 3 2:1 redundancy, bit 4 fault in chain A, bit 5 fault in chain B, bit 6 SWITCHED, bit 7 chain B selected. Unused or unlicensed protection switches read 0."
    },
    {
      "address": 44,
      "count": 1,
      "name": "Protection switch 30 state",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Bit 0 WG-switch fault or instance not configured, bit 1 1:1-SW-ONCE, bit 2 ENABLED, bit 3 2:1 redundancy, bit 4 fault in chain A, bit 5 fault in chain B, bit 6 SWITCHED, bit 7 chain B selected. Unused or unlicensed protection switches read 0."
    },
    {
      "address": 45,
      "count": 1,
      "name": "Protection switch 31 state",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Bit 0 WG-switch fault or instance not configured, bit 1 1:1-SW-ONCE, bit 2 ENABLED, bit 3 2:1 redundancy, bit 4 fault in chain A, bit 5 fault in chain B, bit 6 SWITCHED, bit 7 chain B selected. Unused or unlicensed protection switches read 0."
    },
    {
      "address": 46,
      "count": 1,
      "name": "Protection switch 32 state",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Bit 0 WG-switch fault or instance not configured, bit 1 1:1-SW-ONCE, bit 2 ENABLED, bit 3 2:1 redundancy, bit 4 fault in chain A, bit 5 fault in chain B, bit 6 SWITCHED, bit 7 chain B selected. Unused or unlicensed protection switches read 0."
    },
    {
      "address": 47,
      "count": 1,
      "name": "LNA 1 supply voltage",
      "data_type": "UInt16",
      "units": "V",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R",
      "description": "Measured LNA power supply voltage, unsigned integer in steps of 0.01 V. Requires the LNA supply monitoring licence, otherwise the reading is clamped to 0."
    },
    {
      "address": 48,
      "count": 1,
      "name": "LNA 2 supply voltage",
      "data_type": "UInt16",
      "units": "V",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R",
      "description": "Measured LNA power supply voltage, unsigned integer in steps of 0.01 V. Requires the LNA supply monitoring licence, otherwise the reading is clamped to 0."
    },
    {
      "address": 49,
      "count": 1,
      "name": "LNA 3 supply voltage",
      "data_type": "UInt16",
      "units": "V",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R",
      "description": "Measured LNA power supply voltage, unsigned integer in steps of 0.01 V. Requires the LNA supply monitoring licence, otherwise the reading is clamped to 0."
    },
    {
      "address": 50,
      "count": 1,
      "name": "LNA 4 supply voltage",
      "data_type": "UInt16",
      "units": "V",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R",
      "description": "Measured LNA power supply voltage, unsigned integer in steps of 0.01 V. Requires the LNA supply monitoring licence, otherwise the reading is clamped to 0."
    },
    {
      "address": 51,
      "count": 1,
      "name": "LNA 5 supply voltage",
      "data_type": "UInt16",
      "units": "V",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R",
      "description": "Measured LNA power supply voltage, unsigned integer in steps of 0.01 V. Requires the LNA supply monitoring licence, otherwise the reading is clamped to 0."
    },
    {
      "address": 52,
      "count": 1,
      "name": "LNA 6 supply voltage",
      "data_type": "UInt16",
      "units": "V",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R",
      "description": "Measured LNA power supply voltage, unsigned integer in steps of 0.01 V. Requires the LNA supply monitoring licence, otherwise the reading is clamped to 0."
    },
    {
      "address": 53,
      "count": 1,
      "name": "LNA 1 supply current",
      "data_type": "UInt16",
      "units": "mA",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R",
      "description": "Measured LNA power supply current, unsigned integer in steps of 0.1 mA. Requires the LNA supply monitoring licence, otherwise the reading is clamped to 0."
    },
    {
      "address": 54,
      "count": 1,
      "name": "LNA 2 supply current",
      "data_type": "UInt16",
      "units": "mA",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R",
      "description": "Measured LNA power supply current, unsigned integer in steps of 0.1 mA. Requires the LNA supply monitoring licence, otherwise the reading is clamped to 0."
    },
    {
      "address": 55,
      "count": 1,
      "name": "LNA 3 supply current",
      "data_type": "UInt16",
      "units": "mA",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R",
      "description": "Measured LNA power supply current, unsigned integer in steps of 0.1 mA. Requires the LNA supply monitoring licence, otherwise the reading is clamped to 0."
    },
    {
      "address": 56,
      "count": 1,
      "name": "LNA 4 supply current",
      "data_type": "UInt16",
      "units": "mA",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R",
      "description": "Measured LNA power supply current, unsigned integer in steps of 0.1 mA. Requires the LNA supply monitoring licence, otherwise the reading is clamped to 0."
    },
    {
      "address": 57,
      "count": 1,
      "name": "LNA 5 supply current",
      "data_type": "UInt16",
      "units": "mA",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R",
      "description": "Measured LNA power supply current, unsigned integer in steps of 0.1 mA. Requires the LNA supply monitoring licence, otherwise the reading is clamped to 0."
    },
    {
      "address": 58,
      "count": 1,
      "name": "LNA 6 supply current",
      "data_type": "UInt16",
      "units": "mA",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R",
      "description": "Measured LNA power supply current, unsigned integer in steps of 0.1 mA. Requires the LNA supply monitoring licence, otherwise the reading is clamped to 0."
    },
    {
      "address": 59,
      "count": 1,
      "name": "LNA 1 monitoring faults",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Bit 0 voltage too low (short circuit or supply input missing), bit 1 current too low (cable broken or LNA defective), bit 2 current too high (short circuit or LNA defective), bits 3-15 read 0."
    },
    {
      "address": 60,
      "count": 1,
      "name": "LNA 2 monitoring faults",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Bit 0 voltage too low (short circuit or supply input missing), bit 1 current too low (cable broken or LNA defective), bit 2 current too high (short circuit or LNA defective), bits 3-15 read 0."
    },
    {
      "address": 61,
      "count": 1,
      "name": "LNA 3 monitoring faults",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Bit 0 voltage too low (short circuit or supply input missing), bit 1 current too low (cable broken or LNA defective), bit 2 current too high (short circuit or LNA defective), bits 3-15 read 0."
    },
    {
      "address": 62,
      "count": 1,
      "name": "LNA 4 monitoring faults",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Bit 0 voltage too low (short circuit or supply input missing), bit 1 current too low (cable broken or LNA defective), bit 2 current too high (short circuit or LNA defective), bits 3-15 read 0."
    },
    {
      "address": 63,
      "count": 1,
      "name": "LNA 5 monitoring faults",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Bit 0 voltage too low (short circuit or supply input missing), bit 1 current too low (cable broken or LNA defective), bit 2 current too high (short circuit or LNA defective), bits 3-15 read 0."
    },
    {
      "address": 64,
      "count": 1,
      "name": "LNA 6 monitoring faults",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Bit 0 voltage too low (short circuit or supply input missing), bit 1 current too low (cable broken or LNA defective), bit 2 current too high (short circuit or LNA defective), bits 3-15 read 0."
    },
    {
      "address": 65,
      "count": 1,
      "name": "Board temperature",
      "data_type": "Int16",
      "units": "°C",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R",
      "description": "Signed value in steps of 0.1 °C, so -125 reads -12.5 °C. The board temperature is measured internally; sensors 1-4 are external PT1000 inputs."
    },
    {
      "address": 66,
      "count": 1,
      "name": "Temperature sensor 1",
      "data_type": "Int16",
      "units": "°C",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R",
      "description": "Signed value in steps of 0.1 °C, so -125 reads -12.5 °C. The board temperature is measured internally; sensors 1-4 are external PT1000 inputs."
    },
    {
      "address": 67,
      "count": 1,
      "name": "Temperature sensor 2",
      "data_type": "Int16",
      "units": "°C",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R",
      "description": "Signed value in steps of 0.1 °C, so -125 reads -12.5 °C. The board temperature is measured internally; sensors 1-4 are external PT1000 inputs."
    },
    {
      "address": 68,
      "count": 1,
      "name": "Temperature sensor 3",
      "data_type": "Int16",
      "units": "°C",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R",
      "description": "Signed value in steps of 0.1 °C, so -125 reads -12.5 °C. The board temperature is measured internally; sensors 1-4 are external PT1000 inputs."
    },
    {
      "address": 69,
      "count": 1,
      "name": "Temperature sensor 4",
      "data_type": "Int16",
      "units": "°C",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R",
      "description": "Signed value in steps of 0.1 °C, so -125 reads -12.5 °C. The board temperature is measured internally; sensors 1-4 are external PT1000 inputs."
    },
    {
      "address": 70,
      "count": 1,
      "name": "Time sync alarm",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = sync ok or disabled, 1 = time not synced (fault), 2 = synced to the secondary NTP server because the primary failed."
    },
    {
      "address": 71,
      "count": 1,
      "name": "Time sync source",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = real-time clock, 1 = first NTP server, 2 = backup NTP server."
    },
    {
      "address": 72,
      "count": 10,
      "name": "Last time sync timestamp",
      "data_type": "Ascii",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Time stamp of the latest clock synchronisation, 19 characters 'YYYY-MM-DD HH:MM:SS', 0-terminated, two characters per register with the first character in the low byte."
    }
  ],
  "holding_registers": [
    {
      "address": 121,
      "count": 1,
      "name": "Outputs 1-16 control",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Least significant bit controls output 1, most significant bit output 16. 1 closes the output circuit unless the output is configured as inverting."
    },
    {
      "address": 123,
      "count": 1,
      "name": "Waveguide switch 1-8 command",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Two bits per switch, switch 1 in the least significant bits: 01 = command position A, 10 = command position B, 00 and 11 = leave the position unchanged. The IO-FEP2 handles the actuation timing internally."
    },
    {
      "address": 124,
      "count": 1,
      "name": "Waveguide switch 9-16 command",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Two bits per switch, switch 1 in the least significant bits: 01 = command position A, 10 = command position B, 00 and 11 = leave the position unchanged. The IO-FEP2 handles the actuation timing internally."
    },
    {
      "address": 125,
      "count": 1,
      "name": "Waveguide switch 17-24 command",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Two bits per switch, switch 1 in the least significant bits: 01 = command position A, 10 = command position B, 00 and 11 = leave the position unchanged. The IO-FEP2 handles the actuation timing internally."
    },
    {
      "address": 126,
      "count": 1,
      "name": "Waveguide switch 25-32 command",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Two bits per switch, switch 1 in the least significant bits: 01 = command position A, 10 = command position B, 00 and 11 = leave the position unchanged. The IO-FEP2 handles the actuation timing internally."
    },
    {
      "address": 127,
      "count": 1,
      "name": "Protection switch 1 command",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "W",
      "description": "0 NOP, 1 UNUSED, 2 1:1-SW-ONCE, 3 1:1-SW-ALWAYS, 4 DISABLED, 5 ENABLED, 6 position A, 7 position B, 8 reset SWITCHED flag, 9 SW-2TO1. Command-only register: reading it back always returns 0."
    },
    {
      "address": 128,
      "count": 1,
      "name": "Protection switch 2 command",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "W",
      "description": "0 NOP, 1 UNUSED, 2 1:1-SW-ONCE, 3 1:1-SW-ALWAYS, 4 DISABLED, 5 ENABLED, 6 position A, 7 position B, 8 reset SWITCHED flag, 9 SW-2TO1. Command-only register: reading it back always returns 0."
    },
    {
      "address": 129,
      "count": 1,
      "name": "Protection switch 3 command",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "W",
      "description": "0 NOP, 1 UNUSED, 2 1:1-SW-ONCE, 3 1:1-SW-ALWAYS, 4 DISABLED, 5 ENABLED, 6 position A, 7 position B, 8 reset SWITCHED flag, 9 SW-2TO1. Command-only register: reading it back always returns 0."
    },
    {
      "address": 130,
      "count": 1,
      "name": "Protection switch 4 command",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "W",
      "description": "0 NOP, 1 UNUSED, 2 1:1-SW-ONCE, 3 1:1-SW-ALWAYS, 4 DISABLED, 5 ENABLED, 6 position A, 7 position B, 8 reset SWITCHED flag, 9 SW-2TO1. Command-only register: reading it back always returns 0."
    },
    {
      "address": 131,
      "count": 1,
      "name": "Protection switch 5 command",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "W",
      "description": "0 NOP, 1 UNUSED, 2 1:1-SW-ONCE, 3 1:1-SW-ALWAYS, 4 DISABLED, 5 ENABLED, 6 position A, 7 position B, 8 reset SWITCHED flag, 9 SW-2TO1. Command-only register: reading it back always returns 0."
    },
    {
      "address": 132,
      "count": 1,
      "name": "Protection switch 6 command",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "W",
      "description": "0 NOP, 1 UNUSED, 2 1:1-SW-ONCE, 3 1:1-SW-ALWAYS, 4 DISABLED, 5 ENABLED, 6 position A, 7 position B, 8 reset SWITCHED flag, 9 SW-2TO1. Command-only register: reading it back always returns 0."
    },
    {
      "address": 133,
      "count": 1,
      "name": "Protection switch 7 command",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "W",
      "description": "0 NOP, 1 UNUSED, 2 1:1-SW-ONCE, 3 1:1-SW-ALWAYS, 4 DISABLED, 5 ENABLED, 6 position A, 7 position B, 8 reset SWITCHED flag, 9 SW-2TO1. Command-only register: reading it back always returns 0."
    },
    {
      "address": 134,
      "count": 1,
      "name": "Protection switch 8 command",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "W",
      "description": "0 NOP, 1 UNUSED, 2 1:1-SW-ONCE, 3 1:1-SW-ALWAYS, 4 DISABLED, 5 ENABLED, 6 position A, 7 position B, 8 reset SWITCHED flag, 9 SW-2TO1. Command-only register: reading it back always returns 0."
    },
    {
      "address": 135,
      "count": 1,
      "name": "Protection switch 9 command",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "W",
      "description": "0 NOP, 1 UNUSED, 2 1:1-SW-ONCE, 3 1:1-SW-ALWAYS, 4 DISABLED, 5 ENABLED, 6 position A, 7 position B, 8 reset SWITCHED flag, 9 SW-2TO1. Command-only register: reading it back always returns 0."
    },
    {
      "address": 136,
      "count": 1,
      "name": "Protection switch 10 command",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "W",
      "description": "0 NOP, 1 UNUSED, 2 1:1-SW-ONCE, 3 1:1-SW-ALWAYS, 4 DISABLED, 5 ENABLED, 6 position A, 7 position B, 8 reset SWITCHED flag, 9 SW-2TO1. Command-only register: reading it back always returns 0."
    },
    {
      "address": 137,
      "count": 1,
      "name": "Protection switch 11 command",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "W",
      "description": "0 NOP, 1 UNUSED, 2 1:1-SW-ONCE, 3 1:1-SW-ALWAYS, 4 DISABLED, 5 ENABLED, 6 position A, 7 position B, 8 reset SWITCHED flag, 9 SW-2TO1. Command-only register: reading it back always returns 0."
    },
    {
      "address": 138,
      "count": 1,
      "name": "Protection switch 12 command",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "W",
      "description": "0 NOP, 1 UNUSED, 2 1:1-SW-ONCE, 3 1:1-SW-ALWAYS, 4 DISABLED, 5 ENABLED, 6 position A, 7 position B, 8 reset SWITCHED flag, 9 SW-2TO1. Command-only register: reading it back always returns 0."
    },
    {
      "address": 139,
      "count": 1,
      "name": "Protection switch 13 command",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "W",
      "description": "0 NOP, 1 UNUSED, 2 1:1-SW-ONCE, 3 1:1-SW-ALWAYS, 4 DISABLED, 5 ENABLED, 6 position A, 7 position B, 8 reset SWITCHED flag, 9 SW-2TO1. Command-only register: reading it back always returns 0."
    },
    {
      "address": 140,
      "count": 1,
      "name": "Protection switch 14 command",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "W",
      "description": "0 NOP, 1 UNUSED, 2 1:1-SW-ONCE, 3 1:1-SW-ALWAYS, 4 DISABLED, 5 ENABLED, 6 position A, 7 position B, 8 reset SWITCHED flag, 9 SW-2TO1. Command-only register: reading it back always returns 0."
    },
    {
      "address": 141,
      "count": 1,
      "name": "Protection switch 15 command",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "W",
      "description": "0 NOP, 1 UNUSED, 2 1:1-SW-ONCE, 3 1:1-SW-ALWAYS, 4 DISABLED, 5 ENABLED, 6 position A, 7 position B, 8 reset SWITCHED flag, 9 SW-2TO1. Command-only register: reading it back always returns 0."
    },
    {
      "address": 142,
      "count": 1,
      "name": "Protection switch 16 command",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "W",
      "description": "0 NOP, 1 UNUSED, 2 1:1-SW-ONCE, 3 1:1-SW-ALWAYS, 4 DISABLED, 5 ENABLED, 6 position A, 7 position B, 8 reset SWITCHED flag, 9 SW-2TO1. Command-only register: reading it back always returns 0."
    },
    {
      "address": 143,
      "count": 1,
      "name": "Protection switch 17 command",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "W",
      "description": "0 NOP, 1 UNUSED, 2 1:1-SW-ONCE, 3 1:1-SW-ALWAYS, 4 DISABLED, 5 ENABLED, 6 position A, 7 position B, 8 reset SWITCHED flag, 9 SW-2TO1. Command-only register: reading it back always returns 0."
    },
    {
      "address": 144,
      "count": 1,
      "name": "Protection switch 18 command",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "W",
      "description": "0 NOP, 1 UNUSED, 2 1:1-SW-ONCE, 3 1:1-SW-ALWAYS, 4 DISABLED, 5 ENABLED, 6 position A, 7 position B, 8 reset SWITCHED flag, 9 SW-2TO1. Command-only register: reading it back always returns 0."
    },
    {
      "address": 145,
      "count": 1,
      "name": "Protection switch 19 command",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "W",
      "description": "0 NOP, 1 UNUSED, 2 1:1-SW-ONCE, 3 1:1-SW-ALWAYS, 4 DISABLED, 5 ENABLED, 6 position A, 7 position B, 8 reset SWITCHED flag, 9 SW-2TO1. Command-only register: reading it back always returns 0."
    },
    {
      "address": 146,
      "count": 1,
      "name": "Protection switch 20 command",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "W",
      "description": "0 NOP, 1 UNUSED, 2 1:1-SW-ONCE, 3 1:1-SW-ALWAYS, 4 DISABLED, 5 ENABLED, 6 position A, 7 position B, 8 reset SWITCHED flag, 9 SW-2TO1. Command-only register: reading it back always returns 0."
    },
    {
      "address": 147,
      "count": 1,
      "name": "Protection switch 21 command",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "W",
      "description": "0 NOP, 1 UNUSED, 2 1:1-SW-ONCE, 3 1:1-SW-ALWAYS, 4 DISABLED, 5 ENABLED, 6 position A, 7 position B, 8 reset SWITCHED flag, 9 SW-2TO1. Command-only register: reading it back always returns 0."
    },
    {
      "address": 148,
      "count": 1,
      "name": "Protection switch 22 command",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "W",
      "description": "0 NOP, 1 UNUSED, 2 1:1-SW-ONCE, 3 1:1-SW-ALWAYS, 4 DISABLED, 5 ENABLED, 6 position A, 7 position B, 8 reset SWITCHED flag, 9 SW-2TO1. Command-only register: reading it back always returns 0."
    },
    {
      "address": 149,
      "count": 1,
      "name": "Protection switch 23 command",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "W",
      "description": "0 NOP, 1 UNUSED, 2 1:1-SW-ONCE, 3 1:1-SW-ALWAYS, 4 DISABLED, 5 ENABLED, 6 position A, 7 position B, 8 reset SWITCHED flag, 9 SW-2TO1. Command-only register: reading it back always returns 0."
    },
    {
      "address": 150,
      "count": 1,
      "name": "Protection switch 24 command",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "W",
      "description": "0 NOP, 1 UNUSED, 2 1:1-SW-ONCE, 3 1:1-SW-ALWAYS, 4 DISABLED, 5 ENABLED, 6 position A, 7 position B, 8 reset SWITCHED flag, 9 SW-2TO1. Command-only register: reading it back always returns 0."
    },
    {
      "address": 151,
      "count": 1,
      "name": "Protection switch 25 command",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "W",
      "description": "0 NOP, 1 UNUSED, 2 1:1-SW-ONCE, 3 1:1-SW-ALWAYS, 4 DISABLED, 5 ENABLED, 6 position A, 7 position B, 8 reset SWITCHED flag, 9 SW-2TO1. Command-only register: reading it back always returns 0."
    },
    {
      "address": 152,
      "count": 1,
      "name": "Protection switch 26 command",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "W",
      "description": "0 NOP, 1 UNUSED, 2 1:1-SW-ONCE, 3 1:1-SW-ALWAYS, 4 DISABLED, 5 ENABLED, 6 position A, 7 position B, 8 reset SWITCHED flag, 9 SW-2TO1. Command-only register: reading it back always returns 0."
    },
    {
      "address": 153,
      "count": 1,
      "name": "Protection switch 27 command",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "W",
      "description": "0 NOP, 1 UNUSED, 2 1:1-SW-ONCE, 3 1:1-SW-ALWAYS, 4 DISABLED, 5 ENABLED, 6 position A, 7 position B, 8 reset SWITCHED flag, 9 SW-2TO1. Command-only register: reading it back always returns 0."
    },
    {
      "address": 154,
      "count": 1,
      "name": "Protection switch 28 command",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "W",
      "description": "0 NOP, 1 UNUSED, 2 1:1-SW-ONCE, 3 1:1-SW-ALWAYS, 4 DISABLED, 5 ENABLED, 6 position A, 7 position B, 8 reset SWITCHED flag, 9 SW-2TO1. Command-only register: reading it back always returns 0."
    },
    {
      "address": 155,
      "count": 1,
      "name": "Protection switch 29 command",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "W",
      "description": "0 NOP, 1 UNUSED, 2 1:1-SW-ONCE, 3 1:1-SW-ALWAYS, 4 DISABLED, 5 ENABLED, 6 position A, 7 position B, 8 reset SWITCHED flag, 9 SW-2TO1. Command-only register: reading it back always returns 0."
    },
    {
      "address": 156,
      "count": 1,
      "name": "Protection switch 30 command",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "W",
      "description": "0 NOP, 1 UNUSED, 2 1:1-SW-ONCE, 3 1:1-SW-ALWAYS, 4 DISABLED, 5 ENABLED, 6 position A, 7 position B, 8 reset SWITCHED flag, 9 SW-2TO1. Command-only register: reading it back always returns 0."
    },
    {
      "address": 157,
      "count": 1,
      "name": "Protection switch 31 command",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "W",
      "description": "0 NOP, 1 UNUSED, 2 1:1-SW-ONCE, 3 1:1-SW-ALWAYS, 4 DISABLED, 5 ENABLED, 6 position A, 7 position B, 8 reset SWITCHED flag, 9 SW-2TO1. Command-only register: reading it back always returns 0."
    },
    {
      "address": 158,
      "count": 1,
      "name": "Protection switch 32 command",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "W",
      "description": "0 NOP, 1 UNUSED, 2 1:1-SW-ONCE, 3 1:1-SW-ALWAYS, 4 DISABLED, 5 ENABLED, 6 position A, 7 position B, 8 reset SWITCHED flag, 9 SW-2TO1. Command-only register: reading it back always returns 0."
    },
    {
      "address": 201,
      "count": 10,
      "name": "IP address",
      "data_type": "Ascii",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0-terminated character string, two characters per register with the first character in the low byte. Unused addresses must be set to '0.0.0.0'."
    },
    {
      "address": 211,
      "count": 10,
      "name": "Netmask",
      "data_type": "Ascii",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0-terminated character string, two characters per register with the first character in the low byte. Unused addresses must be set to '0.0.0.0'."
    },
    {
      "address": 221,
      "count": 10,
      "name": "Default gateway",
      "data_type": "Ascii",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0-terminated character string, two characters per register with the first character in the low byte. Unused addresses must be set to '0.0.0.0'."
    },
    {
      "address": 251,
      "count": 10,
      "name": "NTP server 1 IP",
      "data_type": "Ascii",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0-terminated character string, two characters per register with the first character in the low byte. Unused addresses must be set to '0.0.0.0'."
    },
    {
      "address": 261,
      "count": 10,
      "name": "NTP server 2 IP",
      "data_type": "Ascii",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0-terminated character string, two characters per register with the first character in the low byte. Unused addresses must be set to '0.0.0.0'."
    },
    {
      "address": 376,
      "count": 1,
      "name": "NTP time zone offset",
      "data_type": "Int16",
      "units": "min",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Minutes added to UTC to obtain local time."
    },
    {
      "address": 377,
      "count": 1,
      "name": "Web GUI refresh interval",
      "data_type": "UInt16",
      "units": "s",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW"
    },
    {
      "address": 379,
      "count": 1,
      "name": "Parallel switch actuations",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Number of waveguide switch actuations that may be active at the same time: 0 = no limitation, 1-16 = the limit."
    },
    {
      "address": 380,
      "count": 1,
      "name": "PSU alarm enable",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "1 enables alarms for the redundant power supply unit."
    },
    {
      "address": 381,
      "count": 1,
      "name": "Point & click operation",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "1 enables point & click operation on the main page of the web interface."
    }
  ],
  "combined_registers": [],
  "notes": "Source: sat-nms IO-FEP2 user manual, chapter 4.6 'Modbus remote control interface' with its register blocks 4.6.2 to 4.6.9 (SatService GmbH, satnms.com / satservicegmbh.de, page satservicegmbh.de/files/satnms/doc/io-fep2/remote-control-modbus-remote-control-interface.html). The IO-FEP2 is the ground-station front-end processor of the sat-nms earth station family: it switches waveguide and coaxial switches, mutes HPAs through its inhibit matrix, monitors LNA/LNB power supplies and reads rack and PT1000 temperatures. Section 4.6.1 states the address convention directly - 'Register addresses in the following chapters all are written in decimal notation, zero-based' - so the addresses listed here are the wire addresses (zero_based). The manual documents no TCP port and no unit identifier for the Modbus/TCP server. Port 502 and unit 1 as recorded here are placeholders, not cited values: the user must set the port the IO-FEP2's Modbus server is configured with and the unit ID it answers on. Single-bit rows are typed Binary with their bit meanings in the description. Register 0 is reserved by the device and is not listed. Register 00122 (\"outputs 17..32\") is not listed either: section 4.6.4 marks it \"Reserved for future use\", and the IO-FEP2 has 16 outputs. Deliberately left out: the per-input (01001+), per-output (03001+) and per-waveguide-switch (04001+) setup blocks and the licence-key string block (00401+), which carry port names, pulse widths, types and feature codes rather than measurements. The device uses function codes 03/04 for reading and 06/10 for writing."
}
