{
 "manufacturer": "Contemporary Controls",
 "manufacturer_slug": "contemporary-controls",
 "model": "BASstat BAST-421C-B2 Modulating Fan Coil Thermostat",
 "short_model": "BAST-421C-B2",
 "model_slug": "bast-421c-b2",
 "aliases": [
  "BAST-421C-B2",
  "BAST-421-B2",
  "BASstat 421C MS/TP"
 ],
 "equipment_type": "Thermostat for modulating 4-pipe FCUs (BACnet MS/TP)",
 "applies_to": "Contemporary Controls BAST-421C-B2 wired thermostats for 4-pipe fan coils with modulating or floating valves.",
 "summary": "The BAST-421C-B2 is the wired BACnet MS/TP version of the BASstat modulating fan coil thermostat for 4-pipe units with modulating or floating cooling and heating valves and a multi-speed fan. It exposes temperatures, valve outputs, setpoints, system and fan modes, occupancy and setup values as BACnet objects.",
 "bacnet_transport": [
  "BACnet MS/TP"
 ],
 "firmware": null,
 "default_device_instance": 700001,
 "access_inferred": false,
 "notes": [
  "From the BACnet Object Table BAST-421C-B2 (manual pages 22-30). The table is shared across the BASstat family; rows printed in grey (objects this model does not use) are left out.",
  "Access is from the Readable/Writable column; R/W objects are shown as writable.",
  "Temperature objects follow the Temperature Scale object (BV 6: 0 = °C, 1 = °F).",
  "Compared with the Wi-Fi BW2 version, AV 19 is the MS/TP MAC address, Device Instance moves to AV 21, MV 6 is Baud Rate and Display Options / Control Type shift to MV 7 / MV 8.",
  "Fan Speed Status (MV 5) states are printed starting at 0 (0 = Stop)."
 ],
 "source": {
  "title": "BAST-421C-B2 BACnet Communicating Thermostat for Modulating Fan Coil Operation User Manual",
  "doc_number": "UM-15093000-AA2",
  "revision_date": null,
  "url": "https://www.ccontrols.com/pdf/um/BAST-421C-B2-UserManual.pdf"
 },
 "integration": {
  "summary": "Turn the thermostat outputs on with On-Off Control (BV 5), set occupancy with Occupancy Command (BV 14), and write the system mode, cooling and heating setpoints and fan mode. Read the space temperature, occupancy status, output status and fan speed.",
  "minimum_points": [
   {
    "ref": "BV 5",
    "name": "On-Off Control",
    "why": "Thermostat outputs on/off (1 = on)"
   },
   {
    "ref": "BV 14",
    "name": "Occupancy Command",
    "why": "0 = occupied, 1 = unoccupied"
   },
   {
    "ref": "MV 1",
    "name": "System Mode",
    "why": "Cool, heat or ventilation mode"
   },
   {
    "ref": "AV 0",
    "name": "Cooling Temperature Setpoint",
    "why": "Occupied cooling setpoint"
   },
   {
    "ref": "AV 3",
    "name": "Heating Temperature Setpoint",
    "why": "Occupied heating setpoint"
   },
   {
    "ref": "MV 0",
    "name": "Fan Mode",
    "why": "1 = auto, then fan speeds"
   },
   {
    "ref": "AI 0",
    "name": "Current Temperature",
    "why": "Space temperature in use"
   },
   {
    "ref": "BI 0",
    "name": "Occupancy Status",
    "why": "0 = occupied, 1 = unoccupied"
   },
   {
    "ref": "BI 2",
    "name": "Cooling-heating Status",
    "why": "Heating/cooling output active"
   },
   {
    "ref": "MV 5",
    "name": "Fan Speed Status",
    "why": "Current fan speed, 0 = stop"
   }
  ],
  "enable": "On-Off Control (BV 5) switches the thermostat outputs. Occupancy Command (BV 14) only takes effect when the ESI contact is disabled in Lock (AV 18 bit value 64); by default occupancy comes from the ESI dry contact.",
  "heartbeat": "A space temperature written to Space Temperature via BACnet (AV 1) is only used while the BMS keeps toggling Heartbeat (BV 16) within the Heartbeat Rate (AV 29) period, in seconds; otherwise the thermostat reverts to its own sensor.",
  "remote_sensors": "Set Temperature Source (MV 3) to 3 (Assigned through BACnet) and write the space temperature to AV 1, toggling BV 16 as a heartbeat.",
  "setup": [
   "BACnet MS/TP only: MAC address 1-127 from the Engineering menu (Addr) or the MAC Address object; baud 9600-76800 from the bAud menu item or Baud Rate (MV 6), 38400 by default.",
   "Device instance = devH x 1000 + devL in the Engineering menu, or write Device Instance (AV 21) once online.",
   "Changing the MAC address, baud or device instance over BACnet needs the comms-parameter lock in Lock (AV 18, bit value 256) cleared first.",
   "The manual gives 700001 as the default device instance, MAC address 1 and 38400 baud."
  ],
  "gotchas": [
   "Lock (AV 18) is bit-coded: add the bit values to lock buttons, ignore the ESI or door contact, block changes to the comms settings or hand the relays to BACnet (512).",
   "The manual text calls the Lock object AV17 in places; the object table number (AV 18) is used here.",
   "Relay control BVs only drive the relays when Lock bit 9 (512) hands the outputs to the BACnet supervisor.",
   "The occupancy section says Lock (AV 18) defaults to 0 (ESI contact in charge), while the Lock examples call 64 the default; read AV 18 on site before relying on BV 14."
  ]
 },
 "points": [
  {
   "type": "AI",
   "instance": 0,
   "name": "Current Temperature",
   "description": "",
   "units": "°F/°C",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 1,
   "name": "Active Temperature Setpoint",
   "description": "",
   "units": "°F/°C",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 2,
   "name": "Built-in Temperature Sensor",
   "description": "Built-in Temperature Sensor Reading",
   "units": "°F/°C",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 3,
   "name": "Remote Temperature Sensor",
   "description": "Remote Temperature Sensor Reading",
   "units": "°F/°C",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 8,
   "name": "Modulating/ Floating Output 1",
   "description": "Modulating/ Floating Output 1 (Cooling)",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 9,
   "name": "Modulating/ Floating Output 2",
   "description": "Modulating/ Floating Output 2 (Heating)",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 0,
   "name": "Cooling Temperature Setpoint",
   "description": "",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 1,
   "name": "Space Temperature via BACnet",
   "description": "BACnet Assigned Current Temperature",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 3,
   "name": "Heating Temperature Setpoint",
   "description": "",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 4,
   "name": "Hr-Running Time",
   "description": "Running Time of Valve (Hr.)",
   "units": "h",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 5,
   "name": "M-Running Time",
   "description": "Running Time of Valve (M.)",
   "units": "min",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 6,
   "name": "Sec-Running Time",
   "description": "Running Time of Valve (Sec.)",
   "units": "s",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 7,
   "name": "Deadband",
   "description": "",
   "units": "°F",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 8,
   "name": "Unoccupied Cool Setpoint",
   "description": "Unoccupied Cooling Setpoint",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 9,
   "name": "Unoccupied Heat Setpoint",
   "description": "Unoccupied Heating Setpoint",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 10,
   "name": "Integral-Cycle Time",
   "description": "Integral Time and Output Cycle Time",
   "units": "s",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 11,
   "name": "Analog Minimum Output for AO1",
   "description": "Minimum Output Voltage in Digital Value When Reach Low Limit for AO1",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 12,
   "name": "Span Offset for AO1",
   "description": "",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 13,
   "name": "Low Setpoint Limit",
   "description": "Low Limit for Set-Point Temperature",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 14,
   "name": "High Setpoint Limit",
   "description": "High Limit for Set-Point Temperature",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 15,
   "name": "Temperature Offset",
   "description": "Offset for Current Temperature",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 16,
   "name": "Proportional Band- Stage Width",
   "description": "Proportional Band or Stage Width",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 17,
   "name": "Stage Differential",
   "description": "",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 18,
   "name": "Lock",
   "description": "Bit-coded lock: buttons, ESI/door contacts, comms settings, DO control",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 19,
   "name": "MAC Address",
   "description": "MS/TP MAC address, 0-127",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 21,
   "name": "Device Instance",
   "description": "",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 27,
   "name": "Analog Minimum Output for AO2",
   "description": "Minimum Output Voltage in Digital Value When Reach Low Limit for AO2",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 28,
   "name": "Span Offset for AO2",
   "description": "",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 29,
   "name": "Heartbeat Rate",
   "description": "Communication Heartbeat Minimum Rate",
   "units": "s",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 39,
   "name": "Minimum Cooling Setpoint",
   "description": "",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 40,
   "name": "Maximum Heating Setpoint",
   "description": "",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 0,
   "name": "Occupancy Status",
   "description": "Status of Occupancy",
   "units": "",
   "access": "R",
   "states": "0=Room Occupied, 1=Room Unoccupied"
  },
  {
   "type": "BI",
   "instance": 2,
   "name": "Cooling-heating Status",
   "description": "Status of Cooling/Heating Control Output",
   "units": "",
   "access": "R",
   "states": "0=Close & Off, 1=Open & On"
  },
  {
   "type": "BI",
   "instance": 9,
   "name": "Relay 7 Status",
   "description": "Status of Relay 7 Fan",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BV",
   "instance": 0,
   "name": "Occupancy Contact Definition",
   "description": "Occupancy(DI1) Contact Definition",
   "units": "",
   "access": "W",
   "states": "0=N.O. = Occupied, 1=N.C. = Occupied"
  },
  {
   "type": "BV",
   "instance": 1,
   "name": "Cooling Direct- Reverse Acting",
   "description": "Modulating Cooling Direct/ Reverse Signal Output",
   "units": "",
   "access": "W",
   "states": "0=Direct (0 To10v), 1=Reverse (10 To 0V)"
  },
  {
   "type": "BV",
   "instance": 2,
   "name": "Heating Direct- Reverse Acting",
   "description": "Modulating Heating Direct/ Reverse Signal Output",
   "units": "",
   "access": "W",
   "states": "0=Direct (0 To10v), 1=Reverse (10 To 0V)"
  },
  {
   "type": "BV",
   "instance": 5,
   "name": "On-Off Control",
   "description": "On/Off Status of Thermostat",
   "units": "",
   "access": "W",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BV",
   "instance": 6,
   "name": "Temperature Scale",
   "description": "°C/ °F",
   "units": "",
   "access": "W",
   "states": "0=°C, 1=°F"
  },
  {
   "type": "BV",
   "instance": 13,
   "name": "Relay 7 Control",
   "description": "On/Off Control of Relay 7 (Fan)",
   "units": "",
   "access": "W",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BV",
   "instance": 14,
   "name": "Occupancy Command",
   "description": "Room Occupancy Setting",
   "units": "",
   "access": "W",
   "states": "0=Occupied, 1=Unoccupied"
  },
  {
   "type": "BV",
   "instance": 15,
   "name": "Fan Output for Heating",
   "description": "Disable/ Enable Fan Output for Heating",
   "units": "",
   "access": "W",
   "states": "0=Disable, 1=Enable"
  },
  {
   "type": "BV",
   "instance": 16,
   "name": "Heartbeat",
   "description": "Communication Heartbeat Flip-Flop",
   "units": "",
   "access": "W",
   "states": "0=Off, 1=On"
  },
  {
   "type": "MV",
   "instance": 0,
   "name": "Fan Mode",
   "description": "",
   "units": "",
   "access": "W",
   "states": "1=Auto, 2=Low, 3=Med., 4=Hi"
  },
  {
   "type": "MV",
   "instance": 1,
   "name": "System Mode",
   "description": "Working Mode: Heat, Cool or Ventilation",
   "units": "",
   "access": "W",
   "states": "1=Cool Mode, 2=Heat Mode, 3=Ventilation @ Cool Mode, 4=Ventilation @ Heat Mode"
  },
  {
   "type": "MV",
   "instance": 3,
   "name": "Temperature Source",
   "description": "Current Temperature Source",
   "units": "",
   "access": "W",
   "states": "1=Built-In Temp. Sensor, 2=Remote Temp. Sensor, 3=Assigned through BACnet"
  },
  {
   "type": "MV",
   "instance": 4,
   "name": "Lowest Fan Speed",
   "description": "Lowest Fan speed in Auto Fan mode",
   "units": "",
   "access": "W",
   "states": "1=Stop, 2=Low, 3=Med., 4=Hi"
  },
  {
   "type": "MV",
   "instance": 5,
   "name": "Fan Speed Status",
   "description": "",
   "units": "",
   "access": "R",
   "states": "0=Stop, 1=Low, 2=Med, 3=Hi"
  },
  {
   "type": "MV",
   "instance": 6,
   "name": "Baud Rate",
   "description": "MS/TP baud rate",
   "units": "",
   "access": "W",
   "states": "1=9600 bps, 2=19200 bps, 3=38400 bps, 4=57600 bps, 5=76800 bps"
  },
  {
   "type": "MV",
   "instance": 7,
   "name": "Display Options",
   "description": "LCD Display Options",
   "units": "",
   "access": "W",
   "states": "1=T & Time (if available), 2=SP & Time (if available), 3=T & CO2 (if available), 4=CO2 & Time (if available), 5=SP & CO2 (if available), 6=T & RH (if available), 7=T & Valve (if available)"
  },
  {
   "type": "MV",
   "instance": 8,
   "name": "Control Type",
   "description": "Control Type Selection",
   "units": "",
   "access": "W",
   "states": "2=4-Pipe Cooling or Heating Manual Changeover, 3=4-Pipe Cooling and Heating Auto Changeover"
  }
 ],
 "page": "https://easybacnet.com/bacnet-points-lists/contemporary-controls/bast-421c-b2",
 "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"
}
