Designing a Thread mesh that holds up

Range comes from mains-powered devices, not from buying a bigger border router. Here is the arithmetic nobody prints on the box.

The three numbers that define your mesh#

NumberWhat it isWhat it means for you
32Active routers, also called Mesh Extenders in Thread 1.4 language, per networkYour relay budget. Firmware aims to keep the count in a band (OpenThread targets roughly 16 to 23) rather than promoting everything eligible
124Maximum route cost, which is 31 hops at a link cost of 4Hop count is not your limit. Link quality is. One bad link costs what several good ones do
511Protocol ceiling on children per parent, from the 9-bit child IDTheoretical only. Real firmware allows far fewer, typically tens, and vendors rarely publish the figure

Around 250 devices per network is the practical guidance you will see in the field. Very few homes get near it. What homes do hit, regularly, is a shortage of well-placed routers.

Routers and end devices, and why the difference is invisible#

Thread assigns roles automatically. Nothing in Apple Home, Google Home or the Alexa app lets you say "this bulb should be a router". The rules the firmware follows:

This is the single biggest practical difference from Zigbee, where the same split exists but the coordinator's direct-child capacity is the usual bottleneck. In Thread, the bottleneck is router placement.

Why route cost beats hop count#

Thread picks paths by cost, not by distance. Each link between routers is assigned a cost based on link quality, and path cost is the sum. The worst usable link costs 4. Since the maximum route cost is 124, the theoretical ceiling is 31 hops of the worst possible links.

You will never see that in a house. What you will see is this: a device two rooms away over one poor link can be worse off than a device four rooms away over three excellent links. When someone says "it should work, it is only one wall", they are counting hops. Thread is counting quality.

The design conclusion is counterintuitive and important: more short hops beat fewer long ones. A Thread plug halfway down a hallway usually improves things more than moving the border router closer to the problem device, because it converts one marginal link into two good ones.

Where to put things#

Border routers#

Two or three in a typical US single-family home, spread out, ideally on Ethernet. They must all be on the same Thread network to help each other, which is a credential problem, not a hardware one. See why you have three Thread networks and the hardware directory.

Placement rules that matter more than they sound: not in a media cabinet, not behind a TV, not inside a metal rack, not stacked next to a Wi-Fi access point or a USB 3.0 enclosure, and not in the basement if the devices are upstairs.

Router-capable devices#

Think in terms of the path from every battery device to a border router. Each smart plug, bulb, wired switch or mains-powered panel is a candidate relay. Nanoleaf's mains-powered panels, for example, act as Thread routers and extend the mesh.

Practical placement heuristics:

Battery devices#

Place them for their job, not for the mesh, because they contribute nothing to it. But a sleepy device with a weak parent link burns battery retrying, so poor radio conditions are a plausible cause of fast drain alongside a short reporting interval. Sensors covers the arithmetic.

Growing past the easy stage#

Most homes go through the same three phases.

Phase 1, 1 to 10 devices. One border router, everything talks directly to it. It works and nothing you read here matters yet.

Phase 2, 10 to 40 devices. The far corners get flaky. This is where people buy a second border router, which helps, or a Wi-Fi extender, which does nothing. What you need is mains-powered Thread devices in the middle, and two smart plugs cost less than another Apple TV.

Phase 3, 40+ devices. Now the router budget matters. You have plenty of router-eligible hardware and firmware is choosing which ones to promote, so near the 32 active router limit, adding more mains-powered devices stops helping. Splitting by radio is the honest answer at that scale: keep Thread for low latency and battery devices, and move bulk lighting to Zigbee or wired switches. Which radio for which job has the split.

Channels: the part that undoes good placement#

Thread and Zigbee share the IEEE 802.15.4 physical layer, and both sit in the 2.4 GHz band alongside Wi-Fi, Bluetooth and microwaves. A perfectly designed mesh on a congested channel performs worse than a sloppy one on a clean channel.

The math: 802.15.4 center frequency is 2405 + 5 x (channel - 11) MHz, occupying about 3 MHz to the first nulls. A 20 MHz Wi-Fi channel occupies its center plus or minus 10 MHz. Against the three non-overlapping US Wi-Fi channels, Wi-Fi 1 covers 802.15.4 channels 11 to 14, Wi-Fi 6 covers 16 to 19, and Wi-Fi 11 covers 21 to 24.

That leaves 15, 20, 25 and 26 outside all three, but only channel 26 has real separation: 18 MHz from the Wi-Fi 11 center and 8 MHz above its upper edge. Channel 15 sits 2 MHz below the Wi-Fi 6 lower edge and inside a legacy 802.11b channel 1 mask. Channel 20 is squeezed 2 MHz from both Wi-Fi 6 and Wi-Fi 11.

IEEE 802.15.4 (Zigbee and Thread) 2.4 GHz channels against the three non-overlapping US Wi-Fi channels. Center frequency = 2405 + 5 x (channel - 11) MHz. Wi-Fi occupancy assumes a 20 MHz channel, center +/- 10 MHz.
802.15.4 channelCenter frequencyOccupied (approx)Against Wi-Fi 1/6/11Separation
112405 MHz2403.5 to 2406.5 MHzOverlaps Wi-Fi 17 MHz to nearest of Wi-Fi 1/6/11
122410 MHz2408.5 to 2411.5 MHzOverlaps Wi-Fi 12 MHz to nearest of Wi-Fi 1/6/11
132415 MHz2413.5 to 2416.5 MHzOverlaps Wi-Fi 13 MHz to nearest of Wi-Fi 1/6/11
142420 MHz2418.5 to 2421.5 MHzOverlaps Wi-Fi 18 MHz to nearest of Wi-Fi 1/6/11
152425 MHz2423.5 to 2426.5 MHzBetween channels, thin margin12 MHz to nearest of Wi-Fi 1/6/11
162430 MHz2428.5 to 2431.5 MHzOverlaps Wi-Fi 67 MHz to nearest of Wi-Fi 1/6/11
172435 MHz2433.5 to 2436.5 MHzOverlaps Wi-Fi 62 MHz to nearest of Wi-Fi 1/6/11
182440 MHz2438.5 to 2441.5 MHzOverlaps Wi-Fi 63 MHz to nearest of Wi-Fi 1/6/11
192445 MHz2443.5 to 2446.5 MHzOverlaps Wi-Fi 68 MHz to nearest of Wi-Fi 1/6/11
202450 MHz2448.5 to 2451.5 MHzBetween channels, thin margin12 MHz to nearest of Wi-Fi 1/6/11
212455 MHz2453.5 to 2456.5 MHzOverlaps Wi-Fi 117 MHz to nearest of Wi-Fi 1/6/11
222460 MHz2458.5 to 2461.5 MHzOverlaps Wi-Fi 112 MHz to nearest of Wi-Fi 1/6/11
232465 MHz2463.5 to 2466.5 MHzOverlaps Wi-Fi 113 MHz to nearest of Wi-Fi 1/6/11
242470 MHz2468.5 to 2471.5 MHzOverlaps Wi-Fi 118 MHz to nearest of Wi-Fi 1/6/11
252475 MHz2473.5 to 2476.5 MHzBetween channels, thin margin13 MHz to nearest of Wi-Fi 1/6/11
262480 MHz2478.5 to 2481.5 MHzClear of Wi-Fi 1/6/1118 MHz to nearest of Wi-Fi 1/6/11

Two caveats on channel 26. Many radios reduce transmit power there in North America, because its upper edge approaches the FCC restricted band edge at 2483.5 MHz. And Bluetooth advertising channel 39 sits at 2480 MHz, exactly on top of it. Even so, Home Assistant's documentation recommends channel 26 in heavy Wi-Fi interference environments, and ChannelAccessFailure in OpenThread logs is the signal that your current channel is too busy to transmit on.

If you run Zigbee and Thread together, put them on different channels from each other and from Wi-Fi. A workable US plan is Wi-Fi on 1, Zigbee on 20, Thread on 25 or 26. The channel planner computes this for your Wi-Fi channels, and 2.4 GHz interference explains the aggressors, including the USB 3.0 noise problem that ruins USB-attached radios plugged into the wrong port.

A worked example#

A 2,400 square foot two-story house with a detached garage, running Apple Home.

LocationHardwareRole
Living room, on EthernetApple TV 4K (Wi-Fi + Ethernet)Border router, Leader candidate
Upstairs hallwayHomePod miniSecond border router
KitchenThread smart plugRouter, bridges ground floor to the back of the house
Upstairs landingThread smart plugRouter, covers bedrooms
Mudroom, nearest the garageThread smart plugRouter, the hop toward the detached structure
ThroughoutContact, motion and leak sensorsSleepy end devices, one parent each

Three plugs, roughly the price of one more streamer, and they do more for coverage. If the garage still will not hold a link, that is the point to stop fighting 2.4 GHz and use Z-Wave, where the US band at 908.42 MHz penetrates far better and Z-Wave Long Range reaches a detached structure in a single star hop.

Signs your mesh design is the problem#

None of those point to a broken device. They point to a topology with no redundancy. If instead your devices are unreachable from the app but respond to voice, that is a discovery problem, and Thread troubleshooting covers it in the right order.

How many devices can a Thread network support?

The commonly cited practical figure is around 250 devices per network. The hard protocol constraints are 32 active routers and a 9-bit child ID that allows 511 children per parent, though real firmware supports far fewer children, typically tens. In homes, the binding limit is almost always the number of well-placed mains-powered routers, not the address space.

What is the 32 router limit in Thread?

Thread allocates router IDs from a space of 32, so a single Thread network can have at most 32 active routers, called Mesh Extenders in Thread 1.4 language. Devices that are eligible but not needed stay as router-eligible end devices and can be promoted later. OpenThread aims to keep the active count in a band well below the maximum rather than promoting everything it can.

Do Thread battery devices extend the mesh?

No. Battery devices are sleepy end devices: the radio is off between polls, so they cannot forward traffic for anyone. Only mains-powered devices relay. This is why adding ten battery sensors makes a network busier without making it stronger, and why one well-placed smart plug can fix a dead corner.

How far does Thread reach?

Roughly 10 to 20 meters per hop indoors, depending on construction, which is normal for a 2.4 GHz 802.15.4 radio. Total reach comes from chaining hops through mains-powered devices. Foil-backed insulation, plaster with metal lath, brick and appliance metalwork cost far more than drywall. Thread is short range with relays, not long range.

Does adding a second border router help Thread coverage?

Yes, if it joins the same Thread network. It adds another always-on radio and removes a single point of failure. If it forms its own network instead, which is the default when it belongs to a different ecosystem, it splits your devices across two weaker meshes. Check the network name in diagnostics after adding one.

Which Thread channel is best?

Channel 26 has the most separation from US Wi-Fi channels 1, 6 and 11, sitting 8 MHz above the Wi-Fi 11 upper edge, and Home Assistant recommends it in heavy interference. Two caveats: many radios reduce transmit power on 26 in North America, and Bluetooth advertising channel 39 sits at the same 2480 MHz. Channel 25 is a reasonable alternative.

Can Thread and Zigbee run in the same house?

Yes, and many homes do. They share the same 802.15.4 physical layer, so give them different channels from each other and from your Wi-Fi. A workable US plan is Wi-Fi 1, Zigbee 20, Thread 25 or 26. Note that some hardware, including the Home Assistant Connect ZBT-2, runs either Zigbee or Thread but not both at once.

Primary sources

Specification and vendor documentation we checked while writing this page. Where a claim depends on firmware behaviour rather than a published spec, the page says so inline.