A serial camera at the far end of the line, a coordinator by the control room, and a plan to stretch the mesh another fifty metres: a common build, and images are what break it. A Zigbee mesh moves telemetry well and moves camera frames badly, and the difference is arithmetic, not tuning. You get the transfer-time calculation for a serial camera on a mesh, the reason extra routers extend range without adding bandwidth, and the three links that carry image data: a wired GigE run, a short USB3 run, or a point-to-point wireless bridge. You leave with a reusable byte budget, one worked example, and a parts list for the wired alternative.
What a Zigbee mesh is built to carry
Zigbee runs on the IEEE 802.15.4 radio. Its 2.4 GHz physical layer moves 250 kbit/s raw, and everything above it was designed for small, infrequent packets: sensor readings, switch states, meter pulses. Three roles divide the work — the coordinator forms the network, routers relay frames and extend coverage, end devices sleep between transmissions. Nothing in that design adds capacity when you add nodes. Every router you place shares the same channel and the same 250 kbit/s air rate.
Put the payloads next to the pipe and the mismatch is obvious:
| Payload | Size | Time at 11,520 byte/s |
|---|---|---|
| Telemetry packet | 50 bytes | under 5 ms |
| Compressed JPEG snapshot | 20 kB | 1.7 s |
| 1 MP mono raw frame | 1,048,576 bytes | 91 s |
| 5 MP raw frame | about 5 MB | about 7.6 min |
The last two rows are the problem. A network sized for telemetry has no room for them, at any range.
Moving a 1 MB frame from a serial camera at 115200 baud
Inputs, each with its source:
- Frame: 1,048,576 bytes — a 1024 × 1024, 8-bit monochrome raw frame (1024 × 1024 pixels × 1 byte), the smallest full inspection frame a serial camera typically produces.
- Serial link: 115,200 baud with 8-N-1 framing, the usual default on serial camera modules; 8 data bits plus start and stop give 10 bit periods per byte.
- Radio ceiling: 250,000 bit/s raw on the 802.15.4 air interface — a bound nothing in the mesh can exceed, whatever the serial side does.
The rule in words: transfer time equals frame bytes divided by the bytes per second of the slowest segment in the path.
Result: 91 seconds per frame on the serial link — and 34 seconds even if you deleted the serial link and fed the radio at its perfect raw rate. Real meshes land well above that floor: frame overhead, acknowledgements, retries and every extra hop take their share, and a router forced to relay a million-byte burst can drop frames when its buffer fills.
Decision, with the threshold: divide your cycle time in seconds into 11,520 — that is the byte budget per frame. A 2 s cycle allows 23 kB, a compressed thumbnail. A 1 MB raw frame fits only if one image every 90 s counts as fast enough, which no production line accepts. Below about 11 kB per second of cycle time the serial link survives; above it, move the camera to a link rated in megabits.
Adding a router extends range, not bandwidth
Yes, you can place a router halfway, put every module on the same PAN ID, and frames will route through it automatically — mesh routing finds the path without per-frame configuration. Coverage doubles because the route now contains two radio links.
Capacity does not double; it stays one shared 250 kbit/s pipe. Each hop is store-and-forward: the middle router receives the whole frame, queues it, then retransmits it. Every hop adds queueing delay and one more place a frame can be lost, so a two-hop route drops frames more often than a one-hop route with identical radios. A large camera transfer is precisely the traffic a telemetry-sized mesh handles worst: the burst fills the relay's buffers, later frames are discarded, and the transfer has to restart. Range is a coverage question, and mesh answers it. Bandwidth is a shared-pipe question, and mesh makes it worse with every node.
Multiple cameras under one coordinator
Set one module as coordinator and every camera-side module as a router, all on one PAN ID, and the coordinator collects from all of them — addressing and routing are automatic. The trap sits at the coordinator: all camera traffic funnels into that single point, so per-camera throughput falls with every camera added.
Budget it with the same number. Four cameras each sending one 1 MB frame per minute need 4 × 91 s = 364 s of serial time inside every 60 s period — six times over budget before the first radio hop. The rule to apply: total bytes per second across all cameras must stay under 11,520 byte/s on a serial link, and the honest shared ceiling is the radio's 31,250 byte/s raw rate. A network that happily serves fifty sensor nodes fails with two cameras, because fifty nodes moving tens of bytes each never approach the pipe, while one camera's frame occupies it for a minute and a half.
When a Zigbee link still earns its place
Two patterns fit, and only these:
- Event snapshots. One compressed image when an alarm fires. A 20 kB JPEG takes 1.7 s at 11,520 byte/s, so even several alarms a minute leave the link idle almost all the time. Raw frames and continuous streams never fit.
- Results, not pixels. Run the inspection on the camera and send a pass/fail plus a few measurement values — bytes instead of megabytes. A smart camera exists for exactly this: the image never leaves the device.
What carries image data instead
1. A wired GigE run — the default answer. 1000BASE-T over Cat 5e or better reaches 100 m per segment and moves a 1 MB frame in under 10 ms on the wire, so one switch hop covers most plants. Keep long runs shielded and properly terminated: a marginal link announces itself as packet-size and retransmission errors long before images stop entirely, and the GigE packet-size failure at reduced link rate is worth reading before you pull cable. For several cameras, place a vision controller beside them and run one GigE trunk back to the host.
For inspection at the far end, use a camera that does the work in place and ships only results across the network:
- Interface
- GigE
- Resolution
- 6-10 MP
- Sensor format
- 1/2.4"
- Shutter
- Rolling
The MV-SC5060XM-08M-WBN is a 6 MP mono smart camera on GigE with an 8 mm M12 lens — the image stays on the device. Where the check is simpler (presence, label, orientation), a self-contained vision sensor with its own light is leaner still:
- Interface
- GigE
- Resolution
- Up to 3 MP
2. USB3 for short runs. Inside a machine or across a cabinet, USB3 gives camera-class bandwidth over a passive run of about 3 m; beyond that, switch to GigE. Plan the host side too — how many cameras one machine streams before drops depends on its ports and other devices, and the USB camera capacity guide gives the method.
3. Point-to-point wireless for the gap a cable cannot cross. Where trenching is out, use a link rated in megabits — a 5 GHz bridge or a high-throughput point-to-point radio — as a single hop, with one link per camera or a per-camera Mbit/s budget. Keep the mesh out of the image path entirely. The UAV wireless-link latency and wired-fallback guide works through this exact trade.
For a board-level camera you embed in your own housing at the far end, two picks cover the common wired cases:
- Sensor format
- 1/2.9"
- Lens mount
- M12
- Sensor format
- 1/1.8"
- Lens mount
- C-mount
The MV-CB016-10GM-M-W suits long GigE runs from a compact 1.6 MP mono module with an M12 mount. The LS-BCM-0003 covers short USB3 runs at up to 120 fps. The board-level camera selection guide walks the sensor, mount and interface choices in between.
If serial is unavoidable: keep it point-to-point, keep it short, and move compressed stills one at a time. A clean serial link carries a JPEG capture reliably where a mesh cannot — see capturing camera JPEG data over a clean serial link.
Checks before you commit
- Byte budget first. Frame bytes × frames per cycle × cameras, divided by 11,520 byte/s (serial) or 31,250 byte/s (radio raw ceiling). Above 1, the link fails; no tuning recovers it.
- Measure the serial link. Send a file of known size and time it. The real rate lands below the nominal baud figure once framing and handshaking are counted.
- Count the hops. Each relay adds delay and a drop risk; budget as if every hop costs a second on a snapshot.
- Question the image. If the far end acts on a pass/fail, put the inspection on the camera and cross the narrow link with results only.
To size the replacement, start at the camera finder, build the run in the camera configurator, or contact us for a link-budget review.
Questions
Can a Zigbee mesh stream live video from a camera?
No. Live video needs a continuous stream rated in megabits per second, while the 802.15.4 radio offers 250 kbit/s raw before protocol losses. Even a small compressed stream at a few frames per second exceeds what the whole network can carry, and the shortfall grows with every hop. Video belongs on Wi-Fi, a point-to-point bridge or a cable; treat Zigbee as a channel for events and results.
How many cameras can one Zigbee coordinator collect from?
As many as the network can address — dozens — but node count is not the real limit. Every camera's traffic funnels into the single coordinator, so the aggregate byte rate is what matters. Two cameras each sending 1 MB raw frames once a minute already demand 182 seconds of transfer time per 60-second period, which no arrangement of modules can fix.
What bandwidth moves one camera frame per second?
Multiply frame bytes by eight. A 1 MB raw frame needs about 8.4 Mbit/s — roughly 34 times the 250 kbit/s raw Zigbee rate — and even a 100 kB compressed frame needs 0.8 Mbit/s. Any per-second image duty therefore needs a link rated in megabits: GigE, USB3 or a 5 GHz point-to-point bridge, not a telemetry mesh.
Can compressed JPEGs make a serial Zigbee link usable?
For event-triggered stills, yes — that is the one pattern that fits. A 20 kB JPEG takes about 1.7 s at 115200 baud and roughly 0.6 s at the radio's ideal raw rate, so a snapshot on an alarm is realistic. Sustained transfer is not: acknowledgements, retries and mesh hops push real throughput well below the ideal, so plan on the serial figure.
How do I join several camera routers to one coordinator?
Give each module its role — one coordinator, the rest routers — and join them all to the same PAN ID. Routing between modules is then automatic, and a router placed between two distant nodes extends the route. That solves addressing and range; it does nothing for bandwidth, so size the image traffic as though every frame from every camera passes through one pipe.



