I had the pleasure of working with a signature capture device recently. Anyone need to get customer signatures at the Point Of Sale?
The specific device I’m using is the Topaz Systems 1×5 pad, which is 1 inch high by 5 inches long. The consumer doesn’t see their signature in this basic device. For that an upgrade to the LCD device required. This unit sells for something between US$100-150. Pricing for other models is higher depending on features.
As you’re probably aware from this blog, I do most of my work with .NET tools so I did my first sample application with C#. But they have an ActiveX control for COM (VB6 and others), Java, and C++. The variety of devices, installables, language options, and documentation can initially very confusing, but don’t let that stop you from looking into this. That said, if you don’t use anything but MV BASIC then using this device on your own will be tough. As you will see here, I’ve created a BASIC interface for it, so please feel free to contact me if you’d like to discuss using what I’ve written.
I have a CD that came with the device. It has the expected drivers and documentation. From experience I know better than to install anything from CDs, which are usually outdated as soon as the product hits the shelves. So I downloaded the latest drivers and docs from the website.
The topazsystems.com website has a lot of developer information, some software demos, and other utilities. Figuring out exactly which download to install was tough because they have so many devices and options. Variety isn’t bad but when you just want to make a device work, too many links to too many options really just consumes time. Please don’t take this as a negative criticism of anything related to Topaz – I don’t evaluate products based on a company’s web site and “too much” is certainly better than “not enough”. In short, all the info you need is on the website. It’s clear and informative and will get you underway quickly. Just don’t get overwhelmed finding the software and docs you need.
Here are examples of why I think the website is complex, perhaps just to help you avoid what you don’t need so that you can go straight to the goodies.
They have SigPlus Basic and SigPlus Pro development packages. The Basic package has an ActiveX control and a couple Office samples. For Pro there are five options. Under SigPlus Pro .NET you have a choice for 32bit or 64bit, and for each of these you have an option for SE signature pads – which if you don’t have one you don’t know what it is or if you want that package.
For documentation there is a Windows Help File which seems to be just the class member doc auto-generated from XML comments in the source code. There is a separate sigplus.chm which looks like additional documentation but it’s exactly the same thing in a different format. It would be nice if they put the links side by side and said “class library documentation, HTML or CHM format”. Personally I find class library docs to be good only for reference when you are facing a member or property and you need to know its details.
So where is the documentation that explains the process of how we accomplish what we want to do: activate the device, deactivate the device, save digital signature, and save images? The best roadmap for this information is found with the Developers overview of SigPlus PDF. You can find this and other documentation by going to the Information link at the top of any page and selecting the Help Documentation, Help for Developers. You can also select the How-To Guides link from the top-level Downloads menu. These are perfectly reasonable places to find such docs but I wish there was a link directly from the page where we download the developer tools.
Finally, there are a lot of demos, sample source code, free utilities, and helpful notes for every supported platform and device. I understand that Topaz needs to support a variety of devices, languages, and deployment options. But any given developer will probably only want one device, one language, one sample, and one doc to start, and it would be nice to have a form where we can identify needs, click Submit, and get a page with only the information that’s required at the moment. That’s just my opinion – let’s keep going.
Using the signature capture device
Getting over the initial disorientation, the installs are fast and easy and the sample code allows a developer to go from zero to working prototype quickly. After I got a working sample of my own I was left looking at a hundred object methods, wondering which ones were helpful or useless, required or optional. For example, I get a little frustrated with controls that do things for me, like zooming the view on an image, and I have no idea how to turn that off or how to manage it. I’m sure I’ll work this out with some experimentation. The software development FAQ seems to have a lot of valuable information.
The following image shows my first stab at a basic signature capture app for a POS.
I made the text and buttons big and bold so that anyone can see it without squinting. There are only a few buttons, clearly labeled so that anyone can understand what they do. Each button also has an Alt-hotkey so that the mouse isn’t required to use it. When you’re creating a user interface for someone operating a checkout lane, and this is possibly their only experience with a computer on a daily basis, remember the KISS principles of UI design.
The application above is just a simple executable launched from AccuTerm (controlled by MV business software), another program, the desktop, wherever. My utility launches and goes instantly to capture mode so that the clerk just needs to tell the customer to sign, then the clerk hits Alt-S to save – that’s it, it’s a single keystroke operation. In a sample BASIC program I display the captured image on the AccuTerm screen for confirmation. After the screenshot above I added a bold “Capturing” and “Not Capturing” label so there is no doubt what mode the device is in. I may also add a label that tells them to use Alt-S to Save – there’s nothing there to tell the user that they can Alt-S and I’d rather not write software where the user has a convenient option that they never know about, forcing them to grab the mouse when it’s not really required.
Note also that I’m displaying the resulting signature image directly in the AccuTerm character screen. The application/wrapper shown above really isn’t required at all, and a subsequent enhancement might be to (optionally) simply eliminate the extra Windows form. The character-based POS software can display a message to “Ask customer to sign their name”, we transparently do the capture, and the user can just press Enter or something in the app to display the captured image. It would look like this is being done completely from the character UI but with the added benefit of getting an image in the character UI. Why didn’t I do it like this from the beginning? The Windows form displays the signature as it is being captured. If there is something wrong the employee knows just by looking at the screen. The AccuTerm screen can only display an image after it has already been captured, not while it’s in-progress. My preference was to display the signature in real-time.
What do you do with the output?
Contrary to common understanding, there isn’t just an image that’s captured with these devices, like a JPG or TIF file. There is also a SIG file which contains biometric data that uniquely defines the signature, and to some extent it can help to uniquely identify the person providing the signature. By “biometric” I mean that the data in the SIG file includes information like the pressure that was used to sign as well as the velocity (timing) and stroke directions used to input the pixels that compose the signature. The SIG file can also be encrypted with a hash code which binds it to the event for which the user is providing their signature. I won’t get into this aspect at the moment but can clarify if there are a couple requests.
In addition to signature capture devices and software, Topaz also has developer software for comparing signatures. This is based on the velocity, stroke directions, etc, which provides a much better means of comparison than just the visual characteristics of two signatures compared side by side. They have tools for comparing the signatures, so that you can see how an individual’s signatures change over time – thus allowing you to recognize that two signatures are different, but it seems “likely” that they both came from the same person. They also have fingerprint capture/comparison offerings.
I’m no mouthpiece for Topaz or their offerings, just sharing some neat stuff that you can use with your own business application software. Feel free to contact me if you’d like assistance implementing any of this into your business software.[Postscript: I know there are other solutions in our market that bundle signature capture with credit card processing. I’m talking about custom interfaces that aren’t bundled with anything else, for our VAR colleagues to market as their own offerings, as well as solutions for end-users. Signatures, fingerprints, and other similar biometric data can be used for a variety of purposes beyond credit cards. This also extends to any other sort of image scanning and storage of other binary data that’s associated with MV data. There’s nothing wrong with consumers having a choice. 🙂 ]