{
  "$schema": "https://raw.githubusercontent.com/nobrega8/mbmap-library/main/schema/mbmap-2.schema.json",
  "mbmap": 2,
  "vendor": "Advantech",
  "model": "ADAM-4055",
  "models": ["ADAM-4055"],
  "vendor_website": "advantech.com",
  "description": "Isolated digital I/O module, 8 DI and 8 DO, RS485 Modbus RTU",
  "revision": 2,
  "revised": "2026-10-17",
  "source": "Advantech, \"ADAM-4000 Data Acquisition Modules User's Manual\", Edition 10.7, Appendix G (I/O Modbus mapping table)",
  "sources": [{"title": "ADAM-4000 Data Acquisition Modules User's Manual", "version": "Edition 10.7", "url": "https://www.kolbinger.at/DAQM/manuals/ADAM-4000%20series%20User%20Manual.pdf", "note": "Appendix G, table 7; type codes from chapters 5 and 6"}],
  "notes": [
    "Addresses are the Modicon numbers of the manual (00001 = coil 1, 40001 = holding register 1).",
    "The module ships with the ADAM ASCII protocol; Appendix H of the manual switches it to Modbus RTU."
  ],
  "protocol": "rtu",
  "unit_id": 1,
  "baudrate": 9600,
  "parity": "N",
  "byte_order": "big",
  "word_order": "big",
  "address_base": 1,
  "x_status": "official",
  "registers": [
    {"name": "DI0", "group": "Inputs", "area": "coil", "address": 1, "type": "bool", "access": "R"},
    {"name": "DI1", "group": "Inputs", "area": "coil", "address": 2, "type": "bool", "access": "R"},
    {"name": "DI2", "group": "Inputs", "area": "coil", "address": 3, "type": "bool", "access": "R"},
    {"name": "DI3", "group": "Inputs", "area": "coil", "address": 4, "type": "bool", "access": "R"},
    {"name": "DI4", "group": "Inputs", "area": "coil", "address": 5, "type": "bool", "access": "R"},
    {"name": "DI5", "group": "Inputs", "area": "coil", "address": 6, "type": "bool", "access": "R"},
    {"name": "DI6", "group": "Inputs", "area": "coil", "address": 7, "type": "bool", "access": "R"},
    {"name": "DI7", "group": "Inputs", "area": "coil", "address": 8, "type": "bool", "access": "R"},
    {"name": "DO0", "group": "Outputs", "area": "coil", "address": 17, "type": "bool", "access": "RW"},
    {"name": "DO1", "group": "Outputs", "area": "coil", "address": 18, "type": "bool", "access": "RW"},
    {"name": "DO2", "group": "Outputs", "area": "coil", "address": 19, "type": "bool", "access": "RW"},
    {"name": "DO3", "group": "Outputs", "area": "coil", "address": 20, "type": "bool", "access": "RW"},
    {"name": "DO4", "group": "Outputs", "area": "coil", "address": 21, "type": "bool", "access": "RW"},
    {"name": "DO5", "group": "Outputs", "area": "coil", "address": 22, "type": "bool", "access": "RW"},
    {"name": "DO6", "group": "Outputs", "area": "coil", "address": 23, "type": "bool", "access": "RW"},
    {"name": "DO7", "group": "Outputs", "area": "coil", "address": 24, "type": "bool", "access": "RW"},
    {"name": "Module name 1", "group": "Identity", "area": "holding", "address": 211, "type": "uint16", "access": "R", "enum": {"0x4055": "ADAM-4055"}, "reference": "0x4055", "role": "model"},
    {"name": "Module name 2", "group": "Identity", "area": "holding", "address": 212, "type": "uint16", "access": "R"},
    {"name": "Firmware version 1", "group": "Identity", "area": "holding", "address": 213, "type": "uint16", "access": "R"},
    {"name": "Firmware version 2", "group": "Identity", "area": "holding", "address": 214, "type": "uint16", "access": "R"},
    {"name": "Comm safety enabled", "group": "Status", "area": "holding", "address": 215, "type": "uint16", "access": "R", "enum": {"0": "Disabled", "1": "Enabled"}},
    {"name": "Comm safety tripped", "group": "Status", "area": "holding", "address": 216, "type": "uint16", "access": "R", "enum": {"0": "No", "1": "Yes"}}
  ]
}
