TapHome

Cyclogic CL-MC030x

Modbus TCP
Submitted by
Last updated: 06. 2026

Requires external gateway

Samsung Samsung HVAC indoor unit (DVM S / CAC / FJM / RAC) on F1/F2 bus; external Modbus RTU-to-TCP gateway required for TapHome ModbusTcpCCU

Cyclogic CL-MC030x

The Cyclogic CL-MC03**C series (the x in the template name is a wildcard for the variant suffix 1 / 8 / 16 / 32 / 64) is a Modbus RTU interface module that bridges Samsung HVAC indoor units onto a Modbus network. It attaches directly to the Samsung F1/F2 indoor-unit communication bus and exposes ON/OFF, operating mode, set/room temperature, fan speed and louver swing as Modbus holding registers. The module is manufactured by Cyclogic Inc. (Republic of Korea) and OEM-distributed by Samsung HVAC for the North-American market — the device, register map and protocol are identical across all five variants, only the maximum addressable indoor-unit count differs.

Model# of indoor units controlled
CL-MC0301C1 (typical RAC)
CL-MC0308C1–8 (small DVM/CAC/FJM)
CL-MC0316C1–16 (mid-size DVM)
CL-MC0332C1–32 (large DVM)
CL-MC0364C1–64 (maximum DVM, one adapter per outdoor system)

Compatible Samsung indoor units include DVM S (AM****N****/AA), CAC (AC****N****/AA), FJM (AJ0***N****/AA) and RAC (AR*********N**). Samsung Novus RAC models AR**JSALBWKNCV and AR**JSFLBWKNCV are explicitly not supported.

The CL-MC03**C is a Modbus RTU slave; TapHome’s ModbusTcpCCU connects to it through an external Modbus RTU-to-TCP gateway that bridges the RS-485 bus onto Ethernet. The current TapHome template addresses only the first indoor unit (IDU 00) on the bus — for multi-IDU installations the template must be imported once per indoor unit (see Troubleshooting below).

Several inconsistencies between the TapHome XML template and the Cyclogic / Samsung manufacturer documentation have been identified — most notably a swap between the Heat and Cool labels in the Mode selector and a temperature scaling factor of /100 instead of the documented /10. See the Inconsistencies between template and manufacturer documentation section before relying on the template in production.

Hardware connection

The CL-MC03**C is a small DIN-housed module (100 × 80 × 24 mm) with a single-row terminal block on the front face. Six labelled connectors carry communication, power and the auxiliary I/O lines.

Terminal block
Cyclogic CL-MC03**C terminal block — MODBUS INT (RS-485 to gateway), RS-485 (F1/F2 to Samsung), MODBUS EXT (reserved), POWER (12 V DC), DO (error output) and DRY CONT (forced ON/OFF input)
#ConnectorDescription
1MODBUS INTRS-485 (RX+ / RX−) — to the 3rd-party Modbus RTU-to-TCP gateway
2RS-485F1 / F2 — to the Samsung indoor unit’s F1/F2 communication terminals
3MODBUS EXTReserved — not used
4POWER12 V DC supply (+ / −)
5DODigital Output — contact closes (12–24 V DC) when a Samsung system error occurs
6DRY CONTDry-contact input for external forced ON/OFF interlock (e.g. window contact)

The module is powered with 12 V DC, typically drawn directly from the Samsung indoor unit’s V1/V2 terminals on the indoor PCB — no separate power supply is needed for typical installations. Optionally a field-supplied 12 V DC adapter can be used. The Samsung submittal confirms the module accepts 12–24 V DC, but the Cyclogic installation manual specifies 12 V DC as the nominal value.

Disconnect mains power from the Samsung indoor unit before opening it to access the F1/F2 and V1/V2 terminals. Verify polarity on the POWER connector before energising the module. Maximum RS-485 (Modbus) bus length is 500 m; install the module indoors only — the operating temperature range is 0 °C to 40 °C (32 °F to 104 °F).

System topology
Cyclogic CL-MC03**C system topology — Case 1 (DVM / CAC, DIP SW2 OFF) with one module per F1/F2 bus and Case 2 (RAC, DIP SW2 ON) with one module per RAC system on a shared Modbus master

There are two valid topologies depending on the Samsung family being integrated:

  • Case 1 — DVM / CAC (DIP SW2 = OFF, NASA protocol): one CL-MC03 module sits on the F1/F2 bus shared by one outdoor unit and up to 64 indoor units. Choose the variant that covers the total IDU count of the outdoor system — sizing is one-shot, two adapters cannot be stacked on the same outdoor unit (see Troubleshooting).
  • Case 2 — RAC (DIP SW2 = ON, Non-NASA protocol): one CL-MC03 module per RAC outdoor system (typically CL-MC0301C — single IDU). Multiple modules sit on the same RS-485 bus, each with a unique slave address set via the rotary switches.

Both topologies share a single 3rd-party RS-485-to-Ethernet gateway acting as the Modbus master toward TapHome.

Configuration

DIP switches
Cyclogic CL-MC03**C front-face DIP switches SW1 (firmware update) and SW2 (Samsung AC protocol selection — RAC/FJM vs DVM/CAC)
SwitchPositionFunction
SW2 (protocol)ONRAC / FJM — model numbers AR*****, AJ***** (Non-NASA protocol)
SW2 (protocol)OFFDVM / CAC — model numbers AM*****, AC**** (NASA protocol)
SW1 (firmware)ON (default)Disabled — normal operation
SW1 (firmware)OFFEnabled — firmware download mode (do not use during normal operation)

SW2 must be set before powering the module — wiring the module to the wrong protocol family (e.g. SW2 = OFF on a RAC system, or SW2 = ON on a DVM system) will result in no communication at all with the Samsung indoor unit. The Cyclogic manual flags this as the most common installation mistake.

Modbus slave address (RSW1 + RSW2)

The Modbus slave address (the RS-485 address the gateway will use to poll this module) is set via two BCD rotary switches on the circuit board, accessible after removing the four screws on the back of the case:

  • RSW1 — tens digit (06)
  • RSW2 — ones digit (09)

The combined value forms the slave address, valid range 00 – 63. Each module on the same RS-485 bus must have a unique address — the most common conflict is several CL-MC0301C modules left at the factory default. The TapHome template ships with default Slave ID = 1 in its import parameters; if you keep the rotary switches at this address, no change is needed in the imported configuration.

Modbus protocol parameters

These values are fixed in the module firmware and cannot be changed via DIP switches — the RS-485 side of the gateway must be configured to match:

ParameterValue
ModeModbus RTU slave
Baud rate19 200 bps (the Samsung submittal lists 19600 — this is a typo for the standard Samsung F-bus rate of 19 200)
ParityEven
Stop bits1
Frame format8E1 (8 data bits, even parity, 1 stop bit)
Function codes03 (Read Holding Registers), 06 (Preset Single Register)
Register width2 bytes (16 bit)
Max RS-485 bus length500 m
Enabling Modbus communication via a TCP gateway

The CL-MC03**C is a native Modbus RTU device — TapHome connects to it over Modbus TCP through a 3rd-party Modbus RTU-to-TCP gateway (sometimes called an RS-485-to-Ethernet converter). Any gateway that can operate in transparent / pass-through Modbus TCP-to-RTU bridge mode will work; commonly used models include the Waveshare RS485-to-Ethernet, USR-TCP232 series and Hi-Flying / HF series.

Configuration on the gateway (model-specific menu names vary):

  1. Wire the gateway’s RS-485 A/B terminals to the module’s MODBUS INT terminal (RX+ → A, RX− → B). Power the gateway from its own supply (typically 5–24 V DC).
  2. Set the gateway’s serial port to 19 200 bps, 8 data bits, even parity, 1 stop bit to match the module’s fixed firmware settings. If the gateway also exposes a frame-timing parameter, leave it at the Modbus default (3.5 character idle).
  3. Set the gateway operating mode to Modbus TCP slave / Modbus TCP-to-RTU bridge / transparent gateway (terminology varies per vendor) on TCP port 502.
  4. Assign a static IP address to the gateway on the local network — either via the router’s DHCP reservation or directly in the gateway’s web UI. The TapHome template defaults to 192.168.0.1; matching this avoids changing the import parameter.
  5. If the gateway has a built-in 120 Ω termination resistor, enable it only if the gateway sits at one end of the RS-485 bus.

When importing the template in TapHome, provide:

  • IP Address — the gateway’s IP on the local network (default: 192.168.0.1)
  • Slave ID — the module’s Modbus address set via RSW1 + RSW2 (default: 1)

Assign a static IP address to the TCP-to-RTU gateway in the router’s DHCP settings to prevent the address from changing after a power cycle. Multiple CL-MC03**C modules on the same RS-485 bus can share a single gateway — each module is reached by selecting its rotary slave address as the Modbus unit ID in TapHome.

Device capabilities

The template polls 6 holding registers (H:0, H:1, H:4, H:5, H:8, H:9) every 2.5 s for indoor unit 00 on the F1/F2 bus and exposes 5 logical devices.

ON/OFF

Simple switch to turn the indoor unit on or off. Reads register H:0 (Bool) — 0 = OFF, 1 = ON.

The Cyclogic register 40001 (= H:0) is documented as a 2-byte combined write command with Data 1 = ON/OFF and Data 2 = Mode. The TapHome template only writes the Bool ON/OFF byte, so the operating mode must be set separately via the Mode device. On most Samsung indoor units the partial write is accepted as ON/OFF only and the existing mode is preserved — verify on real hardware.

Mode

Operating mode selector. The Cyclogic / Samsung manuals document the following codes:

Manual codeMode
0Auto
1Cooling
2Dry (Dehumidification)
3Fan
4Heat
11Auto Cool (read-back only)
12Auto Dry (read-back only)
13Auto Fan (read-back only)
14Auto Heat (read-back only)

The TapHome template swaps the Heat and Cool labels relative to the Cyclogic / Samsung manuals: template position 1 is labelled “Heat” but the underlying Modbus value 1 is documented as Cooling, and template position 4 is labelled “Cool” but value 4 is documented as Heat. On a real Samsung unit, selecting “Heat” from the TapHome UI will therefore engage Cooling mode, and selecting “Cool” will engage Heat. Verify on real hardware before relying on the labels — the template values may need to be re-mapped depending on what the Samsung indoor unit actually does.

The Auto-COOL / Auto-DRY / Auto-FAN / Auto-HEAT sub-modes are documented as read-back only values that reflect the unit’s internal state when running in Auto mode. The TapHome template exposes them as positions 5–8 with raw values 5–8, but the manufacturer specifies values 11–14. Writing any of these positions will send a non-documented Modbus value to the indoor unit and the result is undefined — leave them as Auto when controlling the unit from TapHome.

Reads and writes register H:1 (Int16). Poll interval: 2.5 s.

Fan Speed

Fan speed selector. The Cyclogic / Samsung manuals document only 5 values (0 – 4):

Manual codeSpeed
0Automatic
1Low
2Middle
3High
4Turbo

The TapHome template inserts a non-standard “Position-5” slot at value 2, shifting MIDDLE / HIGH / TURBO onto values 3 / 4 / 5. On a real Samsung unit, selecting “Mid” from the TapHome UI will actually engage HIGH (raw value 3), “High” will engage TURBO (raw value 4), and “Turbo” will send raw value 5, which is not a valid fan code. Slots 6–9 (Position-6, Position-7, 8, 9) are placeholder values not reachable on real Samsung indoor units. Verify on real hardware before relying on the labels.

Per the Cyclogic manual, register 40009 (= H:8) is a 2-byte combined write command with Data 1 = Fan Speed and Data 2 = Louver. The TapHome template writes only the fan-speed byte and the louver position is written separately as a single byte to register H:9 — this may not match what every gateway expects on the combined H:8 register. Verify on real hardware.

Reads and writes register H:8 (Int16). Poll interval: 2.5 s.

Vane Position (Louver Swing)

Decorative-panel louver swing control. The Cyclogic / Samsung manuals document only 4 values (0 – 3):

Manual codePosition
0Swing OFF
1Swing ON: Upper & Lower louver
2Swing ON: Right & Left louver
3Swing ON: Upper & Lower + Right & Left louver

The TapHome template duplicates “RIGHT & LEFT LOUVER” as both position 2 and position 3 — position 3 should be “UPPER & LOWER + RIGHT & LEFT LOUVER” per the manufacturer documentation. Positions 4–9 (combined U&D / R&L louver, Swing ON, Position-7, Position-6, Position-5 Vertical, Swirl) are undocumented in the Cyclogic and Samsung manuals — they may be speculative slots intended for non-decorative-panel cassette units, but they are not reachable on standard wall, cassette and duct units. Verify on real hardware before relying on the labels.

Reads and writes register H:9 (Int16). Poll interval: 2.5 s.

Thermostat

Set-point and current room temperature reading. Reads register H:4 (Int16, R/W) for the setpoint and register H:5 (Int16, read-only) for the room temperature.

The TapHome template applies a /100 divisor (and * 100 multiplier on write) to both temperature registers, but the Cyclogic Rev. 2 manual and the Samsung submittal both specify /10: raw 250 = 25.0 °C, not raw 2500 = 25.0 °C. On a real Samsung indoor unit:

  • Setpoints written by TapHome will appear 10× too small (e.g. setting 25 °C will write raw 2500 to a register that the device interprets as 250.0 °C and rejects or clamps).
  • Room temperature readings will appear 10× too small (e.g. raw 235 will display as 2.35 °C instead of 23.5 °C).

If the values you observe are off by a factor of 10, this is almost certainly the cause. Verify on real hardware and contact TapHome to have the template scaling corrected from /100 to /10 if needed.

Poll interval: 2.5 s.

Inconsistencies between template and manufacturer documentation

Several discrepancies between the TapHome XML template and the Cyclogic Rev. 2 (Oct 2017) manual / Samsung submittal (SHA-DVMS-03162021) are documented above. In summary:

AreaTemplateManualImpact
Mode labels (positions 1 & 4)1 = Heat, 4 = Cool1 = Cooling, 4 = HeatSelecting “Heat” engages Cooling and vice versa — verify on hardware
Mode positions 5–9Raw values 5–9 (Auto-*)Auto-* sub-modes use values 11–14 and are read-back onlyWriting positions 5–9 sends undocumented values — undefined behaviour
Fan Speed positions 2–9Inserts non-standard “Position-5” at value 2, shifts Mid/High/TurboManual documents only values 0–4Labels “Mid” → HIGH, “High” → TURBO, “Turbo” → invalid; positions 6–9 placeholder
Vane Position 3Duplicate of “Right & Left Louver”Should be “Upper & Lower + Right & Left Louver”Labels mismatch — the underlying register value is correct
Vane Position 4–9Various labels including “Swirl”, “Position-5 (Vertical)”Manual documents only values 0–3Undocumented — undefined on standard wall / cassette / duct units
Thermostat scaling/ 100 and * 100/ 10 and * 10Setpoints 10× too small, room temperature 10× too small
ON/OFF writeSingle Bool byte (Data 1 only)Combined 2-byte command (Data 1 = ON/OFF, Data 2 = Mode)On most units accepted as partial write, but verify mode is preserved
Fan Speed writeSingle Int16 (Data 1 only)Combined 2-byte command (Data 1 = Fan, Data 2 = Louver)Louver position is written separately to H:9 — verify behaviour on real hardware

These are most likely XML template bugs that should be corrected against real hardware.

Troubleshooting

No Modbus communication
  1. Verify DIP SW2 is set correctly for the Samsung family — OFF for DVM / CAC (NASA, model prefixes AM, AC), ON for RAC / FJM (Non-NASA, model prefixes AR, AJ). Wrong protocol = no communication.
  2. Verify the module is powered — the green PWR / System LED on the front panel should be lit. If powered from V1/V2, confirm the Samsung indoor unit is connected to mains.
  3. Confirm the slave address on RSW1 + RSW2 matches the Slave ID in the TapHome import parameters (factory default = 01, template default = 1).
  4. Check the gateway’s serial port settings: 19 200 bps, 8 data bits, even parity, 1 stop bit (8E1) — this is the most common misconfiguration on the gateway side.
  5. Confirm the gateway is in Modbus TCP-to-RTU transparent bridge mode (not a virtual COM port mode) and listening on TCP port 502.
  6. Verify the wiring polarity on MODBUS INT — RX+ to gateway A, RX− to gateway B. Some gateways use opposite polarity conventions; if the LEDs blink without successful polling, swap the two wires.
  7. Check that no second module on the same RS-485 bus is configured with the same RSW address.
Setpoints and room temperature off by a factor of 10

The TapHome XML applies a /100 divisor to registers H:4 and H:5, but the manufacturer documentation specifies /10. A setpoint of 25 °C will therefore be transmitted as raw 2500 to a Samsung indoor unit that expects raw 250, and a room-temperature reading of raw 235 (= 23.5 °C per the manual) will display as 2.35 °C in the TapHome UI. Use TapHome’s Modbus debug tool to read the raw register values, then contact TapHome to have the template scaling corrected from /100 to /10.

Heat and Cool selection are inverted

The TapHome template positions for Heat and Cool do not match the Cyclogic manual (template 1 = Heat / value 1, manual 1 = Cooling). On a real Samsung unit, selecting “Heat” from the TapHome UI will engage Cooling, and “Cool” will engage Heat. Until the template is corrected, choose the option that produces the desired physical behaviour rather than relying on the label.

Mode positions 5–9 do nothing or behave unpredictably

These positions write Modbus values 5–9 to register H:1, but the Cyclogic manual specifies values 11–14 for the Auto-* sub-modes and explicitly notes they are read-back only. Writing values 5–9 sends undocumented codes to the indoor unit — the result is undefined and depends on the Samsung firmware. Restrict mode selection to positions 0 – 4 only.

Fan Speed positions Mid / High / Turbo do not match the label

The TapHome template inserts a non-standard “Position-5” slot at value 2, shifting MIDDLE / HIGH / TURBO onto template values 3 / 4 / 5. As a result, the TapHome label “Mid” actually engages HIGH, “High” actually engages TURBO, and “Turbo” sends raw value 5 which is not a documented fan code. Choose by physical behaviour rather than label until the template is corrected.

One indoor unit on a multi-IDU adapter does not respond

If you have a CL-MC0308C or larger and want to control more than the first indoor unit, the current template alone is insufficient — it only polls registers for IDU 00. For each additional IDU, import the template a second (third, …) time and edit the register addresses inside the imported configuration to add +20 × N to each (e.g. IDU 01 → H:20, H:21, H:24, H:25, H:28, H:29). A native multi-IDU template is on the roadmap.

Two adapters on the same outdoor unit don’t cover all indoor units

You cannot stack two smaller CL-MC03**C variants on the same Samsung outdoor system — both modules will count IDU addresses from 00 upward and the higher-numbered IDUs will be unreachable. Replace the two modules with a single larger variant sized for the total IDU count (per Samsung HVAC FAQ, Nov 2016).

Available devices

Cyclogic CL-MC030x Module
ON/OFF Switch

Turns the Samsung indoor unit on or off (register H:0, Bool — 0 = OFF, 1 = ON)

Register: H:0 Bool
Values / States: ON · OFF

ON/OFF

Read switch state
MODBUSR(H, 0, Bool)
Write switch state
MODBUSWNE(H, 0, Bool, St)
Mode Multi-value Switch

Operating mode — Auto, Heat, Dry, Fan, Cool (register H:1; the template swaps the Heat and Cool labels relative to the Cyclogic manual — verify on real hardware. Positions 5–9 send undocumented values and behave unpredictably)

Register: H:1 Int16 numeric
Values / States: Auto · Heat · Dry · Fan · Cool · Auto COOL · Auto DRY · Auto FAN · Auto HEAT

Mode

Read switch state
MODBUSR(H, 1, Int16)
Write switch state
MODBUSWNE(H, 1, Int16, Mu)
Fan Speed Multi-value Switch

Fan speed — Auto, Low, Middle, High, Turbo (register H:8; the template inserts a non-standard 'Position-5' slot at value 2, so 'Mid' engages HIGH and 'High' engages TURBO on real hardware. Positions 6–9 are placeholders not reachable on Samsung indoor units)

Register: H:8 Int16 numeric
Values / States: Auto · Low · Position-5 · Mid · High · Turbo · Position-6 · Position-7

Fan Speed

Read switch state
MODBUSR(H, 8, Int16)
Write switch state
MODBUSWNE(H, 8, Int16, Mu)
Vane Position Multi-value Switch

Decorative-panel louver swing — Swing Off, Upper & Lower, Right & Left, combined Upper & Lower / Right & Left (register H:9; positions 4–9 are undocumented in the Cyclogic manual and not reachable on standard wall, cassette and duct units)

Register: H:9 Int16 numeric
Values / States: Swing OFF · UPPER & LOWER LOUVER · RIGHT & LEFT LOUVER · RIGHT & LEFT LOUVER · UPPER&LOWER/RIGHT&LEFT LOUVER · Swing ON · Position-7 · Position-6 · Poistion-5 (Vetical) · Swirl

Vane Position

Read switch state
MODBUSR(H, 9, Int16)
Write switch state
MODBUSWNE(H, 9, Int16, Mu)
Thermostat Thermostat

Setpoint and current room temperature in °C (register H:4 R/W setpoint, register H:5 read-only room temperature; the template applies a /100 divisor but the manufacturer specifies /10 — values may appear 10× too small until the template is corrected)

Register: H:4 Int16 Unit: °C numeric

Thermostat

Read temperature
MODBUSR(H, 5, Int16) / 100
Read desired temperature
MODBUSR(H, 4, Int16) / 100
Write desired temperature
MODBUSWNE(H, 4, Int16, Se * 100)
Connection: Modbus TCP • Slave ID: $[SlaveId]
Possible improvements (7)
  • H:10 Supply Air (Discharge) Temperature — Duct only — Int16 / 10, °C, R/W — discharge air temperature for duct-type indoor units only (ignored on cassette/wall units)
  • H:11 States of Supply Air Temp Control — Int16, R/W — 0=DISABLE, 1=ENABLE; enables the discharge-air temperature control loop on duct-type units
  • H:12 Set Temp. of Cooling Supply Air — Duct only — Int16 / 10, °C, R/W — discharge-air cooling setpoint for duct-type indoor units
  • H:13 Set Temp. of Heating Supply Air — Duct only — Int16 / 10, °C, R/W — discharge-air heating setpoint for duct-type indoor units
  • — Template only addresses indoor unit 00. The manufacturer protocol exposes IDU 01–63 by adding N×20 to each register (e.g. IDU 01 ON/OFF = H:20, IDU 02 ON/OFF = H:40). For multi-IDU systems (CL-MC0308C/0316C/0332C/0364C), the template would need to be duplicated per indoor unit or extended to expose all 64 IDUs.
  • — The CL-MC03**C exposes a Digital Output (DO terminal) that closes (12-24 V DC) when a Samsung system error code occurs. This is not a Modbus register — it is a hardware contact and would need to be wired to a TapHome digital input separately. The Modbus register map does not include a per-IDU error-code register.
  • — Hardware dry-contact input on the gateway for external forced ON/OFF interlock (e.g. window contact, fire alarm). Not a Modbus register — would need to be wired from a TapHome digital output into the gateway directly.

Sources

Found a problem with this device template?

Tell us what's wrong, what's missing, or how the template should behave. We rely on your feedback to keep the catalog accurate.

Verified by TapHome

Want to use this in your TapHome Core?

Open this template in the Customer Portal to apply it to one of your homes, or to draft a refinement and submit it back to the catalog.

Open in portal