/OpenWRT_Mesh

OpenWRT based 802.11s mesh running on RPi.

OpenWRT_Mesh

OpenWRT based 802.11s mesh running on RPi.

This was written for OpenWRT 22.03, there were some changes to the package list with 23.05 and this guide will not be directly applicable

BoM:

Based pretty heavily on the work done by the guys at ATAK HQ https://atakhq.com/en/manet/openwrt Gives data access to ATAK in excess of what is available with the Meshtastic forwarder plugin. Have successfully send location, markers, text, audio, and pictures through ATAK with this hardware. Voice plug in is functional, but have not spent the time to find the solution to getting that audio piped into a headset. Have also sent "video" between EUD's but it was unusable, have not expended any effort on that yet, I'm sure i was just doing something wrong. Testing still needs to happen to look at ranges/bandwidth/battery drain out in the field. This is all coming after getting disappointing results with the Alfa AWUS036ACM (much lower power dongle)

I am certainly no networking guy, this is a process I've pieced together and may not be the best way to do this. This is just what I've done to get a functional mesh running. This was written for a Pi 4b with 4GB of memory with an Alfa AWUS036ACHM external dongle. I'm using the 2.4 ghz band for these units. General process should apply to any pi

  1. Download Firmware from OpenWRT. Grab the EXT4 package firmware select

  2. Flash to SD card. I use Balena Etcher for this balena

  3. Boot Pi. This part gets a little complex, may only apply to my particular setup though.

    • My router is locked to the 192.168.1.1 IP address and I cannot change it (thanks spectrum). To get around this I created a second network that is completely isolated from my spectrum network. I did this because the default IP that the OpenWRT image you just flashed will also try to use 192.168.1.1, causing a conflict. My setup has a dumb TP link ethernet switch with both the Pi I'm booting and a laptop (with wifi off) connected to it. Nothing else, we'll need to run like this just long enough to get the static IP changed
  4. Set Timezone, Password, Hostname: starting username is root, no password.

    • Timezone and Hostname are located at System>System
    • Password is at System>Administration
  5. Set Static IP addressInkedinterface scree for static IP

    • Navigate to Network>Interfaces
    • Click on the "Edit" button
    • Change IPV4 Address to whatever you want. Note, each node will need to have a different static IP. I just sequenced numerically, 1.1,1.2,1.3 etc. Good idea not to have it conflicting with anything currently on your network, as we'll need to get back onto the main network for internet access soon.
  6. Connect Pi to internet.connectwifi

  • At this stage I connected the Pi to my home network wifi. Navigate to Network>wireless. Hit scan beside the "Cypress CYW..." (this is the Pi onboard wifi), and log onto your wireless network as normal.
  1. Package Install/Uninstall. softeware

    • Navigate to System>Software, hit "update lists" wait for list to populate then search for packages below. to uninstall the wpad-basic, you need to change over to the "installed" tab
    • WPAD-Mesh-wolfSSL: install, allow overwrite. Do this before removing wpad-basic
    • WPAD-Basic-wolfSSL: uninstall, remove unused packages
    • Mesh11sd: install, allow overwrite
    • kmod-mt76x0u: install, allow overwrite ( this is the driver set for the Alfa dongle)
  2. Create Mesh Network. now we have the packages installed, navigate back to Network>Wireless. You should see a new interface "Generic 802.11acbg", this is the Alfa dongle. Click "add" beside that interfaceDongle in

  • Operating Frequency
  • Channel (all nodes must be on the same channel)
  • Transmit Power
  • Mode
  • Mesh ID (all nodes must share the exact same mesh ID)
  • Network These are the settings I used (note this is a screenshot from a previous build with the ACM dongle, power setting may vary with the ACHM. Also note the power setting here is likely bugged, theres some talk about this on the forums. something about an internal amp bringing the output to 30 dbm even though it shows much less in the GUI) Meshconfig

9.Complete: once that's done you should be online. I disabled my home wifi at this point and can see that I have 2 other nodes online and they are connected to this node. Meshactive