{
 "manufacturer": "Hamilton Engineering",
 "manufacturer_slug": "hamilton-engineering",
 "model": "BDB-CDB (ProtoNode FPC-N54)",
 "model_slug": "bdb-cdb-protonode",
 "aliases": [
  "BDB-CDB",
  "BDB",
  "CDB",
  "ProtoNode FPC-N54",
  "FPC-N54-1776",
  "Hamilton ProtoNode"
 ],
 "equipment_type": "Boiler cascade controller via ProtoNode gateway",
 "applies_to": "Hamilton Engineering equipment with the BDB-CDB control, which reports cascade values and up to eight BCB blocks (BCB1-BCB8), connected through a ProtoNode FPC-N54.",
 "summary": "Hamilton Engineering's BDB-CDB control is read over Modbus RTU by a ProtoNode FPC-N54 and served on BACnet IP or BACnet MS/TP. The 99-object profile has writable central heating, DHW, indirect DHW, pool and spa setpoints, cascade sensor readings and an anomaly code, then a 9-object block for each of BCB1 to BCB8. This file lists the cascade objects and the BCB1 block.",
 "bacnet_transport": [
  "BACnet IP",
  "BACnet MS/TP"
 ],
 "firmware": null,
 "default_device_instance": "50032 (Node_Offset default 50,000 + the BDB-CDB Node-ID 32)",
 "access_inferred": true,
 "notes": [
  "Per-boiler blocks repeat every 9 objects: BCB n = the BCB1 instance + 9 x (n - 1), so BCB2 is AI/MI 37-45 and BCB8 is AI/MI 91-99.",
  "The guide only names the device BDB-CDB and does not expand BCB; it does not say which Hamilton products use it.",
  "The table has no read/write column, units or state texts; access is inferred from object type (AV writable, AI/MI read only).",
  "The two anomaly code 2 parts are multistate inputs; their state texts are not given."
 ],
 "integration": {
  "summary": "Wire the BDB-CDB Modbus port (9600, 8N1) to the ProtoNode R1 port, pick BACnet IP or BACnet MS/TP in the Web Configurator, add the BDB-CDB profile with Node-ID 32, and discover the device at 50032. Setpoints are the writable analog values; status and fault information comes from the cascade anomaly and the per-board working status and anomaly codes.",
  "minimum_points": [
   {
    "ref": "AV 2",
    "name": "CH Requests",
    "why": "Central heating request; values not defined in the guide"
   },
   {
    "ref": "AV 11",
    "name": "Boiler For Heating Setpoint",
    "why": "Boiler setpoint for the heating load"
   },
   {
    "ref": "AV 12",
    "name": "Dhw SP Temp",
    "why": "Domestic hot water setpoint"
   },
   {
    "ref": "AI 31",
    "name": "BCB1 Working Status",
    "why": "BCB1 working status"
   },
   {
    "ref": "AI 21",
    "name": "Cascade S1 Temp Sensor Value",
    "why": "Cascade sensor S1 temperature"
   },
   {
    "ref": "AI 27",
    "name": "Cascade Anomaly",
    "why": "Cascade-level anomaly (fault) code"
   },
   {
    "ref": "AI 32",
    "name": "BCB1 Anom Code 1",
    "why": "BCB1 anomaly code"
   }
  ],
  "enable": null,
  "heartbeat": null,
  "remote_sensors": null,
  "setup": [
   "Device instance = Node_Offset (default 50,000) + Node-ID; the BDB-CDB profile uses Node-ID 32, so 50032 by default.",
   "Modbus side (R1 port): Modbus RTU 9600, 8N1. BMS RS-485 on the R2 port; bias resistors are DIP switches on each port.",
   "Default IP 192.168.1.24 (255.255.255.0); the field protocol is chosen with the Protocol Selector in the Web Configurator.",
   "Each ProtoNode on a subnet needs its own BACnet Network Number (default 50001)."
  ],
  "gotchas": [
   "Boiler blocks repeat every 9 instances (BCB n = BCB1 + 9 x (n - 1)); only BCB1 is listed here.",
   "The guide gives no units, ranges or code tables; confirm values with Hamilton Engineering."
  ]
 },
 "source": {
  "title": "ProtoNode FPC-N54 Start-up Guide for Interfacing Hamilton Engineering Products: BDB-CDB",
  "doc_number": "Document Revision 2.A (Web Configurator Template Revision 3)",
  "revision_date": "2019-06",
  "url": "https://hamiltonengineering.com/wp-content/uploads/ProtoNode-FPC-N54-Start-up-Guide-06.19.pdf"
 },
 "points": [
  {
   "type": "AI",
   "instance": 1,
   "name": "System Configuration",
   "description": "System configuration value",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2,
   "name": "CH Requests",
   "description": "Central heating requests",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 3,
   "name": "CH SP / CH Offset 1",
   "description": "CH setpoint or CH offset 1",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 4,
   "name": "CH SP / CH Offset 2",
   "description": "CH setpoint or CH offset 2",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 5,
   "name": "CH SP / CH Offset 3",
   "description": "CH setpoint or CH offset 3",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 6,
   "name": "CH SP / CH Offset 4",
   "description": "CH setpoint or CH offset 4",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 7,
   "name": "CH SP / CH Offset 5",
   "description": "CH setpoint or CH offset 5",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 8,
   "name": "CH SP / CH Offset 6",
   "description": "CH setpoint or CH offset 6",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 9,
   "name": "CH SP / CH Offset 7",
   "description": "CH setpoint or CH offset 7",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 10,
   "name": "CH SP / CH Offset 8",
   "description": "CH setpoint or CH offset 8",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 11,
   "name": "Boiler For Heating Setpoint",
   "description": "Boiler setpoint for heating",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 12,
   "name": "Dhw SP Temp",
   "description": "Domestic hot water setpoint",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 13,
   "name": "Recirculation SP For Cascade Reg",
   "description": "Recirculation setpoint for cascade regulation",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 14,
   "name": "Idhw SP Temp",
   "description": "Indirect DHW setpoint",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 15,
   "name": "Boiler For Idhw Load Setpoint",
   "description": "Boiler setpoint for indirect DHW load",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 16,
   "name": "Ispa SP Temp",
   "description": "Spa setpoint",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 17,
   "name": "Boiler For Pool Load Setpoint",
   "description": "Boiler setpoint for pool load",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 18,
   "name": "Ipool SP Temp",
   "description": "Pool setpoint",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 19,
   "name": "Boiler For Spa Load Setpoint",
   "description": "Boiler setpoint for spa load",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 20,
   "name": "Cascade Temp Sensors State",
   "description": "Cascade sensor status",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 21,
   "name": "Cascade S1 Temp Sensor Value",
   "description": "Cascade sensor S1 temperature",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 22,
   "name": "Cascade S2 Temp Sensor Value",
   "description": "Cascade sensor S2 temperature",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 23,
   "name": "Cascade S3 Temp Sensor Value",
   "description": "Cascade sensor S3 temperature",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 24,
   "name": "Cascade S4 Temp Sensor Value",
   "description": "Cascade sensor S4 temperature",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 25,
   "name": "Cascade S5 Temp Sensor Value",
   "description": "Cascade sensor S5 temperature",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 26,
   "name": "Cascade S6 Temp Sensor Value",
   "description": "Cascade sensor S6 temperature",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 27,
   "name": "Cascade Anomaly",
   "description": "Cascade anomaly (fault) code",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 28,
   "name": "BCB1 Temp Sensors State",
   "description": "BCB1 sensor status",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 29,
   "name": "BCB1 T1 Temp Sensor Value",
   "description": "BCB1 sensor T1 temperature",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 30,
   "name": "BCB1 T2 Temp Sensor Value",
   "description": "BCB1 sensor T2 temperature",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 31,
   "name": "BCB1 Working Status",
   "description": "BCB1 working status",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 32,
   "name": "BCB1 Anom Code 1",
   "description": "BCB1 anomaly code 1",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "MI",
   "instance": 33,
   "name": "BCB1 Anom Code 2 Prefix",
   "description": "BCB1 anomaly code 2, prefix",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "MI",
   "instance": 34,
   "name": "BCB1 Anom Code 2 Suffix",
   "description": "BCB1 anomaly code 2, suffix",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 35,
   "name": "BCB1 Fan Modulation Relative Per",
   "description": "BCB1 fan modulation, relative",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 36,
   "name": "BCB1 Fan Modulation Absolute Per",
   "description": "BCB1 fan modulation, absolute",
   "units": "%",
   "access": "R",
   "states": ""
  }
 ],
 "page": "https://easybacnet.com/bacnet-points-lists/hamilton-engineering/bdb-cdb-protonode",
 "note": "Re-typed from the manufacturer's public documentation (see source). Point availability varies by firmware and options; verify against the live device."
}
