Is a mesh the answer for a flexible / expandable network with low level one way traffic and no internet?

So I've opened a can of brain worms and wondering if a mesh network would be the answer for my configuration, any advice to keep me on track would be great!

Currently I am using an AP to send opc data from my laptop to multiple clients running a websocket to receive and transmit the data over usb to an led driver. All this data comes from the latop, nothing is sent back from the clients.

The only other transmission is from an ipad wirelessly sending midi data to the laptop - often these are the furthest from each other in the network.

This system is used in various venues so needs to be flexible, but once it is setup it remains the same and nothing apart from the ipad moves for the duration of the event. I have been using TP WRN703Ns as the clients for their size and price and looking at the GL.iNet GL-AR300M as an upgrade.

I am working in venues up to about 25x40m with loads of metal rigging truss but I also have some outdoor events covering much larger areas with lots of scaffold structures planned. As I'm at the beginning of getting this to work successfully I want to make sure whatever route I chose is adaptable and expandable in the future.

It sounds like a mesh network, allowing me to add extra websocket nodes would be ideal. Am I right in thinking each one would work as a repeater, expanding the distance of my network from the laptop and allow the ipad to connect at any point?

the most usual physical layout of the hardware is often basically linear with up to 4x clients and drivers.

laptop>------->AP>--------->client+led driver>------->client+led driver>------->ipad

how easy is it to manage a mesh network? from what I've read it looks like its basically plug and play as it's self-configuring once the nodes are setup.... This is vital as I wont have time to do any network debugging on site.

I really like the idea of a collection of GL-AR300M's all running my websocket I can basically plug in anywhere I need a lighting fixture and they auto connect and expand my network.... is this just a pipe dream?


Not a pipe dream at all. When you said "low bandwidth" one of the challenges of mesh on single-radio devices was eased. Laptops and iPads are generally not mesh participants (they lack the software to do so), but join APs that are connected through a mesh backhaul. Mesh-backed APs (or any "repeater" setup) requires X amount of bandwidth for the clients and another X for the backhaul. On a single-band device, that roughly halves the available throughput.

You should be able to mesh multiple GL-AR300M units (or similar) using something like 802.11s or "ad hoc" and then use a routing protocol such as batman-adv to make your deployment self-configuring (within reason). It's not something that is easy to set up with LuCI, but the config is pretty straightforward in the config files themselves.

This is an excellent use case for a mesh. You get rapid no-configuration deployment and extended range.

The 2.4 band can get slammed with interference in venues where there is a stage production, public use, etc. In a situation where reliability is paramount I'd spend a bit more to get 5 GHz.

If you want an encrypted mesh, the WR703 4/32 devices will be tight on space to install encryption support. Other than that it is very workable. Don't buy any more 4/32 devices in any case; it limits your options.

1 Like

Thanks so much for going through this with me @jeff! Literally started to get my head around custom networking over the weekend - tough learning curve, cheers for helping.

Please can you explain the mesh backhaul / mesh-backed AP. Is that the network required to have each device communicate with the others and therefore uses up some of the bandwidth?

@mk24 so far the only 5Ghz travel router i've found is the TP-LINK AC750 - at £35 vs £15 for the GL-AR300M I'm not sure I can justify it - I need at least 4 units right now...

Would it be possible to add 5Ghz nodes to the mesh at a later date and gain any benefits?

Encryption is not necessary (as far as i'm aware right now) but thanks for the heads up about the WR703s!

OK, here's an off-the-cuff description, that I hope is technically correct.

802.11 uses what I would call time slicing. At any moment in time, only one participant is transmitting. Anyone wanting to transmit waits until "clear" before transmitting. In a client-to-AP-to-wired link, if I want to send a packet, I do so:

  • Slice 1 -- I transmit my data to AP 1
  • Slice 2 -- wireless is "available" -- AP 1 is sending my data out over the wire

With a repeater or mesh on the same channel

  • Slice 1 -- I transmit my data to AP 1
  • Slice 2 -- AP1 transmits my data to AP 2
  • Slice 3 -- wireless becomes available again -- AP 2 is sending my data out over the wire

So in the first case, one packet, one slice of airtime. In the repeater case, one packet, two slices of airtime

With a dual-radio setup (different than MIMO or multiple antennas), AP 1 on 2.4 GHz (for example) is receiving my data in slice 1, but then using 5 GHz to send it to AP 2, so AP 1 is "free" to receive another packet on 2.4 GHz during slice 2.


Another complication of single-radio devices for AP and mesh at the same time is that the mesh needs to be on the same channel for all nodes that connect. That means the APs for clients are all on the same channel as well. For low-bandwidth systems, this likely won't be a big problem. For high-bandwidth situations, having all APs on the same channel will likely reduce channel capacity as each interferes with the others on the same channel.

Edit 2:

The GL.iNet AR750, while not as nice as its replacement, the AR750S, is available on Amazon UK right now at £42. At that price, it might be worth considering. I have a couple of the newer AR750S units and am very happy with them.

thanks Jeff this is super clear and really helpful!

I'm assuming my use is very low bandwidth but is there a simple way for me to test this?

Unfortunately I cannot afford a bunch of the AR750's - especially when the alternative single band is only £15 right now... maybe in the future if I can prove this works

The AR300M-Lite units are, I think, a great value at the price. I've been fighting myself back from buying a few "just because". They're not much more expensive than an 802.11n dongle and a lot more useful. If I didn't have 5 Archer C7v2 units that are about to be retired, I probably would have.

I don't know what kind of traffic you're sending, but one way to figure it out is to look at the traffic counters on the interface with either ifconfig (old school / BSD) or ip -s link (Linux "preferred"). You probably could look in LuCI under the realtime graphs as well. I would guess that up to about 1 mbps or so would be considered "low bandwidth" in normal situations. If this is a real-time control or communiication application (meaning responses expected in fractions of a second) latency and packet loss are probably important as well. Hard to say more without knowing more of the application.


When placing the units near metal, if you can "hang them out there a bit" you'll probably have better performance. A wavelength at 2.4 GHz is about 12 cm so we're not talking strung out between poles or anything crazy like that. Even just a few cm off a metal pole or plate might help a lot.

I just bought 3...!!

This is a readout from terminal - I don't know how to interpret it exactly; is it showing the cumulative data every 10seconds?

if so it's around 1.5MiB (Mebibytes?!) every 10seconds or 0.15mbps (roughly?!)

total data received in 5mins 36MiB

root@OpenWrt:~# while ifconfig wlan0 | grep 'RX bytes'; do sleep 10; done
          RX bytes:66760 (65.1 KiB)  TX bytes:48506 (47.3 KiB)
          RX bytes:173171 (169.1 KiB)  TX bytes:53274 (52.0 KiB)
          RX bytes:1451067 (1.3 MiB)  TX bytes:98798 (96.4 KiB)
          RX bytes:2844691 (2.7 MiB)  TX bytes:148622 (145.1 KiB)
          RX bytes:4228671 (4.0 MiB)  TX bytes:198016 (193.3 KiB)
          RX bytes:5631989 (5.3 MiB)  TX bytes:247926 (242.1 KiB)
          RX bytes:6717005 (6.4 MiB)  TX bytes:286742 (280.0 KiB)
          RX bytes:8173051 (7.7 MiB)  TX bytes:339146 (331.1 KiB)
          RX bytes:9576319 (9.1 MiB)  TX bytes:389400 (380.2 KiB)
          RX bytes:10936189 (10.4 MiB)  TX bytes:438106 (427.8 KiB)
          RX bytes:12233373 (11.6 MiB)  TX bytes:484576 (473.2 KiB)
          RX bytes:13429295 (12.8 MiB)  TX bytes:527434 (515.0 KiB)
          RX bytes:14726479 (14.0 MiB)  TX bytes:573904 (560.4 KiB)
          RX bytes:15970621 (15.2 MiB)  TX bytes:618482 (603.9 KiB)
          RX bytes:17200297 (16.4 MiB)  TX bytes:662544 (647.0 KiB)
          RX bytes:18415507 (17.5 MiB)  TX bytes:706090 (689.5 KiB)
          RX bytes:19712691 (18.7 MiB)  TX bytes:752560 (734.9 KiB)
          RX bytes:20841105 (19.8 MiB)  TX bytes:793010 (774.4 KiB)
          RX bytes:21993679 (20.9 MiB)  TX bytes:834320 (814.7 KiB)
          RX bytes:23300507 (22.2 MiB)  TX bytes:881134 (860.4 KiB)
          RX bytes:24578403 (23.4 MiB)  TX bytes:926916 (905.1 KiB)
          RX bytes:25943095 (24.7 MiB)  TX bytes:975794 (952.9 KiB)
          RX bytes:27288499 (26.0 MiB)  TX bytes:1023984 (999.9 KiB)
          RX bytes:28643547 (27.3 MiB)  TX bytes:1072518 (1.0 MiB)
          RX bytes:29955197 (28.5 MiB)  TX bytes:1119504 (1.0 MiB)
          RX bytes:31271669 (29.8 MiB)  TX bytes:1166662 (1.1 MiB)
          RX bytes:32597785 (31.0 MiB)  TX bytes:1214164 (1.1 MiB)
          RX bytes:33934065 (32.3 MiB)  TX bytes:1262010 (1.2 MiB)
          RX bytes:35250537 (33.6 MiB)  TX bytes:1309168 (1.2 MiB)
          RX bytes:36591119 (34.8 MiB)  TX bytes:1357186 (1.2 MiB)
          RX bytes:37907641 (36.1 MiB)  TX bytes:1404344 (1.3 MiB)
          RX bytes:39272333 (37.4 MiB)  TX bytes:1453222 (1.3 MiB)

Thanks to help from this forum I've gone from dumbfounded to having 2x WR703s and a WR702 attached to a space BT Smart Hub I found lying around - working really well now.... the AR300M's will be a nice addition for an event this weekend.

Yep, interpreting it as cumulative bytes read every ten seconds looks right.

Mi is usually "binary" million, 1024^2 (and I always have to think about which is binary and which is decimal, and often get sloppy myself with those -- "What's a few percent among friends?")

B is usually bytes, b is usually bits

~120 kbps ~ 1 M bits/sec
36 MiB * 8 bits/byte / 300 seconds ~ 1 M bits/sec

Unless you've got some demands on quick response, that all sounds comfortable over low-rate 802.11n (2.4 GHz).

Ha glad you explained that, being out by a factor of 10 is never good!!

The processing sketch on my laptop (which is transmitting the data) is running at 30fps, the led driver runs at 400mhz but it is doing a ton of interpolation and dithering to produce a smooth output. So assuming 30fps is the output rate I also agree 2.4Ghz is probably fine - it's going to get a thorough test this weekend anyway with 4 or 5 clients and an AP.

Not got it in me to figure out mesh networking before Sunday!!

Give yourself a little time on that.

It's a non-trivial thing to wrap your head around initially with three or for "layers" involved; the wireless mesh connectivity itself, the interfaces to the mesh, assigning the interfaces to the routing protocol (batman-adv, for example), then your "normal" bridges for connectivity to Ethernet and/or APs. To complicate things, the config for batman-adv changed recently and older docs won't align with newer ones as to how to configure it all. I think it took me a couple weeks to sort out the docs a year or so ago and it's still pretty confusing (though the new config, I think, is a lot clearer).

eesh!! I don't understand most of that paragraph.... so much to learn

I found this firmware for an instant mesh network on the AR300M today - could be worth it if it'll work with my websocket, its £25 and I'll happily pay that to save weeks of editing config files.

For a mesh of 5 nodes all in the same room I would not bother with a BATMAN layer, just use the 802.11s built in mesh routing.

The mesh approach to this project would be different. There's no need for LAN-WAN routing or a firewall. You can bridge all the LANs together with a mesh. The LAN IPs must be in the same range but different (, etc). You can add a wifi AP or an Ethernet port to any of the nodes to bring non-meshing devices (iPhone, Pi, laptop) into the LAN.

Set stp on on all the LANs so you can interconnect the nodes with either Ethernet cable or mesh and problems associated with a network loop will be avoided.

The basic non-encrypted mesh is:

config wifi-iface 'mesh'
    option device 'radio0'
    option mode 'mesh'
    option network 'lan'
    option mesh_id 'somename'

All the nodes must have the same mesh_id, so they know they belong with each other. It is also important to set an option channel on all the radios to the same channel, or they will not mesh.

The problem here is that it is not encrypted or authenticated, so anyone in radio range and so inclined could join your mesh maliciously. That may not be an issue in some situations.


Assuming that works well, adding encryption on the mesh should be pretty straightforward. Starting unencrypted/unauthenticated is a good plan.