IP Library › Granted Patent US 10,146,978
Granted Patent B2
US 10,146,978 · App. 14/799,422 · Granted Dec 4, 2018

Apparatus and method for accurate barcode scanning using dynamic timing feedback

Inventor: Scott Zimmerman (Mountain View, CA)
Assignee: Afero, Inc.
G06K7/1486G06K7/1452
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,146,978
App. No.
14/799,422
Granted
Dec 4, 2018
Kind
B2
Abstract

An apparatus and method are described for accurately reading barcodes. For example, one embodiment of an apparatus comprises: a sensor to detect transitions between bars on a barcode having bars with N different widths as the barcode passes by the sensor; a timer to associate a time value with each of the transitions; a delta calculation module to determine a current delta value for a current bar; a bar identification module to compare the current delta value with N delta values stored in a memory, each of the N delta values associated with a different one of N different bar widths, the bar identification module to identify the current bar as being one of the N widths based on a difference between the current delta value and each of the N delta values, the bar identification module to update the memory to include the current delta value as a representative value for the one of the N widths which the current bar is determined to be; and a code translation module to receive a sequence of detected bar widths from the bar identification module and responsively translate the sequence of detected bars into a code.

Claims (39)

1. An apparatus comprising:

a sensor to detect transitions between bars on a barcode having bars with N different widths as the barcode passes by the sensor;

a timer to associate a time value with each of the transitions;

a delta calculation module to determine a current delta value for a current bar;

a memory to store N delta values;

a bar identification module to compare the current delta value with one or more of the N delta values stored in the memory, each of the N delta values associated with a different one of N different bar widths, the bar identification module to identify the current bar as being one of the N widths based on a difference between the current delta value and each of the N delta values,

the bar identification module to update the memory to include the current delta value as a representative value for the one of the N widths which the current bar is determined to be, the current delta value replacing a prior delta value as the representative value for the one of the N widths, the bar identification module to use the current delta value to compare to subsequent delta values read from the same barcode as the current delta value; and

a code translation module to receive a sequence of detected bar widths from the bar identification module and responsively translate the sequence of detected bars into a code.

2. The apparatus as in claim 1 wherein the delta calculation module determines the current value by taking the difference between a first time at a transition point between the current bar and a next bar and a second time at a transition point between a previous bar and the current bar.

3. The apparatus as in claim 1 wherein the bar identification module identifies the current bar as being one of the N different widths by choosing the smallest difference between the current delta value and the delta values of each of the N different widths.

4. The apparatus as in claim 3 wherein N=2 and the bar width comprise narrow bars and wide bars.

5. The apparatus as in claim 4 wherein the barcode comprises a Code39 barcode.

6. The apparatus as in claim 3 wherein the barcode comprises a first set of N bars each having a different one of the N widths and positioned in a known order, wherein the delta calculation module is to determine initial delta values for each of the N bars using the known order.

7. The apparatus as in claim 6 wherein the delta calculation module is to initially compare a current delta value of a current bar with the initial delta values for each of the N bars.

8. The apparatus as in claim 1 further comprising:

a hub communicatively coupled to the code translation module, the hub having a first communication interface to communicatively couple the hub to a cloud service over the Internet, the hub to responsively transmit the code over the Internet to the cloud service.

9. The apparatus as in claim 8 wherein the hub comprises a second communication interface to establish local wireless connections with a plurality of devices, wherein the barcode is associated with a new device being communicatively coupled to the hub, the hub registering and/or pairing the device using the code provided by the code translation module.

10. The apparatus as in claim 9 wherein the code comprises a key associated with the device and usable for encrypting communication or generating digital signatures when communicating with the device.

11. A method comprising:

detecting transitions between bars on a barcode having bars with N different widths as the barcode passes by the sensor;

associating a time value with each of the transitions;

determining a current delta value for a current bar;

storing N delta values in a memory;

comparing the current delta value with one or more of the N delta values stored in the memory, each of the N delta values associated with a different one of N different bar widths;

identifying the current bar as being one of the N widths based on a difference between the current delta value and each of the N delta values;

updating a memory to include the current delta value as a representative value for the one of the N widths which the current bar is determined to be, the current delta value replacing a prior delta value as the representative value for the one of the N widths;

using the current delta value to compare to subsequent delta values read from the same barcode as the current delta value; and

receiving a sequence of detected bar widths; and

responsively translating the sequence of detected bars into a code.

12. The method as in claim 11 wherein the current value is determined by taking the difference between a first time at a transition point between the current bar and a next bar and a second time at a transition point between a previous bar and the current bar.

13. The method as in claim 11 wherein the current bar is identified as being one of the N different widths by choosing the smallest difference between the current delta value and the delta values of each of the N different widths.

14. The method as in claim 13 wherein N=2 and the bar width comprise narrow bars and wide bars.

15. The method as in claim 14 wherein the barcode comprises a Code39 barcode.

16. The method as in claim 13 wherein the barcode comprises a first set of N bars each having a different one of the N widths and positioned in a known order, wherein initial delta values are determined for each of the N bars using the known order.

17. The method as in claim 16 wherein a current delta value of a current bar is initially compared with the initial delta values for each of the N bars.

18. The method as in claim 11 further comprising:

providing the code to a hub, the hub having a first communication interface to communicatively couple the hub to a cloud service over the Internet, the hub to responsively transmit the code over the Internet to the cloud service.

19. The method as in claim 18 wherein the hub comprises a second communication interface to establish local wireless connections with a plurality of devices, wherein the barcode is associated with a new device being communicatively coupled to the hub, the hub registering and/or pairing the device using the code provided by the code translation module.

20. The method as in claim 19 wherein the code comprises a key associated with the device and usable for encrypting communication or generating digital signatures when communicating with the device.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 11, 2016
From: ZIMMERMAN, SCOTT
To: AFERO, INC.
Reel/Frame 037719/0425 →
Continuity (1)
Related Publication 20170017822A1 · Jan 19, 2017