QUIO QM-950-4-HF-2.0 Chip Card Reader
RS232C Communication
QM-950-4-HF-2.0 initialization value is set using RS232C communication port.
Communication basic frame format

Response LIST
| Status | Result | Remark |
| 0x00 | Command operating success | |
| 0x01 | Command operating error | |
| 0x10 | Command Undefined | |
| 0x11 | TimeOut |
Command LIST
| Command | Hex | Remark | |
| CmdGetVersion | 0x30 | ||
| CmdSetDeviceAddress | 0x31 | ||
| CmdSetRS485 | 0x32 | ||
| CmdCardDataHoldTime | 0x33 | ||
| CmdGetInitValue | 0x34 |
CmdGetVersion
Host
| STX | LEN HIGH | LEN low | 0x30 | BCC | ETX |
| 1 | 1 | 1 | 1 | 1 | 1 |
Response
| STX | LEN HIGH | LEN low | Status | KEC4500 Version | BCC | ETX |
| 1 | 1 | 1 | 1 | 16Bytes | 1 | 1 |
CmdSetDeviceAddress
Host
| STX | LEN HIGH | LEN low | 0x31 | DeviceAddress | BCC | ETX |
| 1 | 1 | 1 | 1 | 1Bytes | 1 | 1 |
Response
| STX | LEN HIGH | LEN low | Status | BCC | ETX |
| 1 | 1 | 1 | 1 | 1 | 1 |
CmdSetRS485
Host
| STX | LEN HIGH | LEN low | 0x32 | ModBusCommSpeed | BCC | ETX |
| 1 | 1 | 1 | 1 | 1 | 1 |
| RS484 CommSpeed | Speed | |
| 0x00 | 2400bps | |
| 0x01 | 4800bps | |
| 0x02 | 9600bps | |
| 0x03 | 19200bps | |
| 0x04 | 38400bps | |
| 0x05 | 115200bps |
Response
| STX | LEN HIGH | LEN low | Status | BCC | ETX |
| 1 | 1 | 1 | 1 | 1 | 1 |
CmdCardDataHoldTime
Host
| STX | LEN HIGH | Length low | 0x33 | CardDataHoldTime | BCC | ETX |
| 1 | 1 | 1 | 1 | 2Bytes | 1 | 1 |
Response
| STX | LEN HIGH | Length low | Status | BCC | ETX |
| 1 | 1 | 1 | 1 | 1 | 1 |
((CardDataHoldTime[0]*256) + CardDataHoldTime[1])*10msec
CmdGetInitValue
Host
| STX | LEN HIGH | Length low | 0x34 | BCC | ETX |
| 1 | 1 | 1 | 1 | 1 | 1 |
Response
| STX | LEN HIGH | Length low | Status | ModBusInitalValue | BCC | ETX |
| 1 | 1 | 1 | 1 | 4bytes | 1 | 1 |
ModBusInitalValue
| DeviceAddress | RS485 Speed | CardDataHoldTime |
| 1bytes | 1bytes | 2bytes |
QM-950-4-HF-2.0 ModBus
ReadCardData (Read Input Register 0X04)
Host
QM-950-4-HF-2.0
| DeviceAddress | FunctionCode | StartAddressHi | StartAddressLo | QuantityHi | QuantityLo | CRC |
| 0x01 | 0x04 | 0x00 | 0x00 | 0x00 | 0x0a | 0x70,0x0d |
Ex) ** DeviceAddress= 0x01,
StartAddress= (StartAddressHi *256)+ StartAddressLo = 0x0000,
Quantity= (QuantityHi *256)+ QuantityLo = 0x000A
QM-950-4-HF-2.0
Host
| DeviceAddress | FunctionCode | ByteCount | Data | CRC |
| 0x01 | 0x04 | 0x14 | 0x76,0x40,0x9b,0xf0,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 | 0x58, 0x2b |
ByteCount= ((QuantityHi*256)+ QuantityLo)*2
Ex) ** ** DeviceAddress= 0x01, Card UID 4Byte = 0x76,0x40,0x9b,0xf0
PosSize= (((StartAddressHi*256)+ StartAddressLo)*2) + (((QuantityHi*256)+ QuantityLo) *2)
if(PosSize >= 101){
// error handling
| DeviceAddress | FunctionCode | ByteCount | CRC |
| 0x01 | 0x84 | 0x02 | 0Xc1, 0xc2 |
}
else{
// normal processing
ByteCount= (((QuantityHi*256) + QuantityLo) *2);
ModBusBufPos= (((StartAddressHi*256) + StartAddressLo)*2); //ModBus Buffer Position
| DeviceAddress | FunctionCode | ByteCount | Data | CRC |
| 0x01 | 0x04 | ByteCount | ModBusBuf[ModBusBufPos ] |
}
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | |
| 0 | Hex0 | Hex1 | Hex2 | Hex3 | Hex4 | Hex5 | Hex6 | 0X00 | 0X00 | 0X00 |
| 1 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 |
| 2 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 |
| 3 | 0X00 | 0X00 | 0X00 | UID LEN | ASCII 0 | ASCII 1 | ASCII 2 | ASCII 3 | ASCII 4 | ASCII 5 |
| 4 | ASCII 6 | ASCII 7 | ASCII 8 | ASCII 9 | ASCII 10 | ASCII 11 | ASCII 12 | ASCII 13 | 0X00 | 0X00 |
| 5 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 |
| 6 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 |
| 7 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 |
| 8 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 |
| 9 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 |
Ex) UID 0X12, 0X34, 0X56,0X76
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | |
| 0 | 0X12 | 0X34 | 0X56 | 0X78 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 |
| 1 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 |
| 2 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 |
| 3 | 0X00 | 0X00 | 0X00 | 0X04 | 0X31 | 0X32 | 0X33 | 0X34 | 0X35 | 0X36 |
| 4 | 0X37 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 |
| 5 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 |
| 6 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 |
| 7 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 |
| 8 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 |
| 9 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 | 0X00 |
LED Red On(Write Single Coil 0X05)
LED Red On/ LED Blue Off
Host
QM-950-4-HF-2.0
| DeviceAddress | FunctionCode | OutPutAddressHi | OutPutAddressLo | OutValueHi | OutValueLo | CRC |
| 0x01 | 0x05 | 0x00 | 0x01 | 0xff | 0x00 | 0xdd,0xfa |
QM-950-4-HF-2.0
Host
| DeviceAddress | FunctionCode | OutPutAddressHi | OutPutAddressLo | OutValueHi | OutValueLo | CRC |
| 0x01 | 0x05 | 0x00 | 0x01 | 0xff | 0x00 | 0xdd,0xfa |
LED Blue On(Write Single Coil 0X05)
LED Red Off/ LED Blue On
Host
QM-950-4-HF-2.0
| DeviceAddress | FunctionCode | OutPutAddressHi | OutPutAddressLo | OutValueHi | OutValueLo | CRC |
| 0x01 | 0x05 | 0x00 | 0x01 | 0x00 | 0x00 | 0x9c,0x0a |
QM-950-4-HF-2.0
Host
| DeviceAddress | FunctionCode | OutPutAddressHi | OutPutAddressLo | OutValueHi | OutValueLo | CRC |
| 0x01 | 0x05 | 0x00 | 0x01 | 0x00 | 0x00 | 0x9c,0x0a |
Status= (OutValueHi*256)+ OutValueLo;
If(Status!=0){
RedLED_On_BlueLED_Off();
}
else{
BlueLED_On_RedLED_Off();
}
Buzzer On(Write Single Coil 0X05)
Host
QM-950-4-HF-2.0
| DeviceAddress | FunctionCode | OutPutAddressHi | OutPutAddressLo | OutValueHi | OutValueLo | CRC |
| 0x01 | 0x05 | 0x00 | 0x00 | 0xff | 0x00 | 0x8c,0x3a |
QM-950-4-HF-2.0
Host
| DeviceAddress | FunctionCode | OutPutAddressHi | OutPutAddressLo | OutValueHi | OutValueLo | CRC |
| 0x01 | 0x05 | 0x00 | 0x00 | 0xff | 0x00 | 0x8c, 0x3a |
Buzzer On(Write Single Coil 0X05)
Host
QM-950-4-HF-2.0
| DeviceAddress | FunctionCode | OutPutAddressHi | OutPutAddressLo | OutValueHi | OutValueLo | CRC |
| 0x01 | 0x05 | 0x00 | 0x00 | 0x00 | 0x00 | 0xcd,0xca |
QM-950-4-HF-2.0
Host
| DeviceAddress | FunctionCode | OutPutAddressHi | OutPutAddressLo | OutValueHi | OutValueLo | CRC |
| 0x01 | 0x05 | 0x00 | 0x00 | 0x00 | 0x00 | 0xcd, 0xca |
Case Sensor On (Read Discrete Input 0X02)
Host
QM-950-4-HF-2.0
| DeviceAddress | FunctionCode | StartAddressHi | StartAddressLo | OutValueHi | QuantityLo | CRC |
| 0x01 | 0x02 | 0x00 | 0x00 | 0x00 | 0x01 | 0xb9,0xca |
QM-950-4-HF-2.0
Host
Case Open
| DeviceAddress | FunctionCode | ByteCount | Data | CRC |
| 0x01 | 0x02 | 0x01 | 0x01 | 0x60, 0x48 |
Case Close
| DeviceAddress | FunctionCode | ByteCount | Data | CRC |
| 0x01 | 0x02 | 0x01 | 0x00 | 0xa1, 0x88 |
DeviceAddressSet (Write Single Register 0X06)
Host
QM-950-4-HF-2.0
| DeviceAddress | FunctionCode | RegisterAddrHi | RegisterAddrLo | OutValueHi | OutValueLo | CRC |
| 0x01 | 0x06 | 0x00 | 0x00 | 0x00 | 0x01 | 0x48,0x0a |
DeviceAddress= OutValueLo;
** OutValueHi is always 0x00
QM-950-4-HF-2.0
Host
DeviceAddressSet Ok
| DeviceAddress | FunctionCode | RegisterAddrHi | RegisterAddrLo | OutValueHi | OutValueLo | CRC |
| 0x01 | 0x06 | 0x00 | 0x00 | 0x00 | 0x01 | 0x48,0x0a |
DeviceAddress Fail
| DeviceAddress | FunctionCode | ExceptionCode | CRC |
| 0x01 | 0x86 | 0x02 | 0xc3, 0xa1 |
Changed values take effect immediately
RS485 Communication Speed (Write Single Register 0X06)
Host
QM-950-4-HF-2.0
| DeviceAddress | FunctionCode | RegisterAddrHi | RegisterAddrLo | OutValueHi | OutValueLo | CRC |
| 0x01 | 0x06 | 0x00 | 0x01 | 0x00 | 0x05 | 0x18,0x09 |
Communication Speed= OutValueLo;
** OutValueHi is always 0x00
| OutValueLo | Speed | |
| 0x00 | 2400bps | |
| 0x01 | 4800bps | |
| 0x02 | 9600bps | |
| 0x03 | 19200bps | |
| 0x04 | 38400bps | |
| 0x05 | 115200bps |
QM-950-4-HF-2.0
Host
DeviceAddressSet Ok
| DeviceAddress | FunctionCode | RegisterAddrHi | RegisterAddrLo | OutValueHi | OutValueLo | CRC |
| 0x01 | 0x06 | 0x00 | 0x01 | 0x00 | 0x05 | 0x18,0x09 |
DeviceAddress Fail
| DeviceAddress | FunctionCode | ExceptionCode | CRC |
| 0x01 | 0x86 | 0x02 | 0xc3, 0xa1 |
Changed values take effect immediately
Card Data Hold Time (Write Single Register 0X06)
Host
QM-950-4-HF-2.0
| DeviceAddress | FunctionCode | RegisterAddrHi | RegisterAddrLo | OutValueHi | OutValueLo | CRC |
| 0x01 | 0x06 | 0x00 | 0x02 | 0x00 | 0x64 | 0x29,0xe1 |
CardDataHoldTime= (OutValueHi*256)+OutValueLo;
10msec/unit
Ex) 1 second when CardDataHoldTime=100
QM-950-4-HF-2.0
Host
DeviceAddressSet Ok
| DeviceAddress | FunctionCode | RegisterAddrHi | RegisterAddrLo | OutValueHi | OutValueLo | CRC |
| 0x01 | 0x06 | 0x00 | 0x02 | 0x00 | 0x64 | 0x29,0xe1 |
DeviceAddress Fail
| DeviceAddress | FunctionCode | ExceptionCode | CRC |
| 0x01 | 0x86 | 0x02 | 0xc3, 0xa1 |
Changed values take effect immediately
Input/Out Signal
- BEEP
Input signal
When Low, Buzzer is On. - Tamper
Output as LOW when Tamper Sensor is detected. - LED
Input signal
When Low, Blue LED/ Red LED Blinking
Connection
| Color | PIN NO | Description | ||
| Red | 1 | Power In | 7~24VDC | |
| Black | 2 | GND | ||
| Grey | 3 | RS232 RXD | RS232C Communication | |
| White-Green | 4 | RS232 TXD | ||
| Green | 5 | WIEGAND DATA0 | 5VDC HIGH:1mA | Output(no function) |
| White | 6 | WIEGAND DATA1 | 5VDC HIGH:1mA | Output(no function) |
| Blue | 7 | GND | ||
| Brown | 8 | LED | ||
| Yellow | 9 | BUZZER | ||
| Purple(Violet) | 10 | TAMPER | ||
| Orange | 11 | RS485+(A) | RS485 Communication | |
| Sky Blue | 12 | RS485-(B) |
RS-485 TEST Connection
RS232 Connection




















