Two-dimensional barcode with dynamic environmental data system, method and apparatus

By using sensor-enhanced 2D barcode technology, which utilizes a sensor dye module to change color status in response to environmental changes, the problem of storing and retrieving dynamic environmental data in 2D barcodes under space-constrained conditions is solved, achieving efficient and reliable dynamic data monitoring.

CN113887265BActive Publication Date: 2025-11-04ZEBRA TECHNOLOGIES CORP
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
CN202111098597.4
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2015-03-30
Filing Date
2016-03-30
Publication Date
2025-11-04
Estimated Expiration
2036-05-16

AI Technical Summary

Technical Problem

Existing two-dimensional barcode technology is difficult to effectively monitor and read dynamic environmental data in space-constrained situations, and existing solutions fail to effectively handle dynamic environmental data.

Method used

The sensor-enhanced two-dimensional barcode uses a sensor dye module on the substrate to change color status in response to environmental changes by chemical substances. By combining static ink and dynamic ink printing, dynamic data storage and retrieval can be achieved.

Benefits of technology

It enables efficient storage and retrieval of dynamic environmental data in two-dimensional barcodes, enhances data recovery capabilities, adapts to environmental changes, and improves the reliability and flexibility of data retrieval.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113887265B_ABST
    Figure CN113887265B_ABST
Patent Text Reader

Abstract

The present disclosure provides two-dimensional barcodes with dynamic environmental data systems, methods and apparatus. The sensor information can be environmental, physical or biological properties and record changes in the state of environmental or biological conditions to which a tagged product is exposed. Sensor dye chemistry is employed and causes a change in the color state of a sensor dye module encoding sensor digital information embedded within a sensor-enhanced two-dimensional barcode when a specified condition of the sensed property occurs. Error correction functionality is utilized during the barcode reading process to recover the sensor information.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a continuation of Chinese Patent Application No. 201680020180.7 (PCT International Application No. PCT / US2016 / 024884), filed March 30, 2016, entitled "Two-Dimensional Barcodes with Dynamic Environmental Data Systems, Methods, and Devices." TECHNICAL FIELD

[0002] The present disclosure relates generally to encoded information within two-dimensional barcodes. For example, the present disclosure relates to methods, systems, and devices for combining pre-printed information with dynamically encoded sensor information within a two-dimensional barcode. BACKGROUND

[0003] A barcode is an optically machine-readable representation of data. Two-dimensional (2D) barcodes (e.g., data matrix of QR code) are a two-dimensional way of representing information in a barcode. 2D barcodes can represent more data per unit area than one-dimensional barcodes. Barcodes have multiple uses, including recording inventory, tracking deliveries, matching products with pricing files, and providing information to users. For certain systems, data recovery from a barcode can be systemically critical. Many barcode technologies provide robust error correction functionality, and generally, the use of repeated barcodes or larger size barcodes can enhance data recovery capabilities. However, the space available for a barcode can be limited in many respects. Moreover, current barcode technology can be improved as now disclosed. SUMMARY

[0004] The present disclosure provides novel and inventive systems, methods, and devices for providing and reading a 2D barcode that includes dynamic environmental data, where modules of the barcode can change state in response to conditions of the environment. In exemplary aspects of the present disclosure, a sensor-enhanced two-dimensional barcode includes a substrate, a two-dimensional error correction barcode symbol disposed on the substrate, a first layer disposed on the substrate in a permanent color state, and a second layer disposed on the substrate. The barcode symbol further includes a plurality of modules, which are optionally square, rectangular, or circular, each module having one of a first color state or a second color state. The second layer is optionally disposed by overprinting the first layer with a sensor ink module pattern containing sensor digital information. The second layer further includes a sensor ink having a chemical substance configured to undergo a chemical or physical state change to change a color state of the sensor ink in response to an occurrence of an environmental, physical, or biological condition, thereby changing a color state of a subset of the plurality of modules.

[0005] According to another exemplary aspect of the present disclosure, an article of manufacture includes a pharmaceutical, biological, or food product, preferably a vaccine; a container holding the pharmaceutical, biological, or food product, preferably a vaccine vial; and a sensor- enhanced two-dimensional barcode symbol disposed on or in the container, preferably applied to an outer surface of the container.

[0006] According to another exemplary aspect of the present disclosure, a method of reading a sensor-enhanced two-dimensional barcode symbol includes scanning and optically processing an image of the sensor-enhanced two-dimensional barcode symbol, which includes constructing a scan binary bitmap from modules of the scanned sensor-enhanced two-dimensional barcode symbol. The method further includes constructing a symbol codeword sequence from the scan binary bitmap. Then, underlying data codewords are recovered from the symbol codeword sequence, preferably by using an error correction process on the symbol codeword sequence, the error correction process preferably being a Reed-Solomon code. Next, the underlying data codewords are processed to form an underlying symbol codeword sequence. The method further includes constructing an underlying binary bitmap from the underlying symbol codeword sequence, from the scan binary bitmap, the underlying binary bitmap preferably being equal in size to the scan binary bitmap. An exclusive OR operation can be performed on the scan binary bitmap and the underlying binary bitmap at each bit position to form a sensor digital information bitmap. Optionally, the method includes processing the sensor digital information bitmap to recover a binary information sequence containing binary encoded sensor data, preferably by processing the binary information sequence as an error correction code sequence and using an error correction process to recover the binary encoded sensor data. The error correction code is preferably selected from the group consisting of a Hamming code, a Bose-Chaudhuri-Hocquenghem (BCH) code, a Golay code, a Simplex code, a Reed-Muller code, a Fire code, a convolutional code, and a Reed-Solomon code.

[0007] According to another exemplary aspect of the present disclosure, a method of generating a 2D barcode includes determining a set of payload data including a set of static data and a set of dynamic data, generating a 2D barcode including an encoded version of the set of static data and including a redundant space, designating at least a portion of the redundant space as a dynamic region adapted to store an encoded version of the set of dynamic data, and printing the 2D barcode using static ink and printing the encoded version of the set of dynamic data on the dynamic region using dynamic ink that changes state in response to at least one environmental change, such that the set of dynamic data is in one of a plurality of states. The set of dynamic data is readable by a reader of the 2D barcode, and the set of static data is readable by the reader of the 2D barcode when the set of dynamic data is in each of the plurality of states.

[0008] According to another exemplary aspect, which can be used in combination with any one or more of the preceding aspects, a method of providing a 2D barcode includes determining a set of static data, determining a set of dynamic data, generating a first 2D barcode, generating a second 2D barcode, comparing the first 2D barcode and the second 2D barcode, and classifying information modules into a first group and a second group, and printing the 2D barcode in static ink and dynamic ink. The set of dynamic data has a first state and a second state. The first 2D barcode includes an encoded version of the set of static data and the set of dynamic data in the first state. The set of static data and the set of dynamic data in the first state includes a first plurality of information modules and a second plurality of information modules. The second 2D barcode includes an encoded version of the set of static data and the set of dynamic data in the second state. The set of static data and the set of dynamic data in the second state includes a third plurality of information modules and a fourth plurality of information modules. The third plurality of information modules includes all of the first plurality of information modules plus a set of one or more information modules. The second plurality of information modules includes all of the fourth plurality of information modules plus a set of one or more information modules. The first group includes common information modules between the first plurality of information modules of the first 2D barcode and the third plurality of information modules of the second 2D barcode. The second group includes unique information modules of the third plurality of information modules of the second 2D barcode. The first group is printed in static ink and the second group is printed in dynamic ink. The dynamic ink is adapted to activate in response to the occurrence of a factor of a particular environment.

[0009] According to another example aspect of the present disclosure, which can be used in combination with any one or more of the preceding aspects, a method of providing a 2D barcode includes determining a set of static data, determining a set of dynamic data, generating a first 2D barcode, generating a second 2D barcode, comparing the first 2D barcode and the second 2D barcode, and classifying information modules into a first group, a second group, and a third group, and printing the 2D barcode using static ink, first dynamic ink, and second dynamic ink. The set of dynamic data has a first state and a second state. The first 2D barcode includes an encoded version of the set of static data and the set of dynamic data in the first state. The set of static data and the set of dynamic data in the first state includes a first plurality of information modules and a second plurality of information modules. The second 2D barcode includes an encoded version of the set of static data and the set of dynamic data in the second state. The set of static data and the set of dynamic data in the second state includes a third plurality of information modules and a fourth plurality of information modules. The first group includes common information modules between the first plurality of information modules of the first 2D barcode and the third plurality of information modules of the second 2D barcode. The second group includes unique information modules of the third plurality of information modules of the second 2D barcode, and the third group includes unique information modules of the first plurality of information modules of the first 2D barcode. The first group is printed with static ink, the second group is printed with the first dynamic ink, and the third group is printed with the second dynamic ink. The first dynamic ink is adapted to deactivate in response to the occurrence of a particular environmental factor, and the second dynamic ink is adapted to activate in response to the occurrence of the particular environmental factor.

[0010] According to another example aspect of the present disclosure, which can be used in combination with any one or more of the preceding aspects, a method of providing a 2D barcode includes determining a set of static data, determining a set of dynamic data, generating a first 2D barcode, generating a second 2D barcode, comparing the first 2D barcode and the second 2D barcode, and classifying information modules into a first group, a second group, and a third group, and printing the 2D barcode using static ink, first dynamic ink, and second dynamic ink. The set of dynamic data has a first state and a second state. The first 2D barcode includes an encoded version of the set of static data and the set of dynamic data in the first state. The set of static data and the set of dynamic data in the first state includes a first plurality of information modules and a second plurality of information modules. The second 2D barcode includes an encoded version of the set of static data and the set of dynamic data in the second state. The set of static data and the set of dynamic data in the second state includes a third plurality of information modules and a fourth plurality of information modules. The first group includes common information modules between the first plurality of information modules of the first 2D barcode and the third plurality of information modules of the second 2D barcode. The second group includes unique information modules of the third plurality of information modules of the second 2D barcode, and the third group includes unique information modules of the first plurality of information modules of the first 2D barcode. The first group is printed with static ink, the second group is printed with the first dynamic ink, and the third group is printed with the second dynamic ink. The first dynamic ink is adapted to deactivate in response to the occurrence of a particular environmental factor, and the second dynamic ink is adapted to activate in response to the occurrence of the particular environmental factor.

[0011] According to another example aspect of the disclosure, which can be used in combination with any one or more of the preceding aspects, a method of reading a 2D barcode includes scanning a set of static data included in the 2D barcode, scanning a set of dynamic data included in the 2D barcode, generating a first output of the set of static data, and generating a second output of the set of dynamic data. The 2D barcode is printed in static ink and dynamic ink. An encoded version of the set of static data is printed in static ink. An encoded version of the set of dynamic data is printed in dynamic ink that changes state in response to at least one environmental change such that the dynamic data is in one of a plurality of states. The set of dynamic data is printed in a redundant space of the 2D barcode. The second output indicates which of the plurality of states the dynamic data is in.

[0012] According to another example aspect of the disclosure, which can be used in combination with any one or more of the preceding aspects, a method of reading a two-dimensional (2D) barcode includes scanning a set of static data included in the 2D barcode, scanning a set of dynamic data included in the 2D barcode, and generating an output based on the set of static data and the set of dynamic data. The 2D barcode includes static ink and dynamic ink. An encoded version of the set of static data is printed in static ink. An encoded version of the set of dynamic data is printed in dynamic ink that changes state in response to at least one environmental change such that the dynamic data is in one of a plurality of states. The set of dynamic data is printed in a dynamic region. The output is a first output when the set of dynamic data is in a first state of the plurality of states and a second output when the set of dynamic data is in a second state of the plurality of states.

[0013] Additional features and advantages of the disclosed systems, methods, and apparatuses will be described in, and will become apparent from, the accompanying drawings and the following detailed description. BRIEF DESCRIPTION OF DRAWINGS

[0014] Figure 1A is a block diagram of an example data structure of barcode data of a 2D barcode according to example embodiments of the disclosure.

[0015] Figure 1B is a block diagram of an example data structure of encoded data of a 2D barcode according to example embodiments of the disclosure.

[0016] Figure 1C is a block diagram of an example data structure of content data of a 2D barcode according to example embodiments of the disclosure.

[0017] Figure 1D is a block diagram of an example data structure of reference data of a 2D barcode according to example embodiments of the disclosure.

[0018] Figure 1E is a block diagram of an example data structure of payload data of a 2D barcode according to example embodiments of the present disclosure.

[0019] Figure 2A is an example 2D barcode according to example embodiments of the present disclosure.

[0020] Figure 2B is an example of reference data of a 2D barcode according to example embodiments of the present disclosure.

[0021] Figure 2C is an example 2D barcode according to example embodiments of the present disclosure.

[0022] Figure 2D is an example of reference data of a 2D barcode according to example embodiments of the present disclosure.

[0023] Figure 3A is a representation of a 2D barcode according to example embodiments of the present disclosure.

[0024] Figure 3B is a representation of a 2D barcode according to example embodiments of the present disclosure.

[0025] Figure 3C is a representation of a 2D barcode according to example embodiments of the present disclosure.

[0026] Figure 3D is a representation of a 2D barcode according to example embodiments of the present disclosure.

[0027] Figure 4 includes a flowchart showing an example process for providing a 2D barcode according to example embodiments of the present disclosure.

[0028] Figure 5 is a flowchart showing a 2D barcode printed using an example process for providing a 2D barcode according to example embodiments of the present disclosure.

[0029] Figure 6A is a textual representation of a set of static data and a set of dynamic data according to example embodiments of the present disclosure.

[0030] Figure 6B is an example of textual dynamic data encoded as a binary information module according to example embodiments of the present disclosure.

[0031] Figure 6C is a flowchart showing a 2D barcode printed using an example process for providing a 2D barcode according to example embodiments of the present disclosure.

[0032] Figure 6Dis a flowchart illustrating an example process of printing a 2D barcode using an example process for providing a 2D barcode according to an example embodiment of the present disclosure.

[0033] Figure 7 includes a flowchart illustrating an example process for providing a 2D barcode according to an example embodiment of the present disclosure.

[0034] Figure 8 is a flowchart illustrating an example process of printing a portion of a 2D barcode using an example process for providing a 2D barcode according to an example embodiment of the present disclosure.

[0035] Figure 9 includes a flowchart illustrating an example process for providing a 2D barcode according to an example embodiment of the present disclosure.

[0036] Figure 10A is a block diagram of an example information module set printed using an example process for providing a 2D barcode according to an example embodiment of the present disclosure.

[0037] Figure 10B is a block diagram of an example information module set printed using an example process for providing a 2D barcode according to an example embodiment of the present disclosure.

[0038] Figure 10C is a block diagram of an example information module set printed using an example process for providing a 2D barcode according to an example embodiment of the present disclosure.

[0039] Figure 11 includes a flowchart illustrating an example process for providing a 2D barcode according to an example embodiment of the present disclosure.

[0040] Figure 12 includes a flowchart illustrating an example process for reading a 2D barcode according to an example embodiment of the present disclosure.

[0041] Figure 13 includes a flowchart illustrating an example process for reading a 2D barcode according to an example embodiment of the present disclosure.

[0042] Figure 14 is a block diagram of a 2D barcode providing system according to an example embodiment of the present disclosure.

[0043] Figure 15A is a block diagram of a 2D barcode reading system according to an example embodiment of the present disclosure

[0044] Figure 15B is a block diagram of a 2D barcode reading system according to an example embodiment of the present disclosure.

[0045] Figure 16is a block diagram of a 14x14 Data Matrix symbol of encoded data "1234567890" according to example embodiments of the present disclosure.

[0046] Figure 17 is an illustration of the codeword and utah arrangement and bit map matrix of a 14x14 Data Matrix symbol according to example embodiments of the present disclosure.

[0047] Figure 18 is a schematic of a general codeword arrangement within a 10x10 Data Matrix bit map according to example embodiments of the present disclosure.

[0048] Figure 19 is a block diagram of the invariant utah arrangement in all actual size Data Matrix symbols according to example embodiments of the present disclosure.

[0049] Figure 20 is a representation of the 14x14 bit map and utah arrangement within a 16x16 Data Matrix symbol according to example embodiments of the present disclosure.

[0050] Figure 21 is a representation and placement of encoded bits using the 15BCH (15,5,7) arrangement and utahs used in the GS1 AI (90) string according to example embodiments of the present disclosure.

[0051] Figure 22 is a block diagram of a 16x16 Data Matrix encoding a GS1 AI (90) string using W→X sensor dye chemistry according to example embodiments of the present disclosure.

[0052] Figure 23 is a block diagram of a 16x16 Data Matrix encoding a GS1 AI (90) string using W→X sensor dye chemistry according to example embodiments of the present disclosure. Figure 7

[0053] Figure 24 is a block diagram of a 16x16 Data Matrix of Figure 7 with the inactive, overprinted sensor dye module according to example embodiments of the present disclosure.

[0054] Figure 25 is a block diagram of a 16x16 Data Matrix encoding a GS1 AI (90) string using X→B sensor dye chemistry according to example embodiments of the present disclosure.

[0055] Figure 26 is a block diagram of a 16x16 Data Matrix of Figure 25 with the inactive, overprinted sensor dye module according to example embodiments of the present disclosure.

[0056] Figure 27 is a block diagram of a 16x16 Data Matrix of Figure 25 with the inactive, overprinted sensor dye module according to example embodiments of the present disclosure.​

[0057] Figure 28 Details of a 16x16 data matrix encoding table 8 data according to example embodiments of the present disclosure, where a 4x4 frame region is shown.

[0058] Figure 29 Block diagram of a base 16x16 data matrix encoded using data in table 8 according to example embodiments of the present disclosure.

[0059] Figure 30 Block diagram of a 16x16 data matrix of Figure 29 with overprinted 4x4 white frames according to example embodiments of the present disclosure.

[0060] Figure 31 Block diagram of a 16x16 data matrix of Figure 30 with overprinted and activated sensor tint patches according to example embodiments of the present disclosure. DETAILED DESCRIPTION

[0061] Previous approaches have been to use one-dimensional (linear or ID) barcodes that either become unreadable or change with stimuli. Of note is the FreshCode smart barcode label provided by Varcode, Inc.

[0062] There have been many ID barcode patent applications including US20140252096A1 by Nemet et al. While it has been generally described to incorporate environmental measurements into the numerical values of ID barcodes, techniques that are applicable to ID barcodes do not seem to be applicable to two-dimensional (2D) barcodes with environmental monitoring.

[0063] The area occupied by ID barcodes limits their utility in applications where space is critical (e.g., unit of use applications, vials, etc.). Two-dimensional barcodes (e.g., Data Matrix) with high density encoding techniques can in practice have about 30 times smaller or less encoding area than ID barcodes representing the same data.

[0064] Previous applications involving 2D barcodes do not address environmental monitoring, but rather focus on high density of stored information that is static and not sensitive to factors of the environment such as temperature, time, time-temperature product, freezing, radiation, toxic chemicals.

[0065] Some solutions have involved having two sets of data, primary / secondary or covert / obvious, where the second set of information is stored in the redundancy space of the barcode and can be read using a conventional reader or independently using a second reader or other decryption method. While these solutions that include secondary / covert data have addressed issues such as security and reliability, none of them address the issue of environmental monitoring where the data is dynamic. Porter et al. pending U.S. Patent Application US20130015236 A1 (High-value document authenticationsystem andmethod) and the references contained therein describe primary and secondary sets of information and applications in document authentication.

[0066] Other solutions have addressed the issue of multiple sets of data (primary / secondary / re-secondary, etc.) by which different sets of data (secondary, re-secondary, etc.) are incrementally stored on top of previous sets. For example, multiple sets of information are added incrementally by printing on top of previous sets using different color modules, then decrypting the data using a reader configured to interpret the various color modules. See, e.g., Simske et al. US20140339312 Al. These solutions introduce static data one layer at a time and address issues related to tracking, tracing, inspection, quality assurance, not dynamic environmental data.

[0067] Some example embodiments described in this disclosure provide a unique way to combine pre-printed data with encoded sensor information in a two-dimensional barcode on a medium. The pre-printed data and encoded sensor information can be combined in a single step, or the encoded sensor information can be dynamically added to the pre-printed data in a second step according to actual planned sensor usage.

[0068] Sensor dye chemistry can be used, where the sensed property is an environmental, physical, or biological property. The specified condition of the sensed property causes activation of a chemical or physical state change, resulting in a change in the color state of the sensor dye. The change in color state results in the sensor digital information appearing in the pattern of sensor dye modules within the sensor augmented two-dimensional barcode. The sensor digital information will be recovered when the barcode is read using an extension of the standard reading and error correction algorithms for the two-dimensional barcode symbology in use.

[0069] Examples of environmental sensors include temperature monitors that measure cumulative heat exposure or exceed a set high or low temperature threshold; time, time-temperature results, radiation exposure monitors; gas or humidity exposure monitors (each exceeding a cumulative exposure threshold or an instantaneous threshold). Examples of medical sensors include recording patient thermometers; threshold assays that measure levels of biological toxins such as aflatoxins or botulinum toxins; and include colorimetric immunoassays for sensing the presence of biological agents such as prions or biological organisms such as infectious bacteria.

[0070] Figure 1A 、 Figure 1B 、 Figure 1C and Figure 1D show block diagrams of example data structures 100 for a two-dimensional (2D) barcode, an example data structure for encoded data of a 2D barcode, an example data structure for content data of a 2D barcode, and an example data structure for reference data of a 2D barcode, respectively. The 2D barcode includes encoded data 104 and reference data 106. The encoded data 104 can include content data 108 and format and version data 110. The content data 108 can include payload data 112, padding data 114, error detection and correction data 116, and remaining space 118. The format and version data 110 provides information needed to decode the content data 108. For example, the format and version data 110 can include cover information. The reference data 106 is data needed to identify which protocol is being used and allows a reader to locate and scan the 2D barcode. The reference data 106 can include alignment data 124, finder data 126, timing data 128, locator data 130, and orientation data 132. The payload data can include static data 134 and dynamic data 136. For example, as discussed in more detail below in Figure 2A 、 2B , 2C, and 2D, the locator data 130 can include a location block 138 or locator module, and the finder data 126 can include a finder pattern 142 or finder module. Additionally, the alignment data 124 can include an alignment block 146. The timing data 128 can include a timing pattern 148. The reference data 106 can also include a separator, an identification module, and an orientation module.

[0071] Figure 2A and Figure 2C show an example 2D barcode, and Figure 2B and Figure 2D show their respective reference data 106 and format and version data 110. Figure 2A includes all of the encoded data 104 and reference data 106 of the 2D barcode 156 (e.g., a Data Matrix). Figure 2BReference data 106 is shown for 2D barcode 156 only. For example, reference data 106 including finder pattern 142 and timing pattern 148 encloses content data 108 of 2D barcode 156. Figure 2C All encoded data 104 and reference data 106 including 2D barcode 158 (e.g., QR code). Figure 2D Reference data 106 is shown for 2D barcode 158 only. For example, reference data 106 can include position block 138, alignment block 146, and timing pattern 148.

[0072] Figure 3A And Figure 3B A representation of 2D barcode 156 is shown in FIG. 1. Figure 3C And Figure 3D A representation of 2D barcode 158 is shown in FIG. 2. Each representation of a 2D barcode shows a reference data area 160 and an encoded data area 162. Encoded data area 162 can include static data 134, dynamic data 136, and error detection and correction data 116. In addition, 2D barcode 156 can include a number of unused bits that can not be used to encode data 104 or provide reference data 106. 2D barcode 158 can include remaining space 118, which can include a number of unused bits.

[0073] While some examples described herein use Data Matrix, it should be understood that similar approaches can be used with other two-dimensional barcode schemes by changing similar approaches to conform to applicable 2D barcode standards. Data Matrix is a two-dimensional error-correcting barcode symbology formed in accordance with ISO / IEC 16022 Information Technology - Automatic Identification and Data Capture Techniques - Data Matrix Bar Code Symbol Specification. ECC 200 Data Matrix symbology utilizes Reed-Solomon error correction to recover encoded data from symbols that have suffered a limited amount of accidental damage or intentional substitution. All Data Matrices referred to herein are of the ECC 200 symbology type and can be square or rectangular in shape and identified by the number of rows and columns, respectively.

[0074] Data is encoded in Data Matrix as a sequence of 8-bit codewords or symbol character values. Codewords can contain data or Reed-Solomon error correction (RSEC) check character values. It should be understood that the general approach described herein can use other codeword sizes, other data layouts, and other forms of error correction code, and that the general Data Matrix is described by way of example only.

[0075] Each module is a visual unit in the matrix that includes a data matrix symbol that encodes one bit of data. Each module is either surface colored black or surface colored white. The module matrix is the visual representation of the binary bitmap matrix contained in the area of the symbol bounded by the tracer pattern. The tracer pattern can be an "L" formed by a continuous solid line along two edges of the symbol module matrix, accompanied by an alternating pattern of white modules and black modules along the opposite edges of the symbol. See Figure 16 It should be understood that other tracer patterns can be employed in other barcode symbologies.

[0076] Figure 16 A 14x14 square Data Matrix 320 is shown encoding the data "1234567890". The Data Matrix has two parts: a tracer pattern shaped like an "L" formed by a continuous solid line along two edges of the symbol, and an alternating pattern of white modules 322a and black modules 322b along the opposite edges of the symbol. The symbol codewords are encoded in a 12x12 module matrix 330 inside the tracer pattern.

[0077] The detailed structure of the 12x12 module matrix 330 of the 14x14 Data Matrix 320 is shown as a bitmap matrix 200 in Figure 17 The 14x14 Data Matrix contains 18 codewords, each composed of eight modules corresponding to the eight bits of the codeword, called "utahs". The 12x12 bitmap matrix shows the layout of all 18 codewords in the 14x14 Data Matrix.

[0078] A "utah" is an arrangement of eight modules that encodes one codeword. It can be arranged as a single connected group with a pattern that frequently takes the shape of a Utah, or formed into two subgroups of connected modules that are separated into two patterns. The contiguous utah 270 encoding codeword 9 shows the typical arrangement of bits within a contiguous utah. Conversely, the utah for codeword 4 is composed of two smaller subgroups: subgroup 272a at the top of the bitmap matrix 200 encoding bits 4.3 through 4.8, and subgroup 272b at the bottom of the bitmap matrix encoding bits 4.1 and 4.2.

[0079] Figure 18 The overall layout of the codeword utah placement within the 10x10 Data Matrix bitmap matrix 300 is shown in Figure 17 and Figure 18 Note the placement of the following:

[0080] All bits of utah 2

[0081] Bits 3.6-3.8 of utah 3

[0082] Bits 4.3-4.8 of Utah 4

[0083] All bits of Utah 5 and 6

[0084] These bit locations are in the same position relative to the upper left corner (ULC) of the Data Matrix symbol. According to ISO / IEC 16022 standard Appendix F.3, all square Data Matrix symbols up to size 26x26 and all rectangular Data Matrix symbols, these bit locations are invariant in their placement relative to the ULC of each Data Matrix symbol. These bit locations define an "invariant bit map" for the Data Matrix symbol. It should be understood that other bar code standards can have different invariant bit maps. In Figure 19 In FIG. 4, the invariant bit map 410 is shown in the ULC of the Data Matrix symbol 405. For purposes of defining terminology, the printed Data Matrix symbol before enhancement using the sensor module is referred to as the "underlying Data Matrix symbol"; its codeword sequence is the "underlying symbol codeword sequence" that encodes the "underlying Data Codewords and their RSEC error correction codewords". It should be understood that other symbologies have their own underlying symbols, underlying symbol codeword sequences, underlying Data Codewords, and error correction codewords depending on the specific type of error correction employed.

[0085] Figure 4 A flowchart of an example process 400 that includes providing a 2D bar code. Although the process 400 is described with reference to the flowchart shown in FIG. 4, it should be understood that many other methods of performing the acts associated with the process 400 can be used. For example, the order of many of the blocks can be changed, many of the blocks can be performed intermittently or continuously, certain blocks can be combined with other blocks, and many of the blocks described are optional or can be performed only occasionally. Figure 4 In FIG. 4, the invariant bit map 410 is shown in the ULC of the Data Matrix symbol 405. For purposes of defining terminology, the printed Data Matrix symbol before enhancement using the sensor module is referred to as the "underlying Data Matrix symbol"; its codeword sequence is the "underlying symbol codeword sequence" that encodes the "underlying Data Codewords and their RSEC error correction codewords". It should be understood that other symbologies have their own underlying symbols, underlying symbol codeword sequences, underlying Data Codewords, and error correction codewords depending on the specific type of error correction employed.

[0086] The example process 400 can begin by determining a set of payload data 112 including a set of static data 134 and a set of dynamic data 136 (block 402). For example, the set of static data 134 can include a serial number, a lot number, a batch number, and a threshold exposure temperature (e.g., 30°C) of a product. Additionally, the set of dynamic data 136 can include information that, when decoded by a reader, informs a user whether the product has exceeded the threshold exposure temperature. Next, a 2D barcode is generated that includes an encoded version of the set of static data, and the 2D barcode includes a redundancy space (block 404). In example embodiments, the redundancy space can include a plurality of unused bits, padding regions, and / or error detection and correction regions (e.g., the remaining space 118). Additionally, the redundancy space can include a format information region, a version information region, and / or a reference data region. Additionally, the redundancy space can include all of the remaining space and / or all of the plurality of unused bits. Additionally, the redundancy space can include a portion of the padding data, or can include all of the padding data. The redundancy space can also include a portion of the content data, a portion of the reference data, or a combination of various portions and / or all of the data included in the content data and the reference data. Next, at least a portion of the redundancy space is designated as a dynamic region adapted to store the set of dynamic data 136 (block 406). Next, the 2D barcode is printed using the static ink, and the encoded version of the set of dynamic data on the dynamic region using dynamic ink that changes state in response to at least one change in an environment, such that the set of dynamic data 136 is in one of a plurality of states (block 408). In example embodiments, the set of dynamic data 136 is readable by a reader of the 2D barcode, and the set of 2D static data 134 is readable by the reader of the 2D barcode when the set of dynamic data 136 is in each of the plurality of states. In one example embodiment, the dynamic ink can be sensitive to an environmental factor such as temperature, time, time and temperature, freezing, radiation, toxic chemicals, or a combination of these factors. In example embodiments, the ink can be a thermochromic ink. For example, the dynamic ink can be an aqueous irreversible thermochromic ink designed to permanently change from white to black at 40°C. Additionally, the thermochromic ink can be reversible. For example, the reversible thermochromic ink can be a liquid crystal ink or a leuco dye ink (examples include QCR Solutions reversible thermochromic ink and HWS Sands Corporation ink). In example embodiments, the ink can be a photochromic ink, which can be reversible or irreversible. For example, the dynamic ink can change state based on exposure to UV light. Further, the ink can be a time and temperature sensitive ink (examples include OnVu indicators).The dynamic ink can change from a darker color to a lighter color, from a lighter color to a darker color, can change the level of transparency or opacity, and / or can change the level of reflectivity or absorbency, or can change any other suitable property that allows the barcode to be readable by a reader in one or more states. For example, the dynamic ink can change from a lighter color to a dark blue color, which can be read by a reader as black. Further, any suitable combination of colors can be used for one or more states of the dynamic ink.

[0087] In example embodiments, the dynamic ink can change permanently or irreversibly in response to an environmental factor. For example, a certain chemical can undergo thermal degradation when exposed to a certain temperature. A supplier can want to know if the chemical reached a temperature above 30°C during shipping and storage. If the dynamic ink changes irreversibly, then the set of dynamic data 136 can be decoded to inform the supplier that the chemical was exposed to a temperature above 30°C and that the contents of the container can have undergone thermal degradation. Providing the two-dimensional barcode with the set of dynamic data 136 in the redundancy space advantageously allows an individual to read the 2D barcode using a reader before the dynamic ink is activated and after the dynamic ink has been activated from the set of dynamic data 136 in the first state to express a set of dynamic data 136 in the second state. For example, even after the set of dynamic data 136 is in the second state, the original 2D barcode is still readable and allows the reader to obtain the set of static data 134, e.g., the serial number, batch number, and lot number, which advantageously allows the set of static data 134 and dynamic data set 136 to be printed on the same 2D barcode without losing the static data 134 when the set of dynamic data 136 changes from the first state to the second state.

[0088] Sensor dye chemistry is used to detect changes in the sensed environmental or medical property condition. Since the Data Matrix module surface is black or white in appearance, 6 types of sensor dye chemistry processes as shown in Table 1 can be used. Here "B" refers to the black state; "W" refers to the white state; and "X" refers to the dye being in a clear color state.

[0089] Table 1. Types and color properties of selected sensor dye chemistry processes

[0090]

[0091]

[0092] Assuming that the black and white dye color states are opaque, thus hiding the underlying color in the black or white state. However, when the dye is in the clear color state (X), the underlying color is now visible.

[0093] Since the sensor dye module pattern can be overprinted on either the black or white modules of the Data Matrix symbol, or printed in place of the Data Matrix modules, the color state of the sensor dye modules in the Data Matrix symbol will change upon activation of the sensor dye chemistry. Different sensor dye chemistry systems have different properties in encoding sensor data.

[0094] Sensor dye systems that change from a colored to a transparent state are typically used with an underlying bit pattern printed in the Data Matrix, and all of the bits in that pattern are covered by the sensor dye, resulting in a uniform black or white state covering those modules until activated. Upon activation, the sensor dye becomes transparent and the underlying bit map in the Data Matrix barcode is visible. Alternatively, dye systems that change from a transparent color to a black or white state can selectively cover the uniform black or white pattern of modules printed in the Data Matrix symbol, and upon activation, the encoded data in the sensor dye module pattern is now visible. The latter system has the advantage that the sensor dye encoded data can be determined at the time the sensor dye modules are printed, and the sensor dye modules can be printed at a different time and location than the pre-printing of the Data Matrix symbol.

[0095] In this example, the sensor dye chemistry in use can be accurately printed on the pre-printed Data Matrix modules on a module by module basis, or printed in place of the Data Matrix modules. This can be done, for example, on a multi-station printer. Another way to do this is by using a 2-channel piezoelectric inkjet printer, where one channel contains black ink for printing the Data Matrix and the other channel contains the sensor dye to be printed on top of the Data Matrix modules or in place of the Data Matrix modules. The final Data Matrix symbol enhanced by the addition of the sensor modules is an example of a "sensor enhanced two-dimensional barcode symbol".

[0096] If a 2-channel inkjet printer is used, then the sensor dye chemistry used should be known at the time of printing, especially in the case where the sensor modules are printed in place of the normally printed Data Matrix symbol modules.

[0097] In the case of overprinted sensor modules where the sensor dye chemistry is known at the time the underlying Data Matrix is printed, it is possible to encode the indicator bits themselves that specify the dye system in use. The indicator bits in the underlying Data Matrix are overprinted with the sensor dye modules. Using these indicator bits will enable the Data Matrix reader to know the dye system in use and its activation state, and thus how to interpret the scanned Data Matrix symbol.

[0098] Note that in Table 2, for each indicator bit, 0 = white, 1 = black. There are only 4 most common dye chemistry processes, one of which is transparent, the other black or white, and these states are encoded by the indicator bits.

[0099] Table 2. Indicator bits for most common sensor dye chemistry processes

[0100]

[0101] The printed indicator bit values can be recovered from the scanned image, both before and after sensor activation, and compared to the indicator bits read from the underlying data matrix. The dye system and activation state are then determined from Table 3.

[0102] Table 3. Recovered activation state and indicator bits from scanned image

[0103]

[0104]

[0105] The color values of the sensor dye modules themselves can be used to encode sensor data that becomes visible or changes only due to the module color state changing upon sensor dye activation.

[0106] In the case where the entire sensor augmented two-dimensional barcode can not have been uniformly exposed to the conditions that activate each sensor dye module; or when sensor modules can be missing or damaged; or when the sensor color change activation threshold is not precise for each sensor dye module, it is useful to encode the sensor data itself in an error correction code.

[0107] Here it is assumed that the color of a sensor module can be binarized to 0 or 1. For example, 5-bit sensor module color data can encode two useful blocks of data: sensor product type and activation condition. The associated parameters can be encoded using an internal table indexed by the 5-bit value.

[0108] Many types of error correction codes are available to encode the sensor digital information. Typically, the sensor dye bit pattern that encodes the binary encoded sensor data is encoded. Useful error correction codes include Hamming codes, Bose-Chaudhuri-Hocquenghem (BCH) codes, Golay codes, Simplex codes, Reed-Muller codes, Fire codes, Convolutional codes, and Reed-Solomon codes.

[0109] As an example, Bose-Chaudhuri-Hocquenghem BCH(n, k, t) binary error correction codes are well known for encoding binary data strings; here a string of k bits is encoded within a code of n bits long with t error correction bits. Up to (t divided by 2) bits can be error corrected. For example, the QR Code and SuperCode two-dimensional barcode symbologies use BCH(15, 5, 7) codes, which can encode k = 5 bits in n = 15 bits and correct (7 divided by 2) = 3 bit errors. Standard decoding and error correction techniques exist for decoding and error correcting these codes. Table C.1 in Appendix C of ISO / IEC 18004 Information Technology - Automatic Identification and Data Capture Techniques - QR Code 2005 Barcode Symbology Specification gives the complete 15-bit code sequence for the numerical values 0, 1... 31. ISO / IEC 18004 Table C.1 is outlined in Table 4. Numerical values 0 and 31 are reserved and not encoded, as they represent inactive dye module states: numerical value 0 (all BCH bits = 0) for W→X and W→B sensor dye chemistry processes; numerical value 31 (all BCH bits = 1) for B→X and B→W sensor dye chemistry processes.

[0110] Table 4. BCH(15, 5, 3) encoding of 5-bit sensor data

[0111]

[0112]

[0113] When the BCH (15,5,7) is encoded in the Data Matrix symbol (whether the sensor bits are activated or not), the recovery of the sensor bit data can be accomplished by first recovering the sensor numeric information from the scan and decode of the sensor enhanced two-dimensional barcode symbol. The 15-bit BCH encoded binary number is extracted from the particular sensor dye module pattern. It should be noted that there are many standard methods for decoding and error correction of BCH encoded data. The classic Peterson-Gorenstein Zierler decoder is discussed in R.E. Barahut, "Theory and Practice of Error Control Codes (corr. edition)" 1983 (ISBN-10: 0-201-10102-5) page 166. A useful and practical algorithm for BCH (15,5,7) decoding is given in S.A Vanstone and P.C. van Oorschot, "An Introduction to Error Correcting Codes with Applications" 1989 (ISBN-10: 0-7923-9017-2) page 219. The 5-bit sensor data is extracted using the method for decoding and error correction of the BCH (15,5,7) encoded data.

[0114] Other types of sensor numeric information can be encoded in the sensor dye module pattern. This includes any type of visual pattern and image, such as ISO or ANSI or ISO warning signs and symbols, or any other type of design graphic. The number of bits encoded and the number of digits intentionally corrupted in the process (affected by the physical extent of the visual pattern on the underlying Data Matrix symbol) as well as the size of the underlying Data Matrix and its available number of RSEC codewords all affect the visual pattern and image encoding capability.

[0115] The sensor dye module pattern is also encoded after the underlying Data Matrix symbol is pre-printed. This allows different technologies to be used to print the underlying Data Matrix and then print the sensor dye module pattern. It also allows different kinds of sensor dye chemistries to be used on the previously printed Data Matrix, where the sensor dye chemistry is unknown at the time the underlying Data Matrix itself is printed.

[0116] In an example embodiment, a non-privileged reader may be able to read the static data 134 of the 2D barcode but may not be able to read the dynamic data 136. In another example embodiment, only a privileged reader may be able to read both the static data 134 and the dynamic data 136 of the 2D barcode. In some cases, having dynamic data 136 on the barcode that a non-privileged reader cannot read can advantageously allow manufacturers or suppliers to include information on the 2D barcode that they may not want to provide to the public or customers. Furthermore, a privileged reader that can read both the static data 134 and the dynamic data 136 advantageously allows an individual using the privileged reader to obtain both the static data 134 and the dynamic data 136 without having to use multiple readers.

[0117] Figure 5 This is a flowchart 500 illustrating an example 2D barcode printed using a 400-printing process. (See flowchart 500 for details.) Figure 5 As shown, a 2D barcode is printed via process 502, which has an encoded version of a set of dynamic data on a dynamic area 192. In this example, a set of dynamic data 136 is printed on multiple unused bits 120 in the lower right corner of the 2D barcode. Dynamic ink 198 is used for the information modules in the upper left and lower right corners of the multiple unused bits 120. After printing the dynamic area using dynamic ink 198, the barcode is in a first state 504 (i.e., the dynamic ink 198 has not yet been activated). The dynamic ink 198 used in the dynamic area 192 is activated to become pure black when exposed to a specified change in the environment 506. Once the 2D barcode is exposed to the change in the environment 506, the set of dynamic data 136 in the dynamic area 192 changes, and the 2D barcode enters a second state 508, transmitting the information of the change in the environment 506 to the reader.

[0118] Figure 6A It is a text representation that can be encoded within a 2D barcode, consisting of a set of static data 134 and a set of dynamic data 136. Figure 6B This is an example of dynamic text data encoded as binary information modules. Figure 6C and Figure 6D This is a flowchart illustrating the dynamic data change of a 2D barcode from a first state to a second state. For example, the set of static data 134 includes product information such as serial number (SN), batch number (BN), and lot number (LN). In this example, the serial number is 498760003, the batch number is 654, and the lot number is 35A1. This set of static data 134 does not change. Additionally, in... Figure 6AThe set of dynamic data 136 is shown in a first state 210 (top) and a second state 212 (bottom). For example, the set of dynamic data 136 can be printed with dynamic ink 198 that changes from the first state 210 to the second state 212 upon exposure to a threshold exposure temperature of 30°C or more. The text representation of the set of dynamic data 136 in the first state 210 is "<" (i.e., less than) the threshold exposure temperature specified in the set of static data 134, and the text representation of the set of dynamic data 136 in the second state 212 is ">" (i.e., greater than) the threshold exposure temperature specified in the set of static data 134 (30°C in this case). In an example embodiment, a binary 8-bit representation of the set of static data 134 and the set of dynamic data 136 can be used to encode a 2D barcode as shown in Figure 6B For example, the binary representation of "<" can be "00111100", and the ">" binary representation can be "00111110". In this example, binary zero (0) bits are colored white, and binary one (1) bits are colored black. It should be understood that various other color combinations can be used to print the 2D barcode, and various other encoding methods can be used. Black and white and binary (8-bit) encoding have been provided for illustrative purposes. Figure 6C The 2D barcode representing the set of dynamic data 136 in the first state 210, which transitions to the second state 212 in response to a change in the environment such as a temperature increase above 30°C. For example, Figure 6C The dynamic ink 198 used in the 2D barcode shown in Figure 6D The dynamic ink 198 can activate from black to white in response to a change in the environment 506 such as freezing or exposure to a threshold exposure temperature below 0°C, as shown in

[0119] Figure 7 An example process 420 is included that provides a 2D barcode as shown in Figure 8 A flowchart of the example process 420 is shown in Figure 7 Although the process 420 is described with reference to the flowchart shown in

[0120] The example process 420 can begin with determining a set of static data 134 (block 422). For example, the set of static data 134 can be a serial number, a lot number, and / or a batch number, among others. Next, a set of dynamic data 136 is determined (block 424). In example embodiments, the set of dynamic data 136 can have a first state 210 and a second state 212. For example, the dynamic data 136 in the first state can be unexposed to UV light, while the dynamic data 136 in the second state can be exposed to UV light. Further, the dynamic data 136 in the first state can be at a temperature less than 30°C, while the dynamic data 136 in the second state can be at a temperature greater than 30°C. Then, a first 2D barcode is generated (block 426). For example, a computer can generate the first 2D barcode based on input of the set of static data 134 and the set of dynamic data 136 in the first state 210. In example embodiments, the first 2D barcode can include an encoded version of the set of static data and an encoded version of the set of dynamic data 196 in the first state 210. Additionally, the set of static data 134 and the set of dynamic data 136 in the first state 210 can include a first plurality of information modules 218 and a second plurality of information modules 220. For example, the first plurality of information modules 218 can be black modules, and the second plurality of information modules 220 can be white information modules. Then, a second 2D barcode is generated (block 428). For example, a computer can generate the second 2D barcode based on input of the set of static data 134 and the set of dynamic data 136 in the second state 212. In example embodiments, the second 2D barcode can include an encoded version of the set of static data and an encoded version of the set of dynamic data 196 in the second state 212. Additionally, the encoded version of the set of static data and the encoded version of the set of dynamic data 196 in the first state 210 can include a third plurality of information modules 224 and a fourth plurality of information modules 226. For example, the third plurality of information modules 224 can be black modules, and the fourth plurality of information modules 226 can be white information modules. It will be appreciated that the first plurality of information modules 218 and the third plurality of information modules 224 can be white, while the second plurality of information modules 220 and the fourth plurality of information modules 226 can be black. Moreover, it will be appreciated that the first plurality of information modules 218 and the third plurality of information modules 224 and / or the second plurality of information modules 220 and the fourth plurality of information modules 226 can be various colors, transparency levels, and / or reflectivity levels, or can have any other suitable characteristics that allow the 2D barcode to be read by a reader. In example embodiments, the third plurality of information modules 224 can include all of the first plurality of information modules 218 plus a set of one or more information modules 228. Additionally, the second plurality of information modules 220 can include all of the fourth plurality of information modules 226 plus a set of one or more information modules 228.The first 2D barcode and the second 2D barcode are then compared (block 430). For example, the first 2D barcode and the second 2D barcode can include binary data having values of zero (0) or one (1), which can correspond to each information module colored white for a binary value of zero (0) and colored black for a binary value of one (1). The information modules 214 are then classified into a first group 230 and a second group 232 (block 432). In example embodiments, the first group 230 can include common information modules between the first plurality of information modules 218 of the first 2D barcode and the third plurality of information modules 224 of the second 2D barcode. Additionally, the second group 232 can include unique information modules of the third plurality of information modules 224 of the second 2D barcode. For example, the computer can classify all black information modules common to the first 2D barcode and the second 2D barcode into the first group 230. Additionally, the computer can classify all black information modules unique to the second 2D barcode (i.e., information modules that are white in the first 2D barcode and black in the second 2D barcode) into the second group 232. The 2D barcode is then printed using the static ink 194 and the dynamic ink 198 (block 434). In example embodiments, the first group 230 can be printed in the static ink 194 and the second group 232 can be printed in the dynamic ink 198. Additionally, the dynamic ink 198 can be adapted to activate in response to the occurrence of a particular environmental factor. In example embodiments, the dynamic ink 198 can be sensitive to environmental factors such as temperature, time, time and temperature, freezing, radiation, toxic chemicals, or a combination of these factors.

[0121] In example embodiments, the first plurality of information modules 218 and the third plurality of information modules 224 can be adapted to be visually distinguishable from the printed surface 234, and the second plurality of information modules 220 and the fourth plurality of information modules 226 can be visually indistinguishable from the printed surface 234. It should be appreciated that various printing techniques can be used, including printing using ink, dye, paint, and / or any other suitable material. Additionally, various other techniques can be used to alter the visual appearance of the printed surface 234 of the 2D barcode, such as etching, burning, melting, removing material, and / or any other process suitable for printing a 2D barcode. For example, the printed surface 234 can include a white base covered by a black top layer that is etched away to reveal the underlying white base. Additionally, the printed surface 234 can include a blue base covered by a yellow top layer, as well as various other color combinations.

[0122] Figure 8 is a flowchart illustrating example portions of a 2D barcode printed using the process 420. As Figure 8As shown, the first 2D barcode portion 216 is a portion of an example barcode that includes an encoded version of a portion of the set of static data and an encoded version of a portion of the set of dynamic data 196 in the first state 210. The second 2D barcode portion 222 is a portion of an example barcode that includes an encoded version of a portion of the set of static data and an encoded version of a portion of the set of dynamic data 196 in the second state 212. All black information modules are a first set of common information modules 230 between the first plurality of information modules 218 of the first 2D barcode portion 216 and the third plurality of information modules 224 of the second 2D barcode portion 222. Additionally, the information modules outlined in dashed lines can be a second set of unique information modules 232 of the third plurality of information modules 224 of the second 2D barcode portion 222. For example, the second set of information modules 232 can include all information modules that change from white to black when the set of dynamic data 136 transitions from the first state 210 to the second state 212. The use of only one dynamic ink 198 advantageously allows the 2D barcode to be printed in a more efficient and cost effective manner. Furthermore, the use of only one dynamic ink 198 advantageously reduces the risk of the code becoming unreadable due to misalignment or delayed activation times of multiple dynamic inks. It should be appreciated that the example embodiments disclosed herein can be converted to various two-dimensional barcodes, including Aztec Code, Code 1, CrontoSign, CyberCode, DataGlyphs, Data Matrix, Datastrip Code, EZcode, High Capacity Color Barcode, InterCode, MaxiCode, MMCC, NexCode, PDF417, Qode, QR Code, ShotCode, SPARQCode, and the like.

[0123] Figure 9 A flowchart including an example process 440 of generating a 2D barcode. Although the process 440 is described with reference to the example of FIG. 4, it should be appreciated that many other methods of performing the actions associated with the process 440 can be used. For example, the order of many of the blocks can be changed, many of the blocks can be performed intermittently or continuously, certain blocks can be combined with other blocks, and many of the blocks described are optional or can be performed only occasionally. Figure 9 The flowchart shown describes the process 440, it should be appreciated that many other methods of performing the actions associated with the process 440 can be used. For example, the order of many of the blocks can be changed, many of the blocks can be performed intermittently or continuously, certain blocks can be combined with other blocks, and many of the blocks described are optional or can be performed only occasionally.

[0124] The example process 440 can begin with determining a set of static data 134 (block 442). For example, the set of static data 134 can be a serial number, a lot number, and / or a batch number, among others. Next, a set of dynamic data 136 is determined (block 444). In example embodiments, the set of dynamic data 136 can have a first state 210 and a second state 212. The set of dynamic data 136 can have more than two states. For example, the set of dynamic data 136 can have a first state 210, a second state 212 (e.g., activated by being above 25°C), and a third state (e.g., activated by being above 40°C). Then, a first 2D barcode is generated (block 446). For example, a computer can generate the first 2D barcode based on input of the set of static data 134 and the set of dynamic data 136 in the first state 210. In example embodiments, the first 2D barcode can include an encoded version of the set of static data and an encoded version of the set of dynamic data 196 in the first state 210. Further, the set of static data 134 and the set of dynamic data 136 in the first state 210 can include a first plurality of information modules 218 and a second plurality of information modules 220. For example, the first plurality of information modules 218 can be black modules and the second plurality of information modules 220 can be white information modules. Then, a second 2D barcode is generated (block 448). For example, a computer can generate the second 2D barcode based on input of the set of static data 134 and the set of dynamic data 136 in the second state 212. In example embodiments, the second 2D barcode can include an encoded version of the set of static data and an encoded version of the set of dynamic data 196 in the second state 212. Additionally, the set of static data 134 and the set of dynamic data 136 in the second state 212 can include a third plurality of information modules 224 and a fourth plurality of information modules 226. For example, the third plurality of information modules 224 can be black modules and the fourth plurality of information modules 226 can be white information modules. It should be appreciated that the first plurality of information modules 218 and the third plurality of information modules 224 can be white and the second plurality of information modules 220 and the fourth plurality of information modules 226 can be black. Further, it should be appreciated that the first plurality of information modules 218 and the third plurality of information modules 224 and / or the second plurality of information modules 220 and the fourth plurality of information modules 226 can be various colors, transparency or opacity levels, and / or reflectivity or absorptivity levels, or can have any other suitable characteristics that allow the barcode to be read by a reader. Then, the first 2D barcode is compared to the second 2D barcode (block 450). For example, the first 2D barcode and the second 2D barcode can include binary data having values of zero (0) or one (1), which can correspond to each information module being colored white for a binary value of zero (0) and black for a binary value of one (1).The information modules are then classified into a first group 230, a second group 232, and a third group (block 452). In example embodiments, the first group 230 can include common information modules between the first plurality of information modules 218 of the first 2D barcode and the third plurality of information modules 224 of the second 2D barcode. Additionally, the second group 232 can include unique information modules of the third plurality of information modules 224 of the second 2D barcode. In example embodiments, the third group can include unique information modules of the first plurality of information modules 218 of the first 2D barcode. For example, the computer can classify all black information modules that are common to the first 2D barcode and the second 2D barcode into the first group 230. Additionally, the computer can classify all black information modules that are unique to the first 2D barcode (i.e., information modules that are black in the first 2D barcode and white in the second 2D barcode) into the third group. Furthermore, the computer can classify all black information modules that are unique to the second 2D barcode (i.e., information modules that are white in the first 2D barcode and black in the second 2D barcode) into the second group 232. The 2D barcode is then printed using the static ink 194, the first dynamic ink, and the second dynamic ink (block 454). In example embodiments, the first group 230 can be printed with the static ink 194. Additionally, the second group 232 can be printed with the first dynamic ink. The first dynamic ink can be adapted to activate in response to the occurrence of a particular environmental factor. Furthermore, the third group can be printed with the second dynamic ink, and the second dynamic ink can be adapted to activate in response to the occurrence of a particular environmental factor. For example, the first dynamic ink can be printed white and activate to black upon reaching 30°C, and the second dynamic ink can be printed black and activate to white upon reaching 30°C. It should be appreciated that the first dynamic ink and the second dynamic ink can be printed in a plurality of color combinations. In one example embodiment, the first dynamic ink and the second dynamic ink can be sensitive to environmental factors such as temperature, time, time and temperature, freezing, radiation, toxic chemicals, or a combination of these factors. Additionally, in example embodiments, the first dynamic ink and the second dynamic ink can activate simultaneously. For example, the first dynamic ink and the second dynamic ink can both activate 72 hours after printing such that the first dynamic ink changes from white to black while the second dynamic ink changes from black to white. Additionally, the first dynamic ink and the second dynamic ink can activate simultaneously upon satisfying a temperature threshold (e.g., within a precision of 0.1°C). Having the first dynamic ink and the second dynamic ink activate simultaneously advantageously allows the 2D barcode to be readable at any time, as the 2D barcode will not be in either the first state (i.e., the first 2D barcode) or the second state (i.e., the second 2D barcode).

[0125] Figure 10A 、 Figure 10B and Figure 10Cis a block diagram of a set of information modules of an example 2D barcode printed using process 440. Specifically, Figure 10A A first plurality of information modules 218 and a second plurality of information modules 220 of the first 2D barcode portion 216 (i.e., the set of dynamic data 136 is in the first state 210) are shown. Figure 10B A third plurality of information modules 224 and a fourth plurality of information modules 226 of the second 2D barcode portion 222 (i.e., the set of dynamic data 136 is in the second state 212) are shown. Figure 10C A first set 230, a second set 232, and a third set 238 of information modules are shown from top to bottom, respectively. For example, the first set 230 includes common information modules between the first plurality of information modules 218 of the first 2D barcode portion 216 and the third plurality of information modules 224 of the second 2D barcode portion 222, which are depicted as cross-hatched modules. The second set 232 includes unique information modules of the third plurality of information modules 224 of the second 2D barcode portion 222, which set of information modules is depicted as black modules in the bottom image of Figure 10C Additionally, the third set 238 includes unique information modules of the first plurality of information modules 218 of the first 2D barcode portion 216, and this set of information modules is depicted by black modules in the middle image of Figure 10C In this example, the first set 230 can be printed with the static ink 194, the second set 232 can be printed with the first dynamic ink 240, and the third set 238 can be printed with the second dynamic ink 242. For example, the second set 232 can be printed with the first dynamic ink 240 that is adapted to activate (i.e., change from white to black) in response to the occurrence of a particular environmental factor. Additionally, the third set 238 can be printed with the second dynamic ink 242 that is adapted to activate (i.e., change from black to white) in response to the occurrence of a particular environmental factor. It should be appreciated that utilizing more than one dynamic ink to generate the 2D barcode advantageously allows the 2D barcode to be printed with a greater portion of changing dynamic data, which can include the error detection and correction data 116. For example, by using multiple dynamic inks, the 2D barcode is able to change several different regions of the 2D barcode such that a non-privileged reader is able to read the set of static data 134 and the set of dynamic data 136 in multiple states to give multiple outputs without the error detection and correction data 116 overwriting a designated output.

[0126] Figure 11 includes a flowchart of an example process 460 of generating a 2D barcode. Although reference is made to Figure 11The illustrated flowchart describes process 460, but it should be understood that many other methods of performing the actions associated with process 460 can be used. For example, the order of many of the blocks can be changed, many of the blocks can be repeated intermittently or continuously, certain blocks can be combined with other blocks, and many of the blocks described are optional or can be executed only occasionally.

[0127] Example process 460 can begin by determining a set of payload data 112 (block 462). In example embodiments, the set of payload data 112 can include a set of static data 134 and a set of dynamic data 136. Additionally, the set of dynamic data 136 can have a first state 210 and a second state 212. Next, a computer can generate a 2D barcode (block 464). In example embodiments, the 2D barcode can include an encoded version of the set of static data, a dynamic region 192 adapted to store an encoded version of the set of dynamic data, and error detection and correction data 116. Then, a printer can print the 2D barcode using static ink 194 and print the set of encoded dynamic data on the dynamic region 192 using dynamic ink 198 (block 466). In example embodiments, the 2D barcode can be attached to various products such as food, medicine, etc. In example embodiments, the dynamic ink 198 can change state in response to at least one environmental change such that the set of dynamic data 136 is in the first state 210 or the second state 212. Additionally, in example embodiments, the error detection and correction data 116 can accommodate changes in the set of dynamic data 136 in the dynamic region 192 such that the 2D barcode can be read by a reader and can produce a first output when the set of dynamic data 136 is in the first state 210 and the 2D barcode can be read by a reader and can produce a second output when the set of dynamic data 136 is in the second state 212. In example embodiments, the dynamic region 192 can be provided in a fill area. Additionally, the dynamic region 192 can be provided at one end of the data region. Providing the 2D barcode including error detection and correction data 116 that accommodates changes in the set of dynamic data 136 advantageously allows an individual to use a non-privileged reader and also advantageously allows an individual to obtain two different output readings using a non-privileged reader. For example, without generating a 2D barcode having error detection and correction data 116 that accommodates changes in the set of dynamic data 136 in the dynamic region 192, a non-privileged reader can produce only a first output regardless of whether the 2D barcode includes the set of dynamic data 136 in the first state 210 or the set of dynamic data 136 in the second state 212.

[0128] Figure 12 A flowchart of example process 470 including reading a 2D barcode. While reference is made to process 470 with respect to FIG. 5, it should be understood that many other methods of performing the actions associated with process 470 can be used. For example, the order of many of the blocks can be changed, many of the blocks can be repeated intermittently or continuously, certain blocks can be combined with other blocks, and many of the blocks described are optional or can be executed only occasionally. Figure 12The illustrated flow diagram describes process 470, but it will be understood that many other methods of performing the actions associated with process 470 can be used. For example, the order of many of the blocks can be changed, many of the blocks can be repeated intermittently or continuously, certain blocks can be combined with other blocks, and many of the blocks described are optional or can be executed only sporadically.

[0129] Example process 470 can begin by the reader reading a set of static data 134 included in the 2D barcode (block 472). In an example embodiment, the 2D barcode can be printed with static ink 194 and dynamic ink 198. Additionally, an encoded version of the set of static data can be printed with static ink 194. Next, the reader can read a set of dynamic data 136 included in the 2D barcode (block 474). In an example embodiment, an encoded version of the set of dynamic data 196 can be printed with dynamic ink 198. Additionally, the set of dynamic data 136 can be printed in a redundant space on the 2D barcode. Next, the reader can generate a first output of the set of static data 134 (block 476). Then, the reader can generate a second output of the set of dynamic data 136 (block 478). In an example embodiment, the second output can depend on which of a plurality of states the dynamic data is in, e.g., greater than 30°C or less than 30°C.

[0130] Figure 13 A flow diagram including example process 490 of reading a 2D barcode. Although with reference to Figure 13 The illustrated flow diagram describes process 490, but it will be understood that many other methods of performing the actions associated with process 490 can be used. For example, the order of many of the blocks can be changed, many of the blocks can be repeated intermittently or continuously, certain blocks can be combined with other blocks, and many of the blocks described are optional or can be executed only sporadically.

[0131] The example process 490 can begin by the reader reading a set of static data 134 included in the 2D barcode (block 492). In example embodiments, the 2D barcode can be printed with static ink 194 and dynamic ink 198. Further, an encoded version of the set of static data can be printed with static ink 194. Next, the reader can read a set of dynamic data 136 included in the 2D barcode (block 494). In example embodiments, an encoded version of the set of dynamic data 196 can be printed with dynamic ink 198. Additionally, the set of dynamic data 136 can be printed in the dynamic region 192 of the 2D barcode. Next, the reader can generate an output of the set of static data 134 and the set of dynamic data 136 (block 496). In example embodiments, the output can be a first output when the set of dynamic data 136 is in the first state 210 and the output can be a second output when the set of dynamic data 136 is in the second state 212.

[0132] Figure 14 is a block diagram of a 2D barcode providing system. The system can include a computer 292 and a printer 290. The system can be used to provide a barcode 102. The computer 292 can include one or more computer programs or components. It should be understood that all of the disclosed methods and processes described herein can be implemented using one or more computer programs or components. The components can be provided as a series of computer instructions on any conventional computer-readable medium or machine-readable medium, including a volatile or non-volatile memory, such as RAM, ROM, flash memory, magnetic or optical disks, optical memory, or other memory media. The instructions can be provided as software or firmware, and / or can be embodied in whole or in part within hardware components such as an ASIC, an FPGA, a DSP, or any other similar devices. The instructions can be configured to be executed by one or more processors to execute or facilitate the execution of all or part of the disclosed methods and processes when the series of computer instructions are executed by the one or more processors. Additionally, the computer 292 can include a display and can have a connection to one or more communication channels (e.g., the Internet or some other voice and / or data network, including but not limited to any suitable wide-area or local-area network).

[0133] The computer 292 can include one or more processors electrically coupled through an address / data bus to one or more memory devices, other computer circuitry, and one or more interface circuits. The processor can be any suitable processor, e.g., a microprocessor. The memory preferably includes both a volatile memory and a non-volatile memory. In addition, the memory can store software programs that interact with other devices in the bar code providing system. The programs can be executed by the processor in any suitable manner. The memory can also store digital data indicative of documents, files, programs, bar codes, etc. received from a computer or bar code reader. The other computer circuitry can include a variety of hardware components, including ASICs or other specialized circuitry for manipulating data in particular formats, e.g., bar code data.

[0134] One or more displays, printers 290, and / or other output devices can also be connected to the computer 292 via the interface circuitry. The displays can be liquid crystal displays or any other type of display. The printers 290 can print bar codes generated and received from the computer 292. In addition, one or more storage devices can also be connected to the computer 292 via the interface circuitry. For example, a hard disk drive, CD drive, DVD drive, and / or other storage device can be connected to the computer 292. The storage devices can store any type of data, e.g., bar code data 100, image data, historical access or usage data, etc.

[0135] Figure 15A and Figure 15Bis a block diagram of a 2D barcode reading system. The system can include a reader 200, which can be used to read a barcode 102. In example embodiments, the reader 200 can be a privileged reader or a non-privileged reader. The reader 200 can be a dedicated barcode reader or a device configured to read barcodes, such as a mobile device, a personal digital assistant or PDA, a smart phone, a laptop computer, a tablet computer, or a desktop computer, and any other user device. The reader 200 can be adapted to read 1D and 2D barcodes, or can be adapted to read only 2D barcodes. The reader 200 can also send, receive, or exchange data with other network devices via a communication network. The network devices can be a computer 292, a different reader 200, or any other device accessible via the communication network. Also, certain data can be stored in the reader 200, which can also be temporarily or permanently stored on a server, for example, in a memory or storage device. The network connection can be any type of network connection, for example, a cellular or wireless connection, an Ethernet connection, a digital subscriber line, a telephone line, a coaxial cable, etc. Access to the reader 200 or dynamic data 136 can be controlled by appropriate security software or security measures. Access of individual users can be defined by the reader 200 and limited to certain data and / or actions. For example, a user can have access only to a non-privileged reader, which can only be able to read static data 134 on the barcode 102. Additionally, a user can have access to a privileged reader, which can be able to read only dynamic data or both dynamic data and static data on the barcode 102. Accordingly, users and / or administrators of the barcode reading system can need to register with one or more readers 200. Additionally, various options for managing data located in the reader 200 and / or on a server can be implemented. For example, a management system can be implemented in the reader 200, which can use any suitable method of data transfer to update, store, and / or backup barcode data 100 locally and / or remotely.

[0136] A method of reading sensor-augmented two-dimensional barcode symbols has several requirements. Reading sensor-augmented Data Matrix symbols is possible:

[0137] 1. If only a limited number of modules change color state in the sensor dye module pattern, and

[0138] 2. If the modules that change are limited to a small number of Utahs, and

[0139] 3. If there is sufficient Reed Solomon error correction capability in the underlying Data Matrix,

[0140] The RSEC process can then be utilized to recover the underlying codeword data in the underlying data matrix prior to the color state change of the module caused by the sensor activation.

[0141] Table 5 shows the data and RSEC codeword capacity for all square data matrix symbols up to 26x26 and all rectangular data matrix symbols.

[0142] Each data codeword typically requires two RSEC codewords to recover the underlying data. Take the 16x16 square data matrix as an example, which has a capacity of 12 data codewords (12 data information) and has 12 RSEC codewords (12 RSEC utahs). Thus, if the activated sensor module changed 4 data utahs in the 16x16 symbol, 8 RSEC codewords are utilized to recover the data in those codewords for the changed utahs. This leaves 4 additional RSEC codewords available to correct any other symbol damage.

[0143] Table 5. Total data and RSEC codewords for different size data matrix symbols

[0144]

[0145]

[0146] Depending on whether the structure of the sensor dye module pattern has been encoded in the underlying data matrix, two reading processes are utilized for the sensor enhanced two-dimensional barcode. In the first case, the structure of the sensor dye module pattern has not been encoded in the underlying data matrix of the sensor enhanced two-dimensional barcode:

[0147] 1. Scan and optically process the image as part of the Data Matrix reading process and construct a scanned binary bitmap of the scanned image. See ISO / IEC 16022 for one method.

[0148] 2. Process the scanned binary bitmap to construct an underlying symbol codeword sequence,

[0149] 3. Utilize Reed-Solomon error correction processing on the symbol codeword sequence to recover the underlying data codewords prior to any changes caused by the activated sensor module. See ISO / IEC 16022 for one method.

[0150] 4. Construct an underlying binary bitmap from the underlying data codeword sequence equal in size to the scanned binary bitmap. See ISO / IEC 16022 for one method.

[0151] 5. XOR the scanned binary bit map and the underlying binary bit map at each bit position to form a sensor digital information bit map of the same size as the scanned binary bit map.

[0152] 6. Process the sensor digital information bit map according to the context rules.

[0153] In the case where the structure of the sensor dye module pattern has been encoded in the underlying Data Matrix of the sensor enhanced two-dimensional barcode:

[0154] 1. Scan and optically process the image as part of the Data Matrix reading process and construct a scanned binary bit map of the scanned image. See ISO / IEC 16022 for one method.

[0155] 2. Process the scanned binary bit map to construct an underlying symbol codeword sequence,

[0156] 3. Utilize Reed-Solomon error correction processing on the symbol codeword sequence to recover the underlying data codewords prior to any alterations caused by the activated sensor module. See ISO / IEC 16022 for one method.

[0157] 4. Utilize the information encoded in the underlying data codewords to determine the sensor dye bit map containing the sensor digital information within the scanned binary bit map and extract the binary information sequence in the appropriate bit order.

[0158] 5. When the sensor data has been BCH (15,5,7) encoded, use the standard method of BCH error correction processing to recover the 5-bit binary encoded sensor data (otherwise decode fails).

[0159] The first preferred embodiment utilizes a temperature threshold sensitive sensor dye chemistry process. The sensor dye chemistry process is W→X; white dye elements are overprinted on the black modules of the underlying Data Matrix printed on white printed media. It is assumed that the sensor dye chemistry process used in printing the Data Matrix symbol is known.

[0160] It is assumed that the data structure encoded in the Data Matrix symbol uses the GS1 Application Identifier and complies with the GS1 General Specifications, 15th Edition, Part 2 (January 2015)

[0161] Here 15-bit BCH (15,5,7) error correction is used to encode the 5-bit sensor data. Since the overprinted sensor dye modules are white, the black modules corresponding to the "1" bits of the 15-bit BCH encoding need to be printed in the underlying Data Matrix.

[0162] For exemplary purposes, the sensor data BCH encoding as well as the 2 indicator bits indicating the sensor dye chemistry process used only uses Figure 19 Utahs 3, 5 and 6 of the 16x16 ECC 200 data matrix symbol shown in Fig. 3. Utahs 5 and 6 as well as Utah bit 3.6-3.8 are in the same bit map position relative to the symbol ULC as in the invariant bit map 410 in Fig. 2. Figure 19

[0163] The indicator Utah bits 3.6 and 3.7 indicate which sensor dye chemistry process in Table 1 is being used. It is assumed that the sensor dye chemistry process to be used is known at the time of printing the data matrix.

[0164] The module of the selected sensor chemistry will overprint Utah bits 3.6 and 3.7. Depending on the selected sensor dye chemistry, bits 3.6 and 3.7 will appear as in Table 4 when the sensor dye is in the unactivated state or in the activated state.

[0165] Figure 20 A data matrix bit map 505 of size 14 from ISO / IEC 16022 is shown and Utahs 5 and 6 as well as Utah bit 3.8 of the invariant bit map 410 are identified. These are labeled 510, 520 and 530, respectively. The first 5 bits of Utah 3, i.e. bits 3.1-3.5, which are not in the invariant bit map 410, can be used to encode additional information about the sensor dye chemistry process in use and / or the sensor dye bit pattern. The label for this is 540.

[0166] In accordance with the GS1 system as defined in the GS1 General Specification, which is the most widely used system for encoding information in data matrices, the GS1 Application Identifier AI (90) can be used. The AI (90) is reserved for mutually agreed information between trading partners, e.g. about the occurrence of a sensor enabled data matrix. Since the application program identifier can occur in any sequence in a GS1 data matrix, the AI (90) will occur immediately after the FNC 1 to ensure that the 15 BCH encoded sensor bits B1-B15 are located in the invariant bit map 410. Since only 7 bit characters can be encoded in a GS1 application program identifier, the most significant bit 5.1 of Utah 5 at 520 and bit 6.1 of Utah 6 at 530 and their color state before and after activation are not important here.

[0167] As Figure 21 ​As shown, the invariant bitmap 410 portion of the 16x16 data matrix 600 includes 610a Utah 1 bits 1.5 and 1.8; 620 Utah 2; 630a Utah 3 bits 3.6-3.8; 640a Utah 4 bits 4.3-4.8; 650 Utah 5; 660 Utah 6; and 670a Utah 7 bits 7.2, 7.4, 7.5, 7.7, and 7.8. Note that the other Utah bits shown in FIG. 6 around these seven Utahs are for reference purposes and to ease correspondence with the bitmap of Figure 20 For example, 610b Utah 1 bits 1.1-1.4, 1.6, and 1.7; 640b Utah 4 bits 4.1 and 4.2; and 670b Utah 7 bits 7.1, 7.3, and 7.6.

[0168] The most significant bit B15 will be encoded at 630a Utah bit 3.8. The Utah 5 bits 5.2 to 5.8 at 650 will encode B14 to B7 of the BCH encoded sensor bits. The Utah 6 bits 6.2 to 6.8 at 660 will encode bits B7 to Bl of the BCH encoded sensor bits.

[0169] Since the white-to-clear sensor dye chemistry is used in the first preferred embodiment, the encoded sensor data bits black and white pattern B15-B1 should be pre-printed in the data matrix. The W→X sensor dye will then overprint on these encoded bits; this is all the bits Bl-15 in the underlying data matrix or at least those black bits B15-B1.

[0170] Consider the example when the sensor value is "4". From Table 2, the BCH encoding B15-B1 is 001000111101011. Thus, in the data matrix size 14 bitmap in Figure 20 In the data matrix size 14 bitmap in

[0171] Table 6. AI(90) ASCII and data matrix codeword string example for W→X sensor dye

[0172]

[0173]

[0174] Bits 3.1-3.5 of Utah 3 at 630b are not in invariant bitmap 410 because they are located at the bottom edge of the data matrix symbol for all sizes of data matrices. However, data can be encoded here, which is useful in conveying specific information about the properties of the sensor dye in use and in encoding the sensor dye pattern in the enhanced data matrix.

[0175] Since only part 640a of Utah 4 appears in the invariant bitmap part 410, Utah 4 is used as a spacer to ensure that bits B14-B1 are printed in Utah 5 and 6 at 650 and 660 respectively. Any 7-bit ASCII character can be encoded in UT4. It is commonly used for product-related information.

[0176] Figure 22 The image shows a 16×16 data matrix 700 printed using only the information in Table 6. Figure 23 In the diagram, data matrix 800 is shown as structurally similar to data matrix 600. However, here, according to... Figure 22 In the encoding of the underlying data matrix 700, appropriate modules in the invariant bitmap portion are set to black or white. The remaining data matrix codewords (Utah 8-12) are padded with padding characters to fill the 12 available data codewords. The last 12 codewords in the symbol (Utah 13-24) are RSEC error correction codewords. Figure 23 For convenience, the contents of Utah 8-24 are displayed in gray because they are not related to the encoding of AI(90).

[0177] Figure 24 The image shows a visual image of the inactive sensor enhancement data matrix 900. It should be noted that the white sensor dye is the overprint indicator bit 910. The overprint BCH code 920 of the sensor data B15-B1 is displayed as a white dye module indistinguishable from the unprinted and unoverprinted white modules at Utah bits 5.1 and 6.1. They have the value "000000000000000", indicating the default sensor value "0" for inactive B15-B1 in this sensor dye chemistry process system. It should be noted that the indicator bit is "00" indicating the inactive state of the W→X sensor dye chemistry process.

[0178] Once activated, all sensor modules become transparent, and the visual image returns to normal. Figure 22 The correct 15-bit BCH pattern 001000111101011 is shown. It is decoded using one of the standard methods described above for BCH (15, 5, 7) to recover the sensor value "4".

[0179] The second preferred embodiment utilizes a temperature threshold sensitive sensor dye chemistry process X→B, which is typically represented by a heat activated leuco dye system used to produce thermal paper. Here, the transparent dye module is overprinted on the white (unprinted) module of the underlying Data Matrix printed on a white medium.

[0180] Again here, 15-bit BCH (15,5,7) error correction is used to encode 5-bit sensor data, which is also encoded by overprinting the sensor dye module on the underlying Data Matrix symbol printed by the underlying print at the bit map locations where the black module appears only when the sensor dye is activated. Here, it is also assumed that the sensor dye chemistry used is known at the time the Data Matrix symbol is printed.

[0181] With any sensor dye chemistry that is initially transparent, the underlying Data Matrix symbol can be printed using a different printer and then overprinted with the sensor dye module as a separate process, thereby adding Data Matrix information learned when the sensor module is overprinted. In an exemplary embodiment, a two-dimensional barcode can be attached to a variety of products, such as food, pharmaceuticals, biological products, or any other product that can benefit from environmental, physical, or biological monitoring. For example, the barcode can be printed or applied to a container for such a product.

[0182] The sensor data 15-bit BCH encoding pattern and 2 indicator bits are the same as the first preferred embodiment. From Table 2, for the X→B sensor dye chemistry, the printed de indicator bits 3.6 and 3.7 will be "10". As in the first preferred embodiment, the first 5 bits of Utah 3, bits 3.1-3.5, can be used to encode additional information about the sensor dye chemistry process and / or sensor dye bit pattern in use.

[0183] To be consistent with the most widely used system for encoding information in Data Matrix, the GS1 Application Identifier AI (90) is used. The AI (90) is reserved for information mutually agreed upon between trading partners, such as the presence of a sensor enabled Data Matrix. As in the first preferred embodiment, the AI (90) is used in the Utah 1-7 data structure format, with the specific data encoded here shown in Table 7.

[0184] Consider the same example as in the first preferred embodiment, where the sensor value is 4. From Table 4, the BCH encoded B15-B1 is 001000111101011. Since a transparent to black sensor dye chemistry process is used in this second preferred embodiment, the BCH encoded sensor dye modules in B15-B1 that once activated become black modules must be selectively overprinted on the B15-B1 white modules in the underlying Data Matrix. The indicator bits 3.6 and 3.7 are also overprinted with the sensor dye module.

[0185] Table 7 shows the AI (90) data string printed for this second preferred embodiment in the first 7 utahs of the 16x16 underlying data matrix 1000. Figure 25 Table 7 shows the AI (90) data string printed for this second preferred embodiment in the first 7 utahs of the 16x16 underlying data matrix 1000. Figure 25 The underlying data matrix 1000 printed with only the information in Table 7 is shown in

[0186] Referring to the ULC details 1100 in Figure 26 The indicator bits 3.6 and 3.7 are set to "1" and "0" respectively. The utah bits 3.8, 5.2-5.8 and 6.2-6.8 are white modules corresponding to "0" for all these bits B15-B1. The utah bits 5.1 and 6.1 are set to "1" because they are not part of the BCH bit encoding sequence and the Data Matrix standard ISO / IEC standard requires at least 1 black module per utah. The remaining Data Matrix codewords (utahs 8-12) are padded with filler characters to fill the 12 available data codewords which are specially encoded according to ISO / IEC 16022. The last 12 codewords in the symbol (utahs 13-24) are RSEC error correction codewords. In Figure 26 In

[0187] Table 7. AI (90) ASCII and Data Matrix codeword string example for X→B sensor dye

[0188]

[0189]

[0190] When the sensor enhanced Data Matrix barcode symbol is in the inactive state, the white modules of the underlying Data Matrix will be visible, showing the BCH encoding for B15-B1 as 00000000000000 or as Figure 25 the sensor enhanced Data Matrix 1000 in Figure 26 the sensor value 0 in the Data Matrix ULC details 1100 in

[0191] Once the sensor modules are activated, the visible sensor enhanced Data Matrix 1200 will ideally appear as in Figure 27The sensor data bit pattern B15-B1 : 001000111101011 will now be revealed and the sensor value 4 will be recovered by reading the data matrix as described above on the sensor dye bit pattern using the supplemental standard BCH decoding technique. Note that the data matrix 1200 is identical to the underlying data matrix 1000, with the overprinted sensor dye module now activated to black (but for clarity, the overprinted sensor dye module is shown in dark gray as 1220) to reveal the sensor data bit pattern B15-B1, and the indicator bit pattern 1210 is now "11". Figure 27

[0192] The third preferred embodiment also utilizes a temperature sensitive sensor dye chemistry. Here the sensor dye module in the unactivated color state is overprinted as a single sensor dye patch in the invariant bitmap of the underlying data matrix printed on white media.

[0193] Any sensor dye chemistry R→S can be used, as long as the arbitrary color states R and S have 1) sufficient visible color state change and 2) sufficient contrast at 660 nm reader illumination such that the R color state scans as W or B and the S color state scans as the complementary color B or W. This makes the sensor dye patch visually distinguishable and machine readable in both the unactivated state and the activated state to recover the sensor dye module as an image using the data matrix reading techniques mentioned above and further process it to determine the activated state of the sensor dye patch.

[0194] Different printers or different stations of the same printer can be used: first print the underlying data matrix symbol, then overprint it with the sensor dye patch in a separate process.

[0195] In this example, an X→B sensor dye chemistry is shown. The sensor dye patch is a square of size about 2x2 sensor dye modules. It is framed and centered in a white area of size 4x4 modules. This 4x4 white frame is located in the invariant bitmap of the 16x16 data matrix to ensure that this 4x4 white frame and the sensor dye patch it encloses will always be located in the same position relative to the ULC over a broad range of data matrix symbol sizes.

[0196] Figure 28 The location of this 4x4 white frame 1310 (from bit 3.6 to bit 5.8) within the example 16x16 data matrix symbol 1300 is shown. This 4x4 white frame 1310 contains 4 rows of ULC bits which are composed as follows:

[0197] Row 1 : bits 3.6, 3.7, 3.8, 4.3

[0198] ​Row 2: bits 2.5, 5.1, 5.2, 5.3

[0199] Row 3: bits 2.8, 5.3, 5.4, 5.5

[0200] Row 4: bits 6.2, 5.6, 5.7, 5.8

[0201] It should be noted that in the third preferred embodiment, bits 3.6 and 3.7 are not used as indicator bits as in the first and second preferred embodiments, but here they are part of the 4x4 white box.

[0202] The naive approach would be to create a data matrix symbol with no data restrictions on the underlying print, and simply overprint white modules on the 16 underlying data matrix modules in the 4x4 white box 1310. Depending on the data encoded and whether any of the black modules in 1310 are intentionally overprinted, up to 5 Utahs and their encoded codewords can be intentionally damaged by overprinting. The conventional approach of using Reed-Solomon error correction during reading of the data matrix to recover up to 5 damaged codewords would require using up to 10 of the 12 available RSEC codewords in a 16x16 data matrix symbol. This would leave very few, if any, RSEC codewords available for other unexpected symbol damage.

[0203] As in the example shown in the first and second preferred embodiments, in this example the symbol data encoding is also performed using the GS1 Application Identifier AI(90) and the Utahs 1-7 data structure format. The symbol data specific to the third preferred embodiment is encoded in Table 8. For convenience, the contents of Utahs 8-24 are shown in gray in the data matrix 1300, as they are not relevant to the encoding of AI(90).

[0204] Utahs 1 and 7 are not affected by the creation of the 4x4 white box 1310, as they have no bits within 1310. Utah bits 2.5 and 2.8 are within 1310. In the AI(90) data encoding bit 2.5 = "1", so when overwritten by a white module, Utah 2 will be intentionally damaged. Utah 5 is entirely within the 4x4 white box 1310. Since the data is encoded in the manner of ISO / IEC 16022 Data Matrix, there will always be at least one black module in any valid Utah; thus, whatever 7-bit ASCII data character is encoded in Utah 5, it and its codeword will be intentionally damaged by overprinting all of the Utah 5 modules with white modules.

[0205] However, by restricting the data allowed to be encoded in these codewords so that in Utah bit 3.6-

[0206] 3.8, 4.3, 4.6 and 6.2 have no black modules ("1" bits) and can avoid intentional damage to bit positions in utahs 3, 4 and 6 within the 4x4 white frame. Assuming "x" represents "don't care" bit positions in each particular bit position within the utahs, the allowable 8-bit Data Matrix codewords are as follows:

[0207] Utah 3: xxxxx000

[0208] Utah 4: xx0xx0xx

[0209] Utah 6: x0xxxxxx

[0210] Table 8 shows the AI (90) data string for this third preferred embodiment in the first 7 utahs of the 16x16 underlying Data Matrix 1400 in Figure 29

[0211] Table 8. AI (90) ASCII and Data Matrix codeword string examples for patch sensor

[0212]

[0213]

[0214] In Figure 29 , only the information in Table 8 is used to print the underlying Data Matrix 1400. The remaining Data Matrix data codewords (utahs 8-12) are padded with Data Matrix filler characters. The last 12 codewords in the symbol (utahs 13-24) are RSEC error correction codewords.

[0215] In Figure 30 , a 4x4 white frame 1510 is shown in the bit map of the Data Matrix 1400 that corresponds to the 4x4 white area 1310 in Figure 28 . There are several ways to produce this 4x4 white frame 1510, including physically overprinting white modules on the underlying Data Matrix 1400. A better way is to modify the Data Matrix encoding and symbol generation software used to produce the underlying symbol by changing the 14x14 bitmap of the encoding of the Data Matrix to ensure that all bit positions in 1510 are set to "0" before converting to black and white modules or alternatively by setting all modules in the 4x4 white area 1510 to white before printing the Data Matrix 1400. Thus, there is no need for the step of white module overprinting since no black modules are ever printed in the 4x4 white area 1510.

[0216] As in the second preferred embodiment, in the third preferred embodiment, a secondary printing step is used to print about 2x2 sensor dye patches 1620 within the 4x4 white frame 1510, as Figure 31 ​The sensor dye patch 1602 is shown activated (represented in purple for clarity).

[0217] One of the purposes of the third preferred embodiment is that the color state of the sensor dye patch 1520 within the 4x4 white box 1510 undergoes a visible change when the sensor dye is activated. The second purpose is that the sensor dye chemistry employed has sufficient contrast to the above described Data Matrix reader such that the sensor dye patch 1620 is read as a W or B module when not activated and as a B or W module when activated. Then, using the above described reading method, the presence of either the unactivated sensor dye patch or the activated sensor dye patch is machine readable to the Data Matrix reader.

[0218] A further improvement of the third preferred embodiment is that during the process of Data Matrix reading: the knowledge that code words 2 and 5 of Utah are intentionally corrupted will be applied to improve the efficiency of the Reed-Solomon error correction process in recovering the sequence of symbol code words. The detection and correction of an erroneous code word at an unknown location in the combined data plus RSEC code word sequence requires the use of 2 RSEC characters for each corrupted code word. However, if the location of the corrupted code words is known prior to applying the Reed-Solomon error correction process (in this case in code words 2 and 5), only 1 RSEC code word is required to recover the correct code word value of each identified corrupted code word. This preserves additional unused RSEC code words that can be used for correction of other unexpected Data Matrix symbol corruptions.

[0219] Alternative embodiments include the use of one or more of the following

[0220] • Other two-dimensional error correcting bar code symbologies instead of Data Matrix, including QR Code, Aztec Code, MaxiCode, PDF417, and Dot Code;

[0221] • Alternative sensor dye chemistry with color states other than black, white, or transparent;

[0222] • Underprint two-dimensional error correcting bar code symbologies where either the first color state or the second color state of the symbol is a color other than black or white;

[0223] • Underprint two-dimensional error correcting bar code symbologies where the first color state can be the unmarked media surface and the second color state can be a direct marked media surface change, or vice versa.

[0224] In an example aspect of the present disclosure, a sensor-enhanced two-dimensional barcode, comprising: a substrate; a two-dimensional error correction barcode symbol disposed on the substrate; a first layer disposed on the substrate in a permanent color state; and a second layer disposed on the substrate. The barcode symbol further comprises a plurality of modules, which are optionally square, rectangular, or circular, each module having one of a first color state or a second color state. The second layer is optionally disposed by overprinting the first layer with a sensor dye module pattern, the sensor dye module pattern containing sensor digital information. The second layer further comprises a sensor dye having a chemical substance configured to undergo a chemical or physical state change in response to an occurrence of an environmental, physical, or biological condition to cause a change in color state of the sensor dye, thereby changing a color state of a subset of the plurality of modules.

[0225] According to another example aspect of the present disclosure, which can be used in combination with any one or more of the preceding aspects, the condition of the environment is selected from the group consisting of: time, temperature, time-temperature outcome, light, humidity, gas vapor, and radiation, and wherein, preferably, the sensor dye permanently changes color state when the condition of the environment crosses a threshold value.

[0226] According to another example aspect of the present disclosure, which can be used in combination with any one or more of the preceding aspects, the first layer forms a readable barcode symbol in a symbology of the two-dimensional barcode.

[0227] According to another example aspect of the present disclosure, which can be used in combination with any one or more of the preceding aspects, the two-dimensional error correction barcode symbol is from the group of symbologies consisting of Data Matrix, QR Code, Aztec Code, MaxiCode, PDF417, and DotCode symbologies.

[0228] According to another example aspect of the present disclosure, which can be used in combination with any one or more of the preceding aspects, the two-dimensional error correction barcode symbol utilizes Reed-Solomon error correction.

[0229] According to another example aspect of the present disclosure, which can be used in combination with any one or more of the preceding aspects, the sensor dye is initially in a color state of white, black, or transparent when unactivated, and changes to a different color state once activated.

[0230] According to another example aspect of the present disclosure, which can be used in combination with any one or more of the preceding aspects, the sensor dye permanently changes color state when a specified condition of the sensed property is above or below a threshold value.

[0231] According to another exemplary aspect of the present disclosure, which can be used in combination with any one or more of the preceding aspects, the specified condition of the sensed property is the detection of the presence of a biological organism, a biological agent, or a biological toxin, preferably by utilizing a colorimetric immunoassay.

[0232] According to another exemplary aspect of the present disclosure, which can be used in combination with any one or more of the preceding aspects, the second layer provides sensor digital information, which is preferably encoded in an invariant bitmap of a two-dimensional symbol, and more preferably encoded as binary encoded sensor data, more preferably in an error correcting code, preferably selected from the group consisting of: Hamming code, Bose-Chaudhuri-Hocquenghem (BCH) code, Golay code, Simplex code, Reed-Muller code, Fire code, Convolutional code, and Reed-Solomon code.

[0233] According to another exemplary aspect of the present disclosure, which can be used in combination with any one or more of the preceding aspects, the sensor digital information encoded in the sensor dye module pattern is a visual pattern or image.

[0234] According to another exemplary aspect of the present disclosure, which can be used in combination with any one or more of the preceding aspects, the article comprises a pharmaceutical, biological, or food product, preferably a vaccine; a container holding the pharmaceutical, biological, or food product, preferably a vaccine vial; and the sensor-augmented two-dimensional barcode symbol disposed on or in the container is preferably applied to an outer surface of the container.

[0235] According to another exemplary aspect of the present disclosure, a method of reading a sensor-augmented two-dimensional barcode symbol includes scanning and optically processing an image of a sensor-augmented two-dimensional barcode symbol, which includes constructing a scan binary bitmap from modules of the scanned sensor-augmented two-dimensional barcode symbol. The method also includes constructing a symbol codeword sequence from the scan binary bitmap. The underlying data codewords are then recovered from the symbol codeword sequence, preferably by using an error correction process on the symbol codeword sequence, the error correction process preferably being a Reed-Solomon code. Next, the underlying data codewords are processed to form an underlying symbol codeword sequence. The method also includes constructing an underlying binary bitmap from the underlying symbol codeword sequence, from the scan binary bitmap, the underlying binary bitmap preferably being equal in size to the scan binary bitmap. An exclusive OR operation can be performed on the scan binary bitmap and the underlying binary bitmap at each bit position to form a sensor digital information bitmap. Optionally, the method includes processing the sensor digital information bitmap to recover a binary information sequence containing binary encoded sensor data, preferably by processing the binary information sequence as an error correction code sequence and utilizing an error correction process to recover the binary encoded sensor data. The error correction code is preferably selected from the group consisting of: a Hamming code, a Bose-Chaudhuri-Hocquenghem mother code, a Golay code, a Simplex code, a Reed-Muller code, a Fire code, a Convolutional code, and a Reed-Solomon code.

[0236] According to another exemplary aspect of the present disclosure (which can be used in combination with any one or more of the preceding aspects), the method includes processing the sensor digital information bitmap to identify a sensor dye patch and determining whether activation of the sensor dye has occurred in response to a condition of the environment based on a color state of the sensor dye patch.

[0237] According to another exemplary aspect of the present disclosure (which can be used in combination with any one or more of the preceding aspects), the sensor dye patch is located in a fixed area of the Data Matrix barcode symbol.

[0238] According to another exemplary aspect of the present disclosure (which can be used in combination with any one or more of the preceding aspects), the method includes recovering a visual pattern or image from the sensor digital information bitmap.

[0239] According to another example aspect of the disclosure, which can be used in combination with any one or more of the preceding aspects, an apparatus can perform a method of generating a 2D barcode, the method comprising determining a set of payload data comprising a set of static data and a set of dynamic data, generating a 2D barcode comprising an encoded version of the set of static data and comprising a redundant space, designating at least a portion of the redundant space as a dynamic region adapted to store an encoded version of the set of dynamic data, and printing the 2D barcode using static ink and printing the encoded version of the set of dynamic data on the dynamic region using dynamic ink that changes state in response to at least one environmental change, such that the set of dynamic data is in one of a plurality of states. The set of dynamic data is readable by a reader of the 2D barcode, and the set of static data is readable by the reader of the 2D barcode when the set of dynamic data is in each of the plurality of states.

[0240] According to another example aspect of the disclosure, which can be used in combination with any one or more of the preceding aspects, the dynamic ink can be responsive to an environmental factor comprising at least one of: temperature, time, radiation, light, and toxic chemicals.

[0241] According to another example aspect of the disclosure, which can be used in combination with any one or more of the preceding aspects, the dynamic ink can be responsive to time and temperature.

[0242] According to another example aspect of the disclosure, which can be used in combination with any one or more of the preceding aspects, the dynamic ink can be responsive to freezing.

[0243] According to another example aspect of the disclosure, which can be used in combination with any one or more of the preceding aspects, the dynamic ink changes permanently in response to an environmental factor.

[0244] According to another example aspect of the disclosure, which can be used in combination with any one or more of the preceding aspects, the dynamic ink transitions from a first state to a second state in response to the occurrence of a particular environmental factor, and returns to the first state when the particular environmental factor no longer occurs.

[0245] According to another example aspect of the disclosure, which can be used in combination with any one or more of the preceding aspects, the redundant space comprises at least one of: a plurality of unused bits, a padding region, and an error detection and correction region.

[0246] According to another exemplary aspect of the present disclosure, which can be used in combination with any one or more of the preceding aspects, the redundant space includes at least one of: a format information area, a version information area, and a reference data area.

[0247] According to another exemplary aspect of the present disclosure, which can be used in combination with any one or more of the preceding aspects, a non-privileged reader is able to read static data of the 2D barcode and is not able to read dynamic data of the 2D barcode.

[0248] According to another exemplary aspect of the present disclosure, which can be used in combination with any one or more of the preceding aspects, only a privileged reader is able to read static data of the 2D barcode and is not able to read dynamic data of the 2D barcode.

[0249] According to another exemplary aspect of the present disclosure, which can be used in combination with any one or more of the preceding aspects, an apparatus can perform a method of providing a 2D barcode, the method comprising: determining a set of static data, determining a set of dynamic data, generating a first 2D barcode, generating a second 2D barcode, comparing the first 2D barcode and the second 2D barcode, and classifying information modules into a first group and a second group, and printing the 2D barcode in static ink and dynamic ink. The set of dynamic data has a first state and a second state. The first 2D barcode includes an encoded version of the set of static data and the set of dynamic data in the first state. The set of static data and the set of dynamic data in the first state includes a first plurality of information modules and a second plurality of information modules. The second 2D barcode includes an encoded version of the set of static data and the set of dynamic data in the second state. The set of static data and the set of dynamic data in the second state includes a third plurality of information modules and a fourth plurality of information modules. The third plurality of information modules includes all of the first plurality of information modules plus a set of one or more information modules. The second plurality of information modules includes all of the fourth plurality of information modules plus the set of one or more information modules. The first group includes common information modules between the first plurality of information modules of the first 2D barcode and the third plurality of information modules of the second 2D barcode. The second group includes unique information modules of the third plurality of information modules of the second 2D barcode. The first group is printed in static ink, and the second group is printed in dynamic ink. The dynamic ink is adapted to activate in response to an occurrence of a particular environmental factor.

[0250] According to another exemplary aspect of the present disclosure, which can be used in combination with any one or more of the preceding aspects, the first plurality of information modules and the third plurality of information modules are black modules, and the second plurality of information modules and the fourth plurality of information modules are white modules.

[0251] According to another exemplary aspect of the present disclosure, which can be used in combination with any one or more of the preceding aspects, the first plurality of information modules and the third plurality of information modules are adapted to be visually distinguishable from the printed surface, and the third plurality of information modules and the fourth plurality of information modules are not visually distinguishable from the printed surface.

[0252] According to another exemplary aspect of the present disclosure, which can be used in combination with any one or more of the preceding aspects, an apparatus can perform a method of providing a 2D barcode, the method comprising determining a set of static data, determining a set of dynamic data, generating a first 2D barcode, generating a second 2D barcode, comparing the first 2D barcode and the second 2D barcode, and classifying information modules into a first group, a second group, and a third group, and printing the 2D barcode using static ink, first dynamic ink, and second dynamic ink. The set of dynamic data has a first state and a second state. The first 2D barcode includes an encoded version of the set of static data and the set of dynamic data in the first state. The set of static data and the set of dynamic data in the first state includes a first plurality of information modules and a second plurality of information modules. The second 2D barcode includes an encoded version of the set of static data and the set of dynamic data in the second state. The set of static data and the set of dynamic data in the second state includes a third plurality of information modules and a fourth plurality of information modules. The first group includes common information modules between the first plurality of information modules of the first 2D barcode and the third plurality of information modules of the second 2D barcode. The second group includes unique information modules of the third plurality of information modules of the second 2D barcode, and the third group includes unique information modules of the first plurality of information modules of the first 2D barcode. The first group is printed with static ink, the second group is printed with the first dynamic ink, and the third group is printed with the second dynamic ink. The first dynamic ink is adapted to deactivate in response to the presence of a factor of a particular environment, and the second dynamic ink is adapted to activate in response to the presence of a factor of a particular environment.

[0253] According to another exemplary aspect of the present disclosure, which can be used in combination with any one or more of the preceding aspects, the first dynamic ink and the second dynamic ink can be responsive to a factor of an environment comprising at least one of: temperature, time, radiation, light, and toxic chemicals.

[0254] According to another exemplary aspect of the present disclosure, which can be used in combination with any one or more of the preceding aspects, the first dynamic ink and the second dynamic ink can be responsive to time and temperature.

[0255] According to another exemplary aspect of the present disclosure, which can be used in combination with any one or more of the preceding aspects, the first dynamic ink and the second dynamic ink are activated simultaneously.

[0256] According to another exemplary aspect of the present disclosure, which can be used in combination with any one or more of the preceding aspects, the first dynamic ink and the second dynamic ink are activated simultaneously.

[0257] According to another exemplary aspect of the present disclosure, which can be used in combination with any one or more of the preceding aspects, a method of providing a 2D barcode can be performed by an apparatus, the method comprising determining a set of payload data comprising a set of static data and a set of dynamic data, the set of dynamic data having a first state and a second state, generating a 2D barcode comprising an encoded version of the set of static data, a dynamic area adapted to store the set of dynamic data, and error detection and correction data, and printing the 2D barcode using static ink and printing the encoded set of dynamic data on the dynamic area using dynamic ink, the dynamic ink changing state in response to at least one environmental change, such that the set of dynamic data is in the first state or the second state, and the error detection and correction data accommodates changes in the set of dynamic data in the dynamic area, such that the 2D barcode is readable by a reader and produces a first output when the set of dynamic data is in the first state and the 2D barcode is readable by a reader and produces a second output when the set of dynamic data is in the second state.

[0258] According to another exemplary aspect of the present disclosure, which can be used in combination with any one or more of the preceding aspects, the dynamic area is disposed in a fill area.

[0259] According to another exemplary aspect of the present disclosure, which can be used in combination with any one or more of the preceding aspects, the dynamic area is disposed at one end of the data area.

[0260] According to another example aspect of the disclosure, which can be used in combination with any one or more of the preceding aspects, an apparatus can perform a method of reading a 2D barcode, the method comprising scanning a set of static data included in the 2D barcode, scanning a set of dynamic data included in the 2D barcode, generating a first output of the set of static data, and generating a second output of the set of dynamic data. The 2D barcode is printed in static ink and dynamic ink. An encoded version of the set of static data is printed in static ink. An encoded version of the set of dynamic data is printed in dynamic ink that changes state in response to at least one environmental change, such that the dynamic data is in one of a plurality of states. The set of dynamic data is printed in a redundant space of the 2D barcode. The second output indicates which of the plurality of states the dynamic data is in.

[0261] According to another example aspect of the disclosure, which can be used in combination with any one or more of the preceding aspects, an apparatus can perform a method of reading a two-dimensional (2D) barcode, the method comprising scanning a set of static data included in the 2D barcode, scanning a set of dynamic data included in the 2D barcode, and generating an output based on the set of static data and the set of dynamic data. The 2D barcode includes static ink and dynamic ink. An encoded version of the set of static data is printed in static ink. An encoded version of the set of dynamic data is printed in dynamic ink that changes state in response to at least one environmental change, such that the dynamic data is in one of a plurality of states. The set of dynamic data is printed in a dynamic region. The output is a first output when the set of dynamic data is in a first state of the plurality of states, and the output is a second output when the set of dynamic data is in a second state of the plurality of states.

[0262] It will be appreciated that various alterations and modifications to the example embodiments described herein will be apparent to those of ordinary skill in the art. Such alterations and modifications, which are intended to fall within the spirit and scope of the subject matter, can be made without departing from the spirit and scope of the present subject matter and without diminishing its intended advantages. It is, therefore, intended that the appended claims be interpreted as to include such alterations and modifications. And, it is intended that the features of the dependent claims be construed in each independent claim's system, method, and apparatus.

[0263] Many modifications and other embodiments of the present invention set forth herein will come to mind to one skilled in the art to which the invention pertains having the benefit of the teachings presented in the foregoing description and the associated drawings. Therefore, it is to be understood that the invention is not to be limited to the specific embodiments disclosed and that modifications and other embodiments are intended to be included within the scope of the appended claims. Although specific terms are employed herein, they are used in a generic and descriptive sense only and not for purposes of limitation.

Claims

1. A method for reading sensor-enhanced two-dimensional barcode symbols, comprising: The image of a sensor-enhanced two-dimensional barcode symbol is scanned to identify a set of static data and a set of dynamic data, including constructing a scanned binary bitmap from the scanning of the sensor-enhanced two-dimensional barcode symbol, wherein the set of dynamic data includes sensor data related to environmental monitoring. Construct a symbol codeword sequence from the scanned binary bitmap; The underlying data codewords are recovered from the symbol codeword sequence by applying error correction processing to the symbol codeword sequence; Process the underlying data codewords to form an underlying symbol codeword sequence; A bottom-level binary bitmap is constructed from the scanned binary bitmap based on the bottom-level symbol codeword sequence, wherein the size of the bottom-level binary bitmap is equal to that of the scanned binary bitmap; At each bit position, an XOR operation is performed on the scanned binary bitmap and the underlying binary bitmap to form a sensor digital information bitmap; as well as The sensor digital information bitmap is processed to recover a binary information sequence including the binary encoded sensor data. Regardless of the state of the dynamic data, the set of static data can be read by a 2D barcode reader.

2. The method of claim 1, further comprising: The sensor digital information bitmap is processed to identify the sensor dye patch, and the color state of the sensor dye patch is used to determine whether the sensor dye has been activated in response to environmental conditions.

3. The method as described in claim 2, wherein, The sensor dye patch is located in the invariant region of the data matrix barcode symbol.

4. The method of claim 1, further comprising: Recover visual patterns or images from the sensor's digital information bitmap.

5. The method of claim 1, wherein, The error correction process is Reed-Solomon code.

6. The method of claim 1, wherein, The sensor digital information bitmap is processed by the following operation: the binary information sequence is processed as an error correction code sequence, and the error correction process is used to recover the binary encoded sensor data.

7. The method of claim 6, wherein, The error correction code is selected from the group including the following: Hamming code, Bos-Chadhury-Hokungue code, Gray code, single code, Red-Miller code, Fal code, convolutional code, and Reid-Solomon code.

8. A method for providing a two-dimensional (2D) barcode, comprising: Determine a set of payload data, including a set of static data and a set of dynamic data; Generate an encoded version of the set of static data, wherein the 2D barcode includes redundant space; At least a portion of the redundant space is designated as a dynamic region suitable for storing the set of dynamic data; as well as The 2D barcode is printed using the set of static data, and an encoded version of the set of dynamic data is printed on the dynamic area using dynamic ink, the dynamic ink changing state in response to at least one change in the environment, such that the set of dynamic data is in one of a plurality of states, wherein the set of dynamic data can be read by a reader of the 2D barcode, and the set of static data can be read by a reader of the 2D barcode when the set of dynamic data is in each of the plurality of states.

9. The method of claim 8, wherein, The dynamic ink is responsive to environmental factors including at least one of the following: temperature, time, radiation, light, and toxic chemicals.

10. The method of claim 8 or 9, wherein, The dynamic ink is responsive to time and temperature.

11. The method of claim 8 or 9, wherein, The dynamic ink is responsive to freezing.

12. The method of claim 8 or 9, wherein, The dynamic ink changes permanently in response to environmental factors.

13. The method of claim 8 or 9, wherein, The dynamic ink changes from a first state to a second state in response to the occurrence of a specific environmental factor, and returns to the first state when the specific environmental factor no longer occurs.

14. The method of claim 8 or 9, wherein, The redundant space includes at least one of the following: multiple unused bits, a padding area, and an error detection and correction area.

15. The method of claim 8 or 9, wherein, The redundant space includes at least one of the following: a format information area, a version information area, and a reference data area.

16. The method of claim 8 or 9, wherein, A non-privileged reader can read the static data of the 2D barcode but cannot read the dynamic data of the 2D barcode.

17. The method of claim 8 or 9, wherein, Only privileged readers can read both the static and dynamic data of the 2D barcode.

18. The method of claim 8 or 9, wherein, The static data is printed using static ink.

19. The method of claim 8 or 9, wherein, The static data is printed by etching or burning.

20. A method for providing a two-dimensional (2D) barcode, comprising: Define a set of static data; A set of dynamic data is defined, wherein the set of dynamic data has a first state and a second state, wherein the set of static data can be read by a 2D barcode reader regardless of the state of the dynamic data; Generate a first 2D barcode, the first 2D barcode comprising an encoded version of the set of static data and the set of dynamic data in the first state, wherein the set of static data and the set of dynamic data in the first state comprise a first plurality of information modules and a second plurality of information modules. Generate a second 2D barcode, the second 2D barcode comprising an encoded version of the set of static data and the set of dynamic data in the second state, wherein... The set of static data and the set of dynamic data in the second state include a third and a fourth set of information modules. The third plurality of information modules includes all of the first plurality of information modules plus one or more information modules, and The second plurality of information modules includes all of the fourth plurality of information modules plus a set of one or more information modules; The first 2D barcode and the second 2D barcode are compared, and the third plurality of information modules and the second plurality of information modules are classified into a first group and a second group, wherein... The first group includes a common information module located between the first plurality of information modules of the first 2D barcode and the third plurality of information modules of the second 2D barcode. The second group includes the unique information modules of the third plurality of information modules of the second 2D barcode; and Print the 2D barcode, wherein The first set was printed in static form, and The second group is printed with dynamic ink, wherein the dynamic ink is adapted to change its color state in response to the occurrence of specific environmental factors.

21. The method of claim 20, wherein, The first plurality of information modules and the third plurality of information modules are black modules, while the second plurality of information modules and the fourth plurality of information modules are white modules.

22. The method of claim 20, wherein, The first plurality of information modules and the third plurality of information modules are adapted to be visually distinguishable from the printed surface, while the second plurality of information modules and the fourth plurality of information modules are not visually distinguishable from the printed surface.

23. The method according to any one of claims 20-22, wherein, The static data is printed using static ink.

24. The method according to any one of claims 20-22, wherein, The static data is printed by etching or burning.

25. A method for providing a two-dimensional (2D) barcode, comprising: Define a set of static data; A set of dynamic data is defined, wherein the set of dynamic data has a first state and a second state, wherein the set of static data can be read by a 2D barcode reader regardless of the state of the dynamic data; Generate a first 2D barcode, the first 2D barcode comprising an encoded version of the set of static data and the set of dynamic data in the first state, wherein the set of static data and the set of dynamic data in the first state comprise a first plurality of information modules and a second plurality of information modules. A second 2D barcode is generated, the second 2D barcode comprising an encoded version of the set of static data and the set of dynamic data in the second state, wherein the set of static data and the set of dynamic data in the second state comprise a third plurality of information modules and a fourth plurality of information modules. The first 2D barcode and the second 2D barcode are compared, and the first plurality of information modules and the third plurality of information modules are classified into a first group, a second group, and a third group, wherein... The first group includes a common information module located between the first plurality of information modules of the first 2D barcode and the third plurality of information modules of the second 2D barcode. The second group includes the unique information modules of the first plurality of information modules of the first 2D barcode; The third group includes the unique information modules of the third plurality of information modules of the second 2D barcode; as well as Print the 2D barcode, wherein The first set was printed in static form. The second group is printed with a first dynamic ink, wherein the first dynamic ink is adapted to change its color state in response to the occurrence of specific environmental factors, and The third group is printed with a second dynamic ink, wherein the second dynamic ink is adapted to change its color state in response to the occurrence of factors in the particular environment.

26. The method of claim 25, wherein, The first dynamic ink and the second dynamic ink are responsive to environmental factors including at least one of the following: temperature, time, radiation, light, and toxic chemicals.

27. The method of claim 25 or 26, wherein, The first dynamic ink and the second dynamic ink are responsive to time and temperature.

28. The method of claim 25 or 26, wherein, The first dynamic ink and the second dynamic ink are responsive to freezing.

29. The method of claim 25 or 26, wherein, The first dynamic ink and the second dynamic ink change color states simultaneously.

30. The method of claim 25 or 26, wherein, The static data is printed using static ink.

31. The method of claim 25 or 26, wherein, The static data is printed by etching or burning.

32. A method for providing a two-dimensional (2D) barcode, comprising: Determine a set of payload data comprising a set of static data and a set of dynamic data, wherein the set of dynamic data has a first state and a second state; Generate a coded version of the set of static data, a dynamic region suitable for storing a coded version of the set of dynamic data, and a 2D barcode for error detection and correction data; as well as The 2D barcode is printed using static data printed in a static form, and a set of coded dynamic data is printed on the dynamic area using dynamic ink. The dynamic ink changes state in response to at least one change in the environment, such that the set of dynamic data is in either a first state or a second state. The error detection and correction data adapts to the change in the set of dynamic data in the dynamic area, such that when the set of dynamic data is in the first state, the 2D barcode can be read by a reader and produce a first output, and when the set of dynamic data is in the second state, the 2D barcode can be read by a reader and produce a second output. Regardless of the state of the set of dynamic data, the set of static data can be read by the reader.

33. The method of claim 32, wherein, The dynamic region is set in the filled region.

34. The method of claim 32, wherein, The dynamic region is set at one end of the data region.

35. The method according to any one of claims 32-34, wherein, The static data is printed using static ink.

36. The method according to any one of claims 32-34, wherein, The static data is printed by etching or burning.

37. A method for reading a 2D barcode, comprising: Scan the set of static data included in the 2D barcode, wherein The 2D barcode is printed partly in static form and partly with dynamic ink, and The encoded version of the set of static data is printed in the static form; Scan the set of dynamic data included in the 2D barcode, wherein The encoded version of the set of dynamic data is printed with the dynamic ink, which changes state in response to at least one change in the environment, such that the dynamic data is in one of a plurality of states; and The set of dynamic data is printed in the redundant space of the 2D barcode; Generate a first output of the set of static data, which is independent of the state of the dynamic data; as well as A second output is generated from the set of dynamic data, wherein the second output indicates which of the plurality of states the dynamic data is in.

38. The method of claim 37, wherein, The static data is printed using static ink.

39. The method of claim 37, wherein, The static data is printed by etching or burning.

40. A method for reading a 2D barcode, comprising: Scan the set of static data included in the 2D barcode, wherein The 2D barcode is printed partly in static form and partly with dynamic ink, and The encoded version of the set of static data is printed in the static form; The static data is generated as an output, which is independent of the state of the dynamic data. Scan the set of dynamic data included in the 2D barcode, wherein The encoded version of the set of dynamic data is printed with the dynamic ink, which changes its color state in response to at least one change in the environment, such that the dynamic data is in one of a plurality of states; and The set of dynamic data is printed in the dynamic area; as well as Output is generated based on the set of static data and the set of dynamic data, wherein When the set of dynamic data is in the first state among the plurality of states, the output is the first output, and When the set of dynamic data is in the second state among the plurality of states, the output is the second output.

41. The method of claim 40, wherein, The static data is printed using static ink.

42. The method of claim 40, wherein, The static data is printed by etching or burning.

Citation Information

Patent Citations

  • High-value document authentication system and method

    US20130015236A1

  • Barcoded Indicators for Quality Management

    US20140252096A1

  • Progressive Barcode

    US20140339312A1

  • Barcode holding body

    JP2002099879A

  • Thermochromic bar code

    US20020056756A1