Android-OCR: On-Device OCR for Android PDAs
A barcode scanner beeps all day — and reads nothing but barcodes. Ask it for the...

A fixed-mount reader has seen more than its share of barcodes pretending to be fine.
A skewed, faded or smudged code scans today and fails tomorrow — and by the time it fails, the line has stopped, the customer has returned the batch, and the compliance paperwork has already been filed. And the characters on the part — the laser-etched serial, the printed lot number, the moulded text — are not a barcode at all, so the reader has nothing to say about them either.
Fixed-Mount OCR V2 combines two capabilities into one line-side solution:
One scan produces both content and quality. Quality decline is caught while the code still scans.
Once the code is easy to read, the reader tells you what the part is; grading tells you how long the code will keep reading. That combination is what a real line-side gate looks like.
TIP
New global site. The product interface is currently in Chinese while we finish the English build — it ships in October 2026. In the meantime, tell us what you need and we’ll set up a fast, tailored version for you: sales@happylab.me.
Characters the reader can’t read. A fixed-mount reader decodes barcodes quickly and reliably — but much of the information on the line is not in a barcode at all: laser-etched serials on metal, lot numbers and dates on labels, moulded or stamped text on plastic. These have no symbology to decode. The usual answers are either a heavier vision system (frozen at manufacture) or a large model (too heavy to run on site).
Quality the eye can’t see. A successful scan is not a healthy code. Ribbon ageing, printhead wear, moisture and handling all erode quality gradually:
A line doesn’t need a device that merely reads. It needs a station that reads it, understands it and holds the line on quality.
This is not “install some software on a PC”. It is an integrated solution built around a Brady IPS fixed-mount reader: the device handles high-speed capture, and the software releases its full potential.

1 | Photoelectric sensor ──IO trigger──▶ Brady IPS fixed-mount reader (HF700/HF71X/HF81X) |
Why “releasing the reader’s potential” matters: a fixed-mount reader’s strength is speed — IO-triggered, stable cadence, multiple images per second. Traditionally its scope ends at “reads barcodes”. This software gives that speed a brain that keeps up:
{barcode}-{timestamp}-OK/NG), so the decoded value becomes a record field with no extra work.
A line-grade capture path. Unlike a handheld, a fixed-mount station is fully automatic: a photoelectric sensor triggers the IO, the reader captures, and the image is pushed over FTP — no operator involved. A bounded queue absorbs irregular feed, dropping the oldest frame rather than blocking the device, and 0/90/180/270° rotation is compensated in software so the mounting angle is unconstrained.
Two-channel recognition engine:
| Engine | Measured speed | Best for |
|---|---|---|
| ⭐ CPU v6 tiny (in-house: onnxruntime + JS post-processing) | ~60 ms/frame | Headless industrial PCs, production mode |
| CPU v6 small | ~165 ms | Higher accuracy, no GPU |
| WebGPU v6 tiny | ~100 ms | Large-screen demo / WebOCR |
| WebGPU v6 small | ~400 ms | High-accuracy demo |
Template ROI — the software finds the region itself. Box the target on a sample image (serial, date, prize — as many regions as you need), learn the ORB features and save it as a template. Each run locates the ROI automatically and recognises only what’s inside it: fast and clean. A tilted part is recovered by ORB + homography to within 2–9 px, and a three-level fallback (template → feature → whole-image) keeps the line running when the target moves.
Regex rules — extract only what you want: any field, priority ordering, JSON import/export. Changing a scenario is a configuration step, not a development project.
The same scan that reads content also feeds the grading channel — content and quality from one trigger.
| Standard | Applies to | Method |
|---|---|---|
| ISO/IEC 15416 | 1D codes (Code 128 / 39, EAN/UPC…) | 10 scan lines, 9 parameters |
| ISO/IEC 15415 | 2D codes (QR / DataMatrix / Aztec…) | Module-grid rebuild, 7 parameters |
| ISO/IEC 29158 | 2D DPM marks (laser / dot-peen) | Multi-angle lighting, same 7 parameters |
Scores run 0–4.0 and map to A–F, where the overall grade is the worst parameter (the weakest-link rule):
| Score | Grade | Meaning |
|---|---|---|
| 3.5 – 4.0 | A | Excellent |
| 2.5 – 3.5 | B | Good |
| 1.5 – 2.5 | C | Pass |
| 0.5 – 1.5 | D | Poor |
| 0 – 0.5 | F | Fail |
The in-house engine grades a frame in under 100 ms, keeping pace with the line. Dual decoders (zxing with a zbar fallback, auto-upscaled) raise the read rate, and the 2D parameters — FPD, GNU, ANU, UEC — are implemented in-house, which is rare in open source. Reports are visual: location box, scan lines and module-grid overlay make the problem obvious at a glance.
Deeply integrated, not a side tool: the grade lands in the same record as the barcode, the OCR text and the original image. A line display shows a breathing status light — green for OK, red for a poor code — visible from five metres. Print-parameter drift shows up as a trend, so you fix the printer before the customer notices.
A code that grades C, D or F still scans — but it is already a warning: the printhead needs attention, the ribbon needs adjusting. Trend monitoring is what stops a quality incident before it happens.
After recognition and grading, the result is typed into whatever system you already use — Excel, ERP, an in-house app — via focus injection (keyboard simulation with CJK support, Tab navigation, auto-Enter and optional prefix/suffix). Records are logged automatically and export to Excel; the line display and the background entry mode run side by side without interfering.
1 | Sensor trigger → reader scans → OCR + grading → data lands in the sheet |
| Scenario | Pain point | How it helps |
|---|---|---|
| 🏭 Photovoltaic / battery / electronics | Traceability code + characters + quality | One scan delivers all three |
| 🏷️ Label printing, pre-shipment | Ribbon ageing is invisible | Sampled grading + trend alerts; problems don’t ship |
| 📦 Incoming inspection | Supplier labels vary | Photograph and check; one standard, archived |
| 🏥 Medical UDI / automotive IATF | Formal verification is slow and costly | Self-check first, then certify |
| Metric | Value |
|---|---|
| OCR (CPU v6 tiny) | ~60 ms |
| Background-mode single frame | ~90–300 ms (template + ROI + OCR + record) |
| Barcode grading (C++) | < 100 ms |
| Serial-number accuracy (v6 tiny) | 99.8% |
| Throughput | Multiple frames per second — ceiling set by the reader’s trigger rate; the software is not the bottleneck |
| Offline | ✅ Fully local; data never leaves the plant |
| Platform | Windows / Linux industrial PC — no GPU required |
Fixed-Mount OCR V2 currently supports Brady IPS fixed-mount readers: HF700 · HF711 · HF810 · HF811.
Using another fixed-mount reader? We support additional models through custom development — contact us with the model.
| 🔧 Fixed-mount system | 🛠️ Custom options | |
|---|---|---|
| Price | $680 base system | from $300 |
| Runs on | Windows / Linux industrial PC | — |
| Works offline | ✅ | ✅ |
| Free trial | 30 days | — |
| Option | Price | Notes |
|---|---|---|
| Custom data output | from $300 | Match your ERP / WMS / MES data structure |
| Android console version | $400 | Run the console on an Android tablet/PDA |
| Multi-lane recognition | $800 | Up to 6 lanes in parallel — needs 32 GB RAM and an NVIDIA GPU with at least 8 GB VRAM |
| Barcode quality grading | +$199 | Optional add-on (see the compliance note below) |
| Additional language version | $100 | Each additional UI language beyond Chinese / English |
All licences are one-time — no subscriptions, nothing to renew. Because multi-lane and Android-console builds depend on your hardware and layout, they start with a conversation: tell us about your line and we’ll come back with a plan and a price. Full details on the Fixed-Mount OCR pricing page.
Try the solution with your own reader and your own parts for 30 days, free. Trials are arranged by contacting us today; an online order system for trials and licences is coming soon.
Compliance note
The barcode grading module is a reference-grade aid, not a certified verifier. It does not claim ISO certification and must not be used as a formal compliance audit report. ISO/IEC 15416 / 15415 grading requires standardised hardware — a controlled light source, a standard aperture and a calibrated reflectance target. Use this module for line-side screening, trend monitoring and diagnosis; leave certification to dedicated equipment.
That said, “reference-grade” is far from “useless”:
This global site is brand new, and our online tools are currently in Chinese. Tell us what you need and we’ll set up a fast, tailored solution for you — an English version is coming in the next few weeks.
📧 sales@happylab.me · 🌐 global.happylab.me
HappyLab builds practical AI and browser-based tools for industrial device workflows.
Previous

A barcode scanner beeps all day — and reads nothing but barcodes. Ask it for the...
Next

A barcode that scans is not a barcode that passes. Skewed, faded or smudged code...