ESEEK M600 Programmer SDK Scanner Unit User Manual

June 12, 2024
ESEEK

ESEEK M600 Programmer SDK Scanner Unit

Product Information

Product Name M600 User Manual and Programmer SDK
Revision 1X
Document Number XXXXXX-1X
Date November 29, 2022
Manufacturer E-Seek Incorporated
Trademark E-Seek and the E-Seek logo are registered trademarks of E-Seek

Incorporated.
Website| www.e-seek.com
Address| R & D Center 9471 Ridgehaven Ct. #E San Diego, CA
92123
Telephone| 858-495-1900
Fax| 858-495-1901

Product Usage Instructions

  1. Read the user manual carefully to familiarize yourself with the product.
  2. Ensure that the device complies with Part 15 of the FCC Rules and Industry Canada’s licence-exempt RSS(s).
  3. Install the device with a minimum distance of 20 cm between the radiator and your body to comply with FCC radiation exposure limits.
  4. Refer to the table of contents for easy navigation through the manual.
  5. Follow the device description section for an overview of the Model M600.
  6. Review the product specifications to understand the technical details.

Copyright © 2022 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.
Note that at this time the PDF417, MRZ, and QR code decoders are documented but not yet functional.
Note that the M600 RFID interfaces to the PC using a standard CCID USB class and in not covered by this document.

E-SEEK Inc.
Website: www.e-seek.com

Patented Product
R & D Center
9471 Ridge haven Ct. #E
San Diego, CA 92123
Tel: 858-495-1900
Fax: 858-495-1901

Federal Communication Commission Interference Statement
This device complies with Part 15 of the FCC Rules. Operation is subject to the following two conditions:

  1. This device may not cause harmful interference, and
  2. this device must accept any interference received, including interference that may cause undesired operation.

This equipment has been tested and found to comply with the limits for a Class A digital device,pursuant to Part 15 of the FCC Rules. These limits are designed to provide reasonable protection against harmful interference in a residential installation. This equipment generates, uses and can radiate radio frequency energy and, if not installed and used in accordance with the instructions, may cause harmful interference to radio communications. However, there is no guarantee that interference will not occur in a particular installation. If this equipment does cause harmful interference to radio or television reception, which can be determined by turning the equipment off and on, the user is encouraged to try to correct the interference by one of the following measures:

  • Reorient or relocate the receiving antenna.
  • Increase the separation between the equipment and receiver.
  • Connect the equipment into an outlet on a circuit different from that to which the receiver is connected.
  • Consult the dealer or an experienced radio/TV technician for help.

FCC Caution: Any changes or modifications not expressly approved by the party responsible for compliance could void the user’s authority to operate this equipment. This transmitter must not be co-located or operating in conjunction with any other antenna or transmitter.

Radiation Exposure Statement:
This equipment complies with FCC radiation exposure limits set forth for an uncontrolled environment. This equipment should be installed and operated with minimum distance 20 cm between the radiator & your body.

Industry Canada
This device contains licence-exempt transmitter(s)/receiver(s) that comply with Innovation, Science and Economic Development Canada’s licence-exempt RSS(s). Operation is subject to the following two conditions:

  1. This device may not cause interference.
  2. This device must accept any interference, including interference that may cause undesired operation of the device.

INTRODUCTION

Thank you for choosing this device.
This User’s Guide provides descriptions of the operating procedures and programming APIs for E-seek Model M600. 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. The Model M600 scanner Unit 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.

PRODUCT FEATURE
This device is a ID3, ID1, and boarding pass reader.

DEVICE DESCRIPTION

The E-Seek Model M600 ID Reader introduces a new performance standard for ID card reading. It can read ID3 and ID1 cards without a hood to streamline document reading. Boarding pass barcodes can also be read. Advanced image processing is performed to provide a high quality ID1 images without a hood.
The Model M600 SDK also includes MRZ, QR, and PDF417 decoders. It connects to a PC using a high-speed USB 2.0 connection.

OVERVIEW OF MODEL M600
Figures, 1 and 2 illustrate the major modules and components of the M600.

ESEEK-M600-Programmer-SDK-Scanner-Unit-1

PRODUCT SPECIFICATION

Items Description
Imaging Sensor: 2D CMOS

Resolution: RGB/IR 600dpi, UV 300dpi

Color depth: RGB/UV: 24 bits / pixel, IR: 8 bits / pixel Light Sources: Visible (White), IR (870 nm), UV (365 nm)

Image output format: BMP

Smart Card| Contactless: ISO 14443 A/B, NFC,
Alert| Audible: Beep

Visual indicator: 2 RGB status LEDs

Connectivity| USB 2.0 High Speed.
Electrical| Input power: 5V input voltage. Power Consumption: TBD

Power adaptor:

AC110-240V, 50/60Hz 0.35A Max

Output: 5V 2Amps

Physical| Dimensions:

Length: 195mm Width: 160mm

Height: 109mm/ 102mm (to glass) Weight: 900grams (2lbs)

Image capture window: 130 x 95 mm (5.12 x 3.74”) Anti-reflective and scratch resistant Glass

Environmental| Temperature: Operating: –10°C to 50°C (14°F to 122°F) Storage: –20°C to 70°C (–4°F to 158°F)

Humidity: Operating: 5-95 % (non-condensing) Dust: IP5x

TECHNICAL DETAILS
  • RGB 24 bit @ 600 dpi
  • IR 8 bit @ 600 dpi
  • UV 24 bit @ 300 dpi
  • ID3, ID1, and boarding pass
  • Decodes MRZ
  • Decodes QR
  • Decodes 2D (PDF417) & 1D
  • USB 2.0 High speed
  • Hoodless operation
  • RFID
  • Patented
UNPACKING DEVICE

The M600 package includes:

  • M600 Device
  • USB Cable
  • Calibration Card (???)

USB CABLE
The M600 is provided with a USB interface cable. This cable allows the M600 to interface with standard USB 2.0 high speed port on your computer.

ESEEK-M600-Programmer-SDK-Scanner-Unit-2

WHITE BALANCE CALIBRATION CARD

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.

GETTING STARTED

  1. The M600 scanner uses WinUSB drivers and no installation is required for Windows8,Windows10, or Windows11.
    Connect the M600 Power cable and power up the scanner.

The M600 should appears under Universal Serial Bus devices in Device Manager.

At this point check the M600 top LED status, and make sure the Green light is solid ON.
If the RED light blinks it indicates that the scanner encountered a fatal error. Check the error type by opening the “M600dll.log” file.

RUNNING DEMO APPLICATION
Download The M600 Demo Application from http://e-seek.com/products/m-600/

SCOPE

The PC software consists of an application exe, a C# API assembly, and a C/C++ DLL that communicates with the M600 over USB. This document covers the M600 C# sample application and the C# API that gives a C# developer a simple interface to the M600 DLL. The M600 contains an RFID module that uses a standard Microsoft CCID interface which is not covered by this document. Operation

When a card is inserted the M600 firmware will:

  • Automatically scan a document if enabled
  • Decode the MRZ if present
  • Decode the PDF417 if present
  • Scan using the White LEDs
  • Scan using the IR LEDs
  • Scan using the UV LEDs

INDICATOR LEDS
M600 LED status table is as follow:

ESEEK-M600-Programmer-SDK-Scanner-Unit-5

GUI

ESEEK-M600-Programmer-SDK-Scanner-Unit-6

Figure 9 shows and ID3 document and Figure 10 shows and ID1 document. The ID1 images were cropped.
The GUI has three small preview images on the left and a large main image.

SMALL IMAGES PREVIEW PANE

ESEEK-M600-Programmer-SDK-Scanner-Unit-7

There are three small panes which display the scanned card using different lighting.

  • The first image was captured using white light.
  • The second image was captured using IR light.
  • The last image was captured using UV light.

ARCHITECTURE

The main purpose of the C# demo application is to provide an example of how to write an application that interfaces with the M600 using a C# API.

ESEEK-M600-Programmer-SDK-Scanner-Unit-8

The application (M600.exe or user application), M600api.dll and M600dll.dllnd must be in the same directory. The DLL will create a log file (M600dll.log) in the directory in which it is running by default but it can be disabled if desired.
As mentioned in scope the M600 has an RFID module that interfaces to a pc as a CCID USB class and is not covered by this document.

M600 DEMO APP
The C# M600APP project contains the Main app and GUI. It creates the “M600.exe” executable.
The modules in this project are:

  • FormM600demo.cs
  • FormUpdate.cs

FORMM600DEMO.CS
This is the main form and contains the code that interfaces with the M600 C# API. It calls the Init() function which initializes the M600DLL to communicate with the M600 and automatically transfer images. The user application should override WndProc() and call the M600’s WndProcMessage() function if it wants to receive USB connect and disconnect events.

FORMUPDATE.CS
This module contains subroutines that update the GUI.

C# API

The C# API provides a simple interface to the M600. The C# developer should be able to use this interface to quickly interface with the M600 without needing to interface with the M600 DLL unmanaged code directly.
The application should register for call back events at initialization. The DLL will then call back the application when an event occurs. The application should then synchronize the call back to its thread using the Invoke method in FormM600demo.cs.

The API assembly is instantiated in the application as:

public static CM600api m_M600 = new CM600api();

API FUNCTIONS
void SetLogDir(LOG_DIR) [Optional] Call this function before Init() to override the default log directory. By default if this function is not called the M600DLL will create the M600DLL.LOG file in the same directory it is running in. Pass this function the string of the desired log directory. To disable logging pass the string “null”.

  • void Init()
    Call this function at initialization such as during form load.

  • void RegCB(OnNewEvent)
    Register event call back.

  • void Close()
    Call this function before closing the application such as during form closed.

  • bool LogIn(bool bLogin)
    When true the unit will scan when a card is inserted (normal operation).
    When false the unit will not scan when a card is inserted.

  • void UserBeep(E_BEEP eBeep)
    Creates a beep sound. The E_BEEP enumeration has three values:
    BEEP_1,

  • void GetVer(out M600_VER ver)
    Gets the E-Seek serial number (EsSerNum), Silicon serial number (DsSerNum), DLL version, Barcode decoder version, firmware version, and hardware version as defined by the M600_VER structure.
    The members of the M600_VER structure that may be of intrest to the deverloper are:
    ulong EsSerNum; // E-Seek serial number
    //
    byte DllMajor; // DLL version number
    byte DllMinor;
    byte DllBuild;
    byte FwMajor; // Firmware version number
    byte FwMinor;
    byte FwBuild; // Always zero

  • bool WrUserData (byte[] aryData)
    Writes a user data byte array to flash (128 byte limit).
    Flash should not be used store frequetly changing data as it is limited to 10,000 reliable writes.

  • bool RdUserData(byte[] aryData)
    Reads a user data byte array from flash (128 byte limit).
    Note that in order to recive USB connect and disconnect the user application has to override WndProc() and call the M600 api’’s WndProcMessage.

  • protected override void WndProc(ref Message m)
    {
    m_M600.WndProcMessage(ref m); // checks for usb connect and disconnect
    base.WndProc(ref m);

API OBJECTS

The C# API M600_IMG class has a bitmap for each of the three light sources:
Bitmap bmBmRgb;
Bitmap bmBmIr;
Bitmap bmBmUv;

The first image is RGB.
The second image is IR.
The third image is UV.
The bitmaps will be cropped if an ID1 document is detected.

The C# API M600_BC structure contains a 2D data structure.

byte[] aryMRZ; // Byte array for MRZ
byte[] aryQR; // Byte array for QR

byte[] aryP417; // Byte array for PDF417*
int iBcOrient;
If the PDF417 barcode is found the iBcOrient element has four enumerated values of the card orinetation and zero for unknown.

  • 0 = Unknown orientation
  • 1 = Normal orientation (Front of card is on the right).
  • 2 = Front on the right but upside down.
  • 3 = Front is on the left.
  • 4 = Front is on the left and upside down.

Note that for this release the MRZ, QR, and PDF417 decoding is not yet implamented.

EVENTS:
The user application should pass a delegate on initialization to the M600dll so that the DLL can call the delegate with the integer value of the event.

The M600 DLL sends event call backs to the application on a thread the M600 DLL creates.

  • EVENT_DISCOVERY
  • EVENT_SCANING Firmware is scanning a document
  • EVENT_IR IR image ready
  • EVENT_RGB RGB image ready
  • EVENT_UV UV image ready
  • EVENT_REMOVE Document can be removed
  • EVENT_BARCODE*
  • EVENT_MRZ*
  • EVENT_DONE Scan complete
  • EVENT_USB_CON USB connected
  • EVENT_USB_DIS USB disconnected

Not: MRZ and bardode functions are not currently implamented

PSEUDO CODE EXAMPLE

CM600api m_M600 = new CM600api(); // C# API object
m_M600.Init(M600_Callback); // callback for events
// Event callback
//
public void M600_Callback(int iEvent)
{
switch (iEvent)
{
case EVENT_IR: // IR image ready
break;
case EVENT_RGB: // RGB image ready
break;
case EVENT_UV: // UV image ready
break;
case EVENT_DONE: // Scan complete
break;

}
}

m_M600.Close()

MAINTENANCE

There are three parts to maintain the M600:
Cleaning (Step 3-5)
Calibration (Step 6-7)

Step 1: Insert the Calibration Card

MECHANICAL DRAWINGS

ESEEK-M600-Programmer-SDK-Scanner-Unit-9

Documents / Resources

| ESEEK M600 Programmer SDK Scanner Unit [pdf] User Manual
2A9IZ-M600, 2A9IZM600, m600, M600 Programmer SDK Scanner Unit, Programmer SDK Scanner Unit, SDK Scanner Unit, Scanner Unit
---|---

References

Read User Manual Online (PDF format)

Read User Manual Online (PDF format)  >>

Download This Manual (PDF format)

Download this manual  >>

Related Manuals