Tuesday, 18 March 2014
Zebra ZXP8 contact encoder fiasco
Read this if you want to use contact cards (SIMs, smartcards) with a Zebra.
I blogged a little while ago how the Zebra ZXP8 lists "encoding options" including a "contact station" and how it turns out that this does not actually do anything - it runs the contacts to a 9 way D type at the back.
I made a bodged up work around with a Raspberry Pi and a USB cherry keyboard card reader PCB and 9-way D type. It worked, but was a bodge.
Zebra wanted around £500 for the upgrade to the "contact/mifare encoder" and another £500 to install it, but after my blog they said they would install on-site for free. I was prepared to give Zebra £500 to "do it right" and not use my bodge.
Well, on-site turned in to off-site but sending a car to get it and return it that day.,
Then "same day" turned in to collect Friday and send by courier Monday for arrival Tuesday.
Having finally got the printer back with the "proper" reader, I just needed to use the SDK test app to talk to the card so I could dump how it did it. I was not expecting any support on their underlying protocol, as it had been easy enough to decode so far, but we had installed the drivers and SDK demo on a windows machine (again, as last one was nicked). But no joy - it still did not see the cards or allow any commands to be sent or anything.
I chased this up with support, especially as I noticed a comment in the config along the lines of comms_channel=usb_2_0. Hmmm. I was reassured "ethernet should work fine". We had, after all, bought an Ethernet connected printer. The printer is not in the same building, let alone the same town, as the machine that does the printing of cards.
Finally, after waiting all day I am told that no, the contact encoder does not actually work over the Ethernet interface at all - the printer does not talk to it. It simply has a USB hub and presents the reader on the USB port. I got a printer with Ethernet for a reason! But they have a workaround, which is to buy a "ZBR-PS300 module" which looks to be a few hundred more.
None of this in the the brochure.
Talking to a contact card is technically simple, even to just bit bash or use a serial port. Insisting on a dedicated "encoder" is not totally daft, but you would make it talk to the controller in the printer, obviously - just like the mag stripe encoder does. It is not rocket science. I am shocked that the whole thing is designed so badly and sold so badly at every single stage. It took 5 months of asking how we talk to the contact station to get an answer that we need the mifare module, and now to find that also does not actually do anything without yet another module is beyond belief.
So, if you want to do card encoding, it cannot all be cleanly integrated without a lot of extra modules at a lot of extra cost. What I recommend is a cheap USB card reader, and wire its contacts to a 9-way and use the contact station option. Far cheaper and no less messy than their proposed solution.
In the mean time, I've published my linux command line printing tools here, as Zebra do not do such a thing.
Right now I am waiting for them to undo this mess, re-instate the contact station, refund what I paid for the upgrade, and at least apologise.
Update: Zebra have discussed this and decided that the contact station and our our reader is probably the way forward and they are changing that for us tomorrow. Yay!
Update: Zebra have returned the printer to a contact station, and we are getting a refund for the mifare encoder. We now have it working again, and integrated in to our printing tools.