Skip to main content

Duty Cycle

· 4 min read
Ben Allfree
MeshEnvy Founder

A year ago I could not have told you what duty cycle meant. After spending time in the radio world, I understand it as the amount of time a radio is allowed to transmit per hour. A 50% duty cycle means the radio may use up to thirty minutes of transmit time in that hour. That is a ceiling, not a promise. If there is nothing to send, nothing goes on the air and no budget is consumed.

That distinction matters on a sparse mesh. A repeater on a remote ridge with little else around might reasonably run at 100% duty cycle because it is not competing with neighbors for airtime. In a busy urban pocket with many nodes already sharing spectrum, you might choose 10% or lower to be a better neighbor. In much of the EU 868 MHz band, regulatory limits are often 1%, which works out to about thirty-six seconds of transmit time per hour. MeshCore also documents 10% as a reference point for some EU channel plans. MeshEnvy operates on US915 in Nevada, so our day-to-day defaults follow US practice and MeshCore stock settings, not European band rules. You are still responsible for matching duty cycle to your jurisdiction and channel plan.

Duty cycle defines a maximum. It does not set a minimum transmit rate. You can leave duty cycle at 100% and stay quiet all hour if the queue is empty.

The limit also applies hop by hop. One example we are researching is OTA firmware delivery over the mesh, Mota for short. That workflow needs a computer and a USB radio linked to the host. The host must reach a repeater before anything leaves the bench. If the bench radio runs at 100% duty cycle but the only repeater it can hear is capped at 50%, the effective limit is still 50%. What we do in practice is run those bench radios at 1% to 10% duty cycle so updates trickle across the mesh slowly. That makes it unlikely anyone would notice unless they were already watching traffic logs for patterns. In most cases the effect on end users is no worse than ordinary contention when many people try to send at once.

Duty cycle should not be confused with throttling. Throttling governs the pacing of messages over a short window, not the hourly airtime budget. If you throttle to one message per second and each message takes one second on the air, you are effectively transmitting continuously. If you throttle to one message every five seconds and each message still takes one second, you are closer to a 20% duty cycle spread across the hour instead of burning the whole budget in one burst. MeshCore blends duty cycle and throttling in one mechanism: short bursts are allowed, but not so large that they consume the entire hourly allowance at once. At 1% duty cycle, you only have about thirty-six seconds per hour to spend, so the firmware tries to spread transmission opportunities across the window rather than letting you dump them all upfront.

None of this is a perfect science from the outside. Changing duty cycle without measuring the mesh is guesswork. It takes monitoring and instrumentation to see whether a given setting improves traffic patterns or makes them worse. A high duty cycle does not automatically mean someone is flooding the band.

MeshEnvy fleet repeaters use the MeshCore default 50% duty cycle. Bench radios we use for slow OTA work run at 1% to 10% when we want a gentler drip. If you are experimenting on your own hardware, start from get dutycycle on the radio, watch how the mesh behaves, and adjust with your neighbors in mind.