ID Systems, 11(13), December 1991.
Bar Code Reading with Wedges
If you can plug in your toaster without electrocuting yourself, you can add bar code reading capabilities to virtually any computer application.
If that sounds like a strong claim, it is. And it can be backed up by any number of vendors that manufacture low cost bar code readers called wedge readers.
The devices I have used take no more installation than removing them from their boxes, unplugging your computer/terminal keyboard, plugging the wedge reader into the computer/keyboard and plugging your keyboard into the wedge reader. From that time on, any bar code data scanned by the wedge reader literally looks like keystrokes typed on the keyboard. A diagram of what the connections look like is shown in figure 1.
The No Connection Keyboard Wedge Reader
Both Cherry Manufacturing and Keytronics make a PC keyboard that eliminates even the step of plugging the keyboard wedge reader's interface box. These keyboards offer the full range of keyboard features and those of a complete keyboard wedge unit built into the keyboard itself.
Scanner Options
While the least expensive, and most common, wedge reader scanning device is the hand held contact scanning wand, you are not limited to that one device. Most of the wedge readers offer a choice of the hand held wand, a slot reader that you can slide ID cards through, or a hand held laser scanner.
Many of the hand held contact scanning wands are visible light, meaning they will work with a wide variety of bar code printing techniques, including bar codes printed with dot matrix printers. You can, however, get infrared scanning wands as options (they are standard on some very low cost units).
Remember that infrared scanners only react to bar codes with high carbon content, making them incompatible with many bar code printing techniques. However those same limitations can become an advantage if you need security since you can overprint your bar code with a non-carbon ink to conceal it from human observation.
I would suggest staying with visible light wand scanners unless you are absolutely certain about your bar code sources.
A bulkier, and considerably more expensive, scanning option is the hand held laser scanners. These scanners, which look like a distorted gun, do not have to touch the bar code in order to read it. That is in contrast to the wands which must actually be in contact with the bar code to successfully read it.
Non-contact scanners such as the laser scanners are useful where the same bar codes are read many times. If you use a contact type scanner many times on the same bar code, you will quickly wear out the bar code causing an unacceptable number of bad reads.
Fortunately the built-in error checking of the common bar symbologies allow detection of the bad reads, but it is still extremely frustrating to the user to have to scan a bar code several times. When the first read rate drops below 85%, many users will simply stop using the bar code reader rather than risk having to re-scan the bar code.
In addition, the laser scanners can read bar codes on curved or irregular surfaces, making them particularly appropriate in retail store situations.
One caution, make sure the laser scanner and your wedge reader are compatible, not all lasers will work with all readers.
A final scanner option is the cousin of the laser scanner and the contact scanning wand, the charge coupled diode (CCD) contact scanner. This scanner has a fixed array of photodiodes, very much similar to the one used in a contact scanning wand. But from the users point of view it scans more like a laser scanner. And the red light emanating from a CCD wand, coupled with its shape, reinforce the impression.
There are no moving parts in a CCD scanner. Instead, the electronics inside sequentially cause each element in the scanning array to look at the point underneath that diode. CCD scanners are lower cost than their laser cousins and they usually offer very high read rates.
However, they must be in contact with the bar code due to their limited depth of field. And because they use a fixed array of photodiodes, there are limits on the resolution and maximum symbol lengths that can be scanned with a CCD scanner.
But for most applications the CCD offers a good performance mid-point between the low cost of the contact scanning wand and the high performance, higher price of the hand held laser scanner.
Other scanner and reader options include slot badge scanners that you slide an ID card through, or their mag stripe reader equivalents. These can be mounted on a wall for security or time and attendance applications. Or you can get an in-counter laser scanner just like the ones used in retail stores.
The Percon series 20 keyboard wedge unit can even take inputs from two different bar code or mag stripe sources allowing collecting data from two different, but physically close, stations, or integrating data from bar coded and mag stripe sources simultaneously. The dual input feature might find good application in a retail point of sale application where bar codes were used to input SKU information and a mag stripe reader used to collect the customer's credit card information.
Discriminating Tastes
All the units I have used had a nice feature called autodiscrimination. Autodiscrimination means the units were capable of reading several different bar code symbologies at the same time without being told which one is currently being scanned. After the bar code is scanned, algorithms inside the units are able to determine which bar code symbology has just been scanned and decode the bar code appropriately.
Autodiscrimination makes integrating the wedge type bar code readers even easier because the integrator doesn't need to worry what bar code symbology is being used as long as it is one of the supported ones. Thus I was able to scan video tapes, film cans, and even Keno tickets successfully without knowing what symbology they were printed in.
Autodiscrimination is particularly handy where multiple bar code symbologies are being used in a single application. For example, one application I am working with uses a combination of UPC and interleave 2 of 5 coding on items pre-bar coded by our factories combined with code 39 bar coding we produce locally.
All of the units can read several different bar code symbologies. A summary of readers I have used and which symbologies each can read is outlined in figure 2.
Configuration Options
All the wedge readers I have used worked exactly as they came out of the box with no adjustments on my part. All, however, did have switches, used bar coded setup menus, or, in the case of the Percon series 20, an interesting on-screen method, to set various configuration options to optimize their performance or to make them more compatible with the application software.
Configuration options included enabling/disabling recognition of particular bar code symbologies, whether or not to automatically insert a carriage return after each bar code scanned, enabling audio beeps on good scans, key board type, intercharacter delays, preamble/postamble characters (characters inserted by the reader before or after the data scanned), input and output data editing and many other options.
One unique feature of the Worthington Data Solutions WDP Reader and the Percon Series 20 units are you can convert an IBM PC/XT/AT unit into a PS/2 by changing a $35 cable.
Besides, you have the option of mounting the Worthington WDP unit externally, as with the other wedge readers, or internally as a half sized PC interface card. How? You simply take the plastic case apart and inside is a PC half card. Add the enclosed PC mounting bracket and you have the internal version. Finally, by changing some jumpers on the card itself, you can have a bus interface bar code reader. A memory resident program, BUSKEY, makes data collected appear as keystrokes.
In addition, Worthington Data Solutions states that the WDP Reader is compatible with Novell's ELS operating system working on a non-dedicated server. Apparently, ELS in switching from the workstation DOS mode to its protected Novell mode issues keyboard resets that are incompatible with many wedge readers. Worthington Data Solutions has modified to WDP to be fully compatible.
Another interesting, and potentially powerful, feature available with the WDP Reader is a code 39 accumulate mode. That mode, made possible by the WDP Reader's on-board intelligence, allows the use of a bar code "keypad", much like the one used with the Videx Timewand. The difference is by using code 39, both numbers and letters can be input.
By utilizing an extension to code 39, called Full ASCII, many of the readers can input, accumulate and transmit the entire ASCII character set including control characters and keyboard function keys. This very flexible input capability allows full data entry in situations where it is impossible to have prepared bar codes for all possible input data. Plus it makes it possible to integrate them with more applications without modification.
Not Just for PC's
Even though the units I have used were for the IBM PC and its clones, there are keyboard wedge readers for a wide variety of computers and terminals.
Several manufacturers, Percon and Compsee to name two, make keyboard wedges for the Apple Macintosh computer that install and operate as easily as those for the PCs.
Even if you have a mini-computer or mainframe, there are keyboard wedge bar code options available for you. Many of the wedge reader manufacturers have wedge readers for many popular terminals used with these systems. Bar Code Industries and Percon, for example, list over 100 terminals ranging from ADDS through Zenith.
If You've Got One You'll Use It
While I was originally looking at keyboard wedge readers a couple of years ago, a friend, who owned the printing company next to ours, had an interesting problem that was easily solved with a wedge reader.
They had a banking client with a 17,000 name mailing list for a marketing campaign. But before the names were to be used, the segment that targeted each branch's area were to be reviewed by the branch manager and any names they thought were inappropriate for this project were to be deleted.
Early attempts at performing this simple maintenance of the list were slow and error prone. That is until bar codes and a wedge reader were used.
The list was imported into a data base manager and printed on a laser printer with a bar code next to the name and address. That bar code contained a unique number associated with that name and address. The bank managers were given their part of the list and told to cross out those names they didn't want included. When the lists were returned, the bar codes of the names to be excluded were scanned into a program which deleted them from the mailing list.
The total "programming" time for this one-time project was less than one hour. And the names were deleted approximately five to eight times faster than the previous attempt. There was no was to measure how much more accurate this approach was, but it was virtually error free where the other method occasionally deleted the wrong name, resulting in two errors. A "good" name was deleted, and a "bad" name was kept.
RS-232 Software Wedges for PC's
A more difficult to install option for wedge style bar code scanning is the use of an RS-232 bar code reader and software for the IBM PC family called a software wedge.
This is a more difficult option than keyboard wedges because of the inherent complexities added by RS-232 communications and the rather lax adherance to the various standards associated with RS-232 communications.
First, you need to be concerned whether your computer uses a DB-9 or DB-25 connector and whether it is male or female.
Then, baffling to most users, is whether your communications port is set up to be DTE (Data Terminal Equipment) or DCE (Data Communication Equipment). While there are supposedly standards that define the relationship between DCE/DTE and the type of connector used, my experience is there are a number of PCs with non-standard connections.
Next, you need to concern yourself with matching the communications baud rate, number of data bits, number of stop bits and parity between the reader and the computer.
Finally, you can use hardware or software protocols to keep the bar code reader from sending data faster than the computer can handle it--this is called flow control. Most software wedges assume hardware control.
While most manufacturers that make readers that can operate this way can intelligently predict what cable you will need and setting the communications parameters is generally straightforward, it is clear that RS-232 readers with software wedges offer more potential pitfalls than their keyboard wedge counterparts.
The key to the easy use of a RS-232 device is the software wedge. This is a small terminate and stay resident (TSR) program or device driver for the IBM PC that takes information from the RS-232 device and makes it appear as keyboard strokes to the application software.
Software wedges range from extremely simple programs that simply translate characters coming in on the RS-232 port into characters in the keyboard buffer (Worthington Data Systems' Barkey and Percon's TSR software) to powerful subsystems that can manipulate the data before it is put in the keyboard buffer (T.A.L. Enterprises Software Wedge). Worthington Data Systems also has a program that collects in the background, leaving the data in a file for later processing by your application.
The Software Wedge is clearly the most powerful of the RS-232 to keyboard programs, despite its small memory requirements (5,200 bytes of RAM during operation). In addition to hardware busy/ready handshaking, the Software Wedge supports software flow control.
It provides extensive buffering of the incoming data (up to 1024 bytes worth) and is interrupt driven, meaning that it is unlikely that data will be lost despite how fast it might be generated. It can also send acknowledgment strings required by some readers and can be set up to request, or poll, on command from the user.
The Software Wedge supports parsing incoming data, data filtering and keystroke macro insertion plus automatic date and time stamping capabilities.
Beyond RS-232 bar code scanners, the Software Wedge can be used with a wide variety of other devices that generate RS-232 data streams like scales, laboratory instruments
While there is a potential for software conflicts with a TSR and other TSRs or programs, the programs I have used were all "well-behaved" and presented no problems. The makers of the Software Wedge guarantee they will operate in your environment.
Not Every Application Can Benefit
The primary two reasons for utilizing bar coding is to increase data entry speed and accuracy. In most environments, data entry speed can be increased anywhere from 5 to 20 times, depending on the operator (unskilled data entry operators achieve the greatest improvements). And data entry accuracy usually increases anywhere from 50 all the way to 1 millions times.
We ran into an interesting situation where we originally thought using bar coding could achieve significant increases in data entry speed and accuracy. In the end, however, we concluded adding bar coding, at least at one level of implementation, would actually slow down data entry.
It is a labor job costing system, with all data currently input by hand from time sheets maintained by each worker. We quickly ruled out dedicated on-line bar code data entry since the frequency of data production (every 15 minutes to several hours per person) and large number of employees would have meant dedicating too much computer hardware to the task. We also looked at data collection devices such as the Videx Timewand, but were concerned about potential damage or loss of that relatively small device in this industrial environment.
As an interim solution we decided we would try affixing bar code stickers onto the regular time sheets currently being used with the hypothesis they would speed up data entry and improve accuracy. In actually we did improve accuracy, but at a loss of data entry speed. The reason was the operator had to stop keyboard entry, pick up the wand, scan the bar code (which was 6 or 10 characters in length), put the wand back, and resume keyboard entry. That was done twice per data record and took roughly twice as long as simply keying the same data.
In the end, we abandoned the bar codes. Instead, we changed the employee/job codes that were bar coded to include a check character and added other data entry validation techniques.. We also made modifications to the data entry procedures that improved data entry speed by making most of it possible from the numeric keypad.
The lesson we learned was, while bar codes and other technological innovations are many times cost effective, not all applications lend themselves to their utilization. Forcing a new technology into an application it doesn't fit can often be worse than not incorporating any new technology at all.
Integration Issues
How hard it will be to integrate bar code reading into your application is difficult to say. This article describes devices that potentially eliminate the need to modify your application to add bar code reading data entry. At least they eliminate any need for the addition of communications capabilities.
But whether your application will still need higher level modifications will depend in part on if you can control the generation of the bar codes themselves.
If you have control over the bar code generation, you can tailor the information contained in the bar code to be read later so it is completely compatible with your existing application. Modifications to your application won't be necessary.
However, if you can't control the bar code generation, such as an application using the UPC codes on almost every consumer product on the market today, then you may need to modify your application to translate the information read when the bar code is scanned into corresponding information needed by your application. For example, you might need to look for a specific data prefix and translate the UPC code 326285 found on a tube of plumbers caulk into the corresponding factory part number of 25-605.
Even if you end up modifying your application to better integrate bar code reading, the use of wedge readers like these eliminate much of the low level integration necessary with other readers. And in the end, you gain the data entry and accuracy improvements that are encouraging more and more industries to implement bar code labeling and usage.
Plug and Go Bar Code Reading
As you can see, adding bar code reading to your applications can be as simple as unplugging your keyboard and plugging in a bar code wedge reader (or not even plugging in the wedge if you use a keyboard with a built-in wedge). Even using RS-232 readers with software wedges is significantly easier than modifying applications to talk directly to the RS-232 port on your PC. And while getting the data into your application as keystrokes is only part of the overall integration problem, it is often the most difficult part.
Gregg Marshall, CPMR, is president of Rep Connection Inc., a consulting company that works to help maximize the effectiveness of manufacturers and their professional outsourced field sales forces (reps), especially in the areas of electronic commerce and partner results optimization. He is also a frequent speaker and author. Gregg is a past president of the Association of Independent Manufacturers' Representatives (AIM/R), the plumbing and heating rep association, and has served on the Manufacturers Representative Education Research Foundation (MRERF) and Institute for Professional Advancement executive committees. Gregg is currently executive director of the United Sales Agents. He can be reached by e-mail at gmarshall@repconnection.com, by phone at (303) 475-6634, by fax at (509) 479-5254, or by mail at 1641 S. Lansing St. Aurora, CO 80012.