APPNOTE-31 How to Configure EasyMesh
v1
1 Scope
Wi-Fi EasyMesh is a standards-based solution for multi-AP Wi-Fi networks, enabling seamless and intelligent wireless coverage across homes and small offices. It simplifies network (re)configuration and device onboarding, requiring minimal user intervention while ensuring self-monitoring and optimized performance. While Wi-Fi EasyMesh by the Wi-Fi Alliance was designed for managing Wi-Fi 2.4GHz, 5GHz, and 6GHz radios, Morse Micro's HaLow-specific extensions enable the Wi-Fi HaLow radio to be managed alongside other Wi-Fi bands.
Morse Micro’s OpenWrt uses the open source EasyMesh implementation called prplMesh provided by prpl Foundation. This guide provides instructions for setting up prplMesh to form an EasyMesh network using HaLowLink1.
The prerequisites for this application note are:
2 × HaLowLink1 devices
Any router supporting 2.4GHz Wi-Fi or Ethernet with an active internet uplink
1 x Laptop
By following this application note, the reader will learn:
How to configure HaLowLink1 devices to setup Virtual Wire.
How to validate this is operating correctly.
2 Theory of Operation
An EasyMesh network always consists of two types of logical entities:
One EasyMesh Controller
One or more EasyMesh Agents
The EasyMesh Controller is a logical entity responsible for centralized management of all Wi-Fi access points (APs) within a local network. It acts as a master in the network instructing EasyMesh agent nodes on what to do.
The EasyMesh Agent is a logical entity that executes the commands received from EasyMesh Controller and reports measurements and capabilities of the APs. EasyMesh agent interfaces with Wi-Fi subsystem to achieve the commands received from EasyMesh controller.
Unlike a fully distributed 802.11s mesh, EasyMesh enforces a tree-based network topology, where all agents are coordinated via a single controller node. This centralised approach enables more predictable and manageable behaviour but differs from peer-to-peer or decentralised mesh networks.
2.1 Simple EasyMesh Network
Example EasyMesh Network
To demonstrate the features and capabilities of EasyMesh with Wi-Fi HaLow radio, we will form a simple EasyMesh network with HaLowLink1 as shown in the figure with two nodes where one node must be configured as the EasyMesh controller, while the other node is configured as an EasyMesh agent.
An existing router with a 2.4GHz Wi-Fi AP serves as an internet uplink connection, enabling devices in the EasyMesh network to access the internet.
3 How to Configure
The following sections detail the configuration process for both the EasyMesh HaLow Gateway and EasyMesh Extender, along with their corresponding UCI settings.
The Web UI features a configuration wizard page designed to simplify the setup of different modes and switch between them quickly. It uses OpenWrt UCI/UBUS configuration interface to apply the required configuration for a specific mode. These UCI configurations are then used by OpenWrt applications to configure the device.
3.1 Getting Access to GUI
Connect your computer to HaLowLink1’s LAN port using an Ethernet cable. The default setting in HaLowLink1 assigns your computer an IP address in 192.168.12.x range with the default gateway set to 192.168.12.1. Once your laptop is connected to the HaLowLink’s local network, use a browser to connect to http://192.168.12.1. Use the Device Username and Device Password printed on the rear side of the HaLowLink1 device to login.
After logging in, the home page should be visible, similar to the below screenshot:
3.2 EasyMesh HaLow Gateway
The objective is to configure HaLowLink1 in router mode to function as an EasyMesh HaLow Gateway running the EasyMesh Controller service. The figure below depicts our reference configuration.
wlan-prpl is a HaLow AP interface in a lan network.
phy0-sta0 is a 2.4GHz Wi-Fi station interface in a wan network for internet uplink.
phy0-ap0 is a 2.4GHz Wi-Fi AP interface in lan network
WAN Ethernet port attached in wan network.
LAN Ethernet port attached to the lan network.
EasyMesh HaLow Gateway configuration involves the following high level networking configuration steps (detailed steps shown in following sections):
Set up a lan network with a dhcp server with the IP range 192.168.12.x.
Set up a wan network with dhcp client service for the uplink internet.
Create a bridge interface br-prpl to serve the LAN network.
Create an AP interface wlan-prpl on HaLow radio and attach to br-prpl.
Create a station interface phy0-sta0 on 2.4GHz radio and add to wan for internet uplink.
Attach LAN and WAN Ethernet ports to lan and wan network respectively.
Create a lan and wan firewall zone which maps to lan and wan network.
Enable forwarding rules between lan and wan network allows lan clients to access the internet.
Enable prplMesh in Controller + Agent mode.
3.2.1 How to Configure
The following steps use the Wizard to create the EasyMesh HaLow Gateway configuration outlined above:
Navigate to the Wizard option in the side menu.
HaLow Mode : Choose EasyMesh Controller option.
Network Mode allows us to choose the preferred uplink.
If you have a Wi-Fi route with 2.4 GHz radio, we can select “use 2.4GHz for an uplink”. And refer to the section on how to configure 2.4 GHz Wi-Fi as uplink.
If you prefer to use Ethernet as an uplink, select the first option.
Click Save & Apply and wait for successful initialization.
3.2.2 Controller Status
To confirm the EasyMesh Controller is enabled properly, status information is available on the Home page under EasyMesh Controller card.
Agent status active shows a successful configuration of EasyMesh Controller
3.2.3 Configure 2.4 GHz Wi-Fi as uplink
Navigate to the Uplink (2.4 GHz) card from the Home page and click Disconnected cross or use the expand arrow to access the uplink configuration tab.
Clicking the search option lists available Wi-Fi networks. Choose your router’s SSID and update your network settings.
Click the Save & Apply button.
The uplink card status should change to Connected with a tick once the uplink connection is successfully established.
3.2.4 UCI configuration (Optional)
Using the Wizard is easy but it skips over a lot of underlying detail that can help understanding what is going on. This section explains the underlying configuration changes made to setup the EasyMesh HaLow Gateway. UCI configurations generated by following the steps represent the changes from sections from 3.2.1 to 3.2.3.
This section can be safely skipped for those that are not interested in the inner workings of UCI configurations.
At a high level configuring EasyMesh HaLow Gateway involves:
changes in wireless UCI configuration
configures HaLow radio,
configures an access point interface(wlan-prpl) and attach to lan.
configures 2.4GHz Wi-Fi radio,
configures a station interface(phy0-sta0) and attach to wan
changes in prplmesh UCI configuration,
configures EasyMesh in Controller + Agent mode, and
configures list of wifi-device and wifi-interface to be managed under EasyMesh
changes in network UCI configuration,
creates a network bridge called br-prpl, and
attaches the lan network interface to bridge br-prpl.
changes in firewall UCI configuration,
creates a firewall zone for the lan network, and
enables forwarding rules between lan and wan network.
changes in dhcp UCI configuration
runs a DHCP server in the lan network.
runs a DHCP client in wan to receive an IP address from uplink router
The configuration files described below are located in the /etc/config/ directory.
wireless
UCI Configuration
Description
config wifi-device 'radio1' option type 'morse' option path <GET FROM DEFAULTS> option bcf <GET FROM DEFAULTS> option band 's1g' option hwmode '11ah' option reconf '0' option country 'US' option channel '44' config wifi-iface 'default_radio1' option mode 'ap' option wds '1' option device 'radio1' option network 'lan' option ssid 'MorseMicro' option encryption 'sae-mixed' option key 'Morse@123' option disabled '0' option bss_transition '1' option multi_ap '3' option ieee80211k '1' option ieee80211w '2' option ifname 'wlan-prpl' option wps_virtual_push_button '1' option wps_independent '0' option auth_cache '0'
wifi-device config section radio1 refers to the physical HaLow radio in a device. The options present in this section describe properties common across all wireless interfaces on this radio device, such as country, channel. wifi-iface config section provides a means to create an access point or station interface on a radio. This section contains interface specific properties like SSID and network credentials. wifi-iface config section default_radio1 creates an access point interface wlan-prpl on a HaLow radio device radio1 and attaches it with a lan network. The SSID and network credentials specified in this section are propagated to all EasyMesh Agent nodes in the network through the EasyMesh auto configuration process.
prplmesh
config prplmesh 'config' option management_mode 'Multi-AP-Controller-and-Agent' option operating_mode 'Gateway' option enable '1' option master '1' option gateway '1' option wired_backhaul '1' config wifi-device 'radio1' option hostap_iface 'wlan-prpl'
The configuration section for prplmesh contains options that allow users to enable or disable EasyMesh, along with its associated features, and modify EasyMesh behaviour. Most configurations in the prplmesh config section have default settings shared by both EasyMesh Controller and Agent. The example on the left highlights only the difference between EasyMesh Controller and Agent. wifi-device section facilitates the addition of wireless interfaces under EasyMesh management. Example on the left adds AP interface wlan-prpl on HaLow radio device radio1 under EasyMesh management. prplMesh expects radio1 and wlan-prpl to be preconfigured in the wireless setting.
network
config interface 'lan' option device 'br-prpl' option proto 'static' option ipaddr '192.168.12.1' option netmask '255.255.255.0' option ip6assign '60' config interface 'wan' option proto 'dhcp' config device option name 'br-prpl' option type 'bridge' option macaddr <GET FROM DEFAULTS> list ports 'usblan' list ports 'lan'
interface config section provides a means to create a logical network interface. In our example, we create a lan network which is our primary local network in which we attach a HaLow AP interface (wlan-prpl). We create a wan network and enable dhcp client for uplink internet connectivity to which we attach the 2.4GHz station interface(phy0-sta0) and WAN Ethernet port. device config section allows us to create a linux network bridge to which we can attach our network ports.
firewall
config zone option name 'lan' list network 'lan' option input 'ACCEPT' option output 'ACCEPT' option forward 'ACCEPT' config zone option name 'wan' list network 'wan' option input 'REJECT' option output 'ACCEPT' option forward 'REJECT' option masq '1' option mtu_fix '1' config forwarding option src 'lan' option dest 'wan' option enabled '1'
zone config section allows us to create a logical firewall zone which corresponds to a logical network we created in network config. In our example, We create a firewall zone for the lan network where we should allow input, output and forwarding network traffic. We create a firewall zone for the wan network where we should allow only egress traffic. forwarding config section allows to enable/disable the traffic flow between firewall zones. In this example, we want to route the traffic between the lan to the wan zone which enables devices on the lan network to access the internet.
dhcp
config dnsmasq option domainneeded '1' option localise_queries '1' option rebind_localhost '1' option local '/lan/' option domain 'lan' option expandhosts '1' option cachesize '1000' option authoritative '1' option readethers '1' option localservice '1' option ednspacket_max '1232' config dhcp 'lan' option interface 'lan' option start '100' option limit '150' option leasetime '12h' config dhcp 'wan' option interface 'wan' option ignore '1'
dhcp config allows us to configure dhcp server and instances in the logical network that we created in network config. The example shown here enables dhcp server in lan network and disables(option ignore) it in wan network.
3.3 EasyMesh HaLow Extender
The objective is to configure HaLowLink1 in extender mode to function as an EasyMesh HaLow Extender running EasyMesh agent service.
Setting up the HaLow Extender involves (detailed steps in the following sections):
Set up a LAN network and enable DHCP client service to receive IP from EasyMesh Gateway.
Create a bridge interface br-prpl to serve the LAN network.
Create a station interface (wlan-prpl-1) on HaLow radio and attach to br-prpl.
Create an AP interface (wlan-prpl) on HaLow radio and attach to br-prpl.
Create an AP interface (phy0-ap0) on 2.4GHz radio and attach to br-prpl.
Attach LAN and WAN Ethernet ports to br-prpl.
Attaching all these interfaces to br-prpl keeps them in the lan.
Enable prplMesh in Controller + Agent mode.
wlan-prpl-1 is a HaLow station interface in a lan network providing HaLow Backhaul Link connectivity with EasyMesh HaLow Gateway.
wlan-prpl is a HaLow AP interface in a lan network to serve HaLow Clients and to further extend HaLow network
phy0-ap0 is a 2.4GHz Wi-Fi AP interface in lan network
WAN Ethernet port attached in lan network.
LAN Ethernet port attached to the lan network.
3.3.1 How to Configure
EasyMesh Agent configuration in HaLowLink1 does not require a web interface. It is simplified into the following two steps:
Switch HaLowLink1 to extender mode. Refer to below section 3.3.2 Extender mode.
Use push button to pair this extender with another HaLowLink1 configured as EasyMesh Controller. Refer to below section 3.3.3 Pairing Extender with Gateway.
3.3.2 Extender mode
Power on the HaLowLink1 that is to be configured as an extender.
Wait until the status LED turns solid green, indicating that the HaLowLink1 has been initialised.
Press and hold the mode button until the status LED starts flashing aqua. Initially, the LED will flash green slowly before transitioning to flashing aqua, signaling that the button can be released for extender mode configuration.
Wait for the status LED to turn solid aqua, which indicates the successful configuration of extender mode.
3.3.3 Pairing Extender with Gateway
This step allows the extender to connect with HaLowLink1 configured as EasyMesh Gateway.
Ensure the extender’s Status LED is in solid aqua mode.
Ensure the EasyMesh HaLow Gateway’s status LED in solid green.
Press and immediately release the mode button on the bottom of the extender and EasyMesh HaLow Gateway device at the same time.[a]
At the start of the button press, the Wi-Fi HaLow LEDs on both devices will begin slowly flashing purple. Upon successful pairing, both devices will display a solid purple Wi-Fi HaLow LED.
3.3.4 Agent Status
To confirm the EasyMesh Agent is enabled properly, status information is available on the extender’s Home page under EasyMesh Agent card.
Agent status Active shows a successful configuration of EasyMesh Agent.
3.3.5 UCI configuration (Optional)
This is an informative section intended to explain the EasyMesh Extender’s reference UCI configurations generated by following the steps from sections from 3.3.1 to 3.3.4.
This section can be safely skipped for those that are not interested in the inner workings of UCI configurations.
At a high level configuring EasyMesh Agent in extender mode involves,
changes in wireless UCI configuration, which
configures HaLow radio,
configures a backhaul station interface,
configures an access point interface and
attaches the access point and station interface with the lan network.
changes in prplmesh UCI configuration, which
configures EasyMesh in Agent mode and
configures list of wifi-device and wifi-interface (accesspoint and backhaul station) to be managed under EasyMesh
changes in network UCI configuration, which
creates a network bridge called br-prpl,
attaches the lan network interface to bridge br-prpl.
changes in firewall UCI configuration, which
creates a firewall zone for the lan network.
changes in dhcp UCI configuration, which
runs a DHCP client in lan to receive ip address from a gateway.
wireless
UCI Configuration
Description
config wifi-device 'radio1' option type 'morse' option path <GET FROM DEFAULTS> option bcf <GET FROM DEFAULTS> option band 's1g' option hwmode '11ah' option reconf '0' option country 'US' option channel '44' config wifi-iface 'default_bh_radio1' option device 'radio1' option disabled '0' option mode 'sta' option multi_ap '1' option wds '1' option ifname 'wlan-prpl-1' option network 'lan' config wifi-iface 'default_radio1' option mode 'ap' option wds '1' option device 'radio1' option network 'lan' option ssid 'MorseMicro' option encryption 'sae-mixed' option key 'Morse@123' option disabled '0' option bss_transition '1' option multi_ap '3' option ieee80211k '1' option ieee80211w '2' option ifname 'wlan-prpl' option wps_virtual_push_button '1' option wps_independent '0' option auth_cache '0'
wifi-device config section radio1 refers to the physical HaLow radio in a device. The options present in this section describe properties common across all wireless interfaces on this radio device, such as country, channel. wifi-iface config section default_bh_radio1 creates a backhaul station interface wlan-prpl-1 on a HaLow radio device radio1 and attaches it with a lan network. This interface is used as a backhaul link. wifi-iface config section default_radio1 creates an access point interface wlan-prpl on a HaLow radio device radio1 and attaches it with a lan network. EasyMesh Agent configures wlan-prpl with the SSID and network credentials received from EasyMesh Controller during the Auto configuration process. For standard EasyMesh operation, AP interface wlan-prpl and backhaul station interface wlan-prpl-1 must be connected to the same network, which in our case is lan.
prplmesh
config prplmesh 'config' option management_mode 'Multi-AP-Agent' option operating_mode 'WDS-Repeater' option enable '1' option master '0' option gateway '0' option wired_backhaul '0' config wifi-device 'radio1' option hostap_iface 'wlan-prpl' option sta_iface 'wlan-prpl-1'
Most configurations in the prplmesh config section have default settings shared by both EasyMesh Controller and Agent. The example on the left highlights only the difference between EasyMesh Controller and Agent. Example on the left adds AP interface wlan-prpl and backhaul station interface wlan-prpl-1 on HaLow radio device radio1 under EasyMesh management. prplMesh expects radio1 , wlan-prpl and wlan-prpl-1 to be preconfigured in the wireless setting.
network
config interface 'lan' option device 'br-prpl' option proto 'dhcp' option ipaddr '192.168.12.1' option netmask '255.255.255.0' option ip6assign '60' config device option name 'br-prpl' option type 'bridge' option macaddr <GET FROM DEFAULTS> list ports 'usblan' list ports 'lan'
interface section creates a lan network attached to bridge br-lan, configured to run a dhcp client. device section creates a linux network bridge br-lan and attaches lan network port to it.
firewall
config zone option name 'lan' list network 'lan' option input 'ACCEPT' option output 'ACCEPT' option forward 'ACCEPT'
This example config creates a network zone for lan which is our primary local network where we should allow input, output and forwarding network traffic. forwarding config section is not needed as the backhaul station interface wlan-prpl-1 is attached to the lan network.
dhcp
config dhcp 'lan' option interface 'wan' option ignore '1'
This section disables the DHCP server in the lan network.
4 How to Verify
To verify the successful configuration of Easymesh we can verify each of the below features of EasyMesh are working:
Unified network credentials across all HaLow APs.
EasyMesh Topology Tree
4.1 Unified network credentials
All HaLow AP's are managed by controller and agent within an EasyMesh network. After the initial pairing process, they are configured with the same SSID and network credentials to ensure seamless connectivity.
To verify the configuration
Login to EasyMesh extender node’s web UI.
we can find the extender’s IP address by clicking the DHCP Leases option under the Local Network card on the Home page.
Navigate to the Quick Config page.
Check the SSID and network credentials for the HaLow AP interface (wlan-prpl) match the EasyMesh Gateway’s credentials.
4.1.1 EasyMesh Auto Configuration
In an optimal EasyMesh network deployment, network credentials should propagate seamlessly to all EasyMesh agents without causing any disruption. However, since a single HaLow AP is used to serve both fronthaul clients and HaLow extenders, any changes made to the AP credentials on the HaLow Gateway will necessitate manual reconfiguration of the extender.
4.2 EasyMesh Topology Tree
We can view the complete topology of the EasyMesh network through the EasyMesh Gateway’s web UI. Simply navigate to the EasyMesh Controller card on the home page and click the expand option to display the network topology. This page becomes accessible when at least one extender node is connected to the controller.
4.3 Read-Only Quick Config Page
The configuration options for EasyMesh-managed wireless interfaces on the Quick Config page are set to read-only to prevent potential misconfigurations that could disrupt normal EasyMesh functionality. To modify the SSID or network credentials for HaLow interfaces, navigate to the Network-> Wireless page.
Ideally, the SSID, security mode, and network key should be editable in the HaLow Gateway’s Quick Config page. However, this limitation in the web UI is not addressed until the OpenWrt 2.8.x release.
4.4 Useful Commands
List the prplMesh applications
root@halowlink1-b19b:~# ps | grep prpl
9426 root 15700 S /opt/prplmesh/bin/ieee1905_transport
9427 root 22520 S /opt/prplmesh/bin/beerocks_controller
9428 root 21844 S /opt/prplmesh/bin/beerocks_agent
9474 root 17376 S /opt/prplmesh/bin/beerocks_fronthaul -i wlan-prpl
Enable prplMesh debug logs
To collect logs syslog (logread), set log_syslog_enabled to true in beerocks_controller.conf and beerocks_agent.conf located in /opt/prplmesh/config.
To collect logs in a text file, set log_files_enabled to
in the same configuration files, and use the log_files_path option to specify the desired file path.
Command line Topology view
We can use beerocks_cli to dump the EasyMesh network.
root@halowlink1-b19b:~# /opt/prplmesh/bin/beerocks_cli -c bml_conn_map
GW_BRIDGE: name: GW_MASTER, mac: f2🇧🇧43:dc:f6:39, ipv4: 192.168.12.1
ETHERNET: mac: 3b:f6:dc:43:bb:f2
RADIO: wlan-prpl mac: 94🇧🇧43:dc:f6:39, ch: 44, bw: 8 S1G, freq: 924 MHz
bVAP[0]: wlan-prpl.0 bssid: 94🇧🇧43:dc:f6:39, ssid: halowlink1-b19b
IRE_BACKHAUL: mac: 96🇧🇧43:dc:f9:89, ch: 44, bw: 8 S1G
IRE_BRIDGE: name: IRE_f9:89, mac: f2🇧🇧43:dc:f9:89, ipv4: 10.22.121.111
ETHERNET: mac: 8b:f9:dc:43:bb:f2
RADIO: wlan-prpl mac: 94🇧🇧43:dc:f9:89, ch: 44, bw: 8 S1G, freq: 924 MHz
bVAP[0]: wlan-prpl.0 bssid: 94🇧🇧43:dc:f9:89, ssid: halowlink1-b19b
We can use the below command to dump the EasyMesh Wi-Fi data elements. root@halowlink1-b19b:~# ubus call Device _get '{"depth":10}'
6 Revision History
01
11/04/2025
Initial release
Last updated
Was this helpful?