KSM Communication Protocol v3.0

This document provides technical data to facilitate communication with Koolance devices that support it. Koolance maintains and provides the Koolance System Monitor (KSM) program, which already has this protocol built-in and is sufficient for most users. If the KSM software does not meet your requirements, custom integration with your software can be achieved by understanding and implementing the protocol described in this document.

The original KSM software can be found at https://koolance.com/software.

Disclaimer: The software and communication protocol are provided "AS IS", without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose, and non-infringement. In no event shall the authors or copyright holders be liable for any claim, damages, or other liability, whether in an action of contract, tort, or otherwise, arising from, out of, or in connection with the software and communication protocol or the use or other dealings in the software and communication protocol.

© 2025 Koolance, Inc.

USB-Serial Drivers

Communication between the KSM software and devices is performed via system COM ports, utilizing the RS232 serial protocol. To support serial communication over USB, your system may require USB-UART drivers. These drivers can be found from FTDI at https://www.ftdichip.com/Drivers/D2XX.htm. A setup executable for these drivers is available for Windows, while source files are available to compile on Linux.

Protocol Overview

The protocol operates on a request-response paradigm (Polling). Request messages are sent by the client (your software) to the Koolance device, and the device then sends a response back. The KSM software defaults to a 3-second polling interval, but the polling frequency is left for you to determine. The first byte in a response from your device is not only a directional flag but also an identifier for the firmware the device uses. Therefore, it may be any one of the listed 32-bit STX device-to-client codes for a given protocol. In the future, the STX response codes may expand to include other devices or hardware.

Example Commands

The following example commands are using the f.DF variant. Other variants will have different byte orders and lengths. Please ensure you are using the variant your Koolance device supports.

WARNING: Requests will vary depending on the current settings of the applicable Koolance device. Using these examples verbatim may cause unintended changes to settings. Use a Data Request (CF 01 08) to poll existing settings specific to your device.

Spaces between bytes are included here for readability. Commands should be transmitted in raw binary.

Making a Data Request

Request: CF 01 08

Response: DF 02 08 AA 0F AC 0F AC 00 00 00 00 00 00 00 34 00 07 06 AE AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA 00 02 00 01 00 01 00

Changing the Set-Point to 40°C LIQ temp

(Also note the unit change to °C)

(0x01 * 44) + 40 = 84 = 0x54

Request: CF 04 00 00 00 00 00 00 00 00 00 00 00 00 01 54 00 07 06 AE AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA 00 01 00 00 00 01 41

Response: None

Protocol Variants

The following tables detail various protocol variants supported by Koolance devices.

f.DF Protocol Variant

Supported Devices: CTR-KSM100, RPM-ALX400, ALX-750-P400, ALX-1450-P400, ALX-2000-P400, ALR-4500A, ALR-4500C, ALH-2000 (Rev 1.0/1.1)

ByteDeviceExplanation
0STX
  • [0xCF]: Client to Device
  • [0xDF|0x1E|0x23|0x28]: Device to Client
1Command
  • [0x01]: Data request (Client to Device)
  • [0x02]: Data send (Device to Client)
  • [0x03]: Disconnect (Device to Client)
  • [0x04]: Set request (Client to Device)
2,3LIQ Temp (°C)
  • (°C * 10) + 2000
  • [0x0FAC]: Out of Range
  • [0x0FA3]: Sensor Open
  • [0x0FA4]: Sensor Short
4,5CH1 Temp
  • (°C * 10) + 2000
  • [0x0FAC]: Out of Range
6,7CH2 Temp
  • [0x0FA3]: Sensor Open
  • [0x0FA4]: Sensor Short
8,9Fan RPM
  • [0x0000] - [0x2710]: 0 - 10,000 RPM
10,11Pump RPM
  • [0x0000] - [0x2710]: (LPM or GPM) * 10
12,13Flow Meter
  • [0x00]: Fixed Mode
  • [0x01]: Auto Mode, based on LIQ Temp
  • [0x02]: Auto Mode, based on CH1 Temp
  • [0x03]: Auto Mode, based on CH2 Temp
14Fan Mode
  • Fixed Mode: 0 - 100 (%)
  • Auto Mode: (Fan Mode * 44) + Temp Set Point (°C or °F)
15Fan Power / Set Point
  • [0x01] - [0x0A]: (Levels 1 - 10)
16,17Pump PowerSee Chart FM1
18,19Flow Meter
  • [0xAAAA]: Disable
20,21LIQ Temp
  • Send: (°C * 10) + 2000
  • Receive: (°C / 10) - 2000
22,23CH1 Temp
  • [0xAAAA]: Disable
24,25CH2 Temp
  • Send: (LPM or GPM) * 10
  • Receive: (LPM or GPM) / 10
26,27Flow Meter
  • [0xAAAA]: Disable
  • [0x0064] - [0x2710]: 100 - 10000 RPM (Increments of 100)
28,29Fan RPM
  • [0xAAAA] : Disable
  • Send: (°C * 10) + 2000
  • Receive: (°C / 10) - 2000
30,31Pump RPM
  • [0xAAAA]: Disable
32,33LIQ Temp
  • Send: (LPM or GPM) * 10
  • Receive: (LPM or GPM) / 10
34,35CH1 Temp
  • [0xAAAA]: Disable
  • [0x0064] - [0x2710]: 100 - 10000 RPM (Increments of 100)
36,37CH2 Temp
  • [0xAAAA]: Disable
38,39Flow Meter
  • [0x0001]: °C / LPM
  • [0x0002]: °F / GPM
40,41Fan RPM
  • [0x0001]: Normal
  • [0x0002]: Problem
42,43Pump RPMSee Chart LS1
44,45UnitSum(Byte 0, ... Byte 49) % 0x64
46,47Level Sensor
48,49Level Sensor Setup
50Check Sum

f.DF (43 Bytes) Protocol Variant

Supported Devices: LLX-7000

ByteDeviceExplanation
0STX
  • [0xCF]: Client to Device
  • [0xDF]: Device to Client
1Command
  • [0x01]: Data request (Client to Device)
  • [0x02]: Data send (Device to Client)
  • [0x03]: Disconnect (Device to Client)
  • [0x04]: Set request (Client to Device)
2,3LIQ Temp (°C)
  • (°C * 10) + 2000
  • [0x0FAC]: Out of Range
  • [0x0FA3]: Sensor Open
  • [0x0FA4]: Sensor Short
4,5CH1 Temp
  • (°C * 10) + 2000
  • [0x0FAC]: Out of Range
6,7CH2 Temp
  • [0x0FA3]: Sensor Open
  • [0x0FA4]: Sensor Short
8,9Fan RPM
  • [0x0000] - [0x2710]: 0 - 10,000 RPM
10,11Pump RPM
  • [0x0000] - [0x2710]: (LPM or GPM) * 10
12,13Flow Meter
  • [0x00]: Fixed Mode
  • [0x01]: Auto Mode, based on LIQ Temp
  • [0x02]: Auto Mode, based on CH1 Temp
  • [0x03]: Auto Mode, based on CH2 Temp
14,15Fan Power / Set Point
  • Fixed Mode: 0 - 100 (%)
  • Auto Mode: 0 - 100 (°C or °F)
16,17Pump Power
  • [0x01] - [0x0A]: (Levels 1 - 10)
18,19Flow MeterSee Chart FM1
20,21LIQ Temp
  • [0x0BB8]: Disable
  • Send: (°C * 10) + 2000
  • Receive: (°C / 10) - 2000
  • Range: 0 - 99°C
22,23CH1 Temp
  • [0x0BB8]: Disable
24,25CH2 Temp
  • Send: (LPM or GPM) * 10
  • Receive: (LPM or GPM) / 10
26,27Flow Meter
  • [0xAAAA] : Disable
  • Send: (°C * 10) + 2000
  • Receive: (°C / 10) - 2000
  • Range: 0 - 99°C
28,29LIQ Temp
  • [0xAAAA]: Disable
30,31CH1 Temp
  • Send: (LPM or GPM) * 10
  • Receive: (LPM or GPM) / 10
32,33CH2 Temp
  • [0xAAAA]: Disable
34,35Flow Meter
  • [0x0001]: °C / LPM
  • [0x0002]: °F / GPM
36,37Unit
  • [0x0001]: Normal
  • [0x0002]: Problem
38,39Level SensorSee Chart LS1
40,41Level Sensor SetupSum(Byte 0, ... Byte 41) % 0x64
42Check Sum

NOTE: Devices using the 43 byte length f.DF variant can only be polled for data. Adjusting device settings via protocol is unsupported.

f.3C Protocol Variant

Supported Devices: EXC-900

ByteDeviceExplanation
0STX
  • [0xCF]: Client to Device
  • [0x3C]: Device to Client
1Command
  • [0x01]: Data request (Client to Device)
  • [0x02]: Data send (Device to Client)
  • [0x03]: Disconnect (Device to Client)
  • [0x04]: Set request (Client to Device)
2,3LIQ Temp
  • °C / °F
  • [0x0FAC]: Out of Range
  • [0x0FA3]: Sensor Open
  • [0x0FA4]: Sensor Short
4,5EXT Temp
  • [0x0FA3]: Sensor Open
  • [0x0FA4]: Sensor Short
6,7AMB Temp
  • [0x0000] - [0x2710]: 0 - 10,000 RPM
8,9Fan RPM
  • [0x0000] - [0x2710]: (LPM or GPM) * 10
10,11Pump RPM
  • Fixed Set Points:
  • LIQ: (°C or °F) + 500
  • EXT: (°C or °F) + 1000
  • (Range: -20°C to 120°C / -4°F to 248°F)
  • Delta Set Points:
  • LIQ-AMB: (°C or °F) + 1500
  • EXT-AMB: (°C or °F) + 2000
  • (Range: -50°C to 50°C / -58°F to 122°F)
12,13Flow Meter
  • [0x00]: Pump Off
  • [0x01] - [0x0A]: (Levels 1 - 10)
14,15Temp Set Point
  • [0x06AE]: (Always INS-FM17/10mm. See Chart FM1)
16,17Pump Power
  • °C / °F
  • (Range: 1°C - 50°C / 1°F - 50°F)
18,19Flow Meter
  • [0x0000] Unused
20,21(±) Set-Point
  • [0xAAAA]: Disable
  • Send: (LPM or GPM) * 10
  • Receive: (LPM or GPM) / 10
22,23CH1 Temp
  • [0xAAAA]: Disable
  • [0x0064] - [0x2710]: 100 - 10000 RPM (Increments of 100)
24,25CH2 Temp
  • °C / °F
  • (Range: 1°C - 50°C / 1°F - 50°F)
26,27Flow Meter
  • [0x0000] Unused
28,29Fan RPM
  • [0xAAAA]: Disable
  • Send: (LPM or GPM) * 10
  • Receive: (LPM or GPM) / 10
30,31Pump RPM
  • [0xAAAA]: Disable
  • [0x0064] - [0x2710]: 100 - 10000 RPM (Increments of 100)
32,33(±) Set-Point
  • [0x0001]: °C / LPM
  • [0x0002]: °F / GPM
34,35Flow Meter
  • [0x0001]: Normal
  • [0x0002]: Low
36,37UnitSee Chart LS1
38,39Level SensorSum(Byte 0, ... Byte 49) % 0x64
40,41Level Sensor Setup
42,43Check Sum
44,45Unit
46,47Level Sensor
48,49Level Sensor Setup
50Check Sum

f.32 Protocol Variant

Supported Devices: ALH-2000 (Rev 1.2)

ByteDeviceExplanation
0STX
  • [0xCF]: Client to Device
  • [0x32]: Device to Client
1Command
  • [0x01]: Data request (Client to Device)
  • [0x02]: Data send (Device to Client)
  • [0x03]: Disconnect (Device to Client)
  • [0x04]: Set request (Client to Device)
2,3LIQ Temp (°C)
  • (°C * 10) + 2000
  • [0x0FAC]: Out of Range
  • [0x0FA3]: Sensor Open
  • [0x0FA4]: Sensor Short
4,5CH1 Temp
  • (°C * 10) + 2000
  • [0x0FAC]: Out of Range
6,7CH2 Temp
  • [0x0FA3]: Sensor Open
  • [0x0FA4]: Sensor Short
8,9Fan RPM
  • [0x0000] - [0x2710]: 0 - 10,000 RPM
10,11Pump RPM
  • [0x0000] - [0x2710]: (LPM or GPM) * 10
12,13Flow Meter
  • [0x00]: Fixed Mode
  • [0x01]: Auto Mode, based on LIQ Temp
  • [0x02]: Auto Mode, based on CH1 Temp
  • [0x03]: Auto Mode, based on CH2 Temp
14Fan Mode
  • Fixed Mode: 0 - 100 (%)
  • Auto Mode: (Fan Mode * 44) + Temp Set Point (°C or °F)
15Fan Power / Set Point
  • [0x10]: Enable
16Heater
  • [0x00]: Disable
17Pump Power
  • [0x00]: Pump Off
  • [0x01] - [0x0A]: (Levels 1 - 10)
18,19Flow Meter
  • [0x06AE]: (Always INS-FM17/10mm. See Chart FM1)
20,21LIQ Temp
  • [0xAAAA]: Disable
  • Send: (°C * 10) + 2000
  • Receive: (°C / 10) - 2000
22,23CH1 Temp
  • [0xAAAA]: Disable
24,25CH2 Temp
  • Send: (LPM or GPM) * 10
  • Receive: (LPM or GPM) / 10
26,27Flow Meter
  • [0xAAAA]: Disable
  • [0x0064] - [0x2710]: 100 - 10000 RPM (Increments of 100)
28,29Fan RPM
  • [0xAAAA]: Disable
  • Send: (°C * 10) + 2000
  • Receive: (°C / 10) - 2000
30,31Pump RPM
  • [0xAAAA]: Disable
32,33LIQ Temp
  • Send: (LPM or GPM) * 10
  • Receive: (LPM or GPM) / 10
34,35CH1 Temp
  • [0xAAAA]: Disable
  • [0x0064] - [0x2710]: 100 - 10000 RPM (Increments of 100)
36,37CH2 Temp
  • [0xAAAA]: Disable
38,39Flow Meter
  • [0x0001]: °C / LPM
  • [0x0002]: °F / GPM
40,41Fan RPM
  • [0x0001]: Normal
  • [0x0002]: Low
42,43Pump RPMSee Chart LS1
44,45UnitSum(Byte 0, ... Byte 49) % 0x64
46,47Level Sensor
48,49Level Sensor Setup
50Check Sum

f.26 Protocol Variant

Supported Devices: ALR-4600A, ALR-4600C

ByteDeviceExplanation
0STX
  • [0xCF]: Client to Device
  • [0x26]: Device to Client
1Command
  • [0x01]: Data request (Client to Device)
  • [0x02]: Data send (Device to Client)
  • [0x03]: Disconnect (Device to Client)
  • [0x04]: Set request (Client to Device)
2,3LIQ Temp (°C)
  • (°C * 10) + 2000
  • [0x0FAC]: Out of Range
  • [0x0FA3]: Sensor Open
  • [0x0FA4]: Sensor Short
4,5CH1 Temp
  • (°C * 10) + 2000
  • [0x0FAC]: Out of Range
6,7CH2 Temp
  • [0x0FA3]: Sensor Open
  • [0x0FA4]: Sensor Short
8,9Fan RPM
  • [0x0000] - [0x2710]: 0 - 10,000 RPM
10,11Pump RPM
  • [0x0000] - [0x2710]: (LPM or GPM) * 10
12,13Flow Meter
  • Fan Mode:
  • 0: Fixed Mode
  • 1: Auto Mode, based on LIQ Temp
  • 2: Auto Mode, based on CH1 Temp
  • 3: Auto Mode, based on CH2 Temp
14,15Fan Mode / Set Point
  • Set Point:
  • (Fan Mode * 300) + Temp Set Point (°C or °F)
16,17Pump Power
  • [0x00]: Pump Off
  • [0x01] - [0x0A]: (Levels 1 - 10)
18,19Flow Meter
  • [06AE]: (Always INS-FM17/10mm. See Chart FM1)
20,21LIQ Temp
  • [0xAAAA]: Disable
  • Send: (°C * 10) + 2000
  • Receive: (°C / 10) - 2000
22,23CH1 Temp
  • [0xAAAA]: Disable
  • Send: (LPM or GPM) * 10
  • Receive: (LPM or GPM) / 10
24,25CH2 Temp
  • [0xAAAA]: Disable
  • [0x0064] - [0x2710]: 100 - 10000 RPM (Increments of 100)
26,27Flow Meter
  • [0xAAAA] : Disable
  • Send: (°C * 10) + 2000
  • Receive: (°C / 10) - 2000
28,29Fan RPM
  • [0xAAAA]: Disable
  • Send: (LPM or GPM) * 10
  • Receive: (LPM or GPM) / 10
30,31Pump RPM
  • [0xAAAA]: Disable
  • [0x0064] - [0x2710]: 100 - 10000 RPM (Increments of 100)
32,33LIQ Temp
  • [0x0001]: °C / LPM
  • [0x0002]: °F / GPM
34,35CH1 Temp
  • [0x0001]: Normal
  • [0x0002]: Problem
36,37CH2 TempSee Chart LS1
38,39Flow MeterSum(Byte 0, ... Byte 51) % 0x64
40,41Fan RPM
42,43Pump RPM
44,45Unit
46,47Level Sensor
48,49Level Sensor Setup
50,51Fan Ramp
  • Temp Set Range: (0.5°C - 10°C)
  • Send: °C * 10
  • Receive: °C / 10
52Check Sum

Reference Charts

Chart CP1: Connection Parameters

Serial PortCOM1, COM2, etc.Flow Control (Handshake)None
Bits/Second (Baud Rate)9600 bpsDiscard NullFalse
ParityNoneDTR (Data Terminal Ready)False
Data Bits8RTS (Request To Send)False
Stop Bits1Received Bytes Threshold1

Chart FM1: Flow Meter Setting Values

Flow MeterTubing Inner Diameter
6 mm10 mm13 mm
INS-FM140x057E0x05820x0586
INS-FM160x06460x064A0x064E
INS-FM170x06AA0x06AE0x06B2
INS-FM180x070E0x07120x0716
INS-FM190x07720x07760x077A

Chart LS1: Level Sensor Values

StateHexAlarmRelay
All Off0x0001OFFOFF
Alarm0x0002ONOFF
Relay0x0003OFFON
All On0x0004ONON

Variants f.DF, f.DF43, f.32

Chart FA1: Fan Auto Mode Set-Point Range

Sensor°C°FIncrements
MinMaxMinMax
LIQ-3090-221941
CH1-20120-42481
CH2-20120-42481

Chart AR1: Alarm / Relay Setting Range

Sensor°C / LPM°F / GPMIncrements
MinMaxMinMax
LIQ099322111
CH10119322471
CH20119322471
FAN1001000010010000100
PUMP1001000010010000100
FLOW0.1200.12.70.1

Variant f.3C

Chart SP1: Temp Set-Point Range

Sensor°C°FIncrements
MinMaxMinMax
LIQ-20120-42481
EXT-20120-42481
LIQ-AMB-5050-581221
EXT-AMB-5050-581221

Chart AR2: Alarm / Relay Setting Range

Sensor°C / LPM°F / GPMIncrements
MinMaxMinMax
LIQ099322111
EXT0119322471
LIQ-AMB0119322471
EXT-AMB0119322471
FLOW0.1200.12.70.1
FAN1001000010010000100
PUMP1001000010010000100

PDF preview unavailable. Download the PDF instead.

KSM Protocol v3 Writer LibreOffice 24.2

Related Documents

Preview Koolance ALX Series Products User's Manual
User's manual for Koolance ALX Series liquid cooling systems, covering product diagrams, installation, wiring, coolant filling, display panel operation, and troubleshooting.
Preview Koolance ALR-4600 User's Manual - Liquid Cooling System Guide
Comprehensive user manual for the Koolance ALR-4600 liquid cooling system, covering installation, operation, troubleshooting, and warranty information.
Preview Koolance ALX-3000 Liquid Cooling System User Manual
Comprehensive user manual for the Koolance ALX-3000 Liquid Cooling System, covering installation, operation, features, troubleshooting, and warranty information.
Preview Koolance LLX-7000 Liquid Cooling System User Manual
Comprehensive user manual for the Koolance LLX-7000 liquid cooling system, detailing installation, operation, display panel controls, troubleshooting, and warranty information. Includes safety precautions and product specifications.
Preview Koolance VLX-2000 Liquid Chiller User's Manual
Official user's manual for the Koolance VLX-2000 Liquid Chiller, detailing installation, operation, specifications, and troubleshooting for advanced PC liquid cooling systems.
Preview Koolance FIT-V06PC G 1/4" Tap Push-to-Connect Fitting - Technical Specifications
Detailed technical drawing and specifications for the Koolance FIT-V06PC fitting, featuring a G 1/4" BSPP male thread and a 1/4" OD push-to-connect interface for computer water cooling.
Preview Koolance COV-TKBTMX70 Reservoir Fitting Base Technical Diagram
Detailed technical drawing and specifications for the Koolance COV-TKBTMX70 Reservoir Fitting Base. Includes dimensions (Ø80.0mm, 4-Ø10.0mm, M72x1.5 thread, 2-G 1/4 ports), material (SUS), and assembly details for PC water cooling systems.
Preview Koolance TLH-300 User's Manual - Liquid Chiller Guide
Official user manual for the Koolance TLH-300 Liquid Chiller, providing installation, operation, safety, and troubleshooting guidance for superior liquid cooling systems.