{
  "spec_version": 1,
  "slug": "advantech-adam-4055",
  "manufacturer": "Advantech",
  "model": "ADAM-4055 (16-channel isolated digital I/O, 8 DI + 8 DO)",
  "category": "Remote I/O",
  "supplier_url": "https://www.advantech.com/en-us/products/gf-5vwk/adam-4055/mod_fd19e628-4ea5-4c16-915c-5ceeef2fb65c",
  "default_configuration": {
    "protocol": "modbus_tcp",
    "port": 502,
    "unit_id": 1,
    "addressing": "zero_based",
    "byte_order": "BigEndian",
    "word_order": "HighFirst",
    "native_interface": "rs485",
    "serial": {
      "parity": "None",
      "baud_rate": 9600,
      "data_bits": 8,
      "stop_bits": 1
    }
  },
  "coils": [
    {
      "address": 0,
      "count": 1,
      "name": "Digital input 0 signal",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = off, 1 = on (coil reference 00001)."
    },
    {
      "address": 1,
      "count": 1,
      "name": "Digital input 1 signal",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = off, 1 = on (coil reference 00002)."
    },
    {
      "address": 2,
      "count": 1,
      "name": "Digital input 2 signal",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = off, 1 = on (coil reference 00003)."
    },
    {
      "address": 3,
      "count": 1,
      "name": "Digital input 3 signal",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = off, 1 = on (coil reference 00004)."
    },
    {
      "address": 4,
      "count": 1,
      "name": "Digital input 4 signal",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = off, 1 = on (coil reference 00005)."
    },
    {
      "address": 5,
      "count": 1,
      "name": "Digital input 5 signal",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = off, 1 = on (coil reference 00006)."
    },
    {
      "address": 6,
      "count": 1,
      "name": "Digital input 6 signal",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = off, 1 = on (coil reference 00007)."
    },
    {
      "address": 7,
      "count": 1,
      "name": "Digital input 7 signal",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = off, 1 = on (coil reference 00008)."
    },
    {
      "address": 16,
      "count": 1,
      "name": "Digital output 0 value",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = off, 1 = on (coil reference 00017)."
    },
    {
      "address": 17,
      "count": 1,
      "name": "Digital output 1 value",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = off, 1 = on (coil reference 00018)."
    },
    {
      "address": 18,
      "count": 1,
      "name": "Digital output 2 value",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = off, 1 = on (coil reference 00019)."
    },
    {
      "address": 19,
      "count": 1,
      "name": "Digital output 3 value",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = off, 1 = on (coil reference 00020)."
    },
    {
      "address": 20,
      "count": 1,
      "name": "Digital output 4 value",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = off, 1 = on (coil reference 00021)."
    },
    {
      "address": 21,
      "count": 1,
      "name": "Digital output 5 value",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = off, 1 = on (coil reference 00022)."
    },
    {
      "address": 22,
      "count": 1,
      "name": "Digital output 6 value",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = off, 1 = on (coil reference 00023)."
    },
    {
      "address": 23,
      "count": 1,
      "name": "Digital output 7 value",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = off, 1 = on (coil reference 00024)."
    }
  ],
  "discrete_inputs": [],
  "input_registers": [],
  "holding_registers": [
    {
      "address": 214,
      "count": 1,
      "name": "Communication safety enable",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Register 40215. The table types it read-only and prints the states Enable: 0x00 / 0x01."
    },
    {
      "address": 215,
      "count": 1,
      "name": "Communication safety flag",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Register 40216. The table types it read-only and prints the states Occur: 0x00 / 0x01."
    }
  ],
  "combined_registers": [],
  "notes": "RS-485 remote I/O: the module reaches Modbus Connect through a Modbus RTU-to-TCP gateway, and the serial block holds the factory settings the gateway must use. Source: Advantech \"ADAM-4000 Series User Manual\" Ed.9 (2023), Appendix G.1 \"ADAM-4000 I/O Modbus Mapping Table\", item 11 \"ADAM-4055 16-channel Isolated Digital I/O with LED Module\" (manual page 271); factory communication settings from chapter 2.2 \"Default Factory Settings\" (baud rate 9600 bit/s, address 01 hexadecimal) and Appendix H.1 (initial COM settings 9600 baud, N-8-1). Addressing: the mapping table prints Modbus reference numbers (\"ADDR 0X\" 00001..., \"ADDR 4X\" 40001...) and this seed stores the equivalent zero-based wire addresses (reference minus one), as the ADAM-6000 seeds in this library do. The module has eight isolated digital inputs (coil references 00001-00008) and eight isolated digital outputs (00017-00024); the gap 00009-00016 is not part of this module's map. The two holding registers are the communication-safety enable and flag registers. The module-name and version registers 40211-40214 are left out on purpose: in this table the memo column that carries their byte values is printed one row out of line, so the bytes cannot be paired with the registers without guessing. The command set's configuration and calibration commands are ASCII protocol commands, not Modbus registers, so no write-only settings block is claimed. A Modbus-version module can leave the factory set to the ADAM ASCII protocol; Appendix H.1 documents switching it to Modbus with the Adam/Apax .NET utility before the map above applies."
}
