{
 "manufacturer": "Modine",
 "manufacturer_slug": "modine",
 "model": "BMS Board for Gas-Fired Unit Heaters (PTP/BTP, PTC/BTC, PTS/BTS, PDP/BDP)",
 "model_slug": "bms-board-gas-unit-heaters",
 "aliases": [
  "6-520",
  "6-520.3",
  "5H0827570000",
  "PTP",
  "BTP",
  "PTC",
  "BTC",
  "PTS",
  "BTS",
  "PDP",
  "BDP",
  "BAC_HBB2",
  "Modine BMS board"
 ],
 "equipment_type": "Gas-fired unit heater BMS board",
 "applies_to": "Modine PTP/BTP, PTC/BTC, PTS/BTS and PDP/BDP gas-fired unit heaters fitted with the factory BMS board.",
 "summary": "Modine's BMS board for gas-fired unit heaters sits beside the ignition control and gives the heater a BACnet MS/TP (or Modbus RTU) connection on RS-485. From the BMS you can turn the heater on and off, switch it between winter heating and summer fan-only, and adjust the heating, fan-only and energy-saver setpoints and bands. It reports the room and intake temperatures, thermostat calls, relay states and four specific alarms plus a general alarm. Setpoints only apply when the board runs on its own room sensor rather than a thermostat.",
 "bacnet_transport": [
  "BACnet MS/TP"
 ],
 "firmware": null,
 "default_device_instance": "315000 + MAC address (e.g. 315001)",
 "access_inferred": false,
 "notes": [
  "BO 12-17 are listed under a 'Binary Inputs' heading but labelled Binary Output #12-#17 in the object column; they are shown here as printed. Confirm the object type with a device discovery.",
  "Setpoints and bands only apply in sensor control (SW4.7 on); with a thermostat (SW4.7 off, default) the thermostat governs.",
  "A setpoint written outside its range is ignored and the unit keeps the last valid value.",
  "Temperatures are in °F by default; BV 12 C_F_Scale = 1 switches to °C.",
  "SW4.8 selects BACnet (on, default) or Modbus RTU; the Modbus register list is in the same manual."
 ],
 "source": {
  "title": "BMS Control System Manual - Models PTP/BTP, PTC/BTC, PTS/BTS, PDP/BDP",
  "doc_number": "6-520.3",
  "revision_date": "2022-06",
  "url": "https://modine.worksmartsuite.com/PORTAL/io_modules/IOGETIMAGE.php?type=stream&filename=6-520.pdf"
 },
 "points": [
  {
   "type": "AI",
   "instance": 3,
   "name": "ra_temp_BMS",
   "description": "Room (control) temperature, -50 to 200 °F",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 4,
   "name": "intake_air_temp_BMS",
   "description": "Air temperature at the unit, -50 to 200 °F",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 0,
   "name": "heat_setpt_BMS",
   "description": "Heating setpoint; default 70 °F",
   "units": "°F",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 1,
   "name": "fan_setpt_BMS",
   "description": "Cooling / fan-only setpoint; default 75 °F",
   "units": "°F",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2,
   "name": "Saver_setpt_BMS",
   "description": "Energy saver mode setpoint, 60-80 °F; default 80 °F",
   "units": "°F",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 3,
   "name": "setpoint_band",
   "description": "Heating/cooling setpoint deadband, 0-4 °F; default 1 °F",
   "units": "°F",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 5,
   "name": "saver_band",
   "description": "Energy saver deadband, 0-6 °F; default 3 °F",
   "units": "°F",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 10,
   "name": "BacnetDeviceInstanceNumber",
   "description": "BACnet device ID; default 315000 + MAC",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "BO",
   "instance": 0,
   "name": "Supply_fan",
   "description": "Fan relay",
   "units": "",
   "access": "R",
   "states": "1=On, 0=Off"
  },
  {
   "type": "BO",
   "instance": 1,
   "name": "Gas_ht1",
   "description": "Low or single stage gas valve relay",
   "units": "",
   "access": "R",
   "states": "1=On, 0=Off"
  },
  {
   "type": "BO",
   "instance": 2,
   "name": "Gas_ht2",
   "description": "High stage gas valve relay",
   "units": "",
   "access": "R",
   "states": "1=On, 0=Off"
  },
  {
   "type": "BO",
   "instance": 3,
   "name": "alarm",
   "description": "General alarm",
   "units": "",
   "access": "R",
   "states": "1=On, 0=Off"
  },
  {
   "type": "BO",
   "instance": 12,
   "name": "din_supply_fan",
   "description": "Thermostat G (fan) call",
   "units": "",
   "access": "R",
   "states": "1=On, 0=Off"
  },
  {
   "type": "BO",
   "instance": 13,
   "name": "din_heat1",
   "description": "Thermostat W/W1 call (low or single stage)",
   "units": "",
   "access": "R",
   "states": "1=On, 0=Off"
  },
  {
   "type": "BO",
   "instance": 14,
   "name": "din_heat2",
   "description": "Thermostat W2 call (high stage)",
   "units": "",
   "access": "R",
   "states": "1=On, 0=Off"
  },
  {
   "type": "BO",
   "instance": 15,
   "name": "Valve_status",
   "description": "Gas valve status",
   "units": "",
   "access": "R",
   "states": "1=On, 0=Off"
  },
  {
   "type": "BO",
   "instance": 16,
   "name": "Pressure_Switch_status",
   "description": "Powered exhauster pressure switch status",
   "units": "",
   "access": "R",
   "states": "1=On, 0=Off"
  },
  {
   "type": "BO",
   "instance": 17,
   "name": "Highlimit_FRO_status",
   "description": "Temperature limit or flame rollout status",
   "units": "",
   "access": "R",
   "states": "1=On, 0=Off"
  },
  {
   "type": "BV",
   "instance": 0,
   "name": "Superv_OnOff",
   "description": "Supervisor on/off control; default 1",
   "units": "",
   "access": "W",
   "states": "1=On, 0=Off"
  },
  {
   "type": "BV",
   "instance": 1,
   "name": "heartbeat",
   "description": "BMS communication heartbeat",
   "units": "",
   "access": "R",
   "states": "1=On, 0=Off"
  },
  {
   "type": "BV",
   "instance": 5,
   "name": "al_BrokenPrbTemp",
   "description": "Temperature sensor failure alarm",
   "units": "",
   "access": "R",
   "states": "1=On, 0=Off"
  },
  {
   "type": "BV",
   "instance": 6,
   "name": "al_highlimit_FRO_alarm",
   "description": "Temperature limit or flame rollout alarm",
   "units": "",
   "access": "R",
   "states": "1=On, 0=Off"
  },
  {
   "type": "BV",
   "instance": 7,
   "name": "al_pressure_switch",
   "description": "Powered exhauster pressure switch alarm",
   "units": "",
   "access": "R",
   "states": "1=On, 0=Off"
  },
  {
   "type": "BV",
   "instance": 8,
   "name": "al_valve_ignition_alarm",
   "description": "Gas valve ignition alarm",
   "units": "",
   "access": "R",
   "states": "1=On, 0=Off"
  },
  {
   "type": "BV",
   "instance": 9,
   "name": "Summer_winter",
   "description": "Summer/winter mode; default 0 (winter)",
   "units": "",
   "access": "W",
   "states": "1=Summer (fan only), 0=Winter (heating)"
  },
  {
   "type": "BV",
   "instance": 11,
   "name": "RestoreDefault",
   "description": "Restores all values to default; resets to 0",
   "units": "",
   "access": "W",
   "states": "1=On, 0=Off"
  },
  {
   "type": "BV",
   "instance": 12,
   "name": "C_F_Scale",
   "description": "Temperature units setting",
   "units": "",
   "access": "W",
   "states": "1=°C, 0=°F"
  }
 ],
 "integration": {
  "summary": "Set the board's MAC address with the DIP switches, leave SW4.8 on for BACnet MS/TP, and use Superv_OnOff (BV 0) to enable or disable the heater. Use Summer_winter (BV 9) for fan-only operation. If the board runs on its own room sensor, write the heating setpoint (AV 0). Monitor the fan and gas valve relays, the room temperature and the general alarm (BO 3).",
  "minimum_points": [
   {
    "ref": "BV 0",
    "name": "Superv_OnOff",
    "why": "Heater enable; 0 = off regardless of calls"
   },
   {
    "ref": "BV 9",
    "name": "Summer_winter",
    "why": "0 = winter heating, 1 = summer fan-only"
   },
   {
    "ref": "AV 0",
    "name": "heat_setpt_BMS",
    "why": "Heating setpoint (sensor control only)"
   },
   {
    "ref": "BO 0",
    "name": "Supply_fan",
    "why": "Fan relay status (read-only)"
   },
   {
    "ref": "BO 1",
    "name": "Gas_ht1",
    "why": "Low or single stage gas valve relay on"
   },
   {
    "ref": "AI 3",
    "name": "ra_temp_BMS",
    "why": "Room temperature (sensor control)"
   },
   {
    "ref": "BO 3",
    "name": "alarm",
    "why": "General alarm"
   }
  ],
  "enable": "BV 0 Superv_OnOff (default 1) lets the heater run; when the BMS writes 0 the unit won't energize any output regardless of sensor or thermostat calls. BV 9 Summer_winter = 1 puts the unit in summer (fan-only) mode; 0 (default) is winter heating.",
  "heartbeat": "BV 1 heartbeat is listed as a read-only BMS communication heartbeat; the manual gives no timeout or fallback behaviour.",
  "remote_sensors": null,
  "setup": [
   "Device ID = 315000 + MAC address (MAC 1 gives 315001); AV 10 can change it over the network.",
   "MAC address 0-63 is set on DIP switches SW4.1-SW4.6; a MAC written over the network overrides the switches until RestoreDefault is used.",
   "SW4.8 on = BACnet MS/TP (default), off = Modbus RTU.",
   "MS/TP baud 9600, 19200 or 38400; timeout 100 ms.",
   "Set end-of-line switch SW1.1 on at the last unit on the trunk only.",
   "SW4.7 selects room sensor (on) or thermostat (off, default) control."
  ],
  "gotchas": [
   "Writing BV 11 RestoreDefault = 1 resets all modes, setpoints and a network-written MAC address.",
   "Setpoints do nothing in thermostat mode (SW4.7 off).",
   "Out-of-range setpoint writes are silently ignored.",
   "BO 12-17 are status inputs despite their Binary Output labels."
  ]
 },
 "page": "https://easybacnet.com/bacnet-points-lists/modine/bms-board-gas-unit-heaters",
 "note": "Re-typed from the manufacturer's public documentation (see source). Point availability varies by firmware and options; verify against the live device."
}
