{
 "manufacturer": "Fulton",
 "manufacturer_slug": "fulton",
 "model": "PURE Control - Endura XE EXE 399-750 Single (N54 ProtoNode)",
 "short_model": "PURE Endura XE 399-750 Single",
 "model_slug": "pure-endura-xe-single-protonode-n54",
 "aliases": [
  "Endura XE",
  "EXE 399",
  "EXE 750",
  "Fulton PURE",
  "N54 ProtoNode"
 ],
 "equipment_type": "Boiler controller gateway",
 "applies_to": "Fulton Endura XE (EXE) 399-750 hydronic boilers with the PURE control, one boiler per address block on the N54 ProtoNode.",
 "summary": "Fulton's N54 ProtoNode publishes 49 objects for each boiler (one block of objects per boiler), for Endura XE (EXE) 399-750 boilers with the PURE control. It covers burner state, modulation, water temperatures, safety switch states, alarms and pump/isolation valve status. The BMS can enable the boiler, send a water setpoint and a heartbeat, and supply outdoor and header values when the boiler is set up for them.",
 "bacnet_transport": [],
 "firmware": null,
 "default_device_instance": null,
 "access_inferred": false,
 "notes": [
  "Object IDs are written (X)001-(X)058, where (X) is the boiler's Modbus address on the ProtoNode. This list shows boiler address 1 (1001-1058); boiler 2 uses 2001-2058.",
  "The sheet does not say which BACnet transport the gateway is set to; ProtoNode gateways are normally configured for BACnet IP or BACnet MS/TP.",
  "The BMS Enable point only works after a physical jumper is removed at the boiler.",
  "Outdoor and header AVs marked Note 1 are writable only when the boiler program is set to take that value from the BMS.",
  "Current Alarm Index is decoded with Fulton's alarm chart and is only valid while Active Alarm = 1.",
  "Fulton removed some point numbers from this sheet to match the EXE hardware, so IDs are not continuous.",
  "Burner Control Status uses EXE codes (0 Standby ... 3 Run, 5 Lock Out), not the LMV phase codes of the larger Endura models."
 ],
 "integration": {
  "summary": "Remove the BMS enable jumper at the boiler, write BMS Enable = 1, send the water setpoint to BMS Network Setpoint and keep writing 1 to BMS Heartbeat at least every 10 s. Check that Current Setpoint Mode reads BMS Network (2), then read status, outlet temperature, modulation rate and the alarm points.",
  "minimum_points": [
   {
    "ref": "BV 1057",
    "name": "Boiler 1 BMS Enable",
    "why": "Network enable; jumper must be removed first"
   },
   {
    "ref": "AV 1052",
    "name": "Boiler 1 BMS Network Setpoint",
    "why": "Water temperature setpoint, 40-185 °F"
   },
   {
    "ref": "AV 1058",
    "name": "Boiler 1 BMS Heartbeat",
    "why": "Write 1 at least every 10 s for remote operation"
   },
   {
    "ref": "AI 1051",
    "name": "Boiler 1 Current Setpoint Mode",
    "why": "Setpoint source; 2 = BMS Network"
   },
   {
    "ref": "AI 1001",
    "name": "Boiler 1 Burner Control Status",
    "why": "Burner state; 3 = run, 5 = lock out"
   },
   {
    "ref": "AI 1017",
    "name": "Boiler 1 Outlet Temperature",
    "why": "Outlet water temperature, °F"
   },
   {
    "ref": "AI 1005",
    "name": "Boiler 1 Modulation Rate",
    "why": "Actual modulation rate, %"
   },
   {
    "ref": "AI 1044",
    "name": "Boiler 1 Active Alarm",
    "why": "Any alarm active (1 = alarm)"
   },
   {
    "ref": "AI 1043",
    "name": "Boiler 1 Current Alarm Index",
    "why": "Alarm number from Fulton's alarm chart"
   }
  ],
  "enable": "Remove the physical jumper at the boiler, then write BV (X)057 BMS Enable = 1. The setpoint comes from AV (X)052 BMS Network Setpoint (40-185 °F); AI (X)051 Current Setpoint Mode reads 2 when the network setpoint is in use.",
  "heartbeat": "AV (X)058 BMS Heartbeat: the BMS must write 1 at least once every 10 seconds for remote operation. What the boiler does when the heartbeat stops is not stated on this sheet.",
  "remote_sensors": "AV (X)025 outdoor air, (X)026 header supply, (X)027 header return and (X)029 DHW temperature are writable only when the boiler program is set to accept that value from the BMS (°F).",
  "setup": [
   "Object ID = boiler Modbus address followed by the three-digit point number: (X)001-(X)058. Boiler 1 = 1001-1058, boiler 2 = 2001-2058.",
   "The sheet gives no device instance, MAC address or baud rate; those are set on the ProtoNode gateway."
  ],
  "gotchas": [
   "BMS Enable does nothing until the physical jumper is removed.",
   "Safety BIs mostly read 0 = Fault, 1 = No Fault; High Limit Aquastat reads 1 = Fault and Primary Low Water reads 0 = Off, 1 = On on this sheet."
  ]
 },
 "source": {
  "title": "Hydronic PURE Per Boiler - Fulton N54 ProtoNode BACnet Network Addressing (Endura XE EXE 399-750)",
  "doc_number": null,
  "revision_date": "2023-03-10 (file date)",
  "url": "https://fulton.com/app/uploads/2023/03/N54-PURE-EXE-399-750-Single-BACnet-list_2023_0310.pdf"
 },
 "points": [
  {
   "type": "AI",
   "instance": 1001,
   "name": "Boiler 1 Burner Control Status",
   "description": "",
   "units": "",
   "access": "R",
   "states": "0=Standby, 1=Pre-Purge, 2=Ignite, 3=Run, 4=Post-Purge, 5=Lock Out, 6=Homing, 7=Switch Off"
  },
  {
   "type": "AI",
   "instance": 1002,
   "name": "Boiler 1 Control Status",
   "description": "",
   "units": "",
   "access": "R",
   "states": "0=Waiting, 1=Disabled, 2=Not Available, 3=Lead, 4=Lag 1, 5=Lag 2, 6=Lag 3, 7=Lag 4, 8=Lag 5, 9=Lag 6, 10=Lag 7, 11=Lag 8, 12=Lag 9, 13=Lag 10, 14=Lag 1, 15=Lag 2, 16=Lag 3, 17=Lag 4, 18=Lag 5, 19=Lag 6, 20=Lag 7, 21=Lag 8, 22=Lag 9, 23=Lag 10, 24=Local, 25=Manual, 26=DHW Override, 27=Modsync, 28=ROC Protection"
  },
  {
   "type": "AI",
   "instance": 1003,
   "name": "Boiler 1 Modulation Status",
   "description": "",
   "units": "",
   "access": "R",
   "states": "0=Normal Rate, 1=Low Fire Hold, 2=Cold Start, 3=Freeze Protection, 4=Delta T Protection, 5=Outlet Soft Limit, 6=Venting Limitation, 7=Normal Rate"
  },
  {
   "type": "AI",
   "instance": 1004,
   "name": "Boiler 1 Modulation Target",
   "description": "Range 0.0 to 100.0",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 1005,
   "name": "Boiler 1 Modulation Rate",
   "description": "Range 0.0 to 100.0",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 1006,
   "name": "Boiler 1 Flame Signal",
   "description": "Range 0.0 to 100.0",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 1011,
   "name": "Boiler 1 Fan Speed",
   "description": "Range 0 to 10000",
   "units": "RPM",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 1017,
   "name": "Boiler 1 Outlet Temperature",
   "description": "Range -50.0 to 250.0",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 1018,
   "name": "Boiler 1 Inlet Temperature",
   "description": "Range -50.0 to 250.0",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 1019,
   "name": "Boiler 1 Delta T",
   "description": "Range -50.0 to 250.0",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 1020,
   "name": "Boiler 1 Start Temperature",
   "description": "Range -50.0 to 250.0",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 1021,
   "name": "Boiler 1 Stop Temperature",
   "description": "Range -50.0 to 250.0",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 1022,
   "name": "Boiler 1 Stack Temperature",
   "description": "Range -50.0 to 250.0",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 1023,
   "name": "Boiler 1 Combustion Air Temperature",
   "description": "Range -50.0 to 250.0",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 1024,
   "name": "Boiler 1 Current Setpoint",
   "description": "Range -50.0 to 250.0",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 1025,
   "name": "Boiler 1 Outdoor Air Temperature",
   "description": "Range -50.0 to 250.0; writable when BMS-sourced",
   "units": "°F",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 1026,
   "name": "Boiler 1 Common Header Supply Temperature",
   "description": "Range -50.0 to 250.0; writable when BMS-sourced",
   "units": "°F",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 1027,
   "name": "Boiler 1 Common Header Return Temperature",
   "description": "Range -50.0 to 250.0; writable when BMS-sourced",
   "units": "°F",
   "access": "W",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 1028,
   "name": "Boiler 1 Common Header Delta T",
   "description": "Range -50.0 to 250.0",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 1029,
   "name": "Boiler 1 DHW Temperature",
   "description": "Range -50.0 to 250.0; writable when BMS-sourced",
   "units": "°F",
   "access": "W",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 1030,
   "name": "Boiler 1 Call For Heat",
   "description": "",
   "units": "",
   "access": "R",
   "states": "0=No Call, 1=Call For Heat"
  },
  {
   "type": "BI",
   "instance": 1031,
   "name": "Boiler 1 On/Off Switch",
   "description": "",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BI",
   "instance": 1032,
   "name": "Boiler 1 Primary Low Water",
   "description": "",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BI",
   "instance": 1033,
   "name": "Boiler 1 High Limit Aquastat",
   "description": "",
   "units": "",
   "access": "R",
   "states": "1=Fault, 0=No Fault"
  },
  {
   "type": "BI",
   "instance": 1034,
   "name": "Boiler 1 Operating Aquastat",
   "description": "",
   "units": "",
   "access": "R",
   "states": "0=Fault, 1=No Fault"
  },
  {
   "type": "BI",
   "instance": 1035,
   "name": "Boiler 1 Low Gas Pressure",
   "description": "",
   "units": "",
   "access": "R",
   "states": "0=Fault, 1=No Fault"
  },
  {
   "type": "BI",
   "instance": 1036,
   "name": "Boiler 1 Blocked Flue",
   "description": "",
   "units": "",
   "access": "R",
   "states": "0=Fault, 1=No Fault"
  },
  {
   "type": "BI",
   "instance": 1037,
   "name": "Boiler 1 Customer Interlock 1",
   "description": "",
   "units": "",
   "access": "R",
   "states": "0=Fault, 1=No Fault"
  },
  {
   "type": "BI",
   "instance": 1038,
   "name": "Boiler 1 Customer Interlock 2",
   "description": "",
   "units": "",
   "access": "R",
   "states": "0=Fault, 1=No Fault"
  },
  {
   "type": "BI",
   "instance": 1039,
   "name": "Boiler 1 Secondary Low Water",
   "description": "",
   "units": "",
   "access": "R",
   "states": "0=Fault, 1=No Fault"
  },
  {
   "type": "AI",
   "instance": 1040,
   "name": "Boiler 1 Run Hours",
   "description": "",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 1041,
   "name": "Boiler 1 Cycles",
   "description": "",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 1042,
   "name": "Boiler 1 Powered Hours",
   "description": "",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 1043,
   "name": "Boiler 1 Current Alarm Index",
   "description": "See Fulton alarm chart",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 1044,
   "name": "Boiler 1 Active Alarm",
   "description": "See Fulton alarm chart",
   "units": "",
   "access": "R",
   "states": "0=No Alarm, 1=Alarm"
  },
  {
   "type": "BI",
   "instance": 1045,
   "name": "Boiler 1 Isolation Valve Enabled",
   "description": "",
   "units": "",
   "access": "R",
   "states": "0=Not Enabled, 1=Enabled"
  },
  {
   "type": "BI",
   "instance": 1046,
   "name": "Boiler 1 Isolation Valve Position",
   "description": "Read with the valve type setting",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BI",
   "instance": 1047,
   "name": "Boiler 1 Isolation Valve Control",
   "description": "",
   "units": "",
   "access": "R",
   "states": "0=Manual, 1=Automatic"
  },
  {
   "type": "BI",
   "instance": 1048,
   "name": "Boiler 1 Primary Pump Enabled",
   "description": "",
   "units": "",
   "access": "R",
   "states": "0=Not Enabled, 1=Enabled"
  },
  {
   "type": "BI",
   "instance": 1049,
   "name": "Boiler 1 Primary Pump On/Off",
   "description": "",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BI",
   "instance": 1050,
   "name": "Boiler 1 Primary Pump Mode",
   "description": "",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "AI",
   "instance": 1051,
   "name": "Boiler 1 Current Setpoint Mode",
   "description": "",
   "units": "",
   "access": "R",
   "states": "0=Outdoor Reset, 1=Analog 4-20ma, 2=BMS Network, 3=Local (Fixed)"
  },
  {
   "type": "AV",
   "instance": 1052,
   "name": "Boiler 1 BMS Network Setpoint",
   "description": "Range 40.0 to 185.0",
   "units": "°F",
   "access": "W",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 1053,
   "name": "Boiler 1 Maximum Setpoint",
   "description": "Range 40.0 to 185.0",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 1054,
   "name": "Boiler 1 Minimum Setpoint",
   "description": "Range 40.0 to 185.0",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 1055,
   "name": "Boiler 1 Outdoor Air Cutoff",
   "description": "Range 40.0 to 185.0",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 1056,
   "name": "Boiler 1 Outdoor Air Cutoff Reset",
   "description": "Range 40.0 to 185.0",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 1057,
   "name": "Boiler 1 BMS Enable",
   "description": "Needs the enable jumper removed",
   "units": "",
   "access": "W",
   "states": "0=Not Enabled, 1=Enabled"
  },
  {
   "type": "AV",
   "instance": 1058,
   "name": "Boiler 1 BMS Heartbeat",
   "description": "Write 1 at least every 10 s for remote operation",
   "units": "",
   "access": "W",
   "states": ""
  }
 ],
 "page": "https://easybacnet.com/bacnet-points-lists/fulton/pure-endura-xe-single-protonode-n54",
 "note": "Provided as-is. Point availability varies by firmware and options; verify against the live device.",
 "disclaimer": "DISCLAIMER: reference only, provided AS IS with no warranty. May contain errors or be out of date. You must verify every point against the manufacturer's current documentation and the live device before use. easybacnet.com accepts no liability for its use and is not affiliated with the manufacturer. Terms: https://easybacnet.com/terms#content"
}
