Verifone E355, E265 User Manual

e355/e265
User and Best Practices Guide
Verifone Part Number DOC087-080-EN-A, Revision A
E355/E265 User and Best Practices Guide
© 2016 Verifone, Inc.
All rights reserved. No part of the contents of this document may be reproduced or transmitted in any form without the written permission of Verifone, Inc.
The information contained in this document is subject to change without notice. Although Verifone has attempted to ensure the accuracy of the contents of this document, this document may include errors or omissions. The examples and sample programs are for illustration only and may not be suited for your purpose. You should verify the applicability of any example or sample p rogram before placing the software into productive use. This document, including without limitation the examples and software programs, is supplied “As-Is.”
Verifone, the Verifone logo, VeriCentre, and Verix are registered trademarks of Verifone. Other brand names or trademarks associated with Verifone’s products and services are trademarks of Verifone, Inc.
All other brand names and trademarks appearing in this manual are the property of their respective holders. Comments? Please e-mail all comments on this document to your local Verifone Support Team.
Verifone, Inc.
1-800-Verifone
www.verifone.com
Verifone Part Number DOC087-080-EN-A, Revision A

CONTENTS

PREFACE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Audience. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Organization. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Related Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Conventions and Acronyms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Document Conventions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Abbreviations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Acronym . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Terminology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
CHAPTER 1
e355 Device Device Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Software Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Low Power Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Loadable drivers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Mobile PINpad Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Modular frame. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
iOS, Android/Windows Protocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Bluetooth Support. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Wi-Fi Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
VTM on the Display. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Software Changes for PCI4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Charging Schemes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Software Packaging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
CHAPTER 2
Architecture Standalone Architecture. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Mobile PINpad Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Virtual Communication Ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Protocol Strings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Device Ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
open(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
close(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
read() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
write() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Reset_port_error() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Get_port_status() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
set_event_bit() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
get_event_bit() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
iap_control_function(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
iap_get_keypad_state() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Communication Protocols. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Software Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
e355 Data Flow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
E355/E265 USER AND BEST PRACTICES GUIDE 3
CONTEN TS
CHAPTER 3
Communication
Interfaces
CHAPTER 4
Power Charging. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
USB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
USB Host . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
USB Device. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Supported Profiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Personal Area Network (PAN) Profile. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Wi-Fi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Side Micro-USB Port Only . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Simultaneous . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Sequential (Only on iPod 6 Frame). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Power Sharing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
On and Off . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Power On . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Power Off . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Hidden Reset Button. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Power Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Off. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Active . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Sleep. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Power Environment Variables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Power Best Practices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Battery Status LED. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
CHAPTER 5
Special Features Pass-Through Mode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Persistent Pass-Through . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Enabling Pass-Through . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Disabling Pass-Through . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
24-Hour Restart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
CHAPTER 6
System Mode - VTM Entering and Exiting VTM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Keypad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Menus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Edit Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Editing *GO Configuration Parameter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Download . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Serial Download . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
USB Download . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
DDL Utility. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Memory. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Terminal Info. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Diags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Keyboard Diag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Display Test Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
ICC (Smart Card) Diag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Mag Card Diag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Barcode Diag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
4 E355/E265 USER AND BEST PRACTICES GUIDE
CONTEN TS
ICC (Contactless) Diag. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Tamper Log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Battery Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
IPP (Debit) KSN Info. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
ADE KSN Info. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
License Listing (FE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
System Error Log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Console Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Change Passwords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Key Management. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
IPP (Internal PIN Pad) Key load. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
RKL (Remote Key Loader) Key Load. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
RKL Key Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
ADE Key Load . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
ADE Status. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Software Versions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
CHAPTER 7
Logging Options OS Logging Support. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
*DEBUG (Serial). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
*LOG (File Based) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Configuration Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
EOS Log Library. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
EOS Configuration Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Application Logging Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
logprintf() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
logdump(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
CHAPTER 8
Software Package Basic Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Contents. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Version Number . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Sample Content of config.$$$ File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Downloading. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
CHAPTER 9
Control and
Barcode
Applications
Control Application. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Barcode Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Pipe Interface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Pipe Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
CHAPTER 10
Key Features of
Comparison of Key Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
e265 vs. e355
E
355/E265 USER AND BEST PRACTICES GUIDE 5
CONTEN TS
6 E355/E265 USER AND BEST PRACTICES GUIDE

PREFACE

This guide presents the features, best practices, and software architecture of the e355/e265, as well as references to additional documentation.

Audience

Organization

Related
Documentation
This guide is intended for support engineers and regional development teams to help understand the product and write effective applications.
This guide is organized as follows:
Chapter 1, e355 Device Chapter 2, Architecture Chapter 3, Communication Interfaces Chapter 4, Power Chapter 5, Special Features Chapter 6, System Mode - VTM Chapter 7, Logging Options Chapter 8, Software Package Chapter 9, Control and Barcode Applications Chapter 10, Key Features of e265 vs. e355
To learn more about the e355 terminal, refer to the following set of documents:
e355 Quick Installation Guide , VPN DOC087-062-EN
e355 Installation Guide, VPN DOC087-063-EN
e355 Frame Type A Quick Installation Guide, VPN DOC087-073-EN
e355 Frame Type S Quick Installation Guide, VPN DOC087-074-EN
e355 Frame Type A IP2 Quick Installation Guide, VPN DOC087-076-EN
e355 Frame Type A iPod6 Quick Installation Guide, VPN DOC087-068-EN
e355 Gang Charger Quick Installation Guide, VPN DOC087-066-EN
e355/e265 Control Application Programmers Guide, VPN DOC087-078-EN
e355/e315 Barcode Application Programmers Guide, VPN DOC087-070-EN
e355 Hardware ERS Specification, VPN SPC087-047-01
Bluetooth Manager Specification Document, VPN SPC087-058-01
Verix eVo Bluetooth Manager User Guide, VPN DOC00327
Verix eVo Volume I: Operating System Programmers Manual, VPN
DOC00301
E355/E265 USER AND BEST PRACTICES GUIDE 7
PREFACE
NOTE
CAUTION
WARNING

Conventions and Acronyms

Verix eVo Volume II: Operating System and Communication Programmers
Manual, VPN DOC00302
Verix eVo Volume III: Operating System Programming Tools Reference
Manual, VPN DOC00303
Verix Package Installer (VPI) User Guide, VPN DOC00385
Conventions and
Acronyms
Document
Conventions
This section describes the conventions and acronyms used in this guide.
V arious conventions are used to help you quickly identify special formatting. Table
1 describes these conventions and provides examples of their use.

Table 1 Document Conventions

Convention Meaning Example
Blue Text in blue indicates terms
that are cross referenced.
Italics Italic typeface indicates
book titles or emphasis.
Courier The courier type face is
used while specifying onscreen text, such as text that you would enter at a command prompt, or to provide an URL.
The pencil icon is used to highlight important information.
See Conventions and Acronyms.
You must install a roll of thermal­sensitive paper in the printer.
http://www.verifone.com
RS-232-type devices do not work with the PINpad port.

Abbreviations

Table 2 shows the abbreviations used throughout this guide.
Table 2 Abbreviations
8 E355/E265 USER AND BEST PRACTICES GUIDE
The caution symbol indicates possible hardware or software failure, or loss of data.
The lightning symbol is used as a warning when bodily injury might occur.
Unit of Measure Definition
KB Kilobyte MB Megabyte msec millisecond
The terminal is not waterproof or dustproof, and is intended for indoor use only.
Due to risk of shock do not use the terminal near water.
PREFACE
Conventions and Acronyms

Acronym

Acronyms are used in place of the full definition.
Table 3 Acronym Definition
Acronym Definition
ADK Application Development Toolkit ASCII American Standard Code for Information Interchange BT Bluetooth CRC Cyclic Redundancy Check, a method to check for data errors FIFO First In, First Out iAP1 Apple accessory protocol for 30 pin connector devices iAP2 Apple accessory protocol for Lightning connector devices mADK PWM application using ADK MFi Made for iPhone/iPod/iPad NFC Near Field Communication OBEX Object exchange profile of Bluetooth PAN Personal Area Network PD Power Delivery, controller for Windows charging PWM PAYware Mobile Reader (mPOS) SSP Secure Simple Pairing SPP Serial Port Profile of Bluetooth VTM Verix Terminal Manager XPI External PINpad Interface Application

Terminology

Table 4 lists the standard terms used in this manual and their definition.
Table 4 Definition of Terms
Term Definition
ACK Acknowledgement code that signal is successfully received Hyper Terminal Terminal emulation program capable of connecting to systems
through TCP/IP networks, Dial-up modems, and COM ports.
iOS Apple’s proprietary mobile operating system for iPhone, iPad, and
iPod touch devices NAK Negative acknowledgment, a signal is received with errors PMR-MUX2 Verifone proprietary protocol for communicating with smart devices Smart Device Refers to iPad mini, iPad mini 4, iPod, Android tablet, Windows
Tablet, iPhone, Android phone, Windows phone Standalone An e355 not connected to smart device Mobile PINpad
mode
e355 connected to smart device
E355/E265 USER AND BEST PRACTICES GUIDE 9
PREFACE
Conventions and Acronyms
10 E355/E265 USER AND BEST PRACTICES GUIDE

e355 Device

CHAPTER 1
e355 is a flexible payment device, which can operate in standalone mode (POS) or Mobile PINpad mode (mPOS). In standalone mode, the application running on e355 utilizes the e355 unit to complete the POS transaction. In Mobile PINpad mode, the e355 unit and a smart device are used together to complete the POS transaction. The smart device and e355 connection is either wired or wireless. Wired connection is via USB interface and modular frame, and wireless connection is via Bluetooth and optional frame.

Device Features

e355 offers the following features:
Color LCD Display of size 320 x 240
Triple-track magnetic stripe card reader
Smart card reader
Contactless/NFC reader
1D/2D Barcode reader
Bluetooth+Wi-Fi combo module
Integrated mechanical keypad
8 pin frame connector for modular frames
Removable battery of capacity 1960mAh
Barcode buttons
MSAM (Micromodule-size security access module) card
PCI PTS 4.0 security compliance
E355/E265 USER AND BEST PRACTICES GUIDE 11
E355 DEVICE
LCD DISPLAY
KEYPAD
2D IMAGER
BARCODE BUTTON
POWER LED INDICATOR
SIDE MICRO-USB PORT
FRAME CONNECTOR
MAGNETIC STRIPE READER
SMART CARD READER
MSAM COMPARTMENT
BATTERY COMPARTMENT
BARCODE BUTTON
Device Features
Below are the terminal features on the front panel.
Figure 1 Front Panel Features
Figure 2 shows the terminal features on the back panel.
Figure 2 Back Panel Features
12 E355/E265 USER AND BEST PRACTICES GUIDE
E355 DEVICE

Software Features

Software
Features

Low Power Modes

Loadable drivers

e355 supports the following software features:
“Always On/Instant Activate” design similar to e315. Remote wake on data, no data loss. All communication modes (USB, BT and Wi-Fi) support low power modes. Sleep walking API (dark wake) feature from VX 690 device is supported.
Most e355 drivers are downloadable. This gives the advantage of updating the driver without updating the OS. The following drivers are downloadable:
Bluetooth
Wi-Fi
Barcode
USB device
USB host
iAP1
iAP2
PMR-MUX2
Mobile PINpad
Architecture

Modular frame

iOS, Android/
Windows Protocols
Frame Manager
Ethernet-USB
Battery monitor, and
Contactless
e355 has the same Mobile PINpad architecture as the e315 device, providing support of same virtual communication ports COM1A, COM1B, COM1C, COM1D and COM1E over the protocols iAP1/iAP2 or PMR-MUX2 used to communicate with smart device.
e355 can dock into different frames for connecting with iOS, Android, and Windows smart devices. Frame detection and configuration happen early on during e355 power-up. This means that users will need to restart e355 when they switch to a different frame configuration. The default frame configuration is Bluetooth, this is when there is no frame detected or error in frame detection occurs.
e355 supports iAP1 protocol for iOS devices having 30 pin connector, iAP2 protocol for iOS devices having lightning connector and PMR-MUX2 protocol for all Android and Windows devices. Wired connection (USB interface) uses any of the three protocols iAP1, iAP2 and PMR-MUX2, whereas wireless (BT) interface does not support iAP1, but supports iAP2 and PMR-MUX2 protocols.
E355/E265 USER AND BEST PRACTICES GUIDE 13
E355 DEVICE
Software Features

Bluetooth Support

Wi-Fi Support

VTM on the Display

Software Changes
for PCI4
e355 shares the same hardware family as VX 690 device. The BT solution also uses StoneStreetOne (SS1) BT stack. New SPP Server mode is supported, which allows e355 to be discoverable in this configuration. Pairing modes are compliant with PCI4 standard and supported profiles are SPP, OBEX and PAN.
e355 shares the same hardware family as VX 690 device and the same software stack used by VHQ for device management. Mobile PINpad architecture is not supported over Wi-Fi.
The e355 VTM is displayed on an LCD display unlike the e315's VTM, which is displayed on a remote PC terminal such as Hyper Terminal. VTM menu layout is similar as e315 and other Verix terminals. New menus such as sof tware ve rsions, barcode diagnostic, contactless diagnostic, and IPP and ADE keys KSI information are added.
The following software changes comply with PCI4 security standard:
Added 24-hour restart change for memory initialization and file system
integrity check.
Pre-expired passwords for key loading menus in VTM for RKL, ADE and IPP
keys.

Charging Schemes

Software Packaging

Full system integrity check (file system integrity and binary files authentication)
at every boot-up.
OS software hardening with buffer clearin g in secure modules af ter usage and
static code analysis fixes.
Restrictions to BT pairing modes, only SSP numeric comparison is allowed.
Hardware supports simultaneous charging of e355 and smart device from frame connector only (i.e., barrel and gang charger). However , simult aneous charging is not supported from the side Micro-USB port of e355. Power sharing is also not supported. Sequential charging is only supported in iPod 6 frame configuration through the side Micro-USB port.
e355 uses Verix Package Installer (VPI) tool for packaging OS, drivers, EOS, CTLS and applications. This allows for download of multiple components in single download step with guaranteed order of install and to speed up package installation process. NOVA package name is used for internal releases of e355 software, for example NOVA-01.00.03. Customer pa ckages are released on top of the base NOVA packages with desired configuration parameters and software components. For example, for Verizo n custom er.
ZNOVA-01.01.02
is created on top of
NOVA-01.00.03
14 E355/E265 USER AND BEST PRACTICES GUIDE

Architecture

NOTE
CHAPTER 2
The e355 operates in Standalone and Mobile PINpad modes.
Standalone
Architecture
In this mode, e355 is not attached to a smart device and not docked in modular frame. The payment application that processes the p ayment runs on the e355 and the payment transactions are displayed on its LCD d isplay. Communications from e355 to payment gateway is via Wi-Fi or Bluetooth interface only.
Figure 3 Communication via Wi-Fi Access Point, Bluetooth Access
Point, or Tethered Host via BT PAN Profile
Key Points in this set-up:
1 *GO configuration variable is set to payment application. 2 Disables the start-up of Control, Barcode, and Bluetooth Manager
applications.
3 Virtual Communication ports COM1A to COM1E are disabled. 4 Protocols iAP1, iAP2 and PMR-MUX2 for communicating with smart device
are disabled.
5 OS drivers, EOS, COMM engine (CE), and libraries are all available for use. 6 Possible to access control and barcode applications from payment
applications using pipe interface.
Smart Device P AN mode (tethering) is usually only supported on th e devices that
have a 3G/4G radio installed.
E355/E265 USER AND BEST PRACTICES GUIDE 15
ARCHITECTURE
1
QZ.
#
X
2
ABC
3
DEF
4
GHI
5
JKL
6
MNO
7
PRS
8
TUV
9
WXY
*
,
0
-SP
e355 Side
iPad mini Side
1
QZ.
#
X
2
ABC
3
DEF
4
GHI
5
JKL
6
MNO
7
PRS
8
TUV
9
WXY
*
,
0
-SP

Mobile PINpad Architecture

Mobile PINpad
Architecture
In this mode, e355 is attached to a smart device and connected via USB or Bluetooth interface. Payment application runs on the smart device and it drives the e355 to perform actions of reading card data, taking PIN number, and displaying messages on the LCD screen. The e355 provides five virtual communication ports to the applications, which are multiplexed over USB or Bluetooth interface. The iAP1/iAP2 and PMR-MUX2 protocols have the ability to provide multiple virtual ports over single interface.
Figure 4 e355 To iPad mini via USB Interface
Figure 5 shows connection via BT.
Figure 5 e355 to iPad mini Via Bluetooth Interface
16 E355/E265 USER AND BEST PRACTICES GUIDE
ARCHITECTURE
Protocol string1
Smart Device
Protocol string2 ... Protocol string5
COM1A
e355
...
COM1B COM1E
Mobile PINpad Architecture
Virtual
Communication
Ports
By virtue of iAP1/iAP2/PMR-MUX2 protocols, the smart device and e355 can use separate communications ports. The smart device uses a unique protocol string for starting the communications with corresponding virtual communication port on e355 side.
Figure 6 Virtual Communication Port Architecture

Protocol Strings

Table 5 presents the protocol strings for iOS devices with Lightning and 30-pin
connectors, and the associated virtual COM ports.
Table 5 iOS Protocol Strings
Protocol Strings on iOS Virtual COM Ports on e355
com.verifone.pmr.xpi COM1A com.verifone.pmr.barcode COM1B com.verifone.pmr.zontalk COM1C com.verifone.pmr.control COM1D com.verifone.pmr.debug COM1E
Apple iOS device with Lightning connector uses iAP2 protocol to communicate with e355, and Apple iOS device with 30-pin connector uses iAP1 protocol to communicate with e355. Both iAP1 and iAP2 protocols use the same protocol strings on iOS device. For more information on communicating with accessory using protocol strings, refer to External Accessory Framework on the Apple developer website.
Table 6 shows protocol strings (commands) for Android/Windows devices and the
associated virtual COM ports.
Table 6 Android/Windows Protocol Strings
Protocol Strings on Android/Windows
<0xFF5A><o2><CRC> COM1A <0xFF5A><o3><CRC> COM1B <0xFF5A><o4><CRC> COM1C
Virtual COM Ports on e355
E355/E265 USER AND BEST PRACTICES GUIDE 17
ARCHITECTURE
Mobile PINpad Architecture
Table 6 Android/Windows Protocol Strings (continued)

Device Ports

Protocol Strings on Android/Windows
<0xFF5A><o5><CRC> COM1D <0xFF5A><o6><CRC> COM1E
Virtual COM Ports on e355
PMR-MUX2 protocol uses commands to open, send, and close the communications ports. For full details on the PMR-MUX2 protocol, refer to section
PMR-MUX2.
Applications running on e355 open the virtual COM device ports COM1A, COM1B, COM1C, COM1D, and COM1E. These applications respond to the data sent to these ports.
Table 7 shows the application names that open specific device ports.
Table 7 Applications vs. Device Ports
Virtual COM Port on e355 Application Owner
COM1A mADK/XPI application COM1B Barcode application COM1C Zontalk downloads COM1D Control application COM1E Debug message output
XPI application uses COM1C port for supporting Zontalk downloads in addition to its COM1A port for communicating with smart devices. The last COM1E port is available for debug message output. There are no applications using this port.
Open and Close Events of Communication Ports
The e355 sends a Connect event to its application when application on the smart device opens the port for communication. The e355 sends a Disconnect event to its application when application on smart device closes the communication port. If the e355 application has not opened the device port, but application on smart device tries to open it, then e355 responds with an error code.
Applications on e355 can use API get_port_status() for detecting open and close status of communication port in the smart device application.
Device Port APIs
Following are the APIs used by the device ports.
18 E355/E265 USER AND BEST PRACTICES GUIDE
open()
ARCHITECTURE
open()
This claims ownership of the device. Calling this function also flushes all data an d clears all error conditions in the communication channel. The device names that can be opened for ports are:
"/DEV/COM1A" "/DEV/COM1B" "/DEV/COM1C" "/DEV/COM1D" "/DEV/COM1E" Use get_port_status() to get the status of the smart device connection. A
smart device cannot open a communication port until the e355 application has opened the corresponding device.
close()
Prototype Int open(const char *devname, int attributes);
Parameters
devname Pointer to the null terminated device name string. attributes Ignored in this driver.
Return Values Positive integer device handle if successful, or -1 with errno set to an error code
if error occurs.
This releases ownership of the device. Calling this function also flushes all data and clears all error conditions in the communication port.
Prototype int close(int device_handle) parameters:
Parameters
device_handle The handle returned for the device by the open() call.
Return Values Returns 0 for success, -1 with errno set to EBADF if device not open.
E355/E265 USER AND BEST PRACTICES GUIDE 19
ARCHITECTURE
rea d()
read()
This copies message-based data (header, data, CRC) received from the communication port to the given buffer . The actual number of bytes copied may be less than the requested count. In e355, the receive data logic drop s packet s larger than 1024 bytes for iOS devices and 2048 bytes for Android and Windows devices.
The Rx message packets are first put into a FIFO of up to 7 message packet s and a kernel task routes the message packets to the correct device port buffers. It is possible, but unlikely that the kernel task can't keep up with the incoming packet s. If the FIFO overflows, the entire message packet is dropped. When packets are internally dropped, log messages are generated. The end-to-end request/ response handshaking normally prevents buffer overflows.
The read function returns a complete message that is aligned on packet boundaries. The communication port driver does a CRC checksum on the data to assure integrity, but, it does not guarantee delivery.
Prototype int read(int handle, char *buffer, int count);
Parameters
handle The handle returned for the device by the open() call. buffer The buffer from which to copy the data. count The maximum number of bytes requested.
Return Values Returns the number of bytes read, or -1 if an error occurred.
20 E355/E265 USER AND BEST PRACTICES GUIDE
write()
ARCHITECTURE
write()
This copies the given data to system transmit buffers for transmission over the communication port. The function may return before the data is actually sent. In e355, the write() function works differently than a standard serial port. The driver assumes that each write contains a whole packet and that a request/reply type of protocol is running on the link that limits the number of outstanding transmit packets in the buffers. Usually, a device port will have, at most, one outstanding packet in the buffers. No packet is sent until a response is received. There are a total of 7 transmit buffers shared among all channels. If a communication protocol attempts to write when there are no buffers, the error ENOSPC is returned. Each buffer allows up to 1024 bytes for iOS devices and 2048 bytes for Android and Windows devices.
Prototype int write(int handle, const char *buffer, int count);
Parameters
Return Values Returns the number of bytes sent, or -1 if an error occurred.
Reset_port_error()
Prototype int reset_port_error(int handle);
Parameters
Return Values Returns 0 if successful, or -1 if an error occurred.
handle The handle returned for the device by the open() call. buffer The buffer from which to copy the data. count The number of bytes to send.
Resets all error flags for the given communication channel.
handle The handle returned for the device by the open() call.
E355/E265 USER AND BEST PRACTICES GUIDE 21
ARCHITECTURE
Get_port_status()
Get_port_status()
Parameters
Return Values Returns 0 if no output is pending, 1 if output is pending, or -1 if an error occurred
handle The handle returned for the device by the open() call. buffer The 4-byte buffer in which to copy the status information.
and errno is set to an error code. For a communication port, the four status bytes copied into the given buffer are as
follows:
Byte 1: The number of input messages pending.
Byte 2: Event Cause Bits described below.
Byte 3: The number of output messages pending.
Byte 4: The status byte described below.
The event cause bits are set when an event is sent to the application. The application can read the bits to determine the cause of the event. The event cause bits are cleared when they are read. The definitions are as follows:
Table 8 Event Cause Bits
Bit Event Definition
Bit 0 Connect Event Set when a communication port is opened. Bit 1 Disconnect Event Set when a communication port is closed or Bluetooth
connection is lost.
Bit 2 RX Ready Set when new received data is ready to be read.
22 E355/E265 USER AND BEST PRACTICES GUIDE
set_event_bit()
Prototype int set_event_bit(int handle, long bitmask);
Parameters
ARCHITECTURE
set_event_bit()
Allows the application to select one of the event bits that would otherwise be unused, and assigns it to a communication port.
By default, the communication ports do not generate events. This function allows the communication ports to generate events when data is received. This mechanism is provided when almost all the bits in the event mask have already been allocated. However , in a specific terminal installation, many of the predefined event bits are not used.
handle The handle returned for the device by the open() call. bitmask A mask with 1 or 0 bits set corresponding to the event bit.
Return Values Returns 0 if successful. If an error occurs this function returns -1.
get_event_bit()
Prototype long get_event_bit(int handle);
Parameters
Only one event bit may be selected for a given device. The following event bits must not be assigned: EVT_USER, EVT_SHUTDOWN and EVT_SYSTEM.
Any attempt to violate these rules will result in set_event_bit() returning -1 and errno being set to EINVAL. If the command fails, the event bit setting will not be changed.
Allows the application to find out what event, if any, will be generated by the given device. The mask returned will have one bit set that corresponds to the event bit generated by the device.
handle The handle returned for the device by the open() call. bitmask A mask with 1 or 0 bits set corresponding to the event bit.
Return Values Returns 0 if no event is to be generated or a mask with one bit se t, if an event is to
be generated. -1 if the device does not support soft events.
E355/E265 USER AND BEST PRACTICES GUIDE 23
ARCHITECTURE
iap_control_function()
iap_control_function()
Prototype int iap_control_function (int handle, int function);
Parameters
This allows an application to control the keypad state. The possible functions defined in SDK header, SVC.H, are:
IAP_CONTROL_KEYPAD_SLEEP, turns off the keypad.
IAP_CONTROL_KEYPAD_WAKE, turns the keypad on.
IAP_CONTROL_DISABLE_KEYBEEP, turns off the keypad beeps.
IAP_CONTROL_ENABLE_KEYBEEP, turns on the keypad beeps.
handle The handle returned for the device by the open() call. function An integer specifying the function to be performed.
Return Values Returns 0 if successful. If an error occurs, the function returns -1 and errno is se t
to an error code.
iap_get_keypad_state()
Copies the keypad status to the given buffer. The first byte is the "Enable State." The second byte is the "Beep State." The two status bytes are as follows:
<Enable State>
0 if keypad is disabled, 1 if keypad is enabled and awake, 2 if keypad is enabled, but still waking up.
<Beep State>
0 if beeps are disabled, 1 if beeps are enabled.
Prototype int iap_get_keypad_state (int handle, char*buffer);
Parameters
handle The handle returned for the device by the open() call. buffer A buffer of at least 2 bytes to hold keypad status.
Return Values Returns 0 if successful. If an error occurs, the function returns -1 and errno is se t
to an error code.
24 E355/E265 USER AND BEST PRACTICES GUIDE
Loading...
+ 54 hidden pages