Handling Partial Scans - The Challenge of the Incomplete Barcode |
Subtitle: A Deep Dive into How Scanners Detect, Handle, and Recover from Partial Reads - with Real-World Examples from Symbol, Zebra, Honeywell, Datalogic, Cognex, and Microscan |

|
Opening Summary |
In a perfect world, every barcode scan would capture the entire code from the left quiet zone to the right quiet zone. In the real world, users are impatient, hands shake, and objects move. The scanner often captures only a fragment of the barcode - a partial scan. The decoder must detect these partial scans, reject them, or, in some cases, reconstruct the missing parts. Handling partial scans is a critical capability for a robust barcode scanner. |
This article is dedicated to partial scans - the challenges they present and the techniques that decoders use to handle them. We will explore the concept of the partial scan, the detection methods (missing start/stop characters, incomplete data, and length checks), and the recovery techniques (stitching, interpolation, and multiple scan averaging). We will look at how major companies have implemented partial scan handling in their products. We will examine Symbol's (now Zebra's) use of start/stop character detection in the LS2208. We will explore Honeywell's use of partial scan recovery in their Adaptus firmware. We will examine Datalogic's use of multiple scan averaging in their Auto-Adaptive Decoding. We will also look at Cognex's advanced stitching algorithms for machine vision applications. |
By the end of this journey, you will understand that handling partial scans is not just about rejecting bad data but about making the scanner as forgiving as possible to the user. |

|
Full Article |
Section 1: The Problem - The Incomplete Barcode |
A partial scan occurs when the scanner captures only a portion of the barcode. This can happen for several reasons: |
Fast Scanning: The user moves the scanner too quickly across the barcode, and the scanner only captures the middle section. |
Tilted Scanning: The barcode is tilted, and the scanner only captures a diagonal slice. |
Object Movement: The barcode is moving, and the scanner captures only a fragment. |
Poor Aiming: The user does not aim the scanner at the center of the barcode. |
Large Barcodes: The barcode is longer than the scanner's field of view. |

|
Section 2: The Consequences - Decoding Errors |
A partial scan can cause decoding errors. The decoder may misinterpret a fragment of the barcode as a complete barcode, producing a wrong result. Or, the decoder may reject the scan, frustrating the user. |
The best outcome for a partial scan is that the decoder detects it and rejects it. The worst outcome is that the decoder produces a false positive - a wrong barcode that passes the checksum. |
Section 3: The Detection of Partial Scans - The First Line of Defense |
The first line of defense is the detection of partial scans. The decoder uses several methods to detect partial scans: |
Missing Start/Stop Characters: The start and stop characters are missing or incomplete. |
Incomplete Data: The data length is not a multiple of the expected length. |
Length Checks: The barcode length is outside the expected range. |
Checksum Failure: The checksum fails. |
Invalid Patterns: The decoded patterns do not match any known character. |

|
Section 4: Symbol's LS2208 - Start/Stop Character Detection |
Symbol's LS2208 uses start/stop character detection to detect partial scans. The decoder looks for the start and stop characters of the symbology. If either the start or stop character is missing, the scan is rejected. |
The LS2208's start/stop character detection is a simple and effective method. |
Section 5: Honeywell's Adaptus - Partial Scan Recovery |
Honeywell's Adaptus firmware includes advanced partial scan recovery. If the decoder detects a partial scan, it attempts to recover the missing parts. |
The recovery is done by stitching together multiple partial scans or by interpolating the missing data. |
Section 6: Datalogic's Auto-Adaptive Decoding - Multiple Scan Averaging |
Datalogic's Auto-Adaptive Decoding uses multiple scan averaging to handle partial scans. The decoder combines the data from several partial scans to reconstruct the complete barcode. |
The multiple scan averaging is a robust technique for handling partial scans. |

|
Section 7: Cognex's Stitching Algorithms - Reconstructing the Barcode |
Cognex's machine vision algorithms use stitching to reconstruct the barcode. The stitching algorithm combines multiple partial images to create a complete image of the barcode. |
The stitching algorithm is a sophisticated technique that is used in Cognex's DataMan series. |
Section 8: The Start/Stop Character Check - The Simplest Method |
The start/stop character check is the simplest method for detecting partial scans. The decoder verifies that the first and last characters are the start and stop characters. If they are not, the scan is rejected. |
Section 9: The Data Length Check - A Simple Verification |
The data length check is another simple method. The decoder verifies that the number of decoded characters matches the expected length for the symbology. If the length is incorrect, the scan is rejected. |

|
Section 10: The Checksum Check - The Final Verification |
The checksum check is the final verification. The decoder calculates the checksum from the decoded data and compares it to the encoded checksum. If the checksums do not match, the scan is rejected. |
Section 11: The Pattern Validity Check - A Character-Level Check |
The pattern validity check is a character-level check. The decoder verifies that each decoded pattern matches a known character. If a pattern is invalid, the scan is rejected. |
Section 12: The Partial Scan Recovery - Stitching |
Stitching is a technique for recovering partial scans. The stitching algorithm aligns and combines multiple partial scans to create a complete scan. |
The stitching algorithm is used by Cognex and other machine vision companies. |

|
Section 13: The Partial Scan Recovery - Interpolation |
Interpolation is a technique for filling in missing data. The interpolation algorithm estimates the missing pulse widths based on the surrounding data. |
The interpolation is a simpler technique than stitching. |
Section 14: The Partial Scan Recovery - Multiple Scan Averaging |
Multiple scan averaging is a technique that combines data from multiple scans. The averaging reduces the noise and fills in the missing data. |
The multiple scan averaging is used by Datalogic and other scanner manufacturers. |
Section 15: The Partial Scan and the User Interface |
The user interface provides feedback to the user. If a partial scan is detected, the scanner may emit a different beep or flash a different LED. |
The feedback helps the user to adjust the scanning technique. |

|
Section 16: The Partial Scan and the Scanning Speed |
The scanning speed is a major factor in partial scans. A faster scan increases the likelihood of a partial scan. |
The decoder can adjust the detection thresholds for different scanning speeds. |
Section 17: The Partial Scan and the Tilt |
The tilt is another major factor. A tilted barcode is more likely to be partially scanned. |
The decoder can use perspective correction to handle tilted barcodes. |
Section 18: The Partial Scan and the Object Movement |
The object movement is a factor for moving barcodes. The decoder can use motion compensation to handle moving barcodes. |
Section 19: The Partial Scan and the Print Quality |
The print quality affects the likelihood of partial scans. A poorly printed barcode is more likely to cause decoding errors. |
The decoder's tolerance can be adjusted for different print qualities. |

|
Section 20: The Partial Scan and the Noise |
The noise affects the likelihood of partial scans. A noisy signal is more likely to be misinterpreted. |
The decoder's noise immunity must be high. |
Section 21: The Partial Scan and the Symbology |
The symbology affects the likelihood of partial scans. Some symbologies are more robust to partial scans than others. |
Code 39 is robust to partial scans because it has a variable length. |
Section 22: The Partial Scan and the Decoder's Tolerance |
The decoder's tolerance is a trade-off. A higher tolerance increases the chances of decoding a partial scan but also increases the risk of false positives. |
Section 23: The Partial Scan and the False Positive |
A false positive is a wrong barcode that passes the checksum. The decoder must minimize the false positive rate. |
Section 24: The Partial Scan and the False Negative |
A false negative is a correct barcode that is rejected. The decoder must minimize the false negative rate. |

|
Section 25: The Partial Scan and the Decode Security Setting |
The 'Decode Security' setting in Honeywell's scanners affects the tolerance for partial scans. A higher Decode Security setting reduces the risk of false positives but increases the risk of false negatives. |
Section 26: The Partial Scan and the Minimum Contrast Setting |
The 'Minimum Contrast' setting in Datalogic's scanners affects the tolerance for partial scans. A higher Minimum Contrast setting reduces the risk of false positives. |
Section 27: The Partial Scan and the ROI Threshold |
The 'ROI Threshold' in Datalogic's scanners affects the region of interest. A smaller ROI reduces the chance of partial scans but also reduces the field of view. |
Section 28: The Partial Scan and the Stitching Algorithm |
The stitching algorithm is a complex algorithm. It requires image processing and pattern matching. |
Section 29: The Partial Scan and the Interpolation Algorithm |
The interpolation algorithm is a simpler algorithm. It estimates the missing data. |

|
Section 30: The Partial Scan and the Multiple Scan Averaging |
The multiple scan averaging is a simple algorithm. It averages the data from multiple scans. |
Section 31: The Partial Scan in Microchip's Reference Design |
Microchip's reference design does not include specific partial scan handling. The reference design is a basic decoder. |
Section 32: The Partial Scan in NXP's Reference Design |
NXP's reference design also does not include specific partial scan handling. |
Section 33: The Partial Scan in STMicroelectronics' Reference Design |
STMicroelectronics' reference design does not include specific partial scan handling. |

|
Section 34: The Partial Scan and the Future - Machine Learning |
Machine learning can be used to detect and recover partial scans. A neural network can be trained to recognize partial barcode patterns. |
Section 35: The Partial Scan and the Future - Deep Learning |
Deep learning can be used to reconstruct missing parts of the barcode. A deep learning model can be trained to fill in the gaps. |
Section 36: The Partial Scan - A Summary of Best Practices |
Based on our exploration, let us summarize the best practices for handling partial scans in a barcode scanner: |
1. Detect Partial Scans: Use start/stop characters, length checks, and checksums. |
2. Recover Partial Scans (if possible): Use stitching, interpolation, or multiple scan averaging. |
3. Provide Feedback: Let the user know when a partial scan occurs. |
4. Adjust the Tolerance: The tolerance must be balanced to minimize false positives and false negatives. |
5. Test with Partial Scans: The decoder must be tested with a variety of partial scan scenarios. |

|
Final Summary |
Handling partial scans is a critical capability for a robust barcode scanner. A partial scan is an incomplete capture of the barcode. The decoder must detect partial scans and either reject them or recover the missing data. |
We have seen how major companies handle partial scans. Symbol's LS2208 uses start/stop character detection. Honeywell's Adaptus includes partial scan recovery. Datalogic uses multiple scan averaging. Cognex uses stitching algorithms. |
Handling partial scans is not just about rejecting bad data. It is about making the scanner as forgiving as possible to the user. By following the best practices, you can create a scanner that is both accurate and user-friendly. |