A 3D camera that streams depth and colour perfectly on the bench starts dropping frames the day it goes on the station: the run is now 4 m, the cable is a general-purpose extension lead, and the link either negotiates down to USB 2 or vanishes mid-shift. This guide gives the passive length limit for each USB version, the bandwidth arithmetic to run before you buy, and the cable type to pick for each run length. It is written for anyone integrating a depth, ToF or structured-light camera over USB on a bench, a robot cell or a production line.
Match the run to the cable type
Measure the run first — camera connector to host port, along the actual cable route, not the straight-line distance. Then pick from this table:
| Run length | Cable to use | Why it works |
|---|---|---|
| Up to 2 m | Any USB 3 data cable in good condition | Comfortably inside the electrical budget |
| 2-3 m | Passive USB 3 data cable | The passive limit at 5 Gb/s |
| 3-5 m | Active USB 3 repeater cable, powered | A repeater re-drives the signal past the budget |
| 5-15 m | Active extension with a powered hub, or optical USB | Each hop stays inside budget |
| Over 15 m | Optical USB, or an Ethernet 3D sensor | Ethernet reaches 100 m on Cat6 |
Two rules sit above the table. First, a charge-only lead never works at any length: it has no connected data pairs, so the camera cannot enumerate. Second, treat 3 m as the working passive ceiling on USB 3 and 5 m as the USB 2 ceiling, and buy for the measured run plus about 15 percent of service loop, not for what you hope will fit.
Where the 3 m and 5 m limits come from
The USB specification does not print a maximum length on a drawing. It sets an electrical budget — signal attenuation and timing skew the receiver can still tolerate — and cable makers meet that budget with standard wire gauges. Working the budget backwards gives the numbers engineers quote:
| USB version | Signalling rate | Passive cable length | Usable throughput in practice |
|---|---|---|---|
| USB 2.0 High Speed | 480 Mb/s | 5 m | 30-40 MB/s |
| USB 3.2 Gen 1 | 5 Gb/s | 2-3 m | about 400 MB/s |
| USB 3.2 Gen 2 | 10 Gb/s | about 3 m | about 800 MB/s |
| USB4 (40 Gb/s) | 40 Gb/s | 0.8 m | about 3,000 MB/s |
The spread on the Gen 1 row is real: full-size connectors and thicker conductors hold 5 Gb/s out to 3 m, while thin Micro-B and USB-C leads often meet the budget only to 1-2 m. As the rate climbs, the passive reach collapses — 0.8 m at 40 Gb/s — because the receiver tolerance is spent on cable losses that much faster.
A 3D camera is the hardest load you can hang on that budget. A normal area-scan camera pushes one stream; a depth camera pushes depth and colour together, plus an infrared channel on stereo units and an inertial stream on some models, and the frames must arrive time-aligned. When the link runs out of margin, those synchronized streams are the first casualty.
Budget the link before you buy the cable
Whatever the sensing method — laser profiler, stereo pair, structured light, or a ToF sensing camera such as the MV-DT01WMU — the arithmetic is the same:
- Type
- Depth / ToF camera
Worked example, a common structured-light camera: 1280 × 720 depth at 16 bits and 30 fps, plus 1280 × 720 colour at 24 bits and 30 fps.
- Depth: 1280 × 720 = 921,600 pixels; × 2 bytes = 1,843,200 bytes, about 1.8 MB per frame; × 30 fps = 55 MB/s.
- Colour: 921,600 × 3 bytes = 2,764,800 bytes, about 2.8 MB per frame; × 30 fps = 83 MB/s.
- Total: 55 + 83 = 138 MB/s, which is 138 × 8 = about 1.1 Gb/s of raw payload.
- On USB 3.2 Gen 1 with about 400 MB/s usable: 138 ÷ 400 = 35 percent of the link.
- On USB 2 with about 35 MB/s usable: 138 ÷ 35 = 4 × oversubscribed, so the depth stream cannot open at all.
Add any extra streams the same way: a second infrared channel at 1280 × 720, 8 bits and 30 fps adds about 28 MB/s. Keep the total under about two thirds of the usable link so retransmits and host queuing have headroom; 138 MB/s against a 270 MB/s budget clears easily. How much of the 400 MB/s a camera actually reaches also comes down to how the driver queues its transfers — USB camera throughput and link-speed queuing works through that side of it.
Symptoms of a cable past its limit
The failure is rarely a clean error message. Test in this order:
-
Silent fallback to USB 2. The camera enumerates, the viewer opens, then depth will not start or runs at a fraction of the rate. Check the negotiated speed first — on Linux,
lsusb -tprints5000Mfor a 5 Gb/s link and480Mfor a fallback. A camera that has fallen back cannot carry the budget from the section above. - Frame stalls on one stream. Colour runs while depth freezes after a few seconds: the classic bandwidth-starvation pattern, worked through in depth camera frames not updating: USB bandwidth stalls.
- The device disappears mid-capture. Long runs can pass enough signal to enumerate, then drop under vibration or temperature swings — the pattern behind VIDIOC_DQBUF error 19 and USB camera drops.
- It fails through adapters and front-panel ports. Extensions, OTG adapters and case-front headers each add loss; USB camera signal integrity on OTG ports covers that fault class.
Passive, active and optical cables
Under 3 m, buy a proper data cable and stop worrying. The LS-CBL-0219 is a 3 m USB3.0 camera cable rated for drag-chain use, so it also survives on a moving axis.
Between 3 m and about 10 m, use an active repeater cable — a cable with a signal regenerator in the far-end connector. Three things separate the good ones:
- A stated USB version and a data rating. Cables sold by length alone, with no version marked, are usually built for keyboards.
- Their own power. A USB 3 port supplies 0.9 A at 5 V, which is 0.9 × 5 = 4.5 W. A repeater that draws from the host leaves the camera to share what remains, so prefer extensions with a power input or a supply at the far end.
- One repeater, not a chain of passive extensions. Every passive section between regenerators must still respect the length budget. A powered hub mid-run turns one 6 m run into two hops of about 3 m each — exactly how you build 5-10 m reliably.
Optical USB cables carry the same protocol over fibre and are the clean answer from about 10 m to 50 m. They need local power at the camera end and cost more than copper, but they ignore the electrical budget entirely.
Bring the auxiliary lines out with the data link rather than trusting bus power on a long run. The LS-CBL-0300 is a power and I/O cable with an M8 8-pin connector, 7 m long, rated for drag-chain use. Trigger lines, camera I/O and 24 V accessories ride on it alongside the USB run. For the trigger wiring itself, camera trigger cable selection for a signal generator covers the connector and signal choices.
- Type
- Power and I/O cables
- Length
- 6-8 m
Past ten metres, switch to Ethernet
At some point extending USB costs more than it returns. Past about 10 m — or the moment you want several cameras on one host — move to an Ethernet camera or 3D sensor: Cat6 reaches 100 m, power and data can share one cable where the camera supports it, and the cable plant is ordinary industrial Ethernet. Machine vision camera cable selection for reliable links compares interfaces with the same budget-first method, and the 3D sensors range lists the Ethernet-native units. If you stay on USB, the cables finder filters by type and length, and the system configurator adds the cable step after camera and lens.
Mounting, routing and cable management
A long USB 3 run is as much a mechanical problem as an electrical one:
- Keep bend radii at least ten cable diameters — a 6 mm cable wants a 60 mm bend — and larger inside a drag chain.
- Route the data cable away from motor and drive cables; where routes must cross, cross at right angles.
- Strain-relieve within about 100 mm of each connector so the solder joints never carry the cable's weight.
- Add 10-20 percent extra length as a service loop; a taut cable feeds every machine vibration straight into the connector.
The camera end must be rigid too: a stand that resonates shows up as depth noise that looks like a cable fault. The LS-MNT-0040 is a machine vision stand with a 700 mm column and a 400 × 450 mm base. Getting the camera position right in the first place — distance, angle, height — is covered in the 3D camera working distance and positioning guide.
- Type
- Camera stands
Where the usual answer is wrong
- "It worked on the bench." Bench runs are 1 m and undisturbed. The same camera on a 4 m run past a drive cabinet is a different electrical environment.
- "Five-metre passive USB 3 cables are sold everywhere." A passive lead that long at 5 Gb/s sits outside the budget; most enumerate as USB 2 and some drop out under motion. Treat any 5 m passive claim at Gen 1 as a USB 2 cable.
- "The cable is new, so it is fine." Charge-only and thin leads fail at any length, and a USB-C shell says nothing about the pairs inside it.
- "Both cameras fit on this controller." Two of the worked-example cameras total 276 MB/s, inside 400 MB/s — until a third camera or a backup job arrives. Budget the ports you will actually fill.
- "A longer cable will fix the dropped frames." If the run is under 3 m and frames still drop, the fault is bandwidth, the port or the power, not the length. Run the arithmetic first.
Checklist before you order
- Measure the real route, connector to port, and add the service loop.
- Confirm the camera connector and the USB version it needs for full-rate depth.
- Run the bandwidth arithmetic for every stream the camera will open.
- Check the negotiated speed after installation (
lsusb -ton Linux); 480M means trouble. - Pick the cable class from the table: passive to 3 m, active repeater to 10 m, optical or Ethernet beyond.
- Plan power: 4.5 W is the bus budget per USB 3 port, so inject power at the far end of active runs.
- Route away from power cables, relieve strain at both connectors, and demand a drag-chain rating if the camera moves.
- Keep one spare cable of the installed length with the machine.
If the run is unusual — a very long optical link, several 3D cameras on one host, a washdown route — tell us the camera and the distance and we will size the link with you.
Questions
Can I use a 5 m passive USB 3 cable for my depth camera?
Not reliably. Five metres is outside the passive budget at 5 Gb/s, so the link either fails to train at SuperSpeed or trains and then drops under motion. Most 5 m passive leads end up enumerating as USB 2, which cannot carry a combined depth-plus-colour stream. Use an active 5 m repeater cable rated for data instead.
Do active repeater cables add lag to the depth stream?
No measurable amount. A repeater re-drives the electrical signal and adds nanoseconds per hop, against a 33 ms frame time at 30 fps. What you do gain is a second powered device in the chain: if its supply fails, the camera re-enumerates and the projector restarts, so feed the repeater from a dedicated power input rather than the host port.
Will a cable near its limit quietly worsen depth accuracy?
No. USB carries checksums on every packet: a corrupted frame is retransmitted on bulk transfers or discarded on isochronous ones. A marginal link shows up as dropped frames, stalled streams or full disconnects, never as smooth-but-wrong millimetres. If the depth map is stable but biased, look at calibration and temperature, not the cable.
How do I check what speed my 3D camera connected at?
On Linux, run `lsusb -t`: each row prints the negotiated rate, 5000M for a 5 Gb/s link and 480M for a USB 2 fallback. On other systems, read the speed property in the USB device tree, or compare the achieved frame rate against the requested one in the viewer. Repeat the check after every cable change.
Can I run two 3D cameras from one USB 3 controller?
Add the streams and compare against about 400 MB/s of usable link per controller, not per socket, because ports on the same root hub share it. Two cameras at 138 MB/s each total 276 MB/s and fit; a third does not. Give heavy cameras their own controller, usually one add-in card per camera pair.
Is USB 2 enough if I only stream depth?
Almost never at full resolution: 1280 x 720 depth at 16 bits and 30 fps is 55 MB/s against roughly 35 MB/s of usable USB 2 throughput. A reduced 640 x 480 depth stream at 30 fps is about 18 MB/s and does fit, but you give up lateral resolution, which sets the noise floor of the depth map.



