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

The sensor-enhanced 2D barcode system addresses the lack of environmental monitoring in existing 2D barcodes by incorporating sensor dye layers that change state in response to environmental conditions, ensuring reliable data reading and integrity through error correction.

JP7726955B2Active Publication Date: 2025-08-20ZEBRA TECHNOLOGIES CORP
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2023122801
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2015-03-30
Filing Date
2023-07-27
Publication Date
2025-08-20
Estimated Expiration
2036-03-30

AI Technical Summary

Technical Problem

Existing two-dimensional (2D) barcode technologies do not effectively incorporate dynamic environmental data, failing to address environmental monitoring and data integrity under conditions such as temperature, time, radiation, and chemical exposure.

Method used

A sensor-enhanced 2D barcode system that integrates a substrate with a two-dimensional error-correction barcode symbol, featuring modules that change color in response to environmental conditions, utilizing sensor dye layers that alter state based on environmental factors, and employs error correction algorithms to recover dynamic data.

Benefits of technology

Enables reliable reading of both static and dynamic data, ensuring data integrity and environmental monitoring capabilities within limited barcode space, enhancing data recovery and adaptability.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007726955000009
    Figure 0007726955000009
  • Figure 0007726955000010
    Figure 0007726955000010
  • Figure 0007726955000011
    Figure 0007726955000011
Patent Text Reader

Abstract

To provide a two-dimensional barcode including dynamic environmental data.SOLUTION: Processing for providing a two-dimensional barcode provides a first layer provided in a permanent color state module pattern, and a second layer provided in a sensor dye module pattern. Sensor information may be of an environmental, physical or biological nature, and changes the color status of the sensor dye module in the event of a specific condition on detected characteristics. The sensor information is recovered utilizing an error-correction feature during barcode reading.SELECTED DRAWING: Figure 5
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] This disclosure relates generally to information encoded within two-dimensional barcodes. For example, this disclosure relates to methods, systems, and apparatus for combining pre-printed information with dynamic sensor information encoded within two-dimensional barcodes. [Background technology]

[0002] A barcode is an optical, machine-readable representation of data. A two-dimensional (2D) barcode (e.g., Data Matrix® or QR Code®) is a method of representing information two-dimensionally in a barcode. 2D barcodes can represent more data per unit area than one-dimensional barcodes. Barcodes have many uses, including documenting inventory, tracking deliveries, matching products to pricing files, and providing information to users. In some systems, data recovery from barcodes can be system critical. Many barcode technologies offer strong error correction capabilities, and the use of duplicate barcodes or larger barcode sizes typically increases data recovery capabilities. However, the space available for barcodes can be limited in many ways. Current barcode technology can also be improved as presently disclosed. Summary of the Invention [Means for solving the problem]

[0003] The present disclosure provides a 2D barcode containing dynamic environmental data, and provides new and innovative systems, methods, and apparatus in which modules of the barcode can change their response state in response to environmental conditions. In an exemplary embodiment of the present disclosure, a sensor-enhanced 2D 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. In an exemplary embodiment of the present disclosure, a sensor-enhanced 2D barcode includes a substrate, a two-dimensional error-correction barcode symbol disposed on the substrate, the 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 square, rectangular, or annular modules, each having a first color state and a second color state. The second layer is optionally provided by overprinting the first layer within a pattern of a sensor dye layer containing digital information. The second layer further comprises a sensor dye, the sensor dye having a chemistry that undergoes a chemical or physical state change in response to the occurrence of an environmental, physical, or biological condition that causes the sensor dye to change color, thereby changing the color state of a subset of the plurality of modules.

[0004] According to another exemplary aspect of the present disclosure, an article of manufacture includes a drug, biological product, or food product, preferably a vaccine, and a container holding a bottle of the drug, biological product, or food product, preferably the vaccine, wherein the container includes a sensor-enhanced 2D barcode symbol, preferably applied to an outer surface of the container.

[0005] In another exemplary embodiment of the present disclosure, a sensor-enhanced 2D barcode symbol includes constructing a scanned binary bitmap from scanned modules of the sensor-enhanced 2D barcode symbol. A method for reading a sensor-enhanced 2D barcode symbol includes scanning the sensor-enhanced 2D barcode symbol and optical image processing. The method further includes constructing a symbol codeword sequence from the scanned binary bitmap. Then, an underlying data codeword is recovered from the symbol codeword sequence using an error correction process, preferably a Reed-Solomon code, on the symbol codeword sequence. The underlying codeword is then processed with the underlying symbol encoding sequence. The method further includes constructing a scanned binary bitmap from the underlying symbol codeword sequence, preferably from an underlying symbol codeword sequence of the same size as the scanned binary bitmap. An exclusive-OR operation (EXCLUSIVE-OR) of the scanned binary bitmap and the underlying binary bitmap at each bit position is performed with the sensor digital information bitmap. The method optionally includes processing the sensor digital information bitmap to recover a binary information sequence incorporating the encoded binary sensor data, preferably by treating the binary information sequence as an error correcting code sequence and utilizing an error correction process to recover the binary encoded sensor data, the error correcting code preferably being selected from the group of Bose-Chaudhuri-Hocquenghem (BCH) codes, Golay codes, Simplex codes, Reed-Muller codes, Fire codes, convolutional codes, Hamming codes, and Reed-Solomon codes.

[0006] In another exemplary aspect of the present disclosure, a method for generating a 2D barcode comprises: determining payload data comprising a set of static data and a set of dynamic data, generating a 2D barcode comprising a version of the combined static data comprising an encoded redundant space, allocating at least a portion of the redundant space as a dynamic area adapted to store the set of dynamic data, printing the 2D barcode with static ink, and printing an encoded version of the set of dynamic data in the dynamic area with dynamic ink that changes state in response to at least an environmental change such that the dynamic data assumes one of a plurality of states, wherein the set of dynamic data is readable by a reader of the 2D barcode and the set of static data is readable by a reader of the 2D barcode when the set of dynamic data is in one of a plurality of possible states.

[0007] In another exemplary embodiment of the present disclosure, which can be used in combination with one or more of the preceding embodiments, a method for 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 information modules with a first group and a second group to classify the information modules into the first group and the second group; and printing the 2D barcode with static ink and dynamic ink. The dynamic data set has a first state and a second state. The static data set and the dynamic data set in the first state include a first plurality of information modules and a second plurality of information modules. The second 2D barcode includes an encoded version of the static data set and a plurality of dynamic data sets in the second state. The third plurality of information modules includes a set of one or more information modules in addition to the first plurality of information modules. The second plurality of information modules includes a set of one or more information modules in addition to all of the fourth information modules. The first group includes common information modules among the first plurality of information modules of the first 2D barcode and a third plurality of information modules of the second barcode. The second group includes unique information modules of the third plurality of information modules of the 2D barcode. The first group is printed with static ink and the second group is printed with dynamic ink. The dynamic ink is adapted to be activated upon the occurrence of a specific environmental factor.

[0008] According to another exemplary aspect of the present invention, which can be used in combination with the method of any one or more of the aforementioned aspects, a method for providing a 2D barcode includes determining a set of static 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 with static ink, a first dynamic ink and a second dynamic ink. The set of dynamic data has a first and a second state. The first 2D barcode includes an encoded version of the set of static data and a set of dynamic data in the first state. The set of static data and the set of dynamic data in the first state include 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 a set of dynamic data in the second state. The set of static data and the dynamic data of the second state include a third plurality of information modules and a fourth plurality of information modules. The first group includes information modules common between the first plurality of information modules of the second 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 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 first dynamic ink, and the second group is printed with second dynamic ink. The second dynamic ink is adapted to become inactive upon occurrence of a specific environmental factor, and the first dynamic ink is adapted to become active upon occurrence of a specific environmental factor.

[0009] According to another exemplary aspect of the present invention, which can be used in combination with one or more of the methods of the aforementioned aspects, a method for providing a 2D barcode comprises: determining a set of static data and a set of dynamic data payload data having a first state and a second state; generating a two-dimensional barcode comprising an encoded version of the set of static data, a dynamic area adapted to store the dynamic data, and error detection and error correction data; printing the 2D barcode with static ink and the set of dynamic data in the dynamic area with dynamic ink that changes 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, wherein the error detection and correction data adapts to the changes of 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 to generate a first output and when the set of dynamic data is in the second state the 2D barcode can be read by a reader to generate a second output.

[0010] According to another exemplary aspect of the present invention, which can be used in combination with one or more of the methods of the aforementioned aspects, a method for reading a 2D barcode includes scanning a set of static data contained in the 2D barcode, generating a first output of the set of static data, and generating a second output of a set of dynamic data. The 2D barcode is printed with static ink and dynamic ink, and an encoded version of the set of static data is printed with static ink. The encoded version of the set of dynamic data is printed with 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 redundant space of the 2D barcode. The second output indicates in which of the plurality of states the dynamic data is.

[0011] According to another exemplary aspect of the present invention, which can be used in combination with any one or more of the methods of the aforementioned aspects, a method of reading a two-dimensional (barcode) includes scanning a set of static data contained in a 2D barcode, reading a set of dynamic data contained 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 static data is printed with static ink. The encoded version of the dynamic data is printed with 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 area. When the dynamic data is in a first state of the plurality of states, the output is a first output, and when the dynamic data is in a second state of the plurality of states, the output is a second output.

[0012] Additional features and advantages of the disclosed systems, methods, and apparatus are described in, and will be apparent from, the following detailed description and drawings. [Brief explanation of the drawings]

[0013] [Figure 1A] FIG. 2 is a block diagram illustrating an example data structure of barcode data of a 2D barcode according to an exemplary embodiment of the present disclosure. [Figure 1B] FIG. 1 is a block diagram illustrating an example data structure of encoded data of a 2D barcode according to an exemplary embodiment of the present disclosure. [Figure 1C] FIG. 2 is a block diagram illustrating an example data structure of content data of a 2D barcode according to an exemplary embodiment of the present disclosure. [Figure 1D] FIG. 1 is a block diagram illustrating an example data structure of reference data for a 2D barcode according to an exemplary embodiment of the present disclosure. [Figure 1E] FIG. 10 is a block diagram illustrating an example data structure of payload data of an example 2D barcode according to an exemplary embodiment of the present disclosure. [Figure 2A]FIG. 1 illustrates a 2D barcode according to an exemplary embodiment of the present disclosure. [Figure 2B] FIG. 1 illustrates an example of reference data for a 2D barcode according to an exemplary embodiment of the present disclosure. [Figure 2C] FIG. 1 illustrates an example of a 2D barcode according to an exemplary embodiment of the present disclosure. [Figure 2D] FIG. 1 illustrates an embodiment of reference data for a 2D barcode according to an exemplary embodiment of the present disclosure. [Figure 3A] FIG. 1 illustrates a representation of a 2D barcode according to an exemplary embodiment of the present disclosure. [Figure 3B] FIG. 1 illustrates a representation of a 2D barcode according to an exemplary embodiment of the present disclosure. [Figure 3C] FIG. 1 illustrates a representation of a 2D barcode according to an exemplary embodiment of the present disclosure. [Figure 3D] FIG. 1 illustrates a representation of a 2D barcode according to an exemplary embodiment of the present disclosure. [Figure 4] 1 includes a flowchart illustrating an example of a process for providing a 2D barcode according to an exemplary embodiment of the present disclosure. [Figure 5] 1 is a flowchart illustrating a 2D barcode printed using an example process for providing a 2D barcode according to an exemplary embodiment of the present disclosure. [Figure 6A] 1A-1C illustrate textual representations of static and dynamic data sets according to an exemplary embodiment of the present disclosure. [Figure 6B] FIG. 1 illustrates an example of text dynamic data encoded as binary information modules according to an exemplary embodiment of the present disclosure. [Figure 6C] FIG. 1 is a flow chart diagram illustrating a 2D barcode printed using an example process for providing a 2D barcode according to an exemplary embodiment of the present disclosure. [Figure 6D] FIG. 1 is a flow chart diagram illustrating a 2D barcode printed using an example process for providing a 2D barcode according to an exemplary embodiment of the present disclosure. [Figure 7]FIG. 1 includes a flowchart illustrating an example of a process for providing a 2D barcode according to an exemplary embodiment of the present disclosure. [Figure 8] 1 is a flowchart illustrating a portion of a 2D barcode printed using an example process for providing a 2D barcode according to an exemplary embodiment of the present disclosure. [Figure 9] FIG. 1 includes a flowchart illustrating an example of a process for providing a 2D barcode according to an exemplary embodiment of the present disclosure. [Figure 10A] 1 is a block diagram illustrating an example of a set of information modules printed using an exemplary process for providing a 2D barcode according to an exemplary embodiment of the present disclosure. FIG. [Figure 10B] 1 is a block diagram illustrating an example of a set of information modules printed using an exemplary process for providing a 2D barcode according to an exemplary embodiment of the present disclosure. FIG. [Figure 10C] FIG. 1 is a block diagram illustrating an example set of information modules printed using an example process for providing a 2D barcode according to an exemplary embodiment of the present disclosure. [Figure 11] FIG. 1 includes a flowchart illustrating an example of a process for providing a 2D barcode according to an exemplary embodiment of the present disclosure. [Figure 12] FIG. 1 includes a flowchart illustrating an example of a process for reading a 2D barcode according to an exemplary embodiment of the present disclosure. [Figure 13] FIG. 1 includes a flowchart illustrating an example of a process for reading a 2D barcode according to an exemplary embodiment of the present disclosure. [Figure 14] FIG. 1 is a block diagram of a 2D barcode providing system according to an exemplary embodiment of the present disclosure. [Figure 15A] FIG. 1 is a block diagram of a 2D barcode reading system according to an exemplary embodiment of the present disclosure. [Figure 15B] FIG. 1 is a block diagram of a 2D barcode reading system according to an exemplary embodiment of the present disclosure. [Figure 16]FIG. 1 is a block diagram of a 14×14 Data Matrix® symbol encoding the data “1234567890” according to an exemplary embodiment of the present disclosure. [Figure 17] FIG. 1 illustrates a codeword, Utah placement, and bitmap matrix for a 14×14 Data Matrix® symbol according to an exemplary embodiment of the present disclosure. [Figure 18] FIG. 1 is a schematic diagram of a typical codeword arrangement within a 10×10 Data Matrix® bitmap according to an exemplary embodiment of the present disclosure. [Figure 19] FIG. 1 is a block diagram of an invariant Utah constellation of all practical sizes of a Data Matrix® symbol in accordance with an exemplary embodiment of the present disclosure. [Figure 20] FIG. 1 illustrates a representation of a 14×14 bitmap and Utah constellation within a 16×16 Data Matrix® symbol according to an exemplary embodiment of the present disclosure. [Figure 21] FIG. 1 illustrates the Utah representation (Utahs) used for GS1A I(90) character sequences and placement of 15BCH (15,5,7) coded bits, according to an exemplary embodiment of the present disclosure. [Figure 22] FIG. 1 is a block diagram of a 16×16 Data Matrix® encoding a GS1A1(90) character sequence using W→X sensor dye chemistry according to an exemplary embodiment of the present disclosure. [Figure 23] FIG. 8 is a detailed view of UTA 1-7 of FIG. 7 according to an exemplary embodiment of the present disclosure. [Figure 24] FIG. 8 is a diagram of an unactivated overprint sensor dye module and the 16×16 Data Matrix® block of FIG. 7 according to an exemplary embodiment of the present disclosure. [Figure 25] FIG. 10 is a block diagram of a 16×16 Data Matrix® encoding the GS1A I(90) character sequence using X→B sensor dye chemistry according to an exemplary embodiment of the present disclosure. [Figure 26]FIG. 26 is a detailed view of units 1-7 in FIG. 25 according to an exemplary embodiment of the present disclosure. [Figure 27] FIG. 26 is a block diagram of an unactivated overprint sensor dye module and the 16×16 Data Matrix of FIG. 25 according to an exemplary embodiment of the present disclosure. [Figure 28] FIG. 10 is a detailed diagram of a 16x16 data matrix encoding the data of Table 8 showing a region of a 4x4 frame according to an exemplary embodiment of the present disclosure. [Figure 29] FIG. 10 is a block diagram of a 16×16 data matrix that serves as the basis for encoding using the data in Table 8 according to an exemplary embodiment of the present disclosure. [Figure 30] FIG. 30 is a block diagram of the 16×16 Data Matrix of FIG. 29 with an overprinted 4×4 white frame according to an exemplary embodiment of the present disclosure. [Figure 31] FIG. 31 is a block diagram of the 16×16 Data Matrix of FIG. 30 showing overprinted and activated sensor dye patches according to an exemplary embodiment of the present disclosure. DETAILED DESCRIPTION OF THE INVENTION

[0014] Previous methods have involved one-dimensional (linear or 1D) barcodes that become unreadable or change color upon stimulation. Notable are the FreshCode smart barcode labels offered by Varcode, Inc. See http: / / www.varcode.com / portforio_item / freshcod / .

[0015] Several ID barcode patent applications have been filed, including U.S. Patent Publication 20140252096A1 to Nemet et al. While combining environmental measurements with data values in ID barcodes has been generally described, the technology applicable to ID barcodes does not appear to be applicable to two-dimensional (2D) barcodes with environmental monitoring.

[0016] It is significant that the area occupied by the ID barcode was the space of the unit of application, e.g., a bottle, etc. For example, a 2D barcode with a high density encoding technology, such as Data Matrix®, actually has an encoded area that is about 1 / 30 or even smaller in space than an ID barcode representing the same data.

[0017] Conventional applications involving 2D barcodes have not addressed environmental monitoring, but statically stored high density information that is insensitive to environmental factors such as temperature, time, time-temperature product, freezing, nuclear radiation, and toxic chemicals.

[0018] Some solutions involve having two sets of data, primary / secondary or secret / obvious, whereby the second set of information is stored in redundant space in the barcode and is read by a conventional reader or independently by a second reader or other decoding method. These solutions involving secondary / secret data address issues such as security and reliability, but do not address environmental monitoring when data is dynamic. Pending U.S. Patent Application Publication No. 20030015236A1 to Porter et al., "High Value Document Authentication System and Method Thereof," and the methods and references therein, describe primary and secondary sets of information and their application to document authentication.

[0019] Other solutions use multiple sets of data, such as primary / secondary / tertiary, whereby different data sets (secondary, tertiary, etc.) are stored incrementally on previous sets. Multiple sets of information are added incrementally, for example, by printing on previous modules of different colors and then decoding the data using a reading device configured to interpret the various color modules. See, for example, Simske et al., U.S. Patent Application Publication No. 20140339312A1. These solutions incrementally introduce static data and address matters pertaining to track, trace, inspection, and quality assurance, one layer at a time, and do not introduce dynamic environmental data.

[0020] Some exemplary embodiments described herein provide a unique method of combining pre-printed data with encoded sensor information. The pre-printed data and encoded sensor information may be combined in a first stage, or the sensor information encoded in the pre-printed data may be dynamically added to the pre-printed data in a second stage depending on the actual planned sensor application.

[0021] Whether the property being sensed is environmental, physical, or biological, sensor dye chemistry can be used. A specified property of the sensed property activates a chemical or physical state change that causes a change in the color state of the sensor dye. The change in color state is manifested in a pattern of sensor dye modules in a sensor-augmented 2D barcode. When read using extensions of standard readout and error correction algorithms for the type of 2D barcode symbol used, the sensor digital information is recovered.

[0022] Examples of environmental sensors include temperature monitors that measure cumulative heat exposure or the crossing of a set high or low temperature threshold, time, time-temperature product, and nuclear radiation exposure monitors, and gas or humidity exposure monitors that measure cumulative or instantaneous exposure thresholds, respectively. Examples of medical sensors include patient temperature recorders and threshold assays that measure levels of biotoxins such as aflatoxin or botulinum toxin, and colorimetric immunoassays that detect the presence of biological agents such as prions or infectious bacteria.

[0023] A block diagram of an example two-dimensional (2D) barcode data structure 100, an example 2D barcode encoded data structure, an example 2D barcode content data data structure, and an example 2D barcode reference data structure are shown in Figures 1A, 1B, 1C, and 1D, respectively. The 2D barcode may include encoded data 104, content data 108, and format and version data 110. The encoded data 104 includes encoded data 104 and reference data 106. The content data 108 may 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 necessary to decode the content data 108. For example, the format and version data 110 may include mask information. The reference data 106 may include alignment data 124 and finder data 128. 6 , timing data 128, positioning data 130, and orientation data 132. Payload data may include static data 134 and dynamic data 136. For example, as illustrated in Figures 2A, 2B, 2C, and 2D and discussed in more detail below, positioning data 130 may include position blocks 138 or positioning modules, and finder data 126 may include finder patterns 142 or finder modules. Reference data 106 may also include separators, identification modules, and direction modules.

[0024] Examples of 2D barcodes are shown in Figures 2A and 2C, and their reference data 106 and format and version data 110 are shown in Figures 2B and 2D. Figure 2A includes all the encoded data 104 and reference data 106 for a 2D barcode 156 (e.g., Data Matrix®). Figure 2B shows only the reference data 106 for the 2D barcode 156. For example, the reference data 106, including the finder pattern 142 and the timing pattern 148, includes the content data 108 of the 2D barcode 158. Figure 2C includes the encoded data 104 and reference data 106 for a 2D barcode 158 (e.g., QR Code®). Figure 2D shows only the reference data 106 for the 2D barcode 158. For example, the reference data 106 may include the position block 138 and the timing pattern 148.

[0025] A representation of a 2D barcode 156 is shown in Figures 3A and 3B. 8 Representations of the 2D barcodes are shown in Figures 3C and 3D. Each representation shows a reference data region 160 and an encoded data region 162. The encoded data region 162 may include static data 134, dynamic data 136, and error detection and correction data 116. The 2D barcode 156 also includes a number of unused bits that are not used for the encoded data 104 or the reference data 106. The 2D barcode 158 may include a remainder space 118 that may include a number of unused bits.

[0026] Some examples described herein employ Data Matrix®, but it will be understood that similar approaches can be adopted for other 2D barcode schemes by modifying the approach to comply with applicable 2D barcode standards. Data Matrix® is a two-dimensional error-correcting barcode symbol established in accordance with ISO / IEC 16022 Information Technology (Automatic Identification and Data Capture Techniques—Data Matrix® Barcode Symbol Specification). ECC200 Data Matrix® symbols utilize Reed-Solomon error correction to recover encoded data from symbols that have suffered a limited amount of accidental or deliberate damage. All Data Matrix® symbols referred to herein are of the ECC200 symbol type and may be square or rectangular, each identified by the number of rows and columns.

[0027] Data is encoded within the Data Matrix™ as a sequence of 8-bit code words or symbol character values. A code word may contain data or a Reed-Solomon error correction (RSEC) check character value. It will be understood that the general approach described herein can use other code word sizes, other data layouts, and other forms of error correction codes, and this common Data Matrix™ is described by way of example only.

[0028] Each module is an optical (visual) cell within the matrix that contains the Data Matrix® symbol used to encode one bit of data. Each module is nominally colored black or nominally white. The module matrix is an optical representation of the binary bitmap matrix contained in the region of the symbol surrounded by the finder pattern. The finder pattern may be an "L" formed by connected solid lines along two edges of the symbol module matrix, with an alternating pattern of black and white modules along the opposite edge of the symbol. See FIG. 16. It will be understood that other finder patterns may be used with other bar code symbologies.

[0029] 16 shows a 14x14 square Data Matrix® 320 that encodes the data "1234567890." The Data Matrix® has two parts: a finder pattern forming an "L" formed by connected solid lines 312a and 312b along two edges of the symbol, and an alternating pattern of black and white modules 322a and 322b along the opposite edge of the symbol. The symbol code word is encoded in a 12x12 module matrix 330 within the finder pattern.

[0030] The detailed structure of the 12x12 module matrix 330 of the 14x14 Data Matrix™ 320 is shown as bitmap matrix 200 in Figure 17. The 14x14 Data Matrix™ contains 18 codewords, each corresponding to the 8-bit codeword written as "Utah." The 12x12 bitmap matrix shows the layout of all 18 codewords within the 14x14 Data Matrix™.

[0031] "Utah" is an arrangement of eight modules that encodes one codeword. It can be formed as a single connected group, often in the shape of the Utah state, or as two subgroups of connected modules split across two patterns. Consecutive Utahs 270 encoding codeword 9 show a typical arrangement of bits within adjacent Utahs. Conversely, Utah for codeword 4 contains two similar groups: subgroup 272a at the top of bitmap matrix 200, which encodes bits 4.3 through 4.8, and subgroup 272b at the top of bitmap matrix 200, which encodes bits 4.1 and 4.2, respectively.

[0032] A typical codeword Utah placement in a 10x10 data matrix is shown in Figure 18. Trace line 310 shows how the codeword Utah is generally placed in the bitmap matrix. Comparing Figures 17 and 18, All bits of Utah 2, Utah 3 bits 3.6 - 3.8, Utah 4 bits 4.3 - 4.8, All bits of Utah 5 and 6 Please note that:

[0033] These bit positions are relative to the upper left corner (ULC) of the Data Matrix® symbol. In accordance with ISO / IEC 16022 standard Annex F.3, all square Data Matrix® symbols are up to 26x26 in size, and all rectangular Data Matrix® symbols are invariant in their placement relative to the ULC of each Data Matrix® symbol. These bit positions define the "invariant bitmap" for the Data Matrix® symbol. It will be understood that other barcode standards may have different invariant bitmaps. In FIG. 19, invariant bitmap 410 is shown in the ULC of Data Matrix® symbol 405. For purposes of terminology, the Data Matrix® symbol printed before augmentation with the sensor module is referred to as the "underlying Data Matrix® symbol" and includes its codeword sequence as the "subordinate symbol codeword sequence" that encodes its underlying data codeword and its RSEC error correction codeword. It will be appreciated that other symbology systems have their own underlying symbols, underlying codeword sequences, underlying data codewords and error correction codewords, depending on the particular type of error correction used.

[0034] Figure 4 includes a flowchart of an example process 400 for providing a 2D barcode. Although process 400 is described with reference to the flowchart shown in Figure 4, it will be understood that many other ways of performing the operations associated with process 400 may be used. For example, the order of many of the blocks may be changed, many of the blocks may be repeated intermittently or performed sequentially, some blocks may be combined with other blocks, and many of the described blocks may be optional or performed merely by chance.

[0035] The exemplary process 400 begins 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 may include a product serial number, lot number, batch number, and threshold exposure temperature (e.g., 30°C). Additionally, the set of dynamic data 136 may include information that, when decoded by a reading device, 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, the 2D barcode including redundant space (block 404). In exemplary embodiments, the redundant space may include a plurality of unused bits, a padding area, and / or an error detection and correction area (e.g., remainder space 118). Additionally, the redundant space may include a format information area, a version information area, and / or a reference data area. Additionally, the redundant space may include all of the remaining space and / or all of the plurality of unused bits. Additionally, the redundant space may include a portion of the padding data or may include all of the padding data. The redundant space may 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 redundant space is designated as a dynamic area adapted to store a set of dynamic data 136 (block 406). Next, a 2D barcode is printed using static ink, and an encoded version of the set of dynamic data on the dynamic area is printed using dynamic ink that changes state in response to at least one environmental change such that the dynamic data 136 is in one of a plurality of states (block 408). In an exemplary embodiment, the set of dynamic data 136 is readable by a 2D barcode reader, and the set of static data 134 can be read by the 2D barcode reader when the set of dynamic data 136 is in each of a plurality of states.In exemplary embodiments, the dynamic ink may be sensitive to temperature, time, time and temperature, freezing, radiation, toxic chemicals, or a combination of these factors. In one exemplary embodiment, the ink may be a non-reversible thermochromic ink. For example, the dynamic ink may be a water-based non-reversible thermochromic ink configured to permanently change from white to black at 40°C. Additionally, the thermochromic ink may be reversible. For example, a reversible thermochromic ink may be a liquid crystal ink or a leuco dye ink (e.g., including QCR Solutions Reversible Thermochromic Inks and HW Sands Corporation Ink). In exemplary embodiments, the ink may be a photochromic ink, which may be either reversible or irreversible. For example, the dynamic ink may change state based on exposure to UV light. Additionally, the ink may be a time- and temperature-sensitive ink (including an OnVu indicator). The dynamic ink may change from a darker color to a lighter color, from a lighter color to a darker color, have varying levels of transparency or opacity, and / or have varying levels of reflectivity or absorptivity, or the barcode may be read by a reader in one or more states. For example, the dynamic ink may change from a lighter color to a dark blue and be readable as black. Additionally, any suitable color combination may be used for the two or more dynamic ink states.

[0036] In an exemplary embodiment, the dynamic ink may change permanently or irreversibly in response to environmental factors. For example, certain chemicals may experience thermal degradation when exposed to certain temperatures. A supplier may want to know if the chemical reached temperatures above 30°C during transportation and storage. If the dynamic ink changes irreversibly, the set of dynamic data 136 may indicate that the chemical was exposed to temperatures above 30°C and be decoded to inform the supplier that the contents of the container may have experienced thermal degradation. Providing a 2D barcode with a set of dynamic data 136 in the redundant space allows an individual to use a reading device to read the 2D barcode both before the dynamic ink is activated and after the dynamic ink is activated from the set of dynamic data 136 in a first state to the set of dynamic data 136 in a second state. For example, the original 2D barcode is still readable, allowing a reading device to obtain a set of static data 134, such as a serial number, lot number, and batch number, even after the set of dynamic data 136 has entered the second state. Both the set of static data 134 and the set of dynamic data 136 can be printed on the same 2D barcode without losing the static data 134 when the set of dynamic data 136 changes from a first state to a second state.

[0037] Sensor dye chemistries are utilized to detect changes in the state of the sensed environmental or medical property. Data Matrix® modules are nominally black or white, so six different sensor dye chemistries may be utilized, as shown in Table 1, where "B" indicates the black state and "W" refers to the white state. "X" means the dye is in the transparent state.

[0038] Table 1: Types and color properties of selected sensor dye chemistries [Table 1]

[0039] The black and white pigment color states are opaque and therefore assumed to have an underlying color when in the black or white state, but when the pigment is in the transparent color state (X), then the underlying color becomes optically visible.

[0040] The sensor dye module pattern can be printed over the black or white modules of the Data Matrix® symbol, or can be printed in place of the Data Matrix® modules, so that the color state of the sensor dye modules of the Data Matrix® symbol changes with the difference in chemical activation of the sensor dye. Different sensor dye chemical systems have different properties with respect to encoding sensor data.

[0041] Sensor dye systems that transition from a colored state to a transparent state are typically used with an underlying bit pattern printed in a Data Matrix® symbol, where all of the bits in that pattern are covered with a sensor dye that produces a uniform black or white color until those modules are activated. Once activated, the sensor dye becomes transparent, allowing the underlying bit pattern of the Data Matrix® barcode to be optically detectable. Alternatively, a dye system that transitions from a transparent state to a black or white color state selectively covers modules of a uniform black or white pattern printed in a Data Matrix® symbol, allowing the data encoded in the sensor dye module pattern to be optically detectable when activated. This latter system has the advantage that the data encoded in the sensor dye can be determined at the time of printing of the sensor matrix modules, which may be at a different time and place than the prior printing of the Data Matrix® symbol.

[0042] In this example, the sensor dye chemistry used can be printed directly onto a pre-printed Data Matrix® module on a modular basis, or printed in place of the Data Matrix® module. For example, this can be done in a multi-station printing press. Another way to do this is print-on-demand via a two-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 or in place of the Data Matrix® module. Data Matrix® module. This last Data Matrix® module, augmented by the addition of sensor modules, is an example of a "sensor-augmented two-dimensional barcode symbol."

[0043] When a two-channel inkjet printer is used, the sensor dye chemistry used during printing needs to be known, especially when the sensor module is printed in place of the normally printed Data Matrix symbol module.

[0044] For overprinted sensor modules where the sensor dye chemistry is known when printing the underlying Data Matrix, indicator bits that identify the dye system in use can themselves be encoded. Indicator bits for the underlying Data Matrix are printed with the sensor dye module. Through the use of these indicator bits, a Data Matrix reader can know which dye system is being used, its activation state, and therefore how to interpret a scanned Data Matrix symbol.

[0045] Note that in Table 2, 0 = white and 1 = black for each indicator bit. Only the four most common dye chemicals, one state clear and the other black or white, are encoded by the indicator bits.

[0046] Table 2: Indicator bits for the most common sensor dye chemistries [Table 2]

[0047] The value of the printed indicator bit, whether it is before or after sensor activation, can be recovered from the scanned image and compared with the indicator bit read from the underlying Data Matrix. Both the dye system and activation state are then determined according to Table 3.

[0048] Table 3: Recovery of activation states and indicator bits from scanned images [Table 3]

[0049] The sensor dye module color values themselves may be simply optically detectable or may be used to encode varying sensor data, depending on the color state of the module upon activation of the sensor dye.

[0050] Encoding this sensor data itself with an error correcting code is useful when sensor modules may be lost or damaged, when the sensor color change activation threshold is not accurate for each sensor dye module, and in that the entire sensor-augmented 2D barcode may not be uniformly exposed due to the conditions that activate each sensor dye module.

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

[0052] Many types of error-correcting codes can be used to encode the sensor digital information. Typically, the sensor dye bit pattern of the binary-encoded sensor data is encoded. Useful error-correcting codes include Hamming codes, BCH codes, Golay codes, Simplex codes, Reed-Muller codes, Fire codes, convolutional codes, and Reed-Solomon codes.

[0053] As an example, the BCH(n,k,t) binary error-correcting code is well known for encoding binary data sequences. Here, a string of k bits is encoded in an n-bit long code with T error-correction bits. Up to (t div 2) bits can be error-corrected. For example, the QR Code and Ultracode 2D barcode symbols use a BCH(15,5,7) code, which encodes k = 5 bits in n = 15 bits and can correct up to 7 div 2 = 3 bit errors. Standard decoding and error-correction techniques exist for decoding and error correction of these codes. Table C.1 in Annex C of ISO / IEC 18004, Information Technology - Automatic Identification and Data Capture Techniques - QR Code 2005 Barcode Symbol Specification, provides a complete 15-bit code sequence for the data values 0, 1, . . . , 31. Table C.1 of ISO / IEC 18004 is summarized in Table 4. Data values 0 and 31, data value 0 (all BCH bits = 0) for W→Z and W→B sensor dyes and data value 31 (all BCH bits = 1) for B→X and B→W sensor dye chemicals, indicate an inactive dye module state and are therefore reserved and not encoded.

[0054] [Table 4]

[0055] Recovering sensor bit data (whether the sensor bits are activated or not) when BCH (15,5,7) is encoded in a Data Matrix® symbol can be done by first recovering the sensor digital data from scanning and decoding the sensor-enhanced 2D barcode symbol. Extract the 15-bit encoded binary number from the specific sensor dye module pattern. Note that there are many standard methods for decoding and error correcting BCH-encoded data. The classic Peterson-Gorenstein-Zierler decoder is discussed in RE Blahut, "Theory and Practice of Error Control Codes (corr. edition)", 1983 (ISBN-10:0-201-10102-5), p. 166. A useful and practical BCH(15,5,7) decoding is given by SA Vanstone and PC van Oorschot, "An Introduction to Error Correcting Codes with Applications", 1989 (ISBN-10: 0-7923-9017-2), p.219. Using arbitrary decoding and error correction of BCH(15,5,7) coded data, we extract 5 bits of sensor data.

[0056] Other types of sensor digital information can be encoded in the sensor dye module pattern. This includes optical patterns and images, such as ISO, ANSI, or ISO warning signs and symbols, and other designed graphics. The number of bits encoded and the number of bits 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 the number of RSEC codewords available, all affect the optical pattern and image encoding capabilities.

[0057] The sensor dye module pattern can also be encoded after the underlying Data Matrix® symbol has been pre-printed. This allows different technologies to be used to print the underlying Data Matrix® and later print the sensor dye module pattern. This also allows different types of sensor dye chemistries to be used on a previously printed Data Matrix® without the sensor dye chemistry being known at the time the underlying Data Matrix® itself is printed.

[0058] In an exemplary embodiment, non-privileged reading devices may be able to read the static data 134 but not the dynamic data 136 of the 2D barcode. In another exemplary embodiment, only privileged reading devices may be able to read the static data 134 and the dynamic data 136 of the 2D barcode. In some cases, having the dynamic data 136 on the barcode that non-privileged reading devices cannot read may advantageously allow a manufacturer or supplier to include information in the 2D barcode that they do not want to provide to the public or customers. Furthermore, having a privileged reading device that can read both the static data 134 and the dynamic data 136 allows an individual using the privileged reading device to obtain both the static data 134 and the dynamic data 136 without the need for the use of multiple reading devices.

[0059] FIG. 5 is a flowchart 500 illustrating an example of a 2D barcode printed using process 400. As shown in FIG. 5, a 2D barcode is printed by process 502, in this example, a set of dynamic data 136 is printed in the plurality of unused bits 120 in the bottom right corner of the 2D barcode. Dynamic ink 198 is used on the information modules in the top left and bottom right of the plurality of unused bits 120. After the dynamic area is printed with the dynamic ink 198, the barcode is in a first state 504 (i.e., the dynamic ink 198 is not yet activated). The dynamic ink 198 used in the dynamic area 192 activates to pure black when exposed to a specific environmental change 506. Once the 2D barcode is exposed to the environmental change 506, the set of dynamic data 136 in the dynamic area 192 changes and the 2D barcode changes to a second state 508, communicating information of the environmental change 506 to a reading device.

[0060] FIG. 6A is a textual representation of a set of static data 134 and a set of dynamic data 136 that may be encoded into a 2D barcode, and FIG. 6B is an example of textual dynamic data encoded as binary information modules. FIGS. 6C and 6D are flow chart diagrams illustrating dynamic data in a 2D barcode changing from a first state to a second state. For example, a set of static data 134 includes product information such as a serial number (SN), a batch number (BN), and a lot number (LN). In this example, the serial number is 49876003, the batch number is 654, and the lot number is 35A1. The set of static data 134 remains unchanged. Furthermore, the set of dynamic data 136 is shown in a first state 210 (top) and a second state 212 (bottom) in FIG. 6A. For example, the set of dynamic data 136 may be printed with dynamic ink 198 that changes from the first state 210 to the second state 212 upon reaching a threshold exposure temperature above 30°C. 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. The text representation of the 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 exemplary embodiment, the 2D barcode may be encoded using a binary 8-bit representation of the set of static data 134 and the set of dynamic data 136, as shown in FIG. 6B. For example, the binary representation of "<" may be "00111100" and the binary representation of ">" may be "00111110." In this example, binary zero (0) bits are colored white and binary ones (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. The black and white and binary (8-bit) encoding colors are shown for illustrative purposes. 6C depicts a 2D barcode in which a set of dynamic data 136 from a first state 210 transitions to a second state 212 in response to an environmental change, such as a temperature increase above 30° C. For example, the dynamic ink 198 used in the 2D barcode shown in FIG. 6C activates from white to black in response to temperatures above a threshold exposure temperature.In another exemplary embodiment shown in FIG. 6D, dynamic ink 198 may activate from black to white in response to an environmental change 506, such as freezing or exposure to a threshold exposure temperature below 0°C.

[0061] Figure 7 includes a flowchart of an exemplary process 420 for providing a 2D barcode, which is shown in Figure 8 and described in further detail below. Although process 420 is described with reference to the flowchart shown in Figure 7, it will be understood that many other ways of performing the operations associated with process 420 may be used. For example, the order of many of the blocks may be varied, many of the blocks may be repeated intermittently or performed sequentially, some blocks may be combined with other blocks, and many of the described blocks may be performed only arbitrarily or contingently.

[0062] The exemplary process 420 may begin by determining a set of static data 134 (block 422). For example, the set of static data 134 may be a serial number, a batch number, and / or a lot number, etc. Next, a set of dynamic data 136 is determined (block 424). In an exemplary embodiment, the set of dynamic data 136 may have a first state 210 and a second state 212. For example, the dynamic data 136 in the first state may not be exposed to UV light, and the dynamic data 136 in the second state may be exposed to UV light. Furthermore, the dynamic data 136 in the first state may be a temperature below 30°C, and the dynamic data 136 in the second state may be a temperature above 30°C. A first 2D barcode is generated (block 426). For example, the computer may generate the first 2D barcode based on the input of the set of static data 134 and the set of dynamic data 136 in the first state 210. In an exemplary embodiment, the first 2D barcode may 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. The set of static data and the set of dynamic data in the first state 210 may include a first plurality of information modules 218 and a second plurality of information modules 220 in the first state 210. For example, the first plurality of information modules 218 may be black modules and the second plurality of information modules 220 may be white information modules. A second 2D barcode is then generated (block 428). For example, the computer may 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 an exemplary embodiment, the second 2D barcode may include an encoded version of the set of static data and an encoded version of the set of dynamic data in the second state 212. Additionally, the set of static data 134 and the set of dynamic data 136 in the second state 212 may 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 may be black modules, and the fourth plurality of information modules 226 may be white information modules.It should be understood that the first plurality of information modules 218 and the third plurality of information modules 224 may be white, and the second plurality of information modules 220 and the fourth plurality of information modules 226 may be black. Furthermore, 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 may have different colors, transparencies and / or reflectivities or any other suitable properties that enable the 2D barcodes to be readable. In an exemplary embodiment, the third plurality of information modules 224 may include all of the first plurality of information modules 218 and a set of one or more information modules 228. Furthermore, the second plurality of information modules 220 includes information module 226 and 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 may comprise values of zero (0) or one (1), which may correspond to information modules colored white for the binary value zero (0) and black for the binary value one, respectively. The information modules 214 are then sorted (block 432) into a first group 230 and a second group 232. In an exemplary embodiment, the first group 230 may comprise information modules that are common 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. Furthermore, the second group 232 may comprise unique information modules of the third plurality of information modules 224 of the second 2D barcode. For example, the computer may sort all black information modules that are common to the first 2D barcode and the second 2D barcode into the first group 230. Furthermore, the computer may 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 a second group 232. Next, the 2D barcode is printed using the static ink 194 and the dynamic ink 198 (block 434).In an exemplary embodiment, the first group 230 may be printed with static ink 194, and the second group 232 may be printed with dynamic ink 198. Additionally, the dynamic ink 198 may be tailored to activate in response to the occurrence of a particular environmental factor. In an exemplary embodiment, the dynamic ink 198 may be sensitive to an environmental factor such as temperature, time, time and temperature, freezing, radiation, toxic chemicals, or a combination of such factors.

[0063] In an exemplary embodiment, the first plurality of information modules 218 and the third plurality of information modules 224 may be optically indistinguishable from the printing surface 234, which may be adapted to be optically distinguishable from the third plurality of information modules 224 and the fourth plurality of information modules. It should be understood that various printing techniques may be used, including printing with ink, dye, paint, and / or any other suitable material. Additionally, various other techniques may be used to modify the appearance of the 2D barcode printing surface 234, such as etching, burning, melting, removing material, and / or other processes adapted to print the 2D barcode. For example, the printing surface 234 may include a white substrate etched to expose the underlying white substrate and covered with a black top layer. Additionally, the printing surface 234 may include various other color combinations, as well as a blue substrate covered with a yellow top layer.

[0064] 8 is a flow chart illustrating an example of a portion of a 2D barcode printed using process 420. As shown in Fig. 8, the first 2D barcode portion 216 is a portion of an exemplary barcode that includes an encoded version of the set of static data and an encoded version of the set of dynamic data 196 for the first state 210. The second 2D barcode portion 222 is a portion of an exemplary 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 for the second state. All of the information modules in black are a first group 230 of common information between the first plurality of information modules 218 of the first plurality of 2D barcode portions 216 and the third plurality of information modules 218 of the second 2D barcode portion 222. Furthermore, the information modules shown in dotted lines may be a second group 232 of unique information modules of the third plurality of information modules 224 of the second 2D barcode portion 222. For example, the second group of information modules 232 may 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. Using only one dynamic ink 198 effectively allows 2D barcodes to be printed in a more efficient and cost-effective manner. Furthermore, using only one dynamic ink 198 effectively reduces the risk of the code becoming unreadable due to offset or delayed activation times of multiple dynamic inks. Exemplary embodiments disclosed herein include Aztec Code, Code 1, CrontoSign, CyberCode, DataGlyphs, DataMatrix®, Datastrip Code, EZ Code, High Capacity Color Barcode, InterCode, MaxiCode, MMCC, NexCode, PDF417, QR code®, ShotCode, SPARQCode, and the like.

[0065] Figure 9 includes a flowchart of an exemplary process 440 for generating a 2D barcode. Although process 440 is described with reference to the flowchart shown in Figure 9, it will be understood that many other ways of performing the operations associated with process 440 may be used. For example, the order of many of the blocks may be changed, many of the blocks may be repeated intermittently or performed sequentially, some blocks may be combined with other blocks, and many of the described blocks may be performed arbitrarily or only by chance.

[0066] The exemplary process 440 may begin by determining a set of static data 134 (block 442). For example, the set of static data 134 may be a serial number, a batch number, and / or a lot number, etc. Next, a set of dynamic data 136 is determined (block 444). In an exemplary embodiment, the set of dynamic data 136 may have a first state 210 and a second state 212. The set of dynamic data 136 may have three or more states. The set of dynamic data 136 may have a first state 210, a second state 212 (e.g., activated by exceeding 25°C), and a third state (e.g., activated by exceeding 40°C). Next, a first 2D barcode is generated (block 446). For example, a computer may generate the first 2D barcode based on the input of the set of static data 134 and the set of dynamic data 136 in the first state 210. In an exemplary embodiment, the first 2D barcode may include an encoded version of the set of static data and an encoded version of the set of dynamic data 196 for the first state. Further, the static data 134 and the dynamic data 136 for the first state 210 may 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 may be black modules, and the second plurality of information modules 220 may be white information modules. Next, a second 2D barcode is generated (block 448). For example, a computer may generate the second 2D barcode based on input of the set of static data 134 and the dynamic data 136 for the second state 212. In an exemplary embodiment, the second 2D barcode may include an encoded version of the set of static data and an encoded version of the set of dynamic data 196 for the second state 212. For example, the third plurality of information modules 224 may be black modules and the fourth plurality of information modules 226 may be white modules. Further, the set of static data 134 and the set of dynamic data for the second state 212 may include the third plurality of information modules 224 and the fourth plurality of information modules 226.For example, the third plurality of information modules 224 may be black modules and the fourth plurality of information modules 226 may be white information modules. It should be understood that the first plurality of information modules 218 and the third plurality of information modules 224 may be white and the second plurality of information modules 220 and the fourth plurality of information modules 226 may be black. For example, the third plurality of information modules 224 may be black modules and the fourth plurality of information modules 226 may be white information modules. It should be understood that the first plurality of information modules 218 and the third plurality of information modules 224 may be white and the second plurality of information modules 220 and the fourth plurality of information modules 226 may be black. Furthermore, 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 may be of various colors, degrees of transparency or opacity, and / or levels of reflectivity or absorbency, or may have other suitable characteristics that enable the barcode to be read by a barcode reader. Next, the first 2D barcode is compared with the second 2D barcode (block 450). For example, the first 2D barcode and the second 2D barcode may contain binary data having values of zero or one, which may correspond to a binary value of zero (0) being colored white and a binary value of one being colored black. Next, the information modules are classified into a first group 230, a second group 232, and a third group (block 452). In an exemplary embodiment, the first group 230 may contain 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. Furthermore, the second group 232 may contain unique information modules of the third plurality of information modules 224 of the second 2D barcode. In an exemplary embodiment, the third group may contain unique information modules of the first plurality of information modules 218 of the first 2D barcode. For example, the computer may classify all black information modules that are common to the first 2D barcode and the second 2D barcode into a first group 230.Furthermore, the computer may classify all black information modules unique to the first 2D barcode into a third group (i.e. information modules that are white in the first 2D barcode but black in the second 2D barcode), and the computer may classify all black information modules unique to the second 2D barcode into a second group 232 (i.e. information modules that were white in the first 2D barcode but black in the second 2D barcode). And the static ink 194, 1 The 2D barcode is printed using the dynamic ink and the second dynamic ink (block 454). In an exemplary embodiment, the first group 230 may be printed with the static ink 194. Additionally, the second group 232 may be printed with the first dynamic ink. The first dynamic ink may be adapted to activate in response to the occurrence of a specific environmental factor. Additionally, the third group may be printed with the second dynamic ink, which may be activated in response to the occurrence of a specific environmental factor. For example, the first dynamic ink may be printed white and activated to black upon reaching 30°C, and the second dynamic ink may be printed black and activated to white upon reaching 30°C. It should be understood that the first and second dynamic inks may be printed in several color combinations. In an exemplary embodiment, the first dynamic ink and the second dynamic ink may be sensitive to environmental factors such as temperature, time, time and temperature, freezing, radiation, toxic chemicals, or a combination of such factors. Additionally, in exemplary embodiments, the first dynamic ink and the second dynamic ink may be activated simultaneously. For example, the first dynamic ink and the second dynamic ink may be activated 72 hours after printing, such that the first dynamic ink changes from white to black and the second dynamic ink changes from black to white simultaneously. Additionally, the first dynamic ink and the second dynamic ink may both be activated simultaneously after a temperature threshold is met (e.g., accurate to within a 0.1°C temperature range). Having the first dynamic ink and the second dynamic ink activated simultaneously may allow the 2D barcode to always be readable because the 2D barcode is in either a first state (i.e., the second 2D barcode) or a second state (i.e., the second 2D barcode).

[0067] 10A, 10B and 10C are block diagrams of an example of a set of information modules of a 2D barcode printed using process 440. Specifically, Fig. 10A includes a first plurality of information modules 218 and a second plurality of information modules 220 of a first 2D barcode portion 216 (i.e., the set of dynamic data 136 is in the first state 210). Fig. 10B shows a third plurality of information modules 224 and a fourth plurality of information modules 226 of a second 2D barcode portion 222 (i.e., the set of dynamic data 136 is in the second state 212). Fig. 10C shows, from top to bottom, a first group 230, a third group 238 and a second group 232 of information modules, respectively. For example, the first group 230 comprises information modules that are common 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, these information modules being depicted as cross-hatched modules. The second group 232 comprises unique information modules of the third plurality of information modules 224 of the second 2D barcode portion 222, this group of information modules being depicted as black modules in the bottom image of Fig. 10C. Furthermore, the third group 238 comprises unique information modules of the first plurality of information modules 218 of the first 2D barcode portion 216, this group of information modules being depicted by black modules in the middle image of Fig. 10C. In this example, the first group 230 is printed with static ink 194, the second group 232 is printed with a first dynamic ink 240, and the third group 238 is printed with a second dynamic ink 242. For example, the second group 232 may be printed with the first dynamic ink 240 adapted to activate (i.e., transition from white to black) in response to the occurrence of a particular environmental factor. Additionally, the third group 238 may be printed with the second dynamic ink 242 adapted to activate (i.e., transition from black to white) in response to the occurrence of a particular environmental factor.It should be appreciated that generating a 2D barcode with two or more dynamic inks allows the 2D barcode to be advantageously printed with a larger portion of varying dynamic data, including error detection and correction data 116. For example, by using multiple dynamic inks, the 2D barcode can change several different regions of the 2D barcode, and a non-privileged reading device can read both a set of static data 134 and a set of multiple states of dynamic data 136, and provide multiple specified outputs without the error detection and correction data 116 overwriting the specified outputs.

[0068] Figure 11 includes a flowchart of an example process 460 for generating a 2D barcode. Although process 460 is described with reference to the flowchart shown in Figure 11, it will be understood that many other ways of performing the operations associated with process 460 may be used. For example, the order of many of the blocks may be changed, many of the blocks may be repeated intermittently or may be performed sequentially, some blocks may be combined with other blocks, and many of the described blocks may be optional or may only be performed incidentally.

[0069] The exemplary process 460 may begin by determining a set of payload data 112 (block 462). In an exemplary embodiment, the set of payload data 112 may include a set of static data 134 and a set of dynamic data 136. Further, the set of dynamic data 136 may have a first state 210 and a second state 212. The computer may generate a 2D barcode (block 464). In an exemplary embodiment, the 2D barcode may include an encoded version of the set of static data, an encoded version of the set of dynamic data, an encoded version of the dynamic data, and a dynamic region 192 adapted to store error detection and correction data 116. A printer may then print the 2D barcode using static ink 194 and the encoded set of dynamic data on the dynamic region 192 using dynamic ink 198 (block 466). In an exemplary embodiment, the 2D barcode may be attached to various products such as food, medicine, etc. In exemplary embodiments, the dynamic ink 198 may change state, such as whether the set of dynamic data 136 is in a first state or a second state, in response to at least one environmental change. Furthermore, in exemplary embodiments, the error detection and correction data 116 may adapt to changes in the set of dynamic data 136 in the dynamic region 192 such that the 2D barcode is readable by a reading device and can generate a first output when the set of dynamic data 136 is in the first state 210, and the 2D barcode is readable by a reading device and can generate a second output when the set of dynamic data 136 is in the second state 212. Furthermore, the dynamic region 192 may be located at the end of the data region. Providing a 2D barcode that includes error detection and correction data 116 that adapts to changes in the set of dynamic data 136 may advantageously allow an individual to use a non-privileged reading device, and may advantageously allow an individual to obtain two different read outputs using the non-privileged reading device.For example, without generating a 2D barcode having error detection and correction data 116 that adapts to changes in the set of dynamic data 136 in the dynamic region 192, a non-privileged reading device can only generate a first output regardless of whether the 2D barcode includes a set of dynamic data 136 in the first state 210 or a set of dynamic data 136 in the second state 212.

[0070] Figure 12 includes a flowchart of an exemplary process 470 for reading a 2D barcode. Process 470 is described with reference to the flowchart shown in Figure 12, but it will be understood that many other ways of performing the operations associated with process 470 may be used. For example, the order of many of the blocks may be changed, many of the blocks may be repeated intermittently or performed sequentially, some blocks may be combined with other blocks, and many of the described blocks may be optional or performed only incidentally.

[0071] The exemplary process 470 may begin with a reading device reading a set of static data 134 included in a 2D barcode (block 472). In an exemplary embodiment, the 2D barcode may be printed with static ink 194 and dynamic ink 198. Additionally, an encoded version of the set of static data may be printed in static ink 194. Next, the reading device may read a set of dynamic data 136 included in the 2D barcode (block 474). In an exemplary embodiment, an encoded version of the set of dynamic data 196 may be printed in dynamic ink 198. Additionally, the set of dynamic data 136 may be printed in redundant space on the 2D barcode. Next, the reading device may generate a first output of the set of static data 134 (block 476). Then, the reading device may generate a second output of the set of dynamic data 136 (block 478). In an exemplary embodiment, the second output may depend on one of a plurality of states in which the dynamic data resides, for example, above 30°C or below 30°C.

[0072] Figure 13 includes a flowchart of an exemplary process 490 for reading a 2D barcode. Although process 490 is described with reference to the flowchart shown in Figure 13, it will be understood that many other ways of performing the operations associated with process 490 may be used. For example, the order of many of the blocks may be changed, many of the blocks may be repeated intermittently or performed sequentially, some blocks may be combined with other blocks, and many of the described blocks may be optional or may only be performed incidentally.

[0073] The exemplary process 490 may begin with a reading device reading a set of static data 134 included in a 2D barcode (block 492). In an exemplary embodiment, the 2D barcode may be printed with static ink 194 and dynamic ink 198. Additionally, an encoded version of the set of static data may be printed in static ink 194. The reading device reads dynamic data 136 included in the 2D barcode (block 494). In an exemplary embodiment, an encoded version of the set of dynamic data 196 may be printed in dynamic ink 198. Additionally, the set of dynamic data 136 may be printed in a dynamic region 192 of the 2D barcode. Next, the reading device may generate an output of the set of static data 134 and the set of dynamic data 136 (block 496). In an exemplary embodiment, the output when the set of dynamic data 136 is in the first state 210 may be a first output, and the output when the set of dynamic data 136 is in the second state 212 may be a second output.

[0074] FIG. 14 is a block diagram of a 2D barcode rendering system. The system may include a computer 292 and a printer 290. The system may be used to render the barcode 102. The computer 292 may include one or more computer programs or components. It will be understood that all of the disclosed methods and procedures described below may be implemented using one or more computer programs or components. These components may be represented as a series of computer instructions on a conventional computer-readable or machine-readable medium, including volatile or non-volatile memory such as RAM, ROM, flash memory, magnetic or optical disks, optical memory, or other storage devices. The instructions may be provided as software or firmware and / or may be implemented in whole or in part in hardware components such as an ASIC, FPGA, DSP, or other similar device. The instructions may be configured to be executed by one or more processors, which, when executing the series of computer instructions, perform or facilitate the execution of all or a portion of the disclosed methods and procedures. Additionally, the computer 292 may include a display and may have connectivity to one or more communication channels, such as the Internet or other voice and / or data networks, including any suitable wide-area or local-area network.

[0075] The computer 292 may include one or more processors electrically coupled to one or more memory devices, other computer circuits, and one or more interface circuits by an address / data bus. The processor may be any suitable processor, such as a microprocessor. The memory preferably includes volatile and non-volatile memory. Additionally, the memory may store software programs that interact with other devices in the barcode presentation system. The programs may be executed by the processor in any suitable manner. The memory may also store digital data representing documents, files, programs, barcodes, etc. received from the computer or barcode reader. The other computer circuits may include various hardware components, including ASICs or other specialized circuits for manipulating data in a particular format, such as barcode data.

[0076] One or more displays, printers 290, and / or other output devices may also be connected to the computer 292 via the interface circuitry. The displays may be liquid crystal displays or other types of displays. The printer 290 may print barcodes generated and received from the computer 292. Additionally, one or more storage devices may also be connected to the computer 292 via the interface circuitry. For example, a hard drive, CD drive, DVD drive, and / or other storage device may be connected to the computer 292. The storage device may store any type of data, such as barcode data 100, image data, historical access or usage, etc.

[0077] 15A and 15B are block diagrams of a 2D barcode reading system. The system may include a reading device 200 and may use the system to read barcodes 102. In an exemplary embodiment, the reading device 200 may be a privileged or non-privileged reading device. The reading device 200 may be a device configured to read barcodes, such as a dedicated barcode reader, a mobile device, a personal digital assistant or PDA, a smartphone, a laptop, a tablet computer, or a desktop computer. The reading device 200 may be configured to read IDs and 2D barcodes, or to read only 2D barcodes. The reading device 200 may also transmit, receive, or exchange data with other network devices over a communication network. The network device may be a computer 292, a different reading device 200, or any other device accessible over a communication network. Certain data may also be stored in the reading device 200, temporarily or permanently stored on a server, for example, in memory or storage. The network connection may be any type of network connection, such as a cellular or wireless connection, an Ethernet connection, a digital subscriber line, a telephone line, a coaxial cable, etc. Access to the reading device 200 or the dynamic data 136 may be controlled by appropriate security software or security measures. Individual user access may be defined by the reading device 200 and limited to specific data and / or actions. For example, a user may have access to a non-privileged reading device that can read only the static data 134 on the barcode 102. Additionally, a user may have access to a privileged reading device that can read the static data 134 on the barcode 102. Users and / or administrators of the barcode reading system may be required to register with one or more reading devices 200. Additionally, various options for managing data may be implemented, either within the reading device 200 or within a server.For example, the management system may be implemented in the reading device 200 or a server and may update, store and / or back up the barcode data 100 locally / remotely using any suitable method of data transfer.

[0078] The method for reading sensored 2D barcode symbols has many requirements. Reading sensored Data Matrix symbols requires: 1. When only a limited number of modules change color state of the sensor dye module pattern, 2. If the modified module is limited to a small number of Utah 3. If the underlying Data Matrix has sufficient Reed-Solomon error correction capabilities, RSEC processing is utilized to recover the underlying codeword data in the underlying Data Matrix® prior to the module's color state change caused by sensor activation.

[0079] Table 5 shows the data and RSEC codeword capacities for all square Data Matrix® symbols and all rectangular Data Matrix® symbols up to 26×26.

[0080] A data codeword typically requires two RSEC codewords to recover the underlying data. An example is a 16x16 square data matrix with 12 data codewords (12 data Utah) and 12 RSEC codewords (12 RSEC). Thus, if an activated sensor module modifies four data Utahs within that 16x16 symbol, eight RSEC codewords are utilized to recover the data for the modified Utahs. This leaves four additional RSEC codewords available to correct damage to other symbols.

[0081] Table 5: Total data and RSEC codewords for different sizes of Data Matrix® symbol [Table 5]

[0082] Two types of reading procedures for sensor-assisted 2D barcodes are utilized depending on whether the structure of the sensor dye module pattern is encoded in the underlying Data Matrix. In the first case, where the structure of the sensor dye module pattern is not encoded in the underlying Data Matrix of the sensor-assisted 2D barcode: 1. As part of the Data Matrix® reading process, the image is scanned and optically processed to construct a scanned binary bitmap of the scanned image. See ISO / IEC 16022 for one methodology. 2. The scanned binary bitmap is processed to construct the underlying symbol codeword sequence. 3. Utilize Reed-Solomon error correction processing on the symbol codeword sequence to recover the underlying data codeword before modification by the activated sensor module. See ISO / IEC 16022 for one methodology. 4. Construct an underlying binary bitmap from the underlying data codeword sequence of the same size as the scanned binary bitmap. See ISO / IEC 16022 for one methodology. 5. At each bit position, the scanned binary bitmap is exclusive-ORed with the underlying binary bitmap to form a sensor digital information bitmap of the same size as the scanned binary bitmap. 6. Process the sensor digital information bitmap according to the rules of the situation.

[0083] If the structure of the sensor dye module pattern is encoded in the Data Matrix® underlying the sensor-enabled 2D barcode: 1. Scan the image as part of the Data Matrix® reading process and optically process it to build a scanned binary bitmap of the scanned image. See ISO / IEC 16022 for one methodology. 2. The scanned binary bitmap is processed to construct the underlying symbol codeword sequence. 3. Utilize a Reed-Solomon error correction process on the symbol codeword sequence to recover the underlying data codeword before modification by the activated sensor module. See ISO / IEC 16022 for one methodology. 4. Utilizing the information encoded in the underlying data codeword, the sensor dye bit pattern containing the sensor digital information within the scanned binary bitmap is determined and the binary information sequence is extracted in the proper bit order. 5. If the sensor data is BCH (15,5,7) encoded, use BCH error correction to recover the 5-bit binary encoded sensor data (or trigger decoding fails). Decryption do).

[0084] A first preferred embodiment utilizes a temperature threshold sensitive sensor dye chemistry. The sensor dye chemistry is WX: a white dye element printed over the black modules of a printed base Data Matrix® on a white print medium. The sensor dye chemistry used is assumed to be known at the time of printing the Data Matrix® symbol.

[0085] The data structure encoded in the Data Matrix® symbol utilizes GS1 Application Identifiers and conforms to the GS1 General Specifications, Edition 5, Issue 2 (January 2015) (http: / / www.gsl.org / docs / barcodes / GSl_General_Specifications.pdf).

[0086] Here, 15-bit BCH(15 , 5 , 7) Error correction was used to encode the 5-bit sensor data. Since the overprinted sensor dye module is white, a black module corresponding to the T bit of the 15-bit BCH encoding needs to be printed in the underlying Data Matrix.

[0087] The sensor data BCH, encoded with two indicator bits indicating the sensor dye chemistry in use, utilizes only Utah 3, 5, and 6 of the 16x16 ECC200 Data Matrix® symbol shown in Figure 19 for illustrative purposes. Utah 5, 6 and Utah bits 3.6 through 3.8 are in the same bitmap locations relative to the symbol ULC as in the invariant bitmap 410 of Figure 19.

[0088] Indicator bits 3.6 and 3.7 indicate which of the sensor dye chemistries from Table 1 are in use. The sensor dye chemistries used are assumed to be known at the time of printing the Data Matrix®.

[0089] The module for the selected sensor chemistry overprints both Utah bits 3.6 and 3.7. Depending on the chemistry of the selected sensor dye, bits 3.6 and 3.7 appear as in Table 4 when the sensor dye is in the deactivated or activated state.

[0090] FIG. 20 shows a size 14 Data Matrix® bitmap 505 from ISO / IEC 16022 and identifies Utah bit 3.8 and Utah 5 and 6 of immutable bitmap 410, which are referenced 510, 520, and 530, respectively. The most significant five bits of Utah 3, bits 3.1 through 3.5, referenced 540, which are not in immutable bitmap 410, can be used to encode additional information about the sensor dye chemistry and / or sensor dye bit pattern in use.

[0091] The GS1 Application Identifier AI (90) may be used in accordance with the GS1 System defined in the GS1 General Specification for the most widely used system for encoding information within Data Matrix®. AI (90) is reserved for information mutually agreed upon between trading partners (such as the presence of a sensor-enabled Data Matrix®). Because application identifiers can appear in any sequence within GS1 Data Matrix®, AI (90) appears immediately after FNC1 to ensure that the 15 BCH-encoded sensor bits B1-B15 are present in the immutable bitmap 410. Characters can be encoded with the GS1 Application Identifier; the most significant bit 5.1 of Utah 5 at 520 and bit 6.1 of Utah 6 at 530, and their color states before and after activation, are not significant here.

[0092] As shown in Figure 21, the invariant bitmap portion 410 of a 16x16 Data Matrix 600 includes seven Utah bits: 610a, Utah 1 bits 1.5 and 1.8, 620 Utah 2, 630a Utah 3 bits 3.6 through 3.8, 640a Utah 4 bits 4.3 through 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 other Utah bits surrounding the bits are shown in 600 for reference purposes and readily correspond to the bitmap of Figure 20. For example, 610a Utah 1 bits 1.1 through 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.

[0093] The most significant bit B15 is encoded with UT bit 3.8 in 630a. UT 5 in 650 bits 5.2-5.8 encodes B14-B8 of the BCH encoded sensor bits. UT 6 in 660 bits 6.2-6.8 encodes bits B7-B1 of the BCH encoded sensor bits.

[0094] In a first preferred embodiment, a white-to-clear sensor dye chemistry is utilized, so a black-and-white pattern of encoded sensor data bits B15-B1 should be pre-printed into the Data Matrix®. The W→X sensor dye is overprinted onto these encoded bits, selecting either all other bits B1-B15 or at least the black bits B15-B1 of the underlying Data Matrix®.

[0095] Consider an example where the sensor data value is "4." From Table 4, the BCH encoding bits B15-B1 is "001000111101011." Therefore, in the Data Matrix® size 14 bitmap of Figure 20, Utah bits 3.8, 5.2-5.8, and 6.2-8.8 are set to encode the black modules corresponding to these bits B15-B1. These modules are printed with white to transparent sensor dye. Utah bits 5.1 and 6.1 are set to "0" to print the white modules. Table 6 shows that the AI(90) data string is printed in the first seven Utahs of the 16x16 Data Matrix®. Recall that each Utah encodes one 8-bit codeword.

[0096] Table 6: Example AI(90) ASCII and Data Matrix® codeword strings for W → X sensor dyes [Table 6]

[0097] Bits 3.1-3.5 of Utah 3 in 630b are not in the invariant bitmap 410 because they are at the bottom of the Data Matrix® symbol for all sizes of Data Matrix®. However, they can encode data useful for conveying specific information about the characteristics of the sensor dyes in use and the sensor dye pattern encoded in the enhanced Data Matrix®.

[0098] Since only part 640a of Utah 4 appears in the invariant bitmap portion 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 may be encoded in Utah 4. This is typically used for product-related information.

[0099] A 16x16 Data Matrix® 700 printed with only the information in Table 6 is shown in Figure 22. In Figure 23, Data Matrix® 800 is shown similar in structure to Data Matrix® 600. However, here the invariant bitmap portion is set to black or white per the underlying encoding of Data Matrix® 700 in Figure 22. The remaining Data Matrix® codewords (Ut 8-12) are filled with pad characters to fill the 12 usable data codewords. The last 12 codewords of the symbol (Ut 13-24) are RSEC error correction codewords. For convenience, in Figure 23, the contents of Ut 8-24 are shown in gray, as they are not relevant to the encoding of AI(90).

[0100] An optical image of the Data Matrix® 900 with inactivated sensors is shown in Figure 24. Note that the white sensor dye is the overprint indicator bit 910. The overprint BCH encoding 920 of sensor data B15-B1 is shown in Utah bits 5.1 and 6.1 as white dye modules indistinguishable from unprinted and non-overprinted white dye modules. These have the value "0000000000000", indicating the inactivated default sensor data value of "0" for B15-B1 in this sensor dye chemical system. Note that the indicator bits are "00", indicating the inactivated state of the W→X sensor dye chemical.

[0101] Once activated, all sensor modules become transparent and the optical image returns to Figure 22 showing the correct 15-bit BCH bit pattern "00100011 1101011" which is decoded using one of the standard methods for BCH(15,5,7) described above to recover the sensor data value "4".

[0102] A second preferred embodiment utilizes a temperature threshold sensitive sensor dye chemistry X→B, as frequently represented by the thermally activated leuco dye systems used to make thermal paper, where a clear dye module is overprinted onto a white (unprinted) module of an underlying Data Matrix® printed on white media.

[0103] Again, the 15-bit BCH (15,5,7) error correction used to encode the 5-bit sensor data encoded by overprinting a sensor dye module onto the printed underlying Data Matrix® symbol appears upon sensor dye activation, and it is assumed here that the sensor dye chemistry used is known at the time of printing the Data Matrix® symbol.

[0104] A different printer may be used to first print the underlying Data Matrix® symbol with any transparent sensor dye chemistry, and then overprint with a sensor dye module as a separate process to enhance the known Data Matrix® information upon overprinting. In an exemplary embodiment, the 2D barcode may be attached to a variety of products, such as food, pharmaceuticals, biologics, or any other product that could benefit from environmental, physical, or biological monitoring. For example, the barcode may be printed or applied to containers for such products.

[0105] The sensor data 15-bit BCH encoded portion is similar to that of the first preferred embodiment, along with the two indicator bits. From Table 2, for X→B sensor dye chemistry, the printed indicator bits 3.6 and 3.7 are "10". As in the first preferred embodiment, the most significant five bits of Utah 3, bits 3.1 through 3.5, can be used to encode additional information about the sensor dye chemistry and / or sensor dye bit pattern in use.

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

[0107] Consider the same example as the first preferred embodiment when the sensor data value is 4. From Table 4, the BCH encoding B15-B1 is "001000111101011." In this second preferred embodiment, a clear-to-black sensor dye chemistry is utilized, so once activated in the underlying Data Matrix®, the BCH encoding sensor dye module for what will be the black module of B15-B1 must be selectively overprinted onto B15-B1. Indicator bits 3.6 and 3.7 are also overwritten with the sensor dye module.

[0108] Table 7 shows the AI(90) data sequence printed for this second preferred embodiment in the first seven digits of the 16x16 underlying Data Matrix 1000 of Figure 25. The underlying Data Matrix 1000 is printed only with the information in Table 7 of Figure 25.

[0109] Referring to ULC detail 1100 in Figure 26, indicator bits 3.6 and 3.7 are set to T and '0', respectively. UT bits 3.8, 5.2-5.8, and 6.2-6.8 are white modules corresponding to '0' for all of these bits B15-B1. UT bits 5.1 and 6.1 are set to T because they are not part of the BCH bit encoding sequence, and the Data Matrix® standard ISO / IEC requires that all UTs have at least one black module. The remaining Data Matrix® codewords (UTs 8-12) are filled with pad characters and specifically coded according to ISO / IEC 16022 to fill the 12 available data codewords. The last 12 codewords of the symbol (UTs 13-24) are RSEC error-correcting codewords. Because the contents of UTs 8-24 are not relevant to the encoding of AI(90), they are shown in gray in Figure 26 for convenience.

[0110] Table 7: Example AI(90) ASCII and Data Matrix® codeword strings for X→B sensor dyes

[0111] [Table 7]

[0112] The sensored Data Matrix barcode symbol is in the deactivated state and the BCH encoding is "00000000000000 0 " or the white module of the underlying Data Matrix® becomes optically detectable when exhibiting a sensor data value of 0 as in Data Matrix® with Sensor 1000 of FIG. 25 and Data Matrix® ULC Detail 1100 of FIG. 26.

[0113] Once the sensor module is activated, the Data Matrix® with optical sensor 1200 ideally appears as shown in Figure 27. The sensor data bit pattern B15-B1 "001000111101011" is now revealed, and through reading the Data Matrix® using the BCH decoding technique appending standard to the sensor dye pattern as described above, the sensor data value 4 is recovered. Data Matrix® 1200 is the same as the underlying Data Matrix® 1000 with the sensor dye module now activated to black (but shown in dark grey at 1220 in Figure 27 for clarity) to reveal several sensor bit patterns B15-B1 and the indicator bit pattern, now "11".

[0114] A third preferred embodiment also utilizes temperature sensitive sensor dye chemistry, where a sensor dye module in its unactivated color state is overprinted as a single sensor dye patch within an underlying Data Matrix® immutable bitmap printed on white media.

[0115] Any sensor dye chemistry R→S may be used provided that both of the color states R→S 1) have sufficient optical color state change and 2) have sufficient contrast under 660 nm reader illumination such that the R color state scans as W or B and the S color state complementarily scans as B or W. This allows the sensor dye module, whether in a deactivated or activated color state, to be restored as an image using the Data Matrix® reading technology described above as a sensor dye module, and further, be optically distinguishable and machine readable to determine the activation state of the sensor dye patch.

[0116] A different printer, or different stations of the same printer, can be used: first print the underlying Data Matrix® symbol, then overprint the sensor dye patch in a separate process to restore the sensor dye module as an image and then detect the activation state of the sensor dye patch.

[0117] In this example, X→B sensor dye chemistry is illustrated. The sensor dye patches are square sensor dye modules approximately 2x2 in size. That is, a 4x4 white frame is placed within a 16x16 Data Matrix® invariant bitmap. This 4x4 white frame ensures that the 4x4 white frames and the sensor dye patches surrounding them are always in the same position relative to the ULC across a wide range of Data Matrix® symbol sizes.

[0118] 28 shows the location of a 4x4 white frame 1310 (from bit 3.6 to bit 5.8) in an exemplary 16x16 Data Matrix symbol 1300. The 4x4 white frame 1310 contains four rows of Utah bits organized as follows: Row 1: bits 3.6, 3.7, 3.8, 4.3 Row 2: bits 2.5, 5.1, 5.2, 4.6 Row 3: bits 2.8, 5.3, 5.4, 5.5 Row 4: bits 6.2, 5.6, 5.7, 5.8

[0119] Note that in this third preferred embodiment, bits 3.6 and 3.7 are not used as indicator bits as in the first and second preferred embodiments, but rather they are part of the 4x4 white frame.

[0120] A naive approach would be to create an underlying printed Data Matrix symbol with no data limitations and simply overprint the white modules on the 16 underlying Data Matrix modules in the 4x4 white frame 1310. Depending on the encoded data and whether any block modules in 1310 are intentionally overprinted, up to 5 U and these encoded codewords could be intentionally damaged by overprinting. A conventional approach to recovering up to 5 damaged codewords while reading a Data Matrix using Reed-Solomon error correction would require using up to 10 of the 12 available RSEC codewords in the 16x16 Data Matrix symbol. This would leave few RSEC codewords available for other accidental symbol damage.

[0121] As with the examples shown in the first and second preferred embodiments, this exemplary symbol data encoding is also performed using the GS1 Application Identifier AI(90) and the Utah 1-7 data structure format. Symbol data specific to the third preferred embodiment is encoded in Table 8. For convenience, the content of Utah 8-24 is shown in gray within Data Matrix® 1300, as it is not relevant to the encoding of AI(90).

[0122] Utah 1 and 7 have no bits in 1310 and are therefore unaffected by the generation of the 4x4 white frame 1310. Utah bits 2.5 and 2.8 are in 1310. In AI(90) data encoding, bit 2.5=T, and therefore Utah 2 is intentionally damaged when overwritten with a white module. Utah 5 is entirely within the 4x4 white frame 1310. Now, since the data is encoded in the ISO / IEC 16022 Data Matrix®, in any valid Utah there is at least one black module: therefore, no matter what 7-bit ASCII data character is encoded in Utah 5, Utah 5 and its codeword are intentionally damaged by overprinting all of the Utah 5 modules with white modules.

[0123] However, intentional damage to the bit positions of Utah 3.4 and 6, which are in a 4x4 white frame, can be avoided by simply restricting the data allowed to be coded in these codewords so that there are no black modules (T bits) in Utah bits 3.6-3.8, 4.3, 4.6, and 6.2. Assuming that "x" represents a "don't care" bit position at each particular bit position in Utah, the allowable 8-bit Data Matrix codeword formats are as follows: Utah 3:xxxxx000 Utah 4:xx0xx0xx Utah 6:x0xxxxxx

[0124] Table 8 shows the AI(90) data sequence of this third preferred embodiment in the first seven columns of the 16x16 underlying Data Matrix 1400 of FIG.

[0125] Table 8: Exemplary Patch Sensors for AI(90) ASCII and Data Matrix® Codeword Sequences

[0126] [Table 8]

[0127] In Figure 29, the underlying Data Matrix® 1500 is printed with only the information in Table 8. The remaining Data Matrix® data codewords (UTs 8-12) are filled in with Data Matrix® pad characters. The last 12 codewords of the symbol (UTs 13-24) are RSEC error correcting codewords.

[0128] In Figure 30, a 4x4 white frame 1510 is shown in the unchanged bitmap of Data Matrix® 1400, which corresponds to the 4x4 white frame 1310 of Figure 28. There are several ways to generate this 4x4 white frame 1510, including physically overprinting white modules on the underlying Data Matrix® 1400. A better method is to modify the underlying symbol Data Matrix® encoding so that the symbol generation software for the underlying symbol modifies the Data Matrix® encoded 14x14 bitmap to set all positions in 1510 to "0" prior to conversion to black and white modules, or alternatively set all modules to white in the 4x4 white frame 1510 prior to printing the Data Matrix® 1400. Thus, no white module overprinting step is required, and black modules are not printed in the 4x4 white frame 1510 (white area) in the first place.

[0129] As in the second preferred embodiment, in the third preferred embodiment, a second printing step is used to print a 2x2 sensor dye patch 1620 into a 4x4 white frame 1510, as shown in Figure 31, where the sensor dye patch 1620 is shown in an activated state (purple for clarity).

[0130] One objective of the third preferred embodiment is that upon sensor dye activation, there is an optical change in color state of the sensor dye patch 1520 within the 4x4 white frame 1510. A second objective is that sensor dye chemistry is used that has sufficient contrast for a Data Matrix® reader, as described above, so that the sensor dye patch 1620 is read as a W or B module when deactivated, and as a complementary B or W module when deactivated. The presence of deactivated and activated sensor dye patches can then be mechanically read by a Data Matrix® reader using the reading method described above.

[0131] A further improvement to the third preferred embodiment is the Data Matrix® reading process: knowledge that the Utah 2 and 5 codewords were intentionally damaged is applied to improve the efficiency of the Reed-Solomon error correction process in recovering the symbol codeword sequence. Detection and correction of erroneous codewords at unknown locations in the RSEC codeword sequence, in addition to the combined data, requires the use of two RSEC characters per damaged codeword. However, if the location of the damaged codewords is known before applying the Reed-Solomon error correction process (in this case, codewords 2 and 5), only one RSEC codeword is required to recover the correct codeword value for each identified damaged codeword. This leaves other unused RSEC codewords available for correction of other accidental Data Matrix® symbol damage.

[0132] Alternative embodiments include one or more of the following. Other error correcting barcode symbologies that replace Data Matrix®, including QR Code®, Aztec Code, Maxi Code, PDF417 and Dot Code; Alternative sensor dye chemistries utilizing color states other than black, white, or transparent; · Printed two-dimensional error-correcting bar code symbols in which the first color state or the second color state of the symbol is an underlying color other than black or white; A two-dimensional error correcting bar code symbol in which the first color state is an unmarked media surface and the second color state is a direct marked media surface transition, or vice versa.

[0133] In an exemplary embodiment of the present disclosure, a two-dimensional sensor-equipped barcode includes a substrate, a two-dimensional error-correction barcode symbol provided on the substrate, a first layer provided on the substrate in a permanent color state, and a second layer provided on the substrate. The barcode symbol further includes a plurality of modules, the modules being optionally square, rectangular, or circular, each having a first color state or a second color state. The second layer is optionally provided by overprinting a sensor dye module pattern containing sensor digital information on the first layer in a sensor dye module pattern. The second layer further includes a sensor dye having a chemical configured to undergo a chemical or physical state change in response to the occurrence of an environmental, physical, or biological condition, resulting in a change in the color state of the sensor dye, thereby indicating the color state of a subset of the plurality of modules.

[0134] According to another exemplary aspect of the present disclosure, which may be used in combination with one or more of the aforementioned aspects, the environmental condition is selected from the group consisting of time, temperature, time-temperature product, temperature product, light, humidity, gas vapor, and nuclear radiation, and preferably causes the sensor dye to permanently change color state when the environmental condition crosses a threshold value.

[0135] According to another exemplary embodiment of the present disclosure, which may be used in combination with one or more of the foregoing embodiments, the first layer forms a barcode symbol that is readable in a two-dimensional barcode symbol.

[0136] According to another exemplary embodiment of the present disclosure that may be used in combination with one or more of the foregoing embodiments, two-dimensional error correcting barcode symbols include Data Matrix, QR Code, Aztec Code, MaxiCode, PDF417, and Dot Code symbols.

[0137] According to another exemplary aspect of the present disclosure, which may be used in combination with one or more of the above aspects, a two-dimensional error correcting bar code symbol utilizes Reed-Solomon error correction.

[0138] According to another exemplary embodiment of the present disclosure, which may be used in combination with one or more of the foregoing embodiments, the sensor dye is initially in a black, white, or transparent color state when inactive and changes to a different color state upon activation.

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

[0140] According to another exemplary embodiment of the present disclosure, which may be used in combination with one or more of the foregoing embodiments, the particular condition of the sensed property detects a biological organism, a biological agent, or a biological toxin, preferably utilizing a colorimetric immunoassay.

[0141] According to another exemplary aspect of the present disclosure that may be used in combination with one or more of the foregoing aspects, the second layer provides sensor digital information, preferably encoded into an immutable bitmap of two-dimensional symbols, more preferably encoded as binary-encoded sensor data, and even more preferably selected from the group consisting of: The binary-encoded sensor data preferably includes Hamming Codes, BCH Codes, Golay Codes, Simplex Codes, Reed-Muller Codes, Fire Codes, Convolutional Codes, and Reed-Solomon Codes.

[0142] According to another exemplary embodiment of the present disclosure, which may be used in combination with one or more of the above-described embodiments, the sensor digital information encoded in the sensor dye module pattern is an optical pattern or image.

[0143] According to another exemplary embodiment of the present disclosure that may be used in combination with one or more of the above embodiments, a product includes a pharmaceutical, biological, or food product, preferably a vaccine; a container for holding the pharmaceutical, biological, or food product, preferably a vaccine vial; and a sensor-equipped two-dimensional barcode symbol provided on or within a sensor, preferably applied to the exterior surface of the container.

[0144] According to another exemplary aspect of the present disclosure, a method for reading a sensored two-dimensional barcode symbol includes scanning and optically processing an image of the sensored two-dimensional barcode symbol, including scanning a binary bitmap from the scanned module of the sensored two-dimensional barcode symbol. The method further includes constructing a symbol codeword sequence from the scanned binary bitmap. An error correction process, preferably a Reed-Solomon code, on the symbol codeword sequence is then utilized to recover underlying data codewords from the symbol codeword sequence. The underlying data codewords are then processed to form an underlying symbol codeword sequence. The method further includes constructing an underlying binary bitmap from the scanned binary bitmap from the underlying symbol codeword sequence, preferably the underlying binary bitmap being equal in size to the scanned binary bitmap. An exclusive-OR operation is performed on the scanned binary bitmap and the underlying binary bitmap at each bit position to form a sensor digital information bitmap. Optionally, the method includes recovering the binary information sequence incorporating the binary encoded sensor data by preferably treating the binary information sequence as an error correcting code sequence and utilizing the error correction process to recover the binary encoded sensor data, the error correcting code being selected from the group consisting of Hamming codes, BCH codes, Golay codes, Simplex codes, Reed-Muller codes, Fire codes, convolutional codes, and Reed-Solomon codes.

[0145] According to another exemplary aspect of the present disclosure that may be used in combination with one or more of the aforementioned aspects, a method may include processing a sensor digital information bitmap to identify sensor dye patches and determine a state of the sensor dye patches, whether or not activation of the sensor dyes occurred in response to an environmental condition.

[0146] According to another exemplary embodiment of the present disclosure, which may be used in combination with one or more of the foregoing embodiments, the sensor dye patch is located in an invariant area of a Data Matrix® barcode symbol.

[0147] According to another exemplary aspect of the present disclosure, which may be used in combination with one or more of the aforementioned aspects, a method includes recovering an optical pattern or image from a sensor digital information bitmap.

[0148] According to another exemplary aspect of the present disclosure, which may be used in combination with one or more of the above aspects, an apparatus may perform a method for generating a 2D barcode, comprising: determining 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 the set of dynamic data, and comprising a redundant area; allocating at least a portion of the redundant area as a dynamic area adapted to store dynamic data; printing the 2D barcode with static ink and printing the dynamic data in the dynamic area with 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, wherein the set of dynamic data is readable by a 2D barcode reader and the set of static data is readable by a 2D barcode reader when the set of dynamic data is in one of the plurality of states.

[0149] According to another exemplary embodiment of the present disclosure, which may be used in combination with the above-described embodiments, the dynamic ink is responsive to environmental factors including at least one of temperature, time, radiation, light, and toxic chemicals.

[0150] According to another exemplary embodiment of the present disclosure, which may be used in combination with one or more of the foregoing embodiments, the dynamic ink is time and temperature responsive.

[0151] According to another exemplary embodiment of the present disclosure, which may be used in combination with one or more of the foregoing embodiments, the dynamic ink is responsive to freezing.

[0152] According to another exemplary aspect of the present disclosure, which may be used in combination with one or more of the above aspects, the dynamic ink permanently changes in response to environmental factors.

[0153] According to another exemplary aspect of the present disclosure, which may be used in combination with one or more of the above-described 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 is no longer occurring.

[0154] According to another example aspect of the present disclosure, which may be used in combination with one or more of the aforementioned aspects, the redundancy space includes at least one unused bit, a padding area, and an error detection and correction area.

[0155] According to another exemplary aspect of the present disclosure that may be used in combination with one or more of the aforementioned aspects, the redundancy space includes at least one of a format information area, a version information area, a version information area, and a reference data area.

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

[0157] According to another exemplary aspect of the present disclosure, which may be used in combination with one or more of the above aspects, only privileged readers can read static data and not dynamic data.

[0158] According to another exemplary aspect of the present disclosure, which may be used in combination with one or more of the above aspects, an apparatus for performing a method for 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 barcode and the second barcode to classify information modules into a first group and a second group, and printing the 2D barcode with static ink and dynamic ink. The set of static data and the set of dynamic data in the first state include 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 in the second state and a set of dynamic data. The set of static data and the set of dynamic data in the second state include 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 and one or more sets of information modules. The second plurality of information modules includes all of the fourth plurality of information modules and one or more sets of information modules. The first group comprises information modules common between the first plurality of information modules of the first 2D barcode and the third plurality of information modules of the second 2D barcode, and the second group comprises information modules unique to the third plurality of information modules of the second 2D barcode, the first group being printed with static ink and the second group being printed with dynamic ink, the dynamic ink being adapted to be activated in response to the occurrence of a specific environmental factor.

[0159] According to another exemplary embodiment of the present disclosure, which may be used in combination with any one or more of the above embodiments, the first plurality of information modules and the third plurality of information modules are black.

[0160] According to another exemplary aspect of the present disclosure that may be used in combination with one or more of the above aspects, the first plurality of information modules and the third plurality of information modules are adapted to be optically distinguishable from the printing surface, the third plurality of information modules and the fourth plurality of information modules.

[0161] According to another exemplary aspect of the present disclosure, which may be used in combination with one or more of the above aspects, an apparatus may perform a method for providing a 2D barcode, the method comprising: determining a set of static data; determining a set of dynamic data; generating a second 2D barcode; generating and comparing the second 2D barcode; classifying the first 2D barcode and the second 2D barcode; classifying the information modules into a first group; and selecting at least one group from a second group and a third group; a first dynamic ink; and a second dynamic ink, the set of dynamic data having a first state and a second state. The first 2D barcode comprises an encoded version of the set of static data in the first state and the set of dynamic data. 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. The second 2D barcode comprises an encoded version of the set of static data in the second state and the set of dynamic data. 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 group comprises 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 comprises unique information modules of the third plurality of information modules of the second 2D barcode, and the third group comprises 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 first dynamic ink, and the third group is printed with second dynamic ink. The first dynamic ink is adapted to be deactivated in response to the occurrence of a specific environmental factor, and the second dynamic ink is adapted to be activated in response to the occurrence of a specific environmental factor.

[0162] According to another exemplary embodiment of the present disclosure, which may be used in combination with one or more of the above embodiments, the first dynamic ink and the second dynamic ink are responsive to temperature, time, radiation, light, and toxic chemicals.

[0163] According to another exemplary embodiment of the present disclosure, which may be used in combination with one or more of the above embodiments, the first dynamic ink and the second dynamic ink are time and temperature responsive.

[0164] According to another exemplary embodiment of the present disclosure, which may be used in combination with one or more of the above embodiments, the first dynamic ink and the second dynamic ink are responsive to freezing.

[0165] According to another exemplary embodiment of the present disclosure, which may be used in combination with one or more of the above embodiments, the first dynamic ink and the second dynamic ink are activated simultaneously.

[0166] According to another exemplary aspect of the present disclosure, which may be used in combination with any one or more of the above aspects, an apparatus is capable of performing a method for providing a 2D barcode, comprising: determining a set of static data and a set of payload data comprising a set of dynamic data having a first state and a second state, wherein the 2D barcode is readable by a reading device such that the set of dynamic data is in a first state or a second state, wherein error detection and correction data adapts to changes in the set of dynamic data in the dynamic region such that the set of dynamic data is readable by the reading device and is in the first state and is in the second state; printing the 2D barcode with static ink; and printing an encoded version of the dynamic data in the dynamic region with dynamic ink that changes state in response to at least one environmental change.

[0167] According to another exemplary aspect of the present disclosure, which may be used in combination with any one or more of the above aspects, a dynamic region is provided in the padding region.

[0168] According to another exemplary aspect of the present disclosure, which may be used in combination with one or more of the above aspects, a dynamic area is provided at an end of the data area.

[0169] According to another exemplary aspect of the present disclosure, which may be used in combination with one or more of the above aspects, an apparatus may perform a method for reading a 2D barcode, the method including scanning a set of static data included in the 2D barcode, scanning a set of dynamic data included in the 2D barcode to generate a first output of a set of static data, and generating a second output of a dynamic data set. The 2D barcode is printed with static ink and dynamic ink, and an encoded version of the set of static data is printed with the static ink. The encoded version of the set of dynamic data is printed with 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 redundant space on the 2D barcode. The second output indicates which state the dynamic data is in.

[0170] According to another exemplary aspect of the present disclosure, which may be used in combination with one or more of the aforementioned aspects, an apparatus may perform a two-dimensional (2D) reading method, the method including setting dynamic data included in the 2D barcode and generating an output based on a set of static data and a set of dynamic data. The 2D barcode includes static ink and dynamic ink. An encoded version of the static data set is printed with static ink. An encoded version of the dynamic data set is printed with dynamic ink that changes state in response to at least one environmental change such that the dynamic ink is in one of a plurality of states. The dynamic data set is printed in a dynamic area. When the set of dynamic data is in a first state of the plurality of states, the output is a first output, and when the set of dynamic data is in a second state of the plurality of states, the output is a second output.

[0171] It should be understood that various changes and modifications to the exemplary embodiments described herein will be apparent to those skilled in the art. Such changes and modifications can be made without departing from the spirit and scope of the present subject matter and without diminishing its intended advantages. Accordingly, it is intended that such changes and modifications be covered by the appended claims. It should also be understood that the features of the dependent claims may be embodied in the systems, methods, and apparatuses of the respective independent claims.

[0172] Many modifications and other embodiments of the inventions described herein will come to mind to one skilled in the art to which these inventions pertain having the benefit of the teachings of the foregoing descriptions and the associated drawings. It is understood, therefore, that the inventions are not 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.

[0173] (Addendum) (Appendix 1) A substrate; a two-dimensional error correction barcode symbol provided on the substrate, further comprising a plurality of modules, the plurality of modules being selectively square, rectangular or circular, each module being in a first color state or a second color state; a first layer disposed on the substrate in a permanent color state; a second layer provided on the substrate in a sensor dye module pattern by selectively overprinting the first layer, the sensor dye module pattern including sensor digital information, the second layer further comprising sensor dyes having a chemical action configured to change the color state of a subset of the plurality of modules in response to the occurrence of an environmental, physical, or biological condition by undergoing a chemical or physical state change that changes the color state of the sensor dye; 2D barcode with sensor.

[0174] (Appendix 2) the environmental conditions are selected from the group consisting of time, temperature, time-temperature product, light, humidity, gas vapor, and nuclear radiation; The sensor dye preferably permanently changes color state when the environmental condition passes a threshold value. A sensor-equipped 2D barcode symbol as described in Appendix 1.

[0175] (Appendix 3) the first layer forms a readable barcode symbol within a two-dimensional barcode symbology; 2. A sensor-equipped two-dimensional barcode as described in Appendix 1 or 2.

[0176] (Appendix 4) The two-dimensional error correcting barcode symbology is from the group of symbologies consisting of Data Matrix, QR Code, Aztec Code, MaxiCode, PDF417 and Dot Code. A sensor-equipped two-dimensional barcode symbol according to any one of Supplementary Notes 1 to 3.

[0177] (Appendix 5) Two-dimensional error correcting barcode symbols use Reed-Solomon error correction. A sensor-equipped two-dimensional barcode symbol according to any one of Supplementary Notes 1 to 3.

[0178] (Appendix 6) the sensor dye is initially in a black, white or transparent color state when unactivated and changes to a different color state when activated; A sensor-equipped two-dimensional barcode symbol according to any one of Supplementary Notes 1 to 5.

[0179] (Appendix 7) when a specified state of the sensed property is above or below a threshold, the sensor dye permanently changes color state; A sensor-equipped two-dimensional bar code symbol as described in Appendix 6.

[0180] (Appendix 8) The specific state of the sensed property is preferably the detection of the presence of a biological organism, a biological agent, or a biological toxin by utilizing a colorimetric immunoassay. A sensor-equipped two-dimensional barcode symbol according to any one of Supplementary Notes 1 to 7.

[0181] (Appendix 9) the second layer providing sensor digital information; The sensor digital information is preferably encoded in an invariant bitmap of a two-dimensional symbol; more preferably encoded as binary encoded sensor data, More preferably, the binary encoded sensor data is selected from the group consisting of Hamming Codes, Bose-Chaudhuri-Hocquenghem Codes (BCH Codes), Golay Codes, Simplex Codes, Reed-Muller Codes, Fire Codes, Convolutional Codes, and Reed-Solomon Codes. A sensor-equipped two-dimensional barcode symbol according to any one of Supplementary Notes 1 to 8.

[0182] (Appendix 10) the sensor digital information encoded in the sensor dye module pattern is an optical pattern or an image; A sensor-equipped two-dimensional barcode symbol according to any one of Supplementary Notes 1 to 9.

[0183] (Appendix 11) a pharmaceutical, biological product or food product, preferably a vaccine, a container for holding a medicine, biological product or food, preferably a vaccine bottle, and The container is provided with a sensor-equipped two-dimensional barcode symbol according to any one of Supplementary Notes 1 to 10, which is provided on or inside the container, preferably on the outer surface of the container. product.

[0184] (Appendix 12) A method for reading a sensor-equipped two-dimensional barcode symbol, comprising: scanning and selectively processing an image of the sensored two-dimensional bar code symbol to construct a scanned binary bitmap from scanned modules of the sensored two-dimensional bar code symbol; constructing a symbol codeword sequence from the scanned binary bitmap; recovering the underlying data codewords from the symbol codeword sequence, preferably by utilizing an error correction process based on said symbol codeword sequence, which is preferably a Reed-Solomon code; processing the underlying data codewords to form the underlying symbol codeword sequence; constructing an underlying binary bitmap from said underlying symbol codeword sequence from said scanned binary bitmap, preferably equal in size to said scanned binary bitmap; performing an exclusive-OR operation (EXCLUSIVE-OR) of the scanned binary bitmap with the underlying binary bitmap at each bit position to form a sensor digital information bitmap; optionally processing the sensor digital information bitmap to recover a binary information sequence incorporating the binary encoded sensor data, preferably by treating the binary information sequence as an error correction code sequence, and utilizing an error correction process to recover the binary encoded sensor data; Equipped with The error correction code is preferably selected from the group consisting of Humming Codes, BCH Codes (Bose-Chaudhuri Hocquenghem Codes), Golay Codes, Simplex Codes, Reed-Muller Codes, Fire Codes, Convolutional Codes and Reed-Solomon Codes. method.

[0185] (Appendix 13) processing the sensor digital information bitmap to identify sensor dye patches and determining from the color states of the sensor dye patches whether activation of the sensor dyes occurred in response to an environmental condition; 12. The method described in Appendix 12.

[0186] (Appendix 14) the sensor dye patch is located in an invariant area of a Data Matrix® barcode symbol; 12. The method described in Appendix 12.

[0187] (Appendix 15) Reconstructing an optical pattern or image from said sensor digital information bitmap; 13. The method of claim 12, further comprising:

[0188] (Appendix 16) 1. A method for providing a two-dimensional (2D) barcode, comprising: 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 said set of static data and including redundant space; designating at least a portion of the redundant space as a dynamic area adapted to store the set of dynamic data; printing the 2D barcode using static ink, such that the set of dynamic data is in one of a plurality of states, and an encoded version of the set of dynamic data on the dynamic area using dynamic ink, which changes state in response to at least one environmental change; Equipped with - said set of dynamic data being readable by a reader of said 2D barcode and said set of static data being readable by said reader of said 2D barcode when said set of dynamic data is in one of said states; method.

[0189] (Appendix 17) the dynamic ink responds to environmental factors including at least one of temperature, time, radiation, light, and toxic chemicals; The method described in Appendix 16.

[0190] (Appendix 18) the dynamic ink is time and temperature responsive; 18. The method of claim 16 or 17.

[0191] (Appendix 19) the dynamic ink is responsive to freezing; 19. The method according to any one of appendices 16 to 18.

[0192] (Appendix 20) The dynamic ink permanently changes in response to environmental factors. 20. The method according to any one of appendices 16 to 19.

[0193] (Appendix 21) 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 is no longer occurring; 20. The method according to any one of appendices 16 to 19.

[0194] (Appendix 22) the redundancy space includes at least one of a plurality of unused bits, a padding area, and an error detection and correction area; 22. The method according to any one of appendices 16 to 21.

[0195] (Appendix 23) the redundant space includes at least one of a format information area, a version information area, and a reference data area; 23. The method according to any one of appendices 16 to 22.

[0196] (Appendix 24) a non-privileged reading device can read the static data of the 2D barcode but cannot read the dynamic data, 24. The method according to any one of appendices 16 to 23.

[0197] (Appendix 25) only privileged reading devices can read said static data and said dynamic data of said 2D barcode, 24. The method according to any one of appendices 16 to 23.

[0198] (Appendix 26) 1. A method for providing a two-dimensional (2D) barcode, comprising: determining a set of static data; determining a set of dynamic data having a first state and a second state; generating a first 2D barcode comprising an encoded version of said static data set comprising a first plurality of information modules and said dynamic data set in said first state comprising a second plurality of information modules; generating a second 2D barcode comprising encoded versions 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, wherein the third plurality of information modules comprises all of the first plurality of information modules and a set of one or more information modules, and wherein the second plurality of information modules comprises all of the fourth plurality of information modules and a set of one or more information modules; - comparing said first 2D barcode with said second 2D barcode and classifying said information modules into a first group and a second group, said first group comprising common information modules between said first plurality of information modules of said first 2D barcode and said third plurality of information modules of said second 2D barcode, and said second group comprising non-common information modules of said third plurality of information modules of said second 2D barcode; - printing the 2D barcode using static ink and dynamic ink, wherein the first group is printed with the static ink and the second group is printed with the dynamic ink, the dynamic ink being adapted to be activated in response to the occurrence of a particular environmental factor; A method for providing

[0199] (Appendix 27) 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; 26. The method described in Appendix 26.

[0200] (Appendix 28) the first plurality of information modules and the third plurality of information modules are adapted to be optically distinguishable from a printed surface, and the third plurality of information modules and the fourth plurality of information modules are adapted to be optically indistinguishable from the printed surface; 26. The method described in Appendix 26.

[0201] (Appendix 29) 1. A method for providing a two-dimensional (2D) barcode, comprising: determining a set of static data; determining a set of dynamic data having a first state and a second state; generating a first 2D barcode comprising an encoded version of said static data set comprising a first plurality of information modules and said dynamic data set in said first state comprising a second plurality of information modules; generating a second 2D barcode comprising said set of static data comprising a third plurality of information modules and said set of dynamic data in said second state comprising a fourth plurality of information modules; - comparing said first 2D barcode and said second 2D barcode and classifying said information modules into a first group, a second group and a third group, wherein said first group comprises common information modules between said first plurality of information modules of said first 2D barcode and said third plurality of information modules of said second 2D barcode, said second group comprising non-common information modules of said first plurality of information modules of said first 2D barcode and said third group comprising non-common information modules of said third plurality of information modules of said second 2D barcode; printing the two-dimensional barcode using static ink, a first dynamic ink, and a second dynamic ink, wherein the first group is printed with the static ink, the second group is printed with the first dynamic ink, the first dynamic ink adapted to activate in response to the occurrence of a specific environmental factor, and the third group is printed with a second dynamic ink, the second dynamic ink adapted to activate in response to the occurrence of the specific environmental factor; A method for providing

[0202] (Appendix 30) the first dynamic ink and the second dynamic ink are responsive to environmental factors including at least one of temperature, time, radiation, light, and toxic chemicals; 29. The method described in Appendix 29.

[0203] (Appendix 31) the first dynamic ink and the second dynamic ink are time and temperature responsive; 31. The method of claim 29 or 30.

[0204] (Appendix 32) the first dynamic ink and the second dynamic ink are responsive to freezing; 32. The method according to any one of appendices 29 to 31.

[0205] (Appendix 33) the first dynamic ink and the second dynamic ink are activated simultaneously; 33. The method according to any one of appendices 29 to 32.

[0206] (Appendix 34) 1. A method for providing a two-dimensional (2D) barcode, comprising: determining a set of payload data including a set of static data and a set of dynamic data having a first state and a second state; generating said 2D barcode comprising an encoded version of said set of static data, a dynamic area adapted to store an encoded version of said dynamic data set, and error detection and correction data; printing the 2D barcode using static ink, and the encoded set of dynamic data on the dynamic area using dynamic ink that changes state in response to at least one environmental change, such that the error detection and correction data corresponds to changes in the set of dynamic data in the dynamic area as the 2D barcode is readable by a reading device, such that the 2D barcode is in one of said first state and said second state, generating a first output when the set of dynamic data is in the first state and the 2D barcode is readable by a reading device and generating a second output when the set of dynamic data is in the first state and the 2D barcode is readable by a reading device and generating a first output when the set of dynamic data is in the first state and the 2D barcode is readable by a reading device and generating a second output when the set of dynamic data is in the first state and the 2D barcode is readable by a reading device and A method for providing

[0207] (Appendix 35) The dynamic area is provided in a padding area. The method described in Appendix 34.

[0208] (Appendix 36) The dynamic area is provided at an end of the data area. The method described in Appendix 34.

[0209] (Appendix 37) 1. A method for reading a 2D barcode, comprising: - scanning a set of static data contained in said 2D barcode, said 2D barcode being printed with static ink and dynamic ink, and an encoded version of said set of static data being printed with said static ink; - scanning a set of dynamic data included in said 2D barcode, wherein an encoded version of said set of dynamic data is printed in said dynamic ink that changes state in response to at least one environmental change such that said dynamic data is in one of a plurality of states, said set of dynamic data being printed in redundant space on said 2D barcode; generating a first output of the set of static data; generating a second output of the set of dynamic data indicating which of the plurality of states the dynamic data is in; A method for providing

[0210] (Appendix 38) 1. A method for reading a 2D barcode, comprising: - scanning a set of static data contained in said 2D barcode, said 2D barcode being printed with static ink and dynamic ink, and an encoded version of said set of static data being printed with said static ink; scanning a set of dynamic data included in said 2D barcode, wherein an encoded version of said set of dynamic data is printed in said dynamic ink that changes state in response to at least one environmental change, such that said dynamic data is in one of a plurality of states, said set of dynamic data being printed in a dynamic area; generating an output based on the set of static data and the set of dynamic data, wherein 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; A method for providing

Claims

1. A method for reading a two-dimensional barcode symbol with a sensor, comprising: scanning and selectively processing an image of the sensored two-dimensional bar code symbol to construct a scanned binary bitmap from scanned modules of the sensored two-dimensional bar code symbol; constructing a symbol codeword sequence from the scanned binary bitmap; recovering a plurality of underlying data codewords from the symbol codeword sequence by utilizing an error correction process based on the symbol codeword sequence; processing the plurality of underlying data codewords to form an underlying symbol codeword sequence; constructing an underlying binary bitmap from the underlying symbol codeword sequence from the scanned binary bitmap; performing an exclusive-OR operation (EXCLUSIVE-OR) of the scanned binary bitmap with the underlying binary bitmap at each bit position to form a sensor digital information bitmap; processing the sensor digital information bitmap to recover a binary information sequence incorporating binary encoded sensor data by treating the binary information sequence as an error correction code sequence and utilizing an error correction process to recover the binary encoded sensor data; Equipped with method.

2. processing the sensor digital information bitmap to identify sensor dye patches and determining from the color states of the sensor dye patches whether activation of sensor dyes in the sensor dye patches occurred in response to environmental conditions; The method of claim 1.

3. the sensor dye patch is located in an invariant area of a Data Matrix® barcode symbol; The method of claim 2.

4. Reconstructing an optical pattern or image from said sensor digital information bitmap; The method of claim 1 further comprising:

5. The error correction process uses a Reed-Solomon code. The method of claim 1.

6. The error correction code is selected from the group consisting of Hamming Codes, BCH Codes (Bose-Chaudhuri Hocquenghem Codes), Golay Codes, Simplex Codes, Reed-Muller Codes, Fire Codes, Convolutional Codes, and Reed-Solomon Codes. The method of claim 1.

7. The underlying binary bitmap is equal in size to the scanned binary bitmap. The method of claim 1.

8. 1. A method for providing a two-dimensional (2D) barcode, comprising: determining a set of payload data including a set of static data and a set of dynamic data having a plurality of states and changing states from an initial state of the plurality of states to another state in response to a predetermined environmental stimulus; generating a 2D barcode comprising an encoded version of said set of static data and including redundant space; designating at least a portion of the redundant space as a dynamic area adapted to store the set of dynamic data, at least a portion of the dynamic area being located within a module of a barcode symbol; - printing said 2D barcode using static inks such that said set of dynamic data is in one of said states and an encoded version of said set of dynamic data on said dynamic area using dynamic inks that change color state in response to at least one environmental change; Equipped with - said set of dynamic data being readable by a reader of said 2D barcode, and when said set of dynamic data is in one of said states said set of static data being readable by said reader of said 2D barcode without a change in the value of said static data, - at least some changes in the color state of said dynamic ink change the value of a module in said barcode symbol, and said changes in the color state of said dynamic ink do not change the value of said static data read by said reader of said 2D barcode, method.

9. the dynamic ink changes color state in response to environmental factors including at least one of temperature, time, radiation, light, and toxic chemicals; The method of claim 8.

10. The dynamic ink changes color state in response to time and temperature.

10. The method according to claim 8 or 9.

11. The dynamic ink changes color state in response to freezing. The method according to any one of claims 8 to 10.

12. The dynamic ink permanently changes color state in response to environmental factors. The method according to any one of claims 8 to 11.

13. the dynamic ink transitions from a first color state to a second color state in response to the occurrence of a particular environmental factor, and returns to the first color state when the particular environmental factor is no longer occurring; The method according to any one of claims 8 to 11.

14. the redundancy space includes at least one of a plurality of unused bits, a padding area, and an error detection and correction area; The method according to any one of claims 8 to 13.

15. the redundant space includes at least one of a format information area, a version information area, and a reference data area; The method according to any one of claims 8 to 14.

16. a non-privileged reading device can read said static data of said 2D barcode and cannot read said dynamic data, The method according to any one of claims 8 to 15.

17. - only privileged reading devices can read said static and dynamic data of said 2D barcode, The method according to any one of claims 8 to 15.

18. 1. A method for providing a two-dimensional (2D) barcode, comprising: determining a set of static data; determining a set of dynamic data having a first state and a second state; - generating a first 2D barcode comprising an encoded version of said static data set comprising a first plurality of information modules and said dynamic data set in said first state comprising a second plurality of information modules; - generating a second 2D barcode comprising encoded versions of said set of static data and said set of dynamic data in said second state, wherein said set of static data and said set of dynamic data in said second state comprise a third plurality of information modules and a fourth plurality of information modules, said third plurality of information modules comprising all of said first plurality of information modules and a set of one or more information modules, and said second plurality of information modules comprising all of said fourth plurality of information modules and a set of one or more information modules; - comparing said first 2D barcode with said second 2D barcode and classifying said information modules in a first group and a second group, said first group comprising common information modules between said first plurality of information modules of said first 2D barcode and said third plurality of information modules of said second 2D barcode, and said second group comprising non-common information modules of said third plurality of information modules of said second 2D barcode; - printing said 2D barcode using static ink and dynamic ink, wherein said first group is printed with said static ink and said second group is printed with said dynamic ink, said dynamic ink adapted to change color state in response to the occurrence of a particular environmental factor; Equipped with - at least some of the changes in the color state of said dynamic ink change the value of at least one information module in a barcode symbol, and - said changes in the color state of said dynamic ink do not change the value of said static data read by a reader of said 2D barcode, method.

19. 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; 20. The method of claim 18.

20. the first plurality of information modules and the third plurality of information modules are adapted to be optically distinguishable from a printed surface, and the third plurality of information modules and the fourth plurality of information modules are adapted to be optically indistinguishable from the printed surface; 20. The method of claim 18.

21. 1. A method for providing a two-dimensional (2D) barcode, comprising: determining a set of static data; determining a set of dynamic data having a first state and a second state; - generating a first 2D barcode comprising an encoded version of said static data set comprising a first plurality of information modules and said dynamic data set in said first state comprising a second plurality of information modules; - generating a second 2D barcode comprising said set of static data comprising a third plurality of information modules and said set of dynamic data in said second state comprising a fourth plurality of information modules; - comparing said first and second 2D barcodes and classifying said information modules in a first group, a second group and a third group, wherein said first group comprises common information modules between said first plurality of information modules of said first 2D barcode and said third plurality of information modules of said second 2D barcode, said second group comprising non-common information modules of said first plurality of information modules of said first 2D barcode and said third group comprising non-common information modules of said third plurality of information modules of said second 2D barcode; - printing the 2D barcode using a static ink, a first dynamic ink, and a second dynamic ink, wherein the first group is printed with the static ink, the second group is printed with the first dynamic ink, the first dynamic ink adapted to change color state in response to the occurrence of a specific environmental factor, and the third group is printed with a second dynamic ink, the second dynamic ink adapted to change color state in response to the occurrence of the specific environmental factor; A method for providing

22. the first dynamic ink and the second dynamic ink are responsive to environmental factors including at least one of temperature, time, radiation, light, and toxic chemicals; 22. The method of claim 21.

23. the first dynamic ink and the second dynamic ink are time and temperature responsive; 23. The method of claim 21 or 22.

24. the first dynamic ink and the second dynamic ink are responsive to freezing; The method according to any one of claims 21 to 23.

25. the first dynamic ink and the second dynamic ink are activated simultaneously; The method according to any one of claims 21 to 24.

26. 1. A method for providing a two-dimensional (2D) barcode, comprising: determining a set of payload data including a set of static data and a set of dynamic data having a plurality of states and changing states from an initial state to a second state in response to at least one environmental change; - generating said 2D barcode comprising an encoded version of said set of static data, a dynamic area adapted to store an encoded version of said set of dynamic data, and error detection and correction data; - printing said 2D barcode using static inks and printing said encoded set of dynamic data on said dynamic area using dynamic inks that change color state in response to said at least one environmental change, wherein said error detection and correction data corresponds to changes in said set of dynamic data in said dynamic area as said 2D barcode is readable by a reading device, generating a first output when said set of dynamic data is in said initial state and said 2D barcode is readable by said reading device and generating a second output when said set of dynamic data is in said second state; A method for providing

27. The dynamic area is provided in a padding area.

27. The method of claim 26.

28. The dynamic area is provided at an end of the data area.

27. The method of claim 26.

29. 1. A method for reading a two-dimensional (2D) barcode, comprising: - scanning a set of static data comprised in said 2D barcode, said 2D barcode being printed with static ink and with dynamic ink located in a redundant space of said 2D barcode and which changes state in response to at least one environmental change, wherein an encoded version of said set of static data is printed with said static ink; - scanning a set of dynamic data contained in said 2D barcode, wherein values of said dynamic data are based on a current state of dynamic ink printed with an encoded version of said set of dynamic data; generating a first output of the set of static data; generating a second output indicative of the value of the dynamic data; A method for providing

30. 1. A method for reading a two-dimensional (2D) barcode, comprising: - said 2D barcode is printed with static and dynamic inks, an encoded version of a set of static data being printed in said static inks; an encoded version of a set of dynamic data is printed in a dynamic area using the dynamic ink, which changes color state in response to at least one environmental change, such that the dynamic data is in one of a plurality of states; Equipped with - scanning said set of static data contained in said 2D barcode, - scanning said set of dynamic data contained in said 2D barcode, and generating an output based on the set of static data and the set of dynamic data, wherein information from the static data indicates a location of the dynamic region or is used to determine or interpret the dynamic data, the output being 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; A method for providing

Citation Information

Patent Citations

  • Sensor-embedded barcodes

    US20090020609A1

  • Thermochromic bar code

    US6685094B2

  • Device, system and method for facilitating interaction between a wireless communication device and a package

    WO2013138595A2