What the 10% S-MAC Duty Cycle Actually Saves

What the 10% S-MAC Duty Cycle Actually Saves

Ada re-derives this chapter’s own numbers step by step, at full precision

foundations
math-foundations
calculation-audit
wsn
Ada ADA · CALCULATION AUDIT

What the 10% S-MAC Duty Cycle Actually Saves

S-MAC lets a node sleep most of the time, then wake for a 200 ms listen window inside each 2 second frame — a 10% duty cycle, with the radio off for the remaining 1.8 seconds. The chapter pairs that schedule with classic TelosB-style current traces of about 20 mA radio-on versus about 1.8 mA MCU-on/radio-off, noting that idle listening may cost almost as much as useful transmission. This audit asks the question that pairing invites: what average current does the 10% S-MAC schedule actually deliver, and how much of the saving depends on that 1.8 mA sleep figure being real?

Companion to the chapter WSN Duty Cycling — every number here comes from that chapter.

See the relationship before changing it

The figure reads from left to right. The blue card is radio-on duty cycle. The middle card applies this page's rule. The green card is average current. Walk the arrows once: set the input, apply the rule, then read the result with its unit.

The retained audit below checks several chapter fixtures. This model keeps those stated values fixed and changes only radio-on duty cycle, so the numeric fixture does not switch without explanation.

Radio-on duty cycle changes average current An input card leads through the rule average = 20 mA x duty + 1.8 mA x (1 - duty) to the average current result. INPUT PAGE INPUT APPLY THE RULE predict calculate check units OUTPUT RESULT
Walk the arrows. Sleep current sets a floor, so duty cycling cannot save the full radio-on current.

Derive the baseline in four named moves

  1. 1

    Name the input. The chapter baseline is 10 %.

  2. 2

    Name the relationship. average = 20 mA x duty + 1.8 mA x (1 - duty)

  3. 3

    Substitute with units. 20 x 0.10 + 1.8 x 0.90 = 3.62 mA

  4. 4

    Read the result. Keep the unit beside the value. Use it only inside the technical boundary on this page.

Predict, then change radio-on duty cycle

Try Predict the direction of average = 20 mA x duty + 1.8 mA x (1 - duty). Test another radio-on duty cycle, then compare average current.

10 %
Chapter baseline
Average current

Observe Sleep current sets a floor, so duty cycling cannot save the full radio-on current. Reset radio-on duty cycle to 10 and compare average current.

Explain Sleep current sets a floor, so duty cycling cannot save the full radio-on current.

Check yourself

What should you do before trusting a moved-control result?
Answer: Predict its direction, apply the shown relationship, keep the units, and reset to the worked baseline.
What does this small model leave out?
Answer: Only radio-on duty cycle moves here. Field effects named in the technical boundary stay fixed.
Try

Use a 200 ms listen interval inside a 2 s S-MAC frame with 20 mA radio-on and 1.8 mA radio-off current.

Observe

The schedule is 10% on and 90% off; its weighted average is 3.62 mA, about 5.5× below an always-listening 20 mA node.

Explain

Duty cycling lowers average current by replacing long receiver-on intervals with a lower-current state; the saving is therefore governed by both time fraction and the real off-state floor.

Ada: This section pairs two facts I can check together: the S-MAC schedule (200 ms listen in a 2 s frame) and the TelosB current scale (~20 mA radio-on versus ~1.8 mA MCU-on/radio-off, with idle listening costing almost as much as transmitting).

  • Duty cycle: 200 ms / 2000 ms = 0.10, the chapter’s 10%; the radio is off for 2000 - 200 = 1800 ms = 1.8 s.
  • Current contrast: turning the radio off drops the draw by 20 / 1.8 = 11.1x. And because listening (~20 mA) is nearly the transmit current, a receiver that stays awake pays almost a full transmit’s worth of current for zero delivered bytes.

To price the schedule, take the 1.8 s off-window at the chapter’s own 1.8 mA MCU-on/radio-off figure (an illustrative upper bound – a true deep-sleep mode draws far less):

  • I_avg = (0.2 s x 20 mA + 1.8 s x 1.8 mA) / 2 s = (4.0 + 3.24) / 2 = 3.62 mA.

Against a node that simply listened the whole frame at 20 mA, that is already a 20 / 3.62 = 5.5x reduction – and a real sleep floor would push it lower still. The design meaning is that the 90% radio-off fraction, not a faster transmit, is what turns a 20 mA always-listening radio into a milliamp-scale average; but the win only materializes if the “off” state is genuinely low-current, which is why the chapter insists the sleep floor be measured, not assumed.

Every number above is taken from the chapter’s own material and re-derived step by step.

Technical boundaries: This two-state upper-bound model omits synchronisation packets, wake transitions, transmit and receive differences, collisions and retries, clock drift, MCU deep sleep, regulator loss, battery voltage, and leakage.

Ready: work the ledger before checking it.