{
  "spec_version": 1,
  "slug": "sentera-rdcv9",
  "manufacturer": "Sentera",
  "model": "RDCV9 digital residential fan speed controller",
  "category": "Fan controller",
  "supplier_url": "https://www.sentera.eu/en/productdetails/digital-potentiometer--white-enclosure/121479",
  "default_configuration": {
    "protocol": "modbus_tcp",
    "port": 502,
    "unit_id": 1,
    "addressing": "one_based",
    "byte_order": "BigEndian",
    "word_order": "HighFirst",
    "native_interface": "rs485",
    "serial": {
      "parity": "Even",
      "baud_rate": 19200,
      "data_bits": 8,
      "stop_bits": 1
    }
  },
  "coils": [],
  "discrete_inputs": [],
  "input_registers": [
    {
      "address": 1,
      "count": 1,
      "name": "Output value",
      "data_type": "UInt16",
      "units": "%",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0...100 % output; 100 = 10 VDC / 20 mA / 100 % PWM, 50 = 5 VDC / 10 mA / 50 % PWM."
    },
    {
      "address": 2,
      "count": 1,
      "name": "Output step",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Currently selected step, 0...9 (8 = step 8)."
    },
    {
      "address": 3,
      "count": 1,
      "name": "Output type",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = 0...10 VDC, 1 = 0...20 mA, 2 = 0...100 % PWM."
    },
    {
      "address": 4,
      "count": 1,
      "name": "Minimum output value",
      "data_type": "UInt16",
      "units": "%",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0...80 %; 20 = 2 VDC / 4 mA / 20 % PWM."
    },
    {
      "address": 5,
      "count": 1,
      "name": "Maximum output value",
      "data_type": "UInt16",
      "units": "%",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "20...100 %; 80 = 8 VDC / 16 mA / 80 % PWM."
    },
    {
      "address": 8,
      "count": 1,
      "name": "Output overwrite mode",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = manual, 1 = overwrite active."
    }
  ],
  "holding_registers": [
    {
      "address": 1,
      "count": 1,
      "name": "Device slave address",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "1...247, factory default 1."
    },
    {
      "address": 2,
      "count": 1,
      "name": "Modbus baud rate",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = 4800, 1 = 9600, 2 = 19200, 3 = 38400, 4 = 57600, 5 = 115200, 6 = 230400 bps. Factory default 2 (19200 bps)."
    },
    {
      "address": 3,
      "count": 1,
      "name": "Modbus parity mode",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = 8N1, 1 = 8E1, 2 = 8O1. Factory default 1 (8E1)."
    },
    {
      "address": 4,
      "count": 1,
      "name": "Device type",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Read-only, RDCV9 = 2.300."
    },
    {
      "address": 5,
      "count": 1,
      "name": "Hardware version",
      "data_type": "Hex",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Read-only, e.g. 0x0110 = hardware version 1.1."
    },
    {
      "address": 6,
      "count": 1,
      "name": "Firmware version",
      "data_type": "Hex",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Read-only, e.g. 0x0610 = firmware version 6.1."
    },
    {
      "address": 9,
      "count": 1,
      "name": "Network bus termination resistor (NBT)",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = NBT disconnected, 1 = NBT connected. The NBT must be active in the two devices at the ends of the line. Factory default 0."
    },
    {
      "address": 10,
      "count": 1,
      "name": "Reset Modbus holding registers",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = nothing, 1 = reset all holding registers above 10 to their default value. Factory default 0."
    },
    {
      "address": 11,
      "count": 1,
      "name": "Operating mode",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = run, 1 = standby. Factory default 0."
    },
    {
      "address": 12,
      "count": 1,
      "name": "Minimum output value",
      "data_type": "UInt16",
      "units": "%",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0...80 %; 20 = 2 VDC / 4 mA / 20 % PWM. Factory default 20."
    },
    {
      "address": 13,
      "count": 1,
      "name": "Maximum output value",
      "data_type": "UInt16",
      "units": "%",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "20...100 %; 80 = 8 VDC / 16 mA / 80 % PWM. Factory default 100."
    },
    {
      "address": 14,
      "count": 1,
      "name": "Start output value",
      "data_type": "UInt16",
      "units": "%",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Output level when the unit is switched on, 0...100 %. Factory default 20 (20 % = 2 VDC / 4 mA / 20 % PWM)."
    },
    {
      "address": 15,
      "count": 1,
      "name": "Output type",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = 0...10 VDC, 1 = 0...20 mA, 2 = 0...100 % PWM. Factory default 0."
    },
    {
      "address": 16,
      "count": 1,
      "name": "PWM type",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = open collector, 1 = pull-up +12 VDC. Factory default 0."
    },
    {
      "address": 17,
      "count": 1,
      "name": "Output steps",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Number of output steps, 0...9: 0 = 1 % per step, 1 = 1 step, 8 = 8 steps. Factory default 0."
    },
    {
      "address": 18,
      "count": 1,
      "name": "Start step",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Starting step, 0...9 (0 = step 0). Factory default 0."
    },
    {
      "address": 19,
      "count": 1,
      "name": "Output overwrite enable",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = inactive, 1 = active. Factory default 0."
    },
    {
      "address": 20,
      "count": 1,
      "name": "Overwrite value",
      "data_type": "UInt16",
      "units": "%",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Output value in overwrite mode, 0...100 % (50 = 50 %). Factory default 50."
    }
  ],
  "combined_registers": [],
  "notes": "Source: Sentera 'RDCV9 digital residential fan speed controller - Modbus register map', document code MBRM-RDCV9-EN-000 dated 18/03/2026, vendor-hosted PDF at https://www.sentera.eu/en/files/article/document/mbrm/rdcv9-ad-wh-modbus-register-map.pdf (SHA-256 a298ba3c5da3a868d1167bf43c3907a0e866e8b87a7a4f71612865ac2d944dbd; the black-enclosure copy at sentera.eu/nl/bestanden/artikel/document/mbrm/rdcv9-ad-bk-modbus-registermap.pdf is the same file) reached from the 'Modbus register map' link on the RDCV9 product page at the URL above (opened 7 Nov 2026): page 2 input registers, pages 3-4 holding registers. Factory settings from the holding-register table's 'Factory default values' column: slave address 1, baud rate 2 (19200 bps out of 0 = 4800, 1 = 9600, 2 = 19200, 3 = 38400, 4 = 57600, 5 = 115200, 6 = 230400), parity 1 (8E1 out of 0 = 8N1, 1 = 8E1, 2 = 8O1). Addressing: the map numbers its input registers 1...8 and holding registers 1...20 without a wire address or a frame example, which is the supplier's 1-based register numbering (Modbus register 1 = address 0x0000), so the seed declares one_based and stores the numbers exactly as printed. The document itself skips input registers 6 and 7 and holding registers 7 and 8 - those rows are not listed in the map and are not claimed here. The input-register block stops at 8 because 6 and 7 are absent. This is a fan-speed controller for EC/AC fans (0...10 VDC, 0...20 mA or PWM output) as used for the ventilation loops of small livestock rooms, sheds and stables; the holding register 13 maximum output and register 14 start output are the practical limits a barn ventilation curve is built on."
}
