E-Seek M500 User manual

M500 User Manual and Programmer SDK
Revision 1P
Doc No 560802-1A
May 19, 2017

M500 USER MANUAL AND PROGRAMMER SDK
Page 1
Copyright © 2014-2017 E-Seek Incorporated. All Rights Reserved.
E-Seek reserve the right to make changes to any product to improve reliability, function or design.
E-Seek do not assume any product liability arising out of, or in connection with, the application or use of
the product, circuit or application described herein.
No license is granted, either expressly or by implication, estoppel, or otherwise under any patent right or
patent, covering or relating to any combination, system, apparatus, machine, material method, or process
in which E-Seek products might be used. An implied license only exists for equipment, circuits and
subsystems contained in E-Seek products.
E-Seek and the E-Seek logo are registered trademarks of E-Seek Incorporated. Other product names
mentioned in this Reference Guide may be trademarks or registered trademarks of their respective
companies and are hereby acknowledged.
For the latest driver and manual visit: http://www.e-seek.com
E-SEEK Inc.
Website: www.e-seek.com
Patented Product
R & D Center Sales & Marketing
9471 Ridge haven Ct. #E 245 Fischer Ave #D5
San Diego, CA 92123 Costa Mesa, CA 92626
Tel: (858) 495-1900 Tel: (714) 545-3316
Fax: (858) 495-1901 Fax: (714) 545-3595

M500 USER MANUAL AND PROGRAMMER SDK
Page 2
TABLE OF CONTENTS
1. INTRODUCTION ............................................................................................................................................. 4
1.1 PRODUCT FEATURE............................................................................................................................................4
1.2 PREREQUISITE...................................................................................................................................................4
2. DEVICE DESCRIPTION..................................................................................................................................... 4
2.1 OVERVIEW OF MODEL M500 .............................................................................................................................5
2.2 PRODUCT SPECIFICATION....................................................................................................................................6
2.3 TECHNICAL DETAILS...........................................................................................................................................6
2.4 UNPACKING DEVICE...........................................................................................................................................7
2.4.1 USB Cable.................................................................................................................................................7
2.4.2 White balance calibration card................................................................................................................8
2.4.3 Cleaning Card...........................................................................................................................................8
3. GETTING STARTED ......................................................................................................................................... 9
3.1 UPGRADING FIRMWARE ...................................................................................................................................10
3.1.1 Upgrade firmware from Demo application............................................................................................10
3.1.2 Upgrade by restarting the scanner ........................................................................................................10
3.1.3 Upgrade firmware from User application..............................................................................................10
4. RUNNING DEMO APPLICATION ................................................................................................................... 11
5. SCOPE.......................................................................................................................................................... 11
6. OPERATION ................................................................................................................................................. 11
6.1 INDICATOR LEDS.............................................................................................................................................11
6.2 EJECT BUTTON................................................................................................................................................12
6.3 GUI .............................................................................................................................................................12
6.3.1 Small Image Preview Pane.....................................................................................................................13
6.3.2 Toolbar and controls ..............................................................................................................................14
6.3.3 Scan modes ............................................................................................................................................15
6.3.4 About dialog toolbar button ..................................................................................................................16
6.3.5 Status Bar...............................................................................................................................................16
6.3.6 Errors......................................................................................................................................................17
7. ARCHITECTURE ............................................................................................................................................ 18
8. M500 DEMO APP......................................................................................................................................... 19
8.1 FORMM500DEMO.CS .....................................................................................................................................19
8.2 FORMGUI.CS .................................................................................................................................................19
8.3 FORMUPDATE.CS ............................................................................................................................................19
8.4 MAGWND.CS.................................................................................................................................................19
8.5 USRIMAGE.CS ................................................................................................................................................19
8.6 ABOUTFORM.CS .............................................................................................................................................19
9. C# API.......................................................................................................................................................... 20
9.1 API FUNCTIONS..............................................................................................................................................20
9.2 API STRUCTURES ............................................................................................................................................24
10. MAINTENANCE ............................................................................................................................................ 27
10.1 CALIBRATION CARD .........................................................................................................................................27
10.2 AIR CLEANING ................................................................................................................................................28
10.3 MECHANICAL DRAWING...................................................................................................................................31

M500 USER MANUAL AND PROGRAMMER SDK
Page 3

M500 USER MANUAL AND PROGRAMMER SDK
Page 4
1. INTRODUCTION
Thank you for choosing this device.
This User’s Guide provides descriptions of the operating procedures and programming APIs for E-seek
Model M500 Authentication Unit. Carefully read this User’s Guide before using this device.
The actual screens that appear may be slightly different from the screen images used in this User’s Guide.
Model M500 Authentication Unit (ID Card Type) is hereafter referred to as “this device”
Manual Convention
Caution: This warns of a possibility of damage to this device.
Important: This indicates instructions that should be followed to ensure correct functionality and
efficiency of this device.
Note: This indicates an item of general importance.
Reminder: This indicates an item of relative importance.
Detail: This indicates an item of specific importance.
Restrictions
Unauthorized use or reproduction of this User’s Guide, whether in its entirety or in part, is strictly
prohibited.
The information contained in this User’s Guide is subject to change without notice.
1.1 PRODUCT FEATURE
This device is an ID card authentication system that performs user authentication by ID cards and supports
most ID cards.
1.2 PREREQUISITE
ID card compatible with this device must be prepared.
2. DEVICE DESCRIPTION
The E-Seek Model M500 Forensic Reader introduces a new performance standard for ID card reading and
authentication. It extracts hidden security features of a drivers' license, Military ID or any identity card for
authentication purposes in addition to reading and decoding the electronic information contained in the
barcode or magnetic stripe. Both sides of a scanned card are captured at 600 dpi resolution with a single
card insertion.
The Model M500 also incorporates a high performance PDF417 decoder and 3 Track magnetic readers. It
connects to a PC using a high speed USB 2.0 connection.
Ideal for Law Enforcement, Bars, Nightclubs, Casinos, and Access Control. The M500 can be used
anywhere your application requires reading and/or authenticating an ID or Drivers’ License.

M500 USER MANUAL AND PROGRAMMER SDK
Page 5
2.1 OVERVIEW OF MODEL M500
Figures, 1 and 2 illustrate the major modules and components of the M500.
Figure 1
Figure 2

M500 USER MANUAL AND PROGRAMMER SDK
Page 6
2.2 PRODUCT SPECIFICATION
Part Name
Description
Processor
Freescale ARM i.MX27
Memory
128 MB DDR SDRAM
1 MB Flash Memory
Scanning Method
CCD 24bit RGB Duplex 600 DPI with 1200 DPI option.
Barcode Reader
2D: PDF417 Linear: CODE 39 & CODE 128
Magnetic Reader
3 Track Magnetic Reader (ANSI, ISO, CDL, AAMVA)
External Interfaces
Power Jack (15 V DC 2.4A)
USB 2.0 Device Port
USB 2.0 extension Port
Indicator(s)
Speaker
Green LED for Power status
Blue and White center mounted LEDs under user control
Red LED for Error status
Communication
High Speed USB 2.0
Weight
M500 device: 4.25 lb (Without Power Supply)
Dimensions
8.5" Length x 5.7" Width x 4.8" Height
Regulatory
Complies with FCC & CE rules
Power Supply
Output 15V DC 2.4 A / Input 100-240V 50-60 Hz
2.3 TECHNICAL DETAILS
Dual Side Images in a Single Pass
UV, IR, RGB Images at same time
600DPI and with 1200 DPI option
24 bit Color, 8 bits IR & 24 bit UV image
Capture ROI Image (Region Of Interest)
CR80 Size (Driver License, ID-1)
Decode 2D (PDF417) & 1D
3 Tracks Magnetic Stripe Reader (ANSI, ISO, CDL, AAMVA)
USB 2.0 High speed
Easy Operation
Jam Free
Patented

M500 USER MANUAL AND PROGRAMMER SDK
Page 7
2.4 UNPACKING DEVICE
The M500 package includes:
M500 Device
Power Supply
USB Cable
Cleaning Card
Calibration Card
Power Supply
The AC/DC power supply
The power cord plugs into the power jack
Figure 3
2.4.1 USB CABLE
The M500 is provided with a USB interface cable. This cable allows the M500 to interface with standard
USB 2.0 or higher port on your computer.
Figure 4

M500 USER MANUAL AND PROGRAMMER SDK
Page 8
2.4.2 WHITE BALANCE CALIBRATION CARD
Figure 5
The calibration card is used to calibrate the white balance. Calibration could be required after shipping or
prolonged use. To perform the white balance calibration simply insert the card with the arrow side first.
After prolonged use or if the card becomes scratched it should be discarded.
2.4.3 CLEANING CARD
Figure 6
The cleaning card cleans the rollers and magnetic head. The need for cleaning varies but the general
guideline is once a month for high usage and once every three months for low usage. High usage is defined
as more than 3,000 scans per month.

M500 USER MANUAL AND PROGRAMMER SDK
Page 9
3. GETTING STARTED
1. Pre-Installing Driver
Download the driver from http://e-seek.com/products/m-500/
2. Log in to your computer as an administrator
Installing the 32 bit Driver (for Windows 32 bit XP, Vista, 7 and 8)
Run M500_USB_DRIVER-32.exe
Installing the 64 bit driver (for Windows 64 bit Vista, 7 and 8)
Run M500_USB_DRIVER-64.exe
WinDriver should appear under Jungo in Device Manager Window.
Figure 7
Next, connect M500 Power cable and then USB cable to your host PC.
Now the M500 should appears under Jungo in Device Manager Window.
Figure 8

M500 USER MANUAL AND PROGRAMMER SDK
Page 10
At this point check the M500 top LED status, and make sure the Green light is solid ON.
If the RED light blinks it indicates that the scanner encounter a fatal error. Check the error type by opening
the “M500dll.log” file.
NOTE: The most common error is the mismatch versions between the M500 firmware and the
M500dll.dll. The M500dll.dll contains a copy of the firmware it was designed to work with embedded
inside the DLL file.
There are three ways of upgrading the firmware:
3.1 UPGRADING FIRMWARE
3.1.1 UPGRADE FIRMWARE FROM DEMO APPLICATION
The Demo application checks the M500 firmware version when it starts or the M500 boots. If the firmware
in the M500 is not the correct version for this DLL then the demo software will pop up a dialog box with
the option of upgrading the firmware.
3.1.2 UPGRADE BY RESTARTING THE SCANNER
This method will force the scanner to synchronize (upgrade or downgrade) the firmware in M500dll.dll.
Step 1: Connect the M500 to PC and run your application (which loads M500dll.dll)
Step 2: Unplug the power to the M500.
Step 3: Press and hold the Eject button (located behind the red LED).
Step 4: While holding the Eject bottom connect the power to M500.
Step 5: Hold the Eject button for until the Green LED starts flashing (about five seconds).
Step 6: The M500 will automatically restart followed by a beep.
Step 7: The scanner firmware is now upgraded using the M500dll’s embedded firmware image.
3.1.3 UPGRADE FIRMWARE FROM USER APPLICATION
The software developer can check the firmware version using the GetVer () API and upgrade the firmware
using the ProgramFlash() API if the firmware version is not compatible with the DLL.. Refer to Section 9.1
and the DEMO sample application
NOTE: The firmware needs to be compatible with the DLL that the user application is using. The DLL and
firmware have a three digit major, minor, and build version number. However the build number of
released firmware is always zero. For example DLL version 1.8.0, 1.8.1, and 1.8.2 would all be compatible
with firmware 1.8.

M500 USER MANUAL AND PROGRAMMER SDK
Page 11
4. RUNNING DEMO APPLICATION
Download The M500 Demo Application from http://e-seek.com/products/m-500/
Unzip the files to your PC, and run M500.exe (either 64 bit or 32 bit)
If the red light is flashing, and the Demo program will pop up a dialog box with the option to upgrade
the firmware.
For other error types see the log file “M500dll.log”.
5. SCOPE
The PC software consists of an application exe, a C# API assembly, and a C/C++ DLL that communicates
with the M500 over USB. The PC software also includes a third party USB driver from Jungo. This
document covers the M500 C# sample application and the C# API that gives a C# developer a simple
interface to the unmanaged C/C++ M500 DLL.
6. OPERATION
When a card is inserted the M500 firmware will:
Read the magnetic stripe
Scan using the White LEDs
Decode the PDF417 barcode
Scan using the IR LEDs
Scan using the UV LEDs
Eject the card
Optionally, for faster scans, it is possible to skip the IR and UV scans when only the RGB image, magnetic
stripe data, and PDF417 barcode data are needed.
6.1 INDICATOR LEDS
M500 LED status table is as follow:
Solid
Scanner Ready
Blink
Scanning
Solid
Door Open
Blink
Fatal Error
Application Defined

M500 USER MANUAL AND PROGRAMMER SDK
Page 12
6.2 EJECT BUTTON
This button, which is located on the top of the units, is used to try to eject a jammed card.
6.3 GUI
Figure 9
The GUI has a toolbar and controls on the top, small preview images on the left, a large selectable main
image, and a status bar on the bottom.

M500 USER MANUAL AND PROGRAMMER SDK
Page 13
6.3.1 SMALL IMAGE PREVIEW PANE
Figure 10
There are seven small panes which display the scanned card using different lighting.
The first two images are the front (right) and back (left) images using white light.
The next two images were captured using IR light.
The next two images after that were captured using UV light.
Finally, the last image is a low resolution image with the right side illuminate using IR light and
detected on the left side which is not illuminated. The intensity of the “bleed through” image is
an indication of the card’s opacity.
The big image displays the RGB front (right) image by default but the user can select the image
to display by clicking on one of the seven small preview panes on the left.
Double clicking on a small preview image will create bitmap file and then open it using the
program that is set by windows to view .bmp files. (Note: for this to work the demo application
should be run from a directory that has write privileges)

M500 USER MANUAL AND PROGRAMMER SDK
Page 14
6.3.2 TOOLBAR AND CONTROLS
The leftmost toolbar button re-acquires the image from the scanner for testing.
The open toolbar button opens an achieved tiff file.
The save toolbar button saves the scan as an archive tiff file.
The blue “i” toolbar button opens a modal dialog box with the current version numbers.
The “M500” text is green when the USB connection is good and red when the USB connection fails.
The “User LED” button toggles the middle user LEDs on the top of the unit. There are a blue LED and
a white LED mounted next to each other. Clicking on this button cycles thru blue LED on, white LED
on, blue LED blinking, white LED blinking, and both LEDs off. Note that early production units do not
have a white LED.
The “User Beep” button toggles thru three beep sounds.
The “Disable scanning while authenticating” check box is unchecked for normal operation and
checked to demonstrate how the application software can disable (and re-enable) scanning.
“Scan” was used to during EMI testing and is beyond the scope of this document.
“10 sec” is used to perform aging testing and is beyond the scope of this document.
The “Door open” text turns red when the door is open.
The “Card Jam” text turns red when a card jams.
The “Eject” button starts the card eject procedure.

M500 USER MANUAL AND PROGRAMMER SDK
Page 15
6.3.3 SCAN MODES
By default the normal scan mode is RGB-IR-UV.
Click on the “Scan Normal” button until it changes to “Scan RGB” for fast RGB only scanning.

M500 USER MANUAL AND PROGRAMMER SDK
Page 16
6.3.4 ABOUT DIALOG TOOLBAR BUTTON
Clicking on the blue “i” brings up the about dialog box.
Note that the API, DLL, and M500 (firmware) versions are always the same (In this case 1.6).
The DLL checks for the expected M500 (firmware) and barcode decoder versions and brings up a dialog
box if the versions do not match.
The T1, T2, and T3 likewise will turn green when data is found on the magnetic stripe for tracks 1/2/3.
6.3.5 STATUS BAR
The triangle indicates the PDF417’s orientation if it exists.
The five possibilities are front/back, normal/upside down, and not found.
The PDF417 text will turn green when a PDF417 barcode is found.
The T1, T2, and T3 likewise will turn green when data is found on the magnetic stripe for tracks 1/2/3.

M500 USER MANUAL AND PROGRAMMER SDK
Page 17
6.3.6 ERRORS
The demo GUI checks the flash version and will display a dialog box allowing the user to upgrade the
firmware from the DLL’s internal firmware image.
Whenever the DLL detectcs a firmware version mismatch or other serious error it will sends an error event
(In this case EV_ERR_FW_VER) and send a command to the firmware to flash its red LED. On receiving
this event the demo application will pop up the following dialog allowing the user to upgrade the M500’s
firmware.
Starting with DLL version 1.9 the older M500 firmware will be automatically upgraded unless the user
application overwrite this default feature. (see section 9.1 AutoFwUpgrade API)

M500 USER MANUAL AND PROGRAMMER SDK
Page 18
7. ARCHITECTURE
The main purpose of the C# demo application is to provide an example of how to write an application that
interfaces with the M500 using a C# API.
The application (M500.exe or user application), M500api.dll, M500dll.dll, and SD2.dll must be in the same
directory. The DLL will create a log file (M500dll.log) in the directory in which it is running by default but
it can be disabled if needed.
C# Application (M500.exe)
C# M500 API assembly (M500api.dll)
Jungo WinDriver
Microsoft USB drivers
M500 firmware
C/C++ M500 DLL (M500dll.dll)
Barcode decoder (SD2.dll)

M500 USER MANUAL AND PROGRAMMER SDK
Page 19
8. M500 DEMO APP
The C# M500APP project contains the Main app and GUI. It creates the “M500.exe” executable.
The modules in this project are:
FormM500demo.cs
FormGUI.cs
FormUpdate.cs
Settings.cs
MagWnd.cs
UsrImage.cs
AboutForm.cs
8.1 FORMM500DEMO.CS
This is the main form and contains the code that interfaces with the M500 C# API. It calls the Init() function
which initializes the M500DLL which then creates its own thread to communicate with the M500 and
automatically transfer images without using the applications UI thread.
8.2 FORMGUI.CS
This module contains GUI code that was separated from the FormM500demo.cs module to simplify it. It
contains code to Open and Save a TIFF file and update the magnify window. It does not interface with the
M500 so one does not need to understand this code to interface with the M500.
8.3 FORMUPDATE.CS
This module contains subroutines that update the GUI.
8.4 MAGWND.CS
This module manages the floating magnifier window and is not needed by the developer to interface with
the M500.
8.5 USRIMAGE.CS
This module contains code to support re-sizing the bitmaps windows as the size of the main window
changes and is not needed by the developer to interface with the M500.
8.6 ABOUTFORM.CS
This module is used to display the version of application, C# API assembly, M500 DLL, barcode decoder,
and M500 firmware.
Other manuals for M500
1
Table of contents
Other E-Seek Card Reader manuals