A barcode reader (or barcode scanner) is an optical scanner that can read printed barcodes, decode the data contained in the barcode and send the data to a computer. Like a flatbed scanner, it consists of a light source, a lens and a light sensor translating for optical impulses into electrical signals. Additionally, nearly all barcode readers contain decoder circuitry that can analyze the barcode's image data provided by the sensor and sending the barcode's content to the scanner's output port.
Barcode readers can be differentiated by technologies as follows:
Pen-type readers consist of a light source and photodiode that are placed next to each other in the tip of a pen. To read a barcode, the person holding the pen must move the tip of it across the bars at a relatively uniform speed. The photodiode measures the intensity of the light reflected back from the light source as the tip crosses each bar and space in the printed code. The photodiode generates a waveform that is used to measure the widths of the bars and spaces in the barcode. Dark bars in the barcode absorb light and white spaces reflect light so that the voltage waveform generated by the photodiode is a representation of the bar and space pattern in the barcode. This waveform is decoded by the scanner in a manner similar to the way Morse code dots and dashes are decoded.
Laser scanners work the same way as pen-type readers except that they use a laser beam as the light source and typically employ either a reciprocating mirror or a rotating prism to scan the laser beam back and forth across the barcode. As with the pen-type reader, a photo-diode is used to measure the intensity of the light reflected back from the barcode. In both pen readers and laser scanners, the light emitted by the reader is rapidly varied in brightness with a data pattern and the photo-diode receive circuitry is designed to detect only signals with the same modulated pattern.
CCD readers use an array of hundreds of tiny light sensors lined up in a row in the head of the reader. Each sensor measures the intensity of the light immediately in front of it. Each individual light sensor in the CCD reader is extremely small and because there are hundreds of sensors lined up in a row, a voltage pattern identical to the pattern in a barcode is generated in the reader by sequentially measuring the voltages across each sensor in the row. The important difference between a CCD reader and a pen or laser scanner is that the CCD reader is measuring emitted ambient light from the barcode whereas pen or laser scanners are measuring reflected light of a specific frequency originating from the scanner itself. LED scanners can also be made using CMOS sensors, and are replacing earlier Laser-based readers.[better source needed]
Two-dimensional imaging scanners are a newer type of barcode reader. They use a camera and image processing techniques to decode the barcode.
Video camera readers use small video cameras with the same CCD technology as in a CCD barcode reader except that instead of having a single row of sensors, a video camera has hundreds of rows of sensors arranged in a two dimensional array so that they can generate an image.
Large field-of-view readers use high resolution industrial cameras to capture multiple bar codes simultaneously. All the bar codes appearing in the photo are decoded instantly (ImageID patents and code creation tools) or by use of plugins (e.g. the Barcodepedia used a flash application and some web cam for querying a database), have been realized options for resolving the given tasks.
Omnidirectional scanning uses "series of straight or curved scanning lines of varying directions in the form of a starburst, a Lissajous curve, or other multiangle arrangement are projected at the symbol and one or more of them will be able to cross all of the symbol's bars and spaces, no matter what the orientation. Almost all of them use a laser. Unlike the simpler single-line laser scanners, they produce a pattern of beams in varying orientations allowing them to read barcodes presented to it at different angles. Most of them use a single rotating polygonal mirror and an arrangement of several fixed mirrors to generate their complex scan patterns.
Omnidirectional scanners are most familiar through the horizontal scanners in supermarkets, where packages are slid over a glass or sapphire window. There are a range of different omnidirectional units available which can be used for differing scanning applications, ranging from retail type applications with the barcodes read only a few centimetres away from the scanner to industrial conveyor scanning where the unit can be a couple of metres away or more from the code. Omnidirectional scanners are also better at reading poorly printed,wrinkled,or even torn barcodes.
While cell phone cameras without auto-focus are not ideal for reading some common barcode formats, there are 2D barcodes which are optimized for cell phones, as well as QR Codes (Quick Response) codes and Data Matrix codes which can be read quickly and accurately with or without auto-focus.
Cell phone cameras open up a number of applications for consumers. For example:
A number of enterprise applications using cell phones are appearing:
Barcode readers can be distinguished based on housing design as follows:
Early barcode scanners, of all formats, almost universally used the then-common RS-232 serial interface. This was an electrically simple means of connection and the software to access it is also relatively simple, although needing to be written for specific computers and their serial ports.
There are a few other less common interfaces. These were used in large EPOS systems with dedicated hardware, rather than attaching to existing commodity computers. In some of these interfaces, the scanning device returned a "raw" signal proportional to the intensities seen while scanning the barcode. This was then decoded by the host device. In some cases the scanning device would convert the symbology of the barcode to one that could be recognized by the host device, such as Code 39.
As the PC with its various standard interfaces evolved, it became ever easier to connect physical hardware to it. Also, there were commercial incentives to reduce the complexity of the associated software. The early "Keyboard wedge" hardware plugged in between the PS/2 port and the keyboard, with characters from the barcode scanner appearing exactly as if they had been typed at the keyboard. Today the term is used more broadly for any device which can be plugged in and contribute to the stream of data coming "from the keyboard". Keyboard wedges plugging in via the USB interface are readily available.
The "keyboard wedge" approach makes adding things such as barcode readers to systems simple. The software may well need no changes.
The concurrent presence of two "keyboards" does require some care on the part of the user. Also, barcodes often offer only a subset of the characters offered by a normal keyboard.
Subsequent to the PS/2 era, barcode readers began to use USB ports rather than the keyboard port, this being more convenient. To retain the easy integration with existing programs, it was sometimes necessary to load a device driver called a "software wedge", which facilitated the keyboard-impersonating behavior of the old "keyboard wedge" hardware.
Today, USB barcode readers are "plug and play", at least in Windows systems. Any necessary drivers are loaded when the device is plugged in.
Some modern handheld barcode readers can be operated in wireless networks according to IEEE 802.11g (WLAN) or IEEE 802.15.1 (Bluetooth). Some barcode readers also support radio frequencies viz. 433 MHz or 910 MHz. Readers without external power sources require their batteries be recharged occasionally, which may make them unsuitable for some uses.
The scanner resolution is measured by the size of the dot of light emitted by the reader. If this dot of light is wider than any bar or space in the bar code, then it will overlap two elements (two spaces or two bars) and it may produce wrong output. On the other hand, if a too small dot of light is used, then it can misinterpret any spot on the bar code making the final output wrong.
The most commonly used dimension is 13 mil (0.013 in or 0.33 mm), although some scanners can read codes with dimensions as small as 3 mil (0.003 in or 0.075 mm). Smaller bar codes must be printed at high resolution to be read accurately.