Forensics · Client-side

Yellow Dots Decoder

Decode Machine Identification Codes (MIC) from yellow microdot patterns - entirely in your browser.

Upload a scan, enhance it to reveal dots, then mark the 15×8 grid to recover timestamp and printer serial data for analysis.

By Mathieu Renaud

Theme

Dots Grid

Click cells to match yellow dots from your image.

Decoded

To use the Yellow Dots Decoder, upload an image of a printed document, zoom in to locate the dots, and mark the yellow dots on the grid based on the image. The tool will then extract and decode the hidden Machine Identification Code (MIC) for forensic analysis.

Image processing

Load a scan; red/green channels are removed to highlight yellow.

Scroll to zoom, drag to pan on the canvas.

Yellow dots and Machine Identification Codes (MIC)

How printer tracking patterns work, how this in-browser decoder fits in, and what the grid columns mean - for education and forensic awareness.

A Machine Identification Code (MIC) is metadata encoded in a grid of yellow microdots on many color laser prints. This page is for digital forensics, security research, journalism, and anyone learning how printer tracking works. The decoder runs entirely in your browser: images are not uploaded to a server for processing.

Privacy. Image enhancement and grid decoding happen locally in your session. Clear the page or reload to discard loaded images from memory.

Machine Identification Code (MIC) and yellow dot decoding

The Yellow Dot Code, also known as the Machine Identification Code (MIC), is a covert tracking pattern embedded in documents printed by laser printers. This system is used by major manufacturers such as Xerox, HP, and Canon to encode details about the printer, including its serial number, as well as the date and time the document was printed. The Machine Identification Code plays a crucial role in printer forensics and document tracking.

For step-by-step use of the interactive tool on this page, see How to use this decoder.

How to use this decoder

The workflow matches the two panels under Decoder and image above: enhance the scan, then mark dots on the 15×8 grid.

  1. Upload an image in Image processing: drag and drop a file or click the drop zone. Use a high-resolution scan or photo when possible (lossless PNG is ideal).
  2. Review the enhanced preview: red and green channels are removed so yellow toner stands out, then brightness and contrast are adjusted. Scroll on the canvas to zoom and drag to pan until one full dot grid cell is legible.
  3. Mark the pattern: in the grid panel, toggle each cell to match a dot (filled) or blank (empty). Align the grid with the same orientation as the print (read left-to-right, top row first).
  4. Read the decoded line under "Decoded": time, date, and serial fields appear as soon as the pattern matches the supported column mapping.

Technical specifications

The Yellow Dot Code consists of a pattern of invisible yellow dots printed across a document. Published analyses (for example work cited by the Electronic Frontier Foundation) describe dots on the order of roughly 100 micrometers in a repeating grid with spacing around 1 mm. Exact measurements vary by engine and paper; treat sizes and spacing as approximate unless you calibrate against a known reference.

These dots, forming part of the Machine Identification Code, are printed using subtractive color encoding (yellow on a white background), making them nearly invisible under normal light conditions. However, they can be revealed using blue LED light or processed using image enhancement algorithms, which are commonly used in digital forensics to extract embedded data.

How this tool highlights dots: in the browser, the pipeline removes the red and green channels from your image, then applies a darker midtone and higher contrast so yellow regions read more clearly against the page. That complements (rather than replaces) physical techniques such as magnification and blue illumination.

Encoding scheme

The Yellow Dot Code follows a binary encoding system, where the presence of a dot represents 1, and the absence represents 0. The encoded information is spread across multiple columns, each assigned a specific function.

On many DocuColor-style layouts, the first row of the grid carries parity (error-correction) bits rather than payload digits; independent write-ups such as the EFF DocuColor tracking dot guide explain row and column parity. This decoder reads seven payload rows per column (it ignores the top row when turning dots into numbers), which matches that pattern for the fields it exposes.

Column roles in the dot grid (indices 0–14, left to right)
Column Encodes Description
Columns 10–13 Serial Number Uniquely identifies the printer.
Column 7 Year Encodes the last two digits of the year (e.g., "23" for 2023).
Column 6 Month Encodes the month of printing (01–12).
Column 5 Day Encodes the day of the month (01–31).
Column 4 Hour Encodes the hour in 24-hour format (00–23).
Column 1 Minutes Encodes the minutes (00–59).
Columns not decoded by this tool
Column index Notes
0, 2, 3, 8, 9, 14 Not mapped in the current client-side decoder; they may carry manufacturer-specific or parity-related data on some devices.

Tool limitations

This page implements one manual 15×8 grid and a fixed set of column rules. It is a learning and analysis aid, not a certified forensic instrument. Vendor layouts, bit orders, and parity rules can differ; always corroborate results with additional evidence when conclusions matter.

Limits. Mis-clicks, skewed scans, heavy JPEG compression, or a printer that uses a different grid will produce wrong or empty fields. The output is only as accurate as your image and your alignment with the pattern assumed here.

Decoding process

Extracting information from the Machine Identification Code involves a series of steps used in forensic document analysis:

  1. Capture the printed dots using image processing techniques (scan, photograph, or channel enhancement as on this page).
  2. Convert the dot positions into a binary sequence per column, respecting any parity row or manufacturer-specific framing.
  3. Match the extracted bits with the corresponding column encoding rules used in printer forensics.
  4. Convert binary values into decimal format to retrieve human-readable data, including printer details and timestamp.

Privacy and security concerns

The use of hidden printer tracking codes like the MIC in printed documents raises concerns about privacy and surveillance. While originally introduced for counterfeit prevention and document authentication, critics argue that it allows for undocumented tracking of individuals without their knowledge or consent.

Reasonable objections include worry about whistleblowers or sensitive sources, workplace monitoring via printed leaks, and misuse of forensic claims without context. Understanding how MIC works does not justify document forgery or harassment; this site is aimed at transparency and defensive awareness.

Legal. Laws vary by country. Do not use insights from this guide to alter documents, mislead courts or employers, or infringe others' rights. When in doubt, seek qualified legal advice.

Several privacy advocates have suggested countermeasures, such as:

  • Applying high-contrast color filters to disrupt dot visibility and prevent forensic tracking.
  • Using random noise overlays to prevent accurate pattern detection in Machine Identification Codes.
  • Developing software tools that detect and remove MIC patterns from scanned documents.

Conclusion

The Machine Identification Code (MIC), embedded within the Yellow Dot Code, plays a significant role in forensic printing and anti-counterfeiting measures. However, its secretive implementation has sparked discussions on digital rights, data security, and user privacy. As technology advances, there is an ongoing debate about the balance between security and personal privacy.

Frequently asked questions

What is a Yellow Dot Decoder?

A Yellow Dot Decoder is a forensic tool that helps identify Machine Identification Codes (MIC) embedded in printed documents using yellow microdots. These codes record printer-related metadata such as serial number and print time.

Are yellow dots visible to the naked eye?

No. Yellow dots are generally invisible under normal lighting and can only be detected with special lighting or image processing techniques.

Which printers use MIC or yellow dot codes?

Many color laser printers from manufacturers like Xerox, Canon, Brother, and HP embed MIC tracking patterns by default. Models change over time; consult manufacturer documentation and independent references such as the Electronic Frontier Foundation's printer resources.

Is decoding yellow dots illegal?

No, decoding MIC for personal or educational purposes is not illegal. However, tampering with document authenticity might be illegal in some jurisdictions.

Why use a Yellow Dot Decoder?

Whether you work in digital forensics, journalism, security research, or personal privacy, decoding MIC patterns from scans helps you verify whether a print contains tracking dots and understand what metadata may have been encoded.

What are printer yellow dots?

Printer yellow dots are a faint microdot grid printed on many color laser pages. Together they can encode a Machine Identification Code (MIC) linking the sheet to a device and often a print date and time.

How can I see yellow dots without software?

You can sometimes reveal them with strong magnification and oblique lighting; pure blue light can make yellow toner appear darker. For reliable analysis, a high-resolution lossless scan or photograph and channel enhancement (as in this page's tool) are usually easier than the naked eye alone.

Do all color laser printers print a Machine Identification Code?

No. Many do, but not all devices or drivers print the same pattern—or any pattern.

Does this decoder work on phone photos of a printout?

Yes, if the dots are resolved clearly enough: use the highest practical resolution, steady focus, even lighting, and lossless formats when possible. Very soft or heavily compressed images may not be good enough to align the 15×8 grid accurately.

Why might decoded data look wrong or incomplete?

Common causes include a different vendor grid or bit layout than this decoder assumes, misaligned clicks on the grid, damaged or skewed prints, JPEG compression artifacts, or low scan resolution. This tool decodes a fixed column mapping only.

Author and project links:

View the source code of this printer tracking dots decoder on GitHub: https://github.com/Equinoxis/yellow-dots-decoder

This guide is for education and forensic awareness only. Always respect applicable laws and do not use tools to falsify documents.