A GMSL camera that streams cleanly for 20 to 30 minutes, freezes, and then refuses to be detected is telling you the fault builds with load and heat. Software bugs do not keep that kind of clock. This guide is for engineers integrating GMSL cameras on embedded hosts who need the station back, not a theory. You will measure the camera's supply rail under real streaming load, work the voltage-drop arithmetic against a hard budget, separate power from heat with two quick tests, and finish with a decision for each outcome: fix the feed, cool the link, or return the camera.
What the symptom pattern tells you
Three clues narrow this to a marginal condition on one camera's path. Failure time tracks streaming, not wall-clock time: 20 to 30 minutes matches the thermal time constant of a small camera head and its cable, pointing at accumulating heat or a rising contact resistance. Detection fails after the drop although the capture driver is still loaded, and a reboot restores it — the camera latches its link down after a brown-out or thermal trip until power is fully removed. And the same cables carried a second camera cleanly, so the fault travels with this camera's feed, connector and serializer.
One trap hides in the diagnostics. The first probe after a failure can report green because it reads the host's cached enumeration; run detection twice back-to-back and the second, fresh probe shows zero devices. That is a reporting artefact, not a recovery. Power-cycle the camera — not just the application — before you trust any check. The capture daemon's log is the reliable witness: it shows the port opening for the camera and then a frozen-camera report right before the link dies.
Likely causes, in order of probability
Work the table top down. In rigs like this one the first two rows cover most cases; row 4 is a diagnostic trap, not a cause.
| Rank | Likely cause | Why it fits the 20-30 minute pattern | Test that confirms it |
|---|---|---|---|
| 1 | Supply rail sag under streaming load | Contact and cable resistance climb with temperature, so the rail falls as the camera draws current | Log min/max at the camera connector across the failure window |
| 2 | Thermal trip at the serializer or capture-card deserializer | Die temperature crosses its trip point after sustained streaming | Point a fan at camera and card; a much later failure confirms heat |
| 3 | Marginal contact in this camera's connector or tail | A half-seated or oxidised contact opens further as the parts expand | Reseat or replace the connector; measure loop resistance cold and hot |
| 4 | Stale enumeration on the host | Not a cause, but it reports green after the camera is gone | Run detection twice back-to-back; power-cycle the camera between probes |
| 5 | Camera hardware fault | A failing regulator or cracked joint fails warm no matter the feed | Bench-supply test at room temperature; failure here is the return signal |
The never-detected-at-boot version of this problem — the camera absent from the very first probe — is a different hunt, and the guide to GMSL camera not detected: check capture-card power and cabling covers it. USB depth cameras die the same way when a second stream loads the port, as the guide to depth camera disconnects when the IR stream starts shows.
Measure the supply rail while it streams
Set a meter with a min/max function, or a scope, across the camera's power input at the camera side of the harness, and record through the failure window. A 12 V GMSL2 camera feed is healthy when it holds within about ±5% of nominal while streaming: 11.4 to 12.6 V at the camera. Ignore any reading taken before the stream starts — an unloaded rail tells you nothing, because the stream is the load that pulls a marginal feed down.
Read the outcome against the rail. A link that drops while the rail holds above 11.4 V is not a power problem — the frame grabbers card or the camera tripped on heat. A drop that coincides with the rail dipping below 11.4 V is your cause, and the next section sizes it.
Pull the logs while you reproduce. Read the kernel log with the privileges the tool needs, or it comes back with an Operation not permitted error and tells you nothing. In the capture daemon's log, watch for the port opening followed by a frozen-camera report for this camera; in the capture card's diagnostics, watch the per-port link-lock status through warm-up. A link that unlocks at the 20-minute mark with a steady rail marks a thermal drop at the deserializer rather than the feed.
Worked example: a 4 W camera on a 3 m coax feed
This arithmetic decides whether your feed holds. The 12 V nominal feed and its ±5% streaming tolerance are the design limits; the load, run length and resistance below are illustrative inputs, and you substitute your own.
- Nominal feed: 12 V, the usual GMSL camera rail. Allowed drop: 5% × 12 V = 0.60 V, the bottom of the 11.4 to 12.6 V band at the camera.
- Camera load: 4 W, illustrative — compact GMSL stereo modules commonly land in this range; use your camera's figure.
- Run: 3 m with a measured loop resistance of 0.6 Ω including both contacts. Measure yours by shorting the power pair at the camera end and reading ohms from the host end.
- Copper resistance rises about 0.39% per °C, so a hot run is a higher-resistance run.
The current is 4 W ÷ 12 V = 0.33 A. As built, the drop is ΔV = 0.33 A × 0.6 Ω = 0.20 V, so the camera sees about 11.8 V: inside the band, with 0.60 − 0.20 = 0.40 V of margin.
Now age the contact. Oxidation or a half-seated connector raises the loop to 2.2 Ω, and the drop becomes 0.33 A × 2.2 Ω = 0.73 V — 6.1% of nominal, so the camera sees 11.27 V and sits below the 11.4 V floor. Warm that same run by 40 °C and resistance rises by roughly 0.39% × 40 ≈ 16%, from 2.2 Ω to 2.55 Ω. The drop is then 0.33 A × 2.55 Ω = 0.84 V, or 7.0% of nominal, and the margin is gone entirely.
Decision: at 0.33 A, total loop resistance must stay under 0.60 V ÷ 0.33 A ≈ 1.8 Ω. Under that figure the feed is not the suspect. Over it, shorten the run, step up the conductor or fix the contacts before you blame the camera — a worn contact fails worse hot, which is exactly the 20-to-30-minute dropout.
Thermal checks: find what is running hot
Split heat from power with two observations. First, read the board and die temperatures your kernel already exposes in its thermal zones (the standard /sys/class/thermal interface) before the first stream and again at the failure. A deserializer that climbs 20 to 30 °C across the window while the rail held steady marks the heat path. Second, aim a small fan at the camera head and the capture card and rerun the soak. A failure that retreats well past an hour confirms heat; one that holds its schedule with a steady rail sends you back to the power path.
The two paths feed each other, which is why the timing drifts from run to run. The same heat that trips a die also raises cable resistance at 0.39% per °C, so a marginal feed degrades fastest in a hot rig. Keep the camera body inside its rated ambient with margin, give the capture card airflow, and do not seal a GMSL head into a pocket of stagnant air.
Isolate the fault in one hour
- Run both cameras together for 45 minutes. If only this camera drops, the fault is on its path. If both drop together, suspect the card's shared supply or its deserializer, not the camera.
- Bench-feed the suspect camera: 12.0 V from a bench supply into its documented power input, streaming for 45 minutes at room temperature. A camera that dies here, cold and well-fed, is a warranty return; stop debugging the link.
- Log the rail at the camera connector with min/max through a failing run and note the value at the instant of the drop: below 11.4 V confirms sag, above it clears the feed.
- After the next failure, run detection twice back-to-back, then power-cycle only the camera. If detection returns without touching the host, the link latched down — consistent with a brown-out or thermal trip.
- Repeat the soak with a fan on the camera and the card. A failure that retreats past an hour confirms heat; one that keeps its schedule points back at the camera.
A sagging rail at the drop, a fan that postpones the failure, or a cold failure on a clean bench supply — those three outcomes cover essentially every rig, and each names its own fix.
Fixes that hold, and prevention
Fix the cause the tests named. For a sagging feed: shorten the run or step up the conductor, reseat or replace the connector, and where the host rail cannot hold the band, fit a local regulator that delivers 12 V at the camera regardless of the host. The same logic argues for feeding cameras from a regulated supply rather than a shared rail, as the guide to camera power: USB versus external 5 V lays out. For a thermal trip: add airflow over the capture card and a heatsink where the head runs hot. For a latched link: cycle the camera's power, and where the capture card supports per-port power control, let the production code cycle a frozen port automatically.
Prevent the repeat with an acceptance soak: two hours at maximum frame rate with the rail's min/max logged, done once at integration time while the rig is on the bench. Write the pass rule down — 11.4 to 12.6 V at the camera while streaming — so the next harness change is judged against a number, not against "it worked yesterday". In production, log the link state so a frozen camera announces itself instead of quietly serving a stale frame. On moving axes, judge every cable by its drag-chain rating, not by whether it fits; the camera cables range is filtered by length and type for that reason.
When the usual answer is wrong
A failure that reproduces on a bench supply at room temperature is not a link problem and deserves no further link debugging: return the camera under warranty. A drop that appears only when a second stream starts is a power-budget problem at the capture card, and the guide to GMSL camera power budget: capture card input and idle current walks that measurement. Green screens, striped frames or a lock LED that never lights are link-training faults with their own playbook, not thermal dropouts: see debugging the GMSL2 SerDes link step by step and GMSL lock LED not lighting: I2C works but no video arrives. For a link that never comes up at all, start at GMSL camera not streaming over the serial link: isolate the fault.
When the camera itself is condemned and you can re-platform the slot, Ethernet with power on the same cable is the durable alternative. A dual-port PoE NIC streams and feeds two PoE GigE cameras from one card; if the embedded board has no free slot for it, the same card runs in a host built around industrial mini PCs. Cable a moving GigE run with a drag-chain rated, high-flex cable — the 3 m GigE camera cable with screw locks is built for exactly that. If you are choosing a replacement 3D camera as well, start from the 3D sensors range.
- Interface
- GigE
- Ports
- 2 ports
If you send us the streaming current, the run length and the min/max rail log from a failing pass, we will check the budget with you before you order. Build the replacement station from the vision configurator or reach us through the contact page; the 3D topic page collects the rest of the integration guides.
Questions
Why does the diagnostic pass once and then fail on a second consecutive run?
After a drop, the first detection run can still report the pre-failure result from the host's cached enumeration; a second consecutive run forces a fresh probe and shows zero devices. Judge nothing on a single pass: run the probe twice, then power-cycle the camera only and run it again. If the camera reappears without a host reboot, the link latched down rather than the driver failing.
What supply voltage should I see at the camera connector while it streams?
For a 12 V feed, 11.4 to 12.6 V, measured at the camera side while it streams. Only a reading taken under streaming load counts, because the stream is what pulls a marginal rail down. Log min/max through the failure window; a dip below 11.4 V at the moment of the drop is the sag signature, while a steady rail redirects you to heat.
Does a longer camera cable make a warm-up dropout more likely?
Yes. Drop scales with run length: at the worked example's 0.33 A, every metre of 0.2 Ω loop cable adds roughly 0.07 V of sag. The 3 m example that held 0.40 V of margin loses it twice over at 6 m with the same contacts. Keep total loop resistance below about 1.8 Ω at that current, and re-measure rather than assuming a longer harness inherits the old margin.
Can low voltage corrupt the camera's configuration?
A brown-out can reset the serializer while the host keeps its register settings, so the link comes back untrained or half-configured until the whole chain is power-cycled. That is why a camera that froze usually needs its power fully removed — not just an application restart — before detection works again, and why a reboot of the host restores it.
How hot can a machine-vision camera run before I should add cooling?
Most machine-vision cameras carry an ambient rating around 0 to 50 °C, with wide-temperature variants rated higher, so read the figure printed for your model. Practical rule: run a 30-minute soak and check the camera body against that limit with margin; if it approaches the rating, add airflow or a heatsink before the station goes on the line. The deserializer chip tolerates more than the assembly, but the camera's rating is the one that counts.

