Opened 11 years ago

Closed 9 years ago

#61 closed enhancement (duplicate)

Cannot read magnetic stripe cards using industry-standard card reader

Reported by: Lewis Rosenthal Owned by: somebody
Priority: minor Component: basedrv
Version: Keywords:
Cc: steve53@…

Description

Mag-Tek MiniUSB Stripe Reader does not work under eCS 2.1, but does under Windows and Linux.

Steps to reproduce:

  1. Connect card reader to USB port.
  2. Open text editor (to accept input).
  3. Swipe credit card.

Result:

Light goes out on card reader (buffer filled), and no data is transferred to the text editor.

Expected result:

Light should blink once as data is entered into buffer and then released. Encoded data (credit card #) should be input as text string in editor.

Comments:

This did not work with the 10.162 stack, and has not worked with any of the newer stacks up through 191. As meantioned above, it works perfectly well under other operating systems on the same workstation. As manually inputting card numbers actually costs a few cents more per transaction than swiping, this can be a deterrent to using eCS in retail applications (the Mag-Tek is the industry standard reader in the USA).

Technical reference manual (293KB) may be downloaded from:

ftp://ftp.2rosenthals.com/pub/Mag-Tek/99875191-13.01.pdf

Change History (9)

comment:1 Changed 11 years ago by David Azarewicz

Type: defectenhancement

This is not a HC or USBD driver issue. These drivers are what most people think of when they say "USB stack". This means you cannot expect any change by trying any of the various version of the "USB stack" that are released. The issue is in the class driver(s) for this device.

The docs say "The device communicates to the host as a vendor-defined HID device." "Vendor-defined" means that it is non-standard and must have support for this type of device coded into the class driver. In fact, the docs say that it will not work with standard keyboard class drivers.

I have changed the type of this ticket to "enhancement". Perhaps we can look into adding support for this type of device, time permitting.

comment:2 Changed 11 years ago by Lewis Rosenthal

Thanks for the follow-up, David, and my apologies for not correctly interpreting the description of the device in the docs (yes, "vendor-defined" should be pretty clear, but sometimes, we read what we want to read, and not what is written!).

I guess my confusion comes from the situation where the device works perfectly fine using the standard drivers under Windows and Linux, but not for us.

comment:3 in reply to:  2 Changed 11 years ago by David Azarewicz

I guess my confusion comes from the situation where the device works perfectly fine using the standard drivers under Windows and Linux, but not for us.

I understand it can be confusing. However, you really cannot compare Windows (or even Linux) software to OS/2 software. It just means that whoever wrote those drivers (on Windows or Linux) chose to implement support for that particular device. Apparently IBM did not. Maybe that device didn't exist at the time IBM wrote the HID driver, or maybe they thought it should be implemented in a separate driver.

comment:4 Changed 11 years ago by Lewis Rosenthal

Thanks, David. For the record, here is an abstract of my ongoing conversation with Stew Montgomery, at MagTek? Support:

Me:

Upon connecting to an OS/2 system and swiping a card, the light goes out on the reader and no data reaches the input screen.

Stew:

I am afraid we rely upon the OS for the driver, and cannot provide one. Does this PC support USB keyboards? If so, it would likely support our USB readers when set to keyboard emulation.

The LED going off and back to green is normal and indicates the reader is sending the data. I suspect the reader you have is set for HID mode - in this mode the app would need to directly communicate with the device through the HID Stack. Switching it to keyboard mode may be performed as follows:

Shift over to a windows PC and perform the following: Install the USB Swipe and Insert Reader Demo: http://www.magtek.com/support/software/demo_programs/usb_swipe_insert.asp

Once installed, open this application. You will be sending commands to the device using the "Send Msg" text box to the right of the "Send Msg" button. Ensure the “Set focus” and “Auto Add Length” check boxes are checked.

The commands to set the device to keyboard emulation: 01 10 01 Place the above in the text box and click the "Send Msg" button.

To reset the unit (so the changes take effect) you will send: 02 Place the above in the text box and click the "Send Msg" button.

After this, close the demo and open Windows Notepad. Swipe a card and ensure the data appears. Next, move the reader to the OS/2 system and check the behavior.

I did this, and indeed the unit was already in keyboard emulation mode. The behavior did not change (light comes on; no data passed). As I've never bumped into a USB keyboard which didn't work with OS/2 or eCS, I'm still puzzled. Dave, your description of the device not being recognized makes sense if we were in HID mode, but must it still be recognized as a particular type of keyboard in order to be treated as such? (Perhaps the docs are unclear about this.)

Is there anything I can gather from my system which might facilitate better understanding of what is being seen by the system and the difference between the two operating modes?

comment:5 Changed 11 years ago by David Azarewicz

When the devices is plugged into the OS2 system, open USBDOCK, right click on your device and select View Report. Post that report in this ticket.

comment:6 Changed 11 years ago by stevenhl

Cc: steve53@… added

comment:7 Changed 11 years ago by Lewis Rosenthal

under eCS 2.1, ThinkPad? T43p, with:

Signature: @#D Azarewicz:10.193#@##1## 14 Jul 2013 20:46:46 DAZAR1 ::::::eCS Version@@eCS USB Device Driver Vendor: D Azarewicz Revision: 10.193 Date/Time?: 14 Jul 2013 20:46:46 Build Machine: DAZAR1 FixPak? Version: eCS Version File Version: 10.193 Description: eCS USB Device Driver

I have:

3-27-06 18:22 12,798 0 USBKBD.SYS

Signature: @#IBM:10.162#@ OS/2 USB Keyboard Client Vendor: IBM Revision: 10.162 File Version: 10.162 Description: OS/2 USB Keyboard Client

I get the following from USBDOCK:

USB Dock: Unknown device Identifier: 0801:0001

<<< Device Description >>> Type :01 USB Rev :110 Class : Reserved (0x00) Subclass : Unknown (0x00) Protocol : Unknown (0x00) Device Information is defined at interface Level Max. packetsize :64 Vendor ID :0x0801 Product ID :0x0001 Device Release# :0100 Number of Configurations:1

Configuration: 0 Length : 34 ConfigurationValue? : 1 Attributes : 0x80 MaxPower? : 0x32 NumInterfaces? : 1

Interface: 0 AlternateSetting? : 0 Class : Human Interface Device (0x03) SubClass? : Boot Interface Subclass (0x01) Protocol : Keyboard (0x01) Endpoints : 1

HID revision : 0101 HID descriptors : 1 HID report type : 0x22 HID report length : 76

Endpoint: 0 Address : 0x81 Attributes : 0x03 (Irq) MaxPacketSize? : 8 Interval : 1

(This is the same output as I get under eCS 2.2, using Rudi's USBKBD.SYS 10.959.)

comment:8 Changed 11 years ago by Lars Erdmann

Component: libusbbasedrv

comment:9 Changed 9 years ago by David Azarewicz

Resolution: duplicate
Status: newclosed

Moved to the Arca Noae bug tracker https://mantis.arcanoae.com/view.php?id=57

Note: See TracTickets for help on using tickets.