A car rolls down the pit lane at 50 km/h and you want its tire serial number and car ID from a barcode before it is gone. The question that usually comes first — how many frames per second do I need? — is the wrong one. At this speed the numbers that decide success are exposure time, field of view and a trigger; frame rate only decides how many chances you get per pass. The arithmetic below takes a 0.3 mm-module Code 128 through the whole chain: a microsecond exposure limit, a 128 mm field at 330 mm working distance on a 12 mm lens, and one triggered strobed frame per pass. It ends with the parts and settings for three cases: label on the car body, label on a rotating tire sidewall, and a slower capture zone.
Motion blur sets the exposure, not the frame rate
At 50 km/h the label moves 50 ÷ 3.6 = 13.9 m/s, which is 13.9 mm every millisecond. Whatever the sensor integrates during the exposure smears by that motion:
Here v is label speed and p is the size of one pixel projected onto the object. Hold blur at or under one pixel: past that, the narrowest bar loses contrast against its neighbouring space and decodes collapse. The same relation drives conveyor work — the exposure-time and shutter-speed guide — but a vehicle pass adds the trigger problem covered below.
With p = 0.1 mm (derived in the next section): t_max = 0.1 mm ÷ 13.9 mm/ms = 7.2 µs. Commit to that width. At 10 µs the smear is 1.4 px and a tuned decoder still reads; at 20 µs the smear approaches a full 0.3 mm module and reads become luck. Switch every auto-exposure mode off, too — an algorithm stretching to 1 ms in shade produces 13.9 mm of smear (cap it).
Size the field of view from the code, not the car
A 1D code decodes reliably at about 3 pixels across the module — the narrowest bar or space — and 5 pixels when print quality is marginal. The Code 128 geometry guide covers module size, reading angle and distance in detail.
Take a tire label with 0.3 mm modules:
For the example sensor — 1280 pixels across a 4.8 mm wide 1/3-inch format, the usual 1.3 MP monochrome geometry — a 12 mm lens focuses at WD = 12 mm × 1.0375 ÷ 0.0375 ≈ 330 mm. Mount the camera with its long pixel axis along the direction of travel: the field is 128 mm along the lane and about 102 mm across it, framing a 45 mm label with roughly ±28 mm of lateral aiming tolerance.
Run your own field and focal length with the calculator:
Worked example: a 45 mm Code 128 at 50 km/h
The whole chain, start to finish:
- Speed: 50 km/h ÷ 3.6 = 13.89 m/s = 13.9 mm per millisecond.
- Module 0.3 mm at 3 px per module gives p = 0.1 mm.
- Field: 1280 px × 0.1 mm = 128 mm; the 4.8 mm sensor width gives m = 0.0375.
- A 12 mm lens puts working distance at 12 × 1.0375 ÷ 0.0375 ≈ 330 mm.
- Blur budget 1 px = 0.1 mm: t = 0.1 ÷ 13.9 = 7.2 µs.
- Set the camera exposure window to 200 µs and fire the strobe at its computed width inside it. Blur follows the time the light is on, and the wide window absorbs trigger jitter.
Result: one triggered, strobed frame per pass reads at 50 km/h. A reader whose lens already matches step 4 shortens the optics work:
- Interface
- Fast Ethernet
- Resolution
- Up to 3 MP
- Shutter
- Global
- Lens mount
- M12
Why frame rate is the wrong question
Free-running, the label sits fully inside the 128 mm field for dwell = 0.128 m ÷ 13.89 m/s = 9.2 ms. A camera streaming 30 fps offers a frame every 33.3 ms, so a randomly timed pass lands on a clean frame only about 28% of the time — and every one of those frames still needs the same microsecond exposure. Two clean looks per pass would need two frames inside 9.2 ms, and that buys nothing a trigger does not.
Decode throughput is even less of a limit. The LS-CRD-0028 lists 30 fps and 60 codes/s at 2560 x 2048. Pit traffic of one car every 5 s is 0.2 codes/s, three hundred times under that rate. Frame rate and shutter choices matter for continuous web material — see the moving-web fps guide — but a vehicle pass wants a trigger: one frame on 100% of passes, with a second trigger point downstream if you want redundancy.
Trigger, exposure and strobe timing
The arrangement that works on every pass: a photoelectric sensor across the lane fires the trigger; the camera opens a 100-200 µs exposure window; the light controller pulses the strobe inside that window at the width computed above. Only the time the light is on blurs the image — that is the entire point of strobing. The pulse-width guide and the high-speed strobe sizing note give the sizing method; the rise-time note explains why the pulse must deliver flat output for its full width, not a ramp.
Trigger latency tolerance is wide: ±28 mm of lateral slack at 13.9 mm/ms gives about 2 ms of allowable jitter, and a photoelectric trigger with a strobe delay under 1 ms fits with margin. The capture chain — trigger call, exposure window, light pulse — is laid out in the trigger-versus-exposure guide. One failure mode owns this wiring: a strobe fired outside the exposure window gives a black frame, and it has a known timing fix.
Reading the label on a rotating tire
A sidewall label adds rotation. A 0.6 m diameter tire rolling at 13.89 m/s turns 13.89 ÷ 1.885 m = 7.4 revolutions per second, so the label faces a side-mounted camera once every 136 ms. Surface speed at a label sitting 0.24 m from the hub is 46.3 rad/s × 0.24 m = 11.1 m/s, so the same pulse holds blur to 11.1 m/s × 0.000007 s ≈ 0.08 mm — under a pixel.
During the 9 ms the wheel patch is in the field, the label may face away. Fire a burst of three strobed frames about 3 ms apart where the reader supports burst capture: the wheel turns 8° between frames, so at least one frame usually catches the label square-on. Score the decodes and accept on agreement, exactly as in the read-confidence method. Where bursts are not available, place two trigger-and-reader points a metre apart — the second station sees a different sidewall angle.
Light and controller for microsecond strobe pulses
Continuous illumination cannot do this: lighting a sensor adequately inside the strobe window would take orders of magnitude more continuous LED power than any catalog light is rated for. Strobed, it is routine — LED pulse currents run well above the continuous rating for microsecond pulses, and the thermal load is negligible: one 7.2 µs pulse per 5 s car is a duty factor of 1.4 × 10⁻⁶.
The example field is 128 mm along the lane. A 300 x 17 mm line light such as the LS-LSC-0527 (87 W red / 108 W white) overhangs it with margin when mounted alongside the optics; other lengths sit in the line scan lights category. Red over a white label maximizes bar contrast for a mono reader, and daylight that would saturate a 10 ms exposure delivers only 0.000007 s ÷ 0.010 s = 0.07% of that energy inside the strobe window — which is why strobed captures hold up in the open.
- Size
- 200-400 mm
- Connector
- 16M-6J
Drive the light from a controller with a strobe input; the controller finder filters by channel count and output type. A digital strobe-ready box such as the LS-CTL-0070 covers the single-light pit-lane case with recipe switching over serial:
- Output
- Constant voltage 24 V
- Channels
- 4 channels
- Control
- Digital
- Feature
- Strobe
Choosing the reader
Filter for global shutter first — at microsecond exposures a rolling shutter distorts anything not aligned with its readout. Then match the lens to the 12 mm / 330 mm geometry or rescale with the calculator; the fixed code reader finder filters by shutter, mount and interface, and the category page sorts by resolution. Three catalog readers map to the three cases:
| Specification | MV-ID3013PM-12M-WBN | MV-ID813M-05S-WBN-SR | LS-CRD-0028 |
|---|---|---|---|
| Symbologies | 1D codes: Code 39, Code 93, Code 128, CodaBar, EAN 8, EAN 13, UPCA, UPCE, ITF 14, ITF 25, Matrix 25, MSI, China Post, Code 11, and Industrial 25; 2D matrix codes: QR Code (GS1-QR included), Data Matrix (GS1-DM included), MicroQR, AZTEC, HanXin, Maxi code; Stacked codes: PDF417, MicroPDF417 | 1D code: Code 39, Code 93, Code 128 (incl. GS1-128), ITF14, ITF25, CodaBar, EAN8, EAN13, UPCA, UPCE; Matrix 2D code: QR Code (incl. GS1-QR), Data Matrix (incl. GS1-DM), Micro QR, AZTEC, Han Xin; Stacked 2D code: PDF417 | 1D: Code 39, Code 93, Code 128, CodaBar, EAN8, EAN13, UPCA, UPCE, ITF14, Matrix 2 of 5, Matrix 25, MSI, China Post, Code 11, Industrial 25; 2D: QR Code, Data Matrix; Stack codes: PDF417 |
| Max. frame rate | 60 fps | 60 fps | 30 fps |
| Max. reading speed | 84 codes/sec | 20 codes/s | – |
| Sensor type | Global shutter, mono, 1/2.7", 4 μm × 4 μm | Mono, 1/4", 2.7 μm × 2.7 μm | CMOS |
| Resolution | 1280 × 1024 | 1280 × 1024 | 2560× 2048 px |
| Exposure time | 35 μs to 1 sec | 60 us ~7000 us | 35 μs ~ 1 s |
| Gain | 0 dB to 28 dB | 1 dB ~ 15 dB | – |
| Data interface | Fast Ethernet (100 Mbit/s) | RJ45 | Fast Ethernet (100 Mbit/s) |
| Communication protocol | SmartSDK, TCP Client, TCP Server, Serial, FTP, Profinet, Ethernet/IP, MELSEC/SLMP, ModBus, UDP, Fins, Modbus RTU | SmartSDK, TCP Client, Serial, FTP, TCP Server, UDP | – |
| Digital I/O | 17-pin M12 connector provides power and I/O, including non-isolated input (LineIn 0/1/2) × 3, non-isolated output (LineOut 3/4/5) × 3, RS-232 × 1. Supports device triggering via pressing button on top.;17-pin M12 connector provides power and I/O, including isolated input (LineIn 0/1/2) × 3, isolated output (LineOut 3/4/5) × 3, RS-232 × 1. Supports device triggering via pressing button on top. | 1 non-isolated input (pin 1 input), 1 non-isolated output (pin 3 output), 1× RS-232; Device trigger via top button supported | 3 non-isolated inputs, 3 non-isolated outputs, 1 RS-232 |
| Power supply | 24 VDC | 12 ~ 24 VDC | 24 V |
| Power consumption | Avg.: 9 W @ 24 VDC (light source enabled); Max.: 48 W @ 24 VDC (light source enabled) | Max. power: 2.5 W @ 12 VDC | 20 W @ 24 V |
| Price | $1,979.00 | $719.00 | $920.00 |
Values as printed in each product's data sheet; open a part for its drawing and full specifications.
Interfaces matter as much as sensors: a Fast Ethernet reader suits one lane, while GigE leaves headroom for several stations on one switch. For a glossy sidewall label presented at a consistent short distance, the polarized MV-IDB005EXI-05NRP is the pick — a 4.63 mm focal length focused at 70 mm, with polarization cutting the specular glare off rubber:
- Interface
- Fast Ethernet
- Resolution
- Up to 3 MP
- Shutter
- Global
- Lens mount
- M5.8
Checks before you build
- Run the bars parallel to travel. Motion then smears along the bar length, not across the bar-space pattern, and the same pulse width buys extra margin.
- Bolt the camera rigid and aim it by firing the trigger at a static target at the 330 mm mark; confirm the label sits centred across several passes.
- Test with production labels, not a fresh printout: low print grades and damaged quiet zones fail at speed first. Keep each quiet zone at least 10 modules clear.
- Capture 50 passes and require the confidence score on every frame; log failures with their images and look for the pattern — angle, glare or pulse timing.
- Repeat the test at the brightest time of day if any daylight reaches the lane; the microsecond window rejects sun, but confirm on the histogram.
The decision
- Label on the car body at 50 km/h: photoelectric trigger, 200 µs exposure window, a strobe pulse at the computed width, and a 12 mm lens at about 330 mm for a 128 mm field. One frame per pass; the decode budget is never the limit.
- Label on the tire sidewall: same optics and pulse, plus a three-frame burst 3 ms apart, or a second trigger-and-reader station a metre downstream.
- A capture zone at 30 km/h doubles the exposure budget to 12 µs; 20 km/h gives 18 µs.
- No strobe possible: slow the pass — exposure scales as 1/v, so 10 km/h allows 36 µs on the same optics.
Size the reader, light and controller together in the build configurator, or send the lane drawings through the contact page and we will check the geometry against your label. More decode-side reading sits on the code-reading topic page.
Questions
What exposure does a barcode need at other vehicle speeds?
Exposure scales as t = p/v, so with the same 0.1 mm pixel the budget grows as speed drops: about 18 µs at 20 km/h, 12 µs at 30 km/h and 36 µs at 10 km/h, while the 50 km/h example gives 7.2 µs. Double the speed and you halve the pulse. Keep the microsecond habit even at low speed and the margin only improves.
Can I skip the trigger and just use a high frame rate?
You can, but the geometry works against you: the label is fully inside a 128 mm field for about 9 ms, so catching it twice needs roughly 220 fps, and every frame still needs the microsecond-scale exposure. A photoelectric trigger delivers 100% of passes with one frame, which is why production installs trigger first and adds frames only for redundancy.
How many pixels do I need across a barcode module?
Plan on 3 pixels per module for a good print, 5 for a marginal one, and keep each quiet zone at least 10 modules wide. Below about 2 pixels per module the narrow bar and its neighbouring space average together and decode rates fall off a cliff, whatever the reader's rated codes-per-second.
Why is my strobed barcode image black at vehicle speed?
Almost always timing: with an exposure window a few microseconds wide, a strobe delay of a few tens of microseconds from cable length or controller processing pushes the pulse outside the exposure. Test by extending the exposure to 1 ms and firing the light; if the frame lights evenly, shorten the exposure again and trim the trigger delay until the image returns.



