SFM Series Packet Protocol Manual V3.5.0
SFM Series Packet Protocol Manual V3.5.0
Timeout .................................................................................................................................................................. 25
Enroll Mode.......................................................................................................................................................... 27
Image Format..................................................................................................................................................... 33
Module ID.............................................................................................................................................................. 34
Firmware Version.............................................................................................................................................. 35
Baudrate ................................................................................................................................................................ 38
Baudrate2.............................................................................................................................................................. 39
Rotation .................................................................................................................................................................. 45
Sensitivity ............................................................................................................................................................... 46
Auto Response................................................................................................................................................... 48
Matching Timeout........................................................................................................................................... 54
Fast Mode.............................................................................................................................................................. 59
Watchdog............................................................................................................................................................... 61
Protocol Interface............................................................................................................................................. 68
COMMAND SUMMARY............................................................................................................................. 70
CA : Cancel............................................................................................................................................................ 86
RS : Reset Module............................................................................................................................................ 93
ET : Enroll by Template.................................................................................................................................121
V3.5.0 2020-09-23
V3.4.0 2019-04-11
V3.3.0 2018-04-29
V3.2.0 2017-12-29
- SP command added
V3.1.4 2017-09-13
- SFMSlim supported.
V3.1.1 2017-05-02
V.3.1.0 2017-04-10
V.3.0.0 2016-12-01
V.2.9.1 2014-06-18
V.2.9 2013-1-04
V.2.8.5 2012-7-02
V2.8.4 2011-6-02
V2.8.3 2011-5-02
V2.8.2 2010-8-28
V2.8.1 2009-4-13
V2.8 2008-5-22
V2.7 2006-11-13
V2.6 2006-03-23
- LC command added.
- CCL, RCL command added.
- WSL, RSL command added. The minimum security level is lowered to 1/1,000
for 1:1 matching.
- AUTOMATIC NORMAL, AUTOMATIC SECURE, AUTOMATIC MORE SECURE
security level added.
V2.5 2005-11-15
V2.4 2005-07-11
V2.3.1 2005-06-01
V2.3 2005-04-29
V2.2.1 2005-02-14
V2.2 2005-01-18
V2.1 2004-12-6
V2.0 2004-11-11
- DS command added.
V1.9 2004-09-25
- CS command added.
- EnrollMode system parameter has 2 templates & 2 templates II.
- SecurityLevel system parameter has additional levels.
- Baudrate system parameter has additional baudrates. (*The changes in V1.9 are
only applicable to the SFM3000/3500 series.)
V1.8 2004-07-02
V1.7 2004-05-06
V1.6 2004-04-08
V1.5 2004-01-15
V1.4 2003-03-24
V1.3 2003-02-25
V1.2 2003-01-14
V1.1 2002-11-09
- VH command added.
V1.0 2002-07-08
- Created.
In the packet protocol of the Suprema Fingerprint Module (SFM), 1 packet is 13 bytes
long and its structure is as follows
Start End
Command Param Size Flag/Error Checksum
code code
1. Start code: 1 byte. Indicates the beginning of a packet. It always should be 0x40.
4. Size: 4 bytes. Indicates the size of binary data following the command packet
such as fingerprint templates or images.
5. Flag/Error: 1 byte. Indicates flag data in the request command sent to the
module, and error code in the response command received from the module,
respectively.
7. End code: 1 byte. Indicates the end of a packet. It always should be 0x0A. It is
also used as a code indicating the end of a binary data such as fingerprint
templates.
- The packet transmitted between the host and the module has the same structures.
The commands transmitting from the host to the module are called “request
command,” and the response transmitting from the module to the hosts, “response
command.”
- In general, the host receives one response command for one request command.
However, it may receive two response commands for some commands such as
Enroll by Scan. The first command comes in the intermediate stage, notifying
SFM Series Packet Protocol Manual v3.5.0 14
image scanning completed and the other command notifies process result. If you
do not want to receive the intermediate command, you can disable it by changing
a system parameter.
- In the following document, # indicates numbers and the number of # specifies the
number of digits. N/A indicates that any value can be applied to the field and Null
indicates 0x00.
- In the transmission of actual data, the byte order is little endian, the lowest byte is
transmitted first. For instance, when transmitting data of 400 (0x190) in the Size
field, which is 4 bytes long, the data transmission order is as follows: 0x90, 0x01,
0x00, 0x00. The rule also holds for the data received from the module.
0x40, 0x05, 0x29, 0x99, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0A
To compute the checksum, first compute the sum of each byte of the packet (from
start code to flag/error) as demonstrated below:
0x40+0x05+0x29+0x99+0x00+0x00+0x00+0x00+0x00+0x00 = 0x107
Divide the above value by 0x100(256). The remainder of this division is 0x07 and
this value is the checksum.
In order to support RS422 or RS485 network interfaces, the SFM support network
packet protocols. Network packet is composed of 15 bytes, whose start code is
different from the standard packet, and includes 2 bytes for terminal ID. The terminal
ID is correspondent to the lower 2 bytes of Module ID of system parameter.
Bytes 1 2 1 4 4 1 1 1
1~ Checksum
Value 0x41 Same as standard protocol 0x0A
0xFFFF of 13 bytes
The contents of the network packet, including command, param, size, and flag are
same as those of standard packet. Checksum field is the checksum value of
preceding 13 bytes.
Until firmware V1.3, SFM3000/3500 modules respond both standard and network
packets regardless of Network Mode system parameter. However, since firmware V1.4,
the modules only respond to 15 byte network packets if Network Mode system
parameter is on. See Network Mode system parameter for details.
Bytes 1 2 1 4 4 1 1 1
All the modules in the network process the broadcast packet, but do not send
response packet to prevent packet collisions. Therefore, if the host wants to confirm
that the broadcast request is handled correctly, it should send another request
packet to each module using Network Packet Protocol. There is only one exception
to this rule. See ID command for details.
Broadcast Packet Protocol is provided for SFM3000 / 3500 / 4000 / 5000 / 5500 /
6020 / 6030 / 6050 series only. The 13 byte broadcast packet protocol introduced in
V1.3 firmware is not supported any longer. Three types of packet protocol can be
summarized as follows:
0x41(Terminal
Broadcast 15 1 to N Network X
ID: 0x00)
0x30 : infinite
0x31 : 1 second
Timeout …
Timeout 0x62
period *0x3A : 10 seconds
0x44 : 20 seconds
Template size.
When the
Encryption
Template Size(1) 0x64 Integer between 256 and *384(4)
Mode is on, it
should be a
multiple of 32.
0x30 : 1 time
0x31 : 1/100(5)
0x32 : 1/1,000(5)
0x33 : 1/10,000
0x34 : 1/100,000
0x35 : 1/1,000,000
0x3D : SFMSlim
Firmware Firmware
0x6E 4 bytes character
Version version
Module serial
Serial Number 0x6F Integer (4 bytes)
number
Current
number of
Enrolled Finger 0x73 Integer (4 bytes)
fingerprints
enrolled
The available
number of
Available Finger 0x74 fingerprints Integer (4 bytes)
that can be
enrolled
Enable
Send Scan sending 0x30 : No SCAN_SUCCESS message
0x75
Success SCAN_SUCCES *0x31 : Send SCAN_SUCCESS message
S response
Flag for
rotating sensor *0x30 : Upright image
Rotate Image 0x77
image in 0x31 : Upside down image
capture
0x31: 15 degree
* 0x32: 30 degree
Maximum
allowable 0x33: 45 degree
Rotation(1) 0x78
rotation for 0x34: 60 degree
matching
0x35: 75 degree
0x36: 90 degree
Scan always
fingerprint
images for
identification
on idle state *0x30 : Normal mode
In SFM Slim
(10) 0x31 : Free scan mode ((10) Red LED)
Free Scan 0x84 module, there (10)
0x32 : Free scan mode (Touch only)
are 3 kind Free
Scan mode – (10)
0x33 : Free scan mode (Green LED)
Red LED,
Green LED,
only Touch
modes
Save enrolled
templates at *0x30 : Permanent enrollment
Provisional Enroll 0x85 flash memory
permanently 0x31 : Provisional enrollment
or not
Pass or fail
Pass When when *0x30 : Fail when DB is empty
0x86
Empty fingerprint DB 0x31 : Pass when DB is empty
is empty
*0x30 : No delay
0x31 : 20 msec
Delay for …
Response Delay 0x87 response
command 0x35 : 100 msec
0x30 : infinite
0x31 : 1 second
Timeout
Matching period for …
0x88
Timeout matching in *0x33: 3 seconds
identification
…
0x3A : 10 seconds
0x44 : 20 seconds
Tune optical
Lighting sensors based *0x30: Outdoor
0x90
Condition(1) on lighting 0x31: Indoor
conditions
0x30: Normal
*0x36: Automatic
*0x30: Suprema
Liver Finger
Detection 4bytes character
LVID(11) 0xA2
(LFD) Version (since firmware v3.5.0 or later supported)
Identifier
Configuration
Code Type Valid Values Default Value
0x30 : infinite
0x31 : 1 second
… 0x3A : 10 seconds
0x62 Read/Write
0x3A : 10 seconds
…
0x44 : 20 seconds
Compatibility
SFM 3000 / 3500 / 4000 / 5000 / 5500 / 6000 Series & SFMSlim
Configuration
Code Type Valid Values Default Value
Compatibility
SFM 3000 / 3500 / 4000 / 5000 / 5500 / 6000 Series & SFMSlim
• Two Times(0x31 and 0x32): Enrolls a fingerprint template with two scanned
images. In this mode, the two fingerprint images are compared to each other. If
two images do not match, they are rejected. If they match, the one with better
quality will be enrolled. By enhancing the quality of enrolled templates, the
authentication performance will be improved compared to the One Time mode.
This mode is also classified into two sub modes according to the way in which the
second scanning is initiated. In 0x31, the module will start the second scanning
automatically. In 0x32, the second scanning will be started after the host sends
another request.
• Two Templates(0x41 and 0x42): Enrolls two fingerprint templates. The enrollment
process is identical to the Two Times mode. However, instead of selecting one of
the two templates, the module will enroll both of them. By enrolling two
templates for each user ID, the authentication performance will be improved
further than the Two Times mode. This mode is also classified into two sub modes
according to the way in which the second scanning is initiated.
Configuration
Code Type Valid Values Default Value
0x30 : 1 time 2
0x65 Read/Write
0x31 : 2 times ( 1 request command & 2 response templates(0x41)
Compatibility
These FAR values are for 1:1 matching. When identification commands are used for 1:N
matching, the FAR would become higher. Therefore, we recommend that users set
higher security level – lower FAR value – for 1:N matching, especially when more than
hundreds of templates are stored on a module.
Since V1.6 firmware, automatic security levels have been added. With these settings,
the module adjusts security level for identification automatically as the number of
enrolled templates changes. The following table shows the relationships between the
automatic security levels and the number of enrolled templates. For example, when
the security level is Automatic Secure(0x51) and the number of enrolled templates is
500, the actual FAR for identification will be 1/10,000,000. The security level for
verification is not changed.
Identification (1:N)
Automatic Verification
Level (1:1)
1~9 10 ~ 99 100 ~ 999 1000 ~
More
1/1,000,000 1/1,000,000 1/10,000,000 1/100,000,000 1/100,000,000
Secure(0x52)
Configuration
Code Type Valid Values Default Value
0x31 : 1/100(2)
0x34 : 1/100,000
0x35 : 1/1,000,000
0x36 : 1/10,000,000(1)
0x40 : 3/100(1)(2)
0x41 : 3/1,000(1)(2)
0x43 : 3/100,000(1)
0x44 : 3/1,000,000(1)
0x45 : 3/10,000,000(1)
0x46 : 3/100,000,000(1)
Compatibility
Configuration
Code Type Valid Values Default Value
Compatibility
Configuration
Connected
Code Type Valid Values Description
Platform
Compatibility
Regardless of this parameter, modules process only 8 bit gray images. Therefore, to
enroll, identify, or verify fingerprint images, they should be always in 8 bit gray format.
Also support Wavelet Scalar Quantization (WSQ) : Fingerprint Image Compression
Specification.
Configuration
Code Type Valid Values Default Value
Compatibility
Configuration
Code Type Valid Values Default Value
Compatibility
Since firmware V1.4, the first character represents the model number of the module.
SFM3020-OP ‘C’
SFM3030-OD ‘D’
SFM3000 series SFM3040-OL ‘A’
SFM3050-TC ‘F’
SFM3050-TC2S ‘F’
SFM3520-OP ‘C’
SFM3530-OD ‘D’
SFM3500 series ‘B’
SFM3540-OL
SFM3550-TC ‘F’
SFM4000-TS4 ‘G’
SFM4000 series ‘C’
SFM4020-OP ‘H’
SFM5520-OP5 ‘C’
SFM5500 series SFM5530-OC4 ‘E’ ‘D’
SFM5550-TC ‘F’
SFM6020-OP6 ‘C’
SFM6000
SFM6030-OC6 ‘G’ ‘D’
series
SFM6050-T2S ‘F’
For example, if the firmware version is V1.9 for SFM3020-OP module, 0x41313943 –
ASCII codes for ‘A’, ‘1’, ‘9’, and ‘C’ – will be returned.
Compatibility
If module does not have a serial number, it will not function normally.
Configuration
Compatibility
Also SFM6000 / SFMSlim can select USB interface does not care the baud rate.
Notice) UART baud rate is dependency on RS232 chip, so be careful if you want to change
the baud rate.
Configuration
Code Type Valid Values Default Value
Compatibility
Configuration
Code Type Valid Values Default Value
Compatibility
Configuration
Code Type Valid Values Default Value
Compatibility
Configuration
Code Type Valid Values Default Value
Compatibility
Configuration
Code Type Valid Values Default Value
Compatibility
should be converted to ASCII format first before being sent to the module. Response
0x40, 0x01, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x71, 0xE4, 0x0A
0x34, 0x30, 0x30, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x33, 0x32,
0x30 0x30, 0x30, 0x30, 0x30, 0x30, 0x37, 0x31, 0x45, 0x34, 0x30, 0x41
Configuration
Code Type Valid Values Default Value
Compatibility
Configuration
Code Type Valid Values Default Value
Compatibility
Configuration
Code Type Valid Values Default Value
0x31: 15 degree
0x32: 30 degree
0x33: 45 degree
0x78 Read/Write 0x32: 30 degree
0x34: 60 degree
0x35: 75 degree
0x36: 90 degree
Compatibility
Configuration
Code Type Valid Values Default Value
Compatibility
Since firmware V1.8, this parameter applies only when enrolling fingerprints. In other
cases such as matching fingerprints, it has no effect.
Since firmware V2.0, new quality measure algorithm is added. The new algorithm
provides more realistic score for low quality fingerprints which are expected hard to
be recognized; too small size, too narrow valleys, too wet or dry condition, with too
many creases, without core, or etc. The new quality measurement algorithm is
strongly recommended to be used to decrease the false rejection rate, and can be
enabled by setting the “Image Quality” parameter as one of values between 0x34
(Weak (V2)) and 0x37 (Strongest (V2)).
Configuration
Code Type Valid Values Default Value
Compatibility
Configuration
Code Type Valid Values Default Value
Compatibility
Network mode system parameter also determines which packet protocols are used.
Single(0x30) O O O
Network(0x30/0x31) X O O
Configuration
Default
Code Type Valid Values
Value
SFM
SFM3500/SFM5500
3000/4000/5000/60x0 0x30 :
Compatibility
Configuration
Code Type Valid Values Default Value
0x31 : Free scan mode ((*) Red LED) 0x30 : Normal mode
0x84 Read/Write
(*)
0x32 : Free scan mode (Touch only)
(*)
0x33 : Free scan mode (Green LED)
Compatibility
Configuration
Code Type Valid Values Default Value
Compatibility
Configuration
Code Type Valid Values Default Value
Compatibility
Configuration
Code Type Valid Values Default Value
0x30 : No delay
0x31 : 20 msec
… 0x30 : No delay
0x87 Read/Write
0x35 : 100 msec
…
0x3A : 200 msec
Compatibility
Configuration
Code Type Valid Values Default Value
0x30 : infinite
0x31 : 1 second
… 0x33 : 3 seconds
0x88 Read/Write
0x3A : 10 seconds
…
0x44 : 20 seconds
Compatibility
Configuration
Code Type Valid Values Default Value
Compatibility
Configuration
Code Type Valid Values Default Value
0x30 : No check
0x31 : Above 1 mm away
… 0x30 : No check
0x8A Read/Write
0x35 : Above 5 mm away
…
0x3A: Above 10 mm away
Compatibility
SFM 2000 / 3000 / 3500 / 4000 / 5000 / 5500 / 6000 Series / SFMSlim
Configuration
Code Type Valid Values Default Value
0x30 : Outdoor
0x30 : Outdoor
0x90 Read/Write (* Until V1.4 firmware, the default had been
0x31 : Indoor
Indoor)
Compatibility
Configuration
Code Type Valid Values Default Value
0x30 : No delay
0x31 : 1 second
0x31 : 1 second
0x91 Read/Write (* Until V1.4 firmware, the default had
…
been No delay.)
0x40 : 10 seconds
Compatibility
1 ~ 99 Normal
1 ~ 699 Normal
Configuration
0x30 : Normal
0x31 : Fast Mode 1
0x36 : Automatic
0x93 Read/Write …
0x35 : Fast Mode 5(Fastest)
0x36 : Automatic
Compatibility
Configuration
Code Type Valid Values Default Value
Compatibility
Configuration
Code Type Valid Values Default Value
0x30 : Suprema
*0x30 : Suprema
0x96 Read/Write 0x31 : ISO 19794-2
0x32 : ANSI 378
Compatibility
Configuration
Code Type Valid Values Default Value
Compatibility
Configuration
Code Type Valid Values Default Value
Compatibility
SFM 3000 / 3500 / 4000 / 5000 / 5500 Series, (1) = SFM5060 and SFMSlim
Since firmware v2.0, this parameter is applicable to the module with OP4, OP6, OC4,
OC6, T1, TC1, TC2 and T2S sensor.
Configuration
Code Type Valid Values Default Value
Compatibility
Configuration
Code Type Valid Values Default Value
Compatibility
SFM4000 Series
Configuration
Code Type Valid Values Default Value
0: No timeout
0x9C Read/Write *0: No timeout
1000~: Timeout in msec
Compatibility
SFM4000 Series
The SFMSlim case is the Readonly parameter. The cable is set up as an interface
through which data communication is to be used.
Configuration
Code Type Valid Values Default Value
0x30: UART
0x9E Read/Write *0x30: UART
0x31: USB
Compatibility
The SFM Slim has a touch sensor for detection fingerprint. The sensitivity of the sensor
can be adjusted, the larger the value, the more sensitive.
Configuration
Code Type Valid Values Default Value
Compatibility
SFMSlim
CA 0x60 Cancel O O O
1
For SFM4000 only
SFM Series Packet Protocol Manual v3.5.0 70
VI 0x09 Verify by image O O O
DW with administrator’s
DWA 0x73 X O X
verification
Table 2 Command
Request Command
Field Data Description
Command 0x01
Param NULL
Checksum #
Response Command
Field Data Description
Command 0x01
Size NULL
0x61 SUCCESS
Error 0x69 NOT_FOUND
0x80 BUSY
Checksum #
Compatibility
Example
0x40, 0x01, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x71, 0xE4, 0x0A
Request command
Field Data Description
Command 0x02
Param NULL
Size NULL
Flag NULL
Checksum #
Response command
Field Data Description
Command 0x02
Param NULL
Size NULL
0x61 SUCCESS
Error
0x80 BUSY
Checksum #
Compatibility
Request command
Field Data Description
Command 0x03
Param NULL
Size NULL
Checksum #
Response command
Field Data Description
Command 0x03
Parameter
Size See System Parameter Table
value
0x61 SUCCESS
Error
0x69 NOT_FOUND
Checksum #
SUCCESS The value of the requested parameter ID has been successfully read.
Compatibility
Request command
Field Data Description
Command 0x1A
Param NULL
Size NULL
Flag NULL
Checksum #
Response command
Field Data Description
Command 0x1A
Param NULL
Size NULL
0x61 SUCCESS
0x63 SCAN_FAIL
Error
0x75 UNSUPPORTED
0x80 BUSY
Checksum #
Compatibility
Request command
Field Data Description
Command 0x04
Param NULL
Size NULL
Flag NULL
Checksum #
Response command
Field Data Description
Command 0x04
Sensor
Size status code (*) SFM6000, SFM Slim Sensor status code
(*)
Checksum #
Status code
Status Data Description
Error code
Error code Description
Compatibility
Request command
Field Data Description
Command 0x60
Size NULL
Flag NULL
Checksum #
Response command
Field Data Description
Command 0x60
Param NULL
Size NULL
Checksum #
Error code
Error code Description
Compatibility
1. Host sends ID command and a list of user IDs which were received in previous ID
requests. It also specifies maximum delay parameter to minimize the possibility of
packet collisions.
2. Each module checks the user ID lists and returns its user ID if it is not included in the
list. Before sending a response packet, each module will wait for a random period less
than the maximum delay parameter.
3. Host receives response packets and adds new IDs to the list.
Request command
Field Data Description
Command 0x85
Flag NULL
Checksum #
First transmit the request command, then the user IDs which were received in
previous requests, and finally the 0x0A.
Module ID 2 byte
Compatibility
Example
There are three modules with ID 1, 2, and 3 respectively. The host sends ID command.
0x41, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x00, 0xE8, 0x03, 0x00, 0x00, 0x00, 0xB1,
0x0A
Module 1 returns.
Module 2 returns.
Module 3 returns.
The host receives the response packets of Module 1 and Module 2. The response
packet of Module 3 is lost due to packet collision. The host sends ID command again
with ID lists.
0x41, 0x00, 0x00, 0x85, 0x04, 0x00, 0x00, 0x00, 0xE8, 0x03, 0x00, 0x00, 0x00, 0xB5,
0x0A
Module 3 returns.
(Do not turn off the module while upgrading the firmware.)
Request command
Field Data Description
Command 0x62
Param NULL
Flag NULL
Checksum #
Response command
Field Data Description
Command 0x62
Param NULL
Size NULL
0x61 SUCCESS
Error 0x6D MEM_FULL
0x82 DATA_ERROR
Checksum #
Error code
Compatibility
Example
If the firmware size is 200KB and the data packet size is 16KB, the following packets
are transferred between the host and the module.
Num
Packet Data
Start Command of Flag Checksum End
Index Size
Packet
These data packet headers are followed by 16KB data and 4 byte checksum. If the
error code of the acknowledge packet is not DATA_OK(0x83), the host should stop
the upgrade process and start it again.
Request command
Field Data Description
Command 0xD0
Param NULL
Size NULL
Flag NULL
Checksum #
Response command
Field Data Description
Command 0xD0
Param NULL
Size NULL
Checksum #
Compatibility
Request command
Field Data Description
Command 0xB1
Param NULL
Size NULL
Flag NULL
Checksum #
Response command
Field Data Description
Command 0xB1
Param NULL
Size NULL
Checksum #
Compatibility
Request command
Field Data Description
Command 0xB0
Param NULL
Data
Size 16 byte password + 2 byte checksum = 18
size
Flag NULL
Checksum #
First transmit the request command, then 16 byte password, 2 byte checksum of the
password, and finally the 0x0A.
Response command
Field Data Description
Command 0xB0
Param NULL
Size NULL
0x61 SUCCESS
Error 0x6A NOT_MATCH
0x6B TRY_AGAIN
Checksum #
Compatibility
Request command
Field Data Description
Command 0xB2
Param NULL
Flag NULL
Checksum #
First transmit the request command, then 16 byte old password, 2 byte checksum of
the old password, 16 byte new password, 2 byte checksum of the new password, and
finally the 0x0A.
Response command
Field Data Description
Command 0xB2
Param NULL
Size NULL
0x61 SUCCESS
Error 0x6A NOT_MATCH
0x6B TRY_AGAIN
Checksum #
Compatibility
Request command
Field Data Description
Command 0xD2
Param NULL
Size NULL
Flag NULL
Checksum #
Response command
Field Data Description
Command 0xD2
Param NULL
Size NULL
Checksum #
Compatibility
SFM4000 Series
Users can specify one of six options for fine tuning the enrollment process. If users do
not specify any option – the FLAG field of the packet is NULL, the module does not
SFM Series Packet Protocol Manual v3.5.0 103
care about duplication of a user ID and always creates or overwrites with new
templates. The user ID “0x0000” is not allowed, since it is pre-assigned for internal
use.
• ADD_NEW: Adds another fingerprint to the same user ID. The maximum number
of templates per user is 10. By enrolling more templates, users can expect better
authentication performance. FINGER_LIMIT error will be returned if the number
exceeds the limit.
• CHECK_ID: Before enrolling, checks if the user ID has already some templates. If it
does, EXIST_ID will be returned. This option is useful when users do not want to
overwrite existing templates.
• CHECK_FINGER: Before enrolling, checks if the same fingerprint is already
enrolled. If the identification succeeds, return EXIST_FINGER error. If the
identification fails, continue enroll process with ADD_NEW option.
• AUTO_ID: The user ID will be assigned automatically by the module.
• CHECK_FINGER_AUTO_ID: Before enrolling, checks if the same fingerprint is
already enrolled. If the identification succeeds, return EXIST_FINGER error. If the
identification fails, continue enroll process with AUTO_ID option.
• ADD_DURESS: Adds another fingerprint as duress one to the specified user ID.
Under duress, users can authenticate with duress finger to notify the threat. When
duress finger is matched, the module will return DURESS_FINGER error code and
write a log. Users can also setup output signals for duress events. When enrolling,
the duress finger should not match with non-duress fingerprints of the same ID.
If it is the case, EXIST_FINGER error code will be returned. This option is valid only
for SFM35X0.
Commands like enroll, verify and identify may receive two response commands. The
first command comes in the intermediate stage, notifying image scanning
completed and the other command notifies process result. If you do not want to
receive the intermediate command, you can disable it by writing ‘0x30’ to the system
parameter SEND_SCAN_SUCCESS.
In the process of enrollment, if a user does not put his/her finger on the sensor, the
module will send a timeout message and ends the enrollment process.
Host Module
ES
CESS
_SUC
SCAN
ESS
SUCC
Enrollment
completed
Host Module
ES
ESS
AN_SUCC
SC
ESS
SUCC
First enrollment
completed
Finger placed on sensor
ESS
AN_SUCC
SC
ESS
SUCC
Enrollment
completed
ES
ESS
SUCC
First enrollment
completed
Finger placed on sensor
ESS
SUCC
Enrollment
complete
Host Module
ES
SS
SUCCE
First enrollment
completed
CONTIN
UE
ESS
SUCC
Enrollment
completed
ES
OUT
TIME_
Enrollment
failed
Host Module
ES
ESS
SUCC
First enrollment
completed
_OUT
TIME
Enrollment
failed
Command 0x05
Param User ID
Size NULL
0x71 ADD_NEW
0x79 AUTO_ID
0x74 CONTINUE
Flag 0x70 CHECK_ID
0x84 CHECK_FINGER(1)
0x85 CHECK_FINGER_AUTO_ID(1)
0x92 ADD_DURESS(2)
Checksum #
Response command
Field Data Description
Command 0x05
Param User ID
Image
Size Score 0 ~ 100
Quality
( 0x62 ) ( SCAN_SUCCESS )
0x63 SCAN_FAIL
0x6C TIME_OUT
Error 0x61 SUCCESS
0x6B TRY_AGAIN
0x6D MEM_FULL
0x72 FINGER_LIMIT
Checksum #
Error code
Error code Description
FINGER_LIMIT The number of fingerprints enrolled in same ID exceeds its limit (10).
INVALID_ID The requested user ID is invalid. Note that ‘0x0000’ cannot be used.
All the error codes above are sent at the end of process, except “SCAN_SUCCESS,”
which appears in an intermediate stage.
Compatibility
Example
0x40, 0x05, 0x23, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x69, 0x0A
0x40, 0x05, 0x23, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0xDA, 0x0A
Timelines of ESA:
1. When administrator’s verification fails (SEND_SCAN_SUCCESS = 0x31)
Host Module
ESA
ESS
AN_SUCC
SC
H
MATC
NOT_
Verification
failed.
ESA
CESS
_SUC
SCAN
INUE
CONT
Verification
succeed
ES processing starts..
Host Module
ESA
No administrator
TED
PPOR
UNSU
Verification failed
ESA
No user
UE
CONTIN
Verificatin succeed
ES processing starts..
Request command
Field Data Description
Command 0x70
Param User ID
Size NULL
0x71 ADD_NEW
0x79 AUTO_ID
0x74 CONTINUE
Flag 0x70 CHECK_ID
0x84 CHECK_FINGER
0x85 CHECK_FINGER_AUTO_ID
0x92 ADD_DURESS
Checksum #
Response command
Field Data Description
Command 0x70
Param User ID
( 0x62 ) ( SCAN_SUCCESS )
0x63 SCAN_FAIL
0x74 CONTINUE
0x6C TIME_OUT
0x61 SUCCESS
0x6B TRY_AGAIN
Error 0x6D MEM_FULL
0x72 FINGER_LIMIT
0x76 INVALID_ID
0x6E EXIST_ID
0x6A NOT_MATCH
0x75 UNSUPPORTED
0x86 EXIST_FINGER
Checksum #
Error code
Error code Description
FINGER_LIMIT The number of fingerprints enrolled in same ID exceeds its limit (10).
INVALID_ID The requested user ID is invalid. Note that ‘0x0000’ cannot be used.
All the error codes above are sent at the end of process, except “SCAN_SUCCESS” and
“CONTINUE,” which appear in an intermediate stage.
Compatibility
Request command
Field Data Description
Command 0x06
Param User ID
0x71 ADD_NEW
0x79 AUTO_ID
0x70 CHECK_ID
Flag
0x84 CHECK_FINGER
0x85 CHECK_FINGER_AUTO_ID
0x92 ADD_DURESS
Checksum #
First transmit the request command, then the raw data (fingerprint image) and finally
the 0x0A.
Response command
Field Data Description
Command 0x06
( 0x62 ) ( SCAN_SUCCESS )
0x61 SUCCESS
0x6B TRY_AGAIN
0x6D MEM_FULL
Error
0x72 FINGER_LIMIT
0x76 INVALID_ID
0x6E EXIST_ID
0x86 EXIST_FINGER
Checksum #
Compatibility
Example
When enrolling a fingerprint by transmitting image data of 8,000 (0x1F40) bytes with
a user ID,‘0x0123’
0x40, 0x06, 0x23, 0x01, 0x00, 0x00, 0x40, 0x1F, 0x00, 0x00, 0x00, 0xC9, 0x0A, 0x**, 0x**, … ,
0x**, 0x0A
Request command
Field Data Description
Command 0x80
Param User ID
0x71 ADD_NEW
0x79 AUTO_ID
0x70 CHECK_ID
Flag
0x84 CHECK_FINGER
0x85 CHECK_FINGER_AUTO_ID
0x92 ADD_DURESS
Checksum #
Response command
Field Data Description
Command 0x80
Param User ID
Image
Size Score 0 ~ 100
Quality
( 0x62 ) ( SCAN_SUCCESS )
0x61 SUCCESS
Error
0x6B TRY_AGAIN
0x6D MEM_FULL
Checksum #
Error code
Error code Description
FINGER_LIMIT The number of fingerprints enrolled in same ID exceeds its limit (10).
INVALID_ID The requested user ID is invalid. Note that ‘0x0000’ cannot be used.
All the error codes above are sent at the end of process, except “SCAN_SUCCESS” and
“DATA_OK,” which appear in an intermediate stage.
Compatibility
recommended because of its higher reliability inherited from the Extended Data
Request command
Field Data Description
Command 0x07
Param User ID
0x71 ADD_NEW
0x79 AUTO_ID
0x70 CHECK_ID
Flag
0x84 CHECK_FINGER
0x85 CHECK_FINGER_AUTO_ID
0x92 ADD_DURESS(1)
Checksum #
First transmit the request command, then the fingerprint template, and finally the
0x0A.
Response command
Field Data Description
Command 0x07
Param User ID
( 0x62 ) ( SCAN_SUCCESS )
0x61 SUCCESS
0x6B TRY_AGAIN
0x6D MEM_FULL
Error
0x72 FINGER_LIMIT
0x76 INVALID_ID
0x6E EXIST_ID
0x86 EXIST_FINGER
Checksum #
Compatibility
Example
0x40, 0x07, 0x23, 0x01, 0x00, 0x00, 0x90, 0x01, 0x00, 0x00, 0x00, 0x8E, 0x0A, 0x**, 0x**, … ,
0x**, 0x0A
conforms to the Data Transfer Protocol. See Appendix B Extended Data Transfer
Protocol.
Request command
Field Data Description
Command 0x87
Param User ID
0x71 ADD_NEW
0x79 AUTO_ID
0x70 CHECK_ID
Flag
0x84 CHECK_FINGER
0x85 CHECK_FINGER_AUTO_ID
0x92 ADD_DURESS(1)
Checksum #
Response command
Field Data Description
Command 0x87
Param User ID
( 0x62 ) ( SCAN_SUCCESS )
0x61 SUCCESS
0x6B TRY_AGAIN
0x6D MEM_FULL
0x72 FINGER_LIMIT
Error
0x76 INVALID_ID
0x6E EXIST_ID
0x82 DATA_ERROR
0x83 DATA_OK
0x86 EXIST_FINGER
Checksum #
Compatibility
Example
After the request packet, send three 384-byte templates by Extended Data Transfer
Protocol. The number of enrolled templates will be 3.
Request command
Field Data Description
Command 0x1C
Param NULL
Size NULL
0x71 ADD_NEW
0x74 CONTINUE
0x70 CHECK_ID
Flag
0x84 CHECK_FINGER
0x85 CHECK_FINGER_AUTO_ID
0x92 ADD_DURESS
Checksum #
Response command
Field Data Description
Command 0x1C
Param User ID
( 0x62 ) ( SCAN_SUCCESS )
0x63 SCAN_FAIL
Error
0x6C TIME_OUT
0x61 SUCCESS
Checksum #
Error code
Error code Description
FINGER_LIMIT The number of fingerprints enrolled in same ID exceeds its limit (10).
INVALID_ID The requested user ID is invalid. Note that ‘0x0000’ cannot be used.
All the error codes above are sent at the end of process, except “SCAN_SUCCESS,”
which appears in an intermediate stage.
Compatibility
Request command
Field Data Description
Command 0x71
Param NULL
Size NULL
0x71 ADD_NEW
0x74 CONTINUE
0x70 CHECK_ID
Flag
0x84 CHECK_FINGER
0x85 CHECK_FINGER_AUTO_ID
0x92 ADD_DURESS
Checksum #
Response command
Field Data Description
Command 0x71
Param User ID
( 0x62 ) ( SCAN_SUCCESS )
Error 0x63 SCAN_FAIL
0x74 CONTINUE
Checksum #
Error code
Error code Description
FINGER_LIMIT The number of fingerprints enrolled in same ID exceeds its limit (10).
INVALID_ID The requested user ID is invalid. Note that ‘0x0000’ cannot be used.
All the error codes above are sent at the end of process, except “SCAN_SUCCESS” and
“CONTINUE,” which appear in an intermediate stage.
SFM Series Packet Protocol Manual v3.5.0 130
Compatibility
Request command
Field Data Description
Command 0x08
Param User ID
Size NULL
Flag NULL
Checksum #
Response command
Field Data Description
Command 0x08
Param User ID
( 0x62 ) ( SCAN_SUCCESS )
0x63 SCAN_FAIL
0x6C TIME_OUT
0x61 SUCCESS
Error 0x6B TRY_AGAIN
0x69 NOT_FOUND
0x6A NOT_MATCH
0x90 REJECTED_ID
0x91 DURESS_FINGER(1)
Checksum #
Error code
Error code Description
All the error codes above are displayed at the end of the process, except
“SCAN_SUCCESS,” which appears at the intermediate stage.
Compatibility
Request command
Field Data Description
Command 0x09
Param User ID
Flag NULL
Checksum #
First transmit the request command, then the fingerprint image, and finally the 0x0A
Response command
Field Data Description
Command 0x09
Param User ID
( 0x62 ) ( SCAN_SUCCESS )
0x61 SUCCESS
Error 0x6B TRY_AGAIN
0x69 NOT_FOUND
0x6A NOT_MATCH
Checksum #
Compatibility
Request command
Field Data Description
Command 0x82
Param User ID
Image
Size
size
Flag NULL
Checksum #
Response command
Field Data Description
Command 0x82
Param User ID
( 0x62 ) ( SCAN_SUCCESS )
0x61 SUCCESS
0x6B TRY_AGAIN
Error 0x69 NOT_FOUND
0x6A NOT_MATCH
0x82 DATA_ERROR
0x83 DATA_OK
Checksum #
Error code
Error code Description
All the error codes above are displayed at the end of the process, except
“SCAN_SUCCESS” and “DATA_OK,” which appear at the intermediate stage.
Compatibility
Request command
Field Data Description
Command 0x10
Param User ID
Flag NULL
Checksum #
First transmit the request command, then the fingerprint template, and finally the
0x0A
Response command
Field Data Description
Command 0x10
Param User ID
( 0x62 ) ( SCAN_SUCCESS )
0x61 SUCCESS
0x6B TRY_AGAIN
Error
0x69 NOT_FOUND
0x6A NOT_MATCH
0x90 REJECTED_ID
Checksum #
Compatibility
Request command
Field Data Description
Command 0x1D
Param NULL
Size NULL
Flag NULL
Checksum #
Response command
Field Data Description
Command 0x1D
Param User ID
( 0x62 ) ( SCAN_SUCCESS )
0x63 SCAN_FAIL
0x6C TIME_OUT
0x61 SUCCESS
Error 0x6B TRY_AGAIN
0x69 NOT_FOUND
0x6A NOT_MATCH
0x90 REJECTED_ID
0x91 DURESS_FINGER(1)
Checksum #
Error code
Error code Description
All the error codes above are displayed at the end of the process, except
“SCAN_SUCCESS,” which appears at the intermediate stage.
Compatibility
Request command
Field Data Description
Command 0x22
Template
Size
size
Flag NULL
Checksum #
First transmit the request command, then each fingerprint templates followed by
0x0A.
Response command
Field Data Description
Command 0x22
Param NULL
Size NULL
( 0x62 ) ( SCAN_SUCCESS )
0x63 SCAN_FAIL
Error
0x6C TIME_OUT
0x61 SUCCESS
Checksum #
Error code
Error code Description
Compatibility
Request command
Field Data Description
Command 0x6B
Param User ID
Flag NULL
Checksum #
Response command
Field Data Description
Param NULL
Size NULL
0x61 SUCCESS
0x69 NOT_FOUND
Error
0x75 UNSUPPORTED
0x76 INVALID_ID
Checksum #
Error code
Error code Description
Compatibility
Request command
Field Data Description
Command 0x6C
Param User ID
Size NULL
Flag NULL
Checksum #
Response command
Field Data Description
Command 0x6C
Param NULL
0x61 SUCCESS
Error 0x69 NOT_FOUND
0x76 INVALID_ID
Checksum #
Error code
Error code Description
Compatibility
Request command
Field Data Description
Command 0x11
Size NULL
Flag NULL
Checksum #
Response command
Field Data Description
Command 0x11
( 0x62 ) ( SCAN_SUCCESS )
0x63 SCAN_FAIL
0x6C TIME_OUT
Error
0x61 SUCCESS
0x6B TRY_AGAIN
0x69 NOT_FOUND
Checksum #
Error code
Error code Description
All the error codes above are displayed at the end of the process, except
“SCAN_SUCCESS,” which appears at the intermediate stage.
Compatibility
Request command
Field Data Description
Command 0x12
Flag NULL
Checksum #
First transmit the request command, then the fingerprint image(RAW data), and
finally the 0x0A
Response command
Field Data Description
Command 0x12
( 0x62 ) ( SCAN_SUCCESS )
Error
0x61 SUCCESS
Checksum #
Compatibility
Request command
Field Data Description
Command 0x81
Flag NULL
Checksum #
Response command
Field Data Description
Command 0x81
( 0x62 ) ( SCAN_SUCCESS )
0x61 SUCCESS
0x6B TRY_AGAIN
Error
0x69 NOT_FOUND
0x7A TIMEOUT_MATCH
0x82 DATA_ERROR
Checksum #
Error code
Error code Description
All the error codes above are displayed at the end of the process, except
“SCAN_SUCCESS” and “DATA_OK,” which appear at the intermediate stage.
Compatibility
Request command
Field Data Description
Command 0x13
Flag NULL
Checksum #
First transmit the request command, then the fingerprint template, and finally the
0x0A
Response command
Field Data Description
Command 0x13
( 0x62 ) ( SCAN_SUCCESS )
0x61 SUCCESS
Error
0x6B TRY_AGAIN
0x69 NOT_FOUND
Checksum #
Compatibility
Since Firmware v3.4 for SFM6000 series and SFMSlim, Fast erase mode is supported.
All templates are erased as 0xFF by the sector erase command basically. But it takes
a long time to erase according to the number of stored templates. If you use DA
command frequently, you can use the FAST_ERASE_MODE option. When you use the
DA command with 0x01 at flag field, all templates of the flash are overwritten as 0x00
instead of 0xFF. The 0x00 means garbage data and a sector of garbage data is erased
while the new templates are adding or updating. The FAST_ERASE_MODE is
approximately 7 times faster than normal erase mode. This option is only supported
for SFM6000 series and SFMSlim.
Request command
Field Data Description
Command 0x17
Param NULL
Size NULL
NULL
Flag
0x01 FAST_ERASE_MODE(1)
Checksum #
(1) This flag is available for SFM6000/Slim only. (It supported since firmware v3.4)
Response command
Field Data Description
Command 0x17
Param NULL
Checksum #
Error code
Error code Description
Compatibility
Request command
Field Data Description
Command 0x74
Param NULL
Size NULL
Flag NULL
Checksum #
Response command
Field Data Description
Command 0x74
Param NULL
Size NULL
( 0x62 ) ( SCAN_SUCCESS )
0x74 CONTINUE
Error 0x61 SUCCESS
0x6A NOT_MATCH
0x75 UNSUPPORTED
Checksum #
All the error codes above are displayed at the end of the process, except “CONTINUE,”
which appear at the intermediate stage.
Compatibility
Request command
Field Data Description
Command 0x16
Param User ID
NULL
Flag DELETE_ONLY_ONE(0x70)*
DELETE_MULTIPLE_ID(0x71)*
Checksum #
Response command
Field Data Description
Command 0x16
Param N/A
Checksum #
Error code
Error code Description
Compatibility
Example
0x0A 1 DELETE_ONLY_ONE(0x70)
Request command
Field Data Description
Command 0x1E
Size NULL
Flag NULL
Checksum #
Response command
Field Data Description
Command 0x1E
Size NULL
( 0x62 ) ( SCAN_SUCCESS )
0x63 SCAN_FAIL
0x6C TIME_OUT
Error
0x61 SUCCESS
0x6B TRY_AGAIN
0x69 NOT_FOUND
Checksum #
Error code
Error code Description
All the error codes above are displayed at the end of the process, except
“SCAN_SUCCESS,” which appears at the intermediate stage.
Compatibility
Request command
Field Data Description
Command 0x72
Size NULL
Flag NULL
Checksum #
Response command
Field Data Description
Command 0x72
Size NULL
( 0x62 ) ( SCAN_SUCCESS )
0x63 SCAN_FAIL
0x74 CONTINUE
Error 0x6C TIME_OUT
0x61 SUCCESS
0x6B TRY_AGAIN
0x69 NOT_FOUND
Checksum #
Error code
Error code Description
All the error codes above are displayed at the end of the process, except
“SCAN_SUCCESS” and “CONTINUE,” which appear at the intermediate stage.
Compatibility
Request command
Field Data Description
Command 0x1F
Param NULL
Size NULL
Flag NULL
Checksum #
Response command
Field Data Description
Command 0x1F
Param User ID
Size NULL
( 0x62 ) ( SCAN_SUCCESS )
0x61 SUCCESS
Error
0x69 NOT_FOUND
0x6C TIMEOUT
Checksum #
Error code
Error code Description
Compatibility
Request command
Field Data Description
Command 0x73
Param NULL
Size NULL
Flag NULL
Checksum #
Response command
Field Data Description
Command 0x73
Param User ID
Size NULL
( 0x62 ) ( SCAN_SUCCESS )
0x74 CONTINUE
0x61 SUCCESS
Error 0x69 NOT_FOUND
0x6C TIMEOUT
0x6A NOT_MATCH
0x75 UNSUPPORTED
Checksum #
Error code
Error code Description
All the error codes above are displayed at the end of the process, except “CONTINUE,”
which appear at the intermediate stage.
Compatibility
Request command
Field Data Description
Command 0x18
Flag NULL
Checksum #
Response command
Field Data Description
Command 0x18
Templates
Param The number of templates returned
count
0x61 SUCCESS
Error
0x76 INVALID_ID
Checksum #
First transmits the response command and then the user ID.
User ID User ID … User ID User ID 0x0A
(4byte) (4byte) (4byte) (4byte)
Error code
Error code Description
Compatibility
Example
User ID Data
0x40, 0x18, 0x03, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x61, 0xC8, 0x0A,
SFM Series Packet Protocol Manual v3.5.0 171
0x04, 0x03, 0x00, 0x00, 0x87, 0x05, 0x00, 0x00, 0x59, 0x88, 0x00, 0x00, 0x0A
Request command
Field Data Description
Command 0x86
Param 0 .
Maximum length of
Size If 0, it is the total size of data
data packet size
Flag NULL
Checksum #
Response command
Field Data Description
Command 0x86
0x61 SUCCESS
Error
0x6D MEM_FULL
Checksum #
Error code
Error code Description
Compatibility
Example
For example, Template 1 and Template 2 are enrolled to ID 1 and Template 1 is duress
finger. Template 3 and Template 4 are enrolled to ID2 and the administration level of
ID2 is ADMIN_ALL (0x03).
Since size parameter is 0, the module will send all the data in one data packet.
Request command
Field Data Description
Command 0x19
Param User ID
Size NULL
Flag NULL
Checksum #
Response command
Field Data Description
Command 0x19
Param User ID
0x6E EXIST_ID
Error
0x69 NOT_FOUND
Checksum #
Error code
Error code Description
Compatibility
Request command
Field Data Description
Command 0x23
Param NULL
Size NULL
Flag NULL
Checksum #
Response command
Field Data Description
Command 0x23
Param NULL
Size NULL
0x61 SUCCESS
Error
0x69 NOT_FOUND
Checksum #
Error code
Error code Description
Compatibility
Request command
Field Data Description
Command 0x24
Param NULL
Size NULL
Flag NULL
Checksum #
Response command
Field Data Description
Command 0x24
Param NULL
Size NULL
0x61 SUCCESS
Error
0x69 NOT_FOUND
Checksum #
Error code
Error code Description
Compatibility
First execute such commands as ES, VS and IS in order to use this command. The
fingerprint images in this process are transmitted in a raw data format as
SEND_IMAGE structures, of which has a structure as follows. In order to save any
fingerprint images in the module, first execute the ES, VS and IS commands. Without
executing these commands, the module cannot be updated.
int width;
int height;
int compressed;
int encrypted;
int binary;
int img_len;
int template_len;
char buffer[BUFFER_LENGTH];
} image_t;
Compressed (4byte) In case of 4bit gray mode, starting point of actually transmitted
image is designated. Lower word is x coordinate and higher
word is y coordinate.
Request command
Field Data Description
Command 0x20
Param NULL
Size NULL
Flag NULL
Checksum #
Response command
Field Data Description
Command 0x20
Param NULL
Checksum #
First transmits the response command, then the image data, and finally the 0x0A
Error code
Error code Description
Compatibility
Example
0x40, 0x20, 0x00, 0x00, 0x00, 0x00, 0x9D, 0x1F, 0x00, 0x00, 0x61, 0x7D, 0x0A, 0xE0, 0x00,
0x00, 0x00, 0x20, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0x00, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEF, 0x2C, …, 0x1A,
0xFE, 0x0A
If the image format is binary, the data in the buffer of the SEND_IMAGE structures
will be 1byte data packed from 8 pixels of the image raw data sent by the sensor.
Below is an operation example to unpack the binary data with 1byte per 1 pixel.
void img_display_from_buffer()
{
unsigned char *uncomp_buffer,*img_buf,*ptr;
int len,i;
unsigned long uncomp_len;
image_t receive_img;
Request command
Field Data Description
Command 0x84
Maximum
Size Maximum length of a data packet body
length
Flag NULL
Checksum #
Response command
Field Data Description
Command 0x84
Param NULL
Checksum #
Error code
Error code Description
Compatibility
(1) SFM 3000 / 3500 / 4000 / 5000 / 5500 / 6000 Series / SFMSlim
Request command
Field Data Description
Command 0x15
Param NULL
Size NULL
Flag NULL
Checksum #
Response command
Field Data Description
Command 0x15
Param NULL
( 0x62 ) ( SCAN_SUCCESS )
0x63 SCAN_FAIL
Error
0x6C TIME_OUT
0x61 SUCCESS
Checksum #
First transmits the response command, then the image data, and finally the 0x0A
Compatibility
Request command
Field Data Description
Command 0x83
Param NULL
Flag NULL
Checksum #
Response command
Field Data Description
Command 0x83
Param NULL
( 0x62 ) ( SCAN_SUCCESS )
0x63 SCAN_FAIL
Error
0x6C TIME_OUT
0x61 SUCCESS
Checksum #
Error code
Compatibility
Request command
Field Data Description
Command 0x14
NULL
Param NULL denotes the latest fingerprint template created
User ID
Size NULL
Flag NULL
Checksum #
Response command
Field Data Description
Command 0x14
Param NULL
0x61 SUCCESS
Error 0x69 NOT_FOUND
0x74 CONTINUE
Checksum #
First transmit the response command, then the fingerprint template, and finally the
0x0A
Error code
Error code Description
If there are more than two fingerprint templates enrolled as one user ID, the host will
receive two response commands. If the error code of the first response command is
read CONTINUE, it means that there is one more fingerprint enrolled as the
corresponding user ID. Then, the host will receive the next packet instantly.
For example, if there are two fingerprint templates enrolled as one user ID, the
process order is as follows:
If the error code of the first response command is read “SUCCESS,” it means that there
are no more fingerprint templates enrolled as the corresponding user ID.
Compatibility
Request command
Field Data Description
Command 0x89
Checksum #
Response command
Field Data Description
Command 0x89
Param User ID
(Number of
templates to be
Size returned << 16) |
Template size
Checksum #
Error code
Error code Description
Compatibility
Request command
Field Data Description
Command 0x21
Param NULL
Size NULL
NULL
Flag If ADD_CHECKSUM option is given, the module
ADD_CHECKSUM(0x70)* will insert 4 byte checksum before the end
code(0x0A).
Checksum #
Response command
Field Data Description
Command 0x21
( 0x62 ) ( SCAN_SUCCESS )
0x63 SCAN_FAIL
Error
0x6C TIME_OUT
0x61 SUCCESS
Checksum #
First transmit the response command, then the fingerprint template, and finally the
0x0A. If ADD_CHECKSUM option is given, 4 byte checksum will be inserted before
0x0A. The checksum is calculated over the whole template data.
Error code
Error code Description
Compatibility
Example
The size of the returned data will be multiple of 32 bytes, since supported AES
encryption algorithm processes data based on 32 byte block.
If the module is not in encryption mode, the responding supplementary data will be
non-encrypted one of (challenge data + template data). The supplementary data
should be followed by EOP.
Request command
Field Data Description
Command 0x35
Size NULL
Flag NULL
Checksum #
Response command
Field Data Description
Command 0x35
Param NULL
( 0x62 ) ( SCAN_SUCCESS )
Error 0x63 SCAN_FAIL
0x6C TIME_OUT
Checksum #
First transmit the response command, then the fingerprint template, and finally the
0x0A
Error code
Error code Description
Compatibility
The request command should be followed by new key data of 32 bytes and packet
end code. Thus, 33 bytes data ( new key (32byte) + EOP( 0x0A ) ) should be provided
as the supplementary data.
Request command
Field Data Description
Command 0x34
Param NULL
Size NULL
Flag NULL
Checksum #
First transmits the request command, then the key data, and finally the 0x0A
Response command
Field Data Description
Command 0x34
Param NULL
Size NULL
Checksum #
Error code
Error code Description
Compatibility
Request command
Field Data Description
Command 0x31
Param NULL
Size NULL
Flag NULL
Checksum #
Response command
Field Data Description
Command 0x31
Size NULL
Checksum #
Compatibility
Request command
Field Data Description
Command 0x32
Flag NULL
Checksum #
First transmits the request command, then user data, and finally the 0x0A
Response command
Field Data Description
Command 0x32
Param NULL
Size NULL
0x61 SUCCESS
Error
0x75 UNSUPPORTED
Checksum #
Compatibility
Request command
Field Data Description
Command 0x33
Flag NULL
Checksum #
Response command
Field Data Description
Command 0x33
Param NULL
Checksum #
First transmits the response command, then user data, and finally the 0x0A
Compatibility
Request command
Field Data Description
Command 0x3A
Flag NULL
Checksum #
Response command
Field Data Description
Command 0x3A
Param NULL
Size NULL
Checksum #
Compatibility
Request command
Field Data Description
Command 0x3B
Param NULL
Size NULL
Flag NULL
Checksum #
Response command
Field Data Description
Command 0x3B
Checksum #
Compatibility
Request command
Field Data Description
Command 0x3C
Param NULL
Size NULL
Flag NULL
Checksum #
Response command
Field Data Description
Command 0x3C
Checksum #
Compatibility
Output function ID
Event 1 byte
( See OW command )
Date 3 byte YY MM DD
Time 3 byte hh mm ss
Request command
Field Data Description
Command 0x3D
Requested
Size
count
Flag NULL
Checksum #
Command 0x3D
Param NULL
0x61 SUCCESS
Error
0x75 UNSUPPORTED
Checksum #
First transmits the response command, then log data ( actual count x 16 bytes ), and
finally the 0x0A
Error code
Error code Description
Compatibility
Request command
Field Data Description
Command 0x3E
Size NULL
Flag NULL
Checksum #
Response command
Field Data Description
Command 0x3E
Size NULL
Checksum #
Compatibility
Custom Log
Description
Field
0x01: IN0
If the log is generated by an Input port, the respective values will
0x02: IN1
be used.
0x03: IN2
Request command
Field Data Description
Command 0x3F
0x00: Default
0x01: IN0
Size Custom field type
0x02: IN1
0x03: IN2
Checksum #
Response command
Command 0x3F
Size NULL
0x61 SUCCESS
Error
0x75 UNSUPPORTED
Checksum #
Error code
Error code Description
Compatibility
Request command
Field Data Description
Command 0xEC
Param NULL
Flag NULL
Checksum #
Response command
Field Data Description
Command 0xEC
Number of log
Param
records
Checksum #
Compatibility
Request command
Field Data Description
Command 0xEB
Param NULL
Size NULL
Flag NULL
Checksum #
Response command
Field Data Description
Command 0xEB
Param NULL
Size NULL
Checksum #
Compatibility
0x00 No action
Since firmware V1.4, WW, WR, WG, and WS commands are deprecated. It is highly
recommended that extended Wiegand protocol is used in place of these commands.
See Appendix C. Extended Wiegand Protocol and WWX, WRX, WGX, WSX, WPW, and
WPR commands.
Request command
Field Data Description
Command 0x41
Size FC code
Checksum #
Response command
SFM Series Packet Protocol Manual v3.5.0 225
Field Data Description
Command 0x41
Param NULL
Size NULL
0x61 SUCCESS
Error
0x75 UNSUPPORTED
Checksum #
Error code
Error code Description
Compatibility
Example
0x40, 0x41, 0x22, 0x00, 0x08, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0xAC, 0x0A
Request command
Field Data Description
Command 0x42
Param NULL
Size NULL
Checksum #
Response command
Field Data Description
Command 0x42
Size FC code
Checksum #
Compatibility
Request command
Field Data Description
Command 0x43
Size NULL
Flag NULL
Checksum #
Response command
Field Data Description
Command 0x43
Param Wiegand ID
Size FC code
0x61 SUCCESS
Error
0x69 NOT_FOUND
Checksum #
Compatibility
Request command
Field Data Description
Command 0x44
Param Wiegand ID
Size NULL
Flag NULL
Checksum #
Response command
Field Data Description
Command 0x44
Param NULL
Size NULL
Checksum #
Compatibility
Request command
Field Data Description
Command 0x68
Size Wiegand ID
Flag NULL
Checksum #
Command 0x68
Param NULL
Size NULL
0x61 SUCCESS
Error 0x6D MEM_FULL
0x75 UNSUPPORTED
Checksum #
Error code
Error code Description
Compatibility
Request command
Field Data Description
Command 0x69
Param NULL
Size NULL
Flag NULL
Checksum #
Response command
Field Data Description
Command 0x69
Checksum #
First transmits the response command, then mapping data ( number of mapping x
5 bytes ), and finally the 0x0A. The mapping data consists of 4 byte Wiegand ID and
1 byte input function. For example, Wiegand ID 0x2450 is mapped to DS(0x40), and
Wiegand ID 0x100 is mapped to ES(0x10), the mapping data will be as follows:
0x50 0x24 0x00 0x00 0x40 0x00 0x01 0x00 0x00 0x10
Compatibility
Request command
Field Data Description
Command 0x6A
Param NULL
Size NULL
Flag NULL
Checksum #
Response command
Field Data Description
Command 0x6A
Param NULL
Size NULL
Checksum #
Compatibility
Request command
Field Data Description
Command 0xC0
(Pulse Width in usec << 16) | If 0, use default values: 50usec width
Param
(Pulse interval in usec) and 2,000usec interval
Size The size of format definition data 0 if the format is 26 bit standard
Checksum #
First transmit the request command, then the format definition data, and finally the
0x0A.
Response command
Field Data Description
Command 0xC0
Param NULL
Size NULL
0x61 SUCCESS
Error
0x75 UNSUPPORTED
Checksum #
Compatibility
Request command
Field Data Description
Command 0xC1
Param NULL
Size NULL
Flag NULL
Checksum #
Response command
Field Data Description
Command 0xC1
0x61 SUCCESS
Error
0x69 NOT_FOUND
Checksum #
First transmits the response command and then the format definition data, and
finally 0x0A.
Compatibility
Request command
Field Data Description
Command 0xC2
Size NULL
Checksum #
Response command
Field Data Description
Command 0xC2
Higher 32 bit of
Param
Wiegand input
Lower 32 bit of
Size
Wiegand input
0x62 (SCAN_SUCCESS)
Error 0x61 SUCCESS
0x69 NOT_FOUND
Checksum #
Error code
Error code Description
Compatibility
Request command
Field Data Description
Command 0xC3
Flag NULL
Checksum #
Response command
Field Data Description
Command 0xC3
Param NULL
Size NULL
0x61 SUCCESS
Error
0x6C NOT_FOUND
Checksum #
Compatibility
Request command
Field Data Description
Command 0xC4
Checksum #
Response command
Field Data Description
Command 0xC4
Param NULL
Size NULL
0x61 SUCCESS
Error
0x75 UNSUPPORTED
Checksum #
Compatibility
Request command
Field Data Description
Command 0xC5
Param NULL
Flag NULL
Checksum #
Response command
Field Data Description
Command 0xC4
Size NULL
0x61 SUCCESS
Error 0x69 NOT_FOUND
0x75 UNSUPPORTED
Checksum #
Error code
Compatibility
Input function
0x00 Disable
Output mode
0x00 Disable
Advanced options
0x02 When matching fails, output the fail ID set by WFW command
Request command
Field Data Description
Command 0xC6
Advanced options
Size 0x01 Inverse parity on fail
0x02 Fail ID
Checksum #
Response command
Field Data Description
Command 0xC6
Param NULL
Size NULL
0x61 SUCCESS
Error
0x75 UNSUPPORTED
Checksum #
Error code
Error code Description
Compatibility
Request command
Field Data Description
Command 0xC7
Param NULL
Size NULL
Flag NULL
Checksum #
Response command
Field Data Description
Command 0xC7
Checksum #
Compatibility
Users can also assign tamper switch to an input port. When the tamper switch is on,
Tamper Switch On(0x64) event occurred. When it gets off, Tamper Switch Off(0x65)
event occurred. Both events are recorded in log, too.
Function ID Description
0x00 No action
0x60 Cancel
Request command
Field Data Description
Command 0x47
Param Function ID
10 ~ 10000 msec
Size Minimum time (If the input signal is shorter than this minimum
time, it will be ignored.)
Checksum #
Response command
Field Data Description
Command 0x47
Param NULL
Size NULL
0x61 SUCCESS
Error
0x75 UNSUPPORTED
Checksum #
Error code
Error code Description
Compatibility
0x40, 0x47, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x01, 0xA8, 0x0A
Request command
Field Data Description
Command 0x48
Param NULL
Size NULL
Checksum #
Response command
Field Data Description
Command 0x48
Param Function ID
0x61 SUCCESS
Error
0x75 UNSUPPORTED
Checksum #
Compatibility
Request command
Field Data Description
Command 0x49
Size NULL
Checksum #
Response command
Field Data Description
Command 0x49
0 Inactive
Param
1 Active
Size NULL
0x61 SUCCESS
Error
0x75 UNSUPPORTED
Checksum #
Compatibility
Request command
Field Data Description
Command 0x4A
Checksum #
Command 0x4A
Param NULL
Size NULL
0x61 SUCCESS
Error 0x6D MEM_FULL
0x75 UNSUPPORTED
Checksum #
Error code
Error code Description
Compatibility
(1) Assign Enroll Wait Finger(0x14) to LED0. The led will blink indefinitely with 500ms
period; t_delay(0), t_high(250), t_low(250), t_count(0).
0x40, 0x4A, 0x14, 0x00, 0x00, 0x00, 0xFA, 0x00, 0xFA, 0x00, 0x03, 0x95, 0x0A
(2) Assign Enroll Success(0x17) to LED1. The led will be on for 500ms; t_delay(0),
t_high(500), t_low(0), t_count(1).
0x40, 0x4A, 0x17, 0x01, 0x00, 0x00, 0xF4, 0x01, 0x00, 0x00, 0x04, 0x95B, 0x0A
Request command
Field Data Description
Command 0x4B
Param Event ID
Size NULL
Checksum #
Response command
Field Data Description
Command 0x4B
0x61 SUCCESS
Error 0x69 NOT_FOUND
0x75 UNSUPPORTED
Checksum #
Error code
Compatibility
Request command
Field Data Description
Command 0x4C
Param NULL
Size NULL
Checksum #
Response command
Field Data Description
Command 0x4C
Param NULL
0x61 SUCCESS
Error
0x75 UNSUPPORTED
Checksum #
First transmits the response command, then enabled event IDs, and finally the 0x0A
Compatibility
Request command
Field Data Description
Command 0x4D
0x00 Deactivate
Param
0x01 Activate
Size NULL
Checksum #
Response command
Field Data Description
Command 0x4D
Param NULL
Size NULL
0x61 SUCCESS
Error
0x75 UNSUPPORTED
Checksum #
Compatibility
Notice.) SFM6000 and SFMSlim don’t support Wiegand and Shared IO. The reason
for not using Shared IO is for stability of I/O.
When configuring Wiegand interface, one command for one GPIO among the
defined pair is enough for configuration.
In order to transfer the GPIO configuration between the module and the host, 8 byte
supplementary data is used for each input function, output function, or Wiegand
configurations. 4 words ( 2 bytes ) constitute the GPIO data, whose composition is as
follows.2
Third and fourth words in input mode are useless, except the “delete all by confirm”
function, which requires the third word for timeout interval.
For WAIT and PROCESSING output functions; interval and blinking are meaningless,
but the interval value should be positive value for effective configuration.
Request command
Field Data Description
Command 0x37
2
For the buzzer mode of SFM4000, refer to Appendix A-1.
SFM Series Packet Protocol Manual v3.5.0 272
Param GPIO ID | ( mode << 16 )
Flag NULL
Checksum #
First transmits the request command, then supplementary, and finally the 0x0A
Response command
Field Data Description
Command 0x37
Param GPIO ID
Size NULL
0x61 SUCCESS
Error
0x75 UNSUPPORTED
Checksum #
Error code
Error code Description
Compatibility
Example
When setting GPIO_0(0x0) as an input port(0x01) for enroll function(0x01) with active
SFM Series Packet Protocol Manual v3.5.0 273
high activation(0x01),
0x0001 0x0000
0x40, 0x37, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x79, 0x0A
0x0002 0x0007
1st word for 2nd word for 3rd word for 4th word for
Function Level Interval Blinking
0x40, 0x37, 0x07, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x81, 0x0A
The response packet is followed by supplementary data ( 8 * size ) + packet end code
( 0x0A ) if mode is not equal to disabled mode. The number of supplementary data
is always 1 for the input mode and it is the number of active output functions for the
output mode, respectively. For the shared I/O mode, first supplementary data is input
function.
Request command
Field Data Description
Command 0x36
Param GPIO ID
Size NULL
Flag NULL
Checksum #
Response command
Field Data Description
Command 0x36
0x61 SUCCESS
Error
0x75 UNSUPPORTED
Checksum #
First transmits the response command, then supplementary data, and finally the
0x0A.
Compatibility
Request command
Field Data Description
Command 0x38
Param NULL
Size NULL
Flag NULL
Checksum #
Response command
Field Data Description
Command 0x38
Param NULL
Size NULL
Checksum #
Compatibility
Request command
Field Data Description
Command 0x39
Param NULL
Size NULL
Flag NULL
Checksum #
Response command
Field Data Description
Command 0x39
Param NULL
Size NULL
Checksum #
Error code
Error code Description
Enroll Success
GPIO 4 Output Match Success
Delete Success
Enroll Fail
GPIO 5 Output Match Fail
Delete Fail
GPIO 7 Disable
ADMIN_NONE 0x00
Request command
Field Data Description
Command 0x65
Param User ID
Flag NULL
Checksum #
Response command
Field Data Description
Command 0x65
Param NULL
Size NULL
Checksum #
Error code
Error code Description
Compatibility
Request command
Field Data Description
Command 0x66
Param User ID
Size NULL
Flag NULL
Checksum #
Response command
Field Data Description
Command 0x66
Param NULL
0x61 SUCCESS
Error 0x69 NOT_FOUND
0x76 INVALID_ID
Checksum #
Error code
Error code Description
Compatibility
Request command
Field Data Description
Command 0x67
Param NULL
Size NULL
Flag NULL
Checksum #
Response command
Field Data Description
Command 0x67
Param NULL
Size NULL
Checksum #
Compatibility
Request command
Field Data Description
Command 0xA3
Param User ID
AUTH_FINGERPRINT
Size Authentication Mode AUTH_BYPASS
AUTH_REJECT
Flag NULL
Checksum #
Response command
Field Data Description
Command 0xA3
Param NULL
0x61 SUCCESS
0x69 NOT_FOUND
Error
0x75 UNSUPPORTED
0x76 INVALID_ID
Checksum #
Error code
Error code Description
Compatibility
Request command
Field Data Description
Command 0xA4
Param User ID
Size NULL
Flag NULL
Checksum #
Response command
Field Data Description
Command 0xA4
Param NULL
0x61 SUCCESS
Error 0x69 NOT_FOUND
0x76 INVALID_ID
Checksum #
Error code
Error code Description
Compatibility
Request command
Field Data Description
Command 0xA5
Param NULL
Size NULL
Flag NULL
Checksum #
Response command
Field Data Description
Command 0xA5
Param NULL
Size NULL
Checksum #
Compatibility
Request command
Field Data Description
Command 0xA6
Param NULL
Flag NULL
Checksum #
Response command
Field Data Description
Command 0xA6
Checksum #
First transmits the response command and then the user IDs.
Compatibility
Request command
Field Data Description
Command 0xF3
Param User ID
Size NULL
Flag NULL
Checksum #
Response command
Field Data Description
Command 0xF3
Param User ID
0x61 SUCCESS
Error
0x6D MEM_FULL
Checksum #
Compatibility
Request command
Field Data Description
Command 0xF4
Param User ID
Size NULL
Flag NULL
Checksum #
Response command
Field Data Description
Command 0xF4
Param User ID
0x61 SUCCESS
Error
0x69 NOT_FOUND
Checksum #
Error code
Error code Description
Compatibility
Request command
Field Data Description
Command 0xF5
Param NULL
Size NULL
Flag NULL
Checksum #
Response command
Field Data Description
Command 0xF5
Checksum #
First transmits the response command and then the user IDs.
Compatibility
Request command
Field Data Description
Command 0xF6
Param NULL
Size NULL
Flag NULL
Checksum #
Response command
Field Data Description
Command 0xF6
Param NULL
Size NULL
Checksum #
Compatibility
To check the limit, the module keeps track of entrance counts of each user. The
entrance counts are cleared in the following cases.
(1) At midnight.
Request command
Field Data Description
Command 0xF0
Param User ID
0(Infinite)
Size Entrance limit
1~7
Flag NULL
Checksum #
Response command
Field Data Description
Command 0xF0
Param NULL
Size NULL
Checksum #
Error code
Error code Description
Compatibility
Request command
Field Data Description
Command 0xF1
Param User ID
Size NULL
Flag NULL
Checksum #
Response command
Field Data Description
Command 0xF1
0x61 SUCCESS
Error 0x69 NOT_FOUND
0x76 INVALID_ID
Checksum #
Compatibility
Request command
Field Data Description
Command 0xF2
Param NULL
Size NULL
Flag NULL
Checksum #
Response command
Field Data Description
Command 0xF2
Param NULL
Size NULL
Checksum #
Compatibility
Request command
Field Data Description
Command 0xFA
Param NULL
Size NULL
Flag NULL
Checksum #
Response command
Field Data Description
Command 0xFA
Param NULL
Size NULL
Checksum #
Compatibility
Request command
Field Data Description
Command 0xFF
Param NULL
Size NULL
Flag NULL
Checksum #
Response command
Field Data Description
Command 0xFF
Param NULL
Size NULL
Checksum #
Compatibility
* This command does not work with USB interface. There is no way to wake up the
module because the USB of the module has no detection pin. (SFM6000 series only
supported)
Request command
Field Data Description
Command 0xEF
Param NULL
Size NULL
Flag NULL
Checksum #
Response command
Compatibility
- When the module does not operate normally due to some influence
- When want to reset the factory mode
- When firmware upgrade including OS-kernel is needed
Request command
Field Data Description
Command 0xDF
Param NULL
Size NULL
Flag NULL
Checksum #
Response command
Compatibility
Overview
On the SFM; including SFM3000 and SFM5000, there are 8 GPIO’s, which are user-
configurable for specific functions.3
Because all GPIO function can be configured using PC interface program, a general
user does not need to know the method stated in this appendix. After GPIO function
is tested using PC interface program, the specific configuration can be embedded in
the module before delivery for volume order.
GPIO’s can be configured as input, output, shared IO, Wiegand input, or Wiegand
output. In the input mode, enroll, identify, and delete function are supported. In the
output mode, the port can send requested output patterns corresponding to the
various events, such as match success, enroll fail, and so on.
1. GPIO Index
Eight GPIO’s are available on the SFM, which are configurable. Each port is indexed
by its ID ranged from 0 to 7 as described in the Table 1.
GPIO Name ID
GPIO_0 0
GPIO_1 1
GPIO_2 2
GPIO_3 3
GPIO_4 4
3
For SFM4000, you should refer to Appendix A-1, too.
SFM Series Packet Protocol Manual v3.5.0 316
GPIO_5 5
GPIO_6 6
GPIO_7 7
Supported pin modes are input, output, shared IO, wiegand input and wiegand
output. GPIO of shared IO mode waits input events in normal state and also sends
responding output. Input modes, including general input and shared IO, are
configurable on GPIO_0 to GPIO_3. Output mode is configurable on any GPIO port.
Wiegand modes are restricted on special ports. Wiegand output mode is only
configurable on the couple of GPIO_4 and GPIO_5, and wiegand input is configurable
on the couple of GPIO_2 and GPIO_3, respectively. Port of lower ID is correspondent
to bit 0 and port of higher ID is correspondent to bit 1 for Wiegand interfaces.
GPIO_0 ~ 1 O O O
GPIO_2 ~ 3 O O O O
GPIO_4 ~ 5 O O
GPIO_6 ~ 7 O
2. GPIO mode
Configured mode of GPIO is identified by its mode value. GPIO mode value is listed
in Table 3.
None( disable ) 0
Input 1
Output 2
Shared IO 5 3
Wiegand input 5 4
Wiegand output 5 5
Buzzer4 6
Wiegand modes are enabled for the specific couples. And, if one of Wiegand couple
is re-configured as other mode, then the other one is automatically reset to disabled
mode.
1) Input mode
Input mode is defined by two factors, function and activation method. GPIO
configured as input mode processes one of input functions, enrollment, identification,
delete all, and delete all by confirm when the module detects activation at the pin.
Four activation methods are selectable including active high, active low, falling edge,
and rising edge activations.
Table 4 and 5 shows the index value for input function and activation method.
Enroll ES 0x01
Identify IS 0x02
4
For SFM4000 only.
5
These mode are not available for SFM6000 Series.
Cancel CA 0x06
Reset RS 0x0A
“Delete all by confirm” function is for erasing all fingerprint data after confirmation by
accepting repeated input within the pre-specified interval. So, this function requires
another parameter of maximum waiting interval. This function is also related with a
specific output function, named DELETE_WAIT, which sends blinking output in
waiting repeated input.
2) Output mode
The GPIO in the output mode can support various output patterns for different
functions. For example, GPIO_0 can be configured to send 1 pulse on enroll success
and 2 pulses on match success.
There are four issues for output configuration: When, Which level, How long, and
steady or blinking. In order to support these requirements, output function, level,
interval, and blinking period can be configured.
SFM Series Packet Protocol Manual v3.5.0 319
There are twelve selectable output functions, which are listed in Table 6.
BEEP function is special function with fixed output pattern on complex output events,
which is useful for buzzer control. It will respond on various events with pre-defined
patterns as follows:
⚫ End of finger scan : 1 short beep
⚫ Processing success : 1 long beep
⚫ Insufficient fingerprint data : 2 beeps
⚫ Processing failure : 3 beeps
Notice that all the enabled functions for the same GPIO should have same inactive
level, all high or all low. That is, if the inactive level is low, then all should be configured
as ACTIVE_HIGH or HIGH_BLINK.
Output interval is also configurable. If the output is blinking mode, blinking period
should be specified. Time units for these values are 10ms and the range is 1 to 0xFFFF.
Notice that blinking period should not exceed the interval time. Blink count is
obtained through dividing interval by blinking period. The following figure shows
examples of output signals.
Interval
Active High
Blinking Period
Blink High
Interval
3) Wiegand mode
Wiegand mode requires four configuration parameters: total bits, facility bits, id bits,
and facility code. Currently, the firmware only supports standard 26 bit Wiegand
interfaces. When identification or verification is successful, Wiegand output is
SFM4000 is based on SFM3000 series modules and shares most of the packet
protocol. However, its GPIO configurations are different from those of SFM3000 in
some important ways.
(1) General
• Two more ports – GPIO_8 and GPIO_9 – are added. You can configure them as
output ports.
• Buzzer mode is added. By configuring this mode, you can customize the
buzzer sounds for specific events.
• Buzzer Mode
• There are 8 pre-defined buzzer patterns. And the default settings for output
events are as follows;
ENROLL_FAIL
Pattern 3 Mi-Do-Mi-Do MATCH_FAIL
DELETE_FAIL
Pattern 5 Do-Sol-Mi-Do
ENROLL_SUCCESS
Pattern 6 Do-Mi-Sol
DELETE_SUCCESS
Pattern 8 Sol-Mi-Do
Word Buzzer
1 Function
2 0
3 Buzzer Pattern(0~8)
4 0
Overview
Dividing large data into small blocks can reduce communication errors between the
host and the module. It is also suitable for embedded systems with limited resources.
Data Transfer Protocol is an extension of Packet Protocol to provide a reliable and
customizable communication for large data.
In Data Transfer Protocol, data is divided into multiple data packets. And a data
packet consists of fixed-length header, variable-length data body, and 4 byte
checksum. The following figure shows the data packet structure in Packet Protocol. If
Network Packet Protocol is used, the start code will be 0x41, and 2 byte terminal ID
will be inserted between the start code and the command byte. The checksum field
is the sum of each byte in data body.
For example, if EIX command sends an image data of 16384 bytes into 3 packets of
4096, 4096, and 8192 bytes, the headers are as follows:
After receiving each data packet, the receiver has to send an acknowledgement
packet notifying if the previous transfer is successful. If the received data packet has
correct checksum, DATA_OK(0x83) will be returned. Otherwise, DATA_ERROR(0x82)
will be returned. If the sender receives DATA_ERROR, it should quit sending the data
immediately.
Example
Host Module
EIX
SUCCESS
Data Packet 1
DATA_OK Checksum OK
Data Packet 2
DATA_OK Checksum OK
...
Data Packet N
DATA_OK Checksum OK
Image Transfer
Succeed
RIX
SUCCESS
Data Packet 1
Checksum OK DATA_OK
Data Packet 2
Checksum OK DATA_OK
...
Data Packet N
Checksum OK DATA_OK
Image Transfer
Succeed
Host Module
VIX
SUCCESS
Data Packet 1
DATA_OK Checksum OK
Data Packet 2
Overview
26 bit standard
The 26 bit standard format is most widely used and consists of 8 bit site code and 16
bit ID. Users can set an alternative site code and enable advanced options.
Pass Through format is used when only the format of ID field is known. When
Wiegand input string is detected, the module extracts ID bits and starts verification
with the ID. If the verification succeeds, the module outputs the Wiegand input string
as unchanged. Parity check and advanced options are ignored in this format. By
definition, Pass Through format is only useful when the matching is initiated by
Wiegand input. If the matching is initiated by Packet Protocol or GPIO input, the bits
other than ID field are set to 0.
Total bits 1 1 ~ 64
For example, assume that 32 bit pass through format is composed as follows;
XIIIIIII IIIIIIIX XXXIIIII IIIIIIIX (left most bit is 0th bit, BIT0)
Total Num of ID 1st ID field 1st ID field 2nd ID field 2nd ID field
Bits fields start index length start index length
Custom format
When users know all the information of a Wiegand format, Custom format can be
defined. When Wiegand input string is detected, the module checks the parity bits
first. If all the parity bits are correct, the module extracts ID bits and starts verification
with the ID. Users can also set alternative values of each field and enable advanced
options such as Fail ID. If the verification succeeds, the module outputs a Wiegand
string. The output string may be different from the input string according to the
alternative values and advanced options.
Total Bits 1 1 ~ 64
Number of fields 1 1 ~ 16
EAAAAAAA IIIIIIII IIIIIIII BBBBBBBI IIIIIIII IIIO (left most bit is 0th bit, BIT0)
In SFM3010FC and SFM3510FC modules, this parameter can be used to turn on the
sensor heating mode. When the parameter is set to 0x30, the FC sensor will be
heated before sensing fingerprint inputs. In general, the image quality would be
better with sensor heating mode. However, this mode consumes more power and
users should wait for a few seconds before the sensor gets heated.
Headquarters
Suprema, Inc. (http://www.supremainc.com)
17F Parkview Tower, 248, Jeongjail-ro, Bundang-gu,
Seongnam-si, Gyeonggi-do, 13554, Rep. of KOREA
Email: [email protected]