<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://sudoroom.org/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Gcg</id>
	<title>Sudo Room - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://sudoroom.org/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Gcg"/>
	<link rel="alternate" type="text/html" href="https://sudoroom.org/wiki/Special:Contributions/Gcg"/>
	<updated>2026-05-15T09:09:58Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.37.2</generator>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11414</id>
		<title>Mesh/WalkThrough</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11414"/>
		<updated>2018-07-23T10:38:26Z</updated>

		<summary type="html">&lt;p&gt;Gcg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Congratulations on choosing to become part of a People's Open Network! This is a walkthrough for flashing a node (a home router) with Sudo Mesh's sudowrt-firmware (a custom build of OpenWRT) and then configuring it with makenode (a custom javascript tool developed by Sudo Mesh). At the end of the walkthrough, you'll be able to plug in your router and join the mesh. The walkthrough assumes you're using a linux-ish OS (mac OSX should work also) and that you have [https://help.ubuntu.com/community/UsingTheTerminal basic knowledge of the terminal]. The general idea of building your own mesh node consists of three steps, [[#Download/Build|downloading or compiling]] custom firmware, [[#Flash/Upload|flashing that firmware]] to the node (i.e. copying firmware to [https://en.wikipedia.org/wiki/Flash_memory flash memory]), and [[#makenode/Configure|configuring the node]] to function as part of a mesh (with a software tool such as makenode).&lt;br /&gt;
&lt;br /&gt;
Before you flash your router, it is recommended that you read the [[Home and extender nodes#Home_nodes|home node info]] to ensure your router works as a mesh node.&lt;br /&gt;
&lt;br /&gt;
= Download/Build =&lt;br /&gt;
&lt;br /&gt;
Now that you have a node, you will probably want to learn how to flash it with the latest sudowrt-firmware. The first step is to download the firmware image file for your supported router. &lt;br /&gt;
&lt;br /&gt;
At the moment, we are supporting the following routers:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! OpenWRT Doc !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| Western Digital MyNet N600 || [https://wiki.openwrt.org/toh/wd/n600 OpenWRT Docs] || '''[https://builds.sudomesh.org/builds/sudowrt/dispossessed/0.3.0/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin latest]''' [https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.3] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.0] &lt;br /&gt;
|-&lt;br /&gt;
| Western Digital MyNet N750 || [https://wiki.openwrt.org/toh/wd/n750 OpenWRT Docs] || &lt;br /&gt;
'''[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin latest]''' &lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin 0.2.3]&lt;br /&gt;
[https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin 0.2.0] &lt;br /&gt;
|-&lt;br /&gt;
| TP-Link WDR3500 || [https://wiki.openwrt.org/toh/tp-link/tl-wdr3500 OpenWRT Docs] || &lt;br /&gt;
'''[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin latest]''' &lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin 0.2.3]&lt;br /&gt;
[https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin 0.2.2] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin 0.2.0] &lt;br /&gt;
|-&lt;br /&gt;
| TP-Link WDR3600 || [https://wiki.openwrt.org/toh/tp-link/tl-wdr3600 OpenWRT Docs] || &lt;br /&gt;
'''[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin latest]''' &lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin 0.2.3]&lt;br /&gt;
[https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin 0.2.0]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| TP-Link WDR4300 || [https://wiki.openwrt.org/toh/tp-link/tl-wdr4300 OpenWRT Docs] || &lt;br /&gt;
'''[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin latest]'''&lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin 0.2.3]&lt;br /&gt;
[https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin 0.2.0] &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Builds for other routers can be found on our [http://builds.sudomesh.org/builds/sudowrt/ builds server] or on  [https://doi.org/10.5281/zenodo.1205601 zenodo], though there is no guarantee the firmware will work with any given router. For release notes, please go to our [https://github.com/sudomesh/sudowrt-firmware/releases github release pages].&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can build your own copy of the firmware images by following the guide in the [https://github.com/sudomesh/sudowrt-firmware sudowrt-firmware source].&lt;br /&gt;
&lt;br /&gt;
If you do not want to use Sudo Mesh's OpenWRT image, you can also install [https://downloads.openwrt.org/ a standard OpenWRT] release and configure it from scratch.&lt;br /&gt;
&lt;br /&gt;
= Flash/Upload =&lt;br /&gt;
&lt;br /&gt;
Once you have a copy of the sudowrt-firmware intended for your router, you can proceed with flashing it to your router. There are different techniques for flashing each of the routers. Use the links above to the OpenWRT wiki and follow the instructions there to flash the router with the firmware you've downloaded.&lt;br /&gt;
&lt;br /&gt;
For convenience, if you have a Western Digital MyNet N600 or N750, follow these instructions:&lt;br /&gt;
&lt;br /&gt;
== Reset your new N750/N600 router ==&lt;br /&gt;
[[File:Router_reset_mynet.png|200px|thumb|right|Reset hole location!]]&lt;br /&gt;
Instructions to reset / default a WD MyNet N600 or N750 router:&lt;br /&gt;
* Plug one end of the Ethernet cable into your laptop.&lt;br /&gt;
* Plug the other end of the Ethernet cable into one of the normal ports (LAN) on the router (not the Internet/WAN port).&lt;br /&gt;
* With the router plugged in and power turned off, push a pin / paperclip / tiny screwdriver into the reset hole and hold it for at least 15 seconds.&lt;br /&gt;
* With the pin held down, turn on the router power button.&lt;br /&gt;
* Watch the front blue light - they will flash on and off a few times.&lt;br /&gt;
* Once the front blue is flashing, you can let go of the pin.&lt;br /&gt;
&lt;br /&gt;
== Configure your computer's network settings ==&lt;br /&gt;
On your laptop edit your network settings to reflect the following:&lt;br /&gt;
&lt;br /&gt;
* Network Manager Method: Manual&lt;br /&gt;
* IP Address: 192.168.1.10 (some devices will only accept from this IP)&lt;br /&gt;
* Subnet Mask: 255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0 (Or leave blank)&lt;br /&gt;
&lt;br /&gt;
You can also use the commands:&lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; down &lt;br /&gt;
  sudo ip addr add 192.168.1.10/24 dev &amp;lt;eth_interface&amp;gt; &lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; up&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;eth_interface&amp;gt; is the name of your ethernet interface found using `ip addr` (common names include eth0, enp3s0, ...)&lt;br /&gt;
&lt;br /&gt;
See Network Configuration Guides: [[Mesh/Network%20Configuration%20for%20Linux | Linux]], [[Mesh/Network%20Configuration%20for%20MacOS%20X | Mac]]&lt;br /&gt;
&lt;br /&gt;
== Upload sudowrt-firmware ==&lt;br /&gt;
In your web browser:&lt;br /&gt;
&lt;br /&gt;
* Go to [http://192.168.1.1 http://192.168.1.1], if the reset was successful, you should see the following page:&lt;br /&gt;
[[File:Screenshot from 2017-04-04 18-27-09.png|thumb|center|upright=2]]&lt;br /&gt;
* Click 'Browse' and select the firmware file you downloaded&lt;br /&gt;
* Click Upload and you will be taken to an exciting countdown timer:&lt;br /&gt;
[[File:Screenshot from 2017-04-02 17-20-51.png|thumb|center|upright=2]]&lt;br /&gt;
&lt;br /&gt;
Note: Sometimes the firmware upload will not complete. After you click on 'Upload' You should get a page with a countdown of 120+ seconds. If this does not occur, reboot the router with the pin reset button depressed (as noted above), and try again.&lt;br /&gt;
&lt;br /&gt;
= Configure =&lt;br /&gt;
A freshly flashed node automatically sets its IP address to 172.30.0.xx. You will need to configure your laptop to use the following network settings to communicate with the node:&lt;br /&gt;
&lt;br /&gt;
* IP address: 172.30.0.10 &lt;br /&gt;
* Subnet mask:  255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0&lt;br /&gt;
&lt;br /&gt;
Or use the commands&lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; down &lt;br /&gt;
  sudo ip addr add 172.30.0.10/24 dev &amp;lt;eth_interface&amp;gt; &lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; up&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;eth_interface&amp;gt; is the name of your ethernet interface found using `ip addr` (common names include eth0, enp3s0, ...)&lt;br /&gt;
&lt;br /&gt;
See Network Configuration Guides: [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20Linux Linux] [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20MacOS%20X Mac]&lt;br /&gt;
&lt;br /&gt;
== Autoconf (v.0.3.0) ==&lt;br /&gt;
'''''Note: If you installed autoconfiguring [https://github.com/sudomesh/sudowrt-firmware/releases/tag/0.3.0 release 0.3.0] for myNet N600 routers, you will not need to use makenode ([[#Makenode_.28v.0.2.3_and_earlier.29|instructions further down]]) after flashing the sudowrt-firmware to your router to configure it to work on People's Open Network.'''''&lt;br /&gt;
&lt;br /&gt;
[[File:Nodeports titles.png|400px|thumb|right|Plug into port 3 to access the private network from your laptop. Port 2 connects to the public 'peoplesopen.net' network]] Connect your newly-flashed MyNet N600 to your existing Internet router via ethernet from your existing router's LAN port to your new node's Internet port. Wait a few minutes for your new node to connect to the Internet and obtain its private IP address. Once this happens, the node will broadcast a new WiFi network starting with 'peoplesopen.net' (and ending with a unique IP address). This is the public network, has no password, and is suitable for day-to-day internet access.&lt;br /&gt;
&lt;br /&gt;
There is also a wireless network called 'pplsopen-admin'. This is the private network, and you can use it to access a web dashboard to configure some settings. The default WiFi password is 'meshtheworld'. Try connecting to it (you can also connect to the private network using an ethernet cable connected to port 3 on an N600).&lt;br /&gt;
&lt;br /&gt;
While connected to the ''private'' network, try connecting to the home node's web dashboard by opening a web browser and navigating to http://172.30.0.1 &lt;br /&gt;
&lt;br /&gt;
If the flash was successful you should be brought to the following screen:&lt;br /&gt;
&lt;br /&gt;
[[File:Peoplesopen-dash.jpg|frame|center|upright=2]]&lt;br /&gt;
&lt;br /&gt;
The default password is 'meshtheplanet'.&lt;br /&gt;
&lt;br /&gt;
Here you can set the amount of downstream and upstream bandwidth you're willing to share (default is set to 4096kb, or roughly 4 megabits/second):&lt;br /&gt;
[[File:homeScreen.jpg|frame|center|upright=2]]&lt;br /&gt;
&lt;br /&gt;
[[File:WifiSettings.jpg|frame|left|upright=2|Set your private SSID and password via the 'WIFi Settings' tab. NOTE: When you first set your private SSID name and hit 'Save', you will have to reconnect to the newly-named SSID using the original default password ('meshtheworld') and then reconnect again with the new password after setting it in the dashboard]] [[File:Connections.jpg|frame|right|upright=2|See all devices connected to your node via the 'Connections' tab]]&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Note: If you would like to be able to change these settings in the future, or ssh into your router, you will need to change the admin and root passwords within 12 hours.'''''&lt;br /&gt;
&lt;br /&gt;
To do so, open a terminal while connected to the 'pplsopen-admin' SSID:&lt;br /&gt;
    ssh root@172.30.0.1&lt;br /&gt;
Enter the following password: meshtheplanet&lt;br /&gt;
&lt;br /&gt;
Set the root password.&lt;br /&gt;
    passwd&lt;br /&gt;
Now set the admin password for logging into the web dashboard:&lt;br /&gt;
    passwd admin&lt;br /&gt;
&lt;br /&gt;
== Makenode (v.0.2.3 and earlier) ==&lt;br /&gt;
After you have successfully flashed your router with OpenWRT, you will need to use [https://github.com/sudomesh/makenode makenode] to complete the setup. makenode registers your node on the peoplesopen network, resulting in the assignment of a 64 IPv4 address subnet to your node, in addition to applying basic configuration.&lt;br /&gt;
&lt;br /&gt;
=== Install Dependencies ===&lt;br /&gt;
You first will need to install the dependencies for [https://github.com/sudomesh/makenode makenode].&lt;br /&gt;
&lt;br /&gt;
==== Linux ====&lt;br /&gt;
&lt;br /&gt;
If you are working with a fresh installation of one of the operating systems listed in the compatibility checklist, you will need to install a few pieces of software. &lt;br /&gt;
To install them, open your terminal and enter the following commands.&lt;br /&gt;
&lt;br /&gt;
  sudo apt update&lt;br /&gt;
  sudo apt install curl git dropbear&lt;br /&gt;
  curl -o- ht&amp;lt;span&amp;gt;tps://&amp;lt;/span&amp;gt;raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash&lt;br /&gt;
  export NVM_DIR=&amp;quot;$HOME/.nvm&amp;quot;&lt;br /&gt;
  [ -s &amp;quot;$NVM_DIR/nvm.sh&amp;quot; ] &amp;amp;&amp;amp; \. &amp;quot;$NVM_DIR/nvm.sh&amp;quot;  # or you can close and reopen your terminal before using nvm&lt;br /&gt;
  nvm install 7.10&lt;br /&gt;
&lt;br /&gt;
===== OS Compatibility checklist =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! OS !! Compatible !! Link to ISO !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 16.04 LTS || yes || http://releases.ubuntu.com/16.04/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 14.04 LTS || please verify || http://releases.ubuntu.com/14.04/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian 9.3 Stretch || yes || https://www.debian.org/distrib/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian 8.1 Jessie || yes || https://www.debian.org/releases/jessie/debian-installer/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Arch Linux || yes || https://www.archlinux.org/download/ || you may have to build dropbear from [https://github.com/mkj/dropbear source]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Mac ====&lt;br /&gt;
&lt;br /&gt;
Install the [http://brew.sh/ Homebrew] package manager, then install the required binaries.&lt;br /&gt;
&lt;br /&gt;
  brew install nodejs&lt;br /&gt;
  brew install git&lt;br /&gt;
  brew install npm&lt;br /&gt;
  brew install dropbear&lt;br /&gt;
  brew install gnu-tar&lt;br /&gt;
  brew install fakeroot&lt;br /&gt;
  brew install iproute2mac&lt;br /&gt;
&lt;br /&gt;
==== Windows 10 (Experimental)====&lt;br /&gt;
&lt;br /&gt;
'''Note: Windows is not currently recommened for setting up a node due to Dropbear not supporting Windows. What follows is instructions for Windows Subsytem for Linux.'''&lt;br /&gt;
&lt;br /&gt;
Due to Dropbear requirements your best bet is to use [[Windows Subsystem for Linux]] (WSL) and follow the instructions for Linux with additional instructions to get WSL set up. Follow the instructions for [https://docs.microsoft.com/en-us/windows/wsl/install-win10 installing] WSL on your Windows 10 PC. For now Ubuntu has been tested and appears to work. SUSE and other WSL flavors have not been tested.&lt;br /&gt;
&lt;br /&gt;
Once WSL is installed. Install dependencies (assuming Ubuntu).&lt;br /&gt;
&lt;br /&gt;
  sudo apt update&lt;br /&gt;
  sudo apt install python&lt;br /&gt;
  sudo apt install make&lt;br /&gt;
  sudo apt install build-essential&lt;br /&gt;
&lt;br /&gt;
WSL doesn't fully support SYSV IPC so fakeroot needs to be rebuilt using tcp.&lt;br /&gt;
&lt;br /&gt;
  sudo update-alternatives --set fakeroot /usr/bin/fakeroot-tcp&lt;br /&gt;
&lt;br /&gt;
Follow Linux [[Mesh/WalkThrough#Linux | instructions]] for installing Dropbear and dependencies.&lt;br /&gt;
&lt;br /&gt;
=== Install and run makenode ===&lt;br /&gt;
From your terminal, run the following:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/makenode -b 0.0.1&lt;br /&gt;
  cd makenode&lt;br /&gt;
  npm install&lt;br /&gt;
  cp settings.js.example settings.js&lt;br /&gt;
&lt;br /&gt;
The default settings in &amp;lt;tt&amp;gt;settings.js&amp;lt;/tt&amp;gt; should suffice in most cases, but if you need to make changes, do them in &amp;lt;tt&amp;gt;settings.js&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Make sure the Ethernet cable is connected to the 4th port on the router, and that your computer has a working internet connection (e.g. over WiFi). From a terminal, you should be able to ping the home node at 172.22.0.1 &amp;lt;b&amp;gt;and&amp;lt;/b&amp;gt; arbitrary websites like github.com.&lt;br /&gt;
&lt;br /&gt;
Once your network configuration is refreshed, use the following command to run the script and configure your node:&lt;br /&gt;
&lt;br /&gt;
  ./makenode.js&lt;br /&gt;
&lt;br /&gt;
Now the configuration wizard will ask you a number of questions:&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;enter valid hostname&amp;quot; - name of the box, will only be seen when you SSH into the router - For info on what constitutes a valid hostname, see: [http://stackoverflow.com/questions/3523028/valid-characters-of-a-hostname valid characters of a hostname]&lt;br /&gt;
* &amp;quot;max share upstream bandwidth&amp;quot; - how much of your home network upstream bandwidth you wish to share with the mesh network, measured in kbps (kilobits per second). So if you'd like to share 10mbps (megabits per second) enter &amp;quot;10000&amp;quot; or if you want to share 256kbps (kilobits per second) enter &amp;quot;256&amp;quot;. You may want to run a [http://www.dslreports.com/speedtest speed test] to find out how much bandwidth you have and determine how much you want to share.&lt;br /&gt;
* &amp;quot;max share downstream bandwidth&amp;quot; - how much of your home network upstream bandwidth you wish to share with the mesh network - eg. &amp;quot;512&amp;quot; would share 512 kbps&lt;br /&gt;
* &amp;quot;admin user password&amp;quot; - used to log into the admin dashboard where you can modify some settings at http://172.22.0.1 (if on wired connection) or http://172.30.0.1 (if on private wifi network)&lt;br /&gt;
* &amp;quot;root user password&amp;quot; - used to SSH into the router so you modify files and manually configure your router. Make sure that your root password is strong! If you don't enter a root password, a strong one will be generated and will be logged to screen. It's generally preferable to not use the root password at all and instead add an ssh key to the device, ssh keys are stored in /etc/dropbear/authorized_keys.&lt;br /&gt;
* &amp;quot;wifi transmit power&amp;quot; - set this to 23 dBm (which is equivalent to 200 milliwatts)&lt;br /&gt;
* &amp;quot;private wifi SSID&amp;quot; - name of the private wireless network that can be used to administer this router. It will be publicly visible so pick something amusing or descriptive.&lt;br /&gt;
* &amp;quot;private wifi password&amp;quot; - password for the private wireless network named in the previous step. It's the one you'll want to give to friends, so come up with something amusing or memorable. Note: it must be at least 8 characters long.&lt;br /&gt;
* &amp;quot;operator name&amp;quot; - name that the network admins can associate with the node - so use a unique name like your first name or location name&lt;br /&gt;
* &amp;quot;Operator email&amp;quot; - email that network admis can contact you at&lt;br /&gt;
* &amp;quot;Expected node address (optional)&amp;quot; - address location of node&lt;br /&gt;
&lt;br /&gt;
= Testing =&lt;br /&gt;
&lt;br /&gt;
After you're finished with the flashing and configuration, your home node should be available for connections via your private WiFi SSID. Additionally the public SSID 'peoplesopen.net' will be available. It should also be populated on the [https://peoplesopen.herokuapp.com monitor]!&lt;br /&gt;
&lt;br /&gt;
A third interface named 'pplsopen.net-node2node' will be detectable as well. This is the interface used for the nodes to mesh with each other.&lt;br /&gt;
&lt;br /&gt;
At this point you're setup. For more information on using your node, such as accessing the web-based management interface, see [[Home and extender nodes#Home_nodes|Home node info]]&lt;br /&gt;
&lt;br /&gt;
For more technical details on the internals of the home node, see the [[Mesh/Technical_Overview]]&lt;br /&gt;
&lt;br /&gt;
For more in depth testing procedures, see our [https://github.com/sudomesh/babeld-lab/blob/master/operator_manual.md mesh node operator's manual].&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
If you get the error &amp;quot;no such file or directory&amp;quot;, open a new terminal and run this command to ensure that &amp;lt;tt&amp;gt;node&amp;lt;/tt&amp;gt; points to your NodeJS executable:&lt;br /&gt;
&lt;br /&gt;
  sudo ln -s nodejs node&lt;br /&gt;
&lt;br /&gt;
In the new terminal, return to the 'makenode' source code directory and try again:&lt;br /&gt;
&lt;br /&gt;
  npm install&lt;br /&gt;
  ./makenode.js&lt;br /&gt;
&lt;br /&gt;
= Flashing TP-Link Routers =&lt;br /&gt;
If you happen to come across a TP-Link router, such as a WDR4300, you may discover that the above instructions absolutely do not work. This is especially true if the router has previously been flashed with the sudowrt firmware (or any kind of OpenWRT or DD-WRT?). If you find yourself attempting to reflash a TP-Link router, you will first need to reset the router to its factory default firmware. Luckily, redconfetti has provided instructions on how to do this, http://www.rubycoloredglasses.com/2016/04/tp-link-wdr4300-recovery/ (TODO, test/update these instructions and copy them to this wiki)&lt;br /&gt;
&lt;br /&gt;
Next, upload the sudort-firmware manually through the router's gui? Presumably, I haven't gotten that far yet...&lt;br /&gt;
&lt;br /&gt;
After that, makenode should just work right?&lt;br /&gt;
&lt;br /&gt;
There also exists something called tp-flasher, https://github.com/sudomesh/tp-flasher. However, it is highly recommended that you avoid using this because there is a very good chance you will brick your router if you use it incorrectly. Of course, we don't want to discourage anyone from improving tp-flasher.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Flashing Extender Nodes =&lt;br /&gt;
&lt;br /&gt;
If you would like to make long distance point-to-point connections between two or more home nodes, you'll want to setup an extender node (a roof mounted antenna).&lt;br /&gt;
&lt;br /&gt;
See [[Mesh/Flashing extender nodes]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Mesh]]&lt;/div&gt;</summary>
		<author><name>Gcg</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/SudoPad&amp;diff=11383</id>
		<title>Mesh/SudoPad</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/SudoPad&amp;diff=11383"/>
		<updated>2018-07-12T19:40:30Z</updated>

		<summary type="html">&lt;p&gt;Gcg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a place for providing instructions, documenting changes, and troubleshooting problems regarding SudoPad, the etherpad-lite instance running on the sudomesh server. &lt;br /&gt;
&lt;br /&gt;
Etherpad lite is a real time collaborative editor which allows multiple users to simultaneously work with the same document.&lt;br /&gt;
&lt;br /&gt;
SudoPad is available at https://peoplesopen.net/pad or https://peoplesopen.net:9001. Documentation regarding etherpad can be found in its repo, https://github.com/ether/etherpad-lite.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
If you receive an nginx error (like 503 bad gateway) when going to https://peoplesopen.net/pad:&lt;br /&gt;
* Try going to https://peoplesopen.net:9001&lt;br /&gt;
* If this also fails, start (or restart) the etherpad instance by logging into sudomesh server and running,&lt;br /&gt;
   sudo start etherpad-lite&lt;br /&gt;
&lt;br /&gt;
== Setting up an etherpad-lite instance ==&lt;br /&gt;
The following are the instructions that were used to install our instance of etherpad-lite and could be used to reinstall the instance from scratch. Instructions adapted from https://help.ubuntu.com/community/Etherpad-liteInstallation.&lt;br /&gt;
&lt;br /&gt;
1. Add a new etherpad-specific system user, etherpad should never be run as root in production.&lt;br /&gt;
   sudo adduser --system --home=/opt/etherpad --group etherpad-lite&lt;br /&gt;
2. Install prequistes, some of these may already be installed, but it is always good to check that they are up-to-date,&lt;br /&gt;
   sudo apt update&lt;br /&gt;
   sudo apt install gzip git-core curl python libssl-dev build-essential abiword python-software-properties&lt;br /&gt;
3. Next, you'll need to install Node.JS and NPM as the etherpad-lite user,&lt;br /&gt;
   sudo su - etherpad-lite -s /bin/bash &lt;br /&gt;
   curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash&lt;br /&gt;
   export NVM_DIR=&amp;quot;$HOME/.nvm&amp;quot;  # or you can close and reopen your terminal before using nvm&lt;br /&gt;
   nvm install 7.10&lt;br /&gt;
4. Install and test etherpad-lite with following command,&lt;br /&gt;
   sudo su - etherpad-lite -s /bin/bash &lt;br /&gt;
   mkdir -p ~/local/etherpad&lt;br /&gt;
   cd ~/local/etherpad&lt;br /&gt;
   git clone git://github.com/ether/etherpad-lite.git&lt;br /&gt;
   cd etherpad-lite&lt;br /&gt;
   bin/run.sh &lt;br /&gt;
5. Etherpad should now be running manually, you can check by going to &amp;lt;hostname&amp;gt;:9001&lt;br /&gt;
6. However, you will want to set up etherpad as a service that can be run in the background, to do this,&lt;br /&gt;
   sudo mkdir /var/log/etherpad-lite&lt;br /&gt;
   sudo chown etherpad /var/log/etherpad-lite&lt;br /&gt;
   sudo chown -R etherpad /var/log/etherpad-lite&lt;br /&gt;
   sudo nano /etc/init/etherpad-lite.conf&lt;br /&gt;
&lt;br /&gt;
7. In the etherpad-lite.conf file paste the following:&lt;br /&gt;
&lt;br /&gt;
   description &amp;quot;etherpad-lite&amp;quot;&lt;br /&gt;
   start on started networking&lt;br /&gt;
   stop on runlevel [!2345]&lt;br /&gt;
   env EPHOME=/opt/etherpad/local/etherpad/etherpad-lite  &lt;br /&gt;
   env EPLOGS=/var/log/etherpad-lite&lt;br /&gt;
   env EPUSER=etherpad-lite&lt;br /&gt;
   pre-start script&lt;br /&gt;
      cd $EPHOME&lt;br /&gt;
      mkdir $EPLOGS                              ||true&lt;br /&gt;
      chown $EPUSER:admin $EPLOGS                ||true&lt;br /&gt;
      chmod 0755 $EPLOGS                         ||true&lt;br /&gt;
      chown -R $EPUSER:admin $EPHOME/var         ||true&lt;br /&gt;
      $EPHOME/bin/installDeps.sh &amp;gt;&amp;gt; $EPLOGS/error.log || { stop; exit 1; }&lt;br /&gt;
   end script&lt;br /&gt;
   script&lt;br /&gt;
      cd $EPHOME/&lt;br /&gt;
      exec su -s /bin/sh -c 'exec &amp;quot;$0&amp;quot; &amp;quot;$@&amp;quot;' $EPUSER -- node node_modules/ep_etherpad-lite/node/server.js \&lt;br /&gt;
                        &amp;gt;&amp;gt; $EPLOGS/access.log \&lt;br /&gt;
                        2&amp;gt;&amp;gt; $EPLOGS/error.log&lt;br /&gt;
   end script&lt;br /&gt;
&lt;br /&gt;
8. Assuming everything worked correctly, you should be able to start the etherpad service,&lt;br /&gt;
   sudo start etherpad-lite&lt;br /&gt;
&lt;br /&gt;
9. Check if it worked by going again to &amp;lt;hostname&amp;gt;:9001&lt;br /&gt;
&lt;br /&gt;
== Setting up the MySQL database ==&lt;br /&gt;
You may have noticed a warning about DirtyDB in the logs when you started the service. It is advised that you do not use DirtyDB in production, instead, we'll setup a MySQL database for etherpad in our existing MySQL server.&lt;br /&gt;
&lt;br /&gt;
1. First, assumming that MySQL is already installed and configured on the server, log into the MySQL server as root,&lt;br /&gt;
   mysql -u root -p&lt;br /&gt;
2. Once in MySQL, execute the following commands,&lt;br /&gt;
   create database `etherpad-lite`;&lt;br /&gt;
   grant all privileges on `etherpad-lite`.* to 'etherpad'@'localhost';&lt;br /&gt;
   exit&lt;br /&gt;
3. Now go to the ethepad config file with,&lt;br /&gt;
   sudo nano /opt/etherpad/local/etherpad/etherpad-lite/settings.json&lt;br /&gt;
and change the settings to match the priveleges you just granted, replacing the default dbType categories with the following,&lt;br /&gt;
   &amp;quot;dbType&amp;quot; : &amp;quot;mysql&amp;quot;,&lt;br /&gt;
      &amp;quot;dbSettings&amp;quot; : {&lt;br /&gt;
          &amp;quot;user&amp;quot;    : &amp;quot;etherpad&amp;quot;, &lt;br /&gt;
          &amp;quot;host&amp;quot;    : &amp;quot;localhost&amp;quot;, &lt;br /&gt;
          &amp;quot;database&amp;quot;: &amp;quot;etherpad-lite&amp;quot;&lt;br /&gt;
          &amp;quot;charset&amp;quot; : &amp;quot;utf8mb4&amp;quot;&lt;br /&gt;
       },&lt;br /&gt;
4. Restart the service and go to &amp;lt;hostname&amp;gt;:9001 to enable the new settings and check that the instance is still working.&lt;br /&gt;
&lt;br /&gt;
5. Finally, back on the server, we'll need to change a few of the database's settings to do this, log into the MySQL server with,&lt;br /&gt;
   mysql -u root -p&lt;br /&gt;
and then execute the following commands,&lt;br /&gt;
   ALTER DATABASE `etherpad-lite` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;&lt;br /&gt;
   USE `etherpad-lite`;&lt;br /&gt;
   ALTER TABLE `store` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;&lt;br /&gt;
   exit&lt;br /&gt;
&lt;br /&gt;
6. To set backups of the etherpad-lite database...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Setting up log rotation ==&lt;br /&gt;
Explain what log rotation does? Why is it neccessary?&lt;br /&gt;
&lt;br /&gt;
1. Create a logrotate config file with,&lt;br /&gt;
   sudo nano /etc/logrotate.d/etherpad-lite&lt;br /&gt;
2. Copy and paste the following into this file,&lt;br /&gt;
   /var/log/etherpad-lite/*.log&lt;br /&gt;
   {&lt;br /&gt;
      rotate 4&lt;br /&gt;
      weekly&lt;br /&gt;
      missingok&lt;br /&gt;
      notifempty&lt;br /&gt;
      compress&lt;br /&gt;
      delaycompress&lt;br /&gt;
      sharedscripts&lt;br /&gt;
      postrotate&lt;br /&gt;
         restart etherpad-lite &amp;gt;/dev/null 2&amp;gt;&amp;amp;1 || true&lt;br /&gt;
      endscript&lt;br /&gt;
   }&lt;br /&gt;
3. Check that it is working with,&lt;br /&gt;
   logrotate -d /etc/logrotate.d/etherpad-lite&lt;br /&gt;
&lt;br /&gt;
== TODOs ==&lt;br /&gt;
* setup/check-on the timetable for clearing abandoned pads&lt;/div&gt;</summary>
		<author><name>Gcg</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/SudoPad&amp;diff=11382</id>
		<title>Mesh/SudoPad</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/SudoPad&amp;diff=11382"/>
		<updated>2018-07-12T19:35:54Z</updated>

		<summary type="html">&lt;p&gt;Gcg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a place for providing instructions, documenting changes, and troubleshooting problems regarding SudoPad, the etherpad-lite instance running on the sudomesh server. &lt;br /&gt;
&lt;br /&gt;
Etherpad lite is a real time collaborative editor which allows multiple users to simultaneously work with the same document.&lt;br /&gt;
&lt;br /&gt;
SudoPad is available at https://peoplesopen.net/pad or https://peoplesopen.net:9001. Documentation regarding etherpad can be found in its repo, https://github.com/ether/etherpad-lite.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
If you receive an nginx error (like 503 bad gateway) when going to https://peoplesopen.net/pad:&lt;br /&gt;
* Try going to https://peoplesopen.net:9001&lt;br /&gt;
* If this also fails, start (or restart) the etherpad instance by logging into sudomesh server and running,&lt;br /&gt;
   sudo start etherpad-lite&lt;br /&gt;
&lt;br /&gt;
== Setting up an etherpad-lite instance ==&lt;br /&gt;
The following are the instructions that were used to install our instance of etherpad-lite and could be used to reinstall the instance from scratch. Instructions adapted from https://help.ubuntu.com/community/Etherpad-liteInstallation.&lt;br /&gt;
&lt;br /&gt;
1. Add a new etherpad-specific system user, etherpad should never be run as root in production.&lt;br /&gt;
   sudo adduser --system --home=/opt/etherpad --group etherpad-lite&lt;br /&gt;
2. Install prequistes, some of these may already be installed, but it is always good to check that they are up-to-date,&lt;br /&gt;
   sudo apt update&lt;br /&gt;
   sudo apt install gzip git-core curl python libssl-dev build-essential abiword python-software-properties&lt;br /&gt;
3. Next, you'll need to install Node.JS and NPM, (someone please confirm steps for install node js, i think it was already installed)&lt;br /&gt;
   curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash&lt;br /&gt;
   export NVM_DIR=&amp;quot;$HOME/.nvm&amp;quot;  # or you can close and reopen your terminal before using nvm&lt;br /&gt;
   nvm install 7.10&lt;br /&gt;
4. Install and test etherpad-lite with following command,&lt;br /&gt;
   sudo su - etherpad-lite -s /bin/bash &lt;br /&gt;
   mkdir -p ~/local/etherpad&lt;br /&gt;
   cd ~/local/etherpad&lt;br /&gt;
   git clone git://github.com/ether/etherpad-lite.git&lt;br /&gt;
   cd etherpad-lite&lt;br /&gt;
   bin/run.sh &lt;br /&gt;
5. Etherpad should now be running manually, you can check by going to &amp;lt;hostname&amp;gt;:9001&lt;br /&gt;
6. However, you will want to set up etherpad as a service that can be run in the background, to do this,&lt;br /&gt;
   sudo mkdir /var/log/etherpad-lite&lt;br /&gt;
   sudo chown etherpad /var/log/etherpad-lite&lt;br /&gt;
   sudo chown -R etherpad /var/log/etherpad-lite&lt;br /&gt;
   sudo nano /etc/init/etherpad-lite.conf&lt;br /&gt;
&lt;br /&gt;
7. In the etherpad-lite.conf file paste the following:&lt;br /&gt;
&lt;br /&gt;
   description &amp;quot;etherpad-lite&amp;quot;&lt;br /&gt;
   start on started networking&lt;br /&gt;
   stop on runlevel [!2345]&lt;br /&gt;
   env EPHOME=/opt/etherpad/local/etherpad/etherpad-lite  &lt;br /&gt;
   env EPLOGS=/var/log/etherpad-lite&lt;br /&gt;
   env EPUSER=etherpad-lite&lt;br /&gt;
   pre-start script&lt;br /&gt;
      cd $EPHOME&lt;br /&gt;
      mkdir $EPLOGS                              ||true&lt;br /&gt;
      chown $EPUSER:admin $EPLOGS                ||true&lt;br /&gt;
      chmod 0755 $EPLOGS                         ||true&lt;br /&gt;
      chown -R $EPUSER:admin $EPHOME/var         ||true&lt;br /&gt;
      $EPHOME/bin/installDeps.sh &amp;gt;&amp;gt; $EPLOGS/error.log || { stop; exit 1; }&lt;br /&gt;
   end script&lt;br /&gt;
   script&lt;br /&gt;
      cd $EPHOME/&lt;br /&gt;
      exec su -s /bin/sh -c 'exec &amp;quot;$0&amp;quot; &amp;quot;$@&amp;quot;' $EPUSER -- node node_modules/ep_etherpad-lite/node/server.js \&lt;br /&gt;
                        &amp;gt;&amp;gt; $EPLOGS/access.log \&lt;br /&gt;
                        2&amp;gt;&amp;gt; $EPLOGS/error.log&lt;br /&gt;
   end script&lt;br /&gt;
&lt;br /&gt;
8. Assuming everything worked correctly, you should be able to start the etherpad service,&lt;br /&gt;
   sudo start etherpad-lite&lt;br /&gt;
&lt;br /&gt;
9. Check if it worked by going again to &amp;lt;hostname&amp;gt;:9001&lt;br /&gt;
&lt;br /&gt;
== Setting up the MySQL database ==&lt;br /&gt;
You may have noticed a warning about DirtyDB in the logs when you started the service. It is advised that you do not use DirtyDB in production, instead, we'll setup a MySQL database for etherpad in our existing MySQL server.&lt;br /&gt;
&lt;br /&gt;
1. First, assumming that MySQL is already installed and configured on the server, log into the MySQL server as root,&lt;br /&gt;
   mysql -u root -p&lt;br /&gt;
2. Once in MySQL, execute the following commands,&lt;br /&gt;
   create database `etherpad-lite`;&lt;br /&gt;
   grant all privileges on `etherpad-lite`.* to 'etherpad'@'localhost';&lt;br /&gt;
   exit&lt;br /&gt;
3. Now go to the ethepad config file with,&lt;br /&gt;
   sudo nano /opt/etherpad/local/etherpad/etherpad-lite/settings.json&lt;br /&gt;
and change the settings to match the priveleges you just granted, replacing the default dbType categories with the following,&lt;br /&gt;
   &amp;quot;dbType&amp;quot; : &amp;quot;mysql&amp;quot;,&lt;br /&gt;
      &amp;quot;dbSettings&amp;quot; : {&lt;br /&gt;
          &amp;quot;user&amp;quot;    : &amp;quot;etherpad&amp;quot;, &lt;br /&gt;
          &amp;quot;host&amp;quot;    : &amp;quot;localhost&amp;quot;, &lt;br /&gt;
          &amp;quot;database&amp;quot;: &amp;quot;etherpad-lite&amp;quot;&lt;br /&gt;
          &amp;quot;charset&amp;quot; : &amp;quot;utf8mb4&amp;quot;&lt;br /&gt;
       },&lt;br /&gt;
4. Restart the service and go to &amp;lt;hostname&amp;gt;:9001 to enable the new settings and check that the instance is still working.&lt;br /&gt;
&lt;br /&gt;
5. Finally, back on the server, we'll need to change a few of the database's settings to do this, log into the MySQL server with,&lt;br /&gt;
   mysql -u root -p&lt;br /&gt;
and then execute the following commands,&lt;br /&gt;
   ALTER DATABASE `etherpad-lite` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;&lt;br /&gt;
   USE `etherpad-lite`;&lt;br /&gt;
   ALTER TABLE `store` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;&lt;br /&gt;
   exit&lt;br /&gt;
&lt;br /&gt;
6. To set backups of the etherpad-lite database...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Setting up log rotation ==&lt;br /&gt;
Explain what log rotation does? Why is it neccessary?&lt;br /&gt;
&lt;br /&gt;
1. Create a logrotate config file with,&lt;br /&gt;
   sudo nano /etc/logrotate.d/etherpad-lite&lt;br /&gt;
2. Copy and paste the following into this file,&lt;br /&gt;
   /var/log/etherpad-lite/*.log&lt;br /&gt;
   {&lt;br /&gt;
      rotate 4&lt;br /&gt;
      weekly&lt;br /&gt;
      missingok&lt;br /&gt;
      notifempty&lt;br /&gt;
      compress&lt;br /&gt;
      delaycompress&lt;br /&gt;
      sharedscripts&lt;br /&gt;
      postrotate&lt;br /&gt;
         restart etherpad-lite &amp;gt;/dev/null 2&amp;gt;&amp;amp;1 || true&lt;br /&gt;
      endscript&lt;br /&gt;
   }&lt;br /&gt;
3. Check that it is working with,&lt;br /&gt;
   logrotate -d /etc/logrotate.d/etherpad-lite&lt;br /&gt;
&lt;br /&gt;
== TODOs ==&lt;br /&gt;
* setup/check-on the timetable for clearing abandoned pads&lt;/div&gt;</summary>
		<author><name>Gcg</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11151</id>
		<title>Mesh/WalkThrough</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11151"/>
		<updated>2018-04-19T00:41:19Z</updated>

		<summary type="html">&lt;p&gt;Gcg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Congratulations on choosing to become part of a People's Open Network! This is a walkthrough for flashing a node (a home router) with the SudoMesh's sudowrt-firmware (a custom build of OpenWRT) and then configuring it with makenode (a custom javascript tool developed by SudoMesh). At the end of the walkthrough, you'll be able to plug in your router and join the mesh. The walkthrough assumes you're using a linux-ish OS (mac OSX should work also) and that you have [https://help.ubuntu.com/community/UsingTheTerminal basic knowledge of the terminal]. The general idea of building your own mesh node consists of three steps, [[#Download/Build|downloading or compiling]] custom firmware, [[#Flash/Upload|flashing that firmware]] to the node (i.e. copying firmware to [https://en.wikipedia.org/wiki/Flash_memory flash memory]), and [[#makenode/Configure|configuring the node]] to function as part of a mesh (with a software tool such as makenode).&lt;br /&gt;
&lt;br /&gt;
Before you flash your router, it is recommended that you read the [[Home and extender nodes#Home_nodes|home node info]] to find out the router works as a mesh node.&lt;br /&gt;
&lt;br /&gt;
= Download/Build =&lt;br /&gt;
&lt;br /&gt;
Now that you have a node, you will probably want to learn how to flash it with the latest sudowrt-firmware. The first step is to download the firmware image file for your supported router. &lt;br /&gt;
&lt;br /&gt;
At the moment, we are supporting the following routers:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! OpenWRT Doc !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| TP-Link WDR3500 || [https://wiki.openwrt.org/toh/tp-link/tl-wdr3500 OpenWRT Docs] || [https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin latest] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin 0.2.0] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin 0.2.2]&lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin 0.2.3]&lt;br /&gt;
|-&lt;br /&gt;
| TP-Link WDR3600 || [https://wiki.openwrt.org/toh/tp-link/tl-wdr3600 OpenWRT Docs] || &lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin latest] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin 0.2.0] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin 0.2.2]&lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin 0.2.3]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| TP-Link WDR4300 || [https://wiki.openwrt.org/toh/tp-link/tl-wdr4300 OpenWRT Docs] || &lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin latest] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin 0.2.0] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin 0.2.2]&lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin 0.2.3]&lt;br /&gt;
|-&lt;br /&gt;
| Western Digital MyNet N600 || [https://wiki.openwrt.org/toh/wd/n600 OpenWRT Docs] || [https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin latest] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.0] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.2]&lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.3]&lt;br /&gt;
|-&lt;br /&gt;
| Western Digital MyNet N750 || [https://wiki.openwrt.org/toh/wd/n750 OpenWRT Docs] || &lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin latest] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin 0.2.0] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin 0.2.2]&lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin 0.2.3]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Builds for other routers can be found on our [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/ builds server] or on  [https://doi.org/10.5281/zenodo.1205601 zenodo], though there is no guarantee the firmware will work with any given router. For release notes, please go to our [https://github.com/sudomesh/sudowrt-firmware/releases github release pages].&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can build your own copy of the firmware images by following the guide in the [https://github.com/sudomesh/sudowrt-firmware sudowrt-firmware source].&lt;br /&gt;
&lt;br /&gt;
If you do not want to use a SudoMesh's OpenWRT image, you can also install [https://downloads.openwrt.org/ a standard OpenWRT] release and configure it from scratch.&lt;br /&gt;
&lt;br /&gt;
= Flash/Upload =&lt;br /&gt;
&lt;br /&gt;
Once you have a copy of the sudowrt-firmware intended for your router, you can proceed with flashing it to your router. There are different techniques for flashing each of the routers. Use the links above to the OpenWRT wiki and follow the instructions there to flash the router with the firmware you've downloaded.&lt;br /&gt;
&lt;br /&gt;
For convenience, if you have a Western Digital MyNet N600 or N750, follow these instructions:&lt;br /&gt;
&lt;br /&gt;
== Reset your new N750/N600 router ==&lt;br /&gt;
* Plug one end of the Ethernet cable into your laptop.&lt;br /&gt;
* Plug the other end of the Ethernet cable into one of the normal ports (LAN) on the router (not the Internet/WAN port).&lt;br /&gt;
* With the router plugged in and power turned off, push a pin into the reset hole and hold it.&lt;br /&gt;
* With the pin held down, turn on the router power button.&lt;br /&gt;
* Watch the front blue light - they will flash on and off a few times.&lt;br /&gt;
* Once the front blue is flashing, you can let go of the pin.&lt;br /&gt;
&lt;br /&gt;
== Configure your computer's network settings ==&lt;br /&gt;
On your laptop edit your network settings to reflect the following:&lt;br /&gt;
&lt;br /&gt;
* Network Manager Method: Manual&lt;br /&gt;
* IP Address: 192.168.1.10 (some devices will only accept from this IP)&lt;br /&gt;
* Subnet Mask: 255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0 (Or leave blank)&lt;br /&gt;
&lt;br /&gt;
You can also use the commands:&lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; down &lt;br /&gt;
  sudo ip addr add 192.168.1.10/24 dev &amp;lt;eth_interface&amp;gt; &lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; up&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;eth_interface&amp;gt; is the name of your ethernet interface found using `ip addr` (common names include eth0, enp3s0, ...)&lt;br /&gt;
&lt;br /&gt;
See Network Configuration Guides: [[Mesh/Network%20Configuration%20for%20Linux | Linux]], [[Mesh/Network%20Configuration%20for%20MacOS%20X | Mac]]&lt;br /&gt;
&lt;br /&gt;
== Upload sudowrt-firmware ==&lt;br /&gt;
In your web browser:&lt;br /&gt;
&lt;br /&gt;
* Go to [http://192.168.1.1 http://192.168.1.1], if the reset was successful, you should see the following page:&lt;br /&gt;
[[File:Screenshot from 2017-04-04 18-27-09.png|thumb|center|upright=2]]&lt;br /&gt;
* Click 'Browse' and select the firmware file you downloaded&lt;br /&gt;
* Click Upload and you will be taken to an exciting countdown timer:&lt;br /&gt;
[[File:Screenshot from 2017-04-02 17-20-51.png|thumb|center|upright=2]]&lt;br /&gt;
&lt;br /&gt;
Note: Sometimes the firmware upload will not complete. After you click on 'Upload' You should get a page with a countdown of 120+ seconds. If this does not occur, reboot the router with the pin reset button depressed (as noted above), and try again.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= makenode/Configure =&lt;br /&gt;
After flashing sudowrt-firmware to your router you will need to configure it work on a People's Open Network.&lt;br /&gt;
&lt;br /&gt;
== Reconfigure your computer's network settings ==&lt;br /&gt;
A freshly flashed node automatically sets its IP address to 172.22.0.1. You will need to configure your laptop to use the following network settings to communicate with the node.&lt;br /&gt;
&lt;br /&gt;
* IP address: 172.22.0.10 &lt;br /&gt;
* Subnet mask:  255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0&lt;br /&gt;
&lt;br /&gt;
Or use the commands&lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; down &lt;br /&gt;
  sudo ip addr add 172.22.0.10/24 dev &amp;lt;eth_interface&amp;gt; &lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; up&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;eth_interface&amp;gt; is the name of your ethernet interface found using `ip addr` (common names include eth0, enp3s0, ...)&lt;br /&gt;
&lt;br /&gt;
See Network Configuration Guides: [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20Linux Linux] [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20MacOS%20X Mac]&lt;br /&gt;
&lt;br /&gt;
To test that the flashing was successful, feel free to try connecting to your unconfigured router by opening a browser and navigating to http://172.22.0.1&lt;br /&gt;
if the flash was successfull you should be brought to the following screen:&lt;br /&gt;
&lt;br /&gt;
[[File:Peoplesopen-dash.png|thumb|center|upright=2]]&lt;br /&gt;
&lt;br /&gt;
After you have successfully flashed your router with OpenWRT, you will need to use [https://github.com/sudomesh/makenode makenode] to complete the setup. makenode registers your node on the peoplesopen network, resulting in the assignment of a 64 IPv4 address subnet to your node, in addition to applying basic configuration.&lt;br /&gt;
&lt;br /&gt;
== Preparing your laptop for makenode ==&lt;br /&gt;
&lt;br /&gt;
You will need to install the dependencies for [https://github.com/sudomesh/makenode makenode].&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
&lt;br /&gt;
If you are working with a fresh installation of one of the operating systems listed in the compatibility checklist, you will need to install a few pieces of software. &lt;br /&gt;
To install them, open your terminal and enter the following commands.&lt;br /&gt;
&lt;br /&gt;
  sudo apt update&lt;br /&gt;
  sudo apt install curl git dropbear&lt;br /&gt;
  curl -o- ht&amp;lt;span&amp;gt;tps://&amp;lt;/span&amp;gt;raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash&lt;br /&gt;
  export NVM_DIR=&amp;quot;$HOME/.nvm&amp;quot;  # or you can close and reopen your terminal before using nvm&lt;br /&gt;
  nvm install 7.10&lt;br /&gt;
&lt;br /&gt;
==== OS Compatibility checklist ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! OS !! Compatible !! Link to ISO !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 16.04 LTS || yes || http://releases.ubuntu.com/16.04/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 14.04 LTS || please verify || http://releases.ubuntu.com/14.04/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian 9.3 Stretch || yes || https://www.debian.org/distrib/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian 8.1 Jessie || yes || https://www.debian.org/releases/jessie/debian-installer/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Arch Linux || yes || https://www.archlinux.org/download/ || you may have to build dropbear from [https://github.com/mkj/dropbear source]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Mac ===&lt;br /&gt;
&lt;br /&gt;
Install the [http://brew.sh/ Homebrew] package manager, then install the required binaries.&lt;br /&gt;
&lt;br /&gt;
  brew install nodejs&lt;br /&gt;
  brew install git&lt;br /&gt;
  brew install npm&lt;br /&gt;
  brew install dropbear&lt;br /&gt;
  brew install gnu-tar&lt;br /&gt;
  brew install fakeroot&lt;br /&gt;
  brew install iproute2mac&lt;br /&gt;
&lt;br /&gt;
=== Windows 10 (Experimental)===&lt;br /&gt;
&lt;br /&gt;
'''Note: Windows is not currently recommened for setting up a node due to Dropbear not supporting Windows. What follows is instructions for Windows Subsytem for Linux.'''&lt;br /&gt;
&lt;br /&gt;
Due to Dropbear requirements your best bet is to use [[Windows Subsystem for Linux]] (WSL) and follow the instructions for Linux with additional instructions to get WSL set up. Follow the instructions for [https://docs.microsoft.com/en-us/windows/wsl/install-win10 installing] WSL on your Windows 10 PC. For now Ubuntu has been tested and appears to work. SUSE and other WSL flavors have not been tested.&lt;br /&gt;
&lt;br /&gt;
Once WSL is installed. Install dependencies (assuming Ubuntu).&lt;br /&gt;
&lt;br /&gt;
  sudo apt update&lt;br /&gt;
  sudo apt install python&lt;br /&gt;
  sudo apt install make&lt;br /&gt;
  sudo apt install build-essential&lt;br /&gt;
&lt;br /&gt;
WSL doesn't fully support SYSV IPC so fakeroot needs to be rebuilt using tcp.&lt;br /&gt;
&lt;br /&gt;
  sudo update-alternatives --set fakeroot /usr/bin/fakeroot-tcp&lt;br /&gt;
&lt;br /&gt;
Follow Linux [[Mesh/WalkThrough#Linux | instructions]] for installing Dropbear and dependencies.&lt;br /&gt;
&lt;br /&gt;
== Install and run makenode ==&lt;br /&gt;
&lt;br /&gt;
From your terminal, run the following:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/makenode -b 0.0.1&lt;br /&gt;
  cd makenode&lt;br /&gt;
  npm install&lt;br /&gt;
  cp settings.js.example settings.js&lt;br /&gt;
&lt;br /&gt;
The default settings in &amp;lt;tt&amp;gt;settings.js&amp;lt;/tt&amp;gt; should suffice in most cases, but if you need to make changes, do them in &amp;lt;tt&amp;gt;settings.js&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Make sure the Ethernet cable is connected to the 4th port on the router.&lt;br /&gt;
&lt;br /&gt;
Once your network configuration is refreshed, use the following command to run the script and configure your node:&lt;br /&gt;
&lt;br /&gt;
  ./makenode.js&lt;br /&gt;
&lt;br /&gt;
Now the configuration wizard will ask you a number of questions:&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;enter valid hostname&amp;quot; - name of the box, will only be seen when you SSH into the router - For info on what constitutes a valid hostname, see: [http://stackoverflow.com/questions/3523028/valid-characters-of-a-hostname valid characters of a hostname]&lt;br /&gt;
* &amp;quot;max share upstream bandwidth&amp;quot; - how much of your home network upstream bandwidth you wish to share with the mesh network, measured in kbps (kilobits per second). So if you'd like to share 10mbps (megabits per second) enter &amp;quot;10000&amp;quot; or if you want to share 256kbps (kilobits per second) enter &amp;quot;256&amp;quot;. You may want to run a [http://www.dslreports.com/speedtest speed test] to find out how much bandwidth you have and determine how much you want to share.&lt;br /&gt;
* &amp;quot;max share downstream bandwidth&amp;quot; - how much of your home network upstream bandwidth you wish to share with the mesh network - eg. &amp;quot;512&amp;quot; would share 512 kbps&lt;br /&gt;
* &amp;quot;admin user password&amp;quot; - used to log into the admin dashboard where you can modify some settings at http://172.22.0.1 (if on wired connection) or http://172.30.0.1 (if on private wifi network)&lt;br /&gt;
* &amp;quot;root user password&amp;quot; - used to SSH into the router so you modify files and manually configure your router. Make sure that your root password is strong! If you don't enter a root password, a strong one will be generated and will be logged to screen. It's generally preferable to not use the root password at all and instead add an ssh key to the device, ssh keys are stored in /etc/dropbear/authorized_keys.&lt;br /&gt;
* &amp;quot;wifi transmit power&amp;quot; - set this to 23 dBm (which is equivalent to 200 milliwatts)&lt;br /&gt;
* &amp;quot;private wifi SSID&amp;quot; - name of the private wireless network that can be used to administer this router. It will be publicly visible so pick something amusing or descriptive.&lt;br /&gt;
* &amp;quot;private wifi password&amp;quot; - password for the private wireless network named in the previous step. It's the one you'll want to give to friends, so come up with something amusing or memorable. Note: it must be at least 8 characters long.&lt;br /&gt;
* &amp;quot;operator name&amp;quot; - name that the network admins can associate with the node - so use a unique name like your first name or location name&lt;br /&gt;
* &amp;quot;Operator email&amp;quot; - email that network admis can contact you at&lt;br /&gt;
* &amp;quot;Expected node address (optional)&amp;quot; - address location of node&lt;br /&gt;
&lt;br /&gt;
= Testing =&lt;br /&gt;
&lt;br /&gt;
After you're finished with the makenode configuration, your home node should be available for connections via your private WiFi SSID. Additionally the public SSID 'peoplesopen.net' will be available. &lt;br /&gt;
&lt;br /&gt;
A third interface named 'pplsopen.net-node2node' will be detectable as well. This is the interface used for the nodes to mesh with each other.&lt;br /&gt;
&lt;br /&gt;
At this point you're setup. For more information on using your node, such as accessing the web-based management interface, see [[Home and extender nodes#Home_nodes|Home node info]]&lt;br /&gt;
&lt;br /&gt;
For more technical details on the internals of the home node, see the [[Mesh/Technical_Overview]]&lt;br /&gt;
&lt;br /&gt;
For more in depth testing procedures, see our [https://github.com/sudomesh/babeld-lab/blob/master/operator_manual.md mesh node operator's manual].&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
If you get the error &amp;quot;no such file or directory&amp;quot;, open a new terminal and run this command to ensure that &amp;lt;tt&amp;gt;node&amp;lt;/tt&amp;gt; points to your NodeJS executable:&lt;br /&gt;
&lt;br /&gt;
  sudo ln -s nodejs node&lt;br /&gt;
&lt;br /&gt;
In the new terminal, return to the 'makenode' source code directory and try again:&lt;br /&gt;
&lt;br /&gt;
  npm install&lt;br /&gt;
  ./makenode.js&lt;br /&gt;
&lt;br /&gt;
= Flashing TP-Link Routers =&lt;br /&gt;
If you happen to come across a TP-Link router, such as a WDR4300, you may discover that the above instructions absolutely do not work. This is especially true if the router has previously been flashed with the sudowrt firmware (or any kind of OpenWRT or DD-WRT?). If you find yourself attempting to reflash a TP-Link router, you will first need to reset the router to its factory default firmware. Luckily, redconfetti has provided instructions on how to do this, http://www.rubycoloredglasses.com/2016/04/tp-link-wdr4300-recovery/ (TODO, test/update these instructions and copy them to this wiki)&lt;br /&gt;
&lt;br /&gt;
Next, updload the sudort-firmware manually through the router's gui? Presumably, I haven't gotten that far yet...&lt;br /&gt;
&lt;br /&gt;
After that, makenode should just work right?&lt;br /&gt;
&lt;br /&gt;
There also exists something called tp-flasher, https://github.com/sudomesh/tp-flasher. However, it is highly recommended that you avoid using this because there is a very good chance you will brick your router if you use it incorrectly. Of course, we don't want to discourage anyone from improving tp-flasher.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Flashing Extender Nodes =&lt;br /&gt;
&lt;br /&gt;
If you would like to make long distance point-to-point connections between two or more home nodes, you'll want to setup an extender node (a roof mounted antenna).&lt;br /&gt;
&lt;br /&gt;
See [[Mesh/Flashing extender nodes]]&lt;/div&gt;</summary>
		<author><name>Gcg</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11132</id>
		<title>Mesh/WalkThrough</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11132"/>
		<updated>2018-04-11T07:29:17Z</updated>

		<summary type="html">&lt;p&gt;Gcg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Congratulations on choosing to become part of a People's Open Network! This is a walkthrough for flashing a node (a home router) with the SudoMesh's sudowrt-firmware (a custom build of OpenWRT) and then configuring it with makenode (a custom javascript tool developed by SudoMesh). At the end of the walkthrough, you'll be able to plug in your router and join the mesh. The walkthrough assumes you're using a linux-ish OS (mac OSX should work also) and that you have [https://help.ubuntu.com/community/UsingTheTerminal basic knowledge of the terminal]. The general idea of building your own mesh node consists of three steps, [[#Download/Build|downloading or compiling]] custom firmware, [[#Flash/Upload|flashing that firmware]] to the node (i.e. copying firmware to [https://en.wikipedia.org/wiki/Flash_memory flash memory]), and [[#makenode/Configure|configuring the node]] to function as part of a mesh (with a software tool such as makenode).&lt;br /&gt;
&lt;br /&gt;
Before you flash your router, it is recommended that you read the [[Home and extender nodes#Home_nodes|home node info]] to find out the router works as a mesh node.&lt;br /&gt;
&lt;br /&gt;
= Download/Build =&lt;br /&gt;
&lt;br /&gt;
Now that you have a node, you will probably want to learn how to flash it with the latest sudowrt-firmware. The first step is to download the firmware image file for your supported router. &lt;br /&gt;
&lt;br /&gt;
At the moment, we are supporting the following routers:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! OpenWRT Doc !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| TP-Link WDR3500 || [https://wiki.openwrt.org/toh/tp-link/tl-wdr3500 OpenWRT Docs] || [https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin latest] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin 0.2.0] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin 0.2.2]&lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin 0.2.3]&lt;br /&gt;
|-&lt;br /&gt;
| TP-Link WDR3600 || [https://wiki.openwrt.org/toh/tp-link/tl-wdr3600 OpenWRT Docs] || &lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin latest] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin 0.2.0] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin 0.2.2]&lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin 0.2.3]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| TP-Link WDR4300 || [https://wiki.openwrt.org/toh/tp-link/tl-wdr4300 OpenWRT Docs] || &lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin latest] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin 0.2.0] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin 0.2.2]&lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin 0.2.3]&lt;br /&gt;
|-&lt;br /&gt;
| Western Digital MyNet N600 || [https://wiki.openwrt.org/toh/wd/n600 OpenWRT Docs] || [https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin latest] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.0] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.2]&lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.3]&lt;br /&gt;
|-&lt;br /&gt;
| Western Digital MyNet N750 || [https://wiki.openwrt.org/toh/wd/n750 OpenWRT Docs] || &lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin latest] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin 0.2.0] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin 0.2.2]&lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin 0.2.3]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Builds for other routers can be found on our [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/ builds server] or on  [https://doi.org/10.5281/zenodo.1205601 zenodo], though there is no guarantee the firmware will work with any given router. For release notes, please go to our [https://github.com/sudomesh/sudowrt-firmware/releases github release pages].&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can build your own copy of the firmware images by following the guide in the [https://github.com/sudomesh/sudowrt-firmware sudowrt-firmware source].&lt;br /&gt;
&lt;br /&gt;
If you do not want to use a SudoMesh's OpenWRT image, you can also install [https://downloads.openwrt.org/ a standard OpenWRT] release and configure it from scratch.&lt;br /&gt;
&lt;br /&gt;
= Flash/Upload =&lt;br /&gt;
&lt;br /&gt;
Once you have a copy of the sudowrt-firmware intended for your router, you can proceed with flashing it to your router. There are different techniques for flashing each of the routers. Use the links above to the OpenWRT wiki and follow the instructions there to flash the router with the firmware you've downloaded.&lt;br /&gt;
&lt;br /&gt;
For convenience, if you have a Western Digital MyNet N600 or N750, follow these instructions:&lt;br /&gt;
&lt;br /&gt;
== Reset your new N750/N600 router ==&lt;br /&gt;
* Plug one end of the Ethernet cable into your laptop.&lt;br /&gt;
* Plug the other end of the Ethernet cable into one of the normal ports (LAN) on the router (not the Internet/WAN port).&lt;br /&gt;
* With the router plugged in and power turned off, push a pin into the reset hole and hold it.&lt;br /&gt;
* With the pin held down, turn on the router power button.&lt;br /&gt;
* Watch the front blue light - they will flash on and off a few times.&lt;br /&gt;
* Once the front blue is flashing, you can let go of the pin.&lt;br /&gt;
&lt;br /&gt;
== Configure your computer's network settings ==&lt;br /&gt;
On your laptop edit your network settings to reflect the following:&lt;br /&gt;
&lt;br /&gt;
* Network Manager Method: Manual&lt;br /&gt;
* IP Address: 192.168.1.10 (some devices will only accept from this IP)&lt;br /&gt;
* Subnet Mask: 255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0 (Or leave blank)&lt;br /&gt;
&lt;br /&gt;
You can also use the commands:&lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; down &lt;br /&gt;
  sudo ip addr add 192.168.1.10/24 dev &amp;lt;eth_interface&amp;gt; &lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; up&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;eth_interface&amp;gt; is the name of your ethernet interface found using `ip addr` (common names include eth0, enp3s0, ...)&lt;br /&gt;
&lt;br /&gt;
See Network Configuration Guides: [[Mesh/Network%20Configuration%20for%20Linux | Linux]], [[Mesh/Network%20Configuration%20for%20MacOS%20X | Mac]]&lt;br /&gt;
&lt;br /&gt;
== Upload sudowrt-firmware ==&lt;br /&gt;
In your web browser:&lt;br /&gt;
&lt;br /&gt;
* Go to [http://192.168.1.1 http://192.168.1.1], if the reset was successful, you should see the following page:&lt;br /&gt;
[[File:Screenshot from 2017-04-04 18-27-09.png|thumb|center|upright=2]]&lt;br /&gt;
* Click 'Browse' and select the firmware file you downloaded&lt;br /&gt;
* Click Upload and you will be taken to an exciting countdown timer:&lt;br /&gt;
[[File:Screenshot from 2017-04-02 17-20-51.png|thumb|center|upright=2]]&lt;br /&gt;
&lt;br /&gt;
Note: Sometimes the firmware upload will not complete. After you click on 'Upload' You should get a page with a countdown of 120+ seconds. If this does not occur, reboot the router with the pin reset button depressed (as noted above), and try again.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= makenode/Configure =&lt;br /&gt;
After flashing sudowrt-firmware to your router you will need to configure it work on a People's Open Network.&lt;br /&gt;
&lt;br /&gt;
== Reconfigure your computer's network settings ==&lt;br /&gt;
A freshly flashed node automatically sets its IP address to 172.22.0.1. You will need to configure your laptop to use the following network settings to communicate with the node.&lt;br /&gt;
&lt;br /&gt;
* IP address: 172.22.0.10 &lt;br /&gt;
* Subnet mask:  255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0&lt;br /&gt;
&lt;br /&gt;
Or use the commands&lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; down &lt;br /&gt;
  sudo ip addr add 172.22.0.10/24 dev &amp;lt;eth_interface&amp;gt; &lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; up&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;eth_interface&amp;gt; is the name of your ethernet interface found using `ip addr` (common names include eth0, enp3s0, ...)&lt;br /&gt;
&lt;br /&gt;
See Network Configuration Guides: [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20Linux Linux] [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20MacOS%20X Mac]&lt;br /&gt;
&lt;br /&gt;
To test that the flashing was successful, feel free to try connecting to your unconfigured router by opening a browser and navigating to http://172.22.0.1&lt;br /&gt;
if the flash was successfull you should be brought to the following screen:&lt;br /&gt;
&lt;br /&gt;
[[File:Peoplesopen-dash.png|thumb|center|upright=2]]&lt;br /&gt;
&lt;br /&gt;
After you have successfully flashed your router with OpenWRT, you will need to use [https://github.com/sudomesh/makenode makenode] to complete the setup. makenode registers your node on the peoplesopen network, resulting in the assignment of a 64 IPv4 address subnet to your node, in addition to applying basic configuration.&lt;br /&gt;
&lt;br /&gt;
== Preparing your laptop for makenode ==&lt;br /&gt;
&lt;br /&gt;
You will need to install the dependencies for [https://github.com/sudomesh/makenode makenode].&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
&lt;br /&gt;
If you are working with a fresh installation of one of the operating systems listed in the compatibility checklist, you will need to install a few pieces of software. &lt;br /&gt;
To install them, open your terminal and enter the following commands.&lt;br /&gt;
&lt;br /&gt;
  sudo apt update&lt;br /&gt;
  sudo apt install curl git dropbear&lt;br /&gt;
  curl -o- ht&amp;lt;span&amp;gt;tps://&amp;lt;/span&amp;gt;raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash&lt;br /&gt;
  export NVM_DIR=&amp;quot;$HOME/.nvm&amp;quot;  # or you can close and reopen your terminal before using nvm&lt;br /&gt;
  nvm install 7.10&lt;br /&gt;
&lt;br /&gt;
==== OS Compatibility checklist ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! OS !! Compatible !! Link to ISO !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 16.04 LTS || yes || http://releases.ubuntu.com/16.04/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 14.04 LTS || please verify || http://releases.ubuntu.com/14.04/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian 9.3 Stretch || yes || https://www.debian.org/distrib/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian 8.1 Jessie || yes || https://www.debian.org/releases/jessie/debian-installer/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Arch Linux || yes || https://www.archlinux.org/download/ || you may have to build dropbear from [https://github.com/mkj/dropbear source]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Mac ===&lt;br /&gt;
&lt;br /&gt;
Install the [http://brew.sh/ Homebrew] package manager, then install the required binaries.&lt;br /&gt;
&lt;br /&gt;
  brew install nodejs&lt;br /&gt;
  brew install git&lt;br /&gt;
  brew install npm&lt;br /&gt;
  brew install dropbear&lt;br /&gt;
  brew install gnu-tar&lt;br /&gt;
  brew install fakeroot&lt;br /&gt;
  brew install iproute2mac&lt;br /&gt;
&lt;br /&gt;
=== Windows 10 (Experimental)===&lt;br /&gt;
&lt;br /&gt;
'''Note: Windows is not currently recommened for setting up a node due to Dropbear not supporting Windows. What follows is instructions for Windows Subsytem for Linux.'''&lt;br /&gt;
&lt;br /&gt;
Due to Dropbear requirements your best bet is to use [[Windows Subsystem for Linux]] (WSL) and follow the instructions for Linux with additional instructions to get WSL set up. Follow the instructions for [https://docs.microsoft.com/en-us/windows/wsl/install-win10 installing] WSL on your Windows 10 PC. For now Ubuntu has been tested and appears to work. SUSE and other WSL flavors have not been tested.&lt;br /&gt;
&lt;br /&gt;
Once WSL is installed. Install dependencies (assuming Ubuntu).&lt;br /&gt;
&lt;br /&gt;
  sudo apt update&lt;br /&gt;
  sudo apt install python&lt;br /&gt;
  sudo apt install make&lt;br /&gt;
  sudo apt install build-essential&lt;br /&gt;
&lt;br /&gt;
WSL doesn't fully support SYSV IPC so fakeroot needs to be rebuilt using tcp.&lt;br /&gt;
&lt;br /&gt;
  sudo update-alternatives --set fakeroot /usr/bin/fakeroot-tcp&lt;br /&gt;
&lt;br /&gt;
Replace 'node-uuid' with 'uuid'&lt;br /&gt;
&lt;br /&gt;
  npm uninstall --save node-uuid&lt;br /&gt;
  npm install --save uuid&lt;br /&gt;
&lt;br /&gt;
Follow Linux [[Mesh/WalkThrough#Linux | instructions]] for installing Dropbear and dependencies.&lt;br /&gt;
&lt;br /&gt;
== Install and run makenode ==&lt;br /&gt;
&lt;br /&gt;
From your terminal, run the following:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/makenode.git&lt;br /&gt;
  cd makenode&lt;br /&gt;
  npm install&lt;br /&gt;
  cp settings.js.example settings.js&lt;br /&gt;
&lt;br /&gt;
The default settings in &amp;lt;tt&amp;gt;settings.js&amp;lt;/tt&amp;gt; should suffice in most cases, but if you need to make changes, do them in &amp;lt;tt&amp;gt;settings.js&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Make sure the Ethernet cable is connected to the 4th port on the router.&lt;br /&gt;
&lt;br /&gt;
Once your network configuration is refreshed, use the following command to run the script and configure your node:&lt;br /&gt;
&lt;br /&gt;
  ./makenode.js&lt;br /&gt;
&lt;br /&gt;
Now the configuration wizard will ask you a number of questions:&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;enter valid hostname&amp;quot; - name of the box, will only be seen when you SSH into the router - For info on what constitutes a valid hostname, see: [http://stackoverflow.com/questions/3523028/valid-characters-of-a-hostname valid characters of a hostname]&lt;br /&gt;
* &amp;quot;max share upstream bandwidth&amp;quot; - how much of your home network upstream bandwidth you wish to share with the mesh network, measured in kbps (kilobits per second). So if you'd like to share 10mbps (megabits per second) enter &amp;quot;10000&amp;quot; or if you want to share 256kbps (kilobits per second) enter &amp;quot;256&amp;quot;. You may want to run a [http://www.dslreports.com/speedtest speed test] to find out how much bandwidth you have and determine how much you want to share.&lt;br /&gt;
* &amp;quot;max share downstream bandwidth&amp;quot; - how much of your home network upstream bandwidth you wish to share with the mesh network - eg. &amp;quot;512&amp;quot; would share 512 kbps&lt;br /&gt;
* &amp;quot;admin user password&amp;quot; - used to log into the admin dashboard where you can modify some settings at http://172.22.0.1 (if on wired connection) or http://172.30.0.1 (if on private wifi network)&lt;br /&gt;
* &amp;quot;root user password&amp;quot; - used to SSH into the router so you modify files and manually configure your router. Make sure that your root password is strong! If you don't enter a root password, a strong one will be generated and will be logged to screen. It's generally preferable to not use the root password at all and instead add an ssh key to the device, ssh keys are stored in /etc/dropbear/authorized_keys.&lt;br /&gt;
* &amp;quot;wifi transmit power&amp;quot; - set this to 23 dBm (which is equivalent to 200 milliwatts)&lt;br /&gt;
* &amp;quot;private wifi SSID&amp;quot; - name of the private wireless network that can be used to administer this router. It will be publicly visible so pick something amusing or descriptive.&lt;br /&gt;
* &amp;quot;private wifi password&amp;quot; - password for the private wireless network named in the previous step. It's the one you'll want to give to friends, so come up with something amusing or memorable. Note: it must be at least 8 characters long.&lt;br /&gt;
* &amp;quot;operator name&amp;quot; - name that the network admins can associate with the node - so use a unique name like your first name or location name&lt;br /&gt;
* &amp;quot;Operator email&amp;quot; - email that network admis can contact you at&lt;br /&gt;
* &amp;quot;Expected node address (optional)&amp;quot; - address location of node&lt;br /&gt;
&lt;br /&gt;
= Testing =&lt;br /&gt;
&lt;br /&gt;
After you're finished with the makenode configuration, your home node should be available for connections via your private WiFi SSID. Additionally the public SSID 'peoplesopen.net' will be available. &lt;br /&gt;
&lt;br /&gt;
A third interface named 'pplsopen.net-node2node' will be detectable as well. This is the interface used for the nodes to mesh with each other.&lt;br /&gt;
&lt;br /&gt;
At this point you're setup. For more information on using your node, such as accessing the web-based management interface, see [[Home and extender nodes#Home_nodes|Home node info]]&lt;br /&gt;
&lt;br /&gt;
For more technical details on the internals of the home node, see the [[Mesh/Technical_Overview]]&lt;br /&gt;
&lt;br /&gt;
For more in depth testing procedures, see our [https://github.com/sudomesh/babeld-lab/blob/master/operator_manual.md mesh node operator's manual].&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
You may need to replace the `node-uuid` module with `uuid` for makenode to work, to fix this using the following commands:&lt;br /&gt;
&lt;br /&gt;
  npm uninstall --save node-uuid&lt;br /&gt;
  npm install --save uuid&lt;br /&gt;
&lt;br /&gt;
If you get the error &amp;quot;no such file or directory&amp;quot;, open a new terminal and run this command to ensure that &amp;lt;tt&amp;gt;node&amp;lt;/tt&amp;gt; points to your NodeJS executable:&lt;br /&gt;
&lt;br /&gt;
  sudo ln -s nodejs node&lt;br /&gt;
&lt;br /&gt;
In the new terminal, return to the 'makenode' source code directory and try again:&lt;br /&gt;
&lt;br /&gt;
  npm install&lt;br /&gt;
  ./makenode.js&lt;br /&gt;
&lt;br /&gt;
= Flashing TP-Link Routers =&lt;br /&gt;
If you happen to come across a TP-Link router, such as a WDR4300, you may discover that the above instructions absolutely do not work. This is especially true if the router has previously been flashed with the sudowrt firmware (or any kind of OpenWRT or DD-WRT?). If you find yourself attempting to reflash a TP-Link router, you will first need to reset the router to its factory default firmware. Luckily, redconfetti has provided instructions on how to do this, http://www.rubycoloredglasses.com/2016/04/tp-link-wdr4300-recovery/ (TODO, test/update these instructions and copy them to this wiki)&lt;br /&gt;
&lt;br /&gt;
Next, updload the sudort-firmware manually through the router's gui? Presumably, I haven't gotten that far yet...&lt;br /&gt;
&lt;br /&gt;
After that, makenode should just work right?&lt;br /&gt;
&lt;br /&gt;
There also exists something called tp-flasher, https://github.com/sudomesh/tp-flasher. However, it is highly recommended that you avoid using this because there is a very good chance you will brick your router if you use it incorrectly. Of course, we don't want to discourage anyone from improving tp-flasher.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Flashing Extender Nodes =&lt;br /&gt;
&lt;br /&gt;
If you would like to make long distance point-to-point connections between two or more home nodes, you'll want to setup an extender node (a roof mounted antenna).&lt;br /&gt;
&lt;br /&gt;
See [[Mesh/Flashing extender nodes]]&lt;/div&gt;</summary>
		<author><name>Gcg</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11131</id>
		<title>Mesh/WalkThrough</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11131"/>
		<updated>2018-04-11T01:41:13Z</updated>

		<summary type="html">&lt;p&gt;Gcg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Congratulations on choosing to become part of a People's Open Network! This is a walkthrough for flashing a node (a home router) with the SudoMesh's sudowrt-firmware (a custom build of OpenWRT) and then configuring it with makenode (a custom javascript tool developed by SudoMesh). At the end of the walkthrough, you'll be able to plug in your router and join the mesh. The walkthrough assumes you're using a linux-ish OS (mac OSX should work also) and that you have [https://help.ubuntu.com/community/UsingTheTerminal basic knowledge of the terminal]. The general idea of building your own mesh node consists of three steps, [[#Download/Build|downloading or compiling]] custom firmware, [[#Flash/Upload|flashing that firmware]] to the node (i.e. copying firmware to [https://en.wikipedia.org/wiki/Flash_memory flash memory]), and [[#makenode/Configure|configuring the node]] to function as part of a mesh (with a software tool such as makenode).&lt;br /&gt;
&lt;br /&gt;
Before you flash your router, it is recommended that you read the [[Home and extender nodes#Home_nodes|home node info]] to find out the router works as a mesh node.&lt;br /&gt;
&lt;br /&gt;
= Download/Build =&lt;br /&gt;
&lt;br /&gt;
Now that you have a node, you will probably want to learn how to flash it with the latest sudowrt-firmware. The first step is to download the firmware image file for your supported router. &lt;br /&gt;
&lt;br /&gt;
At the moment, we are supporting the following routers:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! OpenWRT Doc !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| TP-Link WDR3500 || [https://wiki.openwrt.org/toh/tp-link/tl-wdr3500 OpenWRT Docs] || [https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin latest] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin 0.2.0] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin 0.2.2]&lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin 0.2.3]&lt;br /&gt;
|-&lt;br /&gt;
| TP-Link WDR3600 || [https://wiki.openwrt.org/toh/tp-link/tl-wdr3600 OpenWRT Docs] || &lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin latest] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin 0.2.0] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin 0.2.2]&lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin 0.2.3]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| TP-Link WDR4300 || [https://wiki.openwrt.org/toh/tp-link/tl-wdr4300 OpenWRT Docs] || &lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin latest] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin 0.2.0] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin 0.2.2]&lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin 0.2.3]&lt;br /&gt;
|-&lt;br /&gt;
| Western Digital MyNet N600 || [https://wiki.openwrt.org/toh/wd/n600 OpenWRT Docs] || [https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin latest] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.0] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.2]&lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.3]&lt;br /&gt;
|-&lt;br /&gt;
| Western Digital MyNet N750 || [https://wiki.openwrt.org/toh/wd/n750 OpenWRT Docs] || &lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin latest] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin 0.2.0] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin 0.2.2]&lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin 0.2.3]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Builds for other routers can be found on our [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/ builds server] or on  [https://doi.org/10.5281/zenodo.1205601 zenodo], though there is no guarantee the firmware will work with any given router. For release notes, please go to our [https://github.com/sudomesh/sudowrt-firmware/releases github release pages].&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can build your own copy of the firmware images by following the guide in the [https://github.com/sudomesh/sudowrt-firmware sudowrt-firmware source].&lt;br /&gt;
&lt;br /&gt;
If you do not want to use a SudoMesh's OpenWRT image, you can also install [https://downloads.openwrt.org/ a standard OpenWRT] release and configure it from scratch.&lt;br /&gt;
&lt;br /&gt;
= Flash/Upload =&lt;br /&gt;
&lt;br /&gt;
Once you have a copy of the sudowrt-firmware intended for your router, you can proceed with flashing it to your router. There are different techniques for flashing each of the routers. Use the links above to the OpenWRT wiki and follow the instructions there to flash the router with the firmware you've downloaded.&lt;br /&gt;
&lt;br /&gt;
For convenience, if you have a Western Digital MyNet N600 or N750, follow these instructions:&lt;br /&gt;
&lt;br /&gt;
== Reset your new N750/N600 router ==&lt;br /&gt;
* Plug one end of the Ethernet cable into your laptop.&lt;br /&gt;
* Plug the other end of the Ethernet cable into one of the normal ports (LAN) on the router (not the Internet/WAN port).&lt;br /&gt;
* With the router plugged in and power turned off, push a pin into the reset hole and hold it.&lt;br /&gt;
* With the pin held down, turn on the router power button.&lt;br /&gt;
* Watch the front blue light - they will flash on and off a few times.&lt;br /&gt;
* Once the front blue is flashing, you can let go of the pin.&lt;br /&gt;
&lt;br /&gt;
== Configure your computer's network settings ==&lt;br /&gt;
On your laptop edit your network settings to reflect the following:&lt;br /&gt;
&lt;br /&gt;
* Network Manager Method: Manual&lt;br /&gt;
* IP Address: 192.168.1.10 (some devices will only accept from this IP)&lt;br /&gt;
* Subnet Mask: 255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0 (Or leave blank)&lt;br /&gt;
&lt;br /&gt;
You can also use the commands:&lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; down &lt;br /&gt;
  sudo ip addr add 192.168.1.10/24 dev &amp;lt;eth_interface&amp;gt; &lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; up&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;eth_interface&amp;gt; is the name of your ethernet interface found using `ip addr` (common names include eth0, enp3s0, ...)&lt;br /&gt;
&lt;br /&gt;
See Network Configuration Guides: [[Mesh/Network%20Configuration%20for%20Linux | Linux]], [[Mesh/Network%20Configuration%20for%20MacOS%20X | Mac]]&lt;br /&gt;
&lt;br /&gt;
== Upload sudowrt-firmware ==&lt;br /&gt;
In your web browser:&lt;br /&gt;
&lt;br /&gt;
* Go to [http://192.168.1.1 http://192.168.1.1], if the reset was successful, you should see the following page:&lt;br /&gt;
[[File:Screenshot from 2017-04-04 18-27-09.png|thumb|center|upright=2]]&lt;br /&gt;
* Click 'Browse' and select the firmware file you downloaded&lt;br /&gt;
* Click Upload and you will be taken to an exciting countdown timer:&lt;br /&gt;
[[File:Screenshot from 2017-04-02 17-20-51.png|thumb|center|upright=2]]&lt;br /&gt;
&lt;br /&gt;
Note: Sometimes the firmware upload will not complete. After you click on 'Upload' You should get a page with a countdown of 120+ seconds. If this does not occur, reboot the router with the pin reset button depressed (as noted above), and try again.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= makenode/Configure =&lt;br /&gt;
After flashing sudowrt-firmware to your router you will need to configure it work on a People's Open Network.&lt;br /&gt;
&lt;br /&gt;
== Reconfigure your computer's network settings ==&lt;br /&gt;
A freshly flashed node automatically sets its IP address to 172.22.0.1. You will need to configure your laptop to use the following network settings to communicate with the node.&lt;br /&gt;
&lt;br /&gt;
* IP address: 172.22.0.10 &lt;br /&gt;
* Subnet mask:  255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0&lt;br /&gt;
&lt;br /&gt;
Or use the commands&lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; down &lt;br /&gt;
  sudo ip addr add 172.22.0.10/24 dev &amp;lt;eth_interface&amp;gt; &lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; up&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;eth_interface&amp;gt; is the name of your ethernet interface found using `ip addr` (common names include eth0, enp3s0, ...)&lt;br /&gt;
&lt;br /&gt;
See Network Configuration Guides: [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20Linux Linux] [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20MacOS%20X Mac]&lt;br /&gt;
&lt;br /&gt;
To test that the flashing was successful, feel free to try connecting to your unconfigured router by opening a browser and navigating to http://172.22.0.1&lt;br /&gt;
if the flash was successfull you should be brought to the following screen:&lt;br /&gt;
&lt;br /&gt;
[[File:Peoplesopen-dash.png|thumb|center|upright=2]]&lt;br /&gt;
&lt;br /&gt;
After you have successfully flashed your router with OpenWRT, you will need to use [https://github.com/sudomesh/makenode makenode] to complete the setup. makenode registers your node on the peoplesopen network, resulting in the assignment of a 64 IPv4 address subnet to your node, in addition to applying basic configuration.&lt;br /&gt;
&lt;br /&gt;
== Preparing your laptop for makenode ==&lt;br /&gt;
&lt;br /&gt;
You will need to install the dependencies for [https://github.com/sudomesh/makenode makenode].&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
&lt;br /&gt;
If you are working with a fresh installation of one of the operating systems listed in the compatibility checklist, you will need to install a few pieces of software. &lt;br /&gt;
To install them, open your terminal and enter the following commands.&lt;br /&gt;
&lt;br /&gt;
  sudo apt update&lt;br /&gt;
  sudo apt install curl git dropbear&lt;br /&gt;
  curl -o- ht&amp;lt;span&amp;gt;tps://&amp;lt;/span&amp;gt;raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash&lt;br /&gt;
  export NVM_DIR=&amp;quot;$HOME/.nvm&amp;quot;  # or you can close and reopen your terminal before using nvm&lt;br /&gt;
  nvm install 7.10&lt;br /&gt;
&lt;br /&gt;
==== OS Compatibility checklist ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! OS !! Compatible !! Link to ISO !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 16.04 LTS || yes || http://releases.ubuntu.com/16.04/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 14.04 LTS || please verify || http://releases.ubuntu.com/14.04/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian 9.3 Stretch || yes || https://www.debian.org/distrib/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian 8.1 Jessie || yes || https://www.debian.org/releases/jessie/debian-installer/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Arch Linux || yes || https://www.archlinux.org/download/ || you may have to build dropbear from [https://github.com/mkj/dropbear source]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Mac ===&lt;br /&gt;
&lt;br /&gt;
Install the [http://brew.sh/ Homebrew] package manager, then install the required binaries.&lt;br /&gt;
&lt;br /&gt;
  brew install nodejs&lt;br /&gt;
  brew install git&lt;br /&gt;
  brew install npm&lt;br /&gt;
  brew install dropbear&lt;br /&gt;
  brew install gnu-tar&lt;br /&gt;
  brew install fakeroot&lt;br /&gt;
  brew install iproute2mac&lt;br /&gt;
&lt;br /&gt;
=== Windows 10 (Experimental)===&lt;br /&gt;
&lt;br /&gt;
'''Note: Windows is not currently recommened for setting up a node due to Dropbear not supporting Windows. What follows is instructions for Windows Subsytem for Linux.'''&lt;br /&gt;
&lt;br /&gt;
Due to Dropbear requirements your best bet is to use [[Windows Subsystem for Linux]] (WSL) and follow the instructions for Linux with additional instructions to get WSL set up. Follow the instructions for [https://docs.microsoft.com/en-us/windows/wsl/install-win10 installing] WSL on your Windows 10 PC. For now Ubuntu has been tested and appears to work. SUSE and other WSL flavors have not been tested.&lt;br /&gt;
&lt;br /&gt;
Once WSL is installed. Install dependencies (assuming Ubuntu).&lt;br /&gt;
&lt;br /&gt;
  sudo apt update&lt;br /&gt;
  sudo apt install python&lt;br /&gt;
  sudo apt install make&lt;br /&gt;
  sudo apt install build-essential&lt;br /&gt;
&lt;br /&gt;
WSL doesn't fully support SYSV IPC so fakeroot needs to be rebuilt using tcp.&lt;br /&gt;
&lt;br /&gt;
  sudo update-alternatives --set fakeroot /usr/bin/fakeroot-tcp&lt;br /&gt;
&lt;br /&gt;
Replace 'node-uuid' with 'uuid'&lt;br /&gt;
&lt;br /&gt;
  npm uninstall --save node-uuid&lt;br /&gt;
  npm install --save uuid&lt;br /&gt;
&lt;br /&gt;
Follow Linux [[Mesh/WalkThrough#Linux | instructions]] for installing Dropbear and dependencies.&lt;br /&gt;
&lt;br /&gt;
== Install and run makenode ==&lt;br /&gt;
&lt;br /&gt;
From your terminal, run the following:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/makenode.git&lt;br /&gt;
  cd makenode&lt;br /&gt;
  npm install&lt;br /&gt;
  cp settings.js.example settings.js&lt;br /&gt;
&lt;br /&gt;
The default settings in &amp;lt;tt&amp;gt;settings.js&amp;lt;/tt&amp;gt; should suffice in most cases, but if you need to make changes, do them in &amp;lt;tt&amp;gt;settings.js&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Make sure the Ethernet cable is connected to the 4th port on the router.&lt;br /&gt;
&lt;br /&gt;
Once your network configuration is refreshed, use the following command to run the script and configure your node:&lt;br /&gt;
&lt;br /&gt;
  ./makenode.js&lt;br /&gt;
&lt;br /&gt;
Now the configuration wizard will ask you a number of questions:&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;enter valid hostname&amp;quot; - name of the box, will only be seen when you SSH into the router - For info on what constitutes a valid hostname, see: [http://stackoverflow.com/questions/3523028/valid-characters-of-a-hostname valid characters of a hostname]&lt;br /&gt;
* &amp;quot;max share upstream bandwidth&amp;quot; - how much of your home network upstream bandwidth you wish to share with the mesh network, measured in kbps (kilobits per second). So if you'd like to share 10mbps (megabits per second) enter &amp;quot;10000&amp;quot; or if you want to share 256kbps (kilobits per second) enter &amp;quot;256&amp;quot;. You may want to run a [http://www.dslreports.com/speedtest speed test] to find out how much bandwidth you have and determine how much you want to share.&lt;br /&gt;
* &amp;quot;max share downstream bandwidth&amp;quot; - how much of your home network upstream bandwidth you wish to share with the mesh network - eg. &amp;quot;512&amp;quot; would share 512 kbps&lt;br /&gt;
* &amp;quot;admin user password&amp;quot; - used to log into the admin dashboard where you can modify some settings at http://172.22.0.1 (if on wired connection) or http://172.30.0.1 (if on private wifi network)&lt;br /&gt;
* &amp;quot;root user password&amp;quot; - used to SSH into the router so you modify files and manually configure your router. Make sure that your root password is strong! If you don't enter a root password, a strong one will be generated and will be logged to screen. It's generally preferable to not use the root password at all and instead add an ssh key to the device, ssh keys are stored in /etc/dropbear/authorized_keys.&lt;br /&gt;
* &amp;quot;wifi transmit power&amp;quot; - set this to 23 dBm (which is equivalent to 200 milliwatts)&lt;br /&gt;
* &amp;quot;private wifi SSID&amp;quot; - name of the private wireless network that can be used to administer this router. It will be publicly visible so pick something amusing or descriptive.&lt;br /&gt;
* &amp;quot;private wifi password&amp;quot; - password for the private wireless network named in the previous step. It's the one you'll want to give to friends, so come up with something amusing or memorable. Note: it must be at least 8 characters long.&lt;br /&gt;
* &amp;quot;operator name&amp;quot; - name that the network admins can associate with the node - so use a unique name like your first name or location name&lt;br /&gt;
* &amp;quot;Operator email&amp;quot; - email that network admis can contact you at&lt;br /&gt;
* &amp;quot;Expected node address (optional)&amp;quot; - address location of node&lt;br /&gt;
&lt;br /&gt;
= Testing =&lt;br /&gt;
&lt;br /&gt;
After you're finished with the makenode configuration, your home node should be available for connections via your private WiFi SSID. Additionally the public SSID 'peoplesopen.net' will be available. &lt;br /&gt;
&lt;br /&gt;
A third interface named 'pplsopen.net-node2node' will be detectable as well. This is the interface used for the nodes to mesh with each other.&lt;br /&gt;
&lt;br /&gt;
At this point you're setup. For more information on using your node, such as accessing the web-based management interface, see [[Home and extender nodes#Home_nodes|Home node info]]&lt;br /&gt;
&lt;br /&gt;
For more technical details on the internals of the home node, see the [[Mesh/Technical_Overview]]&lt;br /&gt;
&lt;br /&gt;
For more in depth testing procedures, see our [https://github.com/sudomesh/babeld-lab/blob/master/operator_manual.md mesh node operator's manual].&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
You may need to replace the `node-uuid` module with `uuid` for makenode to work, to fix this using the following commands:&lt;br /&gt;
&lt;br /&gt;
  npm uninstall --save node-uuid&lt;br /&gt;
  npm install --save uuid&lt;br /&gt;
&lt;br /&gt;
If you get the error &amp;quot;no such file or directory&amp;quot;, open a new terminal and run this command to ensure that &amp;lt;tt&amp;gt;node&amp;lt;/tt&amp;gt; points to your NodeJS executable:&lt;br /&gt;
&lt;br /&gt;
  sudo ln -s nodejs node&lt;br /&gt;
&lt;br /&gt;
In the new terminal, return to the 'makenode' source code directory and try again:&lt;br /&gt;
&lt;br /&gt;
  npm install&lt;br /&gt;
  ./makenode.js&lt;br /&gt;
&lt;br /&gt;
= Flashing TP-Link Routers =&lt;br /&gt;
If you happen to come across a TP-Link router, such as a WDR4300, you may discover that the above instructions absolutely do not work. This is especially true if the router has previously been flashed with the sudowrt firmware (or any kind of OpenWRT or DD-WRT?). If you find yourself attempting to reflash a TP-Link router, you will first need to reset the router to its factory default firmware. Luckily, redconfetti has provided instructions on how to do this, http://www.rubycoloredglasses.com/2016/04/tp-link-wdr4300-recovery/ (TODO, test/update these instructions and copy them to this wiki)&lt;br /&gt;
&lt;br /&gt;
Next, updload the sudort-firmware manually through the router's gui? Presumably, I haven't gotten that far yet...&lt;br /&gt;
&lt;br /&gt;
After that, makenode should just work right?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Flashing Extender Nodes =&lt;br /&gt;
&lt;br /&gt;
If you would like to make long distance point-to-point connections between two or more home nodes, you'll want to setup an extender node (a roof mounted antenna).&lt;br /&gt;
&lt;br /&gt;
See [[Mesh/Flashing extender nodes]]&lt;/div&gt;</summary>
		<author><name>Gcg</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/20_Mar_2018&amp;diff=11118</id>
		<title>Mesh/20 Mar 2018</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/20_Mar_2018&amp;diff=11118"/>
		<updated>2018-03-26T15:25:25Z</updated>

		<summary type="html">&lt;p&gt;Gcg: Created page with &amp;quot;People's Open Network Weekly Meeting - 20 March 2018 7:30pm-9pm * https://omnicommons.org/wiki/Safer_Space_Policy  === Agenda === * Introductions and Meeting Roles (10 mins) *...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;People's Open Network Weekly Meeting - 20 March 2018 7:30pm-9pm&lt;br /&gt;
* https://omnicommons.org/wiki/Safer_Space_Policy&lt;br /&gt;
&lt;br /&gt;
=== Agenda ===&lt;br /&gt;
* Introductions and Meeting Roles (10 mins)&lt;br /&gt;
* Check in on previous action items (5 mins)&lt;br /&gt;
* Updates &amp;amp; Reportbacks (20 mins)&lt;br /&gt;
* Next Sunday (5 mins)&lt;br /&gt;
* Proposal X: (15 mins)&lt;br /&gt;
* Discussion/Proposal: Interview Blog Posts (10 mins)&lt;br /&gt;
* Discussion: Legal Relationship w/ Omni (10 mins)&lt;br /&gt;
* Discussion Minimal Insurance for Protecting Mounters + SudoMesh (15 mins)&lt;br /&gt;
* Action Items (5 mins)&lt;br /&gt;
* Breakout Groups&lt;br /&gt;
&lt;br /&gt;
=== Introductions ===&lt;br /&gt;
Introduce yourself: Name; Preferred Pronoun; Icebreaker Response; BRIEF Announcements&lt;br /&gt;
* Icebreaker question: What do you like to do on rainy days?&lt;br /&gt;
* Will - I run a node live in the neighborhood, interested in node mounts. On this rainy day, I figured out how to port forward on my router.&lt;br /&gt;
* Hilary - Occasionally come to meetings, not very often recently. Made a post about the open data hackathon at san francisco state. Jenny recommended coming to the meeting. On rainy days I like to binge-watch movies.&lt;br /&gt;
* Jorrit - Trying to figure out how to get more people up to speed on how to operate the network. Two things I like about rain: 1) walking in th rain--makes you feel warm even though you're wet. 2) looking outside from inside, appreciate roof.&lt;br /&gt;
* Doug - I also run a node. Have mechanical skills--here cause seems like those skills would be a good contribution to the group. If I have my druthers, I sit with the bees and read.&lt;br /&gt;
* Seth - Want to learn how to set up an internet so if I get priced. Took my first shower in the rain this year.&lt;br /&gt;
* Benny - Have been working on technical bits--want to start working on less technical bits. I also like to read when it's raining.&lt;br /&gt;
* Jenny - On rainy days I like to work on making spreadsheets.&lt;br /&gt;
* Robb - On rainy days I like to rest.&lt;br /&gt;
* Leslie - Rainy days are nice when you're in bed, otherwise not so much.&lt;br /&gt;
* Jenny - building lots of tiny houses for the homeless every saturday and sunday. get in touch w/ me after if interested.&lt;br /&gt;
&lt;br /&gt;
=== Meeting Roles ===&lt;br /&gt;
* Facilitator/s: Will&lt;br /&gt;
* Stacktaker: &lt;br /&gt;
* Notetaker/s: Benny, Jenny&lt;br /&gt;
** URL of this pad: https://peoplesopen.net/notes&lt;br /&gt;
* Next meeting's facilitator(s): &lt;br /&gt;
&lt;br /&gt;
== Check in on previous action items ==&lt;br /&gt;
Check previous meeting minutes at https://sudoroom.org/wiki/Mesh/Minutes and past action items below:&lt;br /&gt;
* send a reminder to Amos &amp;amp; Co. - grant &lt;br /&gt;
** done, see notes below&lt;br /&gt;
* work-on/submit AMC proposal, due March 16 - grant, mai, jnny &lt;br /&gt;
** https://docs.google.com/document/d/1UC8wBRUX9irX_FOFQTcB3H9SHsD-HiV4x-2h277VUNI/edit# &lt;br /&gt;
* make a plan for sunday w/ folks from Alameda--let's chat in rocketchat / make a lesson plan here: https://peoplesopen.net/pad/p/sunday-lesson-plan - added to trello (events)&lt;br /&gt;
* announce on sudomesh group re: changing the name to &amp;quot;Sudomesh URGENT&amp;quot; and making sure almost all of the communications goes on Rocket.chat (mai) - done!&lt;br /&gt;
* look at the Rocket.chat channels that need more privacy than others, such as node mounts (ben, benny) We'll report back next week regarding what access control might be necessary on which channels, at which time we can discuss how access will be facilitated. &lt;br /&gt;
** separate out feed channels from discussion channels&lt;br /&gt;
* buy outlet cover for diane's - jenny &lt;br /&gt;
** going to purchase en route to diane's this weekend&lt;br /&gt;
** doug: we should stock up on some outdoor enclosures and outlet covers etc. i'll make a list&lt;br /&gt;
**Will: J-poles? If you don't have a plumbing vent on roof, can use j-pole to attach to awning&lt;br /&gt;
* 2017 financial statements - jenny&lt;br /&gt;
** almost done, worked on it most of the day, should be ready by end of the bank&lt;br /&gt;
** working to prove that we have income / spending in order to get insurance&lt;br /&gt;
* finish biz plan &amp;amp; budget &amp;amp; send to insurance broker [jnny]&lt;br /&gt;
** just need to create financial reports - https://docs.google.com/document/d/1H8x3JnbGEkoeE3CwMzrCC0MD1tIAhb6O8JjLsiC51xw/edit# &lt;br /&gt;
&lt;br /&gt;
==Updates==&lt;br /&gt;
=== Bugs/Technical ===&lt;br /&gt;
Priority bugs we need help with are located at: http://peoplesopen.net/helpwanted - For a high-level overview of recent Github activity, see the Trello: https://trello.com/invite/b/r9l5ouQ4/3b2eecd83bb9e7a57a339cf1ee038288/sudo-mesh-github-repos&lt;br /&gt;
* the disable logging bug has been done, yes? A conversation on github with grant and jorrit made that seem to be the case&lt;br /&gt;
** benny: fix found, patch not finished&lt;br /&gt;
* define remote node patch procedure&lt;br /&gt;
** jorrit: first need to do it locally. did it for bug  #8 and documented thoroughly in the readme: https://github.com/sudomesh/patches/tree/master/bug0008&lt;br /&gt;
*** benny: can do a breakout after. grant has a guide for writing patches: https://github.com/sudomesh/patches &lt;br /&gt;
* new exit node at hurricane electric &lt;br /&gt;
**jorrit set up new exit node. Currently several nodes connected to it&lt;br /&gt;
***need to patch home node to make htis happen because it needs a newer version of tunneldigger&lt;br /&gt;
**jorrit: also new firmware with new version of tunneldigger&lt;br /&gt;
* Jorrit: we need more diskspace - last build was over 1 gig&lt;br /&gt;
** Benny: more RAM would be nice too&lt;br /&gt;
*** will: wrap up psychz account&lt;br /&gt;
* upgrade tunneldigger broker/client&lt;br /&gt;
* who owns what? &lt;br /&gt;
** jorrit - would like to know who owns what servers. e.g. who owns the HE server? who owns the psychz server?&lt;br /&gt;
*** jenny - HE will be so much better to negotiate DMCA notices w/ since we can talk to people face to face&lt;br /&gt;
** jorrit - am excited about all the activity. would be great if someone would organize the next node-whisper session.&lt;br /&gt;
* rocket chat updated&lt;br /&gt;
** ty benny! &amp;lt;3&lt;br /&gt;
&lt;br /&gt;
=== Node Mounts &amp;amp; Outreach ===&lt;br /&gt;
Node Mounts Trello: https://trello.com/invite/b/DtzngKaM/49e1c21fc9da199fcdeceb8623b5117a/node-mounts&lt;br /&gt;
&lt;br /&gt;
=== Discussion: Minimal Insurance for Protecting Mounters + SudoMesh (15 mins) ===&lt;br /&gt;
* To be lead by Doug&lt;br /&gt;
* Mght want to discourage or disallow first-timers to climb rooftops?&lt;br /&gt;
* Owners vs. renters&lt;br /&gt;
* Doug - workers comp for roofers is huge. might want to be a little more formal about people who are going on roofs. enthusiasm is how things get done and how people over-reach. i felt fine when people were at my place because i set up the ladder, etc. i think it would make sense to have some minimal protection for the non-profit and for the person on the roof for any accidents that happen. homeowners + rentals are different scenarios. also have some more ladder training, because falls are such a real danger.&lt;br /&gt;
* Jorrit - we have a node mounter's guide, maybe you can contribute?&lt;br /&gt;
* doug - yes--it's great that you have a guide. even having a guide is a great step toward protecting people and your organizaiton&lt;br /&gt;
** adding it to the prep/training talk, for instance&lt;br /&gt;
* will/benny - maybe should do ladder trainings before *every* mount (in addition to an office hours or monthly safety training)&lt;br /&gt;
* jenny - we also need safety equipment - hard hats, harnesses&lt;br /&gt;
** lesley: i have a harness, but not the rope and belay device.&lt;br /&gt;
*** doug: yes, exactly, rock climbing equipment is essentially the same&lt;br /&gt;
*** Will: There's a nonprofit in Richmond that trains people to install solar panels: https://solarrichmond.org&lt;br /&gt;
*** Will: Also one in Oakland: https://gridalternatives.org&lt;br /&gt;
** Robb knows someone who trains Greenpeace people for actions that include climbing buildings &lt;br /&gt;
* jorrit: sounds like we want to organize an event - maybe an office hours on mounting safety &amp;amp; training&lt;br /&gt;
** doug: let's start with research - talk with orgs doing it in the field&lt;br /&gt;
&lt;br /&gt;
=== Laptop Donation Interlude ===&lt;br /&gt;
* Will - I have a laptop to donate, no hard drive&lt;br /&gt;
* All - Yayyyyyy&lt;br /&gt;
&lt;br /&gt;
=== Node Repair Interlude ===&lt;br /&gt;
* Jorrit - if you know someone with a broken node, tell them to bring it in to get it fixed! sometime i want to organize a node appreciation day--put rhinestones on nodes, make them your own, etc.&lt;br /&gt;
&lt;br /&gt;
=== Communications &amp;amp; Events ===&lt;br /&gt;
Comms Trello: https://trello.com/invite/b/f3ugMPNU/94033ee6c2cef93fc1b1637b727c902a/sudo-mesh-communications // Events Trello: https://trello.com/invite/b/Y3XfDK85/2b6fcb4fa92788609692a53a96fb4614/peoples-open-events&lt;br /&gt;
* hilary - (passes out one-laptop-per-child) OLPCs - Open Hack 2018 at SF State University last weekend in April 27-29&lt;br /&gt;
** Professor Sameer Verma at SFSU - Jenny and Marc presented Sudomesh to his class on Networking several years ago&lt;br /&gt;
** going to piggy back off of openhackathon -- open education part -- want to create a library for OLPCs to connect to for example. we need help with it. the OLPCs also mesh with each other even if there's no internet, but noone has been able to do it very successfully. two ways to be involved. (1) sponsor a project for someone else to work on or (2) work on a project that someone already has.&lt;br /&gt;
** starts on friday night - sponsors of projects will have posterboards around the room. can see what people are being asked to do. Next morning, people form teams to work on the projects. Sunday afternoon, present the solutions. not exclusively OLPC projects, but Hilary will be there with OLPC projects for people to work on.&lt;br /&gt;
** learned at a tech teacher conference that 5 million families in the US do not have internet access at home. encourage the folks at peoples open to think about and focus on bringing internet access to those families w/o internet in oakland and the bay area.&lt;br /&gt;
* jorrit - would like to figure out how to connect to communities that do not have internet access&lt;br /&gt;
** a workshop before, or a workshop after?&lt;br /&gt;
*** hilary: probably churches would be a good way to connect&lt;br /&gt;
*** jenny: lots of great orgs in that area where hilary had a church lead (Fruitvale) - native health center, sol/lol, eastside arts alliance&lt;br /&gt;
* hilary - even if it's not a specific action, would be good to have a consciousness in mind, so that when we have choices, we choose wisely&lt;br /&gt;
* jorrit - wondering about next steps/who can move in this direction w/ action&lt;br /&gt;
&lt;br /&gt;
=== Internal Logistics / Finance ===&lt;br /&gt;
Internal Logistics &amp;amp; Bureaucracy Trello: https://trello.com/invite/b/LzVQlW3X/1bb8bd543c8633688175365d2554c2c2/internal-logistics-bureaucracy-brainstorms&lt;br /&gt;
* Jenny working on Chart of Accounts &amp;amp; a Fiscal Procedures doc: https://docs.google.com/document/d/1PeFoJUe4X3ww4mFKUMvbC4A-Yc_6sh5qbYdEgTdJpYQ/edit#&lt;br /&gt;
* No War Tax grant application due Friday&lt;br /&gt;
&lt;br /&gt;
== Next Sunday ==&lt;br /&gt;
=== Node Mount ===&lt;br /&gt;
We try to arrange a rooftop node mount every Sunday afternoon. Ongoing spreadsheet is located at: https://peoplesopen.net/sundays&lt;br /&gt;
* Next Sunday's mount: James, scheduled by Grant - see Trello&lt;br /&gt;
&lt;br /&gt;
=== Office Hours ===&lt;br /&gt;
We host office hours every Sunday from 1-3pm in Sudo Room. To sign up for a shift, fill in your name here: https://ethercalc.org/byoi_office_hours&lt;br /&gt;
* Next Sunday's volunteer: TODO&lt;br /&gt;
* Notes from this past Sunday's session: &lt;br /&gt;
** lesley: bunch of folks came over on Sunday for office hours from Alameda Open Network(?)&lt;br /&gt;
** jorrit: trying to set up a mesh in Alameda, emphasis on community organizing. &lt;br /&gt;
*** did some reenactments of packet communication with physical paper packets :)&lt;br /&gt;
** lesley: wanted us to do a bit more physically mounting nodes than we were able to commit to, &lt;br /&gt;
** jorrit: amos had lots of interesting ideas re: communication. most people interested just in 'free internet' - sharing with your neighbor sounds nice, but you don't really want to do it.  the meshing is a technicality, explain as a way to get free internet&lt;br /&gt;
*** followup? jorrit: be patient. we don't have mad extra bandwidth to do anything for them.&lt;br /&gt;
&lt;br /&gt;
== Action Items ==&lt;br /&gt;
* Need coordinator for next Sunday office hours!&lt;br /&gt;
* Finish the &amp;quot;hey, awesome, you have a node now!&amp;quot; messaging (Benny)&lt;br /&gt;
* Add cash mesh donations to accounting (peoplesopen.net/donation) - Jenny&lt;br /&gt;
* Make generic list of hardware to stock up for outdoor mounts - Doug&lt;br /&gt;
* Reach out to needabee &amp;amp; praveen re: fruitvale mesh - jenny&lt;br /&gt;
* coordinate w/ Doug about planning a mounting safety training - jorrit&lt;br /&gt;
* send email to mesh list about omni legal structure - jnny&lt;br /&gt;
&lt;br /&gt;
== Breakout Groups ==&lt;br /&gt;
At the end of the meeting, break out into small groups to hack on or discuss specific topics.&lt;br /&gt;
* Inventory/Storage? - jenny&lt;br /&gt;
* rocket chat channels - benny &amp;amp; jenny  -&amp;gt; move convo to rocket chat&lt;br /&gt;
* patches? - benny&lt;br /&gt;
&lt;br /&gt;
== Last Meeting Notes ==&lt;br /&gt;
* https://sudoroom.org/wiki/Mesh/13_Mar_2018&lt;br /&gt;
&lt;br /&gt;
== End of Meeting ==&lt;br /&gt;
* please archive these meeting notes by copying the entire pad contents onto the sudomesh wiki&lt;br /&gt;
* then please erase the contents of this pad&lt;br /&gt;
* then please cut &amp;amp; paste a blank template from here: https://sudoroom.org/mediawiki/index.php?title=Mesh/Mesh_Meeting_Notes_Template&amp;amp;action=edit&lt;br /&gt;
* previous meeting notes are archived here: https://sudoroom.org/wiki/Mesh/Minutes&lt;/div&gt;</summary>
		<author><name>Gcg</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/PeoplesOpenChat&amp;diff=11096</id>
		<title>Mesh/PeoplesOpenChat</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/PeoplesOpenChat&amp;diff=11096"/>
		<updated>2018-03-11T16:49:38Z</updated>

		<summary type="html">&lt;p&gt;Gcg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;People's Open Chat is a [https://rocket.chat/ Rocket.Chat] instance that is being hosted on the sudomesh server. This is a place for documenting it's configuration and troubleshooting bugs related to it. The instance can be found at https://peoplesopen.net/chat.&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
If you receive a &amp;quot;not found&amp;quot; error, such as 502 Bad Gateway, when going to https://peoplesopen.net/chat, try,&lt;br /&gt;
&lt;br /&gt;
1. Reaching it by its port like so https://peoplesopen.net:3001&lt;br /&gt;
&lt;br /&gt;
2. If this also fails, log into the sudomesh server and restart the service by going to /var/www/Rocket.Chat and running ./run.sh&lt;br /&gt;
&lt;br /&gt;
= Install Rocket.Chat =&lt;br /&gt;
We chose to install Rocket.Chat manually on an Ubuntu 14.04 server, following [https://rocket.chat/docs/installation/manual-installation/ubuntu/ this guide].&lt;/div&gt;</summary>
		<author><name>Gcg</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/PeoplesOpenChat&amp;diff=11095</id>
		<title>Mesh/PeoplesOpenChat</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/PeoplesOpenChat&amp;diff=11095"/>
		<updated>2018-03-11T16:49:29Z</updated>

		<summary type="html">&lt;p&gt;Gcg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;People's Open Chat is a [https://rocket.chat/ Rocket.Chat] instance that is being hosted on the sudomesh server. This is a place for documenting it's configuration and troubleshooting bugs related to it. The instance can be found at https://peoplesopen.net/chat.&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
If you receive a &amp;quot;not found&amp;quot; error, such as 502 Bad Gateway, when going to https://peoplesopen.net/chat, try,&lt;br /&gt;
1. Reaching it by its port like so https://peoplesopen.net:3001&lt;br /&gt;
2. If this also fails, log into the sudomesh server and restart the service by going to /var/www/Rocket.Chat and running ./run.sh&lt;br /&gt;
&lt;br /&gt;
= Install Rocket.Chat =&lt;br /&gt;
We chose to install Rocket.Chat manually on an Ubuntu 14.04 server, following [https://rocket.chat/docs/installation/manual-installation/ubuntu/ this guide].&lt;/div&gt;</summary>
		<author><name>Gcg</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Makenode&amp;diff=11094</id>
		<title>Mesh/Makenode</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Makenode&amp;diff=11094"/>
		<updated>2018-03-08T09:13:14Z</updated>

		<summary type="html">&lt;p&gt;Gcg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;makenode is a script that finishes the configuration for People's Open nodes flashed with the sudowrt firmware, see https://github.com/sudomesh/makenode.&lt;br /&gt;
&lt;br /&gt;
This script is in the process of being deprecated, below is ongoing documentation this deprecation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Early alpha status. Things may break.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= makenode theory =&lt;br /&gt;
There are two interconnected theories that govern the implementation, usage, and deprecation of the makenode script&lt;br /&gt;
&lt;br /&gt;
== theory for implementation ==&lt;br /&gt;
The story goes that makenode was created to solve a few problems with the sudowrt firmware. Mainly, it was much quicker to implement changes in makenode rather than rebuilding the firmware. This way patches could be rapidly deployed with out a full rebuild and reflash of the firmware (however this is ignoring the existence of a lot of already &amp;quot;made nodes&amp;quot;). This use case of triaging patches before integrating them into a new build of the firmware devolved into using makenode to do perform almost all node configurations. While these configurations are mostly &amp;quot;per-node&amp;quot;&lt;br /&gt;
&lt;br /&gt;
1. To retrieve an IP from secrets.peoplesopen.net (our meshnode-database) and then copy it into a lot of config files&lt;br /&gt;
&lt;br /&gt;
2. To set a root password other per-node configs, such as hostname, private SSID, etc.&lt;br /&gt;
&lt;br /&gt;
3. To perform hardware detection to select which config files to copy onto node&lt;br /&gt;
&lt;br /&gt;
== theory for deprecation ==&lt;br /&gt;
While makenode does work, it presents a large barrier to inclusion (e.g. doesn't work on Windows, have to be relatively comfortable with terminal) as well as limiting our ability to quickly configure &amp;quot;blank&amp;quot; routers that can be handed out to anyone. Instead, it would be preferable to have a version of the firmware that requires &amp;quot;zero configurations&amp;quot;, aka zeroconf. To do this, we first need to address the three main reasons for implementation.&lt;br /&gt;
&lt;br /&gt;
1. retrieving a mesh IP:&lt;br /&gt;
* this can be done shortly after boot by making a POST request to secrets.peoplesopen.net using curl, the IP can then be then be parse from the json response and inserted into the correct config files using OpenWRT's build UCI configuration tool.&lt;br /&gt;
&lt;br /&gt;
2. setting a root password:&lt;br /&gt;
* the quick (but insecure) solution is to set a default root password. The better solution is to limit the access of the root user to only the hardwired interface and/or disable the password after a certain period of time and/or on second boot&lt;br /&gt;
* any other non-security-related, per-node configurations could and should be set through the admin dashboard&lt;br /&gt;
&lt;br /&gt;
3. hardware detection:&lt;br /&gt;
* an example of this can already be seen for extender nodes in the [https://github.com/paidforby/sudowrt-firmware/blob/master/files_extender-node/etc/uci-defaults/99_wireless 99_wireless script]&lt;br /&gt;
* at boot OpenWrt needs to detect number of antennas and ports, &lt;br /&gt;
* currently we find ourselves flashing almost exclusively one model of router&lt;br /&gt;
&lt;br /&gt;
However, before tackling these concerns, all the configurations made by makenode must be moved back to the firmware and adapted to be somewhat configurable. To do this, we will create a uci-defaults script that does exactly what make makenode previously did...copy a lot of IP addresses into different config files.&lt;br /&gt;
&lt;br /&gt;
== What does makenode change? ==&lt;br /&gt;
&lt;br /&gt;
=== configs/templates/files/opt/mesh/ ===&lt;br /&gt;
* tunnelhook -&amp;gt; callback called by config_load tunneldigger&lt;br /&gt;
&lt;br /&gt;
=== configs/templates/files/etc/ ===&lt;br /&gt;
&lt;br /&gt;
dropbear/ &lt;br /&gt;
* authorized keys, i.e. adds developer keys -&amp;gt; remove? or add more people? opt-in option in dashboard&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
config/ &lt;br /&gt;
* dhcp -&amp;gt; dnsmasq, mesh pool, private pool&lt;br /&gt;
* network -&amp;gt;  loopback, lan, adhoc, open, priv&lt;br /&gt;
* notdhcpserver -&amp;gt; extender node static ips&lt;br /&gt;
* polipo -&amp;gt; daemonised caching web proxy &lt;br /&gt;
* rpcd, -&amp;gt; sets ubus username and pass (from where?)&lt;br /&gt;
* snmpd -&amp;gt; managment/monitoring, pulls in operator email/name, presumably from makenode.js&lt;br /&gt;
* system -&amp;gt; sets hostname and log ip? from makenode.js?&lt;br /&gt;
* tunneldigger- &amp;gt; sets tunnel broker ip, l2tp interface, upstream, downstream bandwidth (related to bug #2), and tunnel hook callback script&lt;br /&gt;
* uhttpd -&amp;gt; http server, sets index directory, ubus, cgi-bin, locale&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
init.d/&lt;br /&gt;
* log -&amp;gt; copied from openwrt? purpose?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
iproute2/&lt;br /&gt;
* rt_tables -&amp;gt; moved to makenode by MaxB, unclear purpose? reverses values for ...?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
babeld.conf -&amp;gt; allows babel to run on l2tp, adhoc, and open interface, (could address bug #13 here)&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
banner -&amp;gt; presents version info, move back to firmware&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
dnsmasq.conf -&amp;gt; excepts interfaces l2tp0, adhoc0, eth0, why?&lt;/div&gt;</summary>
		<author><name>Gcg</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Makenode&amp;diff=11093</id>
		<title>Mesh/Makenode</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Makenode&amp;diff=11093"/>
		<updated>2018-03-07T21:37:19Z</updated>

		<summary type="html">&lt;p&gt;Gcg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;makenode is a script that finishes the configuration for People's Open nodes flashed with the sudowrt firmware, see https://github.com/sudomesh/makenode.&lt;br /&gt;
&lt;br /&gt;
This script is in the process of being deprecated, below is ongoing documentation this deprecation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Early alpha status. Things may break.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= makenode theory =&lt;br /&gt;
There are two interconnected theories that govern the implementation, usage, and deprecation of the makenode script&lt;br /&gt;
&lt;br /&gt;
== theory for implementation ==&lt;br /&gt;
The story goes that makenode was created to solve a few problems with the sudowrt firmware. Mainly, it was much quicker to implement changes in makenode rather than rebuilding the firmware. This way patches could be rapidly deployed with out a full rebuild and reflash of the firmware (however this is ignoring the existence of a lot of already &amp;quot;made nodes&amp;quot;). This use case of triaging patches before integrating them into a new build of the firmware devolved into using makenode to do perform almost all node configurations. While these configurations are mostly &amp;quot;per-node&amp;quot;&lt;br /&gt;
&lt;br /&gt;
1. To retrieve an IP from secrets.peoplesopen.net (our meshnode-database) and then copy it into a lot of config files&lt;br /&gt;
&lt;br /&gt;
2. To set a root password other per-node configs, such as hostname, private SSID, etc.&lt;br /&gt;
&lt;br /&gt;
3. To perform hardware detection to select which config files to copy onto node&lt;br /&gt;
&lt;br /&gt;
== theory for deprecation ==&lt;br /&gt;
While makenode does work, it presents a large barrier to inclusion (e.g. doesn't work on Windows, have to be relatively comfortable with terminal) as well as limiting our ability to quickly configure &amp;quot;blank&amp;quot; routers that can be handed out to anyone. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What is does makenode change? ==&lt;br /&gt;
&lt;br /&gt;
=== configs/templates/files/opt/mesh/ ===&lt;br /&gt;
* tunnelhook -&amp;gt; callback called by config_load tunneldigger&lt;br /&gt;
&lt;br /&gt;
=== configs/templates/files/etc/ ===&lt;br /&gt;
&lt;br /&gt;
dropbear/ &lt;br /&gt;
* authorized keys, i.e. adds developer keys -&amp;gt; remove? or add more people? opt-in option in dashboard&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
config/ &lt;br /&gt;
* dhcp -&amp;gt; dnsmasq, mesh pool, private pool&lt;br /&gt;
* network -&amp;gt;  loopback, lan, adhoc, open, priv&lt;br /&gt;
* notdhcpserver -&amp;gt; extender node static ips&lt;br /&gt;
* polipo -&amp;gt; daemonised caching web proxy &lt;br /&gt;
* rpcd, -&amp;gt; sets ubus username and pass (from where?)&lt;br /&gt;
* snmpd -&amp;gt; managment/monitoring, pulls in operator email/name, presumably from makenode.js&lt;br /&gt;
* system -&amp;gt; sets hostname and log ip? from makenode.js?&lt;br /&gt;
* tunneldigger- &amp;gt; sets tunnel broker ip, l2tp interface, upstream, downstream bandwidth (related to bug #2), and tunnel hook callback script&lt;br /&gt;
* uhttpd -&amp;gt; http server, sets index directory, ubus, cgi-bin, locale&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
init.d/&lt;br /&gt;
* log -&amp;gt; copied from openwrt? purpose?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
iproute2/&lt;br /&gt;
* rt_tables -&amp;gt; moved to makenode by MaxB, unclear purpose? reverses values for ...?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
babeld.conf -&amp;gt; allows babel to run on l2tp, adhoc, and open interface, (could address bug #13 here)&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
banner -&amp;gt; presents version info, move back to firmware&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
dnsmasq.conf -&amp;gt; excepts interfaces l2tp0, adhoc0, eth0, why?&lt;/div&gt;</summary>
		<author><name>Gcg</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Makenode&amp;diff=11092</id>
		<title>Mesh/Makenode</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Makenode&amp;diff=11092"/>
		<updated>2018-03-07T21:36:55Z</updated>

		<summary type="html">&lt;p&gt;Gcg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;makenode is a script that finishes the configuration for People's Open nodes flashed with the sudowrt firmware, see https://github.com/sudomesh/makenode.&lt;br /&gt;
&lt;br /&gt;
This script is in the process of being deprecated, below is ongoing documentation this deprecation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Early alpha status. Things may break.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= makenode theory =&lt;br /&gt;
There are two interconnected theories that govern the implementation, usage, and deprecation of the makenode script&lt;br /&gt;
&lt;br /&gt;
== theory for implementation ==&lt;br /&gt;
The story goes that makenode was created to solve a few problems with the sudowrt firmware. Mainly, it was much quicker to implement changes in makenode rather than rebuilding the firmware. This way patches could be rapidly deployed with out a full rebuild and reflash of the firmware (however this is ignoring the existence of a lot of already &amp;quot;made nodes&amp;quot;). This use case of triaging patches before integrating them into a new build of the firmware devolved into using makenode to do perform almost all node configurations. While these configurations are mostly &amp;quot;per-node&amp;quot;&lt;br /&gt;
&lt;br /&gt;
1. To retrieve an IP from secrets.peoplesopen.net (our meshnode-database) and then copy it into a lot of config files,&lt;br /&gt;
2. To set a root password other per-node configs, such as hostname, private SSID, etc.&lt;br /&gt;
3. To perform hardware detection to select which config files to copy onto node&lt;br /&gt;
&lt;br /&gt;
== theory for deprecation ==&lt;br /&gt;
While makenode does work, it presents a large barrier to inclusion (e.g. doesn't work on Windows, have to be relatively comfortable with terminal) as well as limiting our ability to quickly configure &amp;quot;blank&amp;quot; routers that can be handed out to anyone. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What is does makenode change? ==&lt;br /&gt;
&lt;br /&gt;
=== configs/templates/files/opt/mesh/ ===&lt;br /&gt;
* tunnelhook -&amp;gt; callback called by config_load tunneldigger&lt;br /&gt;
&lt;br /&gt;
=== configs/templates/files/etc/ ===&lt;br /&gt;
&lt;br /&gt;
dropbear/ &lt;br /&gt;
* authorized keys, i.e. adds developer keys -&amp;gt; remove? or add more people? opt-in option in dashboard&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
config/ &lt;br /&gt;
* dhcp -&amp;gt; dnsmasq, mesh pool, private pool&lt;br /&gt;
* network -&amp;gt;  loopback, lan, adhoc, open, priv&lt;br /&gt;
* notdhcpserver -&amp;gt; extender node static ips&lt;br /&gt;
* polipo -&amp;gt; daemonised caching web proxy &lt;br /&gt;
* rpcd, -&amp;gt; sets ubus username and pass (from where?)&lt;br /&gt;
* snmpd -&amp;gt; managment/monitoring, pulls in operator email/name, presumably from makenode.js&lt;br /&gt;
* system -&amp;gt; sets hostname and log ip? from makenode.js?&lt;br /&gt;
* tunneldigger- &amp;gt; sets tunnel broker ip, l2tp interface, upstream, downstream bandwidth (related to bug #2), and tunnel hook callback script&lt;br /&gt;
* uhttpd -&amp;gt; http server, sets index directory, ubus, cgi-bin, locale&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
init.d/&lt;br /&gt;
* log -&amp;gt; copied from openwrt? purpose?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
iproute2/&lt;br /&gt;
* rt_tables -&amp;gt; moved to makenode by MaxB, unclear purpose? reverses values for ...?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
babeld.conf -&amp;gt; allows babel to run on l2tp, adhoc, and open interface, (could address bug #13 here)&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
banner -&amp;gt; presents version info, move back to firmware&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
dnsmasq.conf -&amp;gt; excepts interfaces l2tp0, adhoc0, eth0, why?&lt;/div&gt;</summary>
		<author><name>Gcg</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=11087</id>
		<title>Mesh/Flashing extender nodes</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=11087"/>
		<updated>2018-03-03T06:57:47Z</updated>

		<summary type="html">&lt;p&gt;Gcg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;After following the [[Mesh/WalkThrough]], you are probably just an isolated node on the virtual People's Open Network. If you want to become part of the physical mesh, you are going to need to extend the signal from home node using what we call an extender node. An extender node is just a roof-mounted, directional antenna used to make point-to-point connections between two locations that have line-of-sight (LOS) to one another. Preparing an extender node generally consists to two stages, downgrading the proprietary AirOS firmware and flashing it with our custom build of OpenWrt.&lt;br /&gt;
&lt;br /&gt;
== Downgrading to older AirOS ==&lt;br /&gt;
&lt;br /&gt;
Typically, we use Ubiquiti equipment for our extender nodes. These come with a proprietary firmware called AirOS. Any extender node with version 5.6 of AirOS and above needs to be downgraded to a 5.5.XX version of AirOS version before you can flash it with OpenWRT. &lt;br /&gt;
&lt;br /&gt;
First check what version of AirOS your extender node is running, to do this, &lt;br /&gt;
&lt;br /&gt;
* Edit your network settings to reflect the following:&lt;br /&gt;
&lt;br /&gt;
* Network Manager Method: Manual&lt;br /&gt;
** IP Address: 192.168.1.10 (some devices will only accept from this IP)&lt;br /&gt;
** Subnet Mask: 255.255.255.0&lt;br /&gt;
** Gateway: 0.0.0.0 (Or leave blank)&lt;br /&gt;
&lt;br /&gt;
You can also use the commands:&lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; down &lt;br /&gt;
  sudo ip addr add 192.168.1.10/24 dev &amp;lt;eth_interface&amp;gt; &lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; up&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;eth_interface&amp;gt; is the name of your ethernet interface found using `ip addr` (common names include eth0, enp3s0, ...)&lt;br /&gt;
&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the Power-over-Ethernet (PoE) power supply on the other end.&lt;br /&gt;
&lt;br /&gt;
* Plug another Ethernet cable into your extender node on one end and into the &amp;quot;POE&amp;quot; port of the PoE power supply on the other end.&lt;br /&gt;
&lt;br /&gt;
* Power on the extender node by plugging in the PoE and wait for it to boot (may take a few minutes).&lt;br /&gt;
&lt;br /&gt;
* Make sure you aren't connected to a wifi network that has an 192.168.1.x IP range. Disconnect/disable your wifi if necessary.&lt;br /&gt;
&lt;br /&gt;
* In a browser, go to the AirOS web interface at http://192.168.1.20&lt;br /&gt;
&lt;br /&gt;
* Log in using the credentials &lt;br /&gt;
** username: ubnt &lt;br /&gt;
** password: ubnt&lt;br /&gt;
&lt;br /&gt;
* Look at the Firmware information, it may say something like XM.v5.6.6.bin or XW.v5.6.6, based on this download the correct version of AirOS v5.5.10&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Version !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| XW v5.5.10 || http://dl.ubnt.com/firmwares/XW-fw/v5.5.10/XW.v5.5.10-u2.28005.150723.1358.bin&lt;br /&gt;
|-&lt;br /&gt;
| XM v5.5.10 || http://dl.ubnt.com/firmwares/XN-fw/v5.5.11/XM.v5.5.11.28002.150723.1344.bin&lt;br /&gt;
|-&lt;br /&gt;
| TI v5.5.11 || http://dl.ubnt.com/firmwares/XN-fw/v5.5.11/TI.v5.5.11.28002.150723.1518.bin&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Back in the web interface, go to the &amp;quot;System&amp;quot; tab.&lt;br /&gt;
* Click the &amp;quot;Browse&amp;quot; button next to the &amp;quot;Upload Firmware&amp;quot; box &lt;br /&gt;
* Select the firmware image you just downloaded&lt;br /&gt;
* Click &amp;quot;Upload&amp;quot;.&lt;br /&gt;
* After uploading you will be asked if you want to upgrade/install the firmware. Click yes/accept.&lt;br /&gt;
* Ignore any warnings about changing the default admin password, we're gonna overwrite it anyway&lt;br /&gt;
* Let the router finish flashing and wait for it to fully reboot.&lt;br /&gt;
* After it reboots, you may wanna go back into the web interface to make sure the downgrade was successful before proceeding.&lt;br /&gt;
&lt;br /&gt;
XM.v6.0.4 (v6.0.4) firmware version does not appear to be downgradable via the preceding method. Instead you will need to use command-line method as follows,&lt;br /&gt;
&lt;br /&gt;
   ssh-keygen -f &amp;quot;/home/yourusername/.ssh/known_hosts&amp;quot; -R 192.168.1.20&lt;br /&gt;
   scp &amp;lt;firmware_image.bin&amp;gt;  ubnt@192.168.1.20:/tmp/fwupdate.bin&lt;br /&gt;
   ssh ubnt@192.168.1.20  # password is &amp;quot;ubnt&amp;quot;&lt;br /&gt;
   /sbin/fwupdate -m&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Flash the Extender Node ==&lt;br /&gt;
Now that you have successfully downgraded the AirOS firmware, we can go ahead with flashing it with our custom build of OpenWRT. Start by downloading our firmware image for your model of extender node,&lt;br /&gt;
&lt;br /&gt;
The extender nodes that we currently support are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Notes !! OpenWRT Doc !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M2 and M5 || Newer models need [[#Downgrading_to_earlier_AirOS|AirOS downgrade]] before flashing!  Note that this will almost certainly require a USB to Serial connection (see below).|| [https://wiki.openwrt.org/toh/ubiquiti/nanostationm5 OpenWRT Docs] || firmware: [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin pre 2015 M5 versions and all M2 versions] or [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin 2015-2016 M5 versions]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation 2 || Not being built in current firmware release, Previous generation 802.11g (not the same as M2) || [https://wiki.openwrt.org/toh/ubiquiti/picostation2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ath25.extender-node/openwrt-ath25-ubnt2-pico2-squashfs.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation M2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostationm2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-bullet-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobeam M2 and M5 || NBEâ€‘M2â€‘13 and NBEâ€‘M5â€‘16 work but some (earlier?) NBEâ€‘M5â€‘19 have ethernet port issues. Newer models need [[#Downgrading_to_earlier_AirOS|AirOS downgrade]] before flashing! || [https://wiki.openwrt.org/toh/ubiquiti/nanobeam OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-loco-m-xw-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobridge M2 and M5 || || Same as pre-2015 Nanostation M || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Bullet M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/bullet OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-bullet-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|}&lt;br /&gt;
More firmware images can be found at http://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/&lt;br /&gt;
Also, if you are flashing for practice or testing, you can try using the dev-builds here, http://builds.sudomesh.org/dev-builds/, NOTE: USE WITH CARE, THESE PROVIDE SSH ACCESS WITH A DEFAULT PASSWORD AND SHOULD NOT BE USED FOR DEPLOYMENT NODES&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Configure your wired ethernet interface as instructed in the previous sections&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the Power-over-Ethernet (PoE) power supply on the other end.&lt;br /&gt;
&lt;br /&gt;
* Plug another Ethernet cable into your extender node on one end and into the &amp;quot;POE&amp;quot; port of the PoE power supply on the other end.&lt;br /&gt;
&lt;br /&gt;
* Push a pin into the reset hole and hold it.&lt;br /&gt;
* With the pin held down, plug in the power to the extender node, either by plugging in it's ethernet cable or by powering on the PoE.&lt;br /&gt;
&lt;br /&gt;
* Continue holding down the pin, watch the lights on the antenna - they will all flash together a few times and then flash back-and-forth in what is affectionately known as cha-cha mode (or more accurately, TFTP mode).&lt;br /&gt;
&lt;br /&gt;
* Once the lights on the antenna are flashing up and down, you can let go of the pin.&lt;br /&gt;
&lt;br /&gt;
* You should be able to ping the extender at 192.168.1.20.&lt;br /&gt;
&lt;br /&gt;
  $ ping 192.168.1.20&lt;br /&gt;
  PING 192.168.1.20 (192.168.1.20) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=1 ttl=64 time=1.54 ms&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=2 ttl=64 time=0.826 ms&lt;br /&gt;
&lt;br /&gt;
* Open a terminal (Linux or Mac?) and run the following:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/ubi-flasher&lt;br /&gt;
  cd ubi-flasher&lt;br /&gt;
  npm install&lt;br /&gt;
  ./flasher.js '&amp;lt;path to firmware&amp;gt;'&lt;br /&gt;
&lt;br /&gt;
* The terminal should return the following,&lt;br /&gt;
   The firmware has been successfully sent to the router. In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up). This means that the router is flashing itself with the new firmware. Once the router goes back to having only the power LED lit, the router has been successfully flashed.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Wait until the antenna has only the power LED lit and you're done.&lt;br /&gt;
&lt;br /&gt;
* Reconfigure your machine with the following static network configuration.&lt;br /&gt;
** IP address: 172.22.0.10 &lt;br /&gt;
** Subnet mask:  255.255.255.0&lt;br /&gt;
** Gateway: 0.0.0.0&lt;br /&gt;
&lt;br /&gt;
Or use the commands&lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; down &lt;br /&gt;
  sudo ip addr add 172.22.0.10/24 dev &amp;lt;eth_interface&amp;gt; &lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; up&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;eth_interface&amp;gt; is the name of your ethernet interface found using `ip addr` (common names include eth0, enp3s0, ...)&lt;br /&gt;
&lt;br /&gt;
See Network Configuration Guides: [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20Linux Linux] [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20MacOS%20X Mac]&lt;br /&gt;
&lt;br /&gt;
If you ping the extender node on 172.22.0.2 and it responds, it should be ready to connect to your home node on the appropriate wired Ethernet port.&lt;br /&gt;
&lt;br /&gt;
  $ ping 172.22.0.2&lt;br /&gt;
  PING 172.22.0.2 (172.22.0.2) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=1 ttl=64 time=0.617 ms&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=2 ttl=64 time=0.316 ms&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=3 ttl=64 time=0.398 ms&lt;br /&gt;
&lt;br /&gt;
Once configured with our firmware, an extender node will not start broadcasting an SSID until it is plugged into a home node because it must first get a mesh IP address.&lt;br /&gt;
If you have a mynet n600 or n750, you can get a mesh IP for your extender node by plugging the LAN cable that was plugged into your computer into to port one or two on the back of the home node.&lt;br /&gt;
The mesh IP that the extender node receives is the IP of the home node plus one or two. For example, if your home node broadcasts the SSID &amp;quot;peoplesopen.net 65.21.65&amp;quot; corresponding to the IP 100.65.21.65, then your extender node will receive either an IP or either 100.65.21.66 or 100.65.21.67. Once plugged into this home node, the extender node should broadcast the SSID &amp;quot;peoplesopen.net 65.21.66&amp;quot; or &amp;quot;.67&amp;quot; as well as the ad-hoc network, &amp;quot;pplsopen.net-node2-node&amp;quot; (you may not see these if your computer's WiFi antenna is only 2.4 GHz)&lt;br /&gt;
&lt;br /&gt;
== Testing and Network Detection ==&lt;br /&gt;
&lt;br /&gt;
If you flashed your extender node with a dev-build of the firmware, you should now be able to ssh into to it.&lt;br /&gt;
It is probably easiest to first ssh in to your home node over the private interface and then into the extender node with its mesh IP.&lt;br /&gt;
&lt;br /&gt;
First, you should immediately change or disable the root password and instead add your ssh key to `/etc/dropbear/authorized_key` (this method of login will not work when sshing through a home node)&lt;br /&gt;
   passwd&lt;br /&gt;
&lt;br /&gt;
Once ssh'ed into the extender node, there are few files you can play around with,&lt;br /&gt;
`/etc/config/wireless` sets the names of the SSIDs broadcast by the antenna, you may want to change the name of the ad-hoc interface so as to distinguish it from home node's ad-hoc network&lt;br /&gt;
Trying changing it to something like &amp;quot;popplesopen.net-nod2nod&amp;quot;, then reboot the extender node and check if you can see the new name in your network list.&lt;br /&gt;
&lt;br /&gt;
YNext, you my be curious what you can see with your antenna, to scan for other visible networks, ssh in to the extender node and run the following,&lt;br /&gt;
   iw dev mesh0 scan | grep SSID:&lt;br /&gt;
This should return a lengthy list of SSID, if you can see another &amp;quot;pplsopen.net-node2node&amp;quot; SSID, you should be meshing with it automatically.&lt;br /&gt;
&lt;br /&gt;
If you'd like to view more info about the network you can see, you can pipe the output of the previous command to a log file like so,&lt;br /&gt;
   iw dev mesh0 scan &amp;gt; scan log&lt;br /&gt;
&lt;br /&gt;
Once you are done meshing around with your extender node make sure to reset the root password with passwd or reflash the router with the standard build of our firmware.&lt;br /&gt;
&lt;br /&gt;
Log into your home node via SSH, and tail &amp;lt;tt&amp;gt;/var/log/messages&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver: eth0.3: Physical disconnect detected&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver: Listening on interface eth0.3:&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver:   client IP: 100.64.37.3&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver:   client netmask 26&lt;br /&gt;
  Sun May  8 00:51:12 2016 daemon.debug notdhcpserver: eth0.3: Recieved HEARTBEAT for interface that hadn't been ACKed.&lt;br /&gt;
  ...&lt;br /&gt;
  Sun May  8 00:54:00 2016 daemon.debug notdhcpserver: eth0.3: Recieved HEARTBEAT for interface that hadn't been ACKed.&lt;br /&gt;
  Sun May  8 00:54:00 2016 daemon.info hostapd: priv5: STA 80:e6:50:0e:fe:6e WPA: group key handshake completed (RSN)&lt;br /&gt;
  Sun May  8 00:54:04 2016 daemon.debug notdhcpserver: eth0.2: Received lease request&lt;br /&gt;
  Sun May  8 00:54:04 2016 daemon.debug notdhcpserver: eth0.3: sending response (with ssl certificate)&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received ACK&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Running up hook script&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received redundant ACK&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received redundant ACK&lt;br /&gt;
&lt;br /&gt;
There should be a debug message in the log from notdhcpserver concerning the extender node.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== USB to Serial Connection ===&lt;br /&gt;
&lt;br /&gt;
If you experience trouble flashing your device via the web interface, or via the TFTP image upload method, you'll want to establish a serial connection to troubleshoot further. Methods for flashing your device involving a serial connection may become more common as devices adopt configurations to lock down [http://www.networkworld.com/article/3038722/mobile-wireless/manufacturers-start-to-lock-down-wi-fi-router-firmware-thanks-fcc.html wi-fi router firmware] to prevent flashing.&lt;br /&gt;
&lt;br /&gt;
The following notes describe steps to interface with a Nanostation M5 (NSM5) via the serial interface. &lt;br /&gt;
&lt;br /&gt;
==== Order a USB to Serial Converter ====&lt;br /&gt;
&lt;br /&gt;
USB to serial converter devices exist at a cost of $4 - $8 online, with much lower pricing and longer delivery times if ordered from China. Search for &amp;quot;USB to UART TTL&amp;quot;, including &amp;quot;5 pin&amp;quot; in the search. Make sure the specifications do not mention anything other than 3.3 volts.&lt;br /&gt;
&lt;br /&gt;
Mac OS X users may need to install a device driver for their device. For example, for devices using the CP210X chip, you can download the [https://www.silabs.com/products/mcu/Pages/USBtoUARTBridgeVCPDrivers.aspx#mac CP210x USB to UART Bridge VCP Driver], which is made available as &amp;lt;tt&amp;gt;/dev/tty.SLAB_USBtoUART&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Connecting to Serial ====&lt;br /&gt;
&lt;br /&gt;
You will need to connect the following pins from the converter to the pins on the device.&lt;br /&gt;
&lt;br /&gt;
* Ground (GND)&lt;br /&gt;
* Serial Out (Transmit / TX)&lt;br /&gt;
* Serial In (Receive / RX)&lt;br /&gt;
&lt;br /&gt;
Begin by connecting the Ground of the converter to the Ground of the device. Next connect the Transmit/TX of the converter to the Receive/RX of the device, then connect the Receive/RX of the converter to the Transmit/TX of the device.&lt;br /&gt;
&lt;br /&gt;
Nanostation M5 (NSM5) Example:&lt;br /&gt;
&lt;br /&gt;
[[File:CP2102-usb-to-serial-converter.jpg|400px|KEDSUMÂ® CP2102 Module STC Download Cable USB 2.0 to TTL 6PIN Serial Converter For STC]]&lt;br /&gt;
&lt;br /&gt;
[[File:Ubiquity-NSM5-serial-connectors.jpg|400px|Ubiquiti Nanostation NSM5 - Serial pins with connections]]&lt;br /&gt;
&lt;br /&gt;
==== Serial Communications Program ====&lt;br /&gt;
&lt;br /&gt;
You need to install a serial communication program. Linux users can use Minicom.&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get install minicom&lt;br /&gt;
&lt;br /&gt;
Mac OS X users can as well&lt;br /&gt;
&lt;br /&gt;
  brew install minicom&lt;br /&gt;
&lt;br /&gt;
By default the Minicom program will attempt to use /dev/tty8, and will also attempt to initialize the device (expecting a modem) by default.&lt;br /&gt;
&lt;br /&gt;
  $ minicom&lt;br /&gt;
  minicom: cannot open /dev/tty8: Permission denied&lt;br /&gt;
&lt;br /&gt;
Run the program so that it starts the program on the USB converter that is connected by adding &amp;lt;tt&amp;gt;-D /dev/ttyUSB0&amp;lt;/tt&amp;gt;, and specify that it should skip initialization by adding &amp;lt;tt&amp;gt;-o&amp;lt;/tt&amp;gt;. Mac users may need to reference a different device (such as &amp;lt;tt&amp;gt;/dev/tty.SLAB_USBtoUART&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
You can also specify from the command line that it use the baud rate and '8N1' settings specified below by including &amp;lt;tt&amp;gt;-b 115200 -8&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
  sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
&lt;br /&gt;
In Minicom, CTRL-A to get settings, then Press O, to access settings. Mac users will need to discover the proper META key to use with their Terminal program. iTerm uses the 'ESC' key.&lt;br /&gt;
&lt;br /&gt;
Go to Serial Port Setup, use these settings:&lt;br /&gt;
&lt;br /&gt;
* Set the serial device (should be /dev/tty/USB0)&lt;br /&gt;
* Baud Rate (Bits Per Second): 115200&lt;br /&gt;
* Settings '8N1' (short hand for 8 bits, no parity, 1 stop bit)&lt;br /&gt;
* Turn off hardware and software flow control&lt;br /&gt;
&lt;br /&gt;
Reboot the device, and it will let you drop into a command line. You will then have to figure out how to enable the network from the boot loader (Uboot or Redboot) and transfer the firmware to the device to flash it.&lt;br /&gt;
&lt;br /&gt;
==== Interupting Boot ====&lt;br /&gt;
&lt;br /&gt;
The device will not detect the key you press unless Minicom is configured properly.&lt;br /&gt;
&lt;br /&gt;
* To access the Help screen, Press CTRL-A, then press Z.&lt;br /&gt;
* To access the configuration/settings, press CTRL-A, then press O.&lt;br /&gt;
&lt;br /&gt;
From the configuration window, select to view the 'Serial port setup'&lt;br /&gt;
&lt;br /&gt;
  $ sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
  Welcome to minicom 2.7&lt;br /&gt;
  &lt;br /&gt;
  OPTIONS: I18n &lt;br /&gt;
  Compiled on Jan  1 2014, 17:13:19.&lt;br /&gt;
  Port /dev/ttyUSB0, 21:47:56&lt;br /&gt;
  &lt;br /&gt;
  Press CTRL-A Z for help on special keys&lt;br /&gt;
  &lt;br /&gt;
              +-----[configuration]------+&lt;br /&gt;
              | Filenames and paths      |&lt;br /&gt;
              | File transfer protocols  |&lt;br /&gt;
              | Serial port setup        |&lt;br /&gt;
              | Modem and dialing        |&lt;br /&gt;
              | Screen and keyboard      |&lt;br /&gt;
              | Save setup as dfl        |&lt;br /&gt;
              | Save setup as..          |&lt;br /&gt;
              | Exit                     |&lt;br /&gt;
              +--------------------------+&lt;br /&gt;
  &lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
  | A -    Serial Device      : /dev/ttyUSB0                              |&lt;br /&gt;
  | B - Lockfile Location     : /var/lock                                 |&lt;br /&gt;
  | C -   Callin Program      :                                           |&lt;br /&gt;
  | D -  Callout Program      :                                           |&lt;br /&gt;
  | E -    Bps/Par/Bits       : 115200 8N1                                |&lt;br /&gt;
  | F - Hardware Flow Control : Yes                                       |&lt;br /&gt;
  | G - Software Flow Control : No                                        |&lt;br /&gt;
  |                                                                       |&lt;br /&gt;
  |    Change which setting?                                              |&lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
&lt;br /&gt;
By default the Hardware Flow Control will be enabled. Press 'F' to disable Hardware Flow Control. Press ENTER to exit the Serial port setup window, and then select EXIT to go back to the program.&lt;br /&gt;
&lt;br /&gt;
At this point plug in the Ethernet cable to the 'Main' Ethernet port, with the other end connected to the 'POE' port on the Power Over Ethernet adapter that came with the device. As the device boots up, you'll see output similar to the following.&lt;br /&gt;
&lt;br /&gt;
You'll need to make sure to press a key before it boots the default image.&lt;br /&gt;
&lt;br /&gt;
=== Picostation M2HP ===&lt;br /&gt;
&lt;br /&gt;
Insightful post on [https://www.strugglingcoder.info/index.php/tag/ubnt/ loading FreeBSD image] with help from serial communications. Could be useful with troubleshooting other models.&lt;br /&gt;
=== Nanostation M2 ===&lt;br /&gt;
==== Firmware check failure ====&lt;br /&gt;
&lt;br /&gt;
The following are simply notes. A solution to this issue is still pending.&lt;br /&gt;
&lt;br /&gt;
Flashing the Nanostation M2 (FCC ID: SWX-M2N) using the TFTP rescue mode will result in a Firmware check failure error.&lt;br /&gt;
&lt;br /&gt;
  $ tftp 192.168.1.20&lt;br /&gt;
  tftp&amp;gt; bin&lt;br /&gt;
  tftp&amp;gt; put openwrt-ar71xx-generic-om2p-squashfs-factory.bin&lt;br /&gt;
  Error code 2: Firmware check failed&lt;br /&gt;
  Sent 4609024 bytes in 12.6 seconds&lt;br /&gt;
&lt;br /&gt;
You can boot up the M2 with a serial connection similar to the instructions below concerning the Nanostation M5.&lt;br /&gt;
&lt;br /&gt;
  Board: Ubiquiti Networks XM board (rev 1.0 e012)&lt;br /&gt;
  DRAM:  32 MB&lt;br /&gt;
  Flash:  8 MB&lt;br /&gt;
  PCIe WLAN Module found (#1).&lt;br /&gt;
  Net:   eth0, eth1&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: |&lt;br /&gt;
  Receiving file from 192.168.1.10:35456&lt;br /&gt;
  Received 4609501 bytes&lt;br /&gt;
  Firmware check failed! (-2)&lt;br /&gt;
&lt;br /&gt;
The method outlined for the Nanostation M5 below doesn't work with the M2.&lt;br /&gt;
&lt;br /&gt;
Update the firmware to [http://dl.ubnt.com/firmwares/XN-fw/v5.6.4/XM.v5.6.4.28924.160331.1253.bin airOS for XM board firmware v5.6.4].&lt;br /&gt;
&lt;br /&gt;
Serial Connection:&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
&lt;br /&gt;
Terminal:&lt;br /&gt;
&lt;br /&gt;
  $ tftp 192.168.1.20&lt;br /&gt;
  tftp&amp;gt; bin&lt;br /&gt;
  tftp&amp;gt; put XM.v5.6.4.28924.160331.1253.bin&lt;br /&gt;
  Sent 7537129 bytes in 20.8 seconds&lt;br /&gt;
&lt;br /&gt;
Serial Connection:&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:55113&lt;br /&gt;
  Received 7537129 bytes&lt;br /&gt;
  Firmware Version: XM.ar7240.v5.6.4.28924.160331.1253&lt;br /&gt;
  Setting U-Boot environment variables&lt;br /&gt;
  Un-Protected 1 sectors&lt;br /&gt;
  Erasing Flash.... done&lt;br /&gt;
  Erased 1 sectors&lt;br /&gt;
  Writing to Flash... done&lt;br /&gt;
  Protected 1 sectors&lt;br /&gt;
  Will not overwrite u-boot partition! Skipped.&lt;br /&gt;
  Copying partition 'kernel' to flash memory:&lt;br /&gt;
          erasing range 0x9F050000..0x9F14FFFF: ................ done&lt;br /&gt;
  Erased 16 sectors&lt;br /&gt;
          writing to address 0x9f050000, length 0x00100000 ...&lt;br /&gt;
  Copying partition 'rootfs' to flash memory:&lt;br /&gt;
          erasing range 0x9F150000..0x9F74FFFF: .............................................................................................e&lt;br /&gt;
  Erased 96 sectors&lt;br /&gt;
          writing to address 0x9f150000, length 0x00600000 ...&lt;br /&gt;
  &lt;br /&gt;
  Firmware update complete.&lt;br /&gt;
  &lt;br /&gt;
  Resetting...&lt;br /&gt;
  &lt;br /&gt;
  U-Boot 1.1.4.2-s594 (Dec  5 2012 - 15:23:07)&lt;br /&gt;
  &lt;br /&gt;
  Board: Ubiquiti Networks XM board (rev 1.0 e012)&lt;br /&gt;
&lt;br /&gt;
Attempting to run the same process after performing an official firmware update doesn't resolve the issue.&lt;br /&gt;
&lt;br /&gt;
=== Nanostation M5 ===&lt;br /&gt;
&lt;br /&gt;
Official firmware from Ubiquity Nanostation M5 (NSM5)&lt;br /&gt;
&lt;br /&gt;
* [https://www.ubnt.com/download/airmax-m/nanostationm/default/airos-xw-board-firmware-v564 airOS for XW board firmware v5.6.4]&lt;br /&gt;
&lt;br /&gt;
==== Firmware check failure ====&lt;br /&gt;
&lt;br /&gt;
Flashing the Nanostation M5 (FCC ID: SWX-NSM5D) using the TFTP rescue mode will result in a Firmware check failure error.&lt;br /&gt;
&lt;br /&gt;
If you attempt to flash the extender and receive a 'Firmware check failed' error, then you have a version of the NSM5 that is protected from being flashed via the default TFTP method. You will need to obtain a serial to USB interface (USB to UART TTL Module Serial Converter, 5 pin) and use it to flash the firmware.&lt;br /&gt;
&lt;br /&gt;
   $ ./flasher.js openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin&lt;br /&gt;
   Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
   Connection timed out&lt;br /&gt;
   Sending openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
   [Error: (Server) Firmware check failed]&lt;br /&gt;
&lt;br /&gt;
When connected to the NSM5 via a serial connection, a similar error is displayed when attempting to load the SudoWRT firmware image.&lt;br /&gt;
&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Will reset device configuration (Reset button active after 10 seconds).&lt;br /&gt;
  Erasing sector 123..126&lt;br /&gt;
  &lt;br /&gt;
  First 0x7b last 0x7e sector size 0x10000&lt;br /&gt;
  .... done&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
  Receiving file from 192.168.1.10:49763&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware check failed! (1)&lt;br /&gt;
&lt;br /&gt;
===== Drop into U-Boot Command Prompt =====&lt;br /&gt;
&lt;br /&gt;
Connect a USB to Serial adapter to the correct pins of the NSM5, as shown above. Unplug the Ethernet cable from the device, and then plug it back in to provide Power Over Ethernet once again, resulting in a reboot of the device.&lt;br /&gt;
&lt;br /&gt;
During the boot process, press a key to during the boot process to make the [https://wiki.openwrt.org/doc/techref/bootloader/uboot U-Boot] bootloader to drop into a command line prompt.&lt;br /&gt;
&lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0&lt;br /&gt;
  ar7240&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Running TFTPd =====&lt;br /&gt;
&lt;br /&gt;
Although U-Boot can support two protocols for transfering files, kermit or y-modem, the bootloader does not support the &amp;lt;tt&amp;gt;loadb&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;loady&amp;lt;/tt&amp;gt;. Minicom only supports y-modem protocol.&lt;br /&gt;
&lt;br /&gt;
We do not have to resort to a direct serial file transfer however. The 'mtdparts' command that is used to define flash memory partitions can be used to reset the partition table to the defaults before running 'urescue' to start the TFTP server.&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; help mtdparts&lt;br /&gt;
  mtdparts &lt;br /&gt;
      - list partition table&lt;br /&gt;
  mtdparts delall&lt;br /&gt;
      - delete all partitions&lt;br /&gt;
  mtdparts del part-id&lt;br /&gt;
      - delete partition (e.g. part-id = nand0,1)&lt;br /&gt;
  mtdparts add &amp;lt;mtd-dev&amp;gt; &amp;lt;size&amp;gt;[@&amp;lt;offset&amp;gt;] [&amp;lt;name&amp;gt;] [ro]&lt;br /&gt;
      - add partition&lt;br /&gt;
  mtdparts default&lt;br /&gt;
      - reset partition table to defaults&lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
&lt;br /&gt;
In your other terminal window, run the ubi-flasher script.&lt;br /&gt;
&lt;br /&gt;
  $ ./flasher.js /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin&lt;br /&gt;
  Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
  Connection timed out&lt;br /&gt;
  Sending /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
  Firmware flashing begun!&lt;br /&gt;
  The firmware has been successfully sent to the router.&lt;br /&gt;
  In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up).&lt;br /&gt;
  This means that the router is flashing itself with the new firmware.&lt;br /&gt;
  Once the router goes back to having only the power LED lit, the router has been successfully flashed.&lt;br /&gt;
&lt;br /&gt;
In the terminal running Minicom you should see the firmware successfully flashing.&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:52289&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware Version: XW.ar934x.v6.0.0-OpenWrt-r47662&lt;br /&gt;
  Setting U-Boot environment variables&lt;br /&gt;
  Un-Protected 1 sectors&lt;br /&gt;
  Erasing Flash.... done&lt;br /&gt;
  Erased 1 sectors&lt;br /&gt;
  Writing to Flash... write addr: 9f040000&lt;br /&gt;
  done&lt;br /&gt;
  Protected 1 sectors&lt;br /&gt;
  Copying partition 'kernel' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x5 last 0x14 sector size 0x10000&lt;br /&gt;
  ................ done&lt;br /&gt;
  write addr: 9f050000&lt;br /&gt;
  Copying partition 'rootfs' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x15 last 0x6e sector size 0x10000&lt;br /&gt;
  .......................................................................................... done&lt;br /&gt;
  write addr: 9f150000&lt;br /&gt;
  &lt;br /&gt;
  Firmware update complete.&lt;br /&gt;
  &lt;br /&gt;
  Resetting...&lt;br /&gt;
  &lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ## Booting image at 9f050000 ...&lt;br /&gt;
     Image Name:   MIPS OpenWrt Linux-3.18.23&lt;br /&gt;
     Created:      2015-12-01   0:03:51 UTC&lt;br /&gt;
     Image Type:   MIPS Linux Kernel Image (lzma compressed)&lt;br /&gt;
     Data Size:    1135619 Bytes =  1.1 MB&lt;br /&gt;
     Load Address: 80060000&lt;br /&gt;
     Entry Point:  80060000&lt;br /&gt;
     Verifying Checksum at 0x9f050040 ...OK&lt;br /&gt;
     Uncompressing Kernel Image ... OK&lt;br /&gt;
  &lt;br /&gt;
  Starting kernel ...&lt;br /&gt;
  &lt;br /&gt;
  [    0.000000] Linux version 3.18.23 (sudowrt-builder@build-test2) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.04 r47662) ) #2 Mon Nov 5&lt;br /&gt;
&lt;br /&gt;
After it reboots if you see the first line mention 'sudowrt-builder', the device is booting the SudoWRT firmware build.&lt;br /&gt;
&lt;br /&gt;
You can press ENTER once it is finished, and it should drop into the command line for the SudoWRT system.&lt;br /&gt;
&lt;br /&gt;
  [   25.650000] jffs2: Newly-erased block contained word 0xdeadc0de at offset 0x00000000&lt;br /&gt;
  [   25.660000] done.&lt;br /&gt;
  [   25.660000] jffs2: notice: (993) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and.&lt;br /&gt;
  &lt;br /&gt;
  BusyBox v1.23.2 (2015-11-30 18:48:50 EST) built-in shell (ash)&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
    ._______.___    ._______.______  ._____  .___    .___ .______  ._____  &lt;br /&gt;
    :_ ____/|   |   : .____/:_ _   \ :_ ___\ |   |   : __|:      \ :_ ___\ &lt;br /&gt;
    |   _/  |   |   | : _/\ |   |   ||   |___|   |   | : ||       ||   |___&lt;br /&gt;
    |   |   |   |/\ |   /  \| . |   ||   /  ||   |/\ |   ||   |   ||   /  |&lt;br /&gt;
    |_. |   |   /  \|_.: __/|. ____/ |. __  ||   /  \|   ||___|   ||. __  |&lt;br /&gt;
      :/    |______/   :/    :/       :/ |. ||______/|___|    |___| :/ |. |&lt;br /&gt;
      :                      :        :   :/                        :   :/ &lt;br /&gt;
                                          :                             : &lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   sudo mesh v0.2 (fledgling.extender)&lt;br /&gt;
                                based on OpenWRT 15.05 (Chaos Calmer)&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   &amp;quot;When your rage is choking you, it is best to say nothing.&amp;quot; &lt;br /&gt;
                                              - Octavia E. Butler, Fledgling&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
  &lt;br /&gt;
  root@sudomesh-node:/#&lt;/div&gt;</summary>
		<author><name>Gcg</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=11086</id>
		<title>Mesh/Flashing extender nodes</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=11086"/>
		<updated>2018-03-03T06:57:22Z</updated>

		<summary type="html">&lt;p&gt;Gcg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;After following the [[Mesh/WalkThrough]], you are probably just an isolated node on the virtual People's Open Network. If you want to become part of the physical mesh, you are going to need to extend the signal from home node using what we call an extender node. An extender node is just a roof-mounted, directional antenna used to make point-to-point connections between two locations that have line-of-sight (LOS) to one another. Preparing an extender node generally consists to two stages, downgrading the proprietary AirOS firmware and flashing it with our custom build of OpenWrt.&lt;br /&gt;
&lt;br /&gt;
== Downgrading to earlier AirOS ==&lt;br /&gt;
&lt;br /&gt;
Typically, we use Ubiquiti equipment for our extender nodes. These come with a proprietary firmware called AirOS. Any extender node with version 5.6 of AirOS and above needs to be downgraded to a 5.5.XX version of AirOS version before you can flash it with OpenWRT. &lt;br /&gt;
&lt;br /&gt;
First check what version of AirOS your extender node is running, to do this, &lt;br /&gt;
&lt;br /&gt;
* Edit your network settings to reflect the following:&lt;br /&gt;
&lt;br /&gt;
* Network Manager Method: Manual&lt;br /&gt;
** IP Address: 192.168.1.10 (some devices will only accept from this IP)&lt;br /&gt;
** Subnet Mask: 255.255.255.0&lt;br /&gt;
** Gateway: 0.0.0.0 (Or leave blank)&lt;br /&gt;
&lt;br /&gt;
You can also use the commands:&lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; down &lt;br /&gt;
  sudo ip addr add 192.168.1.10/24 dev &amp;lt;eth_interface&amp;gt; &lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; up&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;eth_interface&amp;gt; is the name of your ethernet interface found using `ip addr` (common names include eth0, enp3s0, ...)&lt;br /&gt;
&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the Power-over-Ethernet (PoE) power supply on the other end.&lt;br /&gt;
&lt;br /&gt;
* Plug another Ethernet cable into your extender node on one end and into the &amp;quot;POE&amp;quot; port of the PoE power supply on the other end.&lt;br /&gt;
&lt;br /&gt;
* Power on the extender node by plugging in the PoE and wait for it to boot (may take a few minutes).&lt;br /&gt;
&lt;br /&gt;
* Make sure you aren't connected to a wifi network that has an 192.168.1.x IP range. Disconnect/disable your wifi if necessary.&lt;br /&gt;
&lt;br /&gt;
* In a browser, go to the AirOS web interface at http://192.168.1.20&lt;br /&gt;
&lt;br /&gt;
* Log in using the credentials &lt;br /&gt;
** username: ubnt &lt;br /&gt;
** password: ubnt&lt;br /&gt;
&lt;br /&gt;
* Look at the Firmware information, it may say something like XM.v5.6.6.bin or XW.v5.6.6, based on this download the correct version of AirOS v5.5.10&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Version !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| XW v5.5.10 || http://dl.ubnt.com/firmwares/XW-fw/v5.5.10/XW.v5.5.10-u2.28005.150723.1358.bin&lt;br /&gt;
|-&lt;br /&gt;
| XM v5.5.10 || http://dl.ubnt.com/firmwares/XN-fw/v5.5.11/XM.v5.5.11.28002.150723.1344.bin&lt;br /&gt;
|-&lt;br /&gt;
| TI v5.5.11 || http://dl.ubnt.com/firmwares/XN-fw/v5.5.11/TI.v5.5.11.28002.150723.1518.bin&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Back in the web interface, go to the &amp;quot;System&amp;quot; tab.&lt;br /&gt;
* Click the &amp;quot;Browse&amp;quot; button next to the &amp;quot;Upload Firmware&amp;quot; box &lt;br /&gt;
* Select the firmware image you just downloaded&lt;br /&gt;
* Click &amp;quot;Upload&amp;quot;.&lt;br /&gt;
* After uploading you will be asked if you want to upgrade/install the firmware. Click yes/accept.&lt;br /&gt;
* Ignore any warnings about changing the default admin password, we're gonna overwrite it anyway&lt;br /&gt;
* Let the router finish flashing and wait for it to fully reboot.&lt;br /&gt;
* After it reboots, you may wanna go back into the web interface to make sure the downgrade was successful before proceeding.&lt;br /&gt;
&lt;br /&gt;
XM.v6.0.4 (v6.0.4) firmware version does not appear to be downgradable via the preceding method. Instead you will need to use command-line method as follows,&lt;br /&gt;
&lt;br /&gt;
   ssh-keygen -f &amp;quot;/home/yourusername/.ssh/known_hosts&amp;quot; -R 192.168.1.20&lt;br /&gt;
   scp &amp;lt;firmware_image.bin&amp;gt;  ubnt@192.168.1.20:/tmp/fwupdate.bin&lt;br /&gt;
   ssh ubnt@192.168.1.20  # password is &amp;quot;ubnt&amp;quot;&lt;br /&gt;
   /sbin/fwupdate -m&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Flash the Extender Node ==&lt;br /&gt;
Now that you have successfully downgraded the AirOS firmware, we can go ahead with flashing it with our custom build of OpenWRT. Start by downloading our firmware image for your model of extender node,&lt;br /&gt;
&lt;br /&gt;
The extender nodes that we currently support are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Notes !! OpenWRT Doc !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M2 and M5 || Newer models need [[#Downgrading_to_earlier_AirOS|AirOS downgrade]] before flashing!  Note that this will almost certainly require a USB to Serial connection (see below).|| [https://wiki.openwrt.org/toh/ubiquiti/nanostationm5 OpenWRT Docs] || firmware: [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin pre 2015 M5 versions and all M2 versions] or [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin 2015-2016 M5 versions]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation 2 || Not being built in current firmware release, Previous generation 802.11g (not the same as M2) || [https://wiki.openwrt.org/toh/ubiquiti/picostation2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ath25.extender-node/openwrt-ath25-ubnt2-pico2-squashfs.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation M2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostationm2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-bullet-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobeam M2 and M5 || NBEâ€‘M2â€‘13 and NBEâ€‘M5â€‘16 work but some (earlier?) NBEâ€‘M5â€‘19 have ethernet port issues. Newer models need [[#Downgrading_to_earlier_AirOS|AirOS downgrade]] before flashing! || [https://wiki.openwrt.org/toh/ubiquiti/nanobeam OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-loco-m-xw-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobridge M2 and M5 || || Same as pre-2015 Nanostation M || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Bullet M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/bullet OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-bullet-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|}&lt;br /&gt;
More firmware images can be found at http://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/&lt;br /&gt;
Also, if you are flashing for practice or testing, you can try using the dev-builds here, http://builds.sudomesh.org/dev-builds/, NOTE: USE WITH CARE, THESE PROVIDE SSH ACCESS WITH A DEFAULT PASSWORD AND SHOULD NOT BE USED FOR DEPLOYMENT NODES&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Configure your wired ethernet interface as instructed in the previous sections&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the Power-over-Ethernet (PoE) power supply on the other end.&lt;br /&gt;
&lt;br /&gt;
* Plug another Ethernet cable into your extender node on one end and into the &amp;quot;POE&amp;quot; port of the PoE power supply on the other end.&lt;br /&gt;
&lt;br /&gt;
* Push a pin into the reset hole and hold it.&lt;br /&gt;
* With the pin held down, plug in the power to the extender node, either by plugging in it's ethernet cable or by powering on the PoE.&lt;br /&gt;
&lt;br /&gt;
* Continue holding down the pin, watch the lights on the antenna - they will all flash together a few times and then flash back-and-forth in what is affectionately known as cha-cha mode (or more accurately, TFTP mode).&lt;br /&gt;
&lt;br /&gt;
* Once the lights on the antenna are flashing up and down, you can let go of the pin.&lt;br /&gt;
&lt;br /&gt;
* You should be able to ping the extender at 192.168.1.20.&lt;br /&gt;
&lt;br /&gt;
  $ ping 192.168.1.20&lt;br /&gt;
  PING 192.168.1.20 (192.168.1.20) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=1 ttl=64 time=1.54 ms&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=2 ttl=64 time=0.826 ms&lt;br /&gt;
&lt;br /&gt;
* Open a terminal (Linux or Mac?) and run the following:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/ubi-flasher&lt;br /&gt;
  cd ubi-flasher&lt;br /&gt;
  npm install&lt;br /&gt;
  ./flasher.js '&amp;lt;path to firmware&amp;gt;'&lt;br /&gt;
&lt;br /&gt;
* The terminal should return the following,&lt;br /&gt;
   The firmware has been successfully sent to the router. In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up). This means that the router is flashing itself with the new firmware. Once the router goes back to having only the power LED lit, the router has been successfully flashed.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Wait until the antenna has only the power LED lit and you're done.&lt;br /&gt;
&lt;br /&gt;
* Reconfigure your machine with the following static network configuration.&lt;br /&gt;
** IP address: 172.22.0.10 &lt;br /&gt;
** Subnet mask:  255.255.255.0&lt;br /&gt;
** Gateway: 0.0.0.0&lt;br /&gt;
&lt;br /&gt;
Or use the commands&lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; down &lt;br /&gt;
  sudo ip addr add 172.22.0.10/24 dev &amp;lt;eth_interface&amp;gt; &lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; up&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;eth_interface&amp;gt; is the name of your ethernet interface found using `ip addr` (common names include eth0, enp3s0, ...)&lt;br /&gt;
&lt;br /&gt;
See Network Configuration Guides: [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20Linux Linux] [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20MacOS%20X Mac]&lt;br /&gt;
&lt;br /&gt;
If you ping the extender node on 172.22.0.2 and it responds, it should be ready to connect to your home node on the appropriate wired Ethernet port.&lt;br /&gt;
&lt;br /&gt;
  $ ping 172.22.0.2&lt;br /&gt;
  PING 172.22.0.2 (172.22.0.2) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=1 ttl=64 time=0.617 ms&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=2 ttl=64 time=0.316 ms&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=3 ttl=64 time=0.398 ms&lt;br /&gt;
&lt;br /&gt;
Once configured with our firmware, an extender node will not start broadcasting an SSID until it is plugged into a home node because it must first get a mesh IP address.&lt;br /&gt;
If you have a mynet n600 or n750, you can get a mesh IP for your extender node by plugging the LAN cable that was plugged into your computer into to port one or two on the back of the home node.&lt;br /&gt;
The mesh IP that the extender node receives is the IP of the home node plus one or two. For example, if your home node broadcasts the SSID &amp;quot;peoplesopen.net 65.21.65&amp;quot; corresponding to the IP 100.65.21.65, then your extender node will receive either an IP or either 100.65.21.66 or 100.65.21.67. Once plugged into this home node, the extender node should broadcast the SSID &amp;quot;peoplesopen.net 65.21.66&amp;quot; or &amp;quot;.67&amp;quot; as well as the ad-hoc network, &amp;quot;pplsopen.net-node2-node&amp;quot; (you may not see these if your computer's WiFi antenna is only 2.4 GHz)&lt;br /&gt;
&lt;br /&gt;
== Testing and Network Detection ==&lt;br /&gt;
&lt;br /&gt;
If you flashed your extender node with a dev-build of the firmware, you should now be able to ssh into to it.&lt;br /&gt;
It is probably easiest to first ssh in to your home node over the private interface and then into the extender node with its mesh IP.&lt;br /&gt;
&lt;br /&gt;
First, you should immediately change or disable the root password and instead add your ssh key to `/etc/dropbear/authorized_key` (this method of login will not work when sshing through a home node)&lt;br /&gt;
   passwd&lt;br /&gt;
&lt;br /&gt;
Once ssh'ed into the extender node, there are few files you can play around with,&lt;br /&gt;
`/etc/config/wireless` sets the names of the SSIDs broadcast by the antenna, you may want to change the name of the ad-hoc interface so as to distinguish it from home node's ad-hoc network&lt;br /&gt;
Trying changing it to something like &amp;quot;popplesopen.net-nod2nod&amp;quot;, then reboot the extender node and check if you can see the new name in your network list.&lt;br /&gt;
&lt;br /&gt;
YNext, you my be curious what you can see with your antenna, to scan for other visible networks, ssh in to the extender node and run the following,&lt;br /&gt;
   iw dev mesh0 scan | grep SSID:&lt;br /&gt;
This should return a lengthy list of SSID, if you can see another &amp;quot;pplsopen.net-node2node&amp;quot; SSID, you should be meshing with it automatically.&lt;br /&gt;
&lt;br /&gt;
If you'd like to view more info about the network you can see, you can pipe the output of the previous command to a log file like so,&lt;br /&gt;
   iw dev mesh0 scan &amp;gt; scan log&lt;br /&gt;
&lt;br /&gt;
Once you are done meshing around with your extender node make sure to reset the root password with passwd or reflash the router with the standard build of our firmware.&lt;br /&gt;
&lt;br /&gt;
Log into your home node via SSH, and tail &amp;lt;tt&amp;gt;/var/log/messages&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver: eth0.3: Physical disconnect detected&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver: Listening on interface eth0.3:&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver:   client IP: 100.64.37.3&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver:   client netmask 26&lt;br /&gt;
  Sun May  8 00:51:12 2016 daemon.debug notdhcpserver: eth0.3: Recieved HEARTBEAT for interface that hadn't been ACKed.&lt;br /&gt;
  ...&lt;br /&gt;
  Sun May  8 00:54:00 2016 daemon.debug notdhcpserver: eth0.3: Recieved HEARTBEAT for interface that hadn't been ACKed.&lt;br /&gt;
  Sun May  8 00:54:00 2016 daemon.info hostapd: priv5: STA 80:e6:50:0e:fe:6e WPA: group key handshake completed (RSN)&lt;br /&gt;
  Sun May  8 00:54:04 2016 daemon.debug notdhcpserver: eth0.2: Received lease request&lt;br /&gt;
  Sun May  8 00:54:04 2016 daemon.debug notdhcpserver: eth0.3: sending response (with ssl certificate)&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received ACK&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Running up hook script&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received redundant ACK&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received redundant ACK&lt;br /&gt;
&lt;br /&gt;
There should be a debug message in the log from notdhcpserver concerning the extender node.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== USB to Serial Connection ===&lt;br /&gt;
&lt;br /&gt;
If you experience trouble flashing your device via the web interface, or via the TFTP image upload method, you'll want to establish a serial connection to troubleshoot further. Methods for flashing your device involving a serial connection may become more common as devices adopt configurations to lock down [http://www.networkworld.com/article/3038722/mobile-wireless/manufacturers-start-to-lock-down-wi-fi-router-firmware-thanks-fcc.html wi-fi router firmware] to prevent flashing.&lt;br /&gt;
&lt;br /&gt;
The following notes describe steps to interface with a Nanostation M5 (NSM5) via the serial interface. &lt;br /&gt;
&lt;br /&gt;
==== Order a USB to Serial Converter ====&lt;br /&gt;
&lt;br /&gt;
USB to serial converter devices exist at a cost of $4 - $8 online, with much lower pricing and longer delivery times if ordered from China. Search for &amp;quot;USB to UART TTL&amp;quot;, including &amp;quot;5 pin&amp;quot; in the search. Make sure the specifications do not mention anything other than 3.3 volts.&lt;br /&gt;
&lt;br /&gt;
Mac OS X users may need to install a device driver for their device. For example, for devices using the CP210X chip, you can download the [https://www.silabs.com/products/mcu/Pages/USBtoUARTBridgeVCPDrivers.aspx#mac CP210x USB to UART Bridge VCP Driver], which is made available as &amp;lt;tt&amp;gt;/dev/tty.SLAB_USBtoUART&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Connecting to Serial ====&lt;br /&gt;
&lt;br /&gt;
You will need to connect the following pins from the converter to the pins on the device.&lt;br /&gt;
&lt;br /&gt;
* Ground (GND)&lt;br /&gt;
* Serial Out (Transmit / TX)&lt;br /&gt;
* Serial In (Receive / RX)&lt;br /&gt;
&lt;br /&gt;
Begin by connecting the Ground of the converter to the Ground of the device. Next connect the Transmit/TX of the converter to the Receive/RX of the device, then connect the Receive/RX of the converter to the Transmit/TX of the device.&lt;br /&gt;
&lt;br /&gt;
Nanostation M5 (NSM5) Example:&lt;br /&gt;
&lt;br /&gt;
[[File:CP2102-usb-to-serial-converter.jpg|400px|KEDSUMÂ® CP2102 Module STC Download Cable USB 2.0 to TTL 6PIN Serial Converter For STC]]&lt;br /&gt;
&lt;br /&gt;
[[File:Ubiquity-NSM5-serial-connectors.jpg|400px|Ubiquiti Nanostation NSM5 - Serial pins with connections]]&lt;br /&gt;
&lt;br /&gt;
==== Serial Communications Program ====&lt;br /&gt;
&lt;br /&gt;
You need to install a serial communication program. Linux users can use Minicom.&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get install minicom&lt;br /&gt;
&lt;br /&gt;
Mac OS X users can as well&lt;br /&gt;
&lt;br /&gt;
  brew install minicom&lt;br /&gt;
&lt;br /&gt;
By default the Minicom program will attempt to use /dev/tty8, and will also attempt to initialize the device (expecting a modem) by default.&lt;br /&gt;
&lt;br /&gt;
  $ minicom&lt;br /&gt;
  minicom: cannot open /dev/tty8: Permission denied&lt;br /&gt;
&lt;br /&gt;
Run the program so that it starts the program on the USB converter that is connected by adding &amp;lt;tt&amp;gt;-D /dev/ttyUSB0&amp;lt;/tt&amp;gt;, and specify that it should skip initialization by adding &amp;lt;tt&amp;gt;-o&amp;lt;/tt&amp;gt;. Mac users may need to reference a different device (such as &amp;lt;tt&amp;gt;/dev/tty.SLAB_USBtoUART&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
You can also specify from the command line that it use the baud rate and '8N1' settings specified below by including &amp;lt;tt&amp;gt;-b 115200 -8&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
  sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
&lt;br /&gt;
In Minicom, CTRL-A to get settings, then Press O, to access settings. Mac users will need to discover the proper META key to use with their Terminal program. iTerm uses the 'ESC' key.&lt;br /&gt;
&lt;br /&gt;
Go to Serial Port Setup, use these settings:&lt;br /&gt;
&lt;br /&gt;
* Set the serial device (should be /dev/tty/USB0)&lt;br /&gt;
* Baud Rate (Bits Per Second): 115200&lt;br /&gt;
* Settings '8N1' (short hand for 8 bits, no parity, 1 stop bit)&lt;br /&gt;
* Turn off hardware and software flow control&lt;br /&gt;
&lt;br /&gt;
Reboot the device, and it will let you drop into a command line. You will then have to figure out how to enable the network from the boot loader (Uboot or Redboot) and transfer the firmware to the device to flash it.&lt;br /&gt;
&lt;br /&gt;
==== Interupting Boot ====&lt;br /&gt;
&lt;br /&gt;
The device will not detect the key you press unless Minicom is configured properly.&lt;br /&gt;
&lt;br /&gt;
* To access the Help screen, Press CTRL-A, then press Z.&lt;br /&gt;
* To access the configuration/settings, press CTRL-A, then press O.&lt;br /&gt;
&lt;br /&gt;
From the configuration window, select to view the 'Serial port setup'&lt;br /&gt;
&lt;br /&gt;
  $ sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
  Welcome to minicom 2.7&lt;br /&gt;
  &lt;br /&gt;
  OPTIONS: I18n &lt;br /&gt;
  Compiled on Jan  1 2014, 17:13:19.&lt;br /&gt;
  Port /dev/ttyUSB0, 21:47:56&lt;br /&gt;
  &lt;br /&gt;
  Press CTRL-A Z for help on special keys&lt;br /&gt;
  &lt;br /&gt;
              +-----[configuration]------+&lt;br /&gt;
              | Filenames and paths      |&lt;br /&gt;
              | File transfer protocols  |&lt;br /&gt;
              | Serial port setup        |&lt;br /&gt;
              | Modem and dialing        |&lt;br /&gt;
              | Screen and keyboard      |&lt;br /&gt;
              | Save setup as dfl        |&lt;br /&gt;
              | Save setup as..          |&lt;br /&gt;
              | Exit                     |&lt;br /&gt;
              +--------------------------+&lt;br /&gt;
  &lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
  | A -    Serial Device      : /dev/ttyUSB0                              |&lt;br /&gt;
  | B - Lockfile Location     : /var/lock                                 |&lt;br /&gt;
  | C -   Callin Program      :                                           |&lt;br /&gt;
  | D -  Callout Program      :                                           |&lt;br /&gt;
  | E -    Bps/Par/Bits       : 115200 8N1                                |&lt;br /&gt;
  | F - Hardware Flow Control : Yes                                       |&lt;br /&gt;
  | G - Software Flow Control : No                                        |&lt;br /&gt;
  |                                                                       |&lt;br /&gt;
  |    Change which setting?                                              |&lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
&lt;br /&gt;
By default the Hardware Flow Control will be enabled. Press 'F' to disable Hardware Flow Control. Press ENTER to exit the Serial port setup window, and then select EXIT to go back to the program.&lt;br /&gt;
&lt;br /&gt;
At this point plug in the Ethernet cable to the 'Main' Ethernet port, with the other end connected to the 'POE' port on the Power Over Ethernet adapter that came with the device. As the device boots up, you'll see output similar to the following.&lt;br /&gt;
&lt;br /&gt;
You'll need to make sure to press a key before it boots the default image.&lt;br /&gt;
&lt;br /&gt;
=== Picostation M2HP ===&lt;br /&gt;
&lt;br /&gt;
Insightful post on [https://www.strugglingcoder.info/index.php/tag/ubnt/ loading FreeBSD image] with help from serial communications. Could be useful with troubleshooting other models.&lt;br /&gt;
=== Nanostation M2 ===&lt;br /&gt;
==== Firmware check failure ====&lt;br /&gt;
&lt;br /&gt;
The following are simply notes. A solution to this issue is still pending.&lt;br /&gt;
&lt;br /&gt;
Flashing the Nanostation M2 (FCC ID: SWX-M2N) using the TFTP rescue mode will result in a Firmware check failure error.&lt;br /&gt;
&lt;br /&gt;
  $ tftp 192.168.1.20&lt;br /&gt;
  tftp&amp;gt; bin&lt;br /&gt;
  tftp&amp;gt; put openwrt-ar71xx-generic-om2p-squashfs-factory.bin&lt;br /&gt;
  Error code 2: Firmware check failed&lt;br /&gt;
  Sent 4609024 bytes in 12.6 seconds&lt;br /&gt;
&lt;br /&gt;
You can boot up the M2 with a serial connection similar to the instructions below concerning the Nanostation M5.&lt;br /&gt;
&lt;br /&gt;
  Board: Ubiquiti Networks XM board (rev 1.0 e012)&lt;br /&gt;
  DRAM:  32 MB&lt;br /&gt;
  Flash:  8 MB&lt;br /&gt;
  PCIe WLAN Module found (#1).&lt;br /&gt;
  Net:   eth0, eth1&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: |&lt;br /&gt;
  Receiving file from 192.168.1.10:35456&lt;br /&gt;
  Received 4609501 bytes&lt;br /&gt;
  Firmware check failed! (-2)&lt;br /&gt;
&lt;br /&gt;
The method outlined for the Nanostation M5 below doesn't work with the M2.&lt;br /&gt;
&lt;br /&gt;
Update the firmware to [http://dl.ubnt.com/firmwares/XN-fw/v5.6.4/XM.v5.6.4.28924.160331.1253.bin airOS for XM board firmware v5.6.4].&lt;br /&gt;
&lt;br /&gt;
Serial Connection:&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
&lt;br /&gt;
Terminal:&lt;br /&gt;
&lt;br /&gt;
  $ tftp 192.168.1.20&lt;br /&gt;
  tftp&amp;gt; bin&lt;br /&gt;
  tftp&amp;gt; put XM.v5.6.4.28924.160331.1253.bin&lt;br /&gt;
  Sent 7537129 bytes in 20.8 seconds&lt;br /&gt;
&lt;br /&gt;
Serial Connection:&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:55113&lt;br /&gt;
  Received 7537129 bytes&lt;br /&gt;
  Firmware Version: XM.ar7240.v5.6.4.28924.160331.1253&lt;br /&gt;
  Setting U-Boot environment variables&lt;br /&gt;
  Un-Protected 1 sectors&lt;br /&gt;
  Erasing Flash.... done&lt;br /&gt;
  Erased 1 sectors&lt;br /&gt;
  Writing to Flash... done&lt;br /&gt;
  Protected 1 sectors&lt;br /&gt;
  Will not overwrite u-boot partition! Skipped.&lt;br /&gt;
  Copying partition 'kernel' to flash memory:&lt;br /&gt;
          erasing range 0x9F050000..0x9F14FFFF: ................ done&lt;br /&gt;
  Erased 16 sectors&lt;br /&gt;
          writing to address 0x9f050000, length 0x00100000 ...&lt;br /&gt;
  Copying partition 'rootfs' to flash memory:&lt;br /&gt;
          erasing range 0x9F150000..0x9F74FFFF: .............................................................................................e&lt;br /&gt;
  Erased 96 sectors&lt;br /&gt;
          writing to address 0x9f150000, length 0x00600000 ...&lt;br /&gt;
  &lt;br /&gt;
  Firmware update complete.&lt;br /&gt;
  &lt;br /&gt;
  Resetting...&lt;br /&gt;
  &lt;br /&gt;
  U-Boot 1.1.4.2-s594 (Dec  5 2012 - 15:23:07)&lt;br /&gt;
  &lt;br /&gt;
  Board: Ubiquiti Networks XM board (rev 1.0 e012)&lt;br /&gt;
&lt;br /&gt;
Attempting to run the same process after performing an official firmware update doesn't resolve the issue.&lt;br /&gt;
&lt;br /&gt;
=== Nanostation M5 ===&lt;br /&gt;
&lt;br /&gt;
Official firmware from Ubiquity Nanostation M5 (NSM5)&lt;br /&gt;
&lt;br /&gt;
* [https://www.ubnt.com/download/airmax-m/nanostationm/default/airos-xw-board-firmware-v564 airOS for XW board firmware v5.6.4]&lt;br /&gt;
&lt;br /&gt;
==== Firmware check failure ====&lt;br /&gt;
&lt;br /&gt;
Flashing the Nanostation M5 (FCC ID: SWX-NSM5D) using the TFTP rescue mode will result in a Firmware check failure error.&lt;br /&gt;
&lt;br /&gt;
If you attempt to flash the extender and receive a 'Firmware check failed' error, then you have a version of the NSM5 that is protected from being flashed via the default TFTP method. You will need to obtain a serial to USB interface (USB to UART TTL Module Serial Converter, 5 pin) and use it to flash the firmware.&lt;br /&gt;
&lt;br /&gt;
   $ ./flasher.js openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin&lt;br /&gt;
   Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
   Connection timed out&lt;br /&gt;
   Sending openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
   [Error: (Server) Firmware check failed]&lt;br /&gt;
&lt;br /&gt;
When connected to the NSM5 via a serial connection, a similar error is displayed when attempting to load the SudoWRT firmware image.&lt;br /&gt;
&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Will reset device configuration (Reset button active after 10 seconds).&lt;br /&gt;
  Erasing sector 123..126&lt;br /&gt;
  &lt;br /&gt;
  First 0x7b last 0x7e sector size 0x10000&lt;br /&gt;
  .... done&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
  Receiving file from 192.168.1.10:49763&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware check failed! (1)&lt;br /&gt;
&lt;br /&gt;
===== Drop into U-Boot Command Prompt =====&lt;br /&gt;
&lt;br /&gt;
Connect a USB to Serial adapter to the correct pins of the NSM5, as shown above. Unplug the Ethernet cable from the device, and then plug it back in to provide Power Over Ethernet once again, resulting in a reboot of the device.&lt;br /&gt;
&lt;br /&gt;
During the boot process, press a key to during the boot process to make the [https://wiki.openwrt.org/doc/techref/bootloader/uboot U-Boot] bootloader to drop into a command line prompt.&lt;br /&gt;
&lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0&lt;br /&gt;
  ar7240&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Running TFTPd =====&lt;br /&gt;
&lt;br /&gt;
Although U-Boot can support two protocols for transfering files, kermit or y-modem, the bootloader does not support the &amp;lt;tt&amp;gt;loadb&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;loady&amp;lt;/tt&amp;gt;. Minicom only supports y-modem protocol.&lt;br /&gt;
&lt;br /&gt;
We do not have to resort to a direct serial file transfer however. The 'mtdparts' command that is used to define flash memory partitions can be used to reset the partition table to the defaults before running 'urescue' to start the TFTP server.&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; help mtdparts&lt;br /&gt;
  mtdparts &lt;br /&gt;
      - list partition table&lt;br /&gt;
  mtdparts delall&lt;br /&gt;
      - delete all partitions&lt;br /&gt;
  mtdparts del part-id&lt;br /&gt;
      - delete partition (e.g. part-id = nand0,1)&lt;br /&gt;
  mtdparts add &amp;lt;mtd-dev&amp;gt; &amp;lt;size&amp;gt;[@&amp;lt;offset&amp;gt;] [&amp;lt;name&amp;gt;] [ro]&lt;br /&gt;
      - add partition&lt;br /&gt;
  mtdparts default&lt;br /&gt;
      - reset partition table to defaults&lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
&lt;br /&gt;
In your other terminal window, run the ubi-flasher script.&lt;br /&gt;
&lt;br /&gt;
  $ ./flasher.js /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin&lt;br /&gt;
  Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
  Connection timed out&lt;br /&gt;
  Sending /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
  Firmware flashing begun!&lt;br /&gt;
  The firmware has been successfully sent to the router.&lt;br /&gt;
  In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up).&lt;br /&gt;
  This means that the router is flashing itself with the new firmware.&lt;br /&gt;
  Once the router goes back to having only the power LED lit, the router has been successfully flashed.&lt;br /&gt;
&lt;br /&gt;
In the terminal running Minicom you should see the firmware successfully flashing.&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:52289&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware Version: XW.ar934x.v6.0.0-OpenWrt-r47662&lt;br /&gt;
  Setting U-Boot environment variables&lt;br /&gt;
  Un-Protected 1 sectors&lt;br /&gt;
  Erasing Flash.... done&lt;br /&gt;
  Erased 1 sectors&lt;br /&gt;
  Writing to Flash... write addr: 9f040000&lt;br /&gt;
  done&lt;br /&gt;
  Protected 1 sectors&lt;br /&gt;
  Copying partition 'kernel' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x5 last 0x14 sector size 0x10000&lt;br /&gt;
  ................ done&lt;br /&gt;
  write addr: 9f050000&lt;br /&gt;
  Copying partition 'rootfs' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x15 last 0x6e sector size 0x10000&lt;br /&gt;
  .......................................................................................... done&lt;br /&gt;
  write addr: 9f150000&lt;br /&gt;
  &lt;br /&gt;
  Firmware update complete.&lt;br /&gt;
  &lt;br /&gt;
  Resetting...&lt;br /&gt;
  &lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ## Booting image at 9f050000 ...&lt;br /&gt;
     Image Name:   MIPS OpenWrt Linux-3.18.23&lt;br /&gt;
     Created:      2015-12-01   0:03:51 UTC&lt;br /&gt;
     Image Type:   MIPS Linux Kernel Image (lzma compressed)&lt;br /&gt;
     Data Size:    1135619 Bytes =  1.1 MB&lt;br /&gt;
     Load Address: 80060000&lt;br /&gt;
     Entry Point:  80060000&lt;br /&gt;
     Verifying Checksum at 0x9f050040 ...OK&lt;br /&gt;
     Uncompressing Kernel Image ... OK&lt;br /&gt;
  &lt;br /&gt;
  Starting kernel ...&lt;br /&gt;
  &lt;br /&gt;
  [    0.000000] Linux version 3.18.23 (sudowrt-builder@build-test2) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.04 r47662) ) #2 Mon Nov 5&lt;br /&gt;
&lt;br /&gt;
After it reboots if you see the first line mention 'sudowrt-builder', the device is booting the SudoWRT firmware build.&lt;br /&gt;
&lt;br /&gt;
You can press ENTER once it is finished, and it should drop into the command line for the SudoWRT system.&lt;br /&gt;
&lt;br /&gt;
  [   25.650000] jffs2: Newly-erased block contained word 0xdeadc0de at offset 0x00000000&lt;br /&gt;
  [   25.660000] done.&lt;br /&gt;
  [   25.660000] jffs2: notice: (993) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and.&lt;br /&gt;
  &lt;br /&gt;
  BusyBox v1.23.2 (2015-11-30 18:48:50 EST) built-in shell (ash)&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
    ._______.___    ._______.______  ._____  .___    .___ .______  ._____  &lt;br /&gt;
    :_ ____/|   |   : .____/:_ _   \ :_ ___\ |   |   : __|:      \ :_ ___\ &lt;br /&gt;
    |   _/  |   |   | : _/\ |   |   ||   |___|   |   | : ||       ||   |___&lt;br /&gt;
    |   |   |   |/\ |   /  \| . |   ||   /  ||   |/\ |   ||   |   ||   /  |&lt;br /&gt;
    |_. |   |   /  \|_.: __/|. ____/ |. __  ||   /  \|   ||___|   ||. __  |&lt;br /&gt;
      :/    |______/   :/    :/       :/ |. ||______/|___|    |___| :/ |. |&lt;br /&gt;
      :                      :        :   :/                        :   :/ &lt;br /&gt;
                                          :                             : &lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   sudo mesh v0.2 (fledgling.extender)&lt;br /&gt;
                                based on OpenWRT 15.05 (Chaos Calmer)&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   &amp;quot;When your rage is choking you, it is best to say nothing.&amp;quot; &lt;br /&gt;
                                              - Octavia E. Butler, Fledgling&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
  &lt;br /&gt;
  root@sudomesh-node:/#&lt;/div&gt;</summary>
		<author><name>Gcg</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=11085</id>
		<title>Mesh/Flashing extender nodes</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=11085"/>
		<updated>2018-03-03T06:43:58Z</updated>

		<summary type="html">&lt;p&gt;Gcg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;After following the [[Mesh/WalkThrough]], you are probably just an isolated node on the virtual People's Open Network. If you want to become part of the physical mesh, you are going to need to extend the signal from home node using what we call an extender node. An extender node is just a roof-mounted, directional antenna used to make point-to-point connections between two locations that have line-of-sight (LOS) to one another. Preparing an extender node generally consists to two stages, downgrading the proprietary AirOS firmware and flashing it with our custom build of OpenWrt.&lt;br /&gt;
&lt;br /&gt;
== Downgrading to earlier AirOS ==&lt;br /&gt;
&lt;br /&gt;
Typically, we use Ubiquiti equipment for our extender nodes. These come with a proprietary firmware called AirOS. Any extender node with version 5.6 of AirOS and above needs to be downgraded to a 5.5.XX version of AirOS version before you can flash it with OpenWRT. &lt;br /&gt;
&lt;br /&gt;
First check what version of AirOS your extender node is running, to do this, &lt;br /&gt;
&lt;br /&gt;
* Edit your network settings to reflect the following:&lt;br /&gt;
&lt;br /&gt;
* Network Manager Method: Manual&lt;br /&gt;
** IP Address: 192.168.1.10 (some devices will only accept from this IP)&lt;br /&gt;
** Subnet Mask: 255.255.255.0&lt;br /&gt;
** Gateway: 0.0.0.0 (Or leave blank)&lt;br /&gt;
&lt;br /&gt;
You can also use the commands:&lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; down &lt;br /&gt;
  sudo ip addr add 192.168.1.10/24 dev &amp;lt;eth_interface&amp;gt; &lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; up&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;eth_interface&amp;gt; is the name of your ethernet interface found using `ip addr` (common names include eth0, enp3s0, ...)&lt;br /&gt;
&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the Power-over-Ethernet (PoE) power supply on the other end.&lt;br /&gt;
&lt;br /&gt;
* Plug another Ethernet cable into your extender node on one end and into the &amp;quot;POE&amp;quot; port of the PoE power supply on the other end.&lt;br /&gt;
&lt;br /&gt;
* Power on the extender node by plugging in the PoE and wait for it to boot (may take a few minutes).&lt;br /&gt;
&lt;br /&gt;
* Make sure you aren't connected to a wifi network that has an 192.168.1.x IP range. Disconnect/disable your wifi if necessary.&lt;br /&gt;
&lt;br /&gt;
* In a browser, go to the AirOS web interface at http://192.168.1.20&lt;br /&gt;
&lt;br /&gt;
* Log in using the credentials &lt;br /&gt;
** username: ubnt &lt;br /&gt;
** password: ubnt&lt;br /&gt;
&lt;br /&gt;
* Look at the Firmware information, it may say something like XM.v5.6.6.bin or XW.v5.6.6, based on this download the correct version of AirOS v5.5.10&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Version !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| XW v5.5.10 || http://dl.ubnt.com/firmwares/XW-fw/v5.5.10/XW.v5.5.10-u2.28005.150723.1358.bin&lt;br /&gt;
|-&lt;br /&gt;
| XM v5.5.10 || http://dl.ubnt.com/firmwares/XN-fw/v5.5.11/XM.v5.5.11.28002.150723.1344.bin&lt;br /&gt;
|-&lt;br /&gt;
| TI v5.5.11 || http://dl.ubnt.com/firmwares/XN-fw/v5.5.11/TI.v5.5.11.28002.150723.1518.bin&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Back in the web interface, go to the &amp;quot;System&amp;quot; tab.&lt;br /&gt;
* Click the &amp;quot;Browse&amp;quot; button next to the &amp;quot;Upload Firmware&amp;quot; box &lt;br /&gt;
* Select the firmware image you just downloaded&lt;br /&gt;
* Click &amp;quot;Upload&amp;quot;.&lt;br /&gt;
* After uploading you will be asked if you want to upgrade/install the firmware. Click yes/accept.&lt;br /&gt;
* Ignore any warnings about changing the default admin password, we're gonna overwrite it anyway&lt;br /&gt;
* Let the router finish flashing and wait for it to fully reboot.&lt;br /&gt;
* After it reboots, you may wanna go back into the web interface to make sure the downgrade was successful before proceeding.&lt;br /&gt;
&lt;br /&gt;
XM.v6.0.4 (v6.0.4) firmware version does not appear to be downgradable via the preceding method. Instead you will need to use command-line method as follows,&lt;br /&gt;
&lt;br /&gt;
   ssh-keygen -f &amp;quot;/home/yourusername/.ssh/known_hosts&amp;quot; -R 192.168.1.20&lt;br /&gt;
   scp &amp;lt;firmware_image.bin&amp;gt;  ubnt@192.168.1.20:/tmp/fwupdate.bin&lt;br /&gt;
   ssh ubnt@192.168.1.20  # password is &amp;quot;ubnt&amp;quot;&lt;br /&gt;
   /sbin/fwupdate -m&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Flash the Extender Node ==&lt;br /&gt;
Now that you have successfully downgraded the AirOS firmware, we can go ahead with flashing it with our custom build of OpenWRT. Start by downloading our firmware image for your model of extender node,&lt;br /&gt;
&lt;br /&gt;
The extender nodes that we currently support are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Notes !! OpenWRT Doc !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M2 and M5 || Newer models need [[#Downgrading_to_earlier_AirOS|AirOS downgrade]] before flashing!  Note that this will almost certainly require a USB to Serial connection (see below).|| [https://wiki.openwrt.org/toh/ubiquiti/nanostationm5 OpenWRT Docs] || firmware: [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin pre 2015 M5 versions and all M2 versions] or [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin 2015-2016 M5 versions]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation 2 || Not being built in current firmware release, Previous generation 802.11g (not the same as M2) || [https://wiki.openwrt.org/toh/ubiquiti/picostation2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ath25.extender-node/openwrt-ath25-ubnt2-pico2-squashfs.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation M2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostationm2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-bullet-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobeam M2 and M5 || NBEâ€‘M2â€‘13 and NBEâ€‘M5â€‘16 work but some (earlier?) NBEâ€‘M5â€‘19 have ethernet port issues. Newer models need [[#Downgrading_to_earlier_AirOS|AirOS downgrade]] before flashing! || [https://wiki.openwrt.org/toh/ubiquiti/nanobeam OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-loco-m-xw-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobridge M2 and M5 || || Same as pre-2015 Nanostation M || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Bullet M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/bullet OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-bullet-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|}&lt;br /&gt;
More firmware images can be found at http://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/&lt;br /&gt;
Also, if you are flashing for practice or testing, you can try using the dev-builds here, http://builds.sudomesh.org/dev-builds/, NOTE: USE WITH CARE, THESE PROVIDE SSH ACCESS WITH A DEFAULT PASSWORD AND SHOULD NOT BE USED FOR DEPLOYMENT NODES&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Configure your wired ethernet interface as instructed in the previous sections&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the Power-over-Ethernet (PoE) power supply on the other end.&lt;br /&gt;
&lt;br /&gt;
* Plug another Ethernet cable into your extender node on one end and into the &amp;quot;POE&amp;quot; port of the PoE power supply on the other end.&lt;br /&gt;
&lt;br /&gt;
* Push a pin into the reset hole and hold it.&lt;br /&gt;
* With the pin held down, plug in the power to the extender node, either by plugging in it's ethernet cable or by powering on the PoE.&lt;br /&gt;
&lt;br /&gt;
* Continue holding down the pin, watch the lights on the antenna - they will all flash together a few times and then flash back-and-forth in what is affectionately known as cha-cha mode (or more accurately, TFTP mode).&lt;br /&gt;
&lt;br /&gt;
* Once the lights on the antenna are flashing up and down, you can let go of the pin.&lt;br /&gt;
&lt;br /&gt;
* You should be able to ping the extender at 192.168.1.20.&lt;br /&gt;
&lt;br /&gt;
  $ ping 192.168.1.20&lt;br /&gt;
  PING 192.168.1.20 (192.168.1.20) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=1 ttl=64 time=1.54 ms&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=2 ttl=64 time=0.826 ms&lt;br /&gt;
&lt;br /&gt;
* Open a terminal (Linux or Mac?) and run the following:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/ubi-flasher&lt;br /&gt;
  cd ubi-flasher&lt;br /&gt;
  npm install&lt;br /&gt;
  ./flasher.js '&amp;lt;path to firmware&amp;gt;'&lt;br /&gt;
&lt;br /&gt;
* The terminal should return the following,&lt;br /&gt;
   The firmware has been successfully sent to the router. In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up). This means that the router is flashing itself with the new firmware. Once the router goes back to having only the power LED lit, the router has been successfully flashed.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Wait until the antenna has only the power LED lit and you're done.&lt;br /&gt;
&lt;br /&gt;
* Reconfigure your machine with the following static network configuration.&lt;br /&gt;
** IP address: 172.22.0.10 &lt;br /&gt;
** Subnet mask:  255.255.255.0&lt;br /&gt;
** Gateway: 0.0.0.0&lt;br /&gt;
&lt;br /&gt;
Or use the commands&lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; down &lt;br /&gt;
  sudo ip addr add 172.22.0.10/24 dev &amp;lt;eth_interface&amp;gt; &lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; up&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;eth_interface&amp;gt; is the name of your ethernet interface found using `ip addr` (common names include eth0, enp3s0, ...)&lt;br /&gt;
&lt;br /&gt;
See Network Configuration Guides: [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20Linux Linux] [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20MacOS%20X Mac]&lt;br /&gt;
&lt;br /&gt;
If you ping the extender node on 172.22.0.2 and it responds, it should be ready to connect to your home node on the appropriate wired Ethernet port.&lt;br /&gt;
&lt;br /&gt;
  $ ping 172.22.0.2&lt;br /&gt;
  PING 172.22.0.2 (172.22.0.2) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=1 ttl=64 time=0.617 ms&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=2 ttl=64 time=0.316 ms&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=3 ttl=64 time=0.398 ms&lt;br /&gt;
&lt;br /&gt;
Once configured with our firmware, an extender node will not start broadcasting an SSID until it is plugged into a home node because it must first get a mesh IP address.&lt;br /&gt;
&lt;br /&gt;
== Testing and Network Detection ==&lt;br /&gt;
&lt;br /&gt;
If you flashed your extender node with a dev-build of the firmware, you should now be able to ssh into to it.&lt;br /&gt;
It is probably easiest to first ssh in to your home node over the private interface and then into the extender node with its mesh IP.&lt;br /&gt;
&lt;br /&gt;
First, you should immediately change or disable the root password and instead add your ssh key to `/etc/dropbear/authorized_key` (this method of login will not work when sshing through a home node)&lt;br /&gt;
   passwd&lt;br /&gt;
&lt;br /&gt;
Once ssh'ed into the extender node, there are few files you can play around with,&lt;br /&gt;
`/etc/config/wireless` sets the names of the SSIDs broadcast by the antenna, you may want to change the name of the ad-hoc interface so as to distinguish it from home node's ad-hoc network&lt;br /&gt;
Trying changing it to something like &amp;quot;popplesopen.net-nod2nod&amp;quot;, then reboot the extender node and check if you can see the new name in your network list.&lt;br /&gt;
&lt;br /&gt;
YNext, you my be curious what you can see with your antenna, to scan for other visible networks, ssh in to the extender node and run the following,&lt;br /&gt;
   iw dev mesh0 scan | grep SSID:&lt;br /&gt;
This should return a lengthy list of SSID, if you can see another &amp;quot;pplsopen.net-node2node&amp;quot; SSID, you should be meshing with it automatically.&lt;br /&gt;
&lt;br /&gt;
If you'd like to view more info about the network you can see, you can pipe the output of the previous command to a log file like so,&lt;br /&gt;
   iw dev mesh0 scan &amp;gt; scan log&lt;br /&gt;
&lt;br /&gt;
Once you are done meshing around with your extender node make sure to reset the root password with passwd or reflash the router with the standard build of our firmware.&lt;br /&gt;
&lt;br /&gt;
Log into your home node via SSH, and tail &amp;lt;tt&amp;gt;/var/log/messages&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver: eth0.3: Physical disconnect detected&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver: Listening on interface eth0.3:&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver:   client IP: 100.64.37.3&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver:   client netmask 26&lt;br /&gt;
  Sun May  8 00:51:12 2016 daemon.debug notdhcpserver: eth0.3: Recieved HEARTBEAT for interface that hadn't been ACKed.&lt;br /&gt;
  ...&lt;br /&gt;
  Sun May  8 00:54:00 2016 daemon.debug notdhcpserver: eth0.3: Recieved HEARTBEAT for interface that hadn't been ACKed.&lt;br /&gt;
  Sun May  8 00:54:00 2016 daemon.info hostapd: priv5: STA 80:e6:50:0e:fe:6e WPA: group key handshake completed (RSN)&lt;br /&gt;
  Sun May  8 00:54:04 2016 daemon.debug notdhcpserver: eth0.2: Received lease request&lt;br /&gt;
  Sun May  8 00:54:04 2016 daemon.debug notdhcpserver: eth0.3: sending response (with ssl certificate)&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received ACK&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Running up hook script&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received redundant ACK&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received redundant ACK&lt;br /&gt;
&lt;br /&gt;
There should be a debug message in the log from notdhcpserver concerning the extender node.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== USB to Serial Connection ===&lt;br /&gt;
&lt;br /&gt;
If you experience trouble flashing your device via the web interface, or via the TFTP image upload method, you'll want to establish a serial connection to troubleshoot further. Methods for flashing your device involving a serial connection may become more common as devices adopt configurations to lock down [http://www.networkworld.com/article/3038722/mobile-wireless/manufacturers-start-to-lock-down-wi-fi-router-firmware-thanks-fcc.html wi-fi router firmware] to prevent flashing.&lt;br /&gt;
&lt;br /&gt;
The following notes describe steps to interface with a Nanostation M5 (NSM5) via the serial interface. &lt;br /&gt;
&lt;br /&gt;
==== Order a USB to Serial Converter ====&lt;br /&gt;
&lt;br /&gt;
USB to serial converter devices exist at a cost of $4 - $8 online, with much lower pricing and longer delivery times if ordered from China. Search for &amp;quot;USB to UART TTL&amp;quot;, including &amp;quot;5 pin&amp;quot; in the search. Make sure the specifications do not mention anything other than 3.3 volts.&lt;br /&gt;
&lt;br /&gt;
Mac OS X users may need to install a device driver for their device. For example, for devices using the CP210X chip, you can download the [https://www.silabs.com/products/mcu/Pages/USBtoUARTBridgeVCPDrivers.aspx#mac CP210x USB to UART Bridge VCP Driver], which is made available as &amp;lt;tt&amp;gt;/dev/tty.SLAB_USBtoUART&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Connecting to Serial ====&lt;br /&gt;
&lt;br /&gt;
You will need to connect the following pins from the converter to the pins on the device.&lt;br /&gt;
&lt;br /&gt;
* Ground (GND)&lt;br /&gt;
* Serial Out (Transmit / TX)&lt;br /&gt;
* Serial In (Receive / RX)&lt;br /&gt;
&lt;br /&gt;
Begin by connecting the Ground of the converter to the Ground of the device. Next connect the Transmit/TX of the converter to the Receive/RX of the device, then connect the Receive/RX of the converter to the Transmit/TX of the device.&lt;br /&gt;
&lt;br /&gt;
Nanostation M5 (NSM5) Example:&lt;br /&gt;
&lt;br /&gt;
[[File:CP2102-usb-to-serial-converter.jpg|400px|KEDSUMÂ® CP2102 Module STC Download Cable USB 2.0 to TTL 6PIN Serial Converter For STC]]&lt;br /&gt;
&lt;br /&gt;
[[File:Ubiquity-NSM5-serial-connectors.jpg|400px|Ubiquiti Nanostation NSM5 - Serial pins with connections]]&lt;br /&gt;
&lt;br /&gt;
==== Serial Communications Program ====&lt;br /&gt;
&lt;br /&gt;
You need to install a serial communication program. Linux users can use Minicom.&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get install minicom&lt;br /&gt;
&lt;br /&gt;
Mac OS X users can as well&lt;br /&gt;
&lt;br /&gt;
  brew install minicom&lt;br /&gt;
&lt;br /&gt;
By default the Minicom program will attempt to use /dev/tty8, and will also attempt to initialize the device (expecting a modem) by default.&lt;br /&gt;
&lt;br /&gt;
  $ minicom&lt;br /&gt;
  minicom: cannot open /dev/tty8: Permission denied&lt;br /&gt;
&lt;br /&gt;
Run the program so that it starts the program on the USB converter that is connected by adding &amp;lt;tt&amp;gt;-D /dev/ttyUSB0&amp;lt;/tt&amp;gt;, and specify that it should skip initialization by adding &amp;lt;tt&amp;gt;-o&amp;lt;/tt&amp;gt;. Mac users may need to reference a different device (such as &amp;lt;tt&amp;gt;/dev/tty.SLAB_USBtoUART&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
You can also specify from the command line that it use the baud rate and '8N1' settings specified below by including &amp;lt;tt&amp;gt;-b 115200 -8&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
  sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
&lt;br /&gt;
In Minicom, CTRL-A to get settings, then Press O, to access settings. Mac users will need to discover the proper META key to use with their Terminal program. iTerm uses the 'ESC' key.&lt;br /&gt;
&lt;br /&gt;
Go to Serial Port Setup, use these settings:&lt;br /&gt;
&lt;br /&gt;
* Set the serial device (should be /dev/tty/USB0)&lt;br /&gt;
* Baud Rate (Bits Per Second): 115200&lt;br /&gt;
* Settings '8N1' (short hand for 8 bits, no parity, 1 stop bit)&lt;br /&gt;
* Turn off hardware and software flow control&lt;br /&gt;
&lt;br /&gt;
Reboot the device, and it will let you drop into a command line. You will then have to figure out how to enable the network from the boot loader (Uboot or Redboot) and transfer the firmware to the device to flash it.&lt;br /&gt;
&lt;br /&gt;
==== Interupting Boot ====&lt;br /&gt;
&lt;br /&gt;
The device will not detect the key you press unless Minicom is configured properly.&lt;br /&gt;
&lt;br /&gt;
* To access the Help screen, Press CTRL-A, then press Z.&lt;br /&gt;
* To access the configuration/settings, press CTRL-A, then press O.&lt;br /&gt;
&lt;br /&gt;
From the configuration window, select to view the 'Serial port setup'&lt;br /&gt;
&lt;br /&gt;
  $ sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
  Welcome to minicom 2.7&lt;br /&gt;
  &lt;br /&gt;
  OPTIONS: I18n &lt;br /&gt;
  Compiled on Jan  1 2014, 17:13:19.&lt;br /&gt;
  Port /dev/ttyUSB0, 21:47:56&lt;br /&gt;
  &lt;br /&gt;
  Press CTRL-A Z for help on special keys&lt;br /&gt;
  &lt;br /&gt;
              +-----[configuration]------+&lt;br /&gt;
              | Filenames and paths      |&lt;br /&gt;
              | File transfer protocols  |&lt;br /&gt;
              | Serial port setup        |&lt;br /&gt;
              | Modem and dialing        |&lt;br /&gt;
              | Screen and keyboard      |&lt;br /&gt;
              | Save setup as dfl        |&lt;br /&gt;
              | Save setup as..          |&lt;br /&gt;
              | Exit                     |&lt;br /&gt;
              +--------------------------+&lt;br /&gt;
  &lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
  | A -    Serial Device      : /dev/ttyUSB0                              |&lt;br /&gt;
  | B - Lockfile Location     : /var/lock                                 |&lt;br /&gt;
  | C -   Callin Program      :                                           |&lt;br /&gt;
  | D -  Callout Program      :                                           |&lt;br /&gt;
  | E -    Bps/Par/Bits       : 115200 8N1                                |&lt;br /&gt;
  | F - Hardware Flow Control : Yes                                       |&lt;br /&gt;
  | G - Software Flow Control : No                                        |&lt;br /&gt;
  |                                                                       |&lt;br /&gt;
  |    Change which setting?                                              |&lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
&lt;br /&gt;
By default the Hardware Flow Control will be enabled. Press 'F' to disable Hardware Flow Control. Press ENTER to exit the Serial port setup window, and then select EXIT to go back to the program.&lt;br /&gt;
&lt;br /&gt;
At this point plug in the Ethernet cable to the 'Main' Ethernet port, with the other end connected to the 'POE' port on the Power Over Ethernet adapter that came with the device. As the device boots up, you'll see output similar to the following.&lt;br /&gt;
&lt;br /&gt;
You'll need to make sure to press a key before it boots the default image.&lt;br /&gt;
&lt;br /&gt;
=== Picostation M2HP ===&lt;br /&gt;
&lt;br /&gt;
Insightful post on [https://www.strugglingcoder.info/index.php/tag/ubnt/ loading FreeBSD image] with help from serial communications. Could be useful with troubleshooting other models.&lt;br /&gt;
=== Nanostation M2 ===&lt;br /&gt;
==== Firmware check failure ====&lt;br /&gt;
&lt;br /&gt;
The following are simply notes. A solution to this issue is still pending.&lt;br /&gt;
&lt;br /&gt;
Flashing the Nanostation M2 (FCC ID: SWX-M2N) using the TFTP rescue mode will result in a Firmware check failure error.&lt;br /&gt;
&lt;br /&gt;
  $ tftp 192.168.1.20&lt;br /&gt;
  tftp&amp;gt; bin&lt;br /&gt;
  tftp&amp;gt; put openwrt-ar71xx-generic-om2p-squashfs-factory.bin&lt;br /&gt;
  Error code 2: Firmware check failed&lt;br /&gt;
  Sent 4609024 bytes in 12.6 seconds&lt;br /&gt;
&lt;br /&gt;
You can boot up the M2 with a serial connection similar to the instructions below concerning the Nanostation M5.&lt;br /&gt;
&lt;br /&gt;
  Board: Ubiquiti Networks XM board (rev 1.0 e012)&lt;br /&gt;
  DRAM:  32 MB&lt;br /&gt;
  Flash:  8 MB&lt;br /&gt;
  PCIe WLAN Module found (#1).&lt;br /&gt;
  Net:   eth0, eth1&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: |&lt;br /&gt;
  Receiving file from 192.168.1.10:35456&lt;br /&gt;
  Received 4609501 bytes&lt;br /&gt;
  Firmware check failed! (-2)&lt;br /&gt;
&lt;br /&gt;
The method outlined for the Nanostation M5 below doesn't work with the M2.&lt;br /&gt;
&lt;br /&gt;
Update the firmware to [http://dl.ubnt.com/firmwares/XN-fw/v5.6.4/XM.v5.6.4.28924.160331.1253.bin airOS for XM board firmware v5.6.4].&lt;br /&gt;
&lt;br /&gt;
Serial Connection:&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
&lt;br /&gt;
Terminal:&lt;br /&gt;
&lt;br /&gt;
  $ tftp 192.168.1.20&lt;br /&gt;
  tftp&amp;gt; bin&lt;br /&gt;
  tftp&amp;gt; put XM.v5.6.4.28924.160331.1253.bin&lt;br /&gt;
  Sent 7537129 bytes in 20.8 seconds&lt;br /&gt;
&lt;br /&gt;
Serial Connection:&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:55113&lt;br /&gt;
  Received 7537129 bytes&lt;br /&gt;
  Firmware Version: XM.ar7240.v5.6.4.28924.160331.1253&lt;br /&gt;
  Setting U-Boot environment variables&lt;br /&gt;
  Un-Protected 1 sectors&lt;br /&gt;
  Erasing Flash.... done&lt;br /&gt;
  Erased 1 sectors&lt;br /&gt;
  Writing to Flash... done&lt;br /&gt;
  Protected 1 sectors&lt;br /&gt;
  Will not overwrite u-boot partition! Skipped.&lt;br /&gt;
  Copying partition 'kernel' to flash memory:&lt;br /&gt;
          erasing range 0x9F050000..0x9F14FFFF: ................ done&lt;br /&gt;
  Erased 16 sectors&lt;br /&gt;
          writing to address 0x9f050000, length 0x00100000 ...&lt;br /&gt;
  Copying partition 'rootfs' to flash memory:&lt;br /&gt;
          erasing range 0x9F150000..0x9F74FFFF: .............................................................................................e&lt;br /&gt;
  Erased 96 sectors&lt;br /&gt;
          writing to address 0x9f150000, length 0x00600000 ...&lt;br /&gt;
  &lt;br /&gt;
  Firmware update complete.&lt;br /&gt;
  &lt;br /&gt;
  Resetting...&lt;br /&gt;
  &lt;br /&gt;
  U-Boot 1.1.4.2-s594 (Dec  5 2012 - 15:23:07)&lt;br /&gt;
  &lt;br /&gt;
  Board: Ubiquiti Networks XM board (rev 1.0 e012)&lt;br /&gt;
&lt;br /&gt;
Attempting to run the same process after performing an official firmware update doesn't resolve the issue.&lt;br /&gt;
&lt;br /&gt;
=== Nanostation M5 ===&lt;br /&gt;
&lt;br /&gt;
Official firmware from Ubiquity Nanostation M5 (NSM5)&lt;br /&gt;
&lt;br /&gt;
* [https://www.ubnt.com/download/airmax-m/nanostationm/default/airos-xw-board-firmware-v564 airOS for XW board firmware v5.6.4]&lt;br /&gt;
&lt;br /&gt;
==== Firmware check failure ====&lt;br /&gt;
&lt;br /&gt;
Flashing the Nanostation M5 (FCC ID: SWX-NSM5D) using the TFTP rescue mode will result in a Firmware check failure error.&lt;br /&gt;
&lt;br /&gt;
If you attempt to flash the extender and receive a 'Firmware check failed' error, then you have a version of the NSM5 that is protected from being flashed via the default TFTP method. You will need to obtain a serial to USB interface (USB to UART TTL Module Serial Converter, 5 pin) and use it to flash the firmware.&lt;br /&gt;
&lt;br /&gt;
   $ ./flasher.js openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin&lt;br /&gt;
   Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
   Connection timed out&lt;br /&gt;
   Sending openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
   [Error: (Server) Firmware check failed]&lt;br /&gt;
&lt;br /&gt;
When connected to the NSM5 via a serial connection, a similar error is displayed when attempting to load the SudoWRT firmware image.&lt;br /&gt;
&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Will reset device configuration (Reset button active after 10 seconds).&lt;br /&gt;
  Erasing sector 123..126&lt;br /&gt;
  &lt;br /&gt;
  First 0x7b last 0x7e sector size 0x10000&lt;br /&gt;
  .... done&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
  Receiving file from 192.168.1.10:49763&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware check failed! (1)&lt;br /&gt;
&lt;br /&gt;
===== Drop into U-Boot Command Prompt =====&lt;br /&gt;
&lt;br /&gt;
Connect a USB to Serial adapter to the correct pins of the NSM5, as shown above. Unplug the Ethernet cable from the device, and then plug it back in to provide Power Over Ethernet once again, resulting in a reboot of the device.&lt;br /&gt;
&lt;br /&gt;
During the boot process, press a key to during the boot process to make the [https://wiki.openwrt.org/doc/techref/bootloader/uboot U-Boot] bootloader to drop into a command line prompt.&lt;br /&gt;
&lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0&lt;br /&gt;
  ar7240&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Running TFTPd =====&lt;br /&gt;
&lt;br /&gt;
Although U-Boot can support two protocols for transfering files, kermit or y-modem, the bootloader does not support the &amp;lt;tt&amp;gt;loadb&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;loady&amp;lt;/tt&amp;gt;. Minicom only supports y-modem protocol.&lt;br /&gt;
&lt;br /&gt;
We do not have to resort to a direct serial file transfer however. The 'mtdparts' command that is used to define flash memory partitions can be used to reset the partition table to the defaults before running 'urescue' to start the TFTP server.&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; help mtdparts&lt;br /&gt;
  mtdparts &lt;br /&gt;
      - list partition table&lt;br /&gt;
  mtdparts delall&lt;br /&gt;
      - delete all partitions&lt;br /&gt;
  mtdparts del part-id&lt;br /&gt;
      - delete partition (e.g. part-id = nand0,1)&lt;br /&gt;
  mtdparts add &amp;lt;mtd-dev&amp;gt; &amp;lt;size&amp;gt;[@&amp;lt;offset&amp;gt;] [&amp;lt;name&amp;gt;] [ro]&lt;br /&gt;
      - add partition&lt;br /&gt;
  mtdparts default&lt;br /&gt;
      - reset partition table to defaults&lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
&lt;br /&gt;
In your other terminal window, run the ubi-flasher script.&lt;br /&gt;
&lt;br /&gt;
  $ ./flasher.js /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin&lt;br /&gt;
  Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
  Connection timed out&lt;br /&gt;
  Sending /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
  Firmware flashing begun!&lt;br /&gt;
  The firmware has been successfully sent to the router.&lt;br /&gt;
  In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up).&lt;br /&gt;
  This means that the router is flashing itself with the new firmware.&lt;br /&gt;
  Once the router goes back to having only the power LED lit, the router has been successfully flashed.&lt;br /&gt;
&lt;br /&gt;
In the terminal running Minicom you should see the firmware successfully flashing.&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:52289&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware Version: XW.ar934x.v6.0.0-OpenWrt-r47662&lt;br /&gt;
  Setting U-Boot environment variables&lt;br /&gt;
  Un-Protected 1 sectors&lt;br /&gt;
  Erasing Flash.... done&lt;br /&gt;
  Erased 1 sectors&lt;br /&gt;
  Writing to Flash... write addr: 9f040000&lt;br /&gt;
  done&lt;br /&gt;
  Protected 1 sectors&lt;br /&gt;
  Copying partition 'kernel' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x5 last 0x14 sector size 0x10000&lt;br /&gt;
  ................ done&lt;br /&gt;
  write addr: 9f050000&lt;br /&gt;
  Copying partition 'rootfs' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x15 last 0x6e sector size 0x10000&lt;br /&gt;
  .......................................................................................... done&lt;br /&gt;
  write addr: 9f150000&lt;br /&gt;
  &lt;br /&gt;
  Firmware update complete.&lt;br /&gt;
  &lt;br /&gt;
  Resetting...&lt;br /&gt;
  &lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ## Booting image at 9f050000 ...&lt;br /&gt;
     Image Name:   MIPS OpenWrt Linux-3.18.23&lt;br /&gt;
     Created:      2015-12-01   0:03:51 UTC&lt;br /&gt;
     Image Type:   MIPS Linux Kernel Image (lzma compressed)&lt;br /&gt;
     Data Size:    1135619 Bytes =  1.1 MB&lt;br /&gt;
     Load Address: 80060000&lt;br /&gt;
     Entry Point:  80060000&lt;br /&gt;
     Verifying Checksum at 0x9f050040 ...OK&lt;br /&gt;
     Uncompressing Kernel Image ... OK&lt;br /&gt;
  &lt;br /&gt;
  Starting kernel ...&lt;br /&gt;
  &lt;br /&gt;
  [    0.000000] Linux version 3.18.23 (sudowrt-builder@build-test2) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.04 r47662) ) #2 Mon Nov 5&lt;br /&gt;
&lt;br /&gt;
After it reboots if you see the first line mention 'sudowrt-builder', the device is booting the SudoWRT firmware build.&lt;br /&gt;
&lt;br /&gt;
You can press ENTER once it is finished, and it should drop into the command line for the SudoWRT system.&lt;br /&gt;
&lt;br /&gt;
  [   25.650000] jffs2: Newly-erased block contained word 0xdeadc0de at offset 0x00000000&lt;br /&gt;
  [   25.660000] done.&lt;br /&gt;
  [   25.660000] jffs2: notice: (993) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and.&lt;br /&gt;
  &lt;br /&gt;
  BusyBox v1.23.2 (2015-11-30 18:48:50 EST) built-in shell (ash)&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
    ._______.___    ._______.______  ._____  .___    .___ .______  ._____  &lt;br /&gt;
    :_ ____/|   |   : .____/:_ _   \ :_ ___\ |   |   : __|:      \ :_ ___\ &lt;br /&gt;
    |   _/  |   |   | : _/\ |   |   ||   |___|   |   | : ||       ||   |___&lt;br /&gt;
    |   |   |   |/\ |   /  \| . |   ||   /  ||   |/\ |   ||   |   ||   /  |&lt;br /&gt;
    |_. |   |   /  \|_.: __/|. ____/ |. __  ||   /  \|   ||___|   ||. __  |&lt;br /&gt;
      :/    |______/   :/    :/       :/ |. ||______/|___|    |___| :/ |. |&lt;br /&gt;
      :                      :        :   :/                        :   :/ &lt;br /&gt;
                                          :                             : &lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   sudo mesh v0.2 (fledgling.extender)&lt;br /&gt;
                                based on OpenWRT 15.05 (Chaos Calmer)&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   &amp;quot;When your rage is choking you, it is best to say nothing.&amp;quot; &lt;br /&gt;
                                              - Octavia E. Butler, Fledgling&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
  &lt;br /&gt;
  root@sudomesh-node:/#&lt;/div&gt;</summary>
		<author><name>Gcg</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=11084</id>
		<title>Mesh/Flashing extender nodes</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=11084"/>
		<updated>2018-03-03T06:43:34Z</updated>

		<summary type="html">&lt;p&gt;Gcg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;After following the [[Mesh/WalkThrough]], you are probably just an isolated node on the virtual People's Open Network. If you want to become part of the physical mesh, you are going to need to extend the signal from home node using what we call an extender node. An extender node is just a roof-mounted, directional antenna used to make point-to-point connections between two locations that have line-of-sight (LOS) to one another. Preparing an extender node generally consists to two stages, downgrading the proprietary AirOS firmware and flashing it with our custom build of OpenWrt.&lt;br /&gt;
&lt;br /&gt;
== Downgrading to earlier AirOS ==&lt;br /&gt;
&lt;br /&gt;
Typically, we use Ubiquiti equipment for our extender nodes. These come with a proprietary firmware called AirOS. Any extender node with version 5.6 of AirOS and above needs to be downgraded to a 5.5.XX version of AirOS version before you can flash it with OpenWRT. &lt;br /&gt;
&lt;br /&gt;
First check what version of AirOS your extender node is running, to do this, &lt;br /&gt;
&lt;br /&gt;
* Edit your network settings to reflect the following:&lt;br /&gt;
&lt;br /&gt;
* Network Manager Method: Manual&lt;br /&gt;
* IP Address: 192.168.1.10 (some devices will only accept from this IP)&lt;br /&gt;
* Subnet Mask: 255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0 (Or leave blank)&lt;br /&gt;
&lt;br /&gt;
You can also use the commands:&lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; down &lt;br /&gt;
  sudo ip addr add 192.168.1.10/24 dev &amp;lt;eth_interface&amp;gt; &lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; up&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;eth_interface&amp;gt; is the name of your ethernet interface found using `ip addr` (common names include eth0, enp3s0, ...)&lt;br /&gt;
&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the Power-over-Ethernet (PoE) power supply on the other end.&lt;br /&gt;
&lt;br /&gt;
* Plug another Ethernet cable into your extender node on one end and into the &amp;quot;POE&amp;quot; port of the PoE power supply on the other end.&lt;br /&gt;
&lt;br /&gt;
* Power on the extender node by plugging in the PoE and wait for it to boot (may take a few minutes).&lt;br /&gt;
&lt;br /&gt;
* Make sure you aren't connected to a wifi network that has an 192.168.1.x IP range. Disconnect/disable your wifi if necessary.&lt;br /&gt;
&lt;br /&gt;
* In a browser, go to the AirOS web interface at http://192.168.1.20&lt;br /&gt;
&lt;br /&gt;
* Log in using the credentials &lt;br /&gt;
** username: ubnt &lt;br /&gt;
** password: ubnt&lt;br /&gt;
&lt;br /&gt;
* Look at the Firmware information, it may say something like XM.v5.6.6.bin or XW.v5.6.6, based on this download the correct version of AirOS v5.5.10&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Version !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| XW v5.5.10 || http://dl.ubnt.com/firmwares/XW-fw/v5.5.10/XW.v5.5.10-u2.28005.150723.1358.bin&lt;br /&gt;
|-&lt;br /&gt;
| XM v5.5.10 || http://dl.ubnt.com/firmwares/XN-fw/v5.5.11/XM.v5.5.11.28002.150723.1344.bin&lt;br /&gt;
|-&lt;br /&gt;
| TI v5.5.11 || http://dl.ubnt.com/firmwares/XN-fw/v5.5.11/TI.v5.5.11.28002.150723.1518.bin&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Back in the web interface, go to the &amp;quot;System&amp;quot; tab.&lt;br /&gt;
* Click the &amp;quot;Browse&amp;quot; button next to the &amp;quot;Upload Firmware&amp;quot; box &lt;br /&gt;
* Select the firmware image you just downloaded&lt;br /&gt;
* Click &amp;quot;Upload&amp;quot;.&lt;br /&gt;
* After uploading you will be asked if you want to upgrade/install the firmware. Click yes/accept.&lt;br /&gt;
* Ignore any warnings about changing the default admin password, we're gonna overwrite it anyway&lt;br /&gt;
* Let the router finish flashing and wait for it to fully reboot.&lt;br /&gt;
* After it reboots, you may wanna go back into the web interface to make sure the downgrade was successful before proceeding.&lt;br /&gt;
&lt;br /&gt;
XM.v6.0.4 (v6.0.4) firmware version does not appear to be downgradable via the preceding method. Instead you will need to use command-line method as follows,&lt;br /&gt;
&lt;br /&gt;
   ssh-keygen -f &amp;quot;/home/yourusername/.ssh/known_hosts&amp;quot; -R 192.168.1.20&lt;br /&gt;
   scp &amp;lt;firmware_image.bin&amp;gt;  ubnt@192.168.1.20:/tmp/fwupdate.bin&lt;br /&gt;
   ssh ubnt@192.168.1.20  # password is &amp;quot;ubnt&amp;quot;&lt;br /&gt;
   /sbin/fwupdate -m&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Flash the Extender Node ==&lt;br /&gt;
Now that you have successfully downgraded the AirOS firmware, we can go ahead with flashing it with our custom build of OpenWRT. Start by downloading our firmware image for your model of extender node,&lt;br /&gt;
&lt;br /&gt;
The extender nodes that we currently support are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Notes !! OpenWRT Doc !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M2 and M5 || Newer models need [[#Downgrading_to_earlier_AirOS|AirOS downgrade]] before flashing!  Note that this will almost certainly require a USB to Serial connection (see below).|| [https://wiki.openwrt.org/toh/ubiquiti/nanostationm5 OpenWRT Docs] || firmware: [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin pre 2015 M5 versions and all M2 versions] or [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin 2015-2016 M5 versions]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation 2 || Not being built in current firmware release, Previous generation 802.11g (not the same as M2) || [https://wiki.openwrt.org/toh/ubiquiti/picostation2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ath25.extender-node/openwrt-ath25-ubnt2-pico2-squashfs.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation M2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostationm2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-bullet-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobeam M2 and M5 || NBEâ€‘M2â€‘13 and NBEâ€‘M5â€‘16 work but some (earlier?) NBEâ€‘M5â€‘19 have ethernet port issues. Newer models need [[#Downgrading_to_earlier_AirOS|AirOS downgrade]] before flashing! || [https://wiki.openwrt.org/toh/ubiquiti/nanobeam OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-loco-m-xw-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobridge M2 and M5 || || Same as pre-2015 Nanostation M || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Bullet M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/bullet OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-bullet-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|}&lt;br /&gt;
More firmware images can be found at http://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/&lt;br /&gt;
Also, if you are flashing for practice or testing, you can try using the dev-builds here, http://builds.sudomesh.org/dev-builds/, NOTE: USE WITH CARE, THESE PROVIDE SSH ACCESS WITH A DEFAULT PASSWORD AND SHOULD NOT BE USED FOR DEPLOYMENT NODES&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Configure your wired ethernet interface as instructed in the previous sections&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the Power-over-Ethernet (PoE) power supply on the other end.&lt;br /&gt;
&lt;br /&gt;
* Plug another Ethernet cable into your extender node on one end and into the &amp;quot;POE&amp;quot; port of the PoE power supply on the other end.&lt;br /&gt;
&lt;br /&gt;
* Push a pin into the reset hole and hold it.&lt;br /&gt;
* With the pin held down, plug in the power to the extender node, either by plugging in it's ethernet cable or by powering on the PoE.&lt;br /&gt;
&lt;br /&gt;
* Continue holding down the pin, watch the lights on the antenna - they will all flash together a few times and then flash back-and-forth in what is affectionately known as cha-cha mode (or more accurately, TFTP mode).&lt;br /&gt;
&lt;br /&gt;
* Once the lights on the antenna are flashing up and down, you can let go of the pin.&lt;br /&gt;
&lt;br /&gt;
* You should be able to ping the extender at 192.168.1.20.&lt;br /&gt;
&lt;br /&gt;
  $ ping 192.168.1.20&lt;br /&gt;
  PING 192.168.1.20 (192.168.1.20) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=1 ttl=64 time=1.54 ms&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=2 ttl=64 time=0.826 ms&lt;br /&gt;
&lt;br /&gt;
* Open a terminal (Linux or Mac?) and run the following:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/ubi-flasher&lt;br /&gt;
  cd ubi-flasher&lt;br /&gt;
  npm install&lt;br /&gt;
  ./flasher.js '&amp;lt;path to firmware&amp;gt;'&lt;br /&gt;
&lt;br /&gt;
* The terminal should return the following,&lt;br /&gt;
   The firmware has been successfully sent to the router. In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up). This means that the router is flashing itself with the new firmware. Once the router goes back to having only the power LED lit, the router has been successfully flashed.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Wait until the antenna has only the power LED lit and you're done.&lt;br /&gt;
&lt;br /&gt;
* Reconfigure your machine with the following static network configuration.&lt;br /&gt;
** IP address: 172.22.0.10 &lt;br /&gt;
** Subnet mask:  255.255.255.0&lt;br /&gt;
** Gateway: 0.0.0.0&lt;br /&gt;
&lt;br /&gt;
Or use the commands&lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; down &lt;br /&gt;
  sudo ip addr add 172.22.0.10/24 dev &amp;lt;eth_interface&amp;gt; &lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; up&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;eth_interface&amp;gt; is the name of your ethernet interface found using `ip addr` (common names include eth0, enp3s0, ...)&lt;br /&gt;
&lt;br /&gt;
See Network Configuration Guides: [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20Linux Linux] [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20MacOS%20X Mac]&lt;br /&gt;
&lt;br /&gt;
If you ping the extender node on 172.22.0.2 and it responds, it should be ready to connect to your home node on the appropriate wired Ethernet port.&lt;br /&gt;
&lt;br /&gt;
  $ ping 172.22.0.2&lt;br /&gt;
  PING 172.22.0.2 (172.22.0.2) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=1 ttl=64 time=0.617 ms&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=2 ttl=64 time=0.316 ms&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=3 ttl=64 time=0.398 ms&lt;br /&gt;
&lt;br /&gt;
Once configured with our firmware, an extender node will not start broadcasting an SSID until it is plugged into a home node because it must first get a mesh IP address.&lt;br /&gt;
&lt;br /&gt;
== Testing and Network Detection ==&lt;br /&gt;
&lt;br /&gt;
If you flashed your extender node with a dev-build of the firmware, you should now be able to ssh into to it.&lt;br /&gt;
It is probably easiest to first ssh in to your home node over the private interface and then into the extender node with its mesh IP.&lt;br /&gt;
&lt;br /&gt;
First, you should immediately change or disable the root password and instead add your ssh key to `/etc/dropbear/authorized_key` (this method of login will not work when sshing through a home node)&lt;br /&gt;
   passwd&lt;br /&gt;
&lt;br /&gt;
Once ssh'ed into the extender node, there are few files you can play around with,&lt;br /&gt;
`/etc/config/wireless` sets the names of the SSIDs broadcast by the antenna, you may want to change the name of the ad-hoc interface so as to distinguish it from home node's ad-hoc network&lt;br /&gt;
Trying changing it to something like &amp;quot;popplesopen.net-nod2nod&amp;quot;, then reboot the extender node and check if you can see the new name in your network list.&lt;br /&gt;
&lt;br /&gt;
YNext, you my be curious what you can see with your antenna, to scan for other visible networks, ssh in to the extender node and run the following,&lt;br /&gt;
   iw dev mesh0 scan | grep SSID:&lt;br /&gt;
This should return a lengthy list of SSID, if you can see another &amp;quot;pplsopen.net-node2node&amp;quot; SSID, you should be meshing with it automatically.&lt;br /&gt;
&lt;br /&gt;
If you'd like to view more info about the network you can see, you can pipe the output of the previous command to a log file like so,&lt;br /&gt;
   iw dev mesh0 scan &amp;gt; scan log&lt;br /&gt;
&lt;br /&gt;
Once you are done meshing around with your extender node make sure to reset the root password with passwd or reflash the router with the standard build of our firmware.&lt;br /&gt;
&lt;br /&gt;
Log into your home node via SSH, and tail &amp;lt;tt&amp;gt;/var/log/messages&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver: eth0.3: Physical disconnect detected&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver: Listening on interface eth0.3:&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver:   client IP: 100.64.37.3&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver:   client netmask 26&lt;br /&gt;
  Sun May  8 00:51:12 2016 daemon.debug notdhcpserver: eth0.3: Recieved HEARTBEAT for interface that hadn't been ACKed.&lt;br /&gt;
  ...&lt;br /&gt;
  Sun May  8 00:54:00 2016 daemon.debug notdhcpserver: eth0.3: Recieved HEARTBEAT for interface that hadn't been ACKed.&lt;br /&gt;
  Sun May  8 00:54:00 2016 daemon.info hostapd: priv5: STA 80:e6:50:0e:fe:6e WPA: group key handshake completed (RSN)&lt;br /&gt;
  Sun May  8 00:54:04 2016 daemon.debug notdhcpserver: eth0.2: Received lease request&lt;br /&gt;
  Sun May  8 00:54:04 2016 daemon.debug notdhcpserver: eth0.3: sending response (with ssl certificate)&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received ACK&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Running up hook script&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received redundant ACK&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received redundant ACK&lt;br /&gt;
&lt;br /&gt;
There should be a debug message in the log from notdhcpserver concerning the extender node.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== USB to Serial Connection ===&lt;br /&gt;
&lt;br /&gt;
If you experience trouble flashing your device via the web interface, or via the TFTP image upload method, you'll want to establish a serial connection to troubleshoot further. Methods for flashing your device involving a serial connection may become more common as devices adopt configurations to lock down [http://www.networkworld.com/article/3038722/mobile-wireless/manufacturers-start-to-lock-down-wi-fi-router-firmware-thanks-fcc.html wi-fi router firmware] to prevent flashing.&lt;br /&gt;
&lt;br /&gt;
The following notes describe steps to interface with a Nanostation M5 (NSM5) via the serial interface. &lt;br /&gt;
&lt;br /&gt;
==== Order a USB to Serial Converter ====&lt;br /&gt;
&lt;br /&gt;
USB to serial converter devices exist at a cost of $4 - $8 online, with much lower pricing and longer delivery times if ordered from China. Search for &amp;quot;USB to UART TTL&amp;quot;, including &amp;quot;5 pin&amp;quot; in the search. Make sure the specifications do not mention anything other than 3.3 volts.&lt;br /&gt;
&lt;br /&gt;
Mac OS X users may need to install a device driver for their device. For example, for devices using the CP210X chip, you can download the [https://www.silabs.com/products/mcu/Pages/USBtoUARTBridgeVCPDrivers.aspx#mac CP210x USB to UART Bridge VCP Driver], which is made available as &amp;lt;tt&amp;gt;/dev/tty.SLAB_USBtoUART&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Connecting to Serial ====&lt;br /&gt;
&lt;br /&gt;
You will need to connect the following pins from the converter to the pins on the device.&lt;br /&gt;
&lt;br /&gt;
* Ground (GND)&lt;br /&gt;
* Serial Out (Transmit / TX)&lt;br /&gt;
* Serial In (Receive / RX)&lt;br /&gt;
&lt;br /&gt;
Begin by connecting the Ground of the converter to the Ground of the device. Next connect the Transmit/TX of the converter to the Receive/RX of the device, then connect the Receive/RX of the converter to the Transmit/TX of the device.&lt;br /&gt;
&lt;br /&gt;
Nanostation M5 (NSM5) Example:&lt;br /&gt;
&lt;br /&gt;
[[File:CP2102-usb-to-serial-converter.jpg|400px|KEDSUMÂ® CP2102 Module STC Download Cable USB 2.0 to TTL 6PIN Serial Converter For STC]]&lt;br /&gt;
&lt;br /&gt;
[[File:Ubiquity-NSM5-serial-connectors.jpg|400px|Ubiquiti Nanostation NSM5 - Serial pins with connections]]&lt;br /&gt;
&lt;br /&gt;
==== Serial Communications Program ====&lt;br /&gt;
&lt;br /&gt;
You need to install a serial communication program. Linux users can use Minicom.&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get install minicom&lt;br /&gt;
&lt;br /&gt;
Mac OS X users can as well&lt;br /&gt;
&lt;br /&gt;
  brew install minicom&lt;br /&gt;
&lt;br /&gt;
By default the Minicom program will attempt to use /dev/tty8, and will also attempt to initialize the device (expecting a modem) by default.&lt;br /&gt;
&lt;br /&gt;
  $ minicom&lt;br /&gt;
  minicom: cannot open /dev/tty8: Permission denied&lt;br /&gt;
&lt;br /&gt;
Run the program so that it starts the program on the USB converter that is connected by adding &amp;lt;tt&amp;gt;-D /dev/ttyUSB0&amp;lt;/tt&amp;gt;, and specify that it should skip initialization by adding &amp;lt;tt&amp;gt;-o&amp;lt;/tt&amp;gt;. Mac users may need to reference a different device (such as &amp;lt;tt&amp;gt;/dev/tty.SLAB_USBtoUART&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
You can also specify from the command line that it use the baud rate and '8N1' settings specified below by including &amp;lt;tt&amp;gt;-b 115200 -8&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
  sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
&lt;br /&gt;
In Minicom, CTRL-A to get settings, then Press O, to access settings. Mac users will need to discover the proper META key to use with their Terminal program. iTerm uses the 'ESC' key.&lt;br /&gt;
&lt;br /&gt;
Go to Serial Port Setup, use these settings:&lt;br /&gt;
&lt;br /&gt;
* Set the serial device (should be /dev/tty/USB0)&lt;br /&gt;
* Baud Rate (Bits Per Second): 115200&lt;br /&gt;
* Settings '8N1' (short hand for 8 bits, no parity, 1 stop bit)&lt;br /&gt;
* Turn off hardware and software flow control&lt;br /&gt;
&lt;br /&gt;
Reboot the device, and it will let you drop into a command line. You will then have to figure out how to enable the network from the boot loader (Uboot or Redboot) and transfer the firmware to the device to flash it.&lt;br /&gt;
&lt;br /&gt;
==== Interupting Boot ====&lt;br /&gt;
&lt;br /&gt;
The device will not detect the key you press unless Minicom is configured properly.&lt;br /&gt;
&lt;br /&gt;
* To access the Help screen, Press CTRL-A, then press Z.&lt;br /&gt;
* To access the configuration/settings, press CTRL-A, then press O.&lt;br /&gt;
&lt;br /&gt;
From the configuration window, select to view the 'Serial port setup'&lt;br /&gt;
&lt;br /&gt;
  $ sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
  Welcome to minicom 2.7&lt;br /&gt;
  &lt;br /&gt;
  OPTIONS: I18n &lt;br /&gt;
  Compiled on Jan  1 2014, 17:13:19.&lt;br /&gt;
  Port /dev/ttyUSB0, 21:47:56&lt;br /&gt;
  &lt;br /&gt;
  Press CTRL-A Z for help on special keys&lt;br /&gt;
  &lt;br /&gt;
              +-----[configuration]------+&lt;br /&gt;
              | Filenames and paths      |&lt;br /&gt;
              | File transfer protocols  |&lt;br /&gt;
              | Serial port setup        |&lt;br /&gt;
              | Modem and dialing        |&lt;br /&gt;
              | Screen and keyboard      |&lt;br /&gt;
              | Save setup as dfl        |&lt;br /&gt;
              | Save setup as..          |&lt;br /&gt;
              | Exit                     |&lt;br /&gt;
              +--------------------------+&lt;br /&gt;
  &lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
  | A -    Serial Device      : /dev/ttyUSB0                              |&lt;br /&gt;
  | B - Lockfile Location     : /var/lock                                 |&lt;br /&gt;
  | C -   Callin Program      :                                           |&lt;br /&gt;
  | D -  Callout Program      :                                           |&lt;br /&gt;
  | E -    Bps/Par/Bits       : 115200 8N1                                |&lt;br /&gt;
  | F - Hardware Flow Control : Yes                                       |&lt;br /&gt;
  | G - Software Flow Control : No                                        |&lt;br /&gt;
  |                                                                       |&lt;br /&gt;
  |    Change which setting?                                              |&lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
&lt;br /&gt;
By default the Hardware Flow Control will be enabled. Press 'F' to disable Hardware Flow Control. Press ENTER to exit the Serial port setup window, and then select EXIT to go back to the program.&lt;br /&gt;
&lt;br /&gt;
At this point plug in the Ethernet cable to the 'Main' Ethernet port, with the other end connected to the 'POE' port on the Power Over Ethernet adapter that came with the device. As the device boots up, you'll see output similar to the following.&lt;br /&gt;
&lt;br /&gt;
You'll need to make sure to press a key before it boots the default image.&lt;br /&gt;
&lt;br /&gt;
=== Picostation M2HP ===&lt;br /&gt;
&lt;br /&gt;
Insightful post on [https://www.strugglingcoder.info/index.php/tag/ubnt/ loading FreeBSD image] with help from serial communications. Could be useful with troubleshooting other models.&lt;br /&gt;
=== Nanostation M2 ===&lt;br /&gt;
==== Firmware check failure ====&lt;br /&gt;
&lt;br /&gt;
The following are simply notes. A solution to this issue is still pending.&lt;br /&gt;
&lt;br /&gt;
Flashing the Nanostation M2 (FCC ID: SWX-M2N) using the TFTP rescue mode will result in a Firmware check failure error.&lt;br /&gt;
&lt;br /&gt;
  $ tftp 192.168.1.20&lt;br /&gt;
  tftp&amp;gt; bin&lt;br /&gt;
  tftp&amp;gt; put openwrt-ar71xx-generic-om2p-squashfs-factory.bin&lt;br /&gt;
  Error code 2: Firmware check failed&lt;br /&gt;
  Sent 4609024 bytes in 12.6 seconds&lt;br /&gt;
&lt;br /&gt;
You can boot up the M2 with a serial connection similar to the instructions below concerning the Nanostation M5.&lt;br /&gt;
&lt;br /&gt;
  Board: Ubiquiti Networks XM board (rev 1.0 e012)&lt;br /&gt;
  DRAM:  32 MB&lt;br /&gt;
  Flash:  8 MB&lt;br /&gt;
  PCIe WLAN Module found (#1).&lt;br /&gt;
  Net:   eth0, eth1&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: |&lt;br /&gt;
  Receiving file from 192.168.1.10:35456&lt;br /&gt;
  Received 4609501 bytes&lt;br /&gt;
  Firmware check failed! (-2)&lt;br /&gt;
&lt;br /&gt;
The method outlined for the Nanostation M5 below doesn't work with the M2.&lt;br /&gt;
&lt;br /&gt;
Update the firmware to [http://dl.ubnt.com/firmwares/XN-fw/v5.6.4/XM.v5.6.4.28924.160331.1253.bin airOS for XM board firmware v5.6.4].&lt;br /&gt;
&lt;br /&gt;
Serial Connection:&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
&lt;br /&gt;
Terminal:&lt;br /&gt;
&lt;br /&gt;
  $ tftp 192.168.1.20&lt;br /&gt;
  tftp&amp;gt; bin&lt;br /&gt;
  tftp&amp;gt; put XM.v5.6.4.28924.160331.1253.bin&lt;br /&gt;
  Sent 7537129 bytes in 20.8 seconds&lt;br /&gt;
&lt;br /&gt;
Serial Connection:&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:55113&lt;br /&gt;
  Received 7537129 bytes&lt;br /&gt;
  Firmware Version: XM.ar7240.v5.6.4.28924.160331.1253&lt;br /&gt;
  Setting U-Boot environment variables&lt;br /&gt;
  Un-Protected 1 sectors&lt;br /&gt;
  Erasing Flash.... done&lt;br /&gt;
  Erased 1 sectors&lt;br /&gt;
  Writing to Flash... done&lt;br /&gt;
  Protected 1 sectors&lt;br /&gt;
  Will not overwrite u-boot partition! Skipped.&lt;br /&gt;
  Copying partition 'kernel' to flash memory:&lt;br /&gt;
          erasing range 0x9F050000..0x9F14FFFF: ................ done&lt;br /&gt;
  Erased 16 sectors&lt;br /&gt;
          writing to address 0x9f050000, length 0x00100000 ...&lt;br /&gt;
  Copying partition 'rootfs' to flash memory:&lt;br /&gt;
          erasing range 0x9F150000..0x9F74FFFF: .............................................................................................e&lt;br /&gt;
  Erased 96 sectors&lt;br /&gt;
          writing to address 0x9f150000, length 0x00600000 ...&lt;br /&gt;
  &lt;br /&gt;
  Firmware update complete.&lt;br /&gt;
  &lt;br /&gt;
  Resetting...&lt;br /&gt;
  &lt;br /&gt;
  U-Boot 1.1.4.2-s594 (Dec  5 2012 - 15:23:07)&lt;br /&gt;
  &lt;br /&gt;
  Board: Ubiquiti Networks XM board (rev 1.0 e012)&lt;br /&gt;
&lt;br /&gt;
Attempting to run the same process after performing an official firmware update doesn't resolve the issue.&lt;br /&gt;
&lt;br /&gt;
=== Nanostation M5 ===&lt;br /&gt;
&lt;br /&gt;
Official firmware from Ubiquity Nanostation M5 (NSM5)&lt;br /&gt;
&lt;br /&gt;
* [https://www.ubnt.com/download/airmax-m/nanostationm/default/airos-xw-board-firmware-v564 airOS for XW board firmware v5.6.4]&lt;br /&gt;
&lt;br /&gt;
==== Firmware check failure ====&lt;br /&gt;
&lt;br /&gt;
Flashing the Nanostation M5 (FCC ID: SWX-NSM5D) using the TFTP rescue mode will result in a Firmware check failure error.&lt;br /&gt;
&lt;br /&gt;
If you attempt to flash the extender and receive a 'Firmware check failed' error, then you have a version of the NSM5 that is protected from being flashed via the default TFTP method. You will need to obtain a serial to USB interface (USB to UART TTL Module Serial Converter, 5 pin) and use it to flash the firmware.&lt;br /&gt;
&lt;br /&gt;
   $ ./flasher.js openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin&lt;br /&gt;
   Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
   Connection timed out&lt;br /&gt;
   Sending openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
   [Error: (Server) Firmware check failed]&lt;br /&gt;
&lt;br /&gt;
When connected to the NSM5 via a serial connection, a similar error is displayed when attempting to load the SudoWRT firmware image.&lt;br /&gt;
&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Will reset device configuration (Reset button active after 10 seconds).&lt;br /&gt;
  Erasing sector 123..126&lt;br /&gt;
  &lt;br /&gt;
  First 0x7b last 0x7e sector size 0x10000&lt;br /&gt;
  .... done&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
  Receiving file from 192.168.1.10:49763&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware check failed! (1)&lt;br /&gt;
&lt;br /&gt;
===== Drop into U-Boot Command Prompt =====&lt;br /&gt;
&lt;br /&gt;
Connect a USB to Serial adapter to the correct pins of the NSM5, as shown above. Unplug the Ethernet cable from the device, and then plug it back in to provide Power Over Ethernet once again, resulting in a reboot of the device.&lt;br /&gt;
&lt;br /&gt;
During the boot process, press a key to during the boot process to make the [https://wiki.openwrt.org/doc/techref/bootloader/uboot U-Boot] bootloader to drop into a command line prompt.&lt;br /&gt;
&lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0&lt;br /&gt;
  ar7240&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Running TFTPd =====&lt;br /&gt;
&lt;br /&gt;
Although U-Boot can support two protocols for transfering files, kermit or y-modem, the bootloader does not support the &amp;lt;tt&amp;gt;loadb&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;loady&amp;lt;/tt&amp;gt;. Minicom only supports y-modem protocol.&lt;br /&gt;
&lt;br /&gt;
We do not have to resort to a direct serial file transfer however. The 'mtdparts' command that is used to define flash memory partitions can be used to reset the partition table to the defaults before running 'urescue' to start the TFTP server.&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; help mtdparts&lt;br /&gt;
  mtdparts &lt;br /&gt;
      - list partition table&lt;br /&gt;
  mtdparts delall&lt;br /&gt;
      - delete all partitions&lt;br /&gt;
  mtdparts del part-id&lt;br /&gt;
      - delete partition (e.g. part-id = nand0,1)&lt;br /&gt;
  mtdparts add &amp;lt;mtd-dev&amp;gt; &amp;lt;size&amp;gt;[@&amp;lt;offset&amp;gt;] [&amp;lt;name&amp;gt;] [ro]&lt;br /&gt;
      - add partition&lt;br /&gt;
  mtdparts default&lt;br /&gt;
      - reset partition table to defaults&lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
&lt;br /&gt;
In your other terminal window, run the ubi-flasher script.&lt;br /&gt;
&lt;br /&gt;
  $ ./flasher.js /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin&lt;br /&gt;
  Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
  Connection timed out&lt;br /&gt;
  Sending /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
  Firmware flashing begun!&lt;br /&gt;
  The firmware has been successfully sent to the router.&lt;br /&gt;
  In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up).&lt;br /&gt;
  This means that the router is flashing itself with the new firmware.&lt;br /&gt;
  Once the router goes back to having only the power LED lit, the router has been successfully flashed.&lt;br /&gt;
&lt;br /&gt;
In the terminal running Minicom you should see the firmware successfully flashing.&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:52289&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware Version: XW.ar934x.v6.0.0-OpenWrt-r47662&lt;br /&gt;
  Setting U-Boot environment variables&lt;br /&gt;
  Un-Protected 1 sectors&lt;br /&gt;
  Erasing Flash.... done&lt;br /&gt;
  Erased 1 sectors&lt;br /&gt;
  Writing to Flash... write addr: 9f040000&lt;br /&gt;
  done&lt;br /&gt;
  Protected 1 sectors&lt;br /&gt;
  Copying partition 'kernel' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x5 last 0x14 sector size 0x10000&lt;br /&gt;
  ................ done&lt;br /&gt;
  write addr: 9f050000&lt;br /&gt;
  Copying partition 'rootfs' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x15 last 0x6e sector size 0x10000&lt;br /&gt;
  .......................................................................................... done&lt;br /&gt;
  write addr: 9f150000&lt;br /&gt;
  &lt;br /&gt;
  Firmware update complete.&lt;br /&gt;
  &lt;br /&gt;
  Resetting...&lt;br /&gt;
  &lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ## Booting image at 9f050000 ...&lt;br /&gt;
     Image Name:   MIPS OpenWrt Linux-3.18.23&lt;br /&gt;
     Created:      2015-12-01   0:03:51 UTC&lt;br /&gt;
     Image Type:   MIPS Linux Kernel Image (lzma compressed)&lt;br /&gt;
     Data Size:    1135619 Bytes =  1.1 MB&lt;br /&gt;
     Load Address: 80060000&lt;br /&gt;
     Entry Point:  80060000&lt;br /&gt;
     Verifying Checksum at 0x9f050040 ...OK&lt;br /&gt;
     Uncompressing Kernel Image ... OK&lt;br /&gt;
  &lt;br /&gt;
  Starting kernel ...&lt;br /&gt;
  &lt;br /&gt;
  [    0.000000] Linux version 3.18.23 (sudowrt-builder@build-test2) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.04 r47662) ) #2 Mon Nov 5&lt;br /&gt;
&lt;br /&gt;
After it reboots if you see the first line mention 'sudowrt-builder', the device is booting the SudoWRT firmware build.&lt;br /&gt;
&lt;br /&gt;
You can press ENTER once it is finished, and it should drop into the command line for the SudoWRT system.&lt;br /&gt;
&lt;br /&gt;
  [   25.650000] jffs2: Newly-erased block contained word 0xdeadc0de at offset 0x00000000&lt;br /&gt;
  [   25.660000] done.&lt;br /&gt;
  [   25.660000] jffs2: notice: (993) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and.&lt;br /&gt;
  &lt;br /&gt;
  BusyBox v1.23.2 (2015-11-30 18:48:50 EST) built-in shell (ash)&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
    ._______.___    ._______.______  ._____  .___    .___ .______  ._____  &lt;br /&gt;
    :_ ____/|   |   : .____/:_ _   \ :_ ___\ |   |   : __|:      \ :_ ___\ &lt;br /&gt;
    |   _/  |   |   | : _/\ |   |   ||   |___|   |   | : ||       ||   |___&lt;br /&gt;
    |   |   |   |/\ |   /  \| . |   ||   /  ||   |/\ |   ||   |   ||   /  |&lt;br /&gt;
    |_. |   |   /  \|_.: __/|. ____/ |. __  ||   /  \|   ||___|   ||. __  |&lt;br /&gt;
      :/    |______/   :/    :/       :/ |. ||______/|___|    |___| :/ |. |&lt;br /&gt;
      :                      :        :   :/                        :   :/ &lt;br /&gt;
                                          :                             : &lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   sudo mesh v0.2 (fledgling.extender)&lt;br /&gt;
                                based on OpenWRT 15.05 (Chaos Calmer)&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   &amp;quot;When your rage is choking you, it is best to say nothing.&amp;quot; &lt;br /&gt;
                                              - Octavia E. Butler, Fledgling&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
  &lt;br /&gt;
  root@sudomesh-node:/#&lt;/div&gt;</summary>
		<author><name>Gcg</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=11083</id>
		<title>Mesh/Flashing extender nodes</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=11083"/>
		<updated>2018-03-03T06:42:52Z</updated>

		<summary type="html">&lt;p&gt;Gcg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;After following the [[Mesh/WalkThrough]], you are probably just an isolated node on the virtual People's Open Network. If you want to become part of the physical mesh, you are going to need to extend the signal from home node using what we call an extender node. An extender node is just a roof-mounted, directional antenna used to make point-to-point connections between two locations that have line-of-sight (LOS) to one another. Preparing an extender node generally consists to two stages, downgrading the proprietary AirOS firmware and flashing it with our custom build of OpenWrt.&lt;br /&gt;
&lt;br /&gt;
== Downgrading to earlier AirOS ==&lt;br /&gt;
&lt;br /&gt;
Typically, we use Ubiquiti equipment for our extender nodes. These come with a proprietary firmware called AirOS. Any extender node with version 5.6 of AirOS and above needs to be downgraded to a 5.5.XX version of AirOS version before you can flash it with OpenWRT. &lt;br /&gt;
&lt;br /&gt;
First check what version of AirOS your extender node is running, to do this, &lt;br /&gt;
&lt;br /&gt;
* Edit your network settings to reflect the following:&lt;br /&gt;
&lt;br /&gt;
* Network Manager Method: Manual&lt;br /&gt;
* IP Address: 192.168.1.10 (some devices will only accept from this IP)&lt;br /&gt;
* Subnet Mask: 255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0 (Or leave blank)&lt;br /&gt;
&lt;br /&gt;
You can also use the commands:&lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; down &lt;br /&gt;
  sudo ip addr add 192.168.1.10/24 dev &amp;lt;eth_interface&amp;gt; &lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; up&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;eth_interface&amp;gt; is the name of your ethernet interface found using `ip addr` (common names include eth0, enp3s0, ...)&lt;br /&gt;
&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the Power-over-Ethernet (PoE) power supply on the other end.&lt;br /&gt;
&lt;br /&gt;
* Plug another Ethernet cable into your extender node on one end and into the &amp;quot;POE&amp;quot; port of the PoE power supply on the other end.&lt;br /&gt;
&lt;br /&gt;
* Power on the extender node by plugging in the PoE and wait for it to boot (may take a few minutes).&lt;br /&gt;
&lt;br /&gt;
* Make sure you aren't connected to a wifi network that has an 192.168.1.x IP range. Disconnect/disable your wifi if necessary.&lt;br /&gt;
&lt;br /&gt;
* In a browser, go to the AirOS web interface at http://192.168.1.20&lt;br /&gt;
&lt;br /&gt;
* Log in using the credentials &lt;br /&gt;
** username: ubnt &lt;br /&gt;
** password: ubnt&lt;br /&gt;
&lt;br /&gt;
* Look at the Firmware information, it may say something like XM.v5.6.6.bin or XW.v5.6.6, based on this download the correct version of AirOS v5.5.10&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Version !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| XW v5.5.10 || http://dl.ubnt.com/firmwares/XW-fw/v5.5.10/XW.v5.5.10-u2.28005.150723.1358.bin&lt;br /&gt;
|-&lt;br /&gt;
| XM v5.5.10 || http://dl.ubnt.com/firmwares/XN-fw/v5.5.11/XM.v5.5.11.28002.150723.1344.bin&lt;br /&gt;
|-&lt;br /&gt;
| TI v5.5.11 || http://dl.ubnt.com/firmwares/XN-fw/v5.5.11/TI.v5.5.11.28002.150723.1518.bin&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Back in the web interface, go to the &amp;quot;System&amp;quot; tab.&lt;br /&gt;
* Click the &amp;quot;Browse&amp;quot; button next to the &amp;quot;Upload Firmware&amp;quot; box &lt;br /&gt;
* Select the firmware image you just downloaded&lt;br /&gt;
* Click &amp;quot;Upload&amp;quot;.&lt;br /&gt;
* After uploading you will be asked if you want to upgrade/install the firmware. Click yes/accept.&lt;br /&gt;
* Ignore any warnings about changing the default admin password, we're gonna overwrite it anyway&lt;br /&gt;
* Let the router finish flashing and wait for it to fully reboot.&lt;br /&gt;
* After it reboots, you may wanna go back into the web interface to make sure the downgrade was successful before proceeding.&lt;br /&gt;
&lt;br /&gt;
XM.v6.0.4 (v6.0.4) firmware version does not appear to be downgradable via the preceding method. Instead you will need to use command-line method as follows,&lt;br /&gt;
&lt;br /&gt;
   ssh-keygen -f &amp;quot;/home/yourusername/.ssh/known_hosts&amp;quot; -R 192.168.1.20&lt;br /&gt;
   scp &amp;lt;firmware_image.bin&amp;gt;  ubnt@192.168.1.20:/tmp/fwupdate.bin&lt;br /&gt;
   ssh ubnt@192.168.1.20  # password is &amp;quot;ubnt&amp;quot;&lt;br /&gt;
   /sbin/fwupdate -m&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Flash the Extender Node ==&lt;br /&gt;
Now that you have successfully downgraded the AirOS firmware, we can go ahead with flashing it with our custom build of OpenWRT. Start by downloading our firmware image for your model of extender node,&lt;br /&gt;
&lt;br /&gt;
The extender nodes that we currently support are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Notes !! OpenWRT Doc !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M2 and M5 || Newer models need [[#Downgrading_to_earlier_AirOS|AirOS downgrade]] before flashing!  Note that this will almost certainly require a USB to Serial connection (see below).|| [https://wiki.openwrt.org/toh/ubiquiti/nanostationm5 OpenWRT Docs] || firmware: [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin pre 2015 M5 versions and all M2 versions] or [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin 2015-2016 M5 versions]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation 2 || Not being built in current firmware release, Previous generation 802.11g (not the same as M2) || [https://wiki.openwrt.org/toh/ubiquiti/picostation2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ath25.extender-node/openwrt-ath25-ubnt2-pico2-squashfs.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation M2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostationm2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-bullet-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobeam M2 and M5 || NBEâ€‘M2â€‘13 and NBEâ€‘M5â€‘16 work but some (earlier?) NBEâ€‘M5â€‘19 have ethernet port issues. Newer models need [[#Downgrading_to_earlier_AirOS|AirOS downgrade]] before flashing! || [https://wiki.openwrt.org/toh/ubiquiti/nanobeam OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-loco-m-xw-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobridge M2 and M5 || || Same as pre-2015 Nanostation M || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Bullet M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/bullet OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-bullet-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|}&lt;br /&gt;
More firmware images can be found at http://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/&lt;br /&gt;
Also, if you are flashing for practice or testing, you can try using the dev-builds here, http://builds.sudomesh.org/dev-builds/, NOTE: USE WITH CARE, THESE PROVIDE SSH ACCESS WITH A DEFAULT PASSWORD AND SHOULD NOT BE USED FOR DEPLOYMENT NODES&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Configure your wired ethernet interface as instructed in the previous sections&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the Power-over-Ethernet (PoE) power supply on the other end.&lt;br /&gt;
&lt;br /&gt;
* Plug another Ethernet cable into your extender node on one end and into the &amp;quot;POE&amp;quot; port of the PoE power supply on the other end.&lt;br /&gt;
&lt;br /&gt;
* Push a pin into the reset hole and hold it.&lt;br /&gt;
* With the pin held down, plug in the power to the extender node, either by plugging in it's ethernet cable or by powering on the PoE.&lt;br /&gt;
&lt;br /&gt;
* Continue holding down the pin, watch the lights on the antenna - they will all flash together a few times and then flash back-and-forth in what is affectionately known as cha-cha mode (or more accurately, TFTP mode).&lt;br /&gt;
&lt;br /&gt;
* Once the lights on the antenna are flashing up and down, you can let go of the pin.&lt;br /&gt;
&lt;br /&gt;
* You should be able to ping the extender at 192.168.1.20.&lt;br /&gt;
&lt;br /&gt;
  $ ping 192.168.1.20&lt;br /&gt;
  PING 192.168.1.20 (192.168.1.20) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=1 ttl=64 time=1.54 ms&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=2 ttl=64 time=0.826 ms&lt;br /&gt;
&lt;br /&gt;
* Open a terminal (Linux or Mac?) and run the following:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/ubi-flasher&lt;br /&gt;
  cd ubi-flasher&lt;br /&gt;
  npm install&lt;br /&gt;
  ./flasher.js '&amp;lt;path to firmware&amp;gt;'&lt;br /&gt;
&lt;br /&gt;
* The terminal should return the following,&lt;br /&gt;
   The firmware has been successfully sent to the router. In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up). This means that the router is flashing itself with the new firmware. Once the router goes back to having only the power LED lit, the router has been successfully flashed.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Wait until the antenna has only the power LED lit and you're done.&lt;br /&gt;
&lt;br /&gt;
* Reconfigure your machine with the following static network configuration.&lt;br /&gt;
&lt;br /&gt;
** IP address: 172.22.0.10 &lt;br /&gt;
** Subnet mask:  255.255.255.0&lt;br /&gt;
** Gateway: 0.0.0.0&lt;br /&gt;
&lt;br /&gt;
Or use the commands&lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; down &lt;br /&gt;
  sudo ip addr add 172.22.0.10/24 dev &amp;lt;eth_interface&amp;gt; &lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; up&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;eth_interface&amp;gt; is the name of your ethernet interface found using `ip addr` (common names include eth0, enp3s0, ...)&lt;br /&gt;
&lt;br /&gt;
See Network Configuration Guides: [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20Linux Linux] [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20MacOS%20X Mac]&lt;br /&gt;
&lt;br /&gt;
If you ping the extender node on 172.22.0.2 and it responds, it should be ready to connect to your home node on the appropriate wired Ethernet port.&lt;br /&gt;
&lt;br /&gt;
  $ ping 172.22.0.2&lt;br /&gt;
  PING 172.22.0.2 (172.22.0.2) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=1 ttl=64 time=0.617 ms&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=2 ttl=64 time=0.316 ms&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=3 ttl=64 time=0.398 ms&lt;br /&gt;
&lt;br /&gt;
Once configured with our firmware, an extender node will not start broadcasting an SSID until it is plugged into a home node because it must first get a mesh IP address.&lt;br /&gt;
&lt;br /&gt;
== Testing and Network Detection ==&lt;br /&gt;
&lt;br /&gt;
If you flashed your extender node with a dev-build of the firmware, you should now be able to ssh into to it.&lt;br /&gt;
It is probably easiest to first ssh in to your home node over the private interface and then into the extender node with its mesh IP.&lt;br /&gt;
&lt;br /&gt;
First, you should immediately change or disable the root password and instead add your ssh key to `/etc/dropbear/authorized_key` (this method of login will not work when sshing through a home node)&lt;br /&gt;
   passwd&lt;br /&gt;
&lt;br /&gt;
Once ssh'ed into the extender node, there are few files you can play around with,&lt;br /&gt;
`/etc/config/wireless` sets the names of the SSIDs broadcast by the antenna, you may want to change the name of the ad-hoc interface so as to distinguish it from home node's ad-hoc network&lt;br /&gt;
Trying changing it to something like &amp;quot;popplesopen.net-nod2nod&amp;quot;, then reboot the extender node and check if you can see the new name in your network list.&lt;br /&gt;
&lt;br /&gt;
YNext, you my be curious what you can see with your antenna, to scan for other visible networks, ssh in to the extender node and run the following,&lt;br /&gt;
   iw dev mesh0 scan | grep SSID:&lt;br /&gt;
This should return a lengthy list of SSID, if you can see another &amp;quot;pplsopen.net-node2node&amp;quot; SSID, you should be meshing with it automatically.&lt;br /&gt;
&lt;br /&gt;
If you'd like to view more info about the network you can see, you can pipe the output of the previous command to a log file like so,&lt;br /&gt;
   iw dev mesh0 scan &amp;gt; scan log&lt;br /&gt;
&lt;br /&gt;
Once you are done meshing around with your extender node make sure to reset the root password with passwd or reflash the router with the standard build of our firmware.&lt;br /&gt;
&lt;br /&gt;
Log into your home node via SSH, and tail &amp;lt;tt&amp;gt;/var/log/messages&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver: eth0.3: Physical disconnect detected&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver: Listening on interface eth0.3:&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver:   client IP: 100.64.37.3&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver:   client netmask 26&lt;br /&gt;
  Sun May  8 00:51:12 2016 daemon.debug notdhcpserver: eth0.3: Recieved HEARTBEAT for interface that hadn't been ACKed.&lt;br /&gt;
  ...&lt;br /&gt;
  Sun May  8 00:54:00 2016 daemon.debug notdhcpserver: eth0.3: Recieved HEARTBEAT for interface that hadn't been ACKed.&lt;br /&gt;
  Sun May  8 00:54:00 2016 daemon.info hostapd: priv5: STA 80:e6:50:0e:fe:6e WPA: group key handshake completed (RSN)&lt;br /&gt;
  Sun May  8 00:54:04 2016 daemon.debug notdhcpserver: eth0.2: Received lease request&lt;br /&gt;
  Sun May  8 00:54:04 2016 daemon.debug notdhcpserver: eth0.3: sending response (with ssl certificate)&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received ACK&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Running up hook script&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received redundant ACK&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received redundant ACK&lt;br /&gt;
&lt;br /&gt;
There should be a debug message in the log from notdhcpserver concerning the extender node.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== USB to Serial Connection ===&lt;br /&gt;
&lt;br /&gt;
If you experience trouble flashing your device via the web interface, or via the TFTP image upload method, you'll want to establish a serial connection to troubleshoot further. Methods for flashing your device involving a serial connection may become more common as devices adopt configurations to lock down [http://www.networkworld.com/article/3038722/mobile-wireless/manufacturers-start-to-lock-down-wi-fi-router-firmware-thanks-fcc.html wi-fi router firmware] to prevent flashing.&lt;br /&gt;
&lt;br /&gt;
The following notes describe steps to interface with a Nanostation M5 (NSM5) via the serial interface. &lt;br /&gt;
&lt;br /&gt;
==== Order a USB to Serial Converter ====&lt;br /&gt;
&lt;br /&gt;
USB to serial converter devices exist at a cost of $4 - $8 online, with much lower pricing and longer delivery times if ordered from China. Search for &amp;quot;USB to UART TTL&amp;quot;, including &amp;quot;5 pin&amp;quot; in the search. Make sure the specifications do not mention anything other than 3.3 volts.&lt;br /&gt;
&lt;br /&gt;
Mac OS X users may need to install a device driver for their device. For example, for devices using the CP210X chip, you can download the [https://www.silabs.com/products/mcu/Pages/USBtoUARTBridgeVCPDrivers.aspx#mac CP210x USB to UART Bridge VCP Driver], which is made available as &amp;lt;tt&amp;gt;/dev/tty.SLAB_USBtoUART&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Connecting to Serial ====&lt;br /&gt;
&lt;br /&gt;
You will need to connect the following pins from the converter to the pins on the device.&lt;br /&gt;
&lt;br /&gt;
* Ground (GND)&lt;br /&gt;
* Serial Out (Transmit / TX)&lt;br /&gt;
* Serial In (Receive / RX)&lt;br /&gt;
&lt;br /&gt;
Begin by connecting the Ground of the converter to the Ground of the device. Next connect the Transmit/TX of the converter to the Receive/RX of the device, then connect the Receive/RX of the converter to the Transmit/TX of the device.&lt;br /&gt;
&lt;br /&gt;
Nanostation M5 (NSM5) Example:&lt;br /&gt;
&lt;br /&gt;
[[File:CP2102-usb-to-serial-converter.jpg|400px|KEDSUMÂ® CP2102 Module STC Download Cable USB 2.0 to TTL 6PIN Serial Converter For STC]]&lt;br /&gt;
&lt;br /&gt;
[[File:Ubiquity-NSM5-serial-connectors.jpg|400px|Ubiquiti Nanostation NSM5 - Serial pins with connections]]&lt;br /&gt;
&lt;br /&gt;
==== Serial Communications Program ====&lt;br /&gt;
&lt;br /&gt;
You need to install a serial communication program. Linux users can use Minicom.&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get install minicom&lt;br /&gt;
&lt;br /&gt;
Mac OS X users can as well&lt;br /&gt;
&lt;br /&gt;
  brew install minicom&lt;br /&gt;
&lt;br /&gt;
By default the Minicom program will attempt to use /dev/tty8, and will also attempt to initialize the device (expecting a modem) by default.&lt;br /&gt;
&lt;br /&gt;
  $ minicom&lt;br /&gt;
  minicom: cannot open /dev/tty8: Permission denied&lt;br /&gt;
&lt;br /&gt;
Run the program so that it starts the program on the USB converter that is connected by adding &amp;lt;tt&amp;gt;-D /dev/ttyUSB0&amp;lt;/tt&amp;gt;, and specify that it should skip initialization by adding &amp;lt;tt&amp;gt;-o&amp;lt;/tt&amp;gt;. Mac users may need to reference a different device (such as &amp;lt;tt&amp;gt;/dev/tty.SLAB_USBtoUART&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
You can also specify from the command line that it use the baud rate and '8N1' settings specified below by including &amp;lt;tt&amp;gt;-b 115200 -8&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
  sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
&lt;br /&gt;
In Minicom, CTRL-A to get settings, then Press O, to access settings. Mac users will need to discover the proper META key to use with their Terminal program. iTerm uses the 'ESC' key.&lt;br /&gt;
&lt;br /&gt;
Go to Serial Port Setup, use these settings:&lt;br /&gt;
&lt;br /&gt;
* Set the serial device (should be /dev/tty/USB0)&lt;br /&gt;
* Baud Rate (Bits Per Second): 115200&lt;br /&gt;
* Settings '8N1' (short hand for 8 bits, no parity, 1 stop bit)&lt;br /&gt;
* Turn off hardware and software flow control&lt;br /&gt;
&lt;br /&gt;
Reboot the device, and it will let you drop into a command line. You will then have to figure out how to enable the network from the boot loader (Uboot or Redboot) and transfer the firmware to the device to flash it.&lt;br /&gt;
&lt;br /&gt;
==== Interupting Boot ====&lt;br /&gt;
&lt;br /&gt;
The device will not detect the key you press unless Minicom is configured properly.&lt;br /&gt;
&lt;br /&gt;
* To access the Help screen, Press CTRL-A, then press Z.&lt;br /&gt;
* To access the configuration/settings, press CTRL-A, then press O.&lt;br /&gt;
&lt;br /&gt;
From the configuration window, select to view the 'Serial port setup'&lt;br /&gt;
&lt;br /&gt;
  $ sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
  Welcome to minicom 2.7&lt;br /&gt;
  &lt;br /&gt;
  OPTIONS: I18n &lt;br /&gt;
  Compiled on Jan  1 2014, 17:13:19.&lt;br /&gt;
  Port /dev/ttyUSB0, 21:47:56&lt;br /&gt;
  &lt;br /&gt;
  Press CTRL-A Z for help on special keys&lt;br /&gt;
  &lt;br /&gt;
              +-----[configuration]------+&lt;br /&gt;
              | Filenames and paths      |&lt;br /&gt;
              | File transfer protocols  |&lt;br /&gt;
              | Serial port setup        |&lt;br /&gt;
              | Modem and dialing        |&lt;br /&gt;
              | Screen and keyboard      |&lt;br /&gt;
              | Save setup as dfl        |&lt;br /&gt;
              | Save setup as..          |&lt;br /&gt;
              | Exit                     |&lt;br /&gt;
              +--------------------------+&lt;br /&gt;
  &lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
  | A -    Serial Device      : /dev/ttyUSB0                              |&lt;br /&gt;
  | B - Lockfile Location     : /var/lock                                 |&lt;br /&gt;
  | C -   Callin Program      :                                           |&lt;br /&gt;
  | D -  Callout Program      :                                           |&lt;br /&gt;
  | E -    Bps/Par/Bits       : 115200 8N1                                |&lt;br /&gt;
  | F - Hardware Flow Control : Yes                                       |&lt;br /&gt;
  | G - Software Flow Control : No                                        |&lt;br /&gt;
  |                                                                       |&lt;br /&gt;
  |    Change which setting?                                              |&lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
&lt;br /&gt;
By default the Hardware Flow Control will be enabled. Press 'F' to disable Hardware Flow Control. Press ENTER to exit the Serial port setup window, and then select EXIT to go back to the program.&lt;br /&gt;
&lt;br /&gt;
At this point plug in the Ethernet cable to the 'Main' Ethernet port, with the other end connected to the 'POE' port on the Power Over Ethernet adapter that came with the device. As the device boots up, you'll see output similar to the following.&lt;br /&gt;
&lt;br /&gt;
You'll need to make sure to press a key before it boots the default image.&lt;br /&gt;
&lt;br /&gt;
=== Picostation M2HP ===&lt;br /&gt;
&lt;br /&gt;
Insightful post on [https://www.strugglingcoder.info/index.php/tag/ubnt/ loading FreeBSD image] with help from serial communications. Could be useful with troubleshooting other models.&lt;br /&gt;
=== Nanostation M2 ===&lt;br /&gt;
==== Firmware check failure ====&lt;br /&gt;
&lt;br /&gt;
The following are simply notes. A solution to this issue is still pending.&lt;br /&gt;
&lt;br /&gt;
Flashing the Nanostation M2 (FCC ID: SWX-M2N) using the TFTP rescue mode will result in a Firmware check failure error.&lt;br /&gt;
&lt;br /&gt;
  $ tftp 192.168.1.20&lt;br /&gt;
  tftp&amp;gt; bin&lt;br /&gt;
  tftp&amp;gt; put openwrt-ar71xx-generic-om2p-squashfs-factory.bin&lt;br /&gt;
  Error code 2: Firmware check failed&lt;br /&gt;
  Sent 4609024 bytes in 12.6 seconds&lt;br /&gt;
&lt;br /&gt;
You can boot up the M2 with a serial connection similar to the instructions below concerning the Nanostation M5.&lt;br /&gt;
&lt;br /&gt;
  Board: Ubiquiti Networks XM board (rev 1.0 e012)&lt;br /&gt;
  DRAM:  32 MB&lt;br /&gt;
  Flash:  8 MB&lt;br /&gt;
  PCIe WLAN Module found (#1).&lt;br /&gt;
  Net:   eth0, eth1&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: |&lt;br /&gt;
  Receiving file from 192.168.1.10:35456&lt;br /&gt;
  Received 4609501 bytes&lt;br /&gt;
  Firmware check failed! (-2)&lt;br /&gt;
&lt;br /&gt;
The method outlined for the Nanostation M5 below doesn't work with the M2.&lt;br /&gt;
&lt;br /&gt;
Update the firmware to [http://dl.ubnt.com/firmwares/XN-fw/v5.6.4/XM.v5.6.4.28924.160331.1253.bin airOS for XM board firmware v5.6.4].&lt;br /&gt;
&lt;br /&gt;
Serial Connection:&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
&lt;br /&gt;
Terminal:&lt;br /&gt;
&lt;br /&gt;
  $ tftp 192.168.1.20&lt;br /&gt;
  tftp&amp;gt; bin&lt;br /&gt;
  tftp&amp;gt; put XM.v5.6.4.28924.160331.1253.bin&lt;br /&gt;
  Sent 7537129 bytes in 20.8 seconds&lt;br /&gt;
&lt;br /&gt;
Serial Connection:&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:55113&lt;br /&gt;
  Received 7537129 bytes&lt;br /&gt;
  Firmware Version: XM.ar7240.v5.6.4.28924.160331.1253&lt;br /&gt;
  Setting U-Boot environment variables&lt;br /&gt;
  Un-Protected 1 sectors&lt;br /&gt;
  Erasing Flash.... done&lt;br /&gt;
  Erased 1 sectors&lt;br /&gt;
  Writing to Flash... done&lt;br /&gt;
  Protected 1 sectors&lt;br /&gt;
  Will not overwrite u-boot partition! Skipped.&lt;br /&gt;
  Copying partition 'kernel' to flash memory:&lt;br /&gt;
          erasing range 0x9F050000..0x9F14FFFF: ................ done&lt;br /&gt;
  Erased 16 sectors&lt;br /&gt;
          writing to address 0x9f050000, length 0x00100000 ...&lt;br /&gt;
  Copying partition 'rootfs' to flash memory:&lt;br /&gt;
          erasing range 0x9F150000..0x9F74FFFF: .............................................................................................e&lt;br /&gt;
  Erased 96 sectors&lt;br /&gt;
          writing to address 0x9f150000, length 0x00600000 ...&lt;br /&gt;
  &lt;br /&gt;
  Firmware update complete.&lt;br /&gt;
  &lt;br /&gt;
  Resetting...&lt;br /&gt;
  &lt;br /&gt;
  U-Boot 1.1.4.2-s594 (Dec  5 2012 - 15:23:07)&lt;br /&gt;
  &lt;br /&gt;
  Board: Ubiquiti Networks XM board (rev 1.0 e012)&lt;br /&gt;
&lt;br /&gt;
Attempting to run the same process after performing an official firmware update doesn't resolve the issue.&lt;br /&gt;
&lt;br /&gt;
=== Nanostation M5 ===&lt;br /&gt;
&lt;br /&gt;
Official firmware from Ubiquity Nanostation M5 (NSM5)&lt;br /&gt;
&lt;br /&gt;
* [https://www.ubnt.com/download/airmax-m/nanostationm/default/airos-xw-board-firmware-v564 airOS for XW board firmware v5.6.4]&lt;br /&gt;
&lt;br /&gt;
==== Firmware check failure ====&lt;br /&gt;
&lt;br /&gt;
Flashing the Nanostation M5 (FCC ID: SWX-NSM5D) using the TFTP rescue mode will result in a Firmware check failure error.&lt;br /&gt;
&lt;br /&gt;
If you attempt to flash the extender and receive a 'Firmware check failed' error, then you have a version of the NSM5 that is protected from being flashed via the default TFTP method. You will need to obtain a serial to USB interface (USB to UART TTL Module Serial Converter, 5 pin) and use it to flash the firmware.&lt;br /&gt;
&lt;br /&gt;
   $ ./flasher.js openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin&lt;br /&gt;
   Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
   Connection timed out&lt;br /&gt;
   Sending openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
   [Error: (Server) Firmware check failed]&lt;br /&gt;
&lt;br /&gt;
When connected to the NSM5 via a serial connection, a similar error is displayed when attempting to load the SudoWRT firmware image.&lt;br /&gt;
&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Will reset device configuration (Reset button active after 10 seconds).&lt;br /&gt;
  Erasing sector 123..126&lt;br /&gt;
  &lt;br /&gt;
  First 0x7b last 0x7e sector size 0x10000&lt;br /&gt;
  .... done&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
  Receiving file from 192.168.1.10:49763&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware check failed! (1)&lt;br /&gt;
&lt;br /&gt;
===== Drop into U-Boot Command Prompt =====&lt;br /&gt;
&lt;br /&gt;
Connect a USB to Serial adapter to the correct pins of the NSM5, as shown above. Unplug the Ethernet cable from the device, and then plug it back in to provide Power Over Ethernet once again, resulting in a reboot of the device.&lt;br /&gt;
&lt;br /&gt;
During the boot process, press a key to during the boot process to make the [https://wiki.openwrt.org/doc/techref/bootloader/uboot U-Boot] bootloader to drop into a command line prompt.&lt;br /&gt;
&lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0&lt;br /&gt;
  ar7240&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Running TFTPd =====&lt;br /&gt;
&lt;br /&gt;
Although U-Boot can support two protocols for transfering files, kermit or y-modem, the bootloader does not support the &amp;lt;tt&amp;gt;loadb&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;loady&amp;lt;/tt&amp;gt;. Minicom only supports y-modem protocol.&lt;br /&gt;
&lt;br /&gt;
We do not have to resort to a direct serial file transfer however. The 'mtdparts' command that is used to define flash memory partitions can be used to reset the partition table to the defaults before running 'urescue' to start the TFTP server.&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; help mtdparts&lt;br /&gt;
  mtdparts &lt;br /&gt;
      - list partition table&lt;br /&gt;
  mtdparts delall&lt;br /&gt;
      - delete all partitions&lt;br /&gt;
  mtdparts del part-id&lt;br /&gt;
      - delete partition (e.g. part-id = nand0,1)&lt;br /&gt;
  mtdparts add &amp;lt;mtd-dev&amp;gt; &amp;lt;size&amp;gt;[@&amp;lt;offset&amp;gt;] [&amp;lt;name&amp;gt;] [ro]&lt;br /&gt;
      - add partition&lt;br /&gt;
  mtdparts default&lt;br /&gt;
      - reset partition table to defaults&lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
&lt;br /&gt;
In your other terminal window, run the ubi-flasher script.&lt;br /&gt;
&lt;br /&gt;
  $ ./flasher.js /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin&lt;br /&gt;
  Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
  Connection timed out&lt;br /&gt;
  Sending /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
  Firmware flashing begun!&lt;br /&gt;
  The firmware has been successfully sent to the router.&lt;br /&gt;
  In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up).&lt;br /&gt;
  This means that the router is flashing itself with the new firmware.&lt;br /&gt;
  Once the router goes back to having only the power LED lit, the router has been successfully flashed.&lt;br /&gt;
&lt;br /&gt;
In the terminal running Minicom you should see the firmware successfully flashing.&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:52289&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware Version: XW.ar934x.v6.0.0-OpenWrt-r47662&lt;br /&gt;
  Setting U-Boot environment variables&lt;br /&gt;
  Un-Protected 1 sectors&lt;br /&gt;
  Erasing Flash.... done&lt;br /&gt;
  Erased 1 sectors&lt;br /&gt;
  Writing to Flash... write addr: 9f040000&lt;br /&gt;
  done&lt;br /&gt;
  Protected 1 sectors&lt;br /&gt;
  Copying partition 'kernel' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x5 last 0x14 sector size 0x10000&lt;br /&gt;
  ................ done&lt;br /&gt;
  write addr: 9f050000&lt;br /&gt;
  Copying partition 'rootfs' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x15 last 0x6e sector size 0x10000&lt;br /&gt;
  .......................................................................................... done&lt;br /&gt;
  write addr: 9f150000&lt;br /&gt;
  &lt;br /&gt;
  Firmware update complete.&lt;br /&gt;
  &lt;br /&gt;
  Resetting...&lt;br /&gt;
  &lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ## Booting image at 9f050000 ...&lt;br /&gt;
     Image Name:   MIPS OpenWrt Linux-3.18.23&lt;br /&gt;
     Created:      2015-12-01   0:03:51 UTC&lt;br /&gt;
     Image Type:   MIPS Linux Kernel Image (lzma compressed)&lt;br /&gt;
     Data Size:    1135619 Bytes =  1.1 MB&lt;br /&gt;
     Load Address: 80060000&lt;br /&gt;
     Entry Point:  80060000&lt;br /&gt;
     Verifying Checksum at 0x9f050040 ...OK&lt;br /&gt;
     Uncompressing Kernel Image ... OK&lt;br /&gt;
  &lt;br /&gt;
  Starting kernel ...&lt;br /&gt;
  &lt;br /&gt;
  [    0.000000] Linux version 3.18.23 (sudowrt-builder@build-test2) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.04 r47662) ) #2 Mon Nov 5&lt;br /&gt;
&lt;br /&gt;
After it reboots if you see the first line mention 'sudowrt-builder', the device is booting the SudoWRT firmware build.&lt;br /&gt;
&lt;br /&gt;
You can press ENTER once it is finished, and it should drop into the command line for the SudoWRT system.&lt;br /&gt;
&lt;br /&gt;
  [   25.650000] jffs2: Newly-erased block contained word 0xdeadc0de at offset 0x00000000&lt;br /&gt;
  [   25.660000] done.&lt;br /&gt;
  [   25.660000] jffs2: notice: (993) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and.&lt;br /&gt;
  &lt;br /&gt;
  BusyBox v1.23.2 (2015-11-30 18:48:50 EST) built-in shell (ash)&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
    ._______.___    ._______.______  ._____  .___    .___ .______  ._____  &lt;br /&gt;
    :_ ____/|   |   : .____/:_ _   \ :_ ___\ |   |   : __|:      \ :_ ___\ &lt;br /&gt;
    |   _/  |   |   | : _/\ |   |   ||   |___|   |   | : ||       ||   |___&lt;br /&gt;
    |   |   |   |/\ |   /  \| . |   ||   /  ||   |/\ |   ||   |   ||   /  |&lt;br /&gt;
    |_. |   |   /  \|_.: __/|. ____/ |. __  ||   /  \|   ||___|   ||. __  |&lt;br /&gt;
      :/    |______/   :/    :/       :/ |. ||______/|___|    |___| :/ |. |&lt;br /&gt;
      :                      :        :   :/                        :   :/ &lt;br /&gt;
                                          :                             : &lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   sudo mesh v0.2 (fledgling.extender)&lt;br /&gt;
                                based on OpenWRT 15.05 (Chaos Calmer)&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   &amp;quot;When your rage is choking you, it is best to say nothing.&amp;quot; &lt;br /&gt;
                                              - Octavia E. Butler, Fledgling&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
  &lt;br /&gt;
  root@sudomesh-node:/#&lt;/div&gt;</summary>
		<author><name>Gcg</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=11082</id>
		<title>Mesh/Flashing extender nodes</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=11082"/>
		<updated>2018-03-03T06:41:44Z</updated>

		<summary type="html">&lt;p&gt;Gcg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;After following the [[Mesh/WalkThrough]], you are probably just an isolated node on the virtual People's Open Network. If you want to become part of the physical mesh, you are going to need to extend the signal from home node using what we call an extender node. An extender node is just a roof-mounted, directional antenna used to make point-to-point connections between two locations that have line-of-sight (LOS) to one another. Preparing an extender node generally consists to two stages, downgrading the proprietary AirOS firmware and flashing it with our custom build of OpenWrt.&lt;br /&gt;
&lt;br /&gt;
== Downgrading to earlier AirOS ==&lt;br /&gt;
&lt;br /&gt;
Typically, we use Ubiquiti equipment for our extender nodes. These come with a proprietary firmware called AirOS. Any extender node with version 5.6 of AirOS and above needs to be downgraded to a 5.5.XX version of AirOS version before you can flash it with OpenWRT. &lt;br /&gt;
&lt;br /&gt;
First check what version of AirOS your extender node is running, to do this, &lt;br /&gt;
&lt;br /&gt;
* Edit your network settings to reflect the following:&lt;br /&gt;
&lt;br /&gt;
* Network Manager Method: Manual&lt;br /&gt;
* IP Address: 192.168.1.10 (some devices will only accept from this IP)&lt;br /&gt;
* Subnet Mask: 255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0 (Or leave blank)&lt;br /&gt;
&lt;br /&gt;
You can also use the commands:&lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; down &lt;br /&gt;
  sudo ip addr add 192.168.1.10/24 dev &amp;lt;eth_interface&amp;gt; &lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; up&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;eth_interface&amp;gt; is the name of your ethernet interface found using `ip addr` (common names include eth0, enp3s0, ...)&lt;br /&gt;
&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the Power-over-Ethernet (PoE) power supply on the other end.&lt;br /&gt;
&lt;br /&gt;
* Plug another Ethernet cable into your extender node on one end and into the &amp;quot;POE&amp;quot; port of the PoE power supply on the other end.&lt;br /&gt;
&lt;br /&gt;
* Power on the extender node by plugging in the PoE and wait for it to boot (may take a few minutes).&lt;br /&gt;
&lt;br /&gt;
* Make sure you aren't connected to a wifi network that has an 192.168.1.x IP range. Disconnect/disable your wifi if necessary.&lt;br /&gt;
&lt;br /&gt;
* In a browser, go to the AirOS web interface at http://192.168.1.20&lt;br /&gt;
&lt;br /&gt;
* Log in using the credentials &lt;br /&gt;
** username: ubnt &lt;br /&gt;
** password: ubnt&lt;br /&gt;
&lt;br /&gt;
* Look at the Firmware information, it may say something like XM.v5.6.6.bin or XW.v5.6.6, based on this download the correct version of AirOS v5.5.10&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Version !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| XW v5.5.10 || http://dl.ubnt.com/firmwares/XW-fw/v5.5.10/XW.v5.5.10-u2.28005.150723.1358.bin&lt;br /&gt;
|-&lt;br /&gt;
| XM v5.5.10 || http://dl.ubnt.com/firmwares/XN-fw/v5.5.11/XM.v5.5.11.28002.150723.1344.bin&lt;br /&gt;
|-&lt;br /&gt;
| TI v5.5.11 || http://dl.ubnt.com/firmwares/XN-fw/v5.5.11/TI.v5.5.11.28002.150723.1518.bin&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Back in the web interface, go to the &amp;quot;System&amp;quot; tab.&lt;br /&gt;
* Click the &amp;quot;Browse&amp;quot; button next to the &amp;quot;Upload Firmware&amp;quot; box &lt;br /&gt;
* Select the firmware image you just downloaded&lt;br /&gt;
* Click &amp;quot;Upload&amp;quot;.&lt;br /&gt;
* After uploading you will be asked if you want to upgrade/install the firmware. Click yes/accept.&lt;br /&gt;
* Ignore any warnings about changing the default admin password, we're gonna overwrite it anyway&lt;br /&gt;
* Let the router finish flashing and wait for it to fully reboot.&lt;br /&gt;
* After it reboots, you may wanna go back into the web interface to make sure the downgrade was successful before proceeding.&lt;br /&gt;
&lt;br /&gt;
XM.v6.0.4 (v6.0.4) firmware version does not appear to be downgradable via the preceding method. Instead you will need to use command-line method as follows,&lt;br /&gt;
&lt;br /&gt;
   ssh-keygen -f &amp;quot;/home/yourusername/.ssh/known_hosts&amp;quot; -R 192.168.1.20&lt;br /&gt;
   scp &amp;lt;firmware_image.bin&amp;gt;  ubnt@192.168.1.20:/tmp/fwupdate.bin&lt;br /&gt;
   ssh ubnt@192.168.1.20  # password is &amp;quot;ubnt&amp;quot;&lt;br /&gt;
   /sbin/fwupdate -m&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Flash the Extender Node ==&lt;br /&gt;
Now that you have successfully downgraded the AirOS firmware, we can go ahead with flashing it with our custom build of OpenWRT. Start by downloading our firmware image for your model of extender node,&lt;br /&gt;
&lt;br /&gt;
The extender nodes that we currently support are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Notes !! OpenWRT Doc !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M2 and M5 || Newer models need [[#Downgrading_to_earlier_AirOS|AirOS downgrade]] before flashing!  Note that this will almost certainly require a USB to Serial connection (see below).|| [https://wiki.openwrt.org/toh/ubiquiti/nanostationm5 OpenWRT Docs] || firmware: [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin pre 2015 M5 versions and all M2 versions] or [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin 2015-2016 M5 versions]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation 2 || Not being built in current firmware release, Previous generation 802.11g (not the same as M2) || [https://wiki.openwrt.org/toh/ubiquiti/picostation2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ath25.extender-node/openwrt-ath25-ubnt2-pico2-squashfs.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation M2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostationm2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-bullet-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobeam M2 and M5 || NBEâ€‘M2â€‘13 and NBEâ€‘M5â€‘16 work but some (earlier?) NBEâ€‘M5â€‘19 have ethernet port issues. Newer models need [[#Downgrading_to_earlier_AirOS|AirOS downgrade]] before flashing! || [https://wiki.openwrt.org/toh/ubiquiti/nanobeam OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-loco-m-xw-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobridge M2 and M5 || || Same as pre-2015 Nanostation M || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Bullet M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/bullet OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-bullet-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|}&lt;br /&gt;
More firmware images can be found at http://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/&lt;br /&gt;
Also, if you are flashing for practice or testing, you can try using the dev-builds here, http://builds.sudomesh.org/dev-builds/, NOTE: USE WITH CARE, THESE PROVIDE SSH ACCESS WITH A DEFAULT PASSWORD AND SHOULD NOT BE USED FOR DEPLOYMENT NODES&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Configure your wired ethernet interface as instructed in the previous sections&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the Power-over-Ethernet (PoE) power supply on the other end.&lt;br /&gt;
&lt;br /&gt;
* Plug another Ethernet cable into your extender node on one end and into the &amp;quot;POE&amp;quot; port of the PoE power supply on the other end.&lt;br /&gt;
&lt;br /&gt;
* Push a pin into the reset hole and hold it.&lt;br /&gt;
* With the pin held down, plug in the power to the extender node, either by plugging in it's ethernet cable or by powering on the PoE.&lt;br /&gt;
&lt;br /&gt;
* Continue holding down the pin, watch the lights on the antenna - they will all flash together a few times and then flash back-and-forth in what is affectionately known as cha-cha mode (or more accurately, TFTP mode).&lt;br /&gt;
&lt;br /&gt;
* Once the lights on the antenna are flashing up and down, you can let go of the pin.&lt;br /&gt;
&lt;br /&gt;
* You should be able to ping the extender at 192.168.1.20.&lt;br /&gt;
&lt;br /&gt;
  $ ping 192.168.1.20&lt;br /&gt;
  PING 192.168.1.20 (192.168.1.20) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=1 ttl=64 time=1.54 ms&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=2 ttl=64 time=0.826 ms&lt;br /&gt;
&lt;br /&gt;
* Open a terminal (Linux or Mac?) and run the following:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/ubi-flasher&lt;br /&gt;
  cd ubi-flasher&lt;br /&gt;
  npm install&lt;br /&gt;
  ./flasher.js '&amp;lt;path to firmware&amp;gt;'&lt;br /&gt;
&lt;br /&gt;
* The terminal should return the following,&lt;br /&gt;
   The firmware has been successfully sent to the router. In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up). This means that the router is flashing itself with the new firmware. Once the router goes back to having only the power LED lit, the router has been successfully flashed.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Wait until the antenna has only the power LED lit and you're done.&lt;br /&gt;
&lt;br /&gt;
* Reconfigure your machine with the following static network configuration.&lt;br /&gt;
&lt;br /&gt;
* IP address: 172.22.0.10 &lt;br /&gt;
* Subnet mask:  255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0&lt;br /&gt;
&lt;br /&gt;
Or use the commands&lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; down &lt;br /&gt;
  sudo ip addr add 172.22.0.10/24 dev &amp;lt;eth_interface&amp;gt; &lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; up&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;eth_interface&amp;gt; is the name of your ethernet interface found using `ip addr` (common names include eth0, enp3s0, ...)&lt;br /&gt;
&lt;br /&gt;
See Network Configuration Guides: [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20Linux Linux] [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20MacOS%20X Mac]&lt;br /&gt;
&lt;br /&gt;
If you ping the extender node on 172.22.0.2 and it responds, it should be ready to connect to your home node on the appropriate wired Ethernet port.&lt;br /&gt;
&lt;br /&gt;
  $ ping 172.22.0.2&lt;br /&gt;
  PING 172.22.0.2 (172.22.0.2) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=1 ttl=64 time=0.617 ms&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=2 ttl=64 time=0.316 ms&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=3 ttl=64 time=0.398 ms&lt;br /&gt;
&lt;br /&gt;
Once configured with our firmware, an extender node will not start broadcasting an SSID until it is plugged into a home node because it must first get a mesh IP address.&lt;br /&gt;
&lt;br /&gt;
== Testing and Network Detection ==&lt;br /&gt;
&lt;br /&gt;
If you flashed your extender node with a dev-build of the firmware, you should now be able to ssh into to it.&lt;br /&gt;
It is probably easiest to first ssh in to your home node over the private interface and then into the extender node with its mesh IP.&lt;br /&gt;
&lt;br /&gt;
First, you should immediately change or disable the root password and instead add your ssh key to `/etc/dropbear/authorized_key` (this method of login will not work when sshing through a home node)&lt;br /&gt;
   passwd&lt;br /&gt;
&lt;br /&gt;
Once ssh'ed into the extender node, there are few files you can play around with,&lt;br /&gt;
`/etc/config/wireless` sets the names of the SSIDs broadcast by the antenna, you may want to change the name of the ad-hoc interface so as to distinguish it from home node's ad-hoc network&lt;br /&gt;
Trying changing it to something like &amp;quot;popplesopen.net-nod2nod&amp;quot;, then reboot the extender node and check if you can see the new name in your network list.&lt;br /&gt;
&lt;br /&gt;
YNext, you my be curious what you can see with your antenna, to scan for other visible networks, ssh in to the extender node and run the following,&lt;br /&gt;
   iw dev mesh0 scan | grep SSID:&lt;br /&gt;
This should return a lengthy list of SSID, if you can see another &amp;quot;pplsopen.net-node2node&amp;quot; SSID, you should be meshing with it automatically.&lt;br /&gt;
&lt;br /&gt;
If you'd like to view more info about the network you can see, you can pipe the output of the previous command to a log file like so,&lt;br /&gt;
   iw dev mesh0 scan &amp;gt; scan log&lt;br /&gt;
&lt;br /&gt;
Once you are done meshing around with your extender node make sure to reset the root password with passwd or reflash the router with the standard build of our firmware.&lt;br /&gt;
&lt;br /&gt;
Log into your home node via SSH, and tail &amp;lt;tt&amp;gt;/var/log/messages&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver: eth0.3: Physical disconnect detected&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver: Listening on interface eth0.3:&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver:   client IP: 100.64.37.3&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver:   client netmask 26&lt;br /&gt;
  Sun May  8 00:51:12 2016 daemon.debug notdhcpserver: eth0.3: Recieved HEARTBEAT for interface that hadn't been ACKed.&lt;br /&gt;
  ...&lt;br /&gt;
  Sun May  8 00:54:00 2016 daemon.debug notdhcpserver: eth0.3: Recieved HEARTBEAT for interface that hadn't been ACKed.&lt;br /&gt;
  Sun May  8 00:54:00 2016 daemon.info hostapd: priv5: STA 80:e6:50:0e:fe:6e WPA: group key handshake completed (RSN)&lt;br /&gt;
  Sun May  8 00:54:04 2016 daemon.debug notdhcpserver: eth0.2: Received lease request&lt;br /&gt;
  Sun May  8 00:54:04 2016 daemon.debug notdhcpserver: eth0.3: sending response (with ssl certificate)&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received ACK&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Running up hook script&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received redundant ACK&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received redundant ACK&lt;br /&gt;
&lt;br /&gt;
There should be a debug message in the log from notdhcpserver concerning the extender node.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== USB to Serial Connection ===&lt;br /&gt;
&lt;br /&gt;
If you experience trouble flashing your device via the web interface, or via the TFTP image upload method, you'll want to establish a serial connection to troubleshoot further. Methods for flashing your device involving a serial connection may become more common as devices adopt configurations to lock down [http://www.networkworld.com/article/3038722/mobile-wireless/manufacturers-start-to-lock-down-wi-fi-router-firmware-thanks-fcc.html wi-fi router firmware] to prevent flashing.&lt;br /&gt;
&lt;br /&gt;
The following notes describe steps to interface with a Nanostation M5 (NSM5) via the serial interface. &lt;br /&gt;
&lt;br /&gt;
==== Order a USB to Serial Converter ====&lt;br /&gt;
&lt;br /&gt;
USB to serial converter devices exist at a cost of $4 - $8 online, with much lower pricing and longer delivery times if ordered from China. Search for &amp;quot;USB to UART TTL&amp;quot;, including &amp;quot;5 pin&amp;quot; in the search. Make sure the specifications do not mention anything other than 3.3 volts.&lt;br /&gt;
&lt;br /&gt;
Mac OS X users may need to install a device driver for their device. For example, for devices using the CP210X chip, you can download the [https://www.silabs.com/products/mcu/Pages/USBtoUARTBridgeVCPDrivers.aspx#mac CP210x USB to UART Bridge VCP Driver], which is made available as &amp;lt;tt&amp;gt;/dev/tty.SLAB_USBtoUART&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Connecting to Serial ====&lt;br /&gt;
&lt;br /&gt;
You will need to connect the following pins from the converter to the pins on the device.&lt;br /&gt;
&lt;br /&gt;
* Ground (GND)&lt;br /&gt;
* Serial Out (Transmit / TX)&lt;br /&gt;
* Serial In (Receive / RX)&lt;br /&gt;
&lt;br /&gt;
Begin by connecting the Ground of the converter to the Ground of the device. Next connect the Transmit/TX of the converter to the Receive/RX of the device, then connect the Receive/RX of the converter to the Transmit/TX of the device.&lt;br /&gt;
&lt;br /&gt;
Nanostation M5 (NSM5) Example:&lt;br /&gt;
&lt;br /&gt;
[[File:CP2102-usb-to-serial-converter.jpg|400px|KEDSUMÂ® CP2102 Module STC Download Cable USB 2.0 to TTL 6PIN Serial Converter For STC]]&lt;br /&gt;
&lt;br /&gt;
[[File:Ubiquity-NSM5-serial-connectors.jpg|400px|Ubiquiti Nanostation NSM5 - Serial pins with connections]]&lt;br /&gt;
&lt;br /&gt;
==== Serial Communications Program ====&lt;br /&gt;
&lt;br /&gt;
You need to install a serial communication program. Linux users can use Minicom.&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get install minicom&lt;br /&gt;
&lt;br /&gt;
Mac OS X users can as well&lt;br /&gt;
&lt;br /&gt;
  brew install minicom&lt;br /&gt;
&lt;br /&gt;
By default the Minicom program will attempt to use /dev/tty8, and will also attempt to initialize the device (expecting a modem) by default.&lt;br /&gt;
&lt;br /&gt;
  $ minicom&lt;br /&gt;
  minicom: cannot open /dev/tty8: Permission denied&lt;br /&gt;
&lt;br /&gt;
Run the program so that it starts the program on the USB converter that is connected by adding &amp;lt;tt&amp;gt;-D /dev/ttyUSB0&amp;lt;/tt&amp;gt;, and specify that it should skip initialization by adding &amp;lt;tt&amp;gt;-o&amp;lt;/tt&amp;gt;. Mac users may need to reference a different device (such as &amp;lt;tt&amp;gt;/dev/tty.SLAB_USBtoUART&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
You can also specify from the command line that it use the baud rate and '8N1' settings specified below by including &amp;lt;tt&amp;gt;-b 115200 -8&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
  sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
&lt;br /&gt;
In Minicom, CTRL-A to get settings, then Press O, to access settings. Mac users will need to discover the proper META key to use with their Terminal program. iTerm uses the 'ESC' key.&lt;br /&gt;
&lt;br /&gt;
Go to Serial Port Setup, use these settings:&lt;br /&gt;
&lt;br /&gt;
* Set the serial device (should be /dev/tty/USB0)&lt;br /&gt;
* Baud Rate (Bits Per Second): 115200&lt;br /&gt;
* Settings '8N1' (short hand for 8 bits, no parity, 1 stop bit)&lt;br /&gt;
* Turn off hardware and software flow control&lt;br /&gt;
&lt;br /&gt;
Reboot the device, and it will let you drop into a command line. You will then have to figure out how to enable the network from the boot loader (Uboot or Redboot) and transfer the firmware to the device to flash it.&lt;br /&gt;
&lt;br /&gt;
==== Interupting Boot ====&lt;br /&gt;
&lt;br /&gt;
The device will not detect the key you press unless Minicom is configured properly.&lt;br /&gt;
&lt;br /&gt;
* To access the Help screen, Press CTRL-A, then press Z.&lt;br /&gt;
* To access the configuration/settings, press CTRL-A, then press O.&lt;br /&gt;
&lt;br /&gt;
From the configuration window, select to view the 'Serial port setup'&lt;br /&gt;
&lt;br /&gt;
  $ sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
  Welcome to minicom 2.7&lt;br /&gt;
  &lt;br /&gt;
  OPTIONS: I18n &lt;br /&gt;
  Compiled on Jan  1 2014, 17:13:19.&lt;br /&gt;
  Port /dev/ttyUSB0, 21:47:56&lt;br /&gt;
  &lt;br /&gt;
  Press CTRL-A Z for help on special keys&lt;br /&gt;
  &lt;br /&gt;
              +-----[configuration]------+&lt;br /&gt;
              | Filenames and paths      |&lt;br /&gt;
              | File transfer protocols  |&lt;br /&gt;
              | Serial port setup        |&lt;br /&gt;
              | Modem and dialing        |&lt;br /&gt;
              | Screen and keyboard      |&lt;br /&gt;
              | Save setup as dfl        |&lt;br /&gt;
              | Save setup as..          |&lt;br /&gt;
              | Exit                     |&lt;br /&gt;
              +--------------------------+&lt;br /&gt;
  &lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
  | A -    Serial Device      : /dev/ttyUSB0                              |&lt;br /&gt;
  | B - Lockfile Location     : /var/lock                                 |&lt;br /&gt;
  | C -   Callin Program      :                                           |&lt;br /&gt;
  | D -  Callout Program      :                                           |&lt;br /&gt;
  | E -    Bps/Par/Bits       : 115200 8N1                                |&lt;br /&gt;
  | F - Hardware Flow Control : Yes                                       |&lt;br /&gt;
  | G - Software Flow Control : No                                        |&lt;br /&gt;
  |                                                                       |&lt;br /&gt;
  |    Change which setting?                                              |&lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
&lt;br /&gt;
By default the Hardware Flow Control will be enabled. Press 'F' to disable Hardware Flow Control. Press ENTER to exit the Serial port setup window, and then select EXIT to go back to the program.&lt;br /&gt;
&lt;br /&gt;
At this point plug in the Ethernet cable to the 'Main' Ethernet port, with the other end connected to the 'POE' port on the Power Over Ethernet adapter that came with the device. As the device boots up, you'll see output similar to the following.&lt;br /&gt;
&lt;br /&gt;
You'll need to make sure to press a key before it boots the default image.&lt;br /&gt;
&lt;br /&gt;
=== Picostation M2HP ===&lt;br /&gt;
&lt;br /&gt;
Insightful post on [https://www.strugglingcoder.info/index.php/tag/ubnt/ loading FreeBSD image] with help from serial communications. Could be useful with troubleshooting other models.&lt;br /&gt;
=== Nanostation M2 ===&lt;br /&gt;
==== Firmware check failure ====&lt;br /&gt;
&lt;br /&gt;
The following are simply notes. A solution to this issue is still pending.&lt;br /&gt;
&lt;br /&gt;
Flashing the Nanostation M2 (FCC ID: SWX-M2N) using the TFTP rescue mode will result in a Firmware check failure error.&lt;br /&gt;
&lt;br /&gt;
  $ tftp 192.168.1.20&lt;br /&gt;
  tftp&amp;gt; bin&lt;br /&gt;
  tftp&amp;gt; put openwrt-ar71xx-generic-om2p-squashfs-factory.bin&lt;br /&gt;
  Error code 2: Firmware check failed&lt;br /&gt;
  Sent 4609024 bytes in 12.6 seconds&lt;br /&gt;
&lt;br /&gt;
You can boot up the M2 with a serial connection similar to the instructions below concerning the Nanostation M5.&lt;br /&gt;
&lt;br /&gt;
  Board: Ubiquiti Networks XM board (rev 1.0 e012)&lt;br /&gt;
  DRAM:  32 MB&lt;br /&gt;
  Flash:  8 MB&lt;br /&gt;
  PCIe WLAN Module found (#1).&lt;br /&gt;
  Net:   eth0, eth1&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: |&lt;br /&gt;
  Receiving file from 192.168.1.10:35456&lt;br /&gt;
  Received 4609501 bytes&lt;br /&gt;
  Firmware check failed! (-2)&lt;br /&gt;
&lt;br /&gt;
The method outlined for the Nanostation M5 below doesn't work with the M2.&lt;br /&gt;
&lt;br /&gt;
Update the firmware to [http://dl.ubnt.com/firmwares/XN-fw/v5.6.4/XM.v5.6.4.28924.160331.1253.bin airOS for XM board firmware v5.6.4].&lt;br /&gt;
&lt;br /&gt;
Serial Connection:&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
&lt;br /&gt;
Terminal:&lt;br /&gt;
&lt;br /&gt;
  $ tftp 192.168.1.20&lt;br /&gt;
  tftp&amp;gt; bin&lt;br /&gt;
  tftp&amp;gt; put XM.v5.6.4.28924.160331.1253.bin&lt;br /&gt;
  Sent 7537129 bytes in 20.8 seconds&lt;br /&gt;
&lt;br /&gt;
Serial Connection:&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:55113&lt;br /&gt;
  Received 7537129 bytes&lt;br /&gt;
  Firmware Version: XM.ar7240.v5.6.4.28924.160331.1253&lt;br /&gt;
  Setting U-Boot environment variables&lt;br /&gt;
  Un-Protected 1 sectors&lt;br /&gt;
  Erasing Flash.... done&lt;br /&gt;
  Erased 1 sectors&lt;br /&gt;
  Writing to Flash... done&lt;br /&gt;
  Protected 1 sectors&lt;br /&gt;
  Will not overwrite u-boot partition! Skipped.&lt;br /&gt;
  Copying partition 'kernel' to flash memory:&lt;br /&gt;
          erasing range 0x9F050000..0x9F14FFFF: ................ done&lt;br /&gt;
  Erased 16 sectors&lt;br /&gt;
          writing to address 0x9f050000, length 0x00100000 ...&lt;br /&gt;
  Copying partition 'rootfs' to flash memory:&lt;br /&gt;
          erasing range 0x9F150000..0x9F74FFFF: .............................................................................................e&lt;br /&gt;
  Erased 96 sectors&lt;br /&gt;
          writing to address 0x9f150000, length 0x00600000 ...&lt;br /&gt;
  &lt;br /&gt;
  Firmware update complete.&lt;br /&gt;
  &lt;br /&gt;
  Resetting...&lt;br /&gt;
  &lt;br /&gt;
  U-Boot 1.1.4.2-s594 (Dec  5 2012 - 15:23:07)&lt;br /&gt;
  &lt;br /&gt;
  Board: Ubiquiti Networks XM board (rev 1.0 e012)&lt;br /&gt;
&lt;br /&gt;
Attempting to run the same process after performing an official firmware update doesn't resolve the issue.&lt;br /&gt;
&lt;br /&gt;
=== Nanostation M5 ===&lt;br /&gt;
&lt;br /&gt;
Official firmware from Ubiquity Nanostation M5 (NSM5)&lt;br /&gt;
&lt;br /&gt;
* [https://www.ubnt.com/download/airmax-m/nanostationm/default/airos-xw-board-firmware-v564 airOS for XW board firmware v5.6.4]&lt;br /&gt;
&lt;br /&gt;
==== Firmware check failure ====&lt;br /&gt;
&lt;br /&gt;
Flashing the Nanostation M5 (FCC ID: SWX-NSM5D) using the TFTP rescue mode will result in a Firmware check failure error.&lt;br /&gt;
&lt;br /&gt;
If you attempt to flash the extender and receive a 'Firmware check failed' error, then you have a version of the NSM5 that is protected from being flashed via the default TFTP method. You will need to obtain a serial to USB interface (USB to UART TTL Module Serial Converter, 5 pin) and use it to flash the firmware.&lt;br /&gt;
&lt;br /&gt;
   $ ./flasher.js openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin&lt;br /&gt;
   Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
   Connection timed out&lt;br /&gt;
   Sending openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
   [Error: (Server) Firmware check failed]&lt;br /&gt;
&lt;br /&gt;
When connected to the NSM5 via a serial connection, a similar error is displayed when attempting to load the SudoWRT firmware image.&lt;br /&gt;
&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Will reset device configuration (Reset button active after 10 seconds).&lt;br /&gt;
  Erasing sector 123..126&lt;br /&gt;
  &lt;br /&gt;
  First 0x7b last 0x7e sector size 0x10000&lt;br /&gt;
  .... done&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
  Receiving file from 192.168.1.10:49763&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware check failed! (1)&lt;br /&gt;
&lt;br /&gt;
===== Drop into U-Boot Command Prompt =====&lt;br /&gt;
&lt;br /&gt;
Connect a USB to Serial adapter to the correct pins of the NSM5, as shown above. Unplug the Ethernet cable from the device, and then plug it back in to provide Power Over Ethernet once again, resulting in a reboot of the device.&lt;br /&gt;
&lt;br /&gt;
During the boot process, press a key to during the boot process to make the [https://wiki.openwrt.org/doc/techref/bootloader/uboot U-Boot] bootloader to drop into a command line prompt.&lt;br /&gt;
&lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0&lt;br /&gt;
  ar7240&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Running TFTPd =====&lt;br /&gt;
&lt;br /&gt;
Although U-Boot can support two protocols for transfering files, kermit or y-modem, the bootloader does not support the &amp;lt;tt&amp;gt;loadb&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;loady&amp;lt;/tt&amp;gt;. Minicom only supports y-modem protocol.&lt;br /&gt;
&lt;br /&gt;
We do not have to resort to a direct serial file transfer however. The 'mtdparts' command that is used to define flash memory partitions can be used to reset the partition table to the defaults before running 'urescue' to start the TFTP server.&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; help mtdparts&lt;br /&gt;
  mtdparts &lt;br /&gt;
      - list partition table&lt;br /&gt;
  mtdparts delall&lt;br /&gt;
      - delete all partitions&lt;br /&gt;
  mtdparts del part-id&lt;br /&gt;
      - delete partition (e.g. part-id = nand0,1)&lt;br /&gt;
  mtdparts add &amp;lt;mtd-dev&amp;gt; &amp;lt;size&amp;gt;[@&amp;lt;offset&amp;gt;] [&amp;lt;name&amp;gt;] [ro]&lt;br /&gt;
      - add partition&lt;br /&gt;
  mtdparts default&lt;br /&gt;
      - reset partition table to defaults&lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
&lt;br /&gt;
In your other terminal window, run the ubi-flasher script.&lt;br /&gt;
&lt;br /&gt;
  $ ./flasher.js /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin&lt;br /&gt;
  Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
  Connection timed out&lt;br /&gt;
  Sending /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
  Firmware flashing begun!&lt;br /&gt;
  The firmware has been successfully sent to the router.&lt;br /&gt;
  In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up).&lt;br /&gt;
  This means that the router is flashing itself with the new firmware.&lt;br /&gt;
  Once the router goes back to having only the power LED lit, the router has been successfully flashed.&lt;br /&gt;
&lt;br /&gt;
In the terminal running Minicom you should see the firmware successfully flashing.&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:52289&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware Version: XW.ar934x.v6.0.0-OpenWrt-r47662&lt;br /&gt;
  Setting U-Boot environment variables&lt;br /&gt;
  Un-Protected 1 sectors&lt;br /&gt;
  Erasing Flash.... done&lt;br /&gt;
  Erased 1 sectors&lt;br /&gt;
  Writing to Flash... write addr: 9f040000&lt;br /&gt;
  done&lt;br /&gt;
  Protected 1 sectors&lt;br /&gt;
  Copying partition 'kernel' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x5 last 0x14 sector size 0x10000&lt;br /&gt;
  ................ done&lt;br /&gt;
  write addr: 9f050000&lt;br /&gt;
  Copying partition 'rootfs' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x15 last 0x6e sector size 0x10000&lt;br /&gt;
  .......................................................................................... done&lt;br /&gt;
  write addr: 9f150000&lt;br /&gt;
  &lt;br /&gt;
  Firmware update complete.&lt;br /&gt;
  &lt;br /&gt;
  Resetting...&lt;br /&gt;
  &lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ## Booting image at 9f050000 ...&lt;br /&gt;
     Image Name:   MIPS OpenWrt Linux-3.18.23&lt;br /&gt;
     Created:      2015-12-01   0:03:51 UTC&lt;br /&gt;
     Image Type:   MIPS Linux Kernel Image (lzma compressed)&lt;br /&gt;
     Data Size:    1135619 Bytes =  1.1 MB&lt;br /&gt;
     Load Address: 80060000&lt;br /&gt;
     Entry Point:  80060000&lt;br /&gt;
     Verifying Checksum at 0x9f050040 ...OK&lt;br /&gt;
     Uncompressing Kernel Image ... OK&lt;br /&gt;
  &lt;br /&gt;
  Starting kernel ...&lt;br /&gt;
  &lt;br /&gt;
  [    0.000000] Linux version 3.18.23 (sudowrt-builder@build-test2) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.04 r47662) ) #2 Mon Nov 5&lt;br /&gt;
&lt;br /&gt;
After it reboots if you see the first line mention 'sudowrt-builder', the device is booting the SudoWRT firmware build.&lt;br /&gt;
&lt;br /&gt;
You can press ENTER once it is finished, and it should drop into the command line for the SudoWRT system.&lt;br /&gt;
&lt;br /&gt;
  [   25.650000] jffs2: Newly-erased block contained word 0xdeadc0de at offset 0x00000000&lt;br /&gt;
  [   25.660000] done.&lt;br /&gt;
  [   25.660000] jffs2: notice: (993) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and.&lt;br /&gt;
  &lt;br /&gt;
  BusyBox v1.23.2 (2015-11-30 18:48:50 EST) built-in shell (ash)&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
    ._______.___    ._______.______  ._____  .___    .___ .______  ._____  &lt;br /&gt;
    :_ ____/|   |   : .____/:_ _   \ :_ ___\ |   |   : __|:      \ :_ ___\ &lt;br /&gt;
    |   _/  |   |   | : _/\ |   |   ||   |___|   |   | : ||       ||   |___&lt;br /&gt;
    |   |   |   |/\ |   /  \| . |   ||   /  ||   |/\ |   ||   |   ||   /  |&lt;br /&gt;
    |_. |   |   /  \|_.: __/|. ____/ |. __  ||   /  \|   ||___|   ||. __  |&lt;br /&gt;
      :/    |______/   :/    :/       :/ |. ||______/|___|    |___| :/ |. |&lt;br /&gt;
      :                      :        :   :/                        :   :/ &lt;br /&gt;
                                          :                             : &lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   sudo mesh v0.2 (fledgling.extender)&lt;br /&gt;
                                based on OpenWRT 15.05 (Chaos Calmer)&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   &amp;quot;When your rage is choking you, it is best to say nothing.&amp;quot; &lt;br /&gt;
                                              - Octavia E. Butler, Fledgling&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
  &lt;br /&gt;
  root@sudomesh-node:/#&lt;/div&gt;</summary>
		<author><name>Gcg</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Mounting&amp;diff=11081</id>
		<title>Mesh/Mounting</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Mounting&amp;diff=11081"/>
		<updated>2018-03-03T06:41:05Z</updated>

		<summary type="html">&lt;p&gt;Gcg: /* Copied from Mesh/Flashing_extender_node = */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Mounting Rooftop Nodes=&lt;br /&gt;
&lt;br /&gt;
Also, see https://github.com/sudomesh/mounting .&lt;br /&gt;
&lt;br /&gt;
==Node Mount Inventory Checklist==&lt;br /&gt;
=== Nodes ===&lt;br /&gt;
* Pre-flashed NanoBridge and/or Nanostation, plus POE injector&lt;br /&gt;
* Pre-flashed home node(s) as appropriate, plus power supplies and ethernet cables&lt;br /&gt;
&lt;br /&gt;
=== Tools ===&lt;br /&gt;
* Drill and appropriate bits&lt;br /&gt;
** Standard&lt;br /&gt;
** Green concave(?) for loosening/tightening hose clamp screws&lt;br /&gt;
* Impact drill &amp;amp; 10&amp;quot; bit (for drilling through walls)&lt;br /&gt;
* EZ Crimper (blue handles)&lt;br /&gt;
* Needle-nose plyers&lt;br /&gt;
* Wrench&lt;br /&gt;
* Wirecutters&lt;br /&gt;
* Hammer&lt;br /&gt;
&lt;br /&gt;
=== Things to Attach Things to Other Things ===&lt;br /&gt;
* Hose clamps of various sizes&lt;br /&gt;
* Small and industrial-strength zip ties&lt;br /&gt;
* J-pole, flagpole or pipe for extending height of node&lt;br /&gt;
* Large cable ties&lt;br /&gt;
* Nails &amp;amp; screws&lt;br /&gt;
* Nuts &amp;amp; bolts&lt;br /&gt;
* Small blocks of wood&lt;br /&gt;
&lt;br /&gt;
=== Cable &amp;amp; Accessories ===&lt;br /&gt;
* Outdoor shielded ethernet cable&lt;br /&gt;
* Box of indoor ethernet cable&lt;br /&gt;
* Shielded &amp;amp; grounded RJ45s&lt;br /&gt;
* Regular RJ45s&lt;br /&gt;
* RJ45 boots&lt;br /&gt;
&lt;br /&gt;
=== Safety Equipment ===&lt;br /&gt;
''Contingent on weather and roof conditions:''&lt;br /&gt;
* Sunscreen&lt;br /&gt;
* Hat / Visor&lt;br /&gt;
* Climbing Harness &lt;br /&gt;
* Safety Goggles&lt;br /&gt;
* High Visibility Clothing&lt;br /&gt;
* Work Boots&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Copied from [[Mesh/Flashing_extender_nodes]] ==&lt;br /&gt;
&lt;br /&gt;
For some reason, this was hiding at the very bottom of the extender node flashing guide,&lt;br /&gt;
&lt;br /&gt;
=== Installation Order ===&lt;br /&gt;
#Flash home nodes and extender nodes&lt;br /&gt;
#Get on roof and determine which direction to face the extender nodes&lt;br /&gt;
#Install J-Pole&lt;br /&gt;
#Crimp end onto Ethernet cable&lt;br /&gt;
#Run Ethernet cable from j-pole down to location of home node (either through a soffit indoors or to an outdoor enclosure)&lt;br /&gt;
#Crimp other end of Ethernet cable and connect to home node via a POE adaptor&lt;br /&gt;
#Install extender node on J-Pole using zip-ties - check lights to make sure unit is powered up&lt;br /&gt;
#Walk around the neighborhood to check the signal&lt;br /&gt;
&lt;br /&gt;
=== Gear Checklist ===&lt;br /&gt;
	&lt;br /&gt;
Protective and personal gear&lt;br /&gt;
*Wear clothes you can get dirty and sturdy boots for roof walking&lt;br /&gt;
*Sunscreen&lt;br /&gt;
*Sunglasses&lt;br /&gt;
*Pocketknife (for cutting zip ties etc)&lt;br /&gt;
*Ladder&lt;br /&gt;
*Safety harness &amp;amp; rope in a bucket&lt;br /&gt;
*Smart phone (to check signal and take pictures)&lt;br /&gt;
Home node gear&lt;br /&gt;
*2 flashed Western Digital Mynet N600 Home Nodes&lt;br /&gt;
*paperclip (to reset equipment)&lt;br /&gt;
*Laptop (to configure equipment)&lt;br /&gt;
*Plastic outdoor enclosure for router (optional)&lt;br /&gt;
*Power Strip&lt;br /&gt;
J-Pole gear&lt;br /&gt;
*J-Pole&lt;br /&gt;
*Latex gloves (for dealing with roofing sealant)&lt;br /&gt;
*Roofing sealant&lt;br /&gt;
*Ratchet set - 10mm for small bolts, 13mm for large bolts&lt;br /&gt;
*Corldless Drill&lt;br /&gt;
*3/16&amp;quot; drill bit for J-pole bolts&lt;br /&gt;
*Steel One-Hole Conduit Straps (for holding Ethernet cable along eves)&lt;br /&gt;
*Screws for the Steel one-hole straps&lt;br /&gt;
Ethernet cable gear&lt;br /&gt;
*Ethernet Spool&lt;br /&gt;
*Ethernet Ends&lt;br /&gt;
*Ethernet Crimper&lt;br /&gt;
*Laminated card showing the Ethernet cable order&lt;br /&gt;
*Label Maker - so you can know which cable is which&lt;br /&gt;
Extender node gear&lt;br /&gt;
*Flashed Ubiquiti Nanostation M2 or M5 extender Node(s)&lt;br /&gt;
*Power over Ethernet (POE) adapters&lt;br /&gt;
*Zip Ties&lt;/div&gt;</summary>
		<author><name>Gcg</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Mounting&amp;diff=11080</id>
		<title>Mesh/Mounting</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Mounting&amp;diff=11080"/>
		<updated>2018-03-03T06:40:31Z</updated>

		<summary type="html">&lt;p&gt;Gcg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Mounting Rooftop Nodes=&lt;br /&gt;
&lt;br /&gt;
Also, see https://github.com/sudomesh/mounting .&lt;br /&gt;
&lt;br /&gt;
==Node Mount Inventory Checklist==&lt;br /&gt;
=== Nodes ===&lt;br /&gt;
* Pre-flashed NanoBridge and/or Nanostation, plus POE injector&lt;br /&gt;
* Pre-flashed home node(s) as appropriate, plus power supplies and ethernet cables&lt;br /&gt;
&lt;br /&gt;
=== Tools ===&lt;br /&gt;
* Drill and appropriate bits&lt;br /&gt;
** Standard&lt;br /&gt;
** Green concave(?) for loosening/tightening hose clamp screws&lt;br /&gt;
* Impact drill &amp;amp; 10&amp;quot; bit (for drilling through walls)&lt;br /&gt;
* EZ Crimper (blue handles)&lt;br /&gt;
* Needle-nose plyers&lt;br /&gt;
* Wrench&lt;br /&gt;
* Wirecutters&lt;br /&gt;
* Hammer&lt;br /&gt;
&lt;br /&gt;
=== Things to Attach Things to Other Things ===&lt;br /&gt;
* Hose clamps of various sizes&lt;br /&gt;
* Small and industrial-strength zip ties&lt;br /&gt;
* J-pole, flagpole or pipe for extending height of node&lt;br /&gt;
* Large cable ties&lt;br /&gt;
* Nails &amp;amp; screws&lt;br /&gt;
* Nuts &amp;amp; bolts&lt;br /&gt;
* Small blocks of wood&lt;br /&gt;
&lt;br /&gt;
=== Cable &amp;amp; Accessories ===&lt;br /&gt;
* Outdoor shielded ethernet cable&lt;br /&gt;
* Box of indoor ethernet cable&lt;br /&gt;
* Shielded &amp;amp; grounded RJ45s&lt;br /&gt;
* Regular RJ45s&lt;br /&gt;
* RJ45 boots&lt;br /&gt;
&lt;br /&gt;
=== Safety Equipment ===&lt;br /&gt;
''Contingent on weather and roof conditions:''&lt;br /&gt;
* Sunscreen&lt;br /&gt;
* Hat / Visor&lt;br /&gt;
* Climbing Harness &lt;br /&gt;
* Safety Goggles&lt;br /&gt;
* High Visibility Clothing&lt;br /&gt;
* Work Boots&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Copied from [[Mesh/Flashing_extender_node]] ===&lt;br /&gt;
&lt;br /&gt;
For some reason, this was hiding at the very bottom of the extender node flashing guide,&lt;br /&gt;
&lt;br /&gt;
=== Installation Order ===&lt;br /&gt;
#Flash home nodes and extender nodes&lt;br /&gt;
#Get on roof and determine which direction to face the extender nodes&lt;br /&gt;
#Install J-Pole&lt;br /&gt;
#Crimp end onto Ethernet cable&lt;br /&gt;
#Run Ethernet cable from j-pole down to location of home node (either through a soffit indoors or to an outdoor enclosure)&lt;br /&gt;
#Crimp other end of Ethernet cable and connect to home node via a POE adaptor&lt;br /&gt;
#Install extender node on J-Pole using zip-ties - check lights to make sure unit is powered up&lt;br /&gt;
#Walk around the neighborhood to check the signal&lt;br /&gt;
&lt;br /&gt;
=== Gear Checklist ===&lt;br /&gt;
	&lt;br /&gt;
Protective and personal gear&lt;br /&gt;
*Wear clothes you can get dirty and sturdy boots for roof walking&lt;br /&gt;
*Sunscreen&lt;br /&gt;
*Sunglasses&lt;br /&gt;
*Pocketknife (for cutting zip ties etc)&lt;br /&gt;
*Ladder&lt;br /&gt;
*Safety harness &amp;amp; rope in a bucket&lt;br /&gt;
*Smart phone (to check signal and take pictures)&lt;br /&gt;
Home node gear&lt;br /&gt;
*2 flashed Western Digital Mynet N600 Home Nodes&lt;br /&gt;
*paperclip (to reset equipment)&lt;br /&gt;
*Laptop (to configure equipment)&lt;br /&gt;
*Plastic outdoor enclosure for router (optional)&lt;br /&gt;
*Power Strip&lt;br /&gt;
J-Pole gear&lt;br /&gt;
*J-Pole&lt;br /&gt;
*Latex gloves (for dealing with roofing sealant)&lt;br /&gt;
*Roofing sealant&lt;br /&gt;
*Ratchet set - 10mm for small bolts, 13mm for large bolts&lt;br /&gt;
*Corldless Drill&lt;br /&gt;
*3/16&amp;quot; drill bit for J-pole bolts&lt;br /&gt;
*Steel One-Hole Conduit Straps (for holding Ethernet cable along eves)&lt;br /&gt;
*Screws for the Steel one-hole straps&lt;br /&gt;
Ethernet cable gear&lt;br /&gt;
*Ethernet Spool&lt;br /&gt;
*Ethernet Ends&lt;br /&gt;
*Ethernet Crimper&lt;br /&gt;
*Laminated card showing the Ethernet cable order&lt;br /&gt;
*Label Maker - so you can know which cable is which&lt;br /&gt;
Extender node gear&lt;br /&gt;
*Flashed Ubiquiti Nanostation M2 or M5 extender Node(s)&lt;br /&gt;
*Power over Ethernet (POE) adapters&lt;br /&gt;
*Zip Ties&lt;/div&gt;</summary>
		<author><name>Gcg</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=11079</id>
		<title>Mesh/Flashing extender nodes</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=11079"/>
		<updated>2018-03-03T06:34:56Z</updated>

		<summary type="html">&lt;p&gt;Gcg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;After following the [[Mesh/WalkThrough]], you are probably just an isolated node on the virtual People's Open Network. If you want to become part of the physical mesh, you are going to need to extend the signal from home node using what we call an extender node. An extender node is just a roof-mounted, directional antenna used to make point-to-point connections between two locations that have line-of-sight (LOS) to one another. Preparing an extender node generally consists to two stages, downgrading the proprietary AirOS firmware and flashing it with our custom build of OpenWrt.&lt;br /&gt;
&lt;br /&gt;
== Downgrading to earlier AirOS ==&lt;br /&gt;
&lt;br /&gt;
Typically, we use Ubiquiti equipment for our extender nodes. These come with a proprietary firmware called AirOS. Any extender node with version 5.6 of AirOS and above needs to be downgraded to a 5.5.XX version of AirOS version before you can flash it with OpenWRT. &lt;br /&gt;
&lt;br /&gt;
First check what version of AirOS your extender node is running, to do this, &lt;br /&gt;
&lt;br /&gt;
* Edit your network settings to reflect the following:&lt;br /&gt;
&lt;br /&gt;
* Network Manager Method: Manual&lt;br /&gt;
* IP Address: 192.168.1.10 (some devices will only accept from this IP)&lt;br /&gt;
* Subnet Mask: 255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0 (Or leave blank)&lt;br /&gt;
&lt;br /&gt;
You can also use the commands:&lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; down &lt;br /&gt;
  sudo ip addr add 192.168.1.10/24 dev &amp;lt;eth_interface&amp;gt; &lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; up&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;eth_interface&amp;gt; is the name of your ethernet interface found using `ip addr` (common names include eth0, enp3s0, ...)&lt;br /&gt;
&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the Power-over-Ethernet (PoE) power supply on the other end.&lt;br /&gt;
&lt;br /&gt;
* Plug another Ethernet cable into your extender node on one end and into the &amp;quot;POE&amp;quot; port of the PoE power supply on the other end.&lt;br /&gt;
&lt;br /&gt;
* Power on the extender node by plugging in the PoE and wait for it to boot (may take a few minutes).&lt;br /&gt;
&lt;br /&gt;
* Make sure you aren't connected to a wifi network that has an 192.168.1.x IP range. Disconnect/disable your wifi if necessary.&lt;br /&gt;
&lt;br /&gt;
* In a browser, go to the AirOS web interface at http://192.168.1.20&lt;br /&gt;
&lt;br /&gt;
* Log in using the credentials &lt;br /&gt;
** username: ubnt &lt;br /&gt;
** password: ubnt&lt;br /&gt;
&lt;br /&gt;
* Look at the Firmware information, it may say something like XM.v5.6.6.bin or XW.v5.6.6, based on this download the correct version of AirOS v5.5.10&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Version !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| XW v5.5.10 || http://dl.ubnt.com/firmwares/XW-fw/v5.5.10/XW.v5.5.10-u2.28005.150723.1358.bin&lt;br /&gt;
|-&lt;br /&gt;
| XM v5.5.10 || http://dl.ubnt.com/firmwares/XN-fw/v5.5.11/XM.v5.5.11.28002.150723.1344.bin&lt;br /&gt;
|-&lt;br /&gt;
| TI v5.5.11 || http://dl.ubnt.com/firmwares/XN-fw/v5.5.11/TI.v5.5.11.28002.150723.1518.bin&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Back in the web interface, go to the &amp;quot;System&amp;quot; tab.&lt;br /&gt;
* Click the &amp;quot;Browse&amp;quot; button next to the &amp;quot;Upload Firmware&amp;quot; box &lt;br /&gt;
* Select the firmware image you just downloaded&lt;br /&gt;
* Click &amp;quot;Upload&amp;quot;.&lt;br /&gt;
* After uploading you will be asked if you want to upgrade/install the firmware. Click yes/accept.&lt;br /&gt;
* Ignore any warnings about changing the default admin password, we're gonna overwrite it anyway&lt;br /&gt;
* Let the router finish flashing and wait for it to fully reboot.&lt;br /&gt;
* After it reboots, you may wanna go back into the web interface to make sure the downgrade was successful before proceeding.&lt;br /&gt;
&lt;br /&gt;
XM.v6.0.4 (v6.0.4) firmware version does not appear to be downgradable via the preceding method. Instead you will need to use command-line method as follows,&lt;br /&gt;
&lt;br /&gt;
   ssh-keygen -f &amp;quot;/home/yourusername/.ssh/known_hosts&amp;quot; -R 192.168.1.20&lt;br /&gt;
   scp &amp;lt;firmware_image.bin&amp;gt;  ubnt@192.168.1.20:/tmp/fwupdate.bin&lt;br /&gt;
   ssh ubnt@192.168.1.20  # password is &amp;quot;ubnt&amp;quot;&lt;br /&gt;
   /sbin/fwupdate -m&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Flash the Extender Node ==&lt;br /&gt;
Now that you have successfully downgraded the AirOS firmware, we can go ahead with flashing it with our custom build of OpenWRT. Start by downloading our firmware image for your model of extender node,&lt;br /&gt;
&lt;br /&gt;
The extender nodes that we currently support are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Notes !! OpenWRT Doc !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M2 and M5 || Newer models need [[#Downgrading_to_earlier_AirOS|AirOS downgrade]] before flashing!  Note that this will almost certainly require a USB to Serial connection (see below).|| [https://wiki.openwrt.org/toh/ubiquiti/nanostationm5 OpenWRT Docs] || firmware: [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin pre 2015 M5 versions and all M2 versions] or [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin 2015-2016 M5 versions]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation 2 || Not being built in current firmware release, Previous generation 802.11g (not the same as M2) || [https://wiki.openwrt.org/toh/ubiquiti/picostation2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ath25.extender-node/openwrt-ath25-ubnt2-pico2-squashfs.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation M2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostationm2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-bullet-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobeam M2 and M5 || NBEâ€‘M2â€‘13 and NBEâ€‘M5â€‘16 work but some (earlier?) NBEâ€‘M5â€‘19 have ethernet port issues. Newer models need [[#Downgrading_to_earlier_AirOS|AirOS downgrade]] before flashing! || [https://wiki.openwrt.org/toh/ubiquiti/nanobeam OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-loco-m-xw-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobridge M2 and M5 || || Same as pre-2015 Nanostation M || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Bullet M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/bullet OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-bullet-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|}&lt;br /&gt;
More firmware images can be found at http://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/&lt;br /&gt;
Also, if you are flashing for practice or testing, you can try using the dev-builds here, http://builds.sudomesh.org/dev-builds/, NOTE: USE WITH CARE, THESE PROVIDE SSH ACCESS WITH A DEFAULT PASSWORD AND SHOULD NOT BE USED FOR DEPLOYMENT NODES&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Configure your wired ethernet interface as instructed in the previous sections&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the Power-over-Ethernet (PoE) power supply on the other end.&lt;br /&gt;
&lt;br /&gt;
* Plug another Ethernet cable into your extender node on one end and into the &amp;quot;POE&amp;quot; port of the PoE power supply on the other end.&lt;br /&gt;
&lt;br /&gt;
* Push a pin into the reset hole and hold it.&lt;br /&gt;
* With the pin held down, plug in the power to the extender node, either by plugging in it's ethernet cable or by powering on the PoE.&lt;br /&gt;
&lt;br /&gt;
* Continue holding down the pin, watch the lights on the antenna - they will all flash together a few times and then flash back-and-forth in what is affectionately known as cha-cha mode (or more accurately, TFTP mode).&lt;br /&gt;
&lt;br /&gt;
* Once the lights on the antenna are flashing up and down, you can let go of the pin.&lt;br /&gt;
&lt;br /&gt;
* You should be able to ping the extender at 192.168.1.20.&lt;br /&gt;
&lt;br /&gt;
  $ ping 192.168.1.20&lt;br /&gt;
  PING 192.168.1.20 (192.168.1.20) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=1 ttl=64 time=1.54 ms&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=2 ttl=64 time=0.826 ms&lt;br /&gt;
&lt;br /&gt;
* Open a terminal (Linux or Mac?) and run the following:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/ubi-flasher&lt;br /&gt;
  cd ubi-flasher&lt;br /&gt;
  npm install&lt;br /&gt;
  ./flasher.js '&amp;lt;path to firmware&amp;gt;'&lt;br /&gt;
&lt;br /&gt;
* The terminal should return the following,&lt;br /&gt;
   The firmware has been successfully sent to the router. In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up). This means that the router is flashing itself with the new firmware. Once the router goes back to having only the power LED lit, the router has been successfully flashed.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Wait until the antenna has only the power LED lit and you're done.&lt;br /&gt;
&lt;br /&gt;
* Reconfigure your machine with the following static network configuration.&lt;br /&gt;
&lt;br /&gt;
* IP address: 172.22.0.10 &lt;br /&gt;
* Subnet mask:  255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0&lt;br /&gt;
&lt;br /&gt;
Or use the commands&lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; down &lt;br /&gt;
  sudo ip addr add 172.22.0.10/24 dev &amp;lt;eth_interface&amp;gt; &lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; up&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;eth_interface&amp;gt; is the name of your ethernet interface found using `ip addr` (common names include eth0, enp3s0, ...)&lt;br /&gt;
&lt;br /&gt;
See Network Configuration Guides: [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20Linux Linux] [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20MacOS%20X Mac]&lt;br /&gt;
&lt;br /&gt;
If you ping the extender node on 172.22.0.2 and it responds, it should be ready to connect to your home node on the appropriate wired Ethernet port.&lt;br /&gt;
&lt;br /&gt;
  $ ping 172.22.0.2&lt;br /&gt;
  PING 172.22.0.2 (172.22.0.2) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=1 ttl=64 time=0.617 ms&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=2 ttl=64 time=0.316 ms&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=3 ttl=64 time=0.398 ms&lt;br /&gt;
&lt;br /&gt;
Once configured with our firmware, an extender node will not start broadcasting an SSID until it is plugged into a home node because it must first get a mesh IP address.&lt;br /&gt;
&lt;br /&gt;
== Testing and Network Detection ==&lt;br /&gt;
&lt;br /&gt;
If you flashed your extender node with a dev-build of the firmware, you should now be able to ssh into to it.&lt;br /&gt;
It is probably easiest to first ssh in to your home node over the private interface and then into the extender node with its mesh IP.&lt;br /&gt;
&lt;br /&gt;
First, you should immediately change or disable the root password and instead add your ssh key to `/etc/dropbear/authorized_key` (this method of login will not work when sshing through a home node)&lt;br /&gt;
   passwd&lt;br /&gt;
&lt;br /&gt;
Once ssh'ed into the extender node, there are few files you can play around with,&lt;br /&gt;
`/etc/config/wireless` sets the names of the SSIDs broadcast by the antenna, you may want to change the name of the ad-hoc interface so as to distinguish it from home node's ad-hoc network&lt;br /&gt;
Trying changing it to something like &amp;quot;popplesopen.net-nod2nod&amp;quot;, then reboot the extender node and check if you can see the new name in your network list.&lt;br /&gt;
&lt;br /&gt;
YNext, you my be curious what you can see with your antenna, to scan for other visible networks, ssh in to the extender node and run the following,&lt;br /&gt;
   iw dev mesh0 scan | grep SSID:&lt;br /&gt;
This should return a lengthy list of SSID, if you can see another &amp;quot;pplsopen.net-node2node&amp;quot; SSID, you should be meshing with it automatically.&lt;br /&gt;
&lt;br /&gt;
If you'd like to view more info about the network you can see, you can pipe the output of the previous command to a log file like so,&lt;br /&gt;
   iw dev mesh0 scan &amp;gt; scan log&lt;br /&gt;
&lt;br /&gt;
Once you are done meshing around with your extender node make sure to reset the root password with passwd or reflash the router with the standard build of our firmware.&lt;br /&gt;
&lt;br /&gt;
Log into your home node via SSH, and tail &amp;lt;tt&amp;gt;/var/log/messages&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver: eth0.3: Physical disconnect detected&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver: Listening on interface eth0.3:&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver:   client IP: 100.64.37.3&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver:   client netmask 26&lt;br /&gt;
  Sun May  8 00:51:12 2016 daemon.debug notdhcpserver: eth0.3: Recieved HEARTBEAT for interface that hadn't been ACKed.&lt;br /&gt;
  ...&lt;br /&gt;
  Sun May  8 00:54:00 2016 daemon.debug notdhcpserver: eth0.3: Recieved HEARTBEAT for interface that hadn't been ACKed.&lt;br /&gt;
  Sun May  8 00:54:00 2016 daemon.info hostapd: priv5: STA 80:e6:50:0e:fe:6e WPA: group key handshake completed (RSN)&lt;br /&gt;
  Sun May  8 00:54:04 2016 daemon.debug notdhcpserver: eth0.2: Received lease request&lt;br /&gt;
  Sun May  8 00:54:04 2016 daemon.debug notdhcpserver: eth0.3: sending response (with ssl certificate)&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received ACK&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Running up hook script&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received redundant ACK&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received redundant ACK&lt;br /&gt;
&lt;br /&gt;
There should be a debug message in the log from notdhcpserver concerning the extender node.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== USB to Serial Connection ===&lt;br /&gt;
&lt;br /&gt;
If you experience trouble flashing your device via the web interface, or via the TFTP image upload method, you'll want to establish a serial connection to troubleshoot further. Methods for flashing your device involving a serial connection may become more common as devices adopt configurations to lock down [http://www.networkworld.com/article/3038722/mobile-wireless/manufacturers-start-to-lock-down-wi-fi-router-firmware-thanks-fcc.html wi-fi router firmware] to prevent flashing.&lt;br /&gt;
&lt;br /&gt;
The following notes describe steps to interface with a Nanostation M5 (NSM5) via the serial interface. &lt;br /&gt;
&lt;br /&gt;
==== Order a USB to Serial Converter ====&lt;br /&gt;
&lt;br /&gt;
USB to serial converter devices exist at a cost of $4 - $8 online, with much lower pricing and longer delivery times if ordered from China. Search for &amp;quot;USB to UART TTL&amp;quot;, including &amp;quot;5 pin&amp;quot; in the search. Make sure the specifications do not mention anything other than 3.3 volts.&lt;br /&gt;
&lt;br /&gt;
Mac OS X users may need to install a device driver for their device. For example, for devices using the CP210X chip, you can download the [https://www.silabs.com/products/mcu/Pages/USBtoUARTBridgeVCPDrivers.aspx#mac CP210x USB to UART Bridge VCP Driver], which is made available as &amp;lt;tt&amp;gt;/dev/tty.SLAB_USBtoUART&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Connecting to Serial ====&lt;br /&gt;
&lt;br /&gt;
You will need to connect the following pins from the converter to the pins on the device.&lt;br /&gt;
&lt;br /&gt;
* Ground (GND)&lt;br /&gt;
* Serial Out (Transmit / TX)&lt;br /&gt;
* Serial In (Receive / RX)&lt;br /&gt;
&lt;br /&gt;
Begin by connecting the Ground of the converter to the Ground of the device. Next connect the Transmit/TX of the converter to the Receive/RX of the device, then connect the Receive/RX of the converter to the Transmit/TX of the device.&lt;br /&gt;
&lt;br /&gt;
Nanostation M5 (NSM5) Example:&lt;br /&gt;
&lt;br /&gt;
[[File:CP2102-usb-to-serial-converter.jpg|400px|KEDSUMÂ® CP2102 Module STC Download Cable USB 2.0 to TTL 6PIN Serial Converter For STC]]&lt;br /&gt;
&lt;br /&gt;
[[File:Ubiquity-NSM5-serial-connectors.jpg|400px|Ubiquiti Nanostation NSM5 - Serial pins with connections]]&lt;br /&gt;
&lt;br /&gt;
==== Serial Communications Program ====&lt;br /&gt;
&lt;br /&gt;
You need to install a serial communication program. Linux users can use Minicom.&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get install minicom&lt;br /&gt;
&lt;br /&gt;
Mac OS X users can as well&lt;br /&gt;
&lt;br /&gt;
  brew install minicom&lt;br /&gt;
&lt;br /&gt;
By default the Minicom program will attempt to use /dev/tty8, and will also attempt to initialize the device (expecting a modem) by default.&lt;br /&gt;
&lt;br /&gt;
  $ minicom&lt;br /&gt;
  minicom: cannot open /dev/tty8: Permission denied&lt;br /&gt;
&lt;br /&gt;
Run the program so that it starts the program on the USB converter that is connected by adding &amp;lt;tt&amp;gt;-D /dev/ttyUSB0&amp;lt;/tt&amp;gt;, and specify that it should skip initialization by adding &amp;lt;tt&amp;gt;-o&amp;lt;/tt&amp;gt;. Mac users may need to reference a different device (such as &amp;lt;tt&amp;gt;/dev/tty.SLAB_USBtoUART&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
You can also specify from the command line that it use the baud rate and '8N1' settings specified below by including &amp;lt;tt&amp;gt;-b 115200 -8&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
  sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
&lt;br /&gt;
In Minicom, CTRL-A to get settings, then Press O, to access settings. Mac users will need to discover the proper META key to use with their Terminal program. iTerm uses the 'ESC' key.&lt;br /&gt;
&lt;br /&gt;
Go to Serial Port Setup, use these settings:&lt;br /&gt;
&lt;br /&gt;
* Set the serial device (should be /dev/tty/USB0)&lt;br /&gt;
* Baud Rate (Bits Per Second): 115200&lt;br /&gt;
* Settings '8N1' (short hand for 8 bits, no parity, 1 stop bit)&lt;br /&gt;
* Turn off hardware and software flow control&lt;br /&gt;
&lt;br /&gt;
Reboot the device, and it will let you drop into a command line. You will then have to figure out how to enable the network from the boot loader (Uboot or Redboot) and transfer the firmware to the device to flash it.&lt;br /&gt;
&lt;br /&gt;
==== Interupting Boot ====&lt;br /&gt;
&lt;br /&gt;
The device will not detect the key you press unless Minicom is configured properly.&lt;br /&gt;
&lt;br /&gt;
* To access the Help screen, Press CTRL-A, then press Z.&lt;br /&gt;
* To access the configuration/settings, press CTRL-A, then press O.&lt;br /&gt;
&lt;br /&gt;
From the configuration window, select to view the 'Serial port setup'&lt;br /&gt;
&lt;br /&gt;
  $ sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
  Welcome to minicom 2.7&lt;br /&gt;
  &lt;br /&gt;
  OPTIONS: I18n &lt;br /&gt;
  Compiled on Jan  1 2014, 17:13:19.&lt;br /&gt;
  Port /dev/ttyUSB0, 21:47:56&lt;br /&gt;
  &lt;br /&gt;
  Press CTRL-A Z for help on special keys&lt;br /&gt;
  &lt;br /&gt;
              +-----[configuration]------+&lt;br /&gt;
              | Filenames and paths      |&lt;br /&gt;
              | File transfer protocols  |&lt;br /&gt;
              | Serial port setup        |&lt;br /&gt;
              | Modem and dialing        |&lt;br /&gt;
              | Screen and keyboard      |&lt;br /&gt;
              | Save setup as dfl        |&lt;br /&gt;
              | Save setup as..          |&lt;br /&gt;
              | Exit                     |&lt;br /&gt;
              +--------------------------+&lt;br /&gt;
  &lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
  | A -    Serial Device      : /dev/ttyUSB0                              |&lt;br /&gt;
  | B - Lockfile Location     : /var/lock                                 |&lt;br /&gt;
  | C -   Callin Program      :                                           |&lt;br /&gt;
  | D -  Callout Program      :                                           |&lt;br /&gt;
  | E -    Bps/Par/Bits       : 115200 8N1                                |&lt;br /&gt;
  | F - Hardware Flow Control : Yes                                       |&lt;br /&gt;
  | G - Software Flow Control : No                                        |&lt;br /&gt;
  |                                                                       |&lt;br /&gt;
  |    Change which setting?                                              |&lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
&lt;br /&gt;
By default the Hardware Flow Control will be enabled. Press 'F' to disable Hardware Flow Control. Press ENTER to exit the Serial port setup window, and then select EXIT to go back to the program.&lt;br /&gt;
&lt;br /&gt;
At this point plug in the Ethernet cable to the 'Main' Ethernet port, with the other end connected to the 'POE' port on the Power Over Ethernet adapter that came with the device. As the device boots up, you'll see output similar to the following.&lt;br /&gt;
&lt;br /&gt;
You'll need to make sure to press a key before it boots the default image.&lt;br /&gt;
&lt;br /&gt;
=== Picostation M2HP ===&lt;br /&gt;
&lt;br /&gt;
Insightful post on [https://www.strugglingcoder.info/index.php/tag/ubnt/ loading FreeBSD image] with help from serial communications. Could be useful with troubleshooting other models.&lt;br /&gt;
=== Nanostation M2 ===&lt;br /&gt;
==== Firmware check failure ====&lt;br /&gt;
&lt;br /&gt;
The following are simply notes. A solution to this issue is still pending.&lt;br /&gt;
&lt;br /&gt;
Flashing the Nanostation M2 (FCC ID: SWX-M2N) using the TFTP rescue mode will result in a Firmware check failure error.&lt;br /&gt;
&lt;br /&gt;
  $ tftp 192.168.1.20&lt;br /&gt;
  tftp&amp;gt; bin&lt;br /&gt;
  tftp&amp;gt; put openwrt-ar71xx-generic-om2p-squashfs-factory.bin&lt;br /&gt;
  Error code 2: Firmware check failed&lt;br /&gt;
  Sent 4609024 bytes in 12.6 seconds&lt;br /&gt;
&lt;br /&gt;
You can boot up the M2 with a serial connection similar to the instructions below concerning the Nanostation M5.&lt;br /&gt;
&lt;br /&gt;
  Board: Ubiquiti Networks XM board (rev 1.0 e012)&lt;br /&gt;
  DRAM:  32 MB&lt;br /&gt;
  Flash:  8 MB&lt;br /&gt;
  PCIe WLAN Module found (#1).&lt;br /&gt;
  Net:   eth0, eth1&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: |&lt;br /&gt;
  Receiving file from 192.168.1.10:35456&lt;br /&gt;
  Received 4609501 bytes&lt;br /&gt;
  Firmware check failed! (-2)&lt;br /&gt;
&lt;br /&gt;
The method outlined for the Nanostation M5 below doesn't work with the M2.&lt;br /&gt;
&lt;br /&gt;
Update the firmware to [http://dl.ubnt.com/firmwares/XN-fw/v5.6.4/XM.v5.6.4.28924.160331.1253.bin airOS for XM board firmware v5.6.4].&lt;br /&gt;
&lt;br /&gt;
Serial Connection:&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
&lt;br /&gt;
Terminal:&lt;br /&gt;
&lt;br /&gt;
  $ tftp 192.168.1.20&lt;br /&gt;
  tftp&amp;gt; bin&lt;br /&gt;
  tftp&amp;gt; put XM.v5.6.4.28924.160331.1253.bin&lt;br /&gt;
  Sent 7537129 bytes in 20.8 seconds&lt;br /&gt;
&lt;br /&gt;
Serial Connection:&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:55113&lt;br /&gt;
  Received 7537129 bytes&lt;br /&gt;
  Firmware Version: XM.ar7240.v5.6.4.28924.160331.1253&lt;br /&gt;
  Setting U-Boot environment variables&lt;br /&gt;
  Un-Protected 1 sectors&lt;br /&gt;
  Erasing Flash.... done&lt;br /&gt;
  Erased 1 sectors&lt;br /&gt;
  Writing to Flash... done&lt;br /&gt;
  Protected 1 sectors&lt;br /&gt;
  Will not overwrite u-boot partition! Skipped.&lt;br /&gt;
  Copying partition 'kernel' to flash memory:&lt;br /&gt;
          erasing range 0x9F050000..0x9F14FFFF: ................ done&lt;br /&gt;
  Erased 16 sectors&lt;br /&gt;
          writing to address 0x9f050000, length 0x00100000 ...&lt;br /&gt;
  Copying partition 'rootfs' to flash memory:&lt;br /&gt;
          erasing range 0x9F150000..0x9F74FFFF: .............................................................................................e&lt;br /&gt;
  Erased 96 sectors&lt;br /&gt;
          writing to address 0x9f150000, length 0x00600000 ...&lt;br /&gt;
  &lt;br /&gt;
  Firmware update complete.&lt;br /&gt;
  &lt;br /&gt;
  Resetting...&lt;br /&gt;
  &lt;br /&gt;
  U-Boot 1.1.4.2-s594 (Dec  5 2012 - 15:23:07)&lt;br /&gt;
  &lt;br /&gt;
  Board: Ubiquiti Networks XM board (rev 1.0 e012)&lt;br /&gt;
&lt;br /&gt;
Attempting to run the same process after performing an official firmware update doesn't resolve the issue.&lt;br /&gt;
&lt;br /&gt;
=== Nanostation M5 ===&lt;br /&gt;
&lt;br /&gt;
Official firmware from Ubiquity Nanostation M5 (NSM5)&lt;br /&gt;
&lt;br /&gt;
* [https://www.ubnt.com/download/airmax-m/nanostationm/default/airos-xw-board-firmware-v564 airOS for XW board firmware v5.6.4]&lt;br /&gt;
&lt;br /&gt;
==== Firmware check failure ====&lt;br /&gt;
&lt;br /&gt;
Flashing the Nanostation M5 (FCC ID: SWX-NSM5D) using the TFTP rescue mode will result in a Firmware check failure error.&lt;br /&gt;
&lt;br /&gt;
If you attempt to flash the extender and receive a 'Firmware check failed' error, then you have a version of the NSM5 that is protected from being flashed via the default TFTP method. You will need to obtain a serial to USB interface (USB to UART TTL Module Serial Converter, 5 pin) and use it to flash the firmware.&lt;br /&gt;
&lt;br /&gt;
   $ ./flasher.js openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin&lt;br /&gt;
   Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
   Connection timed out&lt;br /&gt;
   Sending openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
   [Error: (Server) Firmware check failed]&lt;br /&gt;
&lt;br /&gt;
When connected to the NSM5 via a serial connection, a similar error is displayed when attempting to load the SudoWRT firmware image.&lt;br /&gt;
&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Will reset device configuration (Reset button active after 10 seconds).&lt;br /&gt;
  Erasing sector 123..126&lt;br /&gt;
  &lt;br /&gt;
  First 0x7b last 0x7e sector size 0x10000&lt;br /&gt;
  .... done&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
  Receiving file from 192.168.1.10:49763&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware check failed! (1)&lt;br /&gt;
&lt;br /&gt;
===== Drop into U-Boot Command Prompt =====&lt;br /&gt;
&lt;br /&gt;
Connect a USB to Serial adapter to the correct pins of the NSM5, as shown above. Unplug the Ethernet cable from the device, and then plug it back in to provide Power Over Ethernet once again, resulting in a reboot of the device.&lt;br /&gt;
&lt;br /&gt;
During the boot process, press a key to during the boot process to make the [https://wiki.openwrt.org/doc/techref/bootloader/uboot U-Boot] bootloader to drop into a command line prompt.&lt;br /&gt;
&lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0&lt;br /&gt;
  ar7240&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Running TFTPd =====&lt;br /&gt;
&lt;br /&gt;
Although U-Boot can support two protocols for transfering files, kermit or y-modem, the bootloader does not support the &amp;lt;tt&amp;gt;loadb&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;loady&amp;lt;/tt&amp;gt;. Minicom only supports y-modem protocol.&lt;br /&gt;
&lt;br /&gt;
We do not have to resort to a direct serial file transfer however. The 'mtdparts' command that is used to define flash memory partitions can be used to reset the partition table to the defaults before running 'urescue' to start the TFTP server.&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; help mtdparts&lt;br /&gt;
  mtdparts &lt;br /&gt;
      - list partition table&lt;br /&gt;
  mtdparts delall&lt;br /&gt;
      - delete all partitions&lt;br /&gt;
  mtdparts del part-id&lt;br /&gt;
      - delete partition (e.g. part-id = nand0,1)&lt;br /&gt;
  mtdparts add &amp;lt;mtd-dev&amp;gt; &amp;lt;size&amp;gt;[@&amp;lt;offset&amp;gt;] [&amp;lt;name&amp;gt;] [ro]&lt;br /&gt;
      - add partition&lt;br /&gt;
  mtdparts default&lt;br /&gt;
      - reset partition table to defaults&lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
&lt;br /&gt;
In your other terminal window, run the ubi-flasher script.&lt;br /&gt;
&lt;br /&gt;
  $ ./flasher.js /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin&lt;br /&gt;
  Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
  Connection timed out&lt;br /&gt;
  Sending /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
  Firmware flashing begun!&lt;br /&gt;
  The firmware has been successfully sent to the router.&lt;br /&gt;
  In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up).&lt;br /&gt;
  This means that the router is flashing itself with the new firmware.&lt;br /&gt;
  Once the router goes back to having only the power LED lit, the router has been successfully flashed.&lt;br /&gt;
&lt;br /&gt;
In the terminal running Minicom you should see the firmware successfully flashing.&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:52289&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware Version: XW.ar934x.v6.0.0-OpenWrt-r47662&lt;br /&gt;
  Setting U-Boot environment variables&lt;br /&gt;
  Un-Protected 1 sectors&lt;br /&gt;
  Erasing Flash.... done&lt;br /&gt;
  Erased 1 sectors&lt;br /&gt;
  Writing to Flash... write addr: 9f040000&lt;br /&gt;
  done&lt;br /&gt;
  Protected 1 sectors&lt;br /&gt;
  Copying partition 'kernel' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x5 last 0x14 sector size 0x10000&lt;br /&gt;
  ................ done&lt;br /&gt;
  write addr: 9f050000&lt;br /&gt;
  Copying partition 'rootfs' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x15 last 0x6e sector size 0x10000&lt;br /&gt;
  .......................................................................................... done&lt;br /&gt;
  write addr: 9f150000&lt;br /&gt;
  &lt;br /&gt;
  Firmware update complete.&lt;br /&gt;
  &lt;br /&gt;
  Resetting...&lt;br /&gt;
  &lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ## Booting image at 9f050000 ...&lt;br /&gt;
     Image Name:   MIPS OpenWrt Linux-3.18.23&lt;br /&gt;
     Created:      2015-12-01   0:03:51 UTC&lt;br /&gt;
     Image Type:   MIPS Linux Kernel Image (lzma compressed)&lt;br /&gt;
     Data Size:    1135619 Bytes =  1.1 MB&lt;br /&gt;
     Load Address: 80060000&lt;br /&gt;
     Entry Point:  80060000&lt;br /&gt;
     Verifying Checksum at 0x9f050040 ...OK&lt;br /&gt;
     Uncompressing Kernel Image ... OK&lt;br /&gt;
  &lt;br /&gt;
  Starting kernel ...&lt;br /&gt;
  &lt;br /&gt;
  [    0.000000] Linux version 3.18.23 (sudowrt-builder@build-test2) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.04 r47662) ) #2 Mon Nov 5&lt;br /&gt;
&lt;br /&gt;
After it reboots if you see the first line mention 'sudowrt-builder', the device is booting the SudoWRT firmware build.&lt;br /&gt;
&lt;br /&gt;
You can press ENTER once it is finished, and it should drop into the command line for the SudoWRT system.&lt;br /&gt;
&lt;br /&gt;
  [   25.650000] jffs2: Newly-erased block contained word 0xdeadc0de at offset 0x00000000&lt;br /&gt;
  [   25.660000] done.&lt;br /&gt;
  [   25.660000] jffs2: notice: (993) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and.&lt;br /&gt;
  &lt;br /&gt;
  BusyBox v1.23.2 (2015-11-30 18:48:50 EST) built-in shell (ash)&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
    ._______.___    ._______.______  ._____  .___    .___ .______  ._____  &lt;br /&gt;
    :_ ____/|   |   : .____/:_ _   \ :_ ___\ |   |   : __|:      \ :_ ___\ &lt;br /&gt;
    |   _/  |   |   | : _/\ |   |   ||   |___|   |   | : ||       ||   |___&lt;br /&gt;
    |   |   |   |/\ |   /  \| . |   ||   /  ||   |/\ |   ||   |   ||   /  |&lt;br /&gt;
    |_. |   |   /  \|_.: __/|. ____/ |. __  ||   /  \|   ||___|   ||. __  |&lt;br /&gt;
      :/    |______/   :/    :/       :/ |. ||______/|___|    |___| :/ |. |&lt;br /&gt;
      :                      :        :   :/                        :   :/ &lt;br /&gt;
                                          :                             : &lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   sudo mesh v0.2 (fledgling.extender)&lt;br /&gt;
                                based on OpenWRT 15.05 (Chaos Calmer)&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   &amp;quot;When your rage is choking you, it is best to say nothing.&amp;quot; &lt;br /&gt;
                                              - Octavia E. Butler, Fledgling&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
  &lt;br /&gt;
  root@sudomesh-node:/#&lt;br /&gt;
&lt;br /&gt;
== Extender Node Installation ==&lt;br /&gt;
=== Installation Order ===&lt;br /&gt;
#Flash home nodes and extender nodes&lt;br /&gt;
#Get on roof and determine which direction to face the extender nodes&lt;br /&gt;
#Install J-Pole&lt;br /&gt;
#Crimp end onto Ethernet cable&lt;br /&gt;
#Run Ethernet cable from j-pole down to location of home node (either through a soffit indoors or to an outdoor enclosure)&lt;br /&gt;
#Crimp other end of Ethernet cable and connect to home node via a POE adaptor&lt;br /&gt;
#Install extender node on J-Pole using zip-ties - check lights to make sure unit is powered up&lt;br /&gt;
#Walk around the neighborhood to check the signal&lt;br /&gt;
&lt;br /&gt;
=== Gear Checklist ===&lt;br /&gt;
	&lt;br /&gt;
Protective and personal gear&lt;br /&gt;
*Wear clothes you can get dirty and sturdy boots for roof walking&lt;br /&gt;
*Sunscreen&lt;br /&gt;
*Sunglasses&lt;br /&gt;
*Pocketknife (for cutting zip ties etc)&lt;br /&gt;
*Ladder&lt;br /&gt;
*Safety harness &amp;amp; rope in a bucket&lt;br /&gt;
*Smart phone (to check signal and take pictures)&lt;br /&gt;
Home node gear&lt;br /&gt;
*2 flashed Western Digital Mynet N600 Home Nodes&lt;br /&gt;
*paperclip (to reset equipment)&lt;br /&gt;
*Laptop (to configure equipment)&lt;br /&gt;
*Plastic outdoor enclosure for router (optional)&lt;br /&gt;
*Power Strip&lt;br /&gt;
J-Pole gear&lt;br /&gt;
*J-Pole&lt;br /&gt;
*Latex gloves (for dealing with roofing sealant)&lt;br /&gt;
*Roofing sealant&lt;br /&gt;
*Ratchet set - 10mm for small bolts, 13mm for large bolts&lt;br /&gt;
*Corldless Drill&lt;br /&gt;
*3/16&amp;quot; drill bit for J-pole bolts&lt;br /&gt;
*Steel One-Hole Conduit Straps (for holding Ethernet cable along eves)&lt;br /&gt;
*Screws for the Steel one-hole straps&lt;br /&gt;
Ethernet cable gear&lt;br /&gt;
*Ethernet Spool&lt;br /&gt;
*Ethernet Ends&lt;br /&gt;
*Ethernet Crimper&lt;br /&gt;
*Laminated card showing the Ethernet cable order&lt;br /&gt;
*Label Maker - so you can know which cable is which&lt;br /&gt;
Extender node gear&lt;br /&gt;
*Flashed Ubiquiti Nanostation M2 or M5 extender Node(s)&lt;br /&gt;
*Power over Ethernet (POE) adapters&lt;br /&gt;
*Zip Ties&lt;/div&gt;</summary>
		<author><name>Gcg</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=11078</id>
		<title>Mesh/Flashing extender nodes</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=11078"/>
		<updated>2018-03-03T06:29:51Z</updated>

		<summary type="html">&lt;p&gt;Gcg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;After following the [[Mesh/WalkThrough]], you are probably just an isolated node on the virtual People's Open Network. If you want to become part of the physical mesh, you are going to need to extend the signal from home node using what we call an extender node. An extender node is just a roof-mounted, directional antenna used to make point-to-point connections between two locations that have line-of-sight (LOS) to one another. Preparing an extender node generally consists to two stages, downgrading the proprietary AirOS firmware and flashing it with our custom build of OpenWrt.&lt;br /&gt;
&lt;br /&gt;
== Downgrading to earlier AirOS ==&lt;br /&gt;
&lt;br /&gt;
Typically, we use Ubiquiti equipment for our extender nodes. These come with a proprietary firmware called AirOS. Any extender node with version 5.6 of AirOS and above needs to be downgraded to a 5.5.XX version of AirOS version before you can flash it with OpenWRT. &lt;br /&gt;
&lt;br /&gt;
First check what version of AirOS your extender node is running, to do this, &lt;br /&gt;
&lt;br /&gt;
* Edit your network settings to reflect the following:&lt;br /&gt;
&lt;br /&gt;
* Network Manager Method: Manual&lt;br /&gt;
* IP Address: 192.168.1.10 (some devices will only accept from this IP)&lt;br /&gt;
* Subnet Mask: 255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0 (Or leave blank)&lt;br /&gt;
&lt;br /&gt;
You can also use the commands:&lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; down &lt;br /&gt;
  sudo ip addr add 192.168.1.10/24 dev &amp;lt;eth_interface&amp;gt; &lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; up&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;eth_interface&amp;gt; is the name of your ethernet interface found using `ip addr` (common names include eth0, enp3s0, ...)&lt;br /&gt;
&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the Power-over-Ethernet (PoE) power supply on the other end.&lt;br /&gt;
&lt;br /&gt;
* Plug another Ethernet cable into your extender node on one end and into the &amp;quot;POE&amp;quot; port of the PoE power supply on the other end.&lt;br /&gt;
&lt;br /&gt;
* Power on the extender node by plugging in the PoE and wait for it to boot (may take a few minutes).&lt;br /&gt;
&lt;br /&gt;
* Make sure you aren't connected to a wifi network that has an 192.168.1.x IP range. Disconnect/disable your wifi if necessary.&lt;br /&gt;
&lt;br /&gt;
* In a browser, go to the AirOS web interface at http://192.168.1.20&lt;br /&gt;
&lt;br /&gt;
* Log in using the credentials &lt;br /&gt;
** username: ubnt &lt;br /&gt;
** password: ubnt&lt;br /&gt;
&lt;br /&gt;
* Look at the Firmware information, it may say something like XM.v5.6.6.bin or XW.v5.6.6, based on this download the correct version of AirOS v5.5.10&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Version !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| XW v5.5.10 || http://dl.ubnt.com/firmwares/XW-fw/v5.5.10/XW.v5.5.10-u2.28005.150723.1358.bin&lt;br /&gt;
|-&lt;br /&gt;
| XM v5.5.10 || http://dl.ubnt.com/firmwares/XN-fw/v5.5.11/XM.v5.5.11.28002.150723.1344.bin&lt;br /&gt;
|-&lt;br /&gt;
| TI v5.5.11 || http://dl.ubnt.com/firmwares/XN-fw/v5.5.11/TI.v5.5.11.28002.150723.1518.bin&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Back in the web interface, go to the &amp;quot;System&amp;quot; tab.&lt;br /&gt;
* Click the &amp;quot;Browse&amp;quot; button next to the &amp;quot;Upload Firmware&amp;quot; box &lt;br /&gt;
* Select the firmware image you just downloaded&lt;br /&gt;
* Click &amp;quot;Upload&amp;quot;.&lt;br /&gt;
* After uploading you will be asked if you want to upgrade/install the firmware. Click yes/accept.&lt;br /&gt;
* Ignore any warnings about changing the default admin password, we're gonna overwrite it anyway&lt;br /&gt;
* Let the router finish flashing and wait for it to fully reboot.&lt;br /&gt;
* After it reboots, you may wanna go back into the web interface to make sure the downgrade was successful before proceeding.&lt;br /&gt;
&lt;br /&gt;
XM.v6.0.4 (v6.0.4) firmware version does not appear to be downgradable via the preceding method. Instead you will need to use command-line method as follows,&lt;br /&gt;
&lt;br /&gt;
   ssh-keygen -f &amp;quot;/home/yourusername/.ssh/known_hosts&amp;quot; -R 192.168.1.20&lt;br /&gt;
   scp &amp;lt;firmware_image.bin&amp;gt;  ubnt@192.168.1.20:/tmp/fwupdate.bin&lt;br /&gt;
   ssh ubnt@192.168.1.20  # password is &amp;quot;ubnt&amp;quot;&lt;br /&gt;
   /sbin/fwupdate -m&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Flash the Extender Node ==&lt;br /&gt;
Now that you have successfully downgraded the AirOS firmware, we can go ahead with flashing it with our custom build of OpenWRT. Start by downloading our firmware image for your model of extender node,&lt;br /&gt;
&lt;br /&gt;
The extender nodes that we currently support are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Notes !! OpenWRT Doc !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M2 and M5 || Newer models need [[#Downgrading_to_earlier_AirOS|AirOS downgrade]] before flashing!  Note that this will almost certainly require a USB to Serial connection (see below).|| [https://wiki.openwrt.org/toh/ubiquiti/nanostationm5 OpenWRT Docs] || firmware: [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin pre 2015 M5 versions and all M2 versions] or [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin 2015-2016 M5 versions]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation 2 || Not being built in current firmware release, Previous generation 802.11g (not the same as M2) || [https://wiki.openwrt.org/toh/ubiquiti/picostation2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ath25.extender-node/openwrt-ath25-ubnt2-pico2-squashfs.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation M2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostationm2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-bullet-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobeam M2 and M5 || NBEâ€‘M2â€‘13 and NBEâ€‘M5â€‘16 work but some (earlier?) NBEâ€‘M5â€‘19 have ethernet port issues. Newer models need [[#Downgrading_to_earlier_AirOS|AirOS downgrade]] before flashing! || [https://wiki.openwrt.org/toh/ubiquiti/nanobeam OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-loco-m-xw-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobridge M2 and M5 || || Same as pre-2015 Nanostation M || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Bullet M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/bullet OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-bullet-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|}&lt;br /&gt;
More firmware images can be found at http://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/&lt;br /&gt;
Also, if you are flashing for practice or testing, you can try using the dev-builds here, http://builds.sudomesh.org/dev-builds/, NOTE: USE WITH CARE, THESE PROVIDE SSH ACCESS WITH A DEFAULT PASSWORD AND SHOULD NOT BE USED FOR DEPLOYMENT NODES&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Configure your wired ethernet interface as instructed in the previous sections&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the Power-over-Ethernet (PoE) power supply on the other end.&lt;br /&gt;
&lt;br /&gt;
* Plug another Ethernet cable into your extender node on one end and into the &amp;quot;POE&amp;quot; port of the PoE power supply on the other end.&lt;br /&gt;
&lt;br /&gt;
* Push a pin into the reset hole and hold it.&lt;br /&gt;
* With the pin held down, plug in the power to the extender node, either by plugging in it's ethernet cable or by powering on the PoE.&lt;br /&gt;
&lt;br /&gt;
* Continue holding down the pin, watch the lights on the antenna - they will all flash together a few times and then flash back-and-forth in what is affectionately known as cha-cha mode (or more accurately, TFTP mode).&lt;br /&gt;
&lt;br /&gt;
* Once the lights on the antenna are flashing up and down, you can let go of the pin.&lt;br /&gt;
&lt;br /&gt;
* You should be able to ping the extender at 192.168.1.20.&lt;br /&gt;
&lt;br /&gt;
  $ ping 192.168.1.20&lt;br /&gt;
  PING 192.168.1.20 (192.168.1.20) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=1 ttl=64 time=1.54 ms&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=2 ttl=64 time=0.826 ms&lt;br /&gt;
&lt;br /&gt;
* Open a terminal (Linux or Mac?) and run the following:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/ubi-flasher&lt;br /&gt;
  cd ubi-flasher&lt;br /&gt;
  npm install&lt;br /&gt;
  ./flasher.js '&amp;lt;path to firmware&amp;gt;'&lt;br /&gt;
&lt;br /&gt;
* The terminal should return the following,&lt;br /&gt;
   The firmware has been successfully sent to the router. In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up). This means that the router is flashing itself with the new firmware. Once the router goes back to having only the power LED lit, the router has been successfully flashed.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Wait until the antenna has only the power LED lit and you're done.&lt;br /&gt;
&lt;br /&gt;
* Reconfigure your machine with the following static network configuration.&lt;br /&gt;
&lt;br /&gt;
* IP address: 172.22.0.10 &lt;br /&gt;
* Subnet mask:  255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0&lt;br /&gt;
&lt;br /&gt;
Or use the commands&lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; down &lt;br /&gt;
  sudo ip addr add 172.22.0.10/24 dev &amp;lt;eth_interface&amp;gt; &lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; up&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;eth_interface&amp;gt; is the name of your ethernet interface found using `ip addr` (common names include eth0, enp3s0, ...)&lt;br /&gt;
&lt;br /&gt;
See Network Configuration Guides: [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20Linux Linux] [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20MacOS%20X Mac]&lt;br /&gt;
&lt;br /&gt;
If you ping the extender node on 172.22.0.2 and it responds, it should be ready to connect to your home node on the appropriate wired Ethernet port.&lt;br /&gt;
&lt;br /&gt;
  $ ping 172.22.0.2&lt;br /&gt;
  PING 172.22.0.2 (172.22.0.2) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=1 ttl=64 time=0.617 ms&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=2 ttl=64 time=0.316 ms&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=3 ttl=64 time=0.398 ms&lt;br /&gt;
&lt;br /&gt;
Once configured with our firmware, an extender node will not start broadcasting an SSID until it is plugged into a home node because it must first get a mesh IP address.&lt;br /&gt;
&lt;br /&gt;
== Testing and Network Detection ==&lt;br /&gt;
&lt;br /&gt;
If you flashed&lt;br /&gt;
change root password&lt;br /&gt;
   passwd&lt;br /&gt;
&lt;br /&gt;
Once ssh'ed into the extender node, there are few files you can play around with,&lt;br /&gt;
`/etc/config/wireless` sets the names of the SSIDs broadcast by the antenna, you may want to change the name of the ad-hoc interface so as to distinguish it from home node's ad-hoc network&lt;br /&gt;
Trying changing it to something like &amp;quot;popplesopen.net-nod2nod&amp;quot;, then reboot the extender node and check if you can see the new name in your network list.&lt;br /&gt;
&lt;br /&gt;
YNext, you my be curious what you can see with your antenna, to scan for other visible networks, ssh in to the extender node and run the following,&lt;br /&gt;
   iw dev mesh0 scan | grep SSID:&lt;br /&gt;
This should return a lengthy list of SSID, if you can see another &amp;quot;pplsopen.net-node2node&amp;quot; SSID, you should be meshing with it automatically.&lt;br /&gt;
&lt;br /&gt;
If you'd like to view more info about the network you can see, you can pipe the output of the previous command to a log file like so,&lt;br /&gt;
   iw dev mesh0 scan &amp;gt; scan log&lt;br /&gt;
&lt;br /&gt;
Once you are done meshing around with your extender node make sure to reset the root password with passwd or reflash the router with the standard build of our firmware.&lt;br /&gt;
&lt;br /&gt;
Log into your home node via SSH, and tail &amp;lt;tt&amp;gt;/var/log/messages&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver: eth0.3: Physical disconnect detected&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver: Listening on interface eth0.3:&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver:   client IP: 100.64.37.3&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver:   client netmask 26&lt;br /&gt;
  Sun May  8 00:51:12 2016 daemon.debug notdhcpserver: eth0.3: Recieved HEARTBEAT for interface that hadn't been ACKed.&lt;br /&gt;
  ...&lt;br /&gt;
  Sun May  8 00:54:00 2016 daemon.debug notdhcpserver: eth0.3: Recieved HEARTBEAT for interface that hadn't been ACKed.&lt;br /&gt;
  Sun May  8 00:54:00 2016 daemon.info hostapd: priv5: STA 80:e6:50:0e:fe:6e WPA: group key handshake completed (RSN)&lt;br /&gt;
  Sun May  8 00:54:04 2016 daemon.debug notdhcpserver: eth0.2: Received lease request&lt;br /&gt;
  Sun May  8 00:54:04 2016 daemon.debug notdhcpserver: eth0.3: sending response (with ssl certificate)&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received ACK&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Running up hook script&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received redundant ACK&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received redundant ACK&lt;br /&gt;
&lt;br /&gt;
There should be a debug message in the log from notdhcpserver concerning the extender node.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== USB to Serial Connection ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you experience trouble flashing your device via the web interface, or via the TFTP image upload method, you'll want to establish a serial connection to troubleshoot further. Methods for flashing your device involving a serial connection may become more common as devices adopt configurations to lock down [http://www.networkworld.com/article/3038722/mobile-wireless/manufacturers-start-to-lock-down-wi-fi-router-firmware-thanks-fcc.html wi-fi router firmware] to prevent flashing.&lt;br /&gt;
&lt;br /&gt;
The following notes describe steps to interface with a Nanostation M5 (NSM5) via the serial interface. &lt;br /&gt;
&lt;br /&gt;
==== Order a USB to Serial Converter ====&lt;br /&gt;
&lt;br /&gt;
USB to serial converter devices exist at a cost of $4 - $8 online, with much lower pricing and longer delivery times if ordered from China. Search for &amp;quot;USB to UART TTL&amp;quot;, including &amp;quot;5 pin&amp;quot; in the search. Make sure the specifications do not mention anything other than 3.3 volts.&lt;br /&gt;
&lt;br /&gt;
Mac OS X users may need to install a device driver for their device. For example, for devices using the CP210X chip, you can download the [https://www.silabs.com/products/mcu/Pages/USBtoUARTBridgeVCPDrivers.aspx#mac CP210x USB to UART Bridge VCP Driver], which is made available as &amp;lt;tt&amp;gt;/dev/tty.SLAB_USBtoUART&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Connecting to Serial ====&lt;br /&gt;
&lt;br /&gt;
You will need to connect the following pins from the converter to the pins on the device.&lt;br /&gt;
&lt;br /&gt;
* Ground (GND)&lt;br /&gt;
* Serial Out (Transmit / TX)&lt;br /&gt;
* Serial In (Receive / RX)&lt;br /&gt;
&lt;br /&gt;
Begin by connecting the Ground of the converter to the Ground of the device. Next connect the Transmit/TX of the converter to the Receive/RX of the device, then connect the Receive/RX of the converter to the Transmit/TX of the device.&lt;br /&gt;
&lt;br /&gt;
Nanostation M5 (NSM5) Example:&lt;br /&gt;
&lt;br /&gt;
[[File:CP2102-usb-to-serial-converter.jpg|400px|KEDSUMÂ® CP2102 Module STC Download Cable USB 2.0 to TTL 6PIN Serial Converter For STC]]&lt;br /&gt;
&lt;br /&gt;
[[File:Ubiquity-NSM5-serial-connectors.jpg|400px|Ubiquiti Nanostation NSM5 - Serial pins with connections]]&lt;br /&gt;
&lt;br /&gt;
==== Serial Communications Program ====&lt;br /&gt;
&lt;br /&gt;
You need to install a serial communication program. Linux users can use Minicom.&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get install minicom&lt;br /&gt;
&lt;br /&gt;
Mac OS X users can as well&lt;br /&gt;
&lt;br /&gt;
  brew install minicom&lt;br /&gt;
&lt;br /&gt;
By default the Minicom program will attempt to use /dev/tty8, and will also attempt to initialize the device (expecting a modem) by default.&lt;br /&gt;
&lt;br /&gt;
  $ minicom&lt;br /&gt;
  minicom: cannot open /dev/tty8: Permission denied&lt;br /&gt;
&lt;br /&gt;
Run the program so that it starts the program on the USB converter that is connected by adding &amp;lt;tt&amp;gt;-D /dev/ttyUSB0&amp;lt;/tt&amp;gt;, and specify that it should skip initialization by adding &amp;lt;tt&amp;gt;-o&amp;lt;/tt&amp;gt;. Mac users may need to reference a different device (such as &amp;lt;tt&amp;gt;/dev/tty.SLAB_USBtoUART&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
You can also specify from the command line that it use the baud rate and '8N1' settings specified below by including &amp;lt;tt&amp;gt;-b 115200 -8&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
  sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
&lt;br /&gt;
In Minicom, CTRL-A to get settings, then Press O, to access settings. Mac users will need to discover the proper META key to use with their Terminal program. iTerm uses the 'ESC' key.&lt;br /&gt;
&lt;br /&gt;
Go to Serial Port Setup, use these settings:&lt;br /&gt;
&lt;br /&gt;
* Set the serial device (should be /dev/tty/USB0)&lt;br /&gt;
* Baud Rate (Bits Per Second): 115200&lt;br /&gt;
* Settings '8N1' (short hand for 8 bits, no parity, 1 stop bit)&lt;br /&gt;
* Turn off hardware and software flow control&lt;br /&gt;
&lt;br /&gt;
Reboot the device, and it will let you drop into a command line. You will then have to figure out how to enable the network from the boot loader (Uboot or Redboot) and transfer the firmware to the device to flash it.&lt;br /&gt;
&lt;br /&gt;
==== Interupting Boot ====&lt;br /&gt;
&lt;br /&gt;
The device will not detect the key you press unless Minicom is configured properly.&lt;br /&gt;
&lt;br /&gt;
* To access the Help screen, Press CTRL-A, then press Z.&lt;br /&gt;
* To access the configuration/settings, press CTRL-A, then press O.&lt;br /&gt;
&lt;br /&gt;
From the configuration window, select to view the 'Serial port setup'&lt;br /&gt;
&lt;br /&gt;
  $ sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
  Welcome to minicom 2.7&lt;br /&gt;
  &lt;br /&gt;
  OPTIONS: I18n &lt;br /&gt;
  Compiled on Jan  1 2014, 17:13:19.&lt;br /&gt;
  Port /dev/ttyUSB0, 21:47:56&lt;br /&gt;
  &lt;br /&gt;
  Press CTRL-A Z for help on special keys&lt;br /&gt;
  &lt;br /&gt;
              +-----[configuration]------+&lt;br /&gt;
              | Filenames and paths      |&lt;br /&gt;
              | File transfer protocols  |&lt;br /&gt;
              | Serial port setup        |&lt;br /&gt;
              | Modem and dialing        |&lt;br /&gt;
              | Screen and keyboard      |&lt;br /&gt;
              | Save setup as dfl        |&lt;br /&gt;
              | Save setup as..          |&lt;br /&gt;
              | Exit                     |&lt;br /&gt;
              +--------------------------+&lt;br /&gt;
  &lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
  | A -    Serial Device      : /dev/ttyUSB0                              |&lt;br /&gt;
  | B - Lockfile Location     : /var/lock                                 |&lt;br /&gt;
  | C -   Callin Program      :                                           |&lt;br /&gt;
  | D -  Callout Program      :                                           |&lt;br /&gt;
  | E -    Bps/Par/Bits       : 115200 8N1                                |&lt;br /&gt;
  | F - Hardware Flow Control : Yes                                       |&lt;br /&gt;
  | G - Software Flow Control : No                                        |&lt;br /&gt;
  |                                                                       |&lt;br /&gt;
  |    Change which setting?                                              |&lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
&lt;br /&gt;
By default the Hardware Flow Control will be enabled. Press 'F' to disable Hardware Flow Control. Press ENTER to exit the Serial port setup window, and then select EXIT to go back to the program.&lt;br /&gt;
&lt;br /&gt;
At this point plug in the Ethernet cable to the 'Main' Ethernet port, with the other end connected to the 'POE' port on the Power Over Ethernet adapter that came with the device. As the device boots up, you'll see output similar to the following.&lt;br /&gt;
&lt;br /&gt;
You'll need to make sure to press a key before it boots the default image.&lt;br /&gt;
&lt;br /&gt;
=== Picostation M2HP ===&lt;br /&gt;
&lt;br /&gt;
Insightful post on [https://www.strugglingcoder.info/index.php/tag/ubnt/ loading FreeBSD image] with help from serial communications. Could be useful with troubleshooting other models.&lt;br /&gt;
=== Nanostation M2 ===&lt;br /&gt;
==== Firmware check failure ====&lt;br /&gt;
&lt;br /&gt;
The following are simply notes. A solution to this issue is still pending.&lt;br /&gt;
&lt;br /&gt;
Flashing the Nanostation M2 (FCC ID: SWX-M2N) using the TFTP rescue mode will result in a Firmware check failure error.&lt;br /&gt;
&lt;br /&gt;
  $ tftp 192.168.1.20&lt;br /&gt;
  tftp&amp;gt; bin&lt;br /&gt;
  tftp&amp;gt; put openwrt-ar71xx-generic-om2p-squashfs-factory.bin&lt;br /&gt;
  Error code 2: Firmware check failed&lt;br /&gt;
  Sent 4609024 bytes in 12.6 seconds&lt;br /&gt;
&lt;br /&gt;
You can boot up the M2 with a serial connection similar to the instructions below concerning the Nanostation M5.&lt;br /&gt;
&lt;br /&gt;
  Board: Ubiquiti Networks XM board (rev 1.0 e012)&lt;br /&gt;
  DRAM:  32 MB&lt;br /&gt;
  Flash:  8 MB&lt;br /&gt;
  PCIe WLAN Module found (#1).&lt;br /&gt;
  Net:   eth0, eth1&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: |&lt;br /&gt;
  Receiving file from 192.168.1.10:35456&lt;br /&gt;
  Received 4609501 bytes&lt;br /&gt;
  Firmware check failed! (-2)&lt;br /&gt;
&lt;br /&gt;
The method outlined for the Nanostation M5 below doesn't work with the M2.&lt;br /&gt;
&lt;br /&gt;
Update the firmware to [http://dl.ubnt.com/firmwares/XN-fw/v5.6.4/XM.v5.6.4.28924.160331.1253.bin airOS for XM board firmware v5.6.4].&lt;br /&gt;
&lt;br /&gt;
Serial Connection:&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
&lt;br /&gt;
Terminal:&lt;br /&gt;
&lt;br /&gt;
  $ tftp 192.168.1.20&lt;br /&gt;
  tftp&amp;gt; bin&lt;br /&gt;
  tftp&amp;gt; put XM.v5.6.4.28924.160331.1253.bin&lt;br /&gt;
  Sent 7537129 bytes in 20.8 seconds&lt;br /&gt;
&lt;br /&gt;
Serial Connection:&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:55113&lt;br /&gt;
  Received 7537129 bytes&lt;br /&gt;
  Firmware Version: XM.ar7240.v5.6.4.28924.160331.1253&lt;br /&gt;
  Setting U-Boot environment variables&lt;br /&gt;
  Un-Protected 1 sectors&lt;br /&gt;
  Erasing Flash.... done&lt;br /&gt;
  Erased 1 sectors&lt;br /&gt;
  Writing to Flash... done&lt;br /&gt;
  Protected 1 sectors&lt;br /&gt;
  Will not overwrite u-boot partition! Skipped.&lt;br /&gt;
  Copying partition 'kernel' to flash memory:&lt;br /&gt;
          erasing range 0x9F050000..0x9F14FFFF: ................ done&lt;br /&gt;
  Erased 16 sectors&lt;br /&gt;
          writing to address 0x9f050000, length 0x00100000 ...&lt;br /&gt;
  Copying partition 'rootfs' to flash memory:&lt;br /&gt;
          erasing range 0x9F150000..0x9F74FFFF: .............................................................................................e&lt;br /&gt;
  Erased 96 sectors&lt;br /&gt;
          writing to address 0x9f150000, length 0x00600000 ...&lt;br /&gt;
  &lt;br /&gt;
  Firmware update complete.&lt;br /&gt;
  &lt;br /&gt;
  Resetting...&lt;br /&gt;
  &lt;br /&gt;
  U-Boot 1.1.4.2-s594 (Dec  5 2012 - 15:23:07)&lt;br /&gt;
  &lt;br /&gt;
  Board: Ubiquiti Networks XM board (rev 1.0 e012)&lt;br /&gt;
&lt;br /&gt;
Attempting to run the same process after performing an official firmware update doesn't resolve the issue.&lt;br /&gt;
&lt;br /&gt;
=== Nanostation M5 ===&lt;br /&gt;
&lt;br /&gt;
Official firmware from Ubiquity Nanostation M5 (NSM5)&lt;br /&gt;
&lt;br /&gt;
* [https://www.ubnt.com/download/airmax-m/nanostationm/default/airos-xw-board-firmware-v564 airOS for XW board firmware v5.6.4]&lt;br /&gt;
&lt;br /&gt;
==== Firmware check failure ====&lt;br /&gt;
&lt;br /&gt;
Flashing the Nanostation M5 (FCC ID: SWX-NSM5D) using the TFTP rescue mode will result in a Firmware check failure error.&lt;br /&gt;
&lt;br /&gt;
If you attempt to flash the extender and receive a 'Firmware check failed' error, then you have a version of the NSM5 that is protected from being flashed via the default TFTP method. You will need to obtain a serial to USB interface (USB to UART TTL Module Serial Converter, 5 pin) and use it to flash the firmware.&lt;br /&gt;
&lt;br /&gt;
   $ ./flasher.js openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin&lt;br /&gt;
   Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
   Connection timed out&lt;br /&gt;
   Sending openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
   [Error: (Server) Firmware check failed]&lt;br /&gt;
&lt;br /&gt;
When connected to the NSM5 via a serial connection, a similar error is displayed when attempting to load the SudoWRT firmware image.&lt;br /&gt;
&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Will reset device configuration (Reset button active after 10 seconds).&lt;br /&gt;
  Erasing sector 123..126&lt;br /&gt;
  &lt;br /&gt;
  First 0x7b last 0x7e sector size 0x10000&lt;br /&gt;
  .... done&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
  Receiving file from 192.168.1.10:49763&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware check failed! (1)&lt;br /&gt;
&lt;br /&gt;
===== Drop into U-Boot Command Prompt =====&lt;br /&gt;
&lt;br /&gt;
Connect a USB to Serial adapter to the correct pins of the NSM5, as shown above. Unplug the Ethernet cable from the device, and then plug it back in to provide Power Over Ethernet once again, resulting in a reboot of the device.&lt;br /&gt;
&lt;br /&gt;
During the boot process, press a key to during the boot process to make the [https://wiki.openwrt.org/doc/techref/bootloader/uboot U-Boot] bootloader to drop into a command line prompt.&lt;br /&gt;
&lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0&lt;br /&gt;
  ar7240&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Running TFTPd =====&lt;br /&gt;
&lt;br /&gt;
Although U-Boot can support two protocols for transfering files, kermit or y-modem, the bootloader does not support the &amp;lt;tt&amp;gt;loadb&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;loady&amp;lt;/tt&amp;gt;. Minicom only supports y-modem protocol.&lt;br /&gt;
&lt;br /&gt;
We do not have to resort to a direct serial file transfer however. The 'mtdparts' command that is used to define flash memory partitions can be used to reset the partition table to the defaults before running 'urescue' to start the TFTP server.&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; help mtdparts&lt;br /&gt;
  mtdparts &lt;br /&gt;
      - list partition table&lt;br /&gt;
  mtdparts delall&lt;br /&gt;
      - delete all partitions&lt;br /&gt;
  mtdparts del part-id&lt;br /&gt;
      - delete partition (e.g. part-id = nand0,1)&lt;br /&gt;
  mtdparts add &amp;lt;mtd-dev&amp;gt; &amp;lt;size&amp;gt;[@&amp;lt;offset&amp;gt;] [&amp;lt;name&amp;gt;] [ro]&lt;br /&gt;
      - add partition&lt;br /&gt;
  mtdparts default&lt;br /&gt;
      - reset partition table to defaults&lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
&lt;br /&gt;
In your other terminal window, run the ubi-flasher script.&lt;br /&gt;
&lt;br /&gt;
  $ ./flasher.js /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin&lt;br /&gt;
  Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
  Connection timed out&lt;br /&gt;
  Sending /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
  Firmware flashing begun!&lt;br /&gt;
  The firmware has been successfully sent to the router.&lt;br /&gt;
  In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up).&lt;br /&gt;
  This means that the router is flashing itself with the new firmware.&lt;br /&gt;
  Once the router goes back to having only the power LED lit, the router has been successfully flashed.&lt;br /&gt;
&lt;br /&gt;
In the terminal running Minicom you should see the firmware successfully flashing.&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:52289&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware Version: XW.ar934x.v6.0.0-OpenWrt-r47662&lt;br /&gt;
  Setting U-Boot environment variables&lt;br /&gt;
  Un-Protected 1 sectors&lt;br /&gt;
  Erasing Flash.... done&lt;br /&gt;
  Erased 1 sectors&lt;br /&gt;
  Writing to Flash... write addr: 9f040000&lt;br /&gt;
  done&lt;br /&gt;
  Protected 1 sectors&lt;br /&gt;
  Copying partition 'kernel' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x5 last 0x14 sector size 0x10000&lt;br /&gt;
  ................ done&lt;br /&gt;
  write addr: 9f050000&lt;br /&gt;
  Copying partition 'rootfs' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x15 last 0x6e sector size 0x10000&lt;br /&gt;
  .......................................................................................... done&lt;br /&gt;
  write addr: 9f150000&lt;br /&gt;
  &lt;br /&gt;
  Firmware update complete.&lt;br /&gt;
  &lt;br /&gt;
  Resetting...&lt;br /&gt;
  &lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ## Booting image at 9f050000 ...&lt;br /&gt;
     Image Name:   MIPS OpenWrt Linux-3.18.23&lt;br /&gt;
     Created:      2015-12-01   0:03:51 UTC&lt;br /&gt;
     Image Type:   MIPS Linux Kernel Image (lzma compressed)&lt;br /&gt;
     Data Size:    1135619 Bytes =  1.1 MB&lt;br /&gt;
     Load Address: 80060000&lt;br /&gt;
     Entry Point:  80060000&lt;br /&gt;
     Verifying Checksum at 0x9f050040 ...OK&lt;br /&gt;
     Uncompressing Kernel Image ... OK&lt;br /&gt;
  &lt;br /&gt;
  Starting kernel ...&lt;br /&gt;
  &lt;br /&gt;
  [    0.000000] Linux version 3.18.23 (sudowrt-builder@build-test2) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.04 r47662) ) #2 Mon Nov 5&lt;br /&gt;
&lt;br /&gt;
After it reboots if you see the first line mention 'sudowrt-builder', the device is booting the SudoWRT firmware build.&lt;br /&gt;
&lt;br /&gt;
You can press ENTER once it is finished, and it should drop into the command line for the SudoWRT system.&lt;br /&gt;
&lt;br /&gt;
  [   25.650000] jffs2: Newly-erased block contained word 0xdeadc0de at offset 0x00000000&lt;br /&gt;
  [   25.660000] done.&lt;br /&gt;
  [   25.660000] jffs2: notice: (993) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and.&lt;br /&gt;
  &lt;br /&gt;
  BusyBox v1.23.2 (2015-11-30 18:48:50 EST) built-in shell (ash)&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
    ._______.___    ._______.______  ._____  .___    .___ .______  ._____  &lt;br /&gt;
    :_ ____/|   |   : .____/:_ _   \ :_ ___\ |   |   : __|:      \ :_ ___\ &lt;br /&gt;
    |   _/  |   |   | : _/\ |   |   ||   |___|   |   | : ||       ||   |___&lt;br /&gt;
    |   |   |   |/\ |   /  \| . |   ||   /  ||   |/\ |   ||   |   ||   /  |&lt;br /&gt;
    |_. |   |   /  \|_.: __/|. ____/ |. __  ||   /  \|   ||___|   ||. __  |&lt;br /&gt;
      :/    |______/   :/    :/       :/ |. ||______/|___|    |___| :/ |. |&lt;br /&gt;
      :                      :        :   :/                        :   :/ &lt;br /&gt;
                                          :                             : &lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   sudo mesh v0.2 (fledgling.extender)&lt;br /&gt;
                                based on OpenWRT 15.05 (Chaos Calmer)&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   &amp;quot;When your rage is choking you, it is best to say nothing.&amp;quot; &lt;br /&gt;
                                              - Octavia E. Butler, Fledgling&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
  &lt;br /&gt;
  root@sudomesh-node:/#&lt;br /&gt;
&lt;br /&gt;
== Extender Node Installation ==&lt;br /&gt;
=== Installation Order ===&lt;br /&gt;
#Flash home nodes and extender nodes&lt;br /&gt;
#Get on roof and determine which direction to face the extender nodes&lt;br /&gt;
#Install J-Pole&lt;br /&gt;
#Crimp end onto Ethernet cable&lt;br /&gt;
#Run Ethernet cable from j-pole down to location of home node (either through a soffit indoors or to an outdoor enclosure)&lt;br /&gt;
#Crimp other end of Ethernet cable and connect to home node via a POE adaptor&lt;br /&gt;
#Install extender node on J-Pole using zip-ties - check lights to make sure unit is powered up&lt;br /&gt;
#Walk around the neighborhood to check the signal&lt;br /&gt;
&lt;br /&gt;
=== Gear Checklist ===&lt;br /&gt;
	&lt;br /&gt;
Protective and personal gear&lt;br /&gt;
*Wear clothes you can get dirty and sturdy boots for roof walking&lt;br /&gt;
*Sunscreen&lt;br /&gt;
*Sunglasses&lt;br /&gt;
*Pocketknife (for cutting zip ties etc)&lt;br /&gt;
*Ladder&lt;br /&gt;
*Safety harness &amp;amp; rope in a bucket&lt;br /&gt;
*Smart phone (to check signal and take pictures)&lt;br /&gt;
Home node gear&lt;br /&gt;
*2 flashed Western Digital Mynet N600 Home Nodes&lt;br /&gt;
*paperclip (to reset equipment)&lt;br /&gt;
*Laptop (to configure equipment)&lt;br /&gt;
*Plastic outdoor enclosure for router (optional)&lt;br /&gt;
*Power Strip&lt;br /&gt;
J-Pole gear&lt;br /&gt;
*J-Pole&lt;br /&gt;
*Latex gloves (for dealing with roofing sealant)&lt;br /&gt;
*Roofing sealant&lt;br /&gt;
*Ratchet set - 10mm for small bolts, 13mm for large bolts&lt;br /&gt;
*Corldless Drill&lt;br /&gt;
*3/16&amp;quot; drill bit for J-pole bolts&lt;br /&gt;
*Steel One-Hole Conduit Straps (for holding Ethernet cable along eves)&lt;br /&gt;
*Screws for the Steel one-hole straps&lt;br /&gt;
Ethernet cable gear&lt;br /&gt;
*Ethernet Spool&lt;br /&gt;
*Ethernet Ends&lt;br /&gt;
*Ethernet Crimper&lt;br /&gt;
*Laminated card showing the Ethernet cable order&lt;br /&gt;
*Label Maker - so you can know which cable is which&lt;br /&gt;
Extender node gear&lt;br /&gt;
*Flashed Ubiquiti Nanostation M2 or M5 extender Node(s)&lt;br /&gt;
*Power over Ethernet (POE) adapters&lt;br /&gt;
*Zip Ties&lt;/div&gt;</summary>
		<author><name>Gcg</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=11077</id>
		<title>Mesh/Flashing extender nodes</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=11077"/>
		<updated>2018-03-03T03:38:12Z</updated>

		<summary type="html">&lt;p&gt;Gcg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;After following the [[Mesh/WalkThrough]], you are probably just an isolated node on the virtual People's Open Network. If you want to become part of the physical mesh, you are going to need to extend the signal from home node using what we call an extender node. An extender node is just a roof-mounted, directional antenna used to make point-to-point connections between two locations that have line-of-sight (LOS) to one another. Preparing an extender node generally consists to two stages, downgrading the proprietary AirOS firmware and flashing it with our custom build of OpenWrt.&lt;br /&gt;
&lt;br /&gt;
== Downgrading to earlier AirOS ==&lt;br /&gt;
&lt;br /&gt;
Typically, we use Ubiquiti equipment for our extender nodes. These come with a proprietary firmware called AirOS. Any extender node with version 5.6 of AirOS and above needs to be downgraded to a 5.5.XX version of AirOS version before you can flash it with OpenWRT. &lt;br /&gt;
&lt;br /&gt;
First check what version of AirOS your extender node is running, to do this, &lt;br /&gt;
&lt;br /&gt;
* Edit your network settings to reflect the following:&lt;br /&gt;
&lt;br /&gt;
* Network Manager Method: Manual&lt;br /&gt;
* IP Address: 192.168.1.10 (some devices will only accept from this IP)&lt;br /&gt;
* Subnet Mask: 255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0 (Or leave blank)&lt;br /&gt;
&lt;br /&gt;
You can also use the commands:&lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; down &lt;br /&gt;
  sudo ip addr add 192.168.1.10/24 dev &amp;lt;eth_interface&amp;gt; &lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; up&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;eth_interface&amp;gt; is the name of your ethernet interface found using `ip addr` (common names include eth0, enp3s0, ...)&lt;br /&gt;
&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the Power-over-Ethernet (PoE) power supply on the other end.&lt;br /&gt;
&lt;br /&gt;
* Plug another Ethernet cable into your extender node on one end and into the &amp;quot;POE&amp;quot; port of the PoE power supply on the other end.&lt;br /&gt;
&lt;br /&gt;
* Power on the extender node by plugging in the PoE and wait for it to boot (may take a few minutes).&lt;br /&gt;
&lt;br /&gt;
* Make sure you aren't connected to a wifi network that has an 192.168.1.x IP range. Disconnect/disable your wifi if necessary.&lt;br /&gt;
&lt;br /&gt;
* In a browser, go to the AirOS web interface at http://192.168.1.20&lt;br /&gt;
&lt;br /&gt;
* Log in using the credentials &lt;br /&gt;
** username: ubnt &lt;br /&gt;
** password: ubnt&lt;br /&gt;
&lt;br /&gt;
* Look at the Firmware information, it may say something like XM.v5.6.6.bin or XW.v5.6.6, based on this download the correct version of AirOS v5.5.10&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Version !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| XW v5.5.10 || http://dl.ubnt.com/firmwares/XW-fw/v5.5.10/XW.v5.5.10-u2.28005.150723.1358.bin&lt;br /&gt;
|-&lt;br /&gt;
| XM v5.5.10 || http://dl.ubnt.com/firmwares/XN-fw/v5.5.11/XM.v5.5.11.28002.150723.1344.bin&lt;br /&gt;
|-&lt;br /&gt;
| TI v5.5.11 || http://dl.ubnt.com/firmwares/XN-fw/v5.5.11/TI.v5.5.11.28002.150723.1518.bin&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Back in the web interface, go to the &amp;quot;System&amp;quot; tab.&lt;br /&gt;
* Click the &amp;quot;Browse&amp;quot; button next to the &amp;quot;Upload Firmware&amp;quot; box &lt;br /&gt;
* Select the firmware image you just downloaded&lt;br /&gt;
* Click &amp;quot;Upload&amp;quot;.&lt;br /&gt;
* After uploading you will be asked if you want to upgrade/install the firmware. Click yes/accept.&lt;br /&gt;
* Ignore any warnings about changing the default admin password, we're gonna overwrite it anyway&lt;br /&gt;
* Let the router finish flashing and wait for it to fully reboot.&lt;br /&gt;
* After it reboots, you may wanna go back into the web interface to make sure the downgrade was successful before proceeding.&lt;br /&gt;
&lt;br /&gt;
XM.v6.0.4 (v6.0.4) firmware version does not appear to be downgradable via the preceding method. Instead you will need to use command-line method as follows,&lt;br /&gt;
&lt;br /&gt;
   ssh-keygen -f &amp;quot;/home/yourusername/.ssh/known_hosts&amp;quot; -R 192.168.1.20&lt;br /&gt;
   scp &amp;lt;firmware_image.bin&amp;gt;  ubnt@192.168.1.20:/tmp/fwupdate.bin&lt;br /&gt;
   ssh ubnt@192.168.1.20  # password is &amp;quot;ubnt&amp;quot;&lt;br /&gt;
   /sbin/fwupdate -m&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Flash the Extender Node ==&lt;br /&gt;
Now that you have successfully downgraded the AirOS firmware, we can go ahead with flashing it with our custom build of OpenWRT. Start by downloading our firmware image for your model of extender node,&lt;br /&gt;
&lt;br /&gt;
The extender nodes that we currently support are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Notes !! OpenWRT Doc !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M2 and M5 || Newer models need [[#Downgrading_to_earlier_AirOS|AirOS downgrade]] before flashing!  Note that this will almost certainly require a USB to Serial connection (see below).|| [https://wiki.openwrt.org/toh/ubiquiti/nanostationm5 OpenWRT Docs] || firmware: [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin pre 2015 M5 versions and all M2 versions] or [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin 2015-2016 M5 versions]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation 2 || Not being built in current firmware release, Previous generation 802.11g (not the same as M2) || [https://wiki.openwrt.org/toh/ubiquiti/picostation2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ath25.extender-node/openwrt-ath25-ubnt2-pico2-squashfs.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation M2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostationm2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-bullet-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobeam M2 and M5 || NBEâ€‘M2â€‘13 and NBEâ€‘M5â€‘16 work but some (earlier?) NBEâ€‘M5â€‘19 have ethernet port issues. Newer models need [[#Downgrading_to_earlier_AirOS|AirOS downgrade]] before flashing! || [https://wiki.openwrt.org/toh/ubiquiti/nanobeam OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-loco-m-xw-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobridge M2 and M5 || || Same as pre-2015 Nanostation M || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Bullet M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/bullet OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-bullet-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|}&lt;br /&gt;
More firmware images can be found at http://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/&lt;br /&gt;
Also, if you are flashing for practice or testing, you can try using the dev-builds here, http://builds.sudomesh.org/dev-builds/, NOTE: USE WITH CARE, THESE PROVIDE SSH ACCESS WITH A DEFAULT PASSWORD AND SHOULD NOT BE USED FOR DEPLOYMENT NODES&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Configure your wired ethernet interface as instructed in the previous sections&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the Power-over-Ethernet (PoE) power supply on the other end.&lt;br /&gt;
&lt;br /&gt;
* Plug another Ethernet cable into your extender node on one end and into the &amp;quot;POE&amp;quot; port of the PoE power supply on the other end.&lt;br /&gt;
&lt;br /&gt;
* Push a pin into the reset hole and hold it.&lt;br /&gt;
* With the pin held down, plug in the power to the extender node, either by plugging in it's ethernet cable or by powering on the PoE.&lt;br /&gt;
&lt;br /&gt;
* Continue holding down the pin, watch the lights on the antenna - they will all flash together a few times and then flash back-and-forth in what is affectionately known as cha-cha mode (or more accurately, TFTP mode).&lt;br /&gt;
&lt;br /&gt;
* Once the lights on the antenna are flashing up and down, you can let go of the pin.&lt;br /&gt;
&lt;br /&gt;
* You should be able to ping the extender at 192.168.1.20.&lt;br /&gt;
&lt;br /&gt;
  $ ping 192.168.1.20&lt;br /&gt;
  PING 192.168.1.20 (192.168.1.20) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=1 ttl=64 time=1.54 ms&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=2 ttl=64 time=0.826 ms&lt;br /&gt;
&lt;br /&gt;
* Open a terminal (Linux or Mac?) and run the following:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/ubi-flasher&lt;br /&gt;
  cd ubi-flasher&lt;br /&gt;
  npm install&lt;br /&gt;
  ./flasher.js '&amp;lt;path to firmware&amp;gt;'&lt;br /&gt;
&lt;br /&gt;
* The terminal should return the following,&lt;br /&gt;
   The firmware has been successfully sent to the router. In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up). This means that the router is flashing itself with the new firmware. Once the router goes back to having only the power LED lit, the router has been successfully flashed.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Wait until the antenna has only the power LED lit and you're done.&lt;br /&gt;
&lt;br /&gt;
* Reconfigure your machine with the following static network configuration.&lt;br /&gt;
&lt;br /&gt;
* IP address: 172.22.0.10 &lt;br /&gt;
* Subnet mask:  255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0&lt;br /&gt;
&lt;br /&gt;
Or use the commands&lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; down &lt;br /&gt;
  sudo ip addr add 172.22.0.10/24 dev &amp;lt;eth_interface&amp;gt; &lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; up&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;eth_interface&amp;gt; is the name of your ethernet interface found using `ip addr` (common names include eth0, enp3s0, ...)&lt;br /&gt;
&lt;br /&gt;
See Network Configuration Guides: [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20Linux Linux] [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20MacOS%20X Mac]&lt;br /&gt;
&lt;br /&gt;
If you ping the extender node on 172.22.0.2 and it responds, it should be ready to connect to your home node on the appropriate wired Ethernet port.&lt;br /&gt;
&lt;br /&gt;
  $ ping 172.22.0.2&lt;br /&gt;
  PING 172.22.0.2 (172.22.0.2) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=1 ttl=64 time=0.617 ms&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=2 ttl=64 time=0.316 ms&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=3 ttl=64 time=0.398 ms&lt;br /&gt;
&lt;br /&gt;
Once configured with our firmware, an extender node will not start broadcasting an SSID until it is plugged into a home node because it must first get a mesh IP address.&lt;br /&gt;
&lt;br /&gt;
== Extender Detection ==&lt;br /&gt;
&lt;br /&gt;
Log into your home node via SSH, and tail &amp;lt;tt&amp;gt;/var/log/messages&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver: eth0.3: Physical disconnect detected&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver: Listening on interface eth0.3:&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver:   client IP: 100.64.37.3&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver:   client netmask 26&lt;br /&gt;
  Sun May  8 00:51:12 2016 daemon.debug notdhcpserver: eth0.3: Recieved HEARTBEAT for interface that hadn't been ACKed.&lt;br /&gt;
  ...&lt;br /&gt;
  Sun May  8 00:54:00 2016 daemon.debug notdhcpserver: eth0.3: Recieved HEARTBEAT for interface that hadn't been ACKed.&lt;br /&gt;
  Sun May  8 00:54:00 2016 daemon.info hostapd: priv5: STA 80:e6:50:0e:fe:6e WPA: group key handshake completed (RSN)&lt;br /&gt;
  Sun May  8 00:54:04 2016 daemon.debug notdhcpserver: eth0.2: Received lease request&lt;br /&gt;
  Sun May  8 00:54:04 2016 daemon.debug notdhcpserver: eth0.3: sending response (with ssl certificate)&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received ACK&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Running up hook script&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received redundant ACK&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received redundant ACK&lt;br /&gt;
&lt;br /&gt;
There should be a debug message in the log from notdhcpserver concerning the extender node.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== USB to Serial Connection ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you experience trouble flashing your device via the web interface, or via the TFTP image upload method, you'll want to establish a serial connection to troubleshoot further. Methods for flashing your device involving a serial connection may become more common as devices adopt configurations to lock down [http://www.networkworld.com/article/3038722/mobile-wireless/manufacturers-start-to-lock-down-wi-fi-router-firmware-thanks-fcc.html wi-fi router firmware] to prevent flashing.&lt;br /&gt;
&lt;br /&gt;
The following notes describe steps to interface with a Nanostation M5 (NSM5) via the serial interface. &lt;br /&gt;
&lt;br /&gt;
==== Order a USB to Serial Converter ====&lt;br /&gt;
&lt;br /&gt;
USB to serial converter devices exist at a cost of $4 - $8 online, with much lower pricing and longer delivery times if ordered from China. Search for &amp;quot;USB to UART TTL&amp;quot;, including &amp;quot;5 pin&amp;quot; in the search. Make sure the specifications do not mention anything other than 3.3 volts.&lt;br /&gt;
&lt;br /&gt;
Mac OS X users may need to install a device driver for their device. For example, for devices using the CP210X chip, you can download the [https://www.silabs.com/products/mcu/Pages/USBtoUARTBridgeVCPDrivers.aspx#mac CP210x USB to UART Bridge VCP Driver], which is made available as &amp;lt;tt&amp;gt;/dev/tty.SLAB_USBtoUART&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Connecting to Serial ====&lt;br /&gt;
&lt;br /&gt;
You will need to connect the following pins from the converter to the pins on the device.&lt;br /&gt;
&lt;br /&gt;
* Ground (GND)&lt;br /&gt;
* Serial Out (Transmit / TX)&lt;br /&gt;
* Serial In (Receive / RX)&lt;br /&gt;
&lt;br /&gt;
Begin by connecting the Ground of the converter to the Ground of the device. Next connect the Transmit/TX of the converter to the Receive/RX of the device, then connect the Receive/RX of the converter to the Transmit/TX of the device.&lt;br /&gt;
&lt;br /&gt;
Nanostation M5 (NSM5) Example:&lt;br /&gt;
&lt;br /&gt;
[[File:CP2102-usb-to-serial-converter.jpg|400px|KEDSUMÂ® CP2102 Module STC Download Cable USB 2.0 to TTL 6PIN Serial Converter For STC]]&lt;br /&gt;
&lt;br /&gt;
[[File:Ubiquity-NSM5-serial-connectors.jpg|400px|Ubiquiti Nanostation NSM5 - Serial pins with connections]]&lt;br /&gt;
&lt;br /&gt;
==== Serial Communications Program ====&lt;br /&gt;
&lt;br /&gt;
You need to install a serial communication program. Linux users can use Minicom.&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get install minicom&lt;br /&gt;
&lt;br /&gt;
Mac OS X users can as well&lt;br /&gt;
&lt;br /&gt;
  brew install minicom&lt;br /&gt;
&lt;br /&gt;
By default the Minicom program will attempt to use /dev/tty8, and will also attempt to initialize the device (expecting a modem) by default.&lt;br /&gt;
&lt;br /&gt;
  $ minicom&lt;br /&gt;
  minicom: cannot open /dev/tty8: Permission denied&lt;br /&gt;
&lt;br /&gt;
Run the program so that it starts the program on the USB converter that is connected by adding &amp;lt;tt&amp;gt;-D /dev/ttyUSB0&amp;lt;/tt&amp;gt;, and specify that it should skip initialization by adding &amp;lt;tt&amp;gt;-o&amp;lt;/tt&amp;gt;. Mac users may need to reference a different device (such as &amp;lt;tt&amp;gt;/dev/tty.SLAB_USBtoUART&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
You can also specify from the command line that it use the baud rate and '8N1' settings specified below by including &amp;lt;tt&amp;gt;-b 115200 -8&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
  sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
&lt;br /&gt;
In Minicom, CTRL-A to get settings, then Press O, to access settings. Mac users will need to discover the proper META key to use with their Terminal program. iTerm uses the 'ESC' key.&lt;br /&gt;
&lt;br /&gt;
Go to Serial Port Setup, use these settings:&lt;br /&gt;
&lt;br /&gt;
* Set the serial device (should be /dev/tty/USB0)&lt;br /&gt;
* Baud Rate (Bits Per Second): 115200&lt;br /&gt;
* Settings '8N1' (short hand for 8 bits, no parity, 1 stop bit)&lt;br /&gt;
* Turn off hardware and software flow control&lt;br /&gt;
&lt;br /&gt;
Reboot the device, and it will let you drop into a command line. You will then have to figure out how to enable the network from the boot loader (Uboot or Redboot) and transfer the firmware to the device to flash it.&lt;br /&gt;
&lt;br /&gt;
==== Interupting Boot ====&lt;br /&gt;
&lt;br /&gt;
The device will not detect the key you press unless Minicom is configured properly.&lt;br /&gt;
&lt;br /&gt;
* To access the Help screen, Press CTRL-A, then press Z.&lt;br /&gt;
* To access the configuration/settings, press CTRL-A, then press O.&lt;br /&gt;
&lt;br /&gt;
From the configuration window, select to view the 'Serial port setup'&lt;br /&gt;
&lt;br /&gt;
  $ sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
  Welcome to minicom 2.7&lt;br /&gt;
  &lt;br /&gt;
  OPTIONS: I18n &lt;br /&gt;
  Compiled on Jan  1 2014, 17:13:19.&lt;br /&gt;
  Port /dev/ttyUSB0, 21:47:56&lt;br /&gt;
  &lt;br /&gt;
  Press CTRL-A Z for help on special keys&lt;br /&gt;
  &lt;br /&gt;
              +-----[configuration]------+&lt;br /&gt;
              | Filenames and paths      |&lt;br /&gt;
              | File transfer protocols  |&lt;br /&gt;
              | Serial port setup        |&lt;br /&gt;
              | Modem and dialing        |&lt;br /&gt;
              | Screen and keyboard      |&lt;br /&gt;
              | Save setup as dfl        |&lt;br /&gt;
              | Save setup as..          |&lt;br /&gt;
              | Exit                     |&lt;br /&gt;
              +--------------------------+&lt;br /&gt;
  &lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
  | A -    Serial Device      : /dev/ttyUSB0                              |&lt;br /&gt;
  | B - Lockfile Location     : /var/lock                                 |&lt;br /&gt;
  | C -   Callin Program      :                                           |&lt;br /&gt;
  | D -  Callout Program      :                                           |&lt;br /&gt;
  | E -    Bps/Par/Bits       : 115200 8N1                                |&lt;br /&gt;
  | F - Hardware Flow Control : Yes                                       |&lt;br /&gt;
  | G - Software Flow Control : No                                        |&lt;br /&gt;
  |                                                                       |&lt;br /&gt;
  |    Change which setting?                                              |&lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
&lt;br /&gt;
By default the Hardware Flow Control will be enabled. Press 'F' to disable Hardware Flow Control. Press ENTER to exit the Serial port setup window, and then select EXIT to go back to the program.&lt;br /&gt;
&lt;br /&gt;
At this point plug in the Ethernet cable to the 'Main' Ethernet port, with the other end connected to the 'POE' port on the Power Over Ethernet adapter that came with the device. As the device boots up, you'll see output similar to the following.&lt;br /&gt;
&lt;br /&gt;
You'll need to make sure to press a key before it boots the default image.&lt;br /&gt;
&lt;br /&gt;
=== Picostation M2HP ===&lt;br /&gt;
&lt;br /&gt;
Insightful post on [https://www.strugglingcoder.info/index.php/tag/ubnt/ loading FreeBSD image] with help from serial communications. Could be useful with troubleshooting other models.&lt;br /&gt;
=== Nanostation M2 ===&lt;br /&gt;
==== Firmware check failure ====&lt;br /&gt;
&lt;br /&gt;
The following are simply notes. A solution to this issue is still pending.&lt;br /&gt;
&lt;br /&gt;
Flashing the Nanostation M2 (FCC ID: SWX-M2N) using the TFTP rescue mode will result in a Firmware check failure error.&lt;br /&gt;
&lt;br /&gt;
  $ tftp 192.168.1.20&lt;br /&gt;
  tftp&amp;gt; bin&lt;br /&gt;
  tftp&amp;gt; put openwrt-ar71xx-generic-om2p-squashfs-factory.bin&lt;br /&gt;
  Error code 2: Firmware check failed&lt;br /&gt;
  Sent 4609024 bytes in 12.6 seconds&lt;br /&gt;
&lt;br /&gt;
You can boot up the M2 with a serial connection similar to the instructions below concerning the Nanostation M5.&lt;br /&gt;
&lt;br /&gt;
  Board: Ubiquiti Networks XM board (rev 1.0 e012)&lt;br /&gt;
  DRAM:  32 MB&lt;br /&gt;
  Flash:  8 MB&lt;br /&gt;
  PCIe WLAN Module found (#1).&lt;br /&gt;
  Net:   eth0, eth1&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: |&lt;br /&gt;
  Receiving file from 192.168.1.10:35456&lt;br /&gt;
  Received 4609501 bytes&lt;br /&gt;
  Firmware check failed! (-2)&lt;br /&gt;
&lt;br /&gt;
The method outlined for the Nanostation M5 below doesn't work with the M2.&lt;br /&gt;
&lt;br /&gt;
Update the firmware to [http://dl.ubnt.com/firmwares/XN-fw/v5.6.4/XM.v5.6.4.28924.160331.1253.bin airOS for XM board firmware v5.6.4].&lt;br /&gt;
&lt;br /&gt;
Serial Connection:&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
&lt;br /&gt;
Terminal:&lt;br /&gt;
&lt;br /&gt;
  $ tftp 192.168.1.20&lt;br /&gt;
  tftp&amp;gt; bin&lt;br /&gt;
  tftp&amp;gt; put XM.v5.6.4.28924.160331.1253.bin&lt;br /&gt;
  Sent 7537129 bytes in 20.8 seconds&lt;br /&gt;
&lt;br /&gt;
Serial Connection:&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:55113&lt;br /&gt;
  Received 7537129 bytes&lt;br /&gt;
  Firmware Version: XM.ar7240.v5.6.4.28924.160331.1253&lt;br /&gt;
  Setting U-Boot environment variables&lt;br /&gt;
  Un-Protected 1 sectors&lt;br /&gt;
  Erasing Flash.... done&lt;br /&gt;
  Erased 1 sectors&lt;br /&gt;
  Writing to Flash... done&lt;br /&gt;
  Protected 1 sectors&lt;br /&gt;
  Will not overwrite u-boot partition! Skipped.&lt;br /&gt;
  Copying partition 'kernel' to flash memory:&lt;br /&gt;
          erasing range 0x9F050000..0x9F14FFFF: ................ done&lt;br /&gt;
  Erased 16 sectors&lt;br /&gt;
          writing to address 0x9f050000, length 0x00100000 ...&lt;br /&gt;
  Copying partition 'rootfs' to flash memory:&lt;br /&gt;
          erasing range 0x9F150000..0x9F74FFFF: .............................................................................................e&lt;br /&gt;
  Erased 96 sectors&lt;br /&gt;
          writing to address 0x9f150000, length 0x00600000 ...&lt;br /&gt;
  &lt;br /&gt;
  Firmware update complete.&lt;br /&gt;
  &lt;br /&gt;
  Resetting...&lt;br /&gt;
  &lt;br /&gt;
  U-Boot 1.1.4.2-s594 (Dec  5 2012 - 15:23:07)&lt;br /&gt;
  &lt;br /&gt;
  Board: Ubiquiti Networks XM board (rev 1.0 e012)&lt;br /&gt;
&lt;br /&gt;
Attempting to run the same process after performing an official firmware update doesn't resolve the issue.&lt;br /&gt;
&lt;br /&gt;
=== Nanostation M5 ===&lt;br /&gt;
&lt;br /&gt;
Official firmware from Ubiquity Nanostation M5 (NSM5)&lt;br /&gt;
&lt;br /&gt;
* [https://www.ubnt.com/download/airmax-m/nanostationm/default/airos-xw-board-firmware-v564 airOS for XW board firmware v5.6.4]&lt;br /&gt;
&lt;br /&gt;
==== Firmware check failure ====&lt;br /&gt;
&lt;br /&gt;
Flashing the Nanostation M5 (FCC ID: SWX-NSM5D) using the TFTP rescue mode will result in a Firmware check failure error.&lt;br /&gt;
&lt;br /&gt;
If you attempt to flash the extender and receive a 'Firmware check failed' error, then you have a version of the NSM5 that is protected from being flashed via the default TFTP method. You will need to obtain a serial to USB interface (USB to UART TTL Module Serial Converter, 5 pin) and use it to flash the firmware.&lt;br /&gt;
&lt;br /&gt;
   $ ./flasher.js openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin&lt;br /&gt;
   Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
   Connection timed out&lt;br /&gt;
   Sending openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
   [Error: (Server) Firmware check failed]&lt;br /&gt;
&lt;br /&gt;
When connected to the NSM5 via a serial connection, a similar error is displayed when attempting to load the SudoWRT firmware image.&lt;br /&gt;
&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Will reset device configuration (Reset button active after 10 seconds).&lt;br /&gt;
  Erasing sector 123..126&lt;br /&gt;
  &lt;br /&gt;
  First 0x7b last 0x7e sector size 0x10000&lt;br /&gt;
  .... done&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
  Receiving file from 192.168.1.10:49763&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware check failed! (1)&lt;br /&gt;
&lt;br /&gt;
===== Drop into U-Boot Command Prompt =====&lt;br /&gt;
&lt;br /&gt;
Connect a USB to Serial adapter to the correct pins of the NSM5, as shown above. Unplug the Ethernet cable from the device, and then plug it back in to provide Power Over Ethernet once again, resulting in a reboot of the device.&lt;br /&gt;
&lt;br /&gt;
During the boot process, press a key to during the boot process to make the [https://wiki.openwrt.org/doc/techref/bootloader/uboot U-Boot] bootloader to drop into a command line prompt.&lt;br /&gt;
&lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0&lt;br /&gt;
  ar7240&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Running TFTPd =====&lt;br /&gt;
&lt;br /&gt;
Although U-Boot can support two protocols for transfering files, kermit or y-modem, the bootloader does not support the &amp;lt;tt&amp;gt;loadb&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;loady&amp;lt;/tt&amp;gt;. Minicom only supports y-modem protocol.&lt;br /&gt;
&lt;br /&gt;
We do not have to resort to a direct serial file transfer however. The 'mtdparts' command that is used to define flash memory partitions can be used to reset the partition table to the defaults before running 'urescue' to start the TFTP server.&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; help mtdparts&lt;br /&gt;
  mtdparts &lt;br /&gt;
      - list partition table&lt;br /&gt;
  mtdparts delall&lt;br /&gt;
      - delete all partitions&lt;br /&gt;
  mtdparts del part-id&lt;br /&gt;
      - delete partition (e.g. part-id = nand0,1)&lt;br /&gt;
  mtdparts add &amp;lt;mtd-dev&amp;gt; &amp;lt;size&amp;gt;[@&amp;lt;offset&amp;gt;] [&amp;lt;name&amp;gt;] [ro]&lt;br /&gt;
      - add partition&lt;br /&gt;
  mtdparts default&lt;br /&gt;
      - reset partition table to defaults&lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
&lt;br /&gt;
In your other terminal window, run the ubi-flasher script.&lt;br /&gt;
&lt;br /&gt;
  $ ./flasher.js /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin&lt;br /&gt;
  Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
  Connection timed out&lt;br /&gt;
  Sending /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
  Firmware flashing begun!&lt;br /&gt;
  The firmware has been successfully sent to the router.&lt;br /&gt;
  In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up).&lt;br /&gt;
  This means that the router is flashing itself with the new firmware.&lt;br /&gt;
  Once the router goes back to having only the power LED lit, the router has been successfully flashed.&lt;br /&gt;
&lt;br /&gt;
In the terminal running Minicom you should see the firmware successfully flashing.&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:52289&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware Version: XW.ar934x.v6.0.0-OpenWrt-r47662&lt;br /&gt;
  Setting U-Boot environment variables&lt;br /&gt;
  Un-Protected 1 sectors&lt;br /&gt;
  Erasing Flash.... done&lt;br /&gt;
  Erased 1 sectors&lt;br /&gt;
  Writing to Flash... write addr: 9f040000&lt;br /&gt;
  done&lt;br /&gt;
  Protected 1 sectors&lt;br /&gt;
  Copying partition 'kernel' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x5 last 0x14 sector size 0x10000&lt;br /&gt;
  ................ done&lt;br /&gt;
  write addr: 9f050000&lt;br /&gt;
  Copying partition 'rootfs' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x15 last 0x6e sector size 0x10000&lt;br /&gt;
  .......................................................................................... done&lt;br /&gt;
  write addr: 9f150000&lt;br /&gt;
  &lt;br /&gt;
  Firmware update complete.&lt;br /&gt;
  &lt;br /&gt;
  Resetting...&lt;br /&gt;
  &lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ## Booting image at 9f050000 ...&lt;br /&gt;
     Image Name:   MIPS OpenWrt Linux-3.18.23&lt;br /&gt;
     Created:      2015-12-01   0:03:51 UTC&lt;br /&gt;
     Image Type:   MIPS Linux Kernel Image (lzma compressed)&lt;br /&gt;
     Data Size:    1135619 Bytes =  1.1 MB&lt;br /&gt;
     Load Address: 80060000&lt;br /&gt;
     Entry Point:  80060000&lt;br /&gt;
     Verifying Checksum at 0x9f050040 ...OK&lt;br /&gt;
     Uncompressing Kernel Image ... OK&lt;br /&gt;
  &lt;br /&gt;
  Starting kernel ...&lt;br /&gt;
  &lt;br /&gt;
  [    0.000000] Linux version 3.18.23 (sudowrt-builder@build-test2) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.04 r47662) ) #2 Mon Nov 5&lt;br /&gt;
&lt;br /&gt;
After it reboots if you see the first line mention 'sudowrt-builder', the device is booting the SudoWRT firmware build.&lt;br /&gt;
&lt;br /&gt;
You can press ENTER once it is finished, and it should drop into the command line for the SudoWRT system.&lt;br /&gt;
&lt;br /&gt;
  [   25.650000] jffs2: Newly-erased block contained word 0xdeadc0de at offset 0x00000000&lt;br /&gt;
  [   25.660000] done.&lt;br /&gt;
  [   25.660000] jffs2: notice: (993) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and.&lt;br /&gt;
  &lt;br /&gt;
  BusyBox v1.23.2 (2015-11-30 18:48:50 EST) built-in shell (ash)&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
    ._______.___    ._______.______  ._____  .___    .___ .______  ._____  &lt;br /&gt;
    :_ ____/|   |   : .____/:_ _   \ :_ ___\ |   |   : __|:      \ :_ ___\ &lt;br /&gt;
    |   _/  |   |   | : _/\ |   |   ||   |___|   |   | : ||       ||   |___&lt;br /&gt;
    |   |   |   |/\ |   /  \| . |   ||   /  ||   |/\ |   ||   |   ||   /  |&lt;br /&gt;
    |_. |   |   /  \|_.: __/|. ____/ |. __  ||   /  \|   ||___|   ||. __  |&lt;br /&gt;
      :/    |______/   :/    :/       :/ |. ||______/|___|    |___| :/ |. |&lt;br /&gt;
      :                      :        :   :/                        :   :/ &lt;br /&gt;
                                          :                             : &lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   sudo mesh v0.2 (fledgling.extender)&lt;br /&gt;
                                based on OpenWRT 15.05 (Chaos Calmer)&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   &amp;quot;When your rage is choking you, it is best to say nothing.&amp;quot; &lt;br /&gt;
                                              - Octavia E. Butler, Fledgling&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
  &lt;br /&gt;
  root@sudomesh-node:/#&lt;br /&gt;
&lt;br /&gt;
== Extender Node Installation ==&lt;br /&gt;
=== Installation Order ===&lt;br /&gt;
#Flash home nodes and extender nodes&lt;br /&gt;
#Get on roof and determine which direction to face the extender nodes&lt;br /&gt;
#Install J-Pole&lt;br /&gt;
#Crimp end onto Ethernet cable&lt;br /&gt;
#Run Ethernet cable from j-pole down to location of home node (either through a soffit indoors or to an outdoor enclosure)&lt;br /&gt;
#Crimp other end of Ethernet cable and connect to home node via a POE adaptor&lt;br /&gt;
#Install extender node on J-Pole using zip-ties - check lights to make sure unit is powered up&lt;br /&gt;
#Walk around the neighborhood to check the signal&lt;br /&gt;
&lt;br /&gt;
=== Gear Checklist ===&lt;br /&gt;
	&lt;br /&gt;
Protective and personal gear&lt;br /&gt;
*Wear clothes you can get dirty and sturdy boots for roof walking&lt;br /&gt;
*Sunscreen&lt;br /&gt;
*Sunglasses&lt;br /&gt;
*Pocketknife (for cutting zip ties etc)&lt;br /&gt;
*Ladder&lt;br /&gt;
*Safety harness &amp;amp; rope in a bucket&lt;br /&gt;
*Smart phone (to check signal and take pictures)&lt;br /&gt;
Home node gear&lt;br /&gt;
*2 flashed Western Digital Mynet N600 Home Nodes&lt;br /&gt;
*paperclip (to reset equipment)&lt;br /&gt;
*Laptop (to configure equipment)&lt;br /&gt;
*Plastic outdoor enclosure for router (optional)&lt;br /&gt;
*Power Strip&lt;br /&gt;
J-Pole gear&lt;br /&gt;
*J-Pole&lt;br /&gt;
*Latex gloves (for dealing with roofing sealant)&lt;br /&gt;
*Roofing sealant&lt;br /&gt;
*Ratchet set - 10mm for small bolts, 13mm for large bolts&lt;br /&gt;
*Corldless Drill&lt;br /&gt;
*3/16&amp;quot; drill bit for J-pole bolts&lt;br /&gt;
*Steel One-Hole Conduit Straps (for holding Ethernet cable along eves)&lt;br /&gt;
*Screws for the Steel one-hole straps&lt;br /&gt;
Ethernet cable gear&lt;br /&gt;
*Ethernet Spool&lt;br /&gt;
*Ethernet Ends&lt;br /&gt;
*Ethernet Crimper&lt;br /&gt;
*Laminated card showing the Ethernet cable order&lt;br /&gt;
*Label Maker - so you can know which cable is which&lt;br /&gt;
Extender node gear&lt;br /&gt;
*Flashed Ubiquiti Nanostation M2 or M5 extender Node(s)&lt;br /&gt;
*Power over Ethernet (POE) adapters&lt;br /&gt;
*Zip Ties&lt;/div&gt;</summary>
		<author><name>Gcg</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=11076</id>
		<title>Mesh/Flashing extender nodes</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=11076"/>
		<updated>2018-03-03T03:36:50Z</updated>

		<summary type="html">&lt;p&gt;Gcg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;After following the [[Mesh/WalkThrough]], you are probably just an isolated node on the virtual People's Open Network. If you want to become part of the physical mesh, you are going to need to extend the signal from home node using what we call an extender node. An extender node is just a roof-mounted, directional antenna used to make point-to-point connections between two locations that have line-of-sight (LOS) to one another. Preparing an extender node generally consists to two stages, downgrading the proprietary AirOS firmware and flashing it with our custom build of OpenWrt.&lt;br /&gt;
&lt;br /&gt;
== Downgrading to earlier AirOS ==&lt;br /&gt;
&lt;br /&gt;
Typically, we use Ubiquiti equipment for our extender nodes. These come with a proprietary firmware called AirOS. Any extender node with version 5.6 of AirOS and above needs to be downgraded to a 5.5.XX version of AirOS version before you can flash it with OpenWRT. &lt;br /&gt;
&lt;br /&gt;
First check what version of AirOS your extender node is running, to do this, &lt;br /&gt;
&lt;br /&gt;
* Edit your network settings to reflect the following:&lt;br /&gt;
&lt;br /&gt;
* Network Manager Method: Manual&lt;br /&gt;
* IP Address: 192.168.1.10 (some devices will only accept from this IP)&lt;br /&gt;
* Subnet Mask: 255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0 (Or leave blank)&lt;br /&gt;
&lt;br /&gt;
You can also use the commands:&lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; down &lt;br /&gt;
  sudo ip addr add 192.168.1.10/24 dev &amp;lt;eth_interface&amp;gt; &lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; up&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;eth_interface&amp;gt; is the name of your ethernet interface found using `ip addr` (common names include eth0, enp3s0, ...)&lt;br /&gt;
&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the Power-over-Ethernet (PoE) power supply on the other end.&lt;br /&gt;
&lt;br /&gt;
* Plug another Ethernet cable into your extender node on one end and into the &amp;quot;POE&amp;quot; port of the PoE power supply on the other end.&lt;br /&gt;
&lt;br /&gt;
* Power on the extender node by plugging in the PoE and wait for it to boot (may take a few minutes).&lt;br /&gt;
&lt;br /&gt;
* Make sure you aren't connected to a wifi network that has an 192.168.1.x IP range. Disconnect/disable your wifi if necessary.&lt;br /&gt;
&lt;br /&gt;
* In a browser, go to the AirOS web interface at http://192.168.1.20&lt;br /&gt;
&lt;br /&gt;
* Log in using the credentials &lt;br /&gt;
  username: ubnt &lt;br /&gt;
  password: ubnt&lt;br /&gt;
&lt;br /&gt;
* Look at the Firmware information, it may say something like XM.v5.6.6.bin or XW.v5.6.6, based on this download the correct version of AirOS v5.5.10&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Version !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| XW v5.5.10 || http://dl.ubnt.com/firmwares/XW-fw/v5.5.10/XW.v5.5.10-u2.28005.150723.1358.bin&lt;br /&gt;
|-&lt;br /&gt;
| XM v5.5.10 || http://dl.ubnt.com/firmwares/XN-fw/v5.5.11/XM.v5.5.11.28002.150723.1344.bin&lt;br /&gt;
|-&lt;br /&gt;
| TI v5.5.11 || http://dl.ubnt.com/firmwares/XN-fw/v5.5.11/TI.v5.5.11.28002.150723.1518.bin&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Back in the web interface, go to the &amp;quot;System&amp;quot; tab.&lt;br /&gt;
* Click the &amp;quot;Browse&amp;quot; button next to the &amp;quot;Upload Firmware&amp;quot; box &lt;br /&gt;
* Select the firmware image you just downloaded&lt;br /&gt;
* Click &amp;quot;Upload&amp;quot;.&lt;br /&gt;
* After uploading you will be asked if you want to upgrade/install the firmware. Click yes/accept.&lt;br /&gt;
* Ignore any warnings about changing the default admin password, we're gonna overwrite it anyway&lt;br /&gt;
* Let the router finish flashing and wait for it to fully reboot.&lt;br /&gt;
* After it reboots, you may wanna go back into the web interface to make sure the downgrade was successful before proceeding.&lt;br /&gt;
&lt;br /&gt;
XM.v6.0.4 (v6.0.4) firmware version does not appear to be downgradable via the preceding method. Instead you will need to use command-line method as follows,&lt;br /&gt;
&lt;br /&gt;
   ssh-keygen -f &amp;quot;/home/yourusername/.ssh/known_hosts&amp;quot; -R 192.168.1.20&lt;br /&gt;
   scp &amp;lt;firmware_image.bin&amp;gt;  ubnt@192.168.1.20:/tmp/fwupdate.bin&lt;br /&gt;
   ssh ubnt@192.168.1.20  # password is &amp;quot;ubnt&amp;quot;&lt;br /&gt;
   /sbin/fwupdate -m&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Flash the Extender Node ==&lt;br /&gt;
Now that you have successfully downgraded the AirOS firmware, we can go ahead with flashing it with our custom build of OpenWRT. Start by downloading our firmware image for your model of extender node,&lt;br /&gt;
&lt;br /&gt;
The extender nodes that we currently support are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Notes !! OpenWRT Doc !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M2 and M5 || Newer models need [[#Downgrading_to_earlier_AirOS|AirOS downgrade]] before flashing!  Note that this will almost certainly require a USB to Serial connection (see below).|| [https://wiki.openwrt.org/toh/ubiquiti/nanostationm5 OpenWRT Docs] || firmware: [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin pre 2015 M5 versions and all M2 versions] or [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin 2015-2016 M5 versions]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation 2 || Not being built in current firmware release, Previous generation 802.11g (not the same as M2) || [https://wiki.openwrt.org/toh/ubiquiti/picostation2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ath25.extender-node/openwrt-ath25-ubnt2-pico2-squashfs.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation M2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostationm2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-bullet-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobeam M2 and M5 || NBEâ€‘M2â€‘13 and NBEâ€‘M5â€‘16 work but some (earlier?) NBEâ€‘M5â€‘19 have ethernet port issues. Newer models need [[#Downgrading_to_earlier_AirOS|AirOS downgrade]] before flashing! || [https://wiki.openwrt.org/toh/ubiquiti/nanobeam OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-loco-m-xw-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobridge M2 and M5 || || Same as pre-2015 Nanostation M || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Bullet M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/bullet OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-bullet-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|}&lt;br /&gt;
More firmware images can be found at http://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/&lt;br /&gt;
Also, if you are flashing for practice or testing, you can try using the dev-builds here, http://builds.sudomesh.org/dev-builds/, NOTE: USE WITH CARE, THESE PROVIDE SSH ACCESS WITH A DEFAULT PASSWORD AND SHOULD NOT BE USED FOR DEPLOYMENT NODES&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Configure your wired ethernet interface as instructed in the previous sections&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the Power-over-Ethernet (PoE) power supply on the other end.&lt;br /&gt;
&lt;br /&gt;
* Plug another Ethernet cable into your extender node on one end and into the &amp;quot;POE&amp;quot; port of the PoE power supply on the other end.&lt;br /&gt;
&lt;br /&gt;
* Push a pin into the reset hole and hold it.&lt;br /&gt;
* With the pin held down, plug in the power to the extender node, either by plugging in it's ethernet cable or by powering on the PoE.&lt;br /&gt;
&lt;br /&gt;
* Continue holding down the pin, watch the lights on the antenna - they will all flash together a few times and then flash back-and-forth in what is affectionately known as cha-cha mode (or more accurately, TFTP mode).&lt;br /&gt;
&lt;br /&gt;
* Once the lights on the antenna are flashing up and down, you can let go of the pin.&lt;br /&gt;
&lt;br /&gt;
* You should be able to ping the extender at 192.168.1.20.&lt;br /&gt;
&lt;br /&gt;
  $ ping 192.168.1.20&lt;br /&gt;
  PING 192.168.1.20 (192.168.1.20) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=1 ttl=64 time=1.54 ms&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=2 ttl=64 time=0.826 ms&lt;br /&gt;
&lt;br /&gt;
* Open a terminal (Linux or Mac?) and run the following:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/ubi-flasher&lt;br /&gt;
  cd ubi-flasher&lt;br /&gt;
  npm install&lt;br /&gt;
  ./flasher.js '&amp;lt;path to firmware&amp;gt;'&lt;br /&gt;
&lt;br /&gt;
* The terminal should return the following,&lt;br /&gt;
   The firmware has been successfully sent to the router. In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up). This means that the router is flashing itself with the new firmware. Once the router goes back to having only the power LED lit, the router has been successfully flashed.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Wait until the antenna has only the power LED lit and you're done.&lt;br /&gt;
&lt;br /&gt;
* Reconfigure your machine with the following static network configuration.&lt;br /&gt;
&lt;br /&gt;
* IP address: 172.22.0.10 &lt;br /&gt;
* Subnet mask:  255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0&lt;br /&gt;
&lt;br /&gt;
Or use the commands&lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; down &lt;br /&gt;
  sudo ip addr add 172.22.0.10/24 dev &amp;lt;eth_interface&amp;gt; &lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; up&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;eth_interface&amp;gt; is the name of your ethernet interface found using `ip addr` (common names include eth0, enp3s0, ...)&lt;br /&gt;
&lt;br /&gt;
See Network Configuration Guides: [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20Linux Linux] [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20MacOS%20X Mac]&lt;br /&gt;
&lt;br /&gt;
If you ping the extender node on 172.22.0.2 and it responds, it should be ready to connect to your home node on the appropriate wired Ethernet port.&lt;br /&gt;
&lt;br /&gt;
  $ ping 172.22.0.2&lt;br /&gt;
  PING 172.22.0.2 (172.22.0.2) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=1 ttl=64 time=0.617 ms&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=2 ttl=64 time=0.316 ms&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=3 ttl=64 time=0.398 ms&lt;br /&gt;
&lt;br /&gt;
Once configured with our firmware, an extender node will not start broadcasting an SSID until it is plugged into a home node because it must first get a mesh IP address.&lt;br /&gt;
&lt;br /&gt;
== Extender Detection ==&lt;br /&gt;
&lt;br /&gt;
Log into your home node via SSH, and tail &amp;lt;tt&amp;gt;/var/log/messages&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver: eth0.3: Physical disconnect detected&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver: Listening on interface eth0.3:&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver:   client IP: 100.64.37.3&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver:   client netmask 26&lt;br /&gt;
  Sun May  8 00:51:12 2016 daemon.debug notdhcpserver: eth0.3: Recieved HEARTBEAT for interface that hadn't been ACKed.&lt;br /&gt;
  ...&lt;br /&gt;
  Sun May  8 00:54:00 2016 daemon.debug notdhcpserver: eth0.3: Recieved HEARTBEAT for interface that hadn't been ACKed.&lt;br /&gt;
  Sun May  8 00:54:00 2016 daemon.info hostapd: priv5: STA 80:e6:50:0e:fe:6e WPA: group key handshake completed (RSN)&lt;br /&gt;
  Sun May  8 00:54:04 2016 daemon.debug notdhcpserver: eth0.2: Received lease request&lt;br /&gt;
  Sun May  8 00:54:04 2016 daemon.debug notdhcpserver: eth0.3: sending response (with ssl certificate)&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received ACK&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Running up hook script&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received redundant ACK&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received redundant ACK&lt;br /&gt;
&lt;br /&gt;
There should be a debug message in the log from notdhcpserver concerning the extender node.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== USB to Serial Connection ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you experience trouble flashing your device via the web interface, or via the TFTP image upload method, you'll want to establish a serial connection to troubleshoot further. Methods for flashing your device involving a serial connection may become more common as devices adopt configurations to lock down [http://www.networkworld.com/article/3038722/mobile-wireless/manufacturers-start-to-lock-down-wi-fi-router-firmware-thanks-fcc.html wi-fi router firmware] to prevent flashing.&lt;br /&gt;
&lt;br /&gt;
The following notes describe steps to interface with a Nanostation M5 (NSM5) via the serial interface. &lt;br /&gt;
&lt;br /&gt;
==== Order a USB to Serial Converter ====&lt;br /&gt;
&lt;br /&gt;
USB to serial converter devices exist at a cost of $4 - $8 online, with much lower pricing and longer delivery times if ordered from China. Search for &amp;quot;USB to UART TTL&amp;quot;, including &amp;quot;5 pin&amp;quot; in the search. Make sure the specifications do not mention anything other than 3.3 volts.&lt;br /&gt;
&lt;br /&gt;
Mac OS X users may need to install a device driver for their device. For example, for devices using the CP210X chip, you can download the [https://www.silabs.com/products/mcu/Pages/USBtoUARTBridgeVCPDrivers.aspx#mac CP210x USB to UART Bridge VCP Driver], which is made available as &amp;lt;tt&amp;gt;/dev/tty.SLAB_USBtoUART&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Connecting to Serial ====&lt;br /&gt;
&lt;br /&gt;
You will need to connect the following pins from the converter to the pins on the device.&lt;br /&gt;
&lt;br /&gt;
* Ground (GND)&lt;br /&gt;
* Serial Out (Transmit / TX)&lt;br /&gt;
* Serial In (Receive / RX)&lt;br /&gt;
&lt;br /&gt;
Begin by connecting the Ground of the converter to the Ground of the device. Next connect the Transmit/TX of the converter to the Receive/RX of the device, then connect the Receive/RX of the converter to the Transmit/TX of the device.&lt;br /&gt;
&lt;br /&gt;
Nanostation M5 (NSM5) Example:&lt;br /&gt;
&lt;br /&gt;
[[File:CP2102-usb-to-serial-converter.jpg|400px|KEDSUMÂ® CP2102 Module STC Download Cable USB 2.0 to TTL 6PIN Serial Converter For STC]]&lt;br /&gt;
&lt;br /&gt;
[[File:Ubiquity-NSM5-serial-connectors.jpg|400px|Ubiquiti Nanostation NSM5 - Serial pins with connections]]&lt;br /&gt;
&lt;br /&gt;
==== Serial Communications Program ====&lt;br /&gt;
&lt;br /&gt;
You need to install a serial communication program. Linux users can use Minicom.&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get install minicom&lt;br /&gt;
&lt;br /&gt;
Mac OS X users can as well&lt;br /&gt;
&lt;br /&gt;
  brew install minicom&lt;br /&gt;
&lt;br /&gt;
By default the Minicom program will attempt to use /dev/tty8, and will also attempt to initialize the device (expecting a modem) by default.&lt;br /&gt;
&lt;br /&gt;
  $ minicom&lt;br /&gt;
  minicom: cannot open /dev/tty8: Permission denied&lt;br /&gt;
&lt;br /&gt;
Run the program so that it starts the program on the USB converter that is connected by adding &amp;lt;tt&amp;gt;-D /dev/ttyUSB0&amp;lt;/tt&amp;gt;, and specify that it should skip initialization by adding &amp;lt;tt&amp;gt;-o&amp;lt;/tt&amp;gt;. Mac users may need to reference a different device (such as &amp;lt;tt&amp;gt;/dev/tty.SLAB_USBtoUART&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
You can also specify from the command line that it use the baud rate and '8N1' settings specified below by including &amp;lt;tt&amp;gt;-b 115200 -8&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
  sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
&lt;br /&gt;
In Minicom, CTRL-A to get settings, then Press O, to access settings. Mac users will need to discover the proper META key to use with their Terminal program. iTerm uses the 'ESC' key.&lt;br /&gt;
&lt;br /&gt;
Go to Serial Port Setup, use these settings:&lt;br /&gt;
&lt;br /&gt;
* Set the serial device (should be /dev/tty/USB0)&lt;br /&gt;
* Baud Rate (Bits Per Second): 115200&lt;br /&gt;
* Settings '8N1' (short hand for 8 bits, no parity, 1 stop bit)&lt;br /&gt;
* Turn off hardware and software flow control&lt;br /&gt;
&lt;br /&gt;
Reboot the device, and it will let you drop into a command line. You will then have to figure out how to enable the network from the boot loader (Uboot or Redboot) and transfer the firmware to the device to flash it.&lt;br /&gt;
&lt;br /&gt;
==== Interupting Boot ====&lt;br /&gt;
&lt;br /&gt;
The device will not detect the key you press unless Minicom is configured properly.&lt;br /&gt;
&lt;br /&gt;
* To access the Help screen, Press CTRL-A, then press Z.&lt;br /&gt;
* To access the configuration/settings, press CTRL-A, then press O.&lt;br /&gt;
&lt;br /&gt;
From the configuration window, select to view the 'Serial port setup'&lt;br /&gt;
&lt;br /&gt;
  $ sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
  Welcome to minicom 2.7&lt;br /&gt;
  &lt;br /&gt;
  OPTIONS: I18n &lt;br /&gt;
  Compiled on Jan  1 2014, 17:13:19.&lt;br /&gt;
  Port /dev/ttyUSB0, 21:47:56&lt;br /&gt;
  &lt;br /&gt;
  Press CTRL-A Z for help on special keys&lt;br /&gt;
  &lt;br /&gt;
              +-----[configuration]------+&lt;br /&gt;
              | Filenames and paths      |&lt;br /&gt;
              | File transfer protocols  |&lt;br /&gt;
              | Serial port setup        |&lt;br /&gt;
              | Modem and dialing        |&lt;br /&gt;
              | Screen and keyboard      |&lt;br /&gt;
              | Save setup as dfl        |&lt;br /&gt;
              | Save setup as..          |&lt;br /&gt;
              | Exit                     |&lt;br /&gt;
              +--------------------------+&lt;br /&gt;
  &lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
  | A -    Serial Device      : /dev/ttyUSB0                              |&lt;br /&gt;
  | B - Lockfile Location     : /var/lock                                 |&lt;br /&gt;
  | C -   Callin Program      :                                           |&lt;br /&gt;
  | D -  Callout Program      :                                           |&lt;br /&gt;
  | E -    Bps/Par/Bits       : 115200 8N1                                |&lt;br /&gt;
  | F - Hardware Flow Control : Yes                                       |&lt;br /&gt;
  | G - Software Flow Control : No                                        |&lt;br /&gt;
  |                                                                       |&lt;br /&gt;
  |    Change which setting?                                              |&lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
&lt;br /&gt;
By default the Hardware Flow Control will be enabled. Press 'F' to disable Hardware Flow Control. Press ENTER to exit the Serial port setup window, and then select EXIT to go back to the program.&lt;br /&gt;
&lt;br /&gt;
At this point plug in the Ethernet cable to the 'Main' Ethernet port, with the other end connected to the 'POE' port on the Power Over Ethernet adapter that came with the device. As the device boots up, you'll see output similar to the following.&lt;br /&gt;
&lt;br /&gt;
You'll need to make sure to press a key before it boots the default image.&lt;br /&gt;
&lt;br /&gt;
=== Picostation M2HP ===&lt;br /&gt;
&lt;br /&gt;
Insightful post on [https://www.strugglingcoder.info/index.php/tag/ubnt/ loading FreeBSD image] with help from serial communications. Could be useful with troubleshooting other models.&lt;br /&gt;
=== Nanostation M2 ===&lt;br /&gt;
==== Firmware check failure ====&lt;br /&gt;
&lt;br /&gt;
The following are simply notes. A solution to this issue is still pending.&lt;br /&gt;
&lt;br /&gt;
Flashing the Nanostation M2 (FCC ID: SWX-M2N) using the TFTP rescue mode will result in a Firmware check failure error.&lt;br /&gt;
&lt;br /&gt;
  $ tftp 192.168.1.20&lt;br /&gt;
  tftp&amp;gt; bin&lt;br /&gt;
  tftp&amp;gt; put openwrt-ar71xx-generic-om2p-squashfs-factory.bin&lt;br /&gt;
  Error code 2: Firmware check failed&lt;br /&gt;
  Sent 4609024 bytes in 12.6 seconds&lt;br /&gt;
&lt;br /&gt;
You can boot up the M2 with a serial connection similar to the instructions below concerning the Nanostation M5.&lt;br /&gt;
&lt;br /&gt;
  Board: Ubiquiti Networks XM board (rev 1.0 e012)&lt;br /&gt;
  DRAM:  32 MB&lt;br /&gt;
  Flash:  8 MB&lt;br /&gt;
  PCIe WLAN Module found (#1).&lt;br /&gt;
  Net:   eth0, eth1&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: |&lt;br /&gt;
  Receiving file from 192.168.1.10:35456&lt;br /&gt;
  Received 4609501 bytes&lt;br /&gt;
  Firmware check failed! (-2)&lt;br /&gt;
&lt;br /&gt;
The method outlined for the Nanostation M5 below doesn't work with the M2.&lt;br /&gt;
&lt;br /&gt;
Update the firmware to [http://dl.ubnt.com/firmwares/XN-fw/v5.6.4/XM.v5.6.4.28924.160331.1253.bin airOS for XM board firmware v5.6.4].&lt;br /&gt;
&lt;br /&gt;
Serial Connection:&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
&lt;br /&gt;
Terminal:&lt;br /&gt;
&lt;br /&gt;
  $ tftp 192.168.1.20&lt;br /&gt;
  tftp&amp;gt; bin&lt;br /&gt;
  tftp&amp;gt; put XM.v5.6.4.28924.160331.1253.bin&lt;br /&gt;
  Sent 7537129 bytes in 20.8 seconds&lt;br /&gt;
&lt;br /&gt;
Serial Connection:&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:55113&lt;br /&gt;
  Received 7537129 bytes&lt;br /&gt;
  Firmware Version: XM.ar7240.v5.6.4.28924.160331.1253&lt;br /&gt;
  Setting U-Boot environment variables&lt;br /&gt;
  Un-Protected 1 sectors&lt;br /&gt;
  Erasing Flash.... done&lt;br /&gt;
  Erased 1 sectors&lt;br /&gt;
  Writing to Flash... done&lt;br /&gt;
  Protected 1 sectors&lt;br /&gt;
  Will not overwrite u-boot partition! Skipped.&lt;br /&gt;
  Copying partition 'kernel' to flash memory:&lt;br /&gt;
          erasing range 0x9F050000..0x9F14FFFF: ................ done&lt;br /&gt;
  Erased 16 sectors&lt;br /&gt;
          writing to address 0x9f050000, length 0x00100000 ...&lt;br /&gt;
  Copying partition 'rootfs' to flash memory:&lt;br /&gt;
          erasing range 0x9F150000..0x9F74FFFF: .............................................................................................e&lt;br /&gt;
  Erased 96 sectors&lt;br /&gt;
          writing to address 0x9f150000, length 0x00600000 ...&lt;br /&gt;
  &lt;br /&gt;
  Firmware update complete.&lt;br /&gt;
  &lt;br /&gt;
  Resetting...&lt;br /&gt;
  &lt;br /&gt;
  U-Boot 1.1.4.2-s594 (Dec  5 2012 - 15:23:07)&lt;br /&gt;
  &lt;br /&gt;
  Board: Ubiquiti Networks XM board (rev 1.0 e012)&lt;br /&gt;
&lt;br /&gt;
Attempting to run the same process after performing an official firmware update doesn't resolve the issue.&lt;br /&gt;
&lt;br /&gt;
=== Nanostation M5 ===&lt;br /&gt;
&lt;br /&gt;
Official firmware from Ubiquity Nanostation M5 (NSM5)&lt;br /&gt;
&lt;br /&gt;
* [https://www.ubnt.com/download/airmax-m/nanostationm/default/airos-xw-board-firmware-v564 airOS for XW board firmware v5.6.4]&lt;br /&gt;
&lt;br /&gt;
==== Firmware check failure ====&lt;br /&gt;
&lt;br /&gt;
Flashing the Nanostation M5 (FCC ID: SWX-NSM5D) using the TFTP rescue mode will result in a Firmware check failure error.&lt;br /&gt;
&lt;br /&gt;
If you attempt to flash the extender and receive a 'Firmware check failed' error, then you have a version of the NSM5 that is protected from being flashed via the default TFTP method. You will need to obtain a serial to USB interface (USB to UART TTL Module Serial Converter, 5 pin) and use it to flash the firmware.&lt;br /&gt;
&lt;br /&gt;
   $ ./flasher.js openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin&lt;br /&gt;
   Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
   Connection timed out&lt;br /&gt;
   Sending openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
   [Error: (Server) Firmware check failed]&lt;br /&gt;
&lt;br /&gt;
When connected to the NSM5 via a serial connection, a similar error is displayed when attempting to load the SudoWRT firmware image.&lt;br /&gt;
&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Will reset device configuration (Reset button active after 10 seconds).&lt;br /&gt;
  Erasing sector 123..126&lt;br /&gt;
  &lt;br /&gt;
  First 0x7b last 0x7e sector size 0x10000&lt;br /&gt;
  .... done&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
  Receiving file from 192.168.1.10:49763&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware check failed! (1)&lt;br /&gt;
&lt;br /&gt;
===== Drop into U-Boot Command Prompt =====&lt;br /&gt;
&lt;br /&gt;
Connect a USB to Serial adapter to the correct pins of the NSM5, as shown above. Unplug the Ethernet cable from the device, and then plug it back in to provide Power Over Ethernet once again, resulting in a reboot of the device.&lt;br /&gt;
&lt;br /&gt;
During the boot process, press a key to during the boot process to make the [https://wiki.openwrt.org/doc/techref/bootloader/uboot U-Boot] bootloader to drop into a command line prompt.&lt;br /&gt;
&lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0&lt;br /&gt;
  ar7240&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Running TFTPd =====&lt;br /&gt;
&lt;br /&gt;
Although U-Boot can support two protocols for transfering files, kermit or y-modem, the bootloader does not support the &amp;lt;tt&amp;gt;loadb&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;loady&amp;lt;/tt&amp;gt;. Minicom only supports y-modem protocol.&lt;br /&gt;
&lt;br /&gt;
We do not have to resort to a direct serial file transfer however. The 'mtdparts' command that is used to define flash memory partitions can be used to reset the partition table to the defaults before running 'urescue' to start the TFTP server.&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; help mtdparts&lt;br /&gt;
  mtdparts &lt;br /&gt;
      - list partition table&lt;br /&gt;
  mtdparts delall&lt;br /&gt;
      - delete all partitions&lt;br /&gt;
  mtdparts del part-id&lt;br /&gt;
      - delete partition (e.g. part-id = nand0,1)&lt;br /&gt;
  mtdparts add &amp;lt;mtd-dev&amp;gt; &amp;lt;size&amp;gt;[@&amp;lt;offset&amp;gt;] [&amp;lt;name&amp;gt;] [ro]&lt;br /&gt;
      - add partition&lt;br /&gt;
  mtdparts default&lt;br /&gt;
      - reset partition table to defaults&lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
&lt;br /&gt;
In your other terminal window, run the ubi-flasher script.&lt;br /&gt;
&lt;br /&gt;
  $ ./flasher.js /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin&lt;br /&gt;
  Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
  Connection timed out&lt;br /&gt;
  Sending /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
  Firmware flashing begun!&lt;br /&gt;
  The firmware has been successfully sent to the router.&lt;br /&gt;
  In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up).&lt;br /&gt;
  This means that the router is flashing itself with the new firmware.&lt;br /&gt;
  Once the router goes back to having only the power LED lit, the router has been successfully flashed.&lt;br /&gt;
&lt;br /&gt;
In the terminal running Minicom you should see the firmware successfully flashing.&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:52289&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware Version: XW.ar934x.v6.0.0-OpenWrt-r47662&lt;br /&gt;
  Setting U-Boot environment variables&lt;br /&gt;
  Un-Protected 1 sectors&lt;br /&gt;
  Erasing Flash.... done&lt;br /&gt;
  Erased 1 sectors&lt;br /&gt;
  Writing to Flash... write addr: 9f040000&lt;br /&gt;
  done&lt;br /&gt;
  Protected 1 sectors&lt;br /&gt;
  Copying partition 'kernel' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x5 last 0x14 sector size 0x10000&lt;br /&gt;
  ................ done&lt;br /&gt;
  write addr: 9f050000&lt;br /&gt;
  Copying partition 'rootfs' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x15 last 0x6e sector size 0x10000&lt;br /&gt;
  .......................................................................................... done&lt;br /&gt;
  write addr: 9f150000&lt;br /&gt;
  &lt;br /&gt;
  Firmware update complete.&lt;br /&gt;
  &lt;br /&gt;
  Resetting...&lt;br /&gt;
  &lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ## Booting image at 9f050000 ...&lt;br /&gt;
     Image Name:   MIPS OpenWrt Linux-3.18.23&lt;br /&gt;
     Created:      2015-12-01   0:03:51 UTC&lt;br /&gt;
     Image Type:   MIPS Linux Kernel Image (lzma compressed)&lt;br /&gt;
     Data Size:    1135619 Bytes =  1.1 MB&lt;br /&gt;
     Load Address: 80060000&lt;br /&gt;
     Entry Point:  80060000&lt;br /&gt;
     Verifying Checksum at 0x9f050040 ...OK&lt;br /&gt;
     Uncompressing Kernel Image ... OK&lt;br /&gt;
  &lt;br /&gt;
  Starting kernel ...&lt;br /&gt;
  &lt;br /&gt;
  [    0.000000] Linux version 3.18.23 (sudowrt-builder@build-test2) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.04 r47662) ) #2 Mon Nov 5&lt;br /&gt;
&lt;br /&gt;
After it reboots if you see the first line mention 'sudowrt-builder', the device is booting the SudoWRT firmware build.&lt;br /&gt;
&lt;br /&gt;
You can press ENTER once it is finished, and it should drop into the command line for the SudoWRT system.&lt;br /&gt;
&lt;br /&gt;
  [   25.650000] jffs2: Newly-erased block contained word 0xdeadc0de at offset 0x00000000&lt;br /&gt;
  [   25.660000] done.&lt;br /&gt;
  [   25.660000] jffs2: notice: (993) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and.&lt;br /&gt;
  &lt;br /&gt;
  BusyBox v1.23.2 (2015-11-30 18:48:50 EST) built-in shell (ash)&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
    ._______.___    ._______.______  ._____  .___    .___ .______  ._____  &lt;br /&gt;
    :_ ____/|   |   : .____/:_ _   \ :_ ___\ |   |   : __|:      \ :_ ___\ &lt;br /&gt;
    |   _/  |   |   | : _/\ |   |   ||   |___|   |   | : ||       ||   |___&lt;br /&gt;
    |   |   |   |/\ |   /  \| . |   ||   /  ||   |/\ |   ||   |   ||   /  |&lt;br /&gt;
    |_. |   |   /  \|_.: __/|. ____/ |. __  ||   /  \|   ||___|   ||. __  |&lt;br /&gt;
      :/    |______/   :/    :/       :/ |. ||______/|___|    |___| :/ |. |&lt;br /&gt;
      :                      :        :   :/                        :   :/ &lt;br /&gt;
                                          :                             : &lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   sudo mesh v0.2 (fledgling.extender)&lt;br /&gt;
                                based on OpenWRT 15.05 (Chaos Calmer)&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   &amp;quot;When your rage is choking you, it is best to say nothing.&amp;quot; &lt;br /&gt;
                                              - Octavia E. Butler, Fledgling&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
  &lt;br /&gt;
  root@sudomesh-node:/#&lt;br /&gt;
&lt;br /&gt;
== Extender Node Installation ==&lt;br /&gt;
=== Installation Order ===&lt;br /&gt;
#Flash home nodes and extender nodes&lt;br /&gt;
#Get on roof and determine which direction to face the extender nodes&lt;br /&gt;
#Install J-Pole&lt;br /&gt;
#Crimp end onto Ethernet cable&lt;br /&gt;
#Run Ethernet cable from j-pole down to location of home node (either through a soffit indoors or to an outdoor enclosure)&lt;br /&gt;
#Crimp other end of Ethernet cable and connect to home node via a POE adaptor&lt;br /&gt;
#Install extender node on J-Pole using zip-ties - check lights to make sure unit is powered up&lt;br /&gt;
#Walk around the neighborhood to check the signal&lt;br /&gt;
&lt;br /&gt;
=== Gear Checklist ===&lt;br /&gt;
	&lt;br /&gt;
Protective and personal gear&lt;br /&gt;
*Wear clothes you can get dirty and sturdy boots for roof walking&lt;br /&gt;
*Sunscreen&lt;br /&gt;
*Sunglasses&lt;br /&gt;
*Pocketknife (for cutting zip ties etc)&lt;br /&gt;
*Ladder&lt;br /&gt;
*Safety harness &amp;amp; rope in a bucket&lt;br /&gt;
*Smart phone (to check signal and take pictures)&lt;br /&gt;
Home node gear&lt;br /&gt;
*2 flashed Western Digital Mynet N600 Home Nodes&lt;br /&gt;
*paperclip (to reset equipment)&lt;br /&gt;
*Laptop (to configure equipment)&lt;br /&gt;
*Plastic outdoor enclosure for router (optional)&lt;br /&gt;
*Power Strip&lt;br /&gt;
J-Pole gear&lt;br /&gt;
*J-Pole&lt;br /&gt;
*Latex gloves (for dealing with roofing sealant)&lt;br /&gt;
*Roofing sealant&lt;br /&gt;
*Ratchet set - 10mm for small bolts, 13mm for large bolts&lt;br /&gt;
*Corldless Drill&lt;br /&gt;
*3/16&amp;quot; drill bit for J-pole bolts&lt;br /&gt;
*Steel One-Hole Conduit Straps (for holding Ethernet cable along eves)&lt;br /&gt;
*Screws for the Steel one-hole straps&lt;br /&gt;
Ethernet cable gear&lt;br /&gt;
*Ethernet Spool&lt;br /&gt;
*Ethernet Ends&lt;br /&gt;
*Ethernet Crimper&lt;br /&gt;
*Laminated card showing the Ethernet cable order&lt;br /&gt;
*Label Maker - so you can know which cable is which&lt;br /&gt;
Extender node gear&lt;br /&gt;
*Flashed Ubiquiti Nanostation M2 or M5 extender Node(s)&lt;br /&gt;
*Power over Ethernet (POE) adapters&lt;br /&gt;
*Zip Ties&lt;/div&gt;</summary>
		<author><name>Gcg</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=11075</id>
		<title>Mesh/Flashing extender nodes</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=11075"/>
		<updated>2018-03-03T03:36:32Z</updated>

		<summary type="html">&lt;p&gt;Gcg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;After following the [Mesh/WalkThrough], you are probably just an isolated node on the virtual People's Open Network. If you want to become part of the physical mesh, you are going to need to extend the signal from home node using what we call an extender node. An extender node is just a roof-mounted, directional antenna used to make point-to-point connections between two locations that have line-of-sight (LOS) to one another. Preparing an extender node generally consists to two stages, downgrading the proprietary AirOS firmware and flashing it with our custom build of OpenWrt.&lt;br /&gt;
&lt;br /&gt;
== Downgrading to earlier AirOS ==&lt;br /&gt;
&lt;br /&gt;
Typically, we use Ubiquiti equipment for our extender nodes. These come with a proprietary firmware called AirOS. Any extender node with version 5.6 of AirOS and above needs to be downgraded to a 5.5.XX version of AirOS version before you can flash it with OpenWRT. &lt;br /&gt;
&lt;br /&gt;
First check what version of AirOS your extender node is running, to do this, &lt;br /&gt;
&lt;br /&gt;
* Edit your network settings to reflect the following:&lt;br /&gt;
&lt;br /&gt;
* Network Manager Method: Manual&lt;br /&gt;
* IP Address: 192.168.1.10 (some devices will only accept from this IP)&lt;br /&gt;
* Subnet Mask: 255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0 (Or leave blank)&lt;br /&gt;
&lt;br /&gt;
You can also use the commands:&lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; down &lt;br /&gt;
  sudo ip addr add 192.168.1.10/24 dev &amp;lt;eth_interface&amp;gt; &lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; up&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;eth_interface&amp;gt; is the name of your ethernet interface found using `ip addr` (common names include eth0, enp3s0, ...)&lt;br /&gt;
&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the Power-over-Ethernet (PoE) power supply on the other end.&lt;br /&gt;
&lt;br /&gt;
* Plug another Ethernet cable into your extender node on one end and into the &amp;quot;POE&amp;quot; port of the PoE power supply on the other end.&lt;br /&gt;
&lt;br /&gt;
* Power on the extender node by plugging in the PoE and wait for it to boot (may take a few minutes).&lt;br /&gt;
&lt;br /&gt;
* Make sure you aren't connected to a wifi network that has an 192.168.1.x IP range. Disconnect/disable your wifi if necessary.&lt;br /&gt;
&lt;br /&gt;
* In a browser, go to the AirOS web interface at http://192.168.1.20&lt;br /&gt;
&lt;br /&gt;
* Log in using the credentials &lt;br /&gt;
  username: ubnt &lt;br /&gt;
  password: ubnt&lt;br /&gt;
&lt;br /&gt;
* Look at the Firmware information, it may say something like XM.v5.6.6.bin or XW.v5.6.6, based on this download the correct version of AirOS v5.5.10&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Version !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| XW v5.5.10 || http://dl.ubnt.com/firmwares/XW-fw/v5.5.10/XW.v5.5.10-u2.28005.150723.1358.bin&lt;br /&gt;
|-&lt;br /&gt;
| XM v5.5.10 || http://dl.ubnt.com/firmwares/XN-fw/v5.5.11/XM.v5.5.11.28002.150723.1344.bin&lt;br /&gt;
|-&lt;br /&gt;
| TI v5.5.11 || http://dl.ubnt.com/firmwares/XN-fw/v5.5.11/TI.v5.5.11.28002.150723.1518.bin&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Back in the web interface, go to the &amp;quot;System&amp;quot; tab.&lt;br /&gt;
* Click the &amp;quot;Browse&amp;quot; button next to the &amp;quot;Upload Firmware&amp;quot; box &lt;br /&gt;
* Select the firmware image you just downloaded&lt;br /&gt;
* Click &amp;quot;Upload&amp;quot;.&lt;br /&gt;
* After uploading you will be asked if you want to upgrade/install the firmware. Click yes/accept.&lt;br /&gt;
* Ignore any warnings about changing the default admin password, we're gonna overwrite it anyway&lt;br /&gt;
* Let the router finish flashing and wait for it to fully reboot.&lt;br /&gt;
* After it reboots, you may wanna go back into the web interface to make sure the downgrade was successful before proceeding.&lt;br /&gt;
&lt;br /&gt;
XM.v6.0.4 (v6.0.4) firmware version does not appear to be downgradable via the preceding method. Instead you will need to use command-line method as follows,&lt;br /&gt;
&lt;br /&gt;
   ssh-keygen -f &amp;quot;/home/yourusername/.ssh/known_hosts&amp;quot; -R 192.168.1.20&lt;br /&gt;
   scp &amp;lt;firmware_image.bin&amp;gt;  ubnt@192.168.1.20:/tmp/fwupdate.bin&lt;br /&gt;
   ssh ubnt@192.168.1.20  # password is &amp;quot;ubnt&amp;quot;&lt;br /&gt;
   /sbin/fwupdate -m&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Flash the Extender Node ==&lt;br /&gt;
Now that you have successfully downgraded the AirOS firmware, we can go ahead with flashing it with our custom build of OpenWRT. Start by downloading our firmware image for your model of extender node,&lt;br /&gt;
&lt;br /&gt;
The extender nodes that we currently support are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Notes !! OpenWRT Doc !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M2 and M5 || Newer models need [[#Downgrading_to_earlier_AirOS|AirOS downgrade]] before flashing!  Note that this will almost certainly require a USB to Serial connection (see below).|| [https://wiki.openwrt.org/toh/ubiquiti/nanostationm5 OpenWRT Docs] || firmware: [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin pre 2015 M5 versions and all M2 versions] or [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin 2015-2016 M5 versions]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation 2 || Not being built in current firmware release, Previous generation 802.11g (not the same as M2) || [https://wiki.openwrt.org/toh/ubiquiti/picostation2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ath25.extender-node/openwrt-ath25-ubnt2-pico2-squashfs.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation M2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostationm2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-bullet-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobeam M2 and M5 || NBEâ€‘M2â€‘13 and NBEâ€‘M5â€‘16 work but some (earlier?) NBEâ€‘M5â€‘19 have ethernet port issues. Newer models need [[#Downgrading_to_earlier_AirOS|AirOS downgrade]] before flashing! || [https://wiki.openwrt.org/toh/ubiquiti/nanobeam OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-loco-m-xw-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobridge M2 and M5 || || Same as pre-2015 Nanostation M || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Bullet M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/bullet OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-bullet-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|}&lt;br /&gt;
More firmware images can be found at http://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/&lt;br /&gt;
Also, if you are flashing for practice or testing, you can try using the dev-builds here, http://builds.sudomesh.org/dev-builds/, NOTE: USE WITH CARE, THESE PROVIDE SSH ACCESS WITH A DEFAULT PASSWORD AND SHOULD NOT BE USED FOR DEPLOYMENT NODES&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Configure your wired ethernet interface as instructed in the previous sections&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the Power-over-Ethernet (PoE) power supply on the other end.&lt;br /&gt;
&lt;br /&gt;
* Plug another Ethernet cable into your extender node on one end and into the &amp;quot;POE&amp;quot; port of the PoE power supply on the other end.&lt;br /&gt;
&lt;br /&gt;
* Push a pin into the reset hole and hold it.&lt;br /&gt;
* With the pin held down, plug in the power to the extender node, either by plugging in it's ethernet cable or by powering on the PoE.&lt;br /&gt;
&lt;br /&gt;
* Continue holding down the pin, watch the lights on the antenna - they will all flash together a few times and then flash back-and-forth in what is affectionately known as cha-cha mode (or more accurately, TFTP mode).&lt;br /&gt;
&lt;br /&gt;
* Once the lights on the antenna are flashing up and down, you can let go of the pin.&lt;br /&gt;
&lt;br /&gt;
* You should be able to ping the extender at 192.168.1.20.&lt;br /&gt;
&lt;br /&gt;
  $ ping 192.168.1.20&lt;br /&gt;
  PING 192.168.1.20 (192.168.1.20) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=1 ttl=64 time=1.54 ms&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=2 ttl=64 time=0.826 ms&lt;br /&gt;
&lt;br /&gt;
* Open a terminal (Linux or Mac?) and run the following:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/ubi-flasher&lt;br /&gt;
  cd ubi-flasher&lt;br /&gt;
  npm install&lt;br /&gt;
  ./flasher.js '&amp;lt;path to firmware&amp;gt;'&lt;br /&gt;
&lt;br /&gt;
* The terminal should return the following,&lt;br /&gt;
   The firmware has been successfully sent to the router. In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up). This means that the router is flashing itself with the new firmware. Once the router goes back to having only the power LED lit, the router has been successfully flashed.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Wait until the antenna has only the power LED lit and you're done.&lt;br /&gt;
&lt;br /&gt;
* Reconfigure your machine with the following static network configuration.&lt;br /&gt;
&lt;br /&gt;
* IP address: 172.22.0.10 &lt;br /&gt;
* Subnet mask:  255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0&lt;br /&gt;
&lt;br /&gt;
Or use the commands&lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; down &lt;br /&gt;
  sudo ip addr add 172.22.0.10/24 dev &amp;lt;eth_interface&amp;gt; &lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; up&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;eth_interface&amp;gt; is the name of your ethernet interface found using `ip addr` (common names include eth0, enp3s0, ...)&lt;br /&gt;
&lt;br /&gt;
See Network Configuration Guides: [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20Linux Linux] [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20MacOS%20X Mac]&lt;br /&gt;
&lt;br /&gt;
If you ping the extender node on 172.22.0.2 and it responds, it should be ready to connect to your home node on the appropriate wired Ethernet port.&lt;br /&gt;
&lt;br /&gt;
  $ ping 172.22.0.2&lt;br /&gt;
  PING 172.22.0.2 (172.22.0.2) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=1 ttl=64 time=0.617 ms&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=2 ttl=64 time=0.316 ms&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=3 ttl=64 time=0.398 ms&lt;br /&gt;
&lt;br /&gt;
Once configured with our firmware, an extender node will not start broadcasting an SSID until it is plugged into a home node because it must first get a mesh IP address.&lt;br /&gt;
&lt;br /&gt;
== Extender Detection ==&lt;br /&gt;
&lt;br /&gt;
Log into your home node via SSH, and tail &amp;lt;tt&amp;gt;/var/log/messages&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver: eth0.3: Physical disconnect detected&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver: Listening on interface eth0.3:&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver:   client IP: 100.64.37.3&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver:   client netmask 26&lt;br /&gt;
  Sun May  8 00:51:12 2016 daemon.debug notdhcpserver: eth0.3: Recieved HEARTBEAT for interface that hadn't been ACKed.&lt;br /&gt;
  ...&lt;br /&gt;
  Sun May  8 00:54:00 2016 daemon.debug notdhcpserver: eth0.3: Recieved HEARTBEAT for interface that hadn't been ACKed.&lt;br /&gt;
  Sun May  8 00:54:00 2016 daemon.info hostapd: priv5: STA 80:e6:50:0e:fe:6e WPA: group key handshake completed (RSN)&lt;br /&gt;
  Sun May  8 00:54:04 2016 daemon.debug notdhcpserver: eth0.2: Received lease request&lt;br /&gt;
  Sun May  8 00:54:04 2016 daemon.debug notdhcpserver: eth0.3: sending response (with ssl certificate)&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received ACK&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Running up hook script&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received redundant ACK&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received redundant ACK&lt;br /&gt;
&lt;br /&gt;
There should be a debug message in the log from notdhcpserver concerning the extender node.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== USB to Serial Connection ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you experience trouble flashing your device via the web interface, or via the TFTP image upload method, you'll want to establish a serial connection to troubleshoot further. Methods for flashing your device involving a serial connection may become more common as devices adopt configurations to lock down [http://www.networkworld.com/article/3038722/mobile-wireless/manufacturers-start-to-lock-down-wi-fi-router-firmware-thanks-fcc.html wi-fi router firmware] to prevent flashing.&lt;br /&gt;
&lt;br /&gt;
The following notes describe steps to interface with a Nanostation M5 (NSM5) via the serial interface. &lt;br /&gt;
&lt;br /&gt;
==== Order a USB to Serial Converter ====&lt;br /&gt;
&lt;br /&gt;
USB to serial converter devices exist at a cost of $4 - $8 online, with much lower pricing and longer delivery times if ordered from China. Search for &amp;quot;USB to UART TTL&amp;quot;, including &amp;quot;5 pin&amp;quot; in the search. Make sure the specifications do not mention anything other than 3.3 volts.&lt;br /&gt;
&lt;br /&gt;
Mac OS X users may need to install a device driver for their device. For example, for devices using the CP210X chip, you can download the [https://www.silabs.com/products/mcu/Pages/USBtoUARTBridgeVCPDrivers.aspx#mac CP210x USB to UART Bridge VCP Driver], which is made available as &amp;lt;tt&amp;gt;/dev/tty.SLAB_USBtoUART&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Connecting to Serial ====&lt;br /&gt;
&lt;br /&gt;
You will need to connect the following pins from the converter to the pins on the device.&lt;br /&gt;
&lt;br /&gt;
* Ground (GND)&lt;br /&gt;
* Serial Out (Transmit / TX)&lt;br /&gt;
* Serial In (Receive / RX)&lt;br /&gt;
&lt;br /&gt;
Begin by connecting the Ground of the converter to the Ground of the device. Next connect the Transmit/TX of the converter to the Receive/RX of the device, then connect the Receive/RX of the converter to the Transmit/TX of the device.&lt;br /&gt;
&lt;br /&gt;
Nanostation M5 (NSM5) Example:&lt;br /&gt;
&lt;br /&gt;
[[File:CP2102-usb-to-serial-converter.jpg|400px|KEDSUMÂ® CP2102 Module STC Download Cable USB 2.0 to TTL 6PIN Serial Converter For STC]]&lt;br /&gt;
&lt;br /&gt;
[[File:Ubiquity-NSM5-serial-connectors.jpg|400px|Ubiquiti Nanostation NSM5 - Serial pins with connections]]&lt;br /&gt;
&lt;br /&gt;
==== Serial Communications Program ====&lt;br /&gt;
&lt;br /&gt;
You need to install a serial communication program. Linux users can use Minicom.&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get install minicom&lt;br /&gt;
&lt;br /&gt;
Mac OS X users can as well&lt;br /&gt;
&lt;br /&gt;
  brew install minicom&lt;br /&gt;
&lt;br /&gt;
By default the Minicom program will attempt to use /dev/tty8, and will also attempt to initialize the device (expecting a modem) by default.&lt;br /&gt;
&lt;br /&gt;
  $ minicom&lt;br /&gt;
  minicom: cannot open /dev/tty8: Permission denied&lt;br /&gt;
&lt;br /&gt;
Run the program so that it starts the program on the USB converter that is connected by adding &amp;lt;tt&amp;gt;-D /dev/ttyUSB0&amp;lt;/tt&amp;gt;, and specify that it should skip initialization by adding &amp;lt;tt&amp;gt;-o&amp;lt;/tt&amp;gt;. Mac users may need to reference a different device (such as &amp;lt;tt&amp;gt;/dev/tty.SLAB_USBtoUART&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
You can also specify from the command line that it use the baud rate and '8N1' settings specified below by including &amp;lt;tt&amp;gt;-b 115200 -8&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
  sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
&lt;br /&gt;
In Minicom, CTRL-A to get settings, then Press O, to access settings. Mac users will need to discover the proper META key to use with their Terminal program. iTerm uses the 'ESC' key.&lt;br /&gt;
&lt;br /&gt;
Go to Serial Port Setup, use these settings:&lt;br /&gt;
&lt;br /&gt;
* Set the serial device (should be /dev/tty/USB0)&lt;br /&gt;
* Baud Rate (Bits Per Second): 115200&lt;br /&gt;
* Settings '8N1' (short hand for 8 bits, no parity, 1 stop bit)&lt;br /&gt;
* Turn off hardware and software flow control&lt;br /&gt;
&lt;br /&gt;
Reboot the device, and it will let you drop into a command line. You will then have to figure out how to enable the network from the boot loader (Uboot or Redboot) and transfer the firmware to the device to flash it.&lt;br /&gt;
&lt;br /&gt;
==== Interupting Boot ====&lt;br /&gt;
&lt;br /&gt;
The device will not detect the key you press unless Minicom is configured properly.&lt;br /&gt;
&lt;br /&gt;
* To access the Help screen, Press CTRL-A, then press Z.&lt;br /&gt;
* To access the configuration/settings, press CTRL-A, then press O.&lt;br /&gt;
&lt;br /&gt;
From the configuration window, select to view the 'Serial port setup'&lt;br /&gt;
&lt;br /&gt;
  $ sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
  Welcome to minicom 2.7&lt;br /&gt;
  &lt;br /&gt;
  OPTIONS: I18n &lt;br /&gt;
  Compiled on Jan  1 2014, 17:13:19.&lt;br /&gt;
  Port /dev/ttyUSB0, 21:47:56&lt;br /&gt;
  &lt;br /&gt;
  Press CTRL-A Z for help on special keys&lt;br /&gt;
  &lt;br /&gt;
              +-----[configuration]------+&lt;br /&gt;
              | Filenames and paths      |&lt;br /&gt;
              | File transfer protocols  |&lt;br /&gt;
              | Serial port setup        |&lt;br /&gt;
              | Modem and dialing        |&lt;br /&gt;
              | Screen and keyboard      |&lt;br /&gt;
              | Save setup as dfl        |&lt;br /&gt;
              | Save setup as..          |&lt;br /&gt;
              | Exit                     |&lt;br /&gt;
              +--------------------------+&lt;br /&gt;
  &lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
  | A -    Serial Device      : /dev/ttyUSB0                              |&lt;br /&gt;
  | B - Lockfile Location     : /var/lock                                 |&lt;br /&gt;
  | C -   Callin Program      :                                           |&lt;br /&gt;
  | D -  Callout Program      :                                           |&lt;br /&gt;
  | E -    Bps/Par/Bits       : 115200 8N1                                |&lt;br /&gt;
  | F - Hardware Flow Control : Yes                                       |&lt;br /&gt;
  | G - Software Flow Control : No                                        |&lt;br /&gt;
  |                                                                       |&lt;br /&gt;
  |    Change which setting?                                              |&lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
&lt;br /&gt;
By default the Hardware Flow Control will be enabled. Press 'F' to disable Hardware Flow Control. Press ENTER to exit the Serial port setup window, and then select EXIT to go back to the program.&lt;br /&gt;
&lt;br /&gt;
At this point plug in the Ethernet cable to the 'Main' Ethernet port, with the other end connected to the 'POE' port on the Power Over Ethernet adapter that came with the device. As the device boots up, you'll see output similar to the following.&lt;br /&gt;
&lt;br /&gt;
You'll need to make sure to press a key before it boots the default image.&lt;br /&gt;
&lt;br /&gt;
=== Picostation M2HP ===&lt;br /&gt;
&lt;br /&gt;
Insightful post on [https://www.strugglingcoder.info/index.php/tag/ubnt/ loading FreeBSD image] with help from serial communications. Could be useful with troubleshooting other models.&lt;br /&gt;
=== Nanostation M2 ===&lt;br /&gt;
==== Firmware check failure ====&lt;br /&gt;
&lt;br /&gt;
The following are simply notes. A solution to this issue is still pending.&lt;br /&gt;
&lt;br /&gt;
Flashing the Nanostation M2 (FCC ID: SWX-M2N) using the TFTP rescue mode will result in a Firmware check failure error.&lt;br /&gt;
&lt;br /&gt;
  $ tftp 192.168.1.20&lt;br /&gt;
  tftp&amp;gt; bin&lt;br /&gt;
  tftp&amp;gt; put openwrt-ar71xx-generic-om2p-squashfs-factory.bin&lt;br /&gt;
  Error code 2: Firmware check failed&lt;br /&gt;
  Sent 4609024 bytes in 12.6 seconds&lt;br /&gt;
&lt;br /&gt;
You can boot up the M2 with a serial connection similar to the instructions below concerning the Nanostation M5.&lt;br /&gt;
&lt;br /&gt;
  Board: Ubiquiti Networks XM board (rev 1.0 e012)&lt;br /&gt;
  DRAM:  32 MB&lt;br /&gt;
  Flash:  8 MB&lt;br /&gt;
  PCIe WLAN Module found (#1).&lt;br /&gt;
  Net:   eth0, eth1&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: |&lt;br /&gt;
  Receiving file from 192.168.1.10:35456&lt;br /&gt;
  Received 4609501 bytes&lt;br /&gt;
  Firmware check failed! (-2)&lt;br /&gt;
&lt;br /&gt;
The method outlined for the Nanostation M5 below doesn't work with the M2.&lt;br /&gt;
&lt;br /&gt;
Update the firmware to [http://dl.ubnt.com/firmwares/XN-fw/v5.6.4/XM.v5.6.4.28924.160331.1253.bin airOS for XM board firmware v5.6.4].&lt;br /&gt;
&lt;br /&gt;
Serial Connection:&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
&lt;br /&gt;
Terminal:&lt;br /&gt;
&lt;br /&gt;
  $ tftp 192.168.1.20&lt;br /&gt;
  tftp&amp;gt; bin&lt;br /&gt;
  tftp&amp;gt; put XM.v5.6.4.28924.160331.1253.bin&lt;br /&gt;
  Sent 7537129 bytes in 20.8 seconds&lt;br /&gt;
&lt;br /&gt;
Serial Connection:&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:55113&lt;br /&gt;
  Received 7537129 bytes&lt;br /&gt;
  Firmware Version: XM.ar7240.v5.6.4.28924.160331.1253&lt;br /&gt;
  Setting U-Boot environment variables&lt;br /&gt;
  Un-Protected 1 sectors&lt;br /&gt;
  Erasing Flash.... done&lt;br /&gt;
  Erased 1 sectors&lt;br /&gt;
  Writing to Flash... done&lt;br /&gt;
  Protected 1 sectors&lt;br /&gt;
  Will not overwrite u-boot partition! Skipped.&lt;br /&gt;
  Copying partition 'kernel' to flash memory:&lt;br /&gt;
          erasing range 0x9F050000..0x9F14FFFF: ................ done&lt;br /&gt;
  Erased 16 sectors&lt;br /&gt;
          writing to address 0x9f050000, length 0x00100000 ...&lt;br /&gt;
  Copying partition 'rootfs' to flash memory:&lt;br /&gt;
          erasing range 0x9F150000..0x9F74FFFF: .............................................................................................e&lt;br /&gt;
  Erased 96 sectors&lt;br /&gt;
          writing to address 0x9f150000, length 0x00600000 ...&lt;br /&gt;
  &lt;br /&gt;
  Firmware update complete.&lt;br /&gt;
  &lt;br /&gt;
  Resetting...&lt;br /&gt;
  &lt;br /&gt;
  U-Boot 1.1.4.2-s594 (Dec  5 2012 - 15:23:07)&lt;br /&gt;
  &lt;br /&gt;
  Board: Ubiquiti Networks XM board (rev 1.0 e012)&lt;br /&gt;
&lt;br /&gt;
Attempting to run the same process after performing an official firmware update doesn't resolve the issue.&lt;br /&gt;
&lt;br /&gt;
=== Nanostation M5 ===&lt;br /&gt;
&lt;br /&gt;
Official firmware from Ubiquity Nanostation M5 (NSM5)&lt;br /&gt;
&lt;br /&gt;
* [https://www.ubnt.com/download/airmax-m/nanostationm/default/airos-xw-board-firmware-v564 airOS for XW board firmware v5.6.4]&lt;br /&gt;
&lt;br /&gt;
==== Firmware check failure ====&lt;br /&gt;
&lt;br /&gt;
Flashing the Nanostation M5 (FCC ID: SWX-NSM5D) using the TFTP rescue mode will result in a Firmware check failure error.&lt;br /&gt;
&lt;br /&gt;
If you attempt to flash the extender and receive a 'Firmware check failed' error, then you have a version of the NSM5 that is protected from being flashed via the default TFTP method. You will need to obtain a serial to USB interface (USB to UART TTL Module Serial Converter, 5 pin) and use it to flash the firmware.&lt;br /&gt;
&lt;br /&gt;
   $ ./flasher.js openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin&lt;br /&gt;
   Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
   Connection timed out&lt;br /&gt;
   Sending openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
   [Error: (Server) Firmware check failed]&lt;br /&gt;
&lt;br /&gt;
When connected to the NSM5 via a serial connection, a similar error is displayed when attempting to load the SudoWRT firmware image.&lt;br /&gt;
&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Will reset device configuration (Reset button active after 10 seconds).&lt;br /&gt;
  Erasing sector 123..126&lt;br /&gt;
  &lt;br /&gt;
  First 0x7b last 0x7e sector size 0x10000&lt;br /&gt;
  .... done&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
  Receiving file from 192.168.1.10:49763&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware check failed! (1)&lt;br /&gt;
&lt;br /&gt;
===== Drop into U-Boot Command Prompt =====&lt;br /&gt;
&lt;br /&gt;
Connect a USB to Serial adapter to the correct pins of the NSM5, as shown above. Unplug the Ethernet cable from the device, and then plug it back in to provide Power Over Ethernet once again, resulting in a reboot of the device.&lt;br /&gt;
&lt;br /&gt;
During the boot process, press a key to during the boot process to make the [https://wiki.openwrt.org/doc/techref/bootloader/uboot U-Boot] bootloader to drop into a command line prompt.&lt;br /&gt;
&lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0&lt;br /&gt;
  ar7240&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Running TFTPd =====&lt;br /&gt;
&lt;br /&gt;
Although U-Boot can support two protocols for transfering files, kermit or y-modem, the bootloader does not support the &amp;lt;tt&amp;gt;loadb&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;loady&amp;lt;/tt&amp;gt;. Minicom only supports y-modem protocol.&lt;br /&gt;
&lt;br /&gt;
We do not have to resort to a direct serial file transfer however. The 'mtdparts' command that is used to define flash memory partitions can be used to reset the partition table to the defaults before running 'urescue' to start the TFTP server.&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; help mtdparts&lt;br /&gt;
  mtdparts &lt;br /&gt;
      - list partition table&lt;br /&gt;
  mtdparts delall&lt;br /&gt;
      - delete all partitions&lt;br /&gt;
  mtdparts del part-id&lt;br /&gt;
      - delete partition (e.g. part-id = nand0,1)&lt;br /&gt;
  mtdparts add &amp;lt;mtd-dev&amp;gt; &amp;lt;size&amp;gt;[@&amp;lt;offset&amp;gt;] [&amp;lt;name&amp;gt;] [ro]&lt;br /&gt;
      - add partition&lt;br /&gt;
  mtdparts default&lt;br /&gt;
      - reset partition table to defaults&lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
&lt;br /&gt;
In your other terminal window, run the ubi-flasher script.&lt;br /&gt;
&lt;br /&gt;
  $ ./flasher.js /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin&lt;br /&gt;
  Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
  Connection timed out&lt;br /&gt;
  Sending /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
  Firmware flashing begun!&lt;br /&gt;
  The firmware has been successfully sent to the router.&lt;br /&gt;
  In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up).&lt;br /&gt;
  This means that the router is flashing itself with the new firmware.&lt;br /&gt;
  Once the router goes back to having only the power LED lit, the router has been successfully flashed.&lt;br /&gt;
&lt;br /&gt;
In the terminal running Minicom you should see the firmware successfully flashing.&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:52289&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware Version: XW.ar934x.v6.0.0-OpenWrt-r47662&lt;br /&gt;
  Setting U-Boot environment variables&lt;br /&gt;
  Un-Protected 1 sectors&lt;br /&gt;
  Erasing Flash.... done&lt;br /&gt;
  Erased 1 sectors&lt;br /&gt;
  Writing to Flash... write addr: 9f040000&lt;br /&gt;
  done&lt;br /&gt;
  Protected 1 sectors&lt;br /&gt;
  Copying partition 'kernel' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x5 last 0x14 sector size 0x10000&lt;br /&gt;
  ................ done&lt;br /&gt;
  write addr: 9f050000&lt;br /&gt;
  Copying partition 'rootfs' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x15 last 0x6e sector size 0x10000&lt;br /&gt;
  .......................................................................................... done&lt;br /&gt;
  write addr: 9f150000&lt;br /&gt;
  &lt;br /&gt;
  Firmware update complete.&lt;br /&gt;
  &lt;br /&gt;
  Resetting...&lt;br /&gt;
  &lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ## Booting image at 9f050000 ...&lt;br /&gt;
     Image Name:   MIPS OpenWrt Linux-3.18.23&lt;br /&gt;
     Created:      2015-12-01   0:03:51 UTC&lt;br /&gt;
     Image Type:   MIPS Linux Kernel Image (lzma compressed)&lt;br /&gt;
     Data Size:    1135619 Bytes =  1.1 MB&lt;br /&gt;
     Load Address: 80060000&lt;br /&gt;
     Entry Point:  80060000&lt;br /&gt;
     Verifying Checksum at 0x9f050040 ...OK&lt;br /&gt;
     Uncompressing Kernel Image ... OK&lt;br /&gt;
  &lt;br /&gt;
  Starting kernel ...&lt;br /&gt;
  &lt;br /&gt;
  [    0.000000] Linux version 3.18.23 (sudowrt-builder@build-test2) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.04 r47662) ) #2 Mon Nov 5&lt;br /&gt;
&lt;br /&gt;
After it reboots if you see the first line mention 'sudowrt-builder', the device is booting the SudoWRT firmware build.&lt;br /&gt;
&lt;br /&gt;
You can press ENTER once it is finished, and it should drop into the command line for the SudoWRT system.&lt;br /&gt;
&lt;br /&gt;
  [   25.650000] jffs2: Newly-erased block contained word 0xdeadc0de at offset 0x00000000&lt;br /&gt;
  [   25.660000] done.&lt;br /&gt;
  [   25.660000] jffs2: notice: (993) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and.&lt;br /&gt;
  &lt;br /&gt;
  BusyBox v1.23.2 (2015-11-30 18:48:50 EST) built-in shell (ash)&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
    ._______.___    ._______.______  ._____  .___    .___ .______  ._____  &lt;br /&gt;
    :_ ____/|   |   : .____/:_ _   \ :_ ___\ |   |   : __|:      \ :_ ___\ &lt;br /&gt;
    |   _/  |   |   | : _/\ |   |   ||   |___|   |   | : ||       ||   |___&lt;br /&gt;
    |   |   |   |/\ |   /  \| . |   ||   /  ||   |/\ |   ||   |   ||   /  |&lt;br /&gt;
    |_. |   |   /  \|_.: __/|. ____/ |. __  ||   /  \|   ||___|   ||. __  |&lt;br /&gt;
      :/    |______/   :/    :/       :/ |. ||______/|___|    |___| :/ |. |&lt;br /&gt;
      :                      :        :   :/                        :   :/ &lt;br /&gt;
                                          :                             : &lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   sudo mesh v0.2 (fledgling.extender)&lt;br /&gt;
                                based on OpenWRT 15.05 (Chaos Calmer)&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   &amp;quot;When your rage is choking you, it is best to say nothing.&amp;quot; &lt;br /&gt;
                                              - Octavia E. Butler, Fledgling&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
  &lt;br /&gt;
  root@sudomesh-node:/#&lt;br /&gt;
&lt;br /&gt;
== Extender Node Installation ==&lt;br /&gt;
=== Installation Order ===&lt;br /&gt;
#Flash home nodes and extender nodes&lt;br /&gt;
#Get on roof and determine which direction to face the extender nodes&lt;br /&gt;
#Install J-Pole&lt;br /&gt;
#Crimp end onto Ethernet cable&lt;br /&gt;
#Run Ethernet cable from j-pole down to location of home node (either through a soffit indoors or to an outdoor enclosure)&lt;br /&gt;
#Crimp other end of Ethernet cable and connect to home node via a POE adaptor&lt;br /&gt;
#Install extender node on J-Pole using zip-ties - check lights to make sure unit is powered up&lt;br /&gt;
#Walk around the neighborhood to check the signal&lt;br /&gt;
&lt;br /&gt;
=== Gear Checklist ===&lt;br /&gt;
	&lt;br /&gt;
Protective and personal gear&lt;br /&gt;
*Wear clothes you can get dirty and sturdy boots for roof walking&lt;br /&gt;
*Sunscreen&lt;br /&gt;
*Sunglasses&lt;br /&gt;
*Pocketknife (for cutting zip ties etc)&lt;br /&gt;
*Ladder&lt;br /&gt;
*Safety harness &amp;amp; rope in a bucket&lt;br /&gt;
*Smart phone (to check signal and take pictures)&lt;br /&gt;
Home node gear&lt;br /&gt;
*2 flashed Western Digital Mynet N600 Home Nodes&lt;br /&gt;
*paperclip (to reset equipment)&lt;br /&gt;
*Laptop (to configure equipment)&lt;br /&gt;
*Plastic outdoor enclosure for router (optional)&lt;br /&gt;
*Power Strip&lt;br /&gt;
J-Pole gear&lt;br /&gt;
*J-Pole&lt;br /&gt;
*Latex gloves (for dealing with roofing sealant)&lt;br /&gt;
*Roofing sealant&lt;br /&gt;
*Ratchet set - 10mm for small bolts, 13mm for large bolts&lt;br /&gt;
*Corldless Drill&lt;br /&gt;
*3/16&amp;quot; drill bit for J-pole bolts&lt;br /&gt;
*Steel One-Hole Conduit Straps (for holding Ethernet cable along eves)&lt;br /&gt;
*Screws for the Steel one-hole straps&lt;br /&gt;
Ethernet cable gear&lt;br /&gt;
*Ethernet Spool&lt;br /&gt;
*Ethernet Ends&lt;br /&gt;
*Ethernet Crimper&lt;br /&gt;
*Laminated card showing the Ethernet cable order&lt;br /&gt;
*Label Maker - so you can know which cable is which&lt;br /&gt;
Extender node gear&lt;br /&gt;
*Flashed Ubiquiti Nanostation M2 or M5 extender Node(s)&lt;br /&gt;
*Power over Ethernet (POE) adapters&lt;br /&gt;
*Zip Ties&lt;/div&gt;</summary>
		<author><name>Gcg</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=11074</id>
		<title>Mesh/Flashing extender nodes</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=11074"/>
		<updated>2018-03-03T02:58:15Z</updated>

		<summary type="html">&lt;p&gt;Gcg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;After following the [Mesh/WalkThrough], you are probably just an isolated node on the virtual People's Open Network. If you want to become part of the physical mesh, you are going to need to extend the signal from home node using what we call an extender node. An extender node is just a roof-mounted, directional antenna used to make point-to-point connections between two locations that have line-of-sight (LOS) to one another. Preparing an extender node generally consists to two stages, downgrading the proprietary AirOS firmware and flashing it with our custom build of OpenWrt.&lt;br /&gt;
&lt;br /&gt;
== Downgrading to earlier AirOS ==&lt;br /&gt;
&lt;br /&gt;
Typically, we use Ubiquiti equipment for our extender nodes. These come with a proprietary firmware called AirOS. Any extender node with version 5.6 of AirOS and above needs to be downgraded to a 5.5.XX version of AirOS version before you can flash it with OpenWRT. &lt;br /&gt;
&lt;br /&gt;
First check what version of AirOS your extender node is running, to do this, edit your network settings to reflect the following:&lt;br /&gt;
&lt;br /&gt;
* Network Manager Method: Manual&lt;br /&gt;
* IP Address: 192.168.1.10 (some devices will only accept from this IP)&lt;br /&gt;
* Subnet Mask: 255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0 (Or leave blank)&lt;br /&gt;
&lt;br /&gt;
You can also use the commands:&lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; down &lt;br /&gt;
  sudo ip addr add 192.168.1.10/24 dev &amp;lt;eth_interface&amp;gt; &lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; up&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;eth_interface&amp;gt; is the name of your ethernet interface found using `ip addr` (common names include eth0, enp3s0, ...)&lt;br /&gt;
&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the Power-over-Ethernet (PoE) power supply on the other end.&lt;br /&gt;
* Plug another Ethernet cable into your extender node on one end and into the &amp;quot;POE&amp;quot; port of the PoE power supply on the other end.&lt;br /&gt;
* Power on the extender node by plugging in the PoE.&lt;br /&gt;
* Wait for a couple of minutes.&lt;br /&gt;
* Ensure you're not connected to a wifi network that has an 192.168.1.x IP range. Disconnect/disable your wifi if you're unsure.&lt;br /&gt;
* In your browser go to http://192.168.1.20&lt;br /&gt;
* Log in using the credentials &lt;br /&gt;
  username: ubnt &lt;br /&gt;
  password: ubnt&lt;br /&gt;
* Look at the Firmware information, it may say something like XM.v5.6.6.bin or XW.v5.6.6, based on this download the correct version of AirOS v5.5.10&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Version !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| XW v5.5.10 || http://dl.ubnt.com/firmwares/XW-fw/v5.5.10/XW.v5.5.10-u2.28005.150723.1358.bin&lt;br /&gt;
|-&lt;br /&gt;
| XM v5.5.10 || http://dl.ubnt.com/firmwares/XN-fw/v5.5.11/XM.v5.5.11.28002.150723.1344.bin&lt;br /&gt;
|-&lt;br /&gt;
| TI v5.5.11 || http://dl.ubnt.com/firmwares/XN-fw/v5.5.11/TI.v5.5.11.28002.150723.1518.bin&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Click the &amp;quot;System&amp;quot; tab.&lt;br /&gt;
* Click the &amp;quot;Browse&amp;quot; button next to the &amp;quot;Upload Firmware&amp;quot; box &lt;br /&gt;
* Select the firmware image you just downloaded&lt;br /&gt;
* Click &amp;quot;Upload&amp;quot;.&lt;br /&gt;
* After uploading you will be asked if you want to upgrade/install the firmware. Click yes/accept.&lt;br /&gt;
* Ignore any warnings about changing the default admin password, we're gonna overwrite it anyway&lt;br /&gt;
* Let the router finish flashing and wait for it to fully reboot.&lt;br /&gt;
* After it reboots, you may wanna go back into the web interface to make sure the downgrade was successful before proceeding.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
XM.v6.0.4 (v6.0.4) firmware version does not appear to be downgradable via the preceding method. Instead you will need to use command-line method as follows,&lt;br /&gt;
&lt;br /&gt;
   ssh-keygen -f &amp;quot;/home/yourusername/.ssh/known_hosts&amp;quot; -R 192.168.1.20&lt;br /&gt;
   scp &amp;lt;firmware_image.bin&amp;gt;  ubnt@192.168.1.20:/tmp/fwupdate.bin&lt;br /&gt;
   ssh ubnt@192.168.1.20  # password is &amp;quot;ubnt&amp;quot;&lt;br /&gt;
   /sbin/fwupdate -m&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Download the Image File For a Extender Node ==&lt;br /&gt;
&lt;br /&gt;
The extender nodes that we currently support are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Notes !! OpenWRT Doc !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M2 and M5 || Newer models need [[#Downgrading_to_earlier_AirOS|AirOS downgrade]] before flashing!  Note that this will almost certainly require a USB to Serial connection (see below).|| [https://wiki.openwrt.org/toh/ubiquiti/nanostationm5 OpenWRT Docs] || firmware: [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin pre 2015 M5 versions and all M2 versions] or [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin 2015-2016 M5 versions]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation 2 || Previous generation 802.11g (not the same as M2) || [https://wiki.openwrt.org/toh/ubiquiti/picostation2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ath25.extender-node/openwrt-ath25-ubnt2-pico2-squashfs.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation M2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostationm2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-bullet-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobeam M2 and M5 || NBEâ€‘M2â€‘13 and NBEâ€‘M5â€‘16 work but some (earlier?) NBEâ€‘M5â€‘19 have ethernet port issues. Newer models need [[#Downgrading_to_earlier_AirOS|AirOS downgrade]] before flashing! || [https://wiki.openwrt.org/toh/ubiquiti/nanobeam OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-loco-m-xw-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobridge M2 and M5 || || Same as pre-2015 Nanostation M || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Bullet M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/bullet OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-bullet-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Flash the Extender Node ==&lt;br /&gt;
&lt;br /&gt;
* Configure your wired ethernet interface to use IP: 192.168.1.10, subnet: 255.255.255.0&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Plug another Ethernet cable into your node/router on one end and into the &amp;quot;POE&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Push a pin into the reset hole and hold it.&lt;br /&gt;
* With the pin held down, plug in the power to the power-over-ethernet power supply.&lt;br /&gt;
* Watch the lights on the antenna - they will all flash together a few times, then they will flash up and down.&lt;br /&gt;
* Once the lights on the antenna are flashing up and down, you can let go of the pin.&lt;br /&gt;
&lt;br /&gt;
You should be able to ping the extender at 192.168.1.20.&lt;br /&gt;
&lt;br /&gt;
  $ ping 192.168.1.20&lt;br /&gt;
  PING 192.168.1.20 (192.168.1.20) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=1 ttl=64 time=1.54 ms&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=2 ttl=64 time=0.826 ms&lt;br /&gt;
&lt;br /&gt;
In your Linux terminal, type:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/ubi-flasher&lt;br /&gt;
  cd ubi-flasher&lt;br /&gt;
  npm install&lt;br /&gt;
  ./flasher.js '&amp;lt;path to firmware&amp;gt;'&lt;br /&gt;
&lt;br /&gt;
The terminal will tell you &amp;quot;The firmware has been successfully sent to the router. In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up). This means that the router is flashing itself with the new firmware. Once the router goes back to having only the power LED lit, the router has been successfully flashed.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Wait until the antenna has only the power LED lit and you're done.&lt;br /&gt;
&lt;br /&gt;
Reconfigure your machine with the following static network configuration.&lt;br /&gt;
&lt;br /&gt;
* IP Address: 172.22.0.10&lt;br /&gt;
* Subnet mask:  255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0&lt;br /&gt;
&lt;br /&gt;
See Network Configuration Guides: [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20Linux Linux] [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20MacOS%20X Mac]&lt;br /&gt;
&lt;br /&gt;
If you ping the extender node on 172.22.0.2 and it responds, it should be ready to connect to your home node on the appropriate wired Ethernet port.&lt;br /&gt;
&lt;br /&gt;
  $ ping 172.22.0.2&lt;br /&gt;
  PING 172.22.0.2 (172.22.0.2) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=1 ttl=64 time=0.617 ms&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=2 ttl=64 time=0.316 ms&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=3 ttl=64 time=0.398 ms&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Extender Detection ==&lt;br /&gt;
&lt;br /&gt;
Log into your home node via SSH, and tail &amp;lt;tt&amp;gt;/var/log/messages&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver: eth0.3: Physical disconnect detected&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver: Listening on interface eth0.3:&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver:   client IP: 100.64.37.3&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver:   client netmask 26&lt;br /&gt;
  Sun May  8 00:51:12 2016 daemon.debug notdhcpserver: eth0.3: Recieved HEARTBEAT for interface that hadn't been ACKed.&lt;br /&gt;
  ...&lt;br /&gt;
  Sun May  8 00:54:00 2016 daemon.debug notdhcpserver: eth0.3: Recieved HEARTBEAT for interface that hadn't been ACKed.&lt;br /&gt;
  Sun May  8 00:54:00 2016 daemon.info hostapd: priv5: STA 80:e6:50:0e:fe:6e WPA: group key handshake completed (RSN)&lt;br /&gt;
  Sun May  8 00:54:04 2016 daemon.debug notdhcpserver: eth0.2: Received lease request&lt;br /&gt;
  Sun May  8 00:54:04 2016 daemon.debug notdhcpserver: eth0.3: sending response (with ssl certificate)&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received ACK&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Running up hook script&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received redundant ACK&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received redundant ACK&lt;br /&gt;
&lt;br /&gt;
There should be a debug message in the log from notdhcpserver concerning the extender node.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== USB to Serial Connection ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you experience trouble flashing your device via the web interface, or via the TFTP image upload method, you'll want to establish a serial connection to troubleshoot further. Methods for flashing your device involving a serial connection may become more common as devices adopt configurations to lock down [http://www.networkworld.com/article/3038722/mobile-wireless/manufacturers-start-to-lock-down-wi-fi-router-firmware-thanks-fcc.html wi-fi router firmware] to prevent flashing.&lt;br /&gt;
&lt;br /&gt;
The following notes describe steps to interface with a Nanostation M5 (NSM5) via the serial interface. &lt;br /&gt;
&lt;br /&gt;
==== Order a USB to Serial Converter ====&lt;br /&gt;
&lt;br /&gt;
USB to serial converter devices exist at a cost of $4 - $8 online, with much lower pricing and longer delivery times if ordered from China. Search for &amp;quot;USB to UART TTL&amp;quot;, including &amp;quot;5 pin&amp;quot; in the search. Make sure the specifications do not mention anything other than 3.3 volts.&lt;br /&gt;
&lt;br /&gt;
Mac OS X users may need to install a device driver for their device. For example, for devices using the CP210X chip, you can download the [https://www.silabs.com/products/mcu/Pages/USBtoUARTBridgeVCPDrivers.aspx#mac CP210x USB to UART Bridge VCP Driver], which is made available as &amp;lt;tt&amp;gt;/dev/tty.SLAB_USBtoUART&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Connecting to Serial ====&lt;br /&gt;
&lt;br /&gt;
You will need to connect the following pins from the converter to the pins on the device.&lt;br /&gt;
&lt;br /&gt;
* Ground (GND)&lt;br /&gt;
* Serial Out (Transmit / TX)&lt;br /&gt;
* Serial In (Receive / RX)&lt;br /&gt;
&lt;br /&gt;
Begin by connecting the Ground of the converter to the Ground of the device. Next connect the Transmit/TX of the converter to the Receive/RX of the device, then connect the Receive/RX of the converter to the Transmit/TX of the device.&lt;br /&gt;
&lt;br /&gt;
Nanostation M5 (NSM5) Example:&lt;br /&gt;
&lt;br /&gt;
[[File:CP2102-usb-to-serial-converter.jpg|400px|KEDSUMÂ® CP2102 Module STC Download Cable USB 2.0 to TTL 6PIN Serial Converter For STC]]&lt;br /&gt;
&lt;br /&gt;
[[File:Ubiquity-NSM5-serial-connectors.jpg|400px|Ubiquiti Nanostation NSM5 - Serial pins with connections]]&lt;br /&gt;
&lt;br /&gt;
==== Serial Communications Program ====&lt;br /&gt;
&lt;br /&gt;
You need to install a serial communication program. Linux users can use Minicom.&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get install minicom&lt;br /&gt;
&lt;br /&gt;
Mac OS X users can as well&lt;br /&gt;
&lt;br /&gt;
  brew install minicom&lt;br /&gt;
&lt;br /&gt;
By default the Minicom program will attempt to use /dev/tty8, and will also attempt to initialize the device (expecting a modem) by default.&lt;br /&gt;
&lt;br /&gt;
  $ minicom&lt;br /&gt;
  minicom: cannot open /dev/tty8: Permission denied&lt;br /&gt;
&lt;br /&gt;
Run the program so that it starts the program on the USB converter that is connected by adding &amp;lt;tt&amp;gt;-D /dev/ttyUSB0&amp;lt;/tt&amp;gt;, and specify that it should skip initialization by adding &amp;lt;tt&amp;gt;-o&amp;lt;/tt&amp;gt;. Mac users may need to reference a different device (such as &amp;lt;tt&amp;gt;/dev/tty.SLAB_USBtoUART&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
You can also specify from the command line that it use the baud rate and '8N1' settings specified below by including &amp;lt;tt&amp;gt;-b 115200 -8&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
  sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
&lt;br /&gt;
In Minicom, CTRL-A to get settings, then Press O, to access settings. Mac users will need to discover the proper META key to use with their Terminal program. iTerm uses the 'ESC' key.&lt;br /&gt;
&lt;br /&gt;
Go to Serial Port Setup, use these settings:&lt;br /&gt;
&lt;br /&gt;
* Set the serial device (should be /dev/tty/USB0)&lt;br /&gt;
* Baud Rate (Bits Per Second): 115200&lt;br /&gt;
* Settings '8N1' (short hand for 8 bits, no parity, 1 stop bit)&lt;br /&gt;
* Turn off hardware and software flow control&lt;br /&gt;
&lt;br /&gt;
Reboot the device, and it will let you drop into a command line. You will then have to figure out how to enable the network from the boot loader (Uboot or Redboot) and transfer the firmware to the device to flash it.&lt;br /&gt;
&lt;br /&gt;
==== Interupting Boot ====&lt;br /&gt;
&lt;br /&gt;
The device will not detect the key you press unless Minicom is configured properly.&lt;br /&gt;
&lt;br /&gt;
* To access the Help screen, Press CTRL-A, then press Z.&lt;br /&gt;
* To access the configuration/settings, press CTRL-A, then press O.&lt;br /&gt;
&lt;br /&gt;
From the configuration window, select to view the 'Serial port setup'&lt;br /&gt;
&lt;br /&gt;
  $ sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
  Welcome to minicom 2.7&lt;br /&gt;
  &lt;br /&gt;
  OPTIONS: I18n &lt;br /&gt;
  Compiled on Jan  1 2014, 17:13:19.&lt;br /&gt;
  Port /dev/ttyUSB0, 21:47:56&lt;br /&gt;
  &lt;br /&gt;
  Press CTRL-A Z for help on special keys&lt;br /&gt;
  &lt;br /&gt;
              +-----[configuration]------+&lt;br /&gt;
              | Filenames and paths      |&lt;br /&gt;
              | File transfer protocols  |&lt;br /&gt;
              | Serial port setup        |&lt;br /&gt;
              | Modem and dialing        |&lt;br /&gt;
              | Screen and keyboard      |&lt;br /&gt;
              | Save setup as dfl        |&lt;br /&gt;
              | Save setup as..          |&lt;br /&gt;
              | Exit                     |&lt;br /&gt;
              +--------------------------+&lt;br /&gt;
  &lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
  | A -    Serial Device      : /dev/ttyUSB0                              |&lt;br /&gt;
  | B - Lockfile Location     : /var/lock                                 |&lt;br /&gt;
  | C -   Callin Program      :                                           |&lt;br /&gt;
  | D -  Callout Program      :                                           |&lt;br /&gt;
  | E -    Bps/Par/Bits       : 115200 8N1                                |&lt;br /&gt;
  | F - Hardware Flow Control : Yes                                       |&lt;br /&gt;
  | G - Software Flow Control : No                                        |&lt;br /&gt;
  |                                                                       |&lt;br /&gt;
  |    Change which setting?                                              |&lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
&lt;br /&gt;
By default the Hardware Flow Control will be enabled. Press 'F' to disable Hardware Flow Control. Press ENTER to exit the Serial port setup window, and then select EXIT to go back to the program.&lt;br /&gt;
&lt;br /&gt;
At this point plug in the Ethernet cable to the 'Main' Ethernet port, with the other end connected to the 'POE' port on the Power Over Ethernet adapter that came with the device. As the device boots up, you'll see output similar to the following.&lt;br /&gt;
&lt;br /&gt;
You'll need to make sure to press a key before it boots the default image.&lt;br /&gt;
&lt;br /&gt;
=== Picostation M2HP ===&lt;br /&gt;
&lt;br /&gt;
Insightful post on [https://www.strugglingcoder.info/index.php/tag/ubnt/ loading FreeBSD image] with help from serial communications. Could be useful with troubleshooting other models.&lt;br /&gt;
=== Nanostation M2 ===&lt;br /&gt;
==== Firmware check failure ====&lt;br /&gt;
&lt;br /&gt;
The following are simply notes. A solution to this issue is still pending.&lt;br /&gt;
&lt;br /&gt;
Flashing the Nanostation M2 (FCC ID: SWX-M2N) using the TFTP rescue mode will result in a Firmware check failure error.&lt;br /&gt;
&lt;br /&gt;
  $ tftp 192.168.1.20&lt;br /&gt;
  tftp&amp;gt; bin&lt;br /&gt;
  tftp&amp;gt; put openwrt-ar71xx-generic-om2p-squashfs-factory.bin&lt;br /&gt;
  Error code 2: Firmware check failed&lt;br /&gt;
  Sent 4609024 bytes in 12.6 seconds&lt;br /&gt;
&lt;br /&gt;
You can boot up the M2 with a serial connection similar to the instructions below concerning the Nanostation M5.&lt;br /&gt;
&lt;br /&gt;
  Board: Ubiquiti Networks XM board (rev 1.0 e012)&lt;br /&gt;
  DRAM:  32 MB&lt;br /&gt;
  Flash:  8 MB&lt;br /&gt;
  PCIe WLAN Module found (#1).&lt;br /&gt;
  Net:   eth0, eth1&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: |&lt;br /&gt;
  Receiving file from 192.168.1.10:35456&lt;br /&gt;
  Received 4609501 bytes&lt;br /&gt;
  Firmware check failed! (-2)&lt;br /&gt;
&lt;br /&gt;
The method outlined for the Nanostation M5 below doesn't work with the M2.&lt;br /&gt;
&lt;br /&gt;
Update the firmware to [http://dl.ubnt.com/firmwares/XN-fw/v5.6.4/XM.v5.6.4.28924.160331.1253.bin airOS for XM board firmware v5.6.4].&lt;br /&gt;
&lt;br /&gt;
Serial Connection:&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
&lt;br /&gt;
Terminal:&lt;br /&gt;
&lt;br /&gt;
  $ tftp 192.168.1.20&lt;br /&gt;
  tftp&amp;gt; bin&lt;br /&gt;
  tftp&amp;gt; put XM.v5.6.4.28924.160331.1253.bin&lt;br /&gt;
  Sent 7537129 bytes in 20.8 seconds&lt;br /&gt;
&lt;br /&gt;
Serial Connection:&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:55113&lt;br /&gt;
  Received 7537129 bytes&lt;br /&gt;
  Firmware Version: XM.ar7240.v5.6.4.28924.160331.1253&lt;br /&gt;
  Setting U-Boot environment variables&lt;br /&gt;
  Un-Protected 1 sectors&lt;br /&gt;
  Erasing Flash.... done&lt;br /&gt;
  Erased 1 sectors&lt;br /&gt;
  Writing to Flash... done&lt;br /&gt;
  Protected 1 sectors&lt;br /&gt;
  Will not overwrite u-boot partition! Skipped.&lt;br /&gt;
  Copying partition 'kernel' to flash memory:&lt;br /&gt;
          erasing range 0x9F050000..0x9F14FFFF: ................ done&lt;br /&gt;
  Erased 16 sectors&lt;br /&gt;
          writing to address 0x9f050000, length 0x00100000 ...&lt;br /&gt;
  Copying partition 'rootfs' to flash memory:&lt;br /&gt;
          erasing range 0x9F150000..0x9F74FFFF: .............................................................................................e&lt;br /&gt;
  Erased 96 sectors&lt;br /&gt;
          writing to address 0x9f150000, length 0x00600000 ...&lt;br /&gt;
  &lt;br /&gt;
  Firmware update complete.&lt;br /&gt;
  &lt;br /&gt;
  Resetting...&lt;br /&gt;
  &lt;br /&gt;
  U-Boot 1.1.4.2-s594 (Dec  5 2012 - 15:23:07)&lt;br /&gt;
  &lt;br /&gt;
  Board: Ubiquiti Networks XM board (rev 1.0 e012)&lt;br /&gt;
&lt;br /&gt;
Attempting to run the same process after performing an official firmware update doesn't resolve the issue.&lt;br /&gt;
&lt;br /&gt;
=== Nanostation M5 ===&lt;br /&gt;
&lt;br /&gt;
Official firmware from Ubiquity Nanostation M5 (NSM5)&lt;br /&gt;
&lt;br /&gt;
* [https://www.ubnt.com/download/airmax-m/nanostationm/default/airos-xw-board-firmware-v564 airOS for XW board firmware v5.6.4]&lt;br /&gt;
&lt;br /&gt;
==== Firmware check failure ====&lt;br /&gt;
&lt;br /&gt;
Flashing the Nanostation M5 (FCC ID: SWX-NSM5D) using the TFTP rescue mode will result in a Firmware check failure error.&lt;br /&gt;
&lt;br /&gt;
If you attempt to flash the extender and receive a 'Firmware check failed' error, then you have a version of the NSM5 that is protected from being flashed via the default TFTP method. You will need to obtain a serial to USB interface (USB to UART TTL Module Serial Converter, 5 pin) and use it to flash the firmware.&lt;br /&gt;
&lt;br /&gt;
   $ ./flasher.js openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin&lt;br /&gt;
   Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
   Connection timed out&lt;br /&gt;
   Sending openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
   [Error: (Server) Firmware check failed]&lt;br /&gt;
&lt;br /&gt;
When connected to the NSM5 via a serial connection, a similar error is displayed when attempting to load the SudoWRT firmware image.&lt;br /&gt;
&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Will reset device configuration (Reset button active after 10 seconds).&lt;br /&gt;
  Erasing sector 123..126&lt;br /&gt;
  &lt;br /&gt;
  First 0x7b last 0x7e sector size 0x10000&lt;br /&gt;
  .... done&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
  Receiving file from 192.168.1.10:49763&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware check failed! (1)&lt;br /&gt;
&lt;br /&gt;
===== Drop into U-Boot Command Prompt =====&lt;br /&gt;
&lt;br /&gt;
Connect a USB to Serial adapter to the correct pins of the NSM5, as shown above. Unplug the Ethernet cable from the device, and then plug it back in to provide Power Over Ethernet once again, resulting in a reboot of the device.&lt;br /&gt;
&lt;br /&gt;
During the boot process, press a key to during the boot process to make the [https://wiki.openwrt.org/doc/techref/bootloader/uboot U-Boot] bootloader to drop into a command line prompt.&lt;br /&gt;
&lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0&lt;br /&gt;
  ar7240&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Running TFTPd =====&lt;br /&gt;
&lt;br /&gt;
Although U-Boot can support two protocols for transfering files, kermit or y-modem, the bootloader does not support the &amp;lt;tt&amp;gt;loadb&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;loady&amp;lt;/tt&amp;gt;. Minicom only supports y-modem protocol.&lt;br /&gt;
&lt;br /&gt;
We do not have to resort to a direct serial file transfer however. The 'mtdparts' command that is used to define flash memory partitions can be used to reset the partition table to the defaults before running 'urescue' to start the TFTP server.&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; help mtdparts&lt;br /&gt;
  mtdparts &lt;br /&gt;
      - list partition table&lt;br /&gt;
  mtdparts delall&lt;br /&gt;
      - delete all partitions&lt;br /&gt;
  mtdparts del part-id&lt;br /&gt;
      - delete partition (e.g. part-id = nand0,1)&lt;br /&gt;
  mtdparts add &amp;lt;mtd-dev&amp;gt; &amp;lt;size&amp;gt;[@&amp;lt;offset&amp;gt;] [&amp;lt;name&amp;gt;] [ro]&lt;br /&gt;
      - add partition&lt;br /&gt;
  mtdparts default&lt;br /&gt;
      - reset partition table to defaults&lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
&lt;br /&gt;
In your other terminal window, run the ubi-flasher script.&lt;br /&gt;
&lt;br /&gt;
  $ ./flasher.js /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin&lt;br /&gt;
  Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
  Connection timed out&lt;br /&gt;
  Sending /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
  Firmware flashing begun!&lt;br /&gt;
  The firmware has been successfully sent to the router.&lt;br /&gt;
  In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up).&lt;br /&gt;
  This means that the router is flashing itself with the new firmware.&lt;br /&gt;
  Once the router goes back to having only the power LED lit, the router has been successfully flashed.&lt;br /&gt;
&lt;br /&gt;
In the terminal running Minicom you should see the firmware successfully flashing.&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:52289&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware Version: XW.ar934x.v6.0.0-OpenWrt-r47662&lt;br /&gt;
  Setting U-Boot environment variables&lt;br /&gt;
  Un-Protected 1 sectors&lt;br /&gt;
  Erasing Flash.... done&lt;br /&gt;
  Erased 1 sectors&lt;br /&gt;
  Writing to Flash... write addr: 9f040000&lt;br /&gt;
  done&lt;br /&gt;
  Protected 1 sectors&lt;br /&gt;
  Copying partition 'kernel' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x5 last 0x14 sector size 0x10000&lt;br /&gt;
  ................ done&lt;br /&gt;
  write addr: 9f050000&lt;br /&gt;
  Copying partition 'rootfs' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x15 last 0x6e sector size 0x10000&lt;br /&gt;
  .......................................................................................... done&lt;br /&gt;
  write addr: 9f150000&lt;br /&gt;
  &lt;br /&gt;
  Firmware update complete.&lt;br /&gt;
  &lt;br /&gt;
  Resetting...&lt;br /&gt;
  &lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ## Booting image at 9f050000 ...&lt;br /&gt;
     Image Name:   MIPS OpenWrt Linux-3.18.23&lt;br /&gt;
     Created:      2015-12-01   0:03:51 UTC&lt;br /&gt;
     Image Type:   MIPS Linux Kernel Image (lzma compressed)&lt;br /&gt;
     Data Size:    1135619 Bytes =  1.1 MB&lt;br /&gt;
     Load Address: 80060000&lt;br /&gt;
     Entry Point:  80060000&lt;br /&gt;
     Verifying Checksum at 0x9f050040 ...OK&lt;br /&gt;
     Uncompressing Kernel Image ... OK&lt;br /&gt;
  &lt;br /&gt;
  Starting kernel ...&lt;br /&gt;
  &lt;br /&gt;
  [    0.000000] Linux version 3.18.23 (sudowrt-builder@build-test2) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.04 r47662) ) #2 Mon Nov 5&lt;br /&gt;
&lt;br /&gt;
After it reboots if you see the first line mention 'sudowrt-builder', the device is booting the SudoWRT firmware build.&lt;br /&gt;
&lt;br /&gt;
You can press ENTER once it is finished, and it should drop into the command line for the SudoWRT system.&lt;br /&gt;
&lt;br /&gt;
  [   25.650000] jffs2: Newly-erased block contained word 0xdeadc0de at offset 0x00000000&lt;br /&gt;
  [   25.660000] done.&lt;br /&gt;
  [   25.660000] jffs2: notice: (993) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and.&lt;br /&gt;
  &lt;br /&gt;
  BusyBox v1.23.2 (2015-11-30 18:48:50 EST) built-in shell (ash)&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
    ._______.___    ._______.______  ._____  .___    .___ .______  ._____  &lt;br /&gt;
    :_ ____/|   |   : .____/:_ _   \ :_ ___\ |   |   : __|:      \ :_ ___\ &lt;br /&gt;
    |   _/  |   |   | : _/\ |   |   ||   |___|   |   | : ||       ||   |___&lt;br /&gt;
    |   |   |   |/\ |   /  \| . |   ||   /  ||   |/\ |   ||   |   ||   /  |&lt;br /&gt;
    |_. |   |   /  \|_.: __/|. ____/ |. __  ||   /  \|   ||___|   ||. __  |&lt;br /&gt;
      :/    |______/   :/    :/       :/ |. ||______/|___|    |___| :/ |. |&lt;br /&gt;
      :                      :        :   :/                        :   :/ &lt;br /&gt;
                                          :                             : &lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   sudo mesh v0.2 (fledgling.extender)&lt;br /&gt;
                                based on OpenWRT 15.05 (Chaos Calmer)&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   &amp;quot;When your rage is choking you, it is best to say nothing.&amp;quot; &lt;br /&gt;
                                              - Octavia E. Butler, Fledgling&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
  &lt;br /&gt;
  root@sudomesh-node:/#&lt;br /&gt;
&lt;br /&gt;
== Extender Node Installation ==&lt;br /&gt;
=== Installation Order ===&lt;br /&gt;
#Flash home nodes and extender nodes&lt;br /&gt;
#Get on roof and determine which direction to face the extender nodes&lt;br /&gt;
#Install J-Pole&lt;br /&gt;
#Crimp end onto Ethernet cable&lt;br /&gt;
#Run Ethernet cable from j-pole down to location of home node (either through a soffit indoors or to an outdoor enclosure)&lt;br /&gt;
#Crimp other end of Ethernet cable and connect to home node via a POE adaptor&lt;br /&gt;
#Install extender node on J-Pole using zip-ties - check lights to make sure unit is powered up&lt;br /&gt;
#Walk around the neighborhood to check the signal&lt;br /&gt;
&lt;br /&gt;
=== Gear Checklist ===&lt;br /&gt;
	&lt;br /&gt;
Protective and personal gear&lt;br /&gt;
*Wear clothes you can get dirty and sturdy boots for roof walking&lt;br /&gt;
*Sunscreen&lt;br /&gt;
*Sunglasses&lt;br /&gt;
*Pocketknife (for cutting zip ties etc)&lt;br /&gt;
*Ladder&lt;br /&gt;
*Safety harness &amp;amp; rope in a bucket&lt;br /&gt;
*Smart phone (to check signal and take pictures)&lt;br /&gt;
Home node gear&lt;br /&gt;
*2 flashed Western Digital Mynet N600 Home Nodes&lt;br /&gt;
*paperclip (to reset equipment)&lt;br /&gt;
*Laptop (to configure equipment)&lt;br /&gt;
*Plastic outdoor enclosure for router (optional)&lt;br /&gt;
*Power Strip&lt;br /&gt;
J-Pole gear&lt;br /&gt;
*J-Pole&lt;br /&gt;
*Latex gloves (for dealing with roofing sealant)&lt;br /&gt;
*Roofing sealant&lt;br /&gt;
*Ratchet set - 10mm for small bolts, 13mm for large bolts&lt;br /&gt;
*Corldless Drill&lt;br /&gt;
*3/16&amp;quot; drill bit for J-pole bolts&lt;br /&gt;
*Steel One-Hole Conduit Straps (for holding Ethernet cable along eves)&lt;br /&gt;
*Screws for the Steel one-hole straps&lt;br /&gt;
Ethernet cable gear&lt;br /&gt;
*Ethernet Spool&lt;br /&gt;
*Ethernet Ends&lt;br /&gt;
*Ethernet Crimper&lt;br /&gt;
*Laminated card showing the Ethernet cable order&lt;br /&gt;
*Label Maker - so you can know which cable is which&lt;br /&gt;
Extender node gear&lt;br /&gt;
*Flashed Ubiquiti Nanostation M2 or M5 extender Node(s)&lt;br /&gt;
*Power over Ethernet (POE) adapters&lt;br /&gt;
*Zip Ties&lt;/div&gt;</summary>
		<author><name>Gcg</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11073</id>
		<title>Mesh/WalkThrough</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11073"/>
		<updated>2018-03-03T01:19:59Z</updated>

		<summary type="html">&lt;p&gt;Gcg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Congratulations on choosing to become part of a People's Open Network! This is a walkthrough for flashing a node (a home router) with the SudoMesh's sudowrt-firmware (a custom build of OpenWRT) and then configuring it with makenode (a custom javascript tool developed by SudoMesh). At the end of the walkthrough, you'll be able to plug in your router and join the mesh. The walkthrough assumes you're using a linux-ish OS (mac OSX should work also) and that you have [https://help.ubuntu.com/community/UsingTheTerminal basic knowledge of the terminal]. The general idea of building your own mesh node consists of three steps, [[#Download/Build|downloading or compiling]] custom firmware, [[#Flash/Upload|flashing that firmware]] to the node (i.e. copying firmware to [https://en.wikipedia.org/wiki/Flash_memory flash memory]), and [[#makenode/Configure|configuring the node]] to function as part of a mesh (with a software tool such as makenode).&lt;br /&gt;
&lt;br /&gt;
Before you flash your router, it is recommended that you read the [[Home and extender nodes#Home_nodes|home node info]] to find out the router works as a mesh node.&lt;br /&gt;
&lt;br /&gt;
= Download/Build =&lt;br /&gt;
&lt;br /&gt;
Now that you have a node, you will probably want to learn how to flash it with the latest sudowrt-firmware. The first step is to download the firmware image file for your supported router. &lt;br /&gt;
&lt;br /&gt;
At the moment, we are supporting the following routers:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! OpenWRT Doc !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| TP-Link WDR3500 || [https://wiki.openwrt.org/toh/tp-link/tl-wdr3500 OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| TP-Link WDR3600 || [https://wiki.openwrt.org/toh/tp-link/tl-wdr3600 OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| TP-Link WDR4300 || [https://wiki.openwrt.org/toh/tp-link/tl-wdr4300 OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Western Digital MyNet N600 || [https://wiki.openwrt.org/toh/wd/n600 OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
|  Western Digital MyNet N750 || [https://wiki.openwrt.org/toh/wd/n750 OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Builds for other routers can be found on our [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/ builds server], though there is no guarantee the firmware will work with any given router.&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can build your own copy of the firmware images by following the guide in the [https://github.com/sudomesh/sudowrt-firmware sudowrt-firmware source].&lt;br /&gt;
&lt;br /&gt;
If you do not want to use a SudoMesh's OpenWRT image, you can also install [https://downloads.openwrt.org/ a standard OpenWRT] release and configure it from scratch.&lt;br /&gt;
&lt;br /&gt;
= Flash/Upload =&lt;br /&gt;
&lt;br /&gt;
Once you have a copy of the sudowrt-firmware intended for your router, you can proceed with flashing it to your router. There are different techniques for flashing each of the routers. Use the links above to the OpenWRT wiki and follow the instructions there to flash the router with the firmware you've downloaded.&lt;br /&gt;
&lt;br /&gt;
For convenience, if you have a Western Digital MyNet N600 or N750, follow these instructions:&lt;br /&gt;
&lt;br /&gt;
== Reset your new N750/N600 router ==&lt;br /&gt;
* Plug one end of the Ethernet cable into your laptop.&lt;br /&gt;
* Plug the other end of the Ethernet cable into one of the normal ports (LAN) on the router (not the Internet/WAN port).&lt;br /&gt;
* With the router plugged in and power turned off, push a pin into the reset hole and hold it.&lt;br /&gt;
* With the pin held down, turn on the router power button.&lt;br /&gt;
* Watch the front blue light - they will flash on and off a few times.&lt;br /&gt;
* Once the front blue is flashing, you can let go of the pin.&lt;br /&gt;
&lt;br /&gt;
== Configure your computer's network settings ==&lt;br /&gt;
On your laptop edit your network settings to reflect the following:&lt;br /&gt;
&lt;br /&gt;
* Network Manager Method: Manual&lt;br /&gt;
* IP Address: 192.168.1.10 (some devices will only accept from this IP)&lt;br /&gt;
* Subnet Mask: 255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0 (Or leave blank)&lt;br /&gt;
&lt;br /&gt;
You can also use the commands:&lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; down &lt;br /&gt;
  sudo ip addr add 192.168.1.10/24 dev &amp;lt;eth_interface&amp;gt; &lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; up&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;eth_interface&amp;gt; is the name of your ethernet interface found using `ip addr` (common names include eth0, enp3s0, ...)&lt;br /&gt;
&lt;br /&gt;
See Network Configuration Guides: [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20Linux Linux] [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20MacOS%20X Mac]&lt;br /&gt;
&lt;br /&gt;
== Upload sudowrt-firmware ==&lt;br /&gt;
In your web browser:&lt;br /&gt;
&lt;br /&gt;
* Go to [http://192.168.1.1 http://192.168.1.1], if the reset was successful, you should see the following page:&lt;br /&gt;
[[File:Screenshot from 2017-04-04 18-27-09.png|thumb|center|upright=2]]&lt;br /&gt;
* Click 'Browse' and select the firmware file you downloaded&lt;br /&gt;
* Click Upload and you will be taken to an exciting countdown timer:&lt;br /&gt;
[[File:Screenshot from 2017-04-02 17-20-51.png|thumb|center|upright=2]]&lt;br /&gt;
&lt;br /&gt;
Note: Sometimes the firmware upload will not complete. After you click on 'Upload' You should get a page with a countdown of 120+ seconds. If this does not occur, reboot the router with the pin reset button depressed (as noted above), and try again.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= makenode/Configure =&lt;br /&gt;
After flashing sudowrt-firmware to your router you will need to configure it work on a People's Open Network.&lt;br /&gt;
&lt;br /&gt;
== Reconfigure your computer's network settings ==&lt;br /&gt;
A freshly flashed node automatically sets its IP address to 172.22.0.1. You will need to configure your laptop to use the following network settings to communicate with the node.&lt;br /&gt;
&lt;br /&gt;
* IP address: 172.22.0.10 &lt;br /&gt;
* Subnet mask:  255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0&lt;br /&gt;
&lt;br /&gt;
Or use the commands&lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; down &lt;br /&gt;
  sudo ip addr add 172.22.0.10/24 dev &amp;lt;eth_interface&amp;gt; &lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; up&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;eth_interface&amp;gt; is the name of your ethernet interface found using `ip addr` (common names include eth0, enp3s0, ...)&lt;br /&gt;
&lt;br /&gt;
See Network Configuration Guides: [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20Linux Linux] [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20MacOS%20X Mac]&lt;br /&gt;
&lt;br /&gt;
To test that the flashing was successful, feel free to try connecting to your unconfigured router by opening a browser and navigating to http://172.22.0.1&lt;br /&gt;
if the flash was successfull you should be brought to the following screen:&lt;br /&gt;
&lt;br /&gt;
[[File:Peoplesopen-dash.png|thumb|center|upright=2]]&lt;br /&gt;
&lt;br /&gt;
After you have successfully flashed your router with OpenWRT, you will need to use [https://github.com/sudomesh/makenode makenode] to complete the setup. makenode registers your node on the peoplesopen network, resulting in the assignment of a 64 IPv4 address subnet to your node, in addition to applying basic configuration.&lt;br /&gt;
&lt;br /&gt;
== Preparing your laptop for makenode ==&lt;br /&gt;
&lt;br /&gt;
You will need to install the dependencies for [https://github.com/sudomesh/makenode makenode].&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
&lt;br /&gt;
If you are working with a fresh installation of one of the operating systems listed in the compatibility checklist, you will need to install a few pieces of software. &lt;br /&gt;
To install them, open your terminal and enter the following commands.&lt;br /&gt;
&lt;br /&gt;
  sudo apt update&lt;br /&gt;
  sudo apt install curl git dropbear&lt;br /&gt;
  curl -o- ht&amp;lt;span&amp;gt;tps://&amp;lt;/span&amp;gt;raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash&lt;br /&gt;
  export NVM_DIR=&amp;quot;$HOME/.nvm&amp;quot;  # or you can close and reopen your terminal before using nvm&lt;br /&gt;
  nvm install 7.10&lt;br /&gt;
&lt;br /&gt;
==== OS Compatibility checklist ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! OS !! Compatible !! Link to ISO !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 16.04 LTS || yes || http://releases.ubuntu.com/16.04/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 14.04 LTS || please verify || http://releases.ubuntu.com/14.04/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian 9.3 Stretch || yes || https://www.debian.org/distrib/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian 8.1 Jessie || yes || https://www.debian.org/releases/jessie/debian-installer/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Arch Linux || yes || https://www.archlinux.org/download/ || you may have to build dropbear from [https://github.com/mkj/dropbear source]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Mac ===&lt;br /&gt;
&lt;br /&gt;
Install the [http://brew.sh/ Homebrew] package manager, then install the required binaries.&lt;br /&gt;
&lt;br /&gt;
  brew install nodejs&lt;br /&gt;
  brew install git&lt;br /&gt;
  brew install npm&lt;br /&gt;
  brew install dropbear&lt;br /&gt;
  brew install gnu-tar&lt;br /&gt;
  brew install fakeroot&lt;br /&gt;
&lt;br /&gt;
=== Windows 10 (Experimental)===&lt;br /&gt;
&lt;br /&gt;
'''Note: Windows is not currently recommened for setting up a node due to Dropbear not supporting Windows. What follows is instructions for Windows Subsytem for Linux.'''&lt;br /&gt;
&lt;br /&gt;
Due to Dropbear requirements your best bet is to use Windows Subsystem for Linux (WSL) and follow the instructions for Linux with additional instructions to get WSL set up. Follow the instructions for [https://docs.microsoft.com/en-us/windows/wsl/install-win10 installing] WSL on your Windows 10 PC. For now Ubuntu has been tested and appears to work. SUSE and other WSL flavors have not been tested.&lt;br /&gt;
&lt;br /&gt;
Once WSL is installed. Install dependencies (assuming Ubuntu).&lt;br /&gt;
&lt;br /&gt;
  sudo apt update&lt;br /&gt;
  sudo apt install python&lt;br /&gt;
  sudo apt install make&lt;br /&gt;
  sudo apt install build-essential&lt;br /&gt;
&lt;br /&gt;
WSL doesn't fully support SYSV IPC so fakeroot needs to be rebuilt using tcp.&lt;br /&gt;
&lt;br /&gt;
  sudo update-alternatives --set fakeroot /usr/bin/fakeroot-tcp&lt;br /&gt;
&lt;br /&gt;
Replace 'node-uuid' with 'uuid'&lt;br /&gt;
&lt;br /&gt;
  npm uninstall --save node-uuid&lt;br /&gt;
  npm install --save uuid&lt;br /&gt;
&lt;br /&gt;
Follow Linux [[Mesh/WalkThrough#Linux | instructions]] for installing Dropbear and dependencies.&lt;br /&gt;
&lt;br /&gt;
== Install and run makenode ==&lt;br /&gt;
&lt;br /&gt;
From your terminal, run the following:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/makenode.git&lt;br /&gt;
  cd makenode&lt;br /&gt;
  npm install&lt;br /&gt;
  cp settings.js.example settings.js&lt;br /&gt;
&lt;br /&gt;
The default settings in &amp;lt;tt&amp;gt;settings.js&amp;lt;/tt&amp;gt; should suffice in most cases, but if you need to make changes, do them in &amp;lt;tt&amp;gt;settings.js&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Make sure the Ethernet cable is connected to the 4th port on the router.&lt;br /&gt;
&lt;br /&gt;
Once your network configuration is refreshed, use the following command to run the script and configure your node:&lt;br /&gt;
&lt;br /&gt;
  ./makenode.js&lt;br /&gt;
&lt;br /&gt;
Now the configuration wizard will ask you a number of questions:&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;enter valid hostname&amp;quot; - name of the box, will only be seen when you SSH into the router - For info on what constitutes a valid hostname, see: [http://stackoverflow.com/questions/3523028/valid-characters-of-a-hostname valid characters of a hostname]&lt;br /&gt;
* &amp;quot;max share upstream bandwidth&amp;quot; - how much of your home network upstream bandwidth you wish to share with the mesh network, measured in kbps (kilobits per second). So if you'd like to share 10mbps (megabits per second) enter &amp;quot;10000&amp;quot; or if you want to share 256kbps (kilobits per second) enter &amp;quot;256&amp;quot;. You may want to run a [http://www.dslreports.com/speedtest speed test] to find out how much bandwidth you have and determine how much you want to share.&lt;br /&gt;
* &amp;quot;max share downstream bandwidth&amp;quot; - how much of your home network upstream bandwidth you wish to share with the mesh network - eg. &amp;quot;512&amp;quot; would share 512 kbps&lt;br /&gt;
* &amp;quot;admin user password&amp;quot; - used to log into the admin dashboard where you can modify some settings at http://172.22.0.1 (if on wired connection) or http://172.30.0.1 (if on private wifi network)&lt;br /&gt;
* &amp;quot;root user password&amp;quot; - used to SSH into the router so you modify files and manually configure your router. Make sure that your root password is strong! If you don't enter a root password, a strong one will be generated and will be logged to screen. It's generally preferable to not use the root password at all and instead add an ssh key to the device, ssh keys are stored in /etc/dropbear/authorized_keys.&lt;br /&gt;
* &amp;quot;wifi transmit power&amp;quot; - set this to 23 dBm (which is equivalent to 200 milliwatts)&lt;br /&gt;
* &amp;quot;private wifi SSID&amp;quot; - name of the private wireless network that can be used to administer this router. It will be publicly visible so pick something amusing or descriptive.&lt;br /&gt;
* &amp;quot;private wifi password&amp;quot; - password for the private wireless network named in the previous step. It's the one you'll want to give to friends, so come up with something amusing or memorable. Note: it must be at least 8 characters long.&lt;br /&gt;
* &amp;quot;operator name&amp;quot; - name that the network admins can associate with the node - so use a unique name like your first name or location name&lt;br /&gt;
* &amp;quot;Operator email&amp;quot; - email that network admis can contact you at&lt;br /&gt;
* &amp;quot;Expected node address (optional)&amp;quot; - address location of node&lt;br /&gt;
&lt;br /&gt;
= Testing =&lt;br /&gt;
&lt;br /&gt;
After you're finished with the makenode configuration, your home node should be available for connections via your private WiFi SSID. Additionally the public SSID 'peoplesopen.net' will be available. &lt;br /&gt;
&lt;br /&gt;
A third interface named 'pplsopen.net-node2node' will be detectable as well. This is the interface used for the nodes to mesh with each other.&lt;br /&gt;
&lt;br /&gt;
At this point you're setup. For more information on using your node, such as accessing the web-based management interface, see [[Home and extender nodes#Home_nodes|Home node info]]&lt;br /&gt;
&lt;br /&gt;
For more technical details on the internals of the home node, see the [[Mesh/Technical_Overview]]&lt;br /&gt;
&lt;br /&gt;
For more in depth testing procedures, see our [https://github.com/sudomesh/sudowrt-firmware/blob/master/operator_manual.md mesh node operator's manual].&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
You may need to replace the `node-uuid` module with `uuid` for makenode to work, to fix this using the following commands:&lt;br /&gt;
&lt;br /&gt;
  npm uninstall --save node-uuid&lt;br /&gt;
  npm install --save uuid&lt;br /&gt;
&lt;br /&gt;
If you get the error &amp;quot;no such file or directory&amp;quot;, open a new terminal and run this command to ensure that &amp;lt;tt&amp;gt;node&amp;lt;/tt&amp;gt; points to your NodeJS executable:&lt;br /&gt;
&lt;br /&gt;
  sudo ln -s nodejs node&lt;br /&gt;
&lt;br /&gt;
In the new terminal, return to the 'makenode' source code directory and try again:&lt;br /&gt;
&lt;br /&gt;
  npm install&lt;br /&gt;
  ./makenode.js&lt;br /&gt;
&lt;br /&gt;
= Flashing Extender Nodes =&lt;br /&gt;
&lt;br /&gt;
If you would like to make long distance point-to-point connections between two or more home nodes, you'll want to setup an extender node (a roof mounted antenna).&lt;br /&gt;
&lt;br /&gt;
See [[Mesh/Flashing extender nodes]]&lt;/div&gt;</summary>
		<author><name>Gcg</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11072</id>
		<title>Mesh/WalkThrough</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11072"/>
		<updated>2018-03-03T01:19:17Z</updated>

		<summary type="html">&lt;p&gt;Gcg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Congratulations on choosing to become part of a People's Open Network! This is a walkthrough for flashing a node (a home router) with the SudoMesh's sudowrt-firmware (a custom build of OpenWRT) and then configuring it with makenode (a custom javascript tool developed by SudoMesh). At the end of the walkthrough, you'll be able to plug in your router and join the mesh. The walkthrough assumes you're using a linux-ish OS (mac OSX should work also) and that you have [https://help.ubuntu.com/community/UsingTheTerminal basic knowledge of the terminal]. The general idea of building your own mesh node consists of three steps, [[#Download/Build|downloading or compiling]] custom firmware, [[#Flash/Upload|flashing that firmware]] to the node (i.e. copying firmware to [https://en.wikipedia.org/wiki/Flash_memory flash memory]), and [[#makenode/Configure|configuring the node]] to function as part of a mesh (with a software tool such as makenode).&lt;br /&gt;
&lt;br /&gt;
Before you flash your router, it is recommended that you read the [[Home and extender nodes#Home_nodes|home node info]] to find out the router works as a mesh node.&lt;br /&gt;
&lt;br /&gt;
= Download/Build =&lt;br /&gt;
&lt;br /&gt;
Now that you have a node, you will probably want to learn how to flash it with the latest sudowrt-firmware. The first step is to download the firmware image file for your supported router. &lt;br /&gt;
&lt;br /&gt;
At the moment, we are supporting the following routers:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! OpenWRT Doc !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| TP-Link WDR3500 || [https://wiki.openwrt.org/toh/tp-link/tl-wdr3500 OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| TP-Link WDR3600 || [https://wiki.openwrt.org/toh/tp-link/tl-wdr3600 OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| TP-Link WDR4300 || [https://wiki.openwrt.org/toh/tp-link/tl-wdr4300 OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Western Digital MyNet N600 || [https://wiki.openwrt.org/toh/wd/n600 OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
|  Western Digital MyNet N750 || [https://wiki.openwrt.org/toh/wd/n750 OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Builds for other routers can be found on our [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/ builds server], though there is no guarantee the firmware will work with any given router.&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can build your own copy of the firmware images by following the guide in the [https://github.com/sudomesh/sudowrt-firmware sudowrt-firmware source].&lt;br /&gt;
&lt;br /&gt;
If you do not want to use a SudoMesh's OpenWRT image, you can also install [https://downloads.openwrt.org/ a standard OpenWRT] release and configure it from scratch.&lt;br /&gt;
&lt;br /&gt;
= Flash/Upload =&lt;br /&gt;
&lt;br /&gt;
Once you have a copy of the sudowrt-firmware intended for your router, you can proceed with flashing it to your router. There are different techniques for flashing each of the routers. Use the links above to the OpenWRT wiki and follow the instructions there to flash the router with the firmware you've downloaded.&lt;br /&gt;
&lt;br /&gt;
For convenience, if you have a Western Digital MyNet N600 or N750, follow these instructions:&lt;br /&gt;
&lt;br /&gt;
== Reset your new N750/N600 router ==&lt;br /&gt;
* Plug one end of the Ethernet cable into your laptop.&lt;br /&gt;
* Plug the other end of the Ethernet cable into one of the normal ports (LAN) on the router (not the Internet/WAN port).&lt;br /&gt;
* With the router plugged in and power turned off, push a pin into the reset hole and hold it.&lt;br /&gt;
* With the pin held down, turn on the router power button.&lt;br /&gt;
* Watch the front blue light - they will flash on and off a few times.&lt;br /&gt;
* Once the front blue is flashing, you can let go of the pin.&lt;br /&gt;
&lt;br /&gt;
== Configure your computer's network settings ==&lt;br /&gt;
On your laptop edit your network settings to reflect the following:&lt;br /&gt;
&lt;br /&gt;
* Network Manager Method: Manual&lt;br /&gt;
* IP Address: 192.168.1.10 (some devices will only accept from this IP)&lt;br /&gt;
* Subnet Mask: 255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0 (Or leave blank)&lt;br /&gt;
&lt;br /&gt;
You can also use the commands:&lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; down &lt;br /&gt;
  sudo ip addr add 192.168.1.10/24 dev &amp;lt;eth_interface&amp;gt; &lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; up&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;eth_interface&amp;gt; is the name of your ethernet interface found using ifconfig (common names include eth0, enp3s0, ...)&lt;br /&gt;
&lt;br /&gt;
See Network Configuration Guides: [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20Linux Linux] [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20MacOS%20X Mac]&lt;br /&gt;
&lt;br /&gt;
== Upload sudowrt-firmware ==&lt;br /&gt;
In your web browser:&lt;br /&gt;
&lt;br /&gt;
* Go to [http://192.168.1.1 http://192.168.1.1], if the reset was successful, you should see the following page:&lt;br /&gt;
[[File:Screenshot from 2017-04-04 18-27-09.png|thumb|center|upright=2]]&lt;br /&gt;
* Click 'Browse' and select the firmware file you downloaded&lt;br /&gt;
* Click Upload and you will be taken to an exciting countdown timer:&lt;br /&gt;
[[File:Screenshot from 2017-04-02 17-20-51.png|thumb|center|upright=2]]&lt;br /&gt;
&lt;br /&gt;
Note: Sometimes the firmware upload will not complete. After you click on 'Upload' You should get a page with a countdown of 120+ seconds. If this does not occur, reboot the router with the pin reset button depressed (as noted above), and try again.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= makenode/Configure =&lt;br /&gt;
After flashing sudowrt-firmware to your router you will need to configure it work on a People's Open Network.&lt;br /&gt;
&lt;br /&gt;
== Reconfigure your computer's network settings ==&lt;br /&gt;
A freshly flashed node automatically sets its IP address to 172.22.0.1. You will need to configure your laptop to use the following network settings to communicate with the node.&lt;br /&gt;
&lt;br /&gt;
* IP address: 172.22.0.10 &lt;br /&gt;
* Subnet mask:  255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0&lt;br /&gt;
&lt;br /&gt;
Or use the commands&lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; down &lt;br /&gt;
  sudo ip addr add 172.22.0.10/24 dev &amp;lt;eth_interface&amp;gt; &lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; up&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;eth_interface&amp;gt; is the name of your ethernet interface found using ifconfig (common names include eth0, enp3s0, ...)&lt;br /&gt;
&lt;br /&gt;
See Network Configuration Guides: [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20Linux Linux] [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20MacOS%20X Mac]&lt;br /&gt;
&lt;br /&gt;
To test that the flashing was successful, feel free to try connecting to your unconfigured router by opening a browser and navigating to http://172.22.0.1&lt;br /&gt;
if the flash was successfull you should be brought to the following screen:&lt;br /&gt;
&lt;br /&gt;
[[File:Peoplesopen-dash.png|thumb|center|upright=2]]&lt;br /&gt;
&lt;br /&gt;
After you have successfully flashed your router with OpenWRT, you will need to use [https://github.com/sudomesh/makenode makenode] to complete the setup. makenode registers your node on the peoplesopen network, resulting in the assignment of a 64 IPv4 address subnet to your node, in addition to applying basic configuration.&lt;br /&gt;
&lt;br /&gt;
== Preparing your laptop for makenode ==&lt;br /&gt;
&lt;br /&gt;
You will need to install the dependencies for [https://github.com/sudomesh/makenode makenode].&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
&lt;br /&gt;
If you are working with a fresh installation of one of the operating systems listed in the compatibility checklist, you will need to install a few pieces of software. &lt;br /&gt;
To install them, open your terminal and enter the following commands.&lt;br /&gt;
&lt;br /&gt;
  sudo apt update&lt;br /&gt;
  sudo apt install curl git dropbear&lt;br /&gt;
  curl -o- ht&amp;lt;span&amp;gt;tps://&amp;lt;/span&amp;gt;raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash&lt;br /&gt;
  export NVM_DIR=&amp;quot;$HOME/.nvm&amp;quot;  # or you can close and reopen your terminal before using nvm&lt;br /&gt;
  nvm install 7.10&lt;br /&gt;
&lt;br /&gt;
==== OS Compatibility checklist ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! OS !! Compatible !! Link to ISO !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 16.04 LTS || yes || http://releases.ubuntu.com/16.04/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 14.04 LTS || please verify || http://releases.ubuntu.com/14.04/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian 9.3 Stretch || yes || https://www.debian.org/distrib/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian 8.1 Jessie || yes || https://www.debian.org/releases/jessie/debian-installer/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Arch Linux || yes || https://www.archlinux.org/download/ || you may have to build dropbear from [https://github.com/mkj/dropbear source]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Mac ===&lt;br /&gt;
&lt;br /&gt;
Install the [http://brew.sh/ Homebrew] package manager, then install the required binaries.&lt;br /&gt;
&lt;br /&gt;
  brew install nodejs&lt;br /&gt;
  brew install git&lt;br /&gt;
  brew install npm&lt;br /&gt;
  brew install dropbear&lt;br /&gt;
  brew install gnu-tar&lt;br /&gt;
  brew install fakeroot&lt;br /&gt;
&lt;br /&gt;
=== Windows 10 (Experimental)===&lt;br /&gt;
&lt;br /&gt;
'''Note: Windows is not currently recommened for setting up a node due to Dropbear not supporting Windows. What follows is instructions for Windows Subsytem for Linux.'''&lt;br /&gt;
&lt;br /&gt;
Due to Dropbear requirements your best bet is to use Windows Subsystem for Linux (WSL) and follow the instructions for Linux with additional instructions to get WSL set up. Follow the instructions for [https://docs.microsoft.com/en-us/windows/wsl/install-win10 installing] WSL on your Windows 10 PC. For now Ubuntu has been tested and appears to work. SUSE and other WSL flavors have not been tested.&lt;br /&gt;
&lt;br /&gt;
Once WSL is installed. Install dependencies (assuming Ubuntu).&lt;br /&gt;
&lt;br /&gt;
  sudo apt update&lt;br /&gt;
  sudo apt install python&lt;br /&gt;
  sudo apt install make&lt;br /&gt;
  sudo apt install build-essential&lt;br /&gt;
&lt;br /&gt;
WSL doesn't fully support SYSV IPC so fakeroot needs to be rebuilt using tcp.&lt;br /&gt;
&lt;br /&gt;
  sudo update-alternatives --set fakeroot /usr/bin/fakeroot-tcp&lt;br /&gt;
&lt;br /&gt;
Replace 'node-uuid' with 'uuid'&lt;br /&gt;
&lt;br /&gt;
  npm uninstall --save node-uuid&lt;br /&gt;
  npm install --save uuid&lt;br /&gt;
&lt;br /&gt;
Follow Linux [[Mesh/WalkThrough#Linux | instructions]] for installing Dropbear and dependencies.&lt;br /&gt;
&lt;br /&gt;
== Install and run makenode ==&lt;br /&gt;
&lt;br /&gt;
From your terminal, run the following:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/makenode.git&lt;br /&gt;
  cd makenode&lt;br /&gt;
  npm install&lt;br /&gt;
  cp settings.js.example settings.js&lt;br /&gt;
&lt;br /&gt;
The default settings in &amp;lt;tt&amp;gt;settings.js&amp;lt;/tt&amp;gt; should suffice in most cases, but if you need to make changes, do them in &amp;lt;tt&amp;gt;settings.js&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Make sure the Ethernet cable is connected to the 4th port on the router.&lt;br /&gt;
&lt;br /&gt;
Once your network configuration is refreshed, use the following command to run the script and configure your node:&lt;br /&gt;
&lt;br /&gt;
  ./makenode.js&lt;br /&gt;
&lt;br /&gt;
Now the configuration wizard will ask you a number of questions:&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;enter valid hostname&amp;quot; - name of the box, will only be seen when you SSH into the router - For info on what constitutes a valid hostname, see: [http://stackoverflow.com/questions/3523028/valid-characters-of-a-hostname valid characters of a hostname]&lt;br /&gt;
* &amp;quot;max share upstream bandwidth&amp;quot; - how much of your home network upstream bandwidth you wish to share with the mesh network, measured in kbps (kilobits per second). So if you'd like to share 10mbps (megabits per second) enter &amp;quot;10000&amp;quot; or if you want to share 256kbps (kilobits per second) enter &amp;quot;256&amp;quot;. You may want to run a [http://www.dslreports.com/speedtest speed test] to find out how much bandwidth you have and determine how much you want to share.&lt;br /&gt;
* &amp;quot;max share downstream bandwidth&amp;quot; - how much of your home network upstream bandwidth you wish to share with the mesh network - eg. &amp;quot;512&amp;quot; would share 512 kbps&lt;br /&gt;
* &amp;quot;admin user password&amp;quot; - used to log into the admin dashboard where you can modify some settings at http://172.22.0.1 (if on wired connection) or http://172.30.0.1 (if on private wifi network)&lt;br /&gt;
* &amp;quot;root user password&amp;quot; - used to SSH into the router so you modify files and manually configure your router. Make sure that your root password is strong! If you don't enter a root password, a strong one will be generated and will be logged to screen. It's generally preferable to not use the root password at all and instead add an ssh key to the device, ssh keys are stored in /etc/dropbear/authorized_keys.&lt;br /&gt;
* &amp;quot;wifi transmit power&amp;quot; - set this to 23 dBm (which is equivalent to 200 milliwatts)&lt;br /&gt;
* &amp;quot;private wifi SSID&amp;quot; - name of the private wireless network that can be used to administer this router. It will be publicly visible so pick something amusing or descriptive.&lt;br /&gt;
* &amp;quot;private wifi password&amp;quot; - password for the private wireless network named in the previous step. It's the one you'll want to give to friends, so come up with something amusing or memorable. Note: it must be at least 8 characters long.&lt;br /&gt;
* &amp;quot;operator name&amp;quot; - name that the network admins can associate with the node - so use a unique name like your first name or location name&lt;br /&gt;
* &amp;quot;Operator email&amp;quot; - email that network admis can contact you at&lt;br /&gt;
* &amp;quot;Expected node address (optional)&amp;quot; - address location of node&lt;br /&gt;
&lt;br /&gt;
= Testing =&lt;br /&gt;
&lt;br /&gt;
After you're finished with the makenode configuration, your home node should be available for connections via your private WiFi SSID. Additionally the public SSID 'peoplesopen.net' will be available. &lt;br /&gt;
&lt;br /&gt;
A third interface named 'pplsopen.net-node2node' will be detectable as well. This is the interface used for the nodes to mesh with each other.&lt;br /&gt;
&lt;br /&gt;
At this point you're setup. For more information on using your node, such as accessing the web-based management interface, see [[Home and extender nodes#Home_nodes|Home node info]]&lt;br /&gt;
&lt;br /&gt;
For more technical details on the internals of the home node, see the [[Mesh/Technical_Overview]]&lt;br /&gt;
&lt;br /&gt;
For more in depth testing procedures, see our [https://github.com/sudomesh/sudowrt-firmware/blob/master/operator_manual.md mesh node operator's manual].&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
You may need to replace the `node-uuid` module with `uuid` for makenode to work, to fix this using the following commands:&lt;br /&gt;
&lt;br /&gt;
  npm uninstall --save node-uuid&lt;br /&gt;
  npm install --save uuid&lt;br /&gt;
&lt;br /&gt;
If you get the error &amp;quot;no such file or directory&amp;quot;, open a new terminal and run this command to ensure that &amp;lt;tt&amp;gt;node&amp;lt;/tt&amp;gt; points to your NodeJS executable:&lt;br /&gt;
&lt;br /&gt;
  sudo ln -s nodejs node&lt;br /&gt;
&lt;br /&gt;
In the new terminal, return to the 'makenode' source code directory and try again:&lt;br /&gt;
&lt;br /&gt;
  npm install&lt;br /&gt;
  ./makenode.js&lt;br /&gt;
&lt;br /&gt;
= Flashing Extender Nodes =&lt;br /&gt;
&lt;br /&gt;
If you would like to make long distance point-to-point connections between two or more home nodes, you'll want to setup an extender node (a roof mounted antenna).&lt;br /&gt;
&lt;br /&gt;
See [[Mesh/Flashing extender nodes]]&lt;/div&gt;</summary>
		<author><name>Gcg</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Minutes&amp;diff=11071</id>
		<title>Mesh/Minutes</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Minutes&amp;diff=11071"/>
		<updated>2018-03-02T20:38:57Z</updated>

		<summary type="html">&lt;p&gt;Gcg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable sortable collapsible&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;| Past Meeting Notes&lt;br /&gt;
|-&lt;br /&gt;
! data-sort-type=&amp;quot;isoDate&amp;quot; | date&lt;br /&gt;
! class=&amp;quot;unsortable&amp;quot; | comments&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/27_Feb_2018|2018-02-27]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/20_Feb_2018|2018-02-20]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/17_Feb_2018|2018-02-17]]&lt;br /&gt;
| Strategic plan meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/13_Feb_2018|2018-02-13]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/06_Feb_2018|2018-02-06]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/30_Jan_2018|2018-01-30]]&lt;br /&gt;
| Monthly general meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/23_Jan_2018|2018-01-23]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/16_Jan_2018|2018-01-16]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/09_Jan_2018|2018-01-09]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/02_Jan_2018|2018-01-02]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/26_Dec_2017|2017-12-26]]&lt;br /&gt;
| Monthly general meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/19_Dec_2017|2017-12-19]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/12_Dec_2017|2017-12-12]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/05_Dec_2017|2017-12-05]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/28_Nov_2017|2017-11-28]]&lt;br /&gt;
| Monthly general meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/21_Nov_2017|2017-11-21]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/14_Nov_2017|2017-11-14]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/24_Oct_2017|2017-10-24]]&lt;br /&gt;
| Monthly general meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/17_Oct_2017|2017-10-17]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/10_Oct_2017|2017-10-10]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/03_Oct_2017|2017-10-03]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/26_Sep_2017|2017-09-26]]&lt;br /&gt;
| Monthly general meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/19_Sep_2017|2017-09-19]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/12_Sep_2017|2017-09-12]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/11_Sep_2017|2017-09-11]]&lt;br /&gt;
| Website redesign session&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/05_Sep_2017|2017-09-05]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/29_Aug_2017|2017-08-29]]&lt;br /&gt;
| Monthly general meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/22_Aug_2017|2017-08-22]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/15_Aug_2017|2017-08-15]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/08_Aug_2017|2017-08-08]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/01_Aug_2017|2017-08-01]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/18_July_2017|2017-07-18]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/11_July_2017|2017-07-11]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/4_July_2017|2017-07-4]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/20_June_2017|2017-06-20]]&lt;br /&gt;
| Monthly general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/13_June_2017|2017-06-13]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/11_June_2017|2017-06-11]]&lt;br /&gt;
| Temescal street fair report-back&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/6_June_2017|2017-06-06]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/30_May_2017|2017-05-30]]&lt;br /&gt;
| Monthly general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/16_May_2017|2017-05-16]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/9_May_2017|2017-05-09]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/02_May_2017|2017-05-02]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/25_April_2017|2017-04-25]]&lt;br /&gt;
| Monthly general meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/18_April_2017|2017-04-18]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/17_April_2017|2017-04-17]]&lt;br /&gt;
| Annual sudo mesh board meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/11_April_2017|2017-04-11]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/4_April_2017|2017-04-04]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/28_March_2017|2017-03-28]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/21_March_2017|2017-03-21]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/14_March_2017|2017-03-14]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/07_March_2017|2017-03-07]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/28_February_2017|2017-02-28]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/21_February_2017|2017-02-21]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/10_February_2017|2017-02-10]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/07_February_2017|2017-02-07]]&lt;br /&gt;
| Organizing &amp;quot;Build Your Own Internet&amp;quot; Workshop&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/05_July_2016|2016-07-05]]&lt;br /&gt;
| Videochat meeting with nycmesh&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/22_June_2016|2016-06-22]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/07_June_2016|2016-06-07]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/23_February_2016|2016-02-23]]&lt;br /&gt;
| Monthly general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/09_February_2016|2016-02-09]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/02_February_2016|2016-02-02]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/26_January_2016|2016-01-26]]&lt;br /&gt;
| Monthly general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/27_October_2015|2015-10-27]]&lt;br /&gt;
| Monthly general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/06_October_2015|2015-10-06]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/29_September_2015|2015-09-29]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/22_September_2015|2015-09-22]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/15_September_2015|2015-09-15]]&lt;br /&gt;
| Second annual board meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/08_September_2015|2015-09-08]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/01_September_2015|2015-09-01]]&lt;br /&gt;
| Monthly general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/07_April_2015|2015-04-07]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/26_March_2015|2015-03-26]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/17_March_2015|2015-03-17]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/10_March_2015|2015-03-10]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/26_February_2015|2015-02-26]]&lt;br /&gt;
| Big general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/24_February_2015|2015-02-24]]&lt;br /&gt;
| Hacknight&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/19_February_2015|2015-02-19]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/05_February_2015|2015-02-05]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/03_February_2015|2015-02-04]]&lt;br /&gt;
| Hacknight&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/29_January_2015|2015-01-29]]&lt;br /&gt;
| Big general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/24_January_2015|2015-01-24]]&lt;br /&gt;
| Mesh mini-retreat&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/22_January_2015|2015-01-22]]&lt;br /&gt;
| Weekly general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/15_January_2015|2015-01-15]]&lt;br /&gt;
| Weekly general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/30_December_2014|2014-12-30]]&lt;br /&gt;
| Big general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/18_December_2014|2014-12-18]]&lt;br /&gt;
| Weekly general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/13_November_2014|2014-11-13]]&lt;br /&gt;
| Weekly general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/21_October_2014|2014-10-21]]&lt;br /&gt;
| Hacknight&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/16_October_2014|2014-10-16]]&lt;br /&gt;
| Weekly general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/09_October_2014|2014-10-09]]&lt;br /&gt;
| Weekly general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/02_October_2014|2014-10-02]]&lt;br /&gt;
| Weekly general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/25_September_2014|2014-09-25]]&lt;br /&gt;
| Big general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/28_August_2014|2014-08-28]]&lt;br /&gt;
| Big general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/21_August_2014|2014-08-21]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/07_August_2014|2014-08-07]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/31_July_2014|2014-07-31]]&lt;br /&gt;
| Big general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/17_July_2014|2014-07-17]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/15_July_2014|2014-07-15]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/10_July_2014|2014-07-10]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/06_July_2014|2014-07-06]]&lt;br /&gt;
| Hackathon Day 2!&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/05_July_2014|2014-07-05]]&lt;br /&gt;
| Hackathon Day 1!&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/03_July_2014|2014-07-03]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/12_June_2014|2014-06-12]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/05_June_2014|2014-06-05]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/29_May_2014|2014-05-29]]&lt;br /&gt;
| General meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/27_May_2014|2014-05-27]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/20_May_2014|2014-05-20]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/13_May_2014|2014-05-13]]&lt;br /&gt;
| First Tuesday meeting ^.^&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/08_May_2014|2014-05-08]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/01_May_2014|2014-05-01]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/24_April_2014|2014-04-24]]&lt;br /&gt;
| General meeting!&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/17_April_2014|2014-04-17]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/03_April_2014|2014-04-03]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/27_March_2014|2014-03-27]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/20_March_2014|2014-03-20]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/13_March_2014|2014-03-13]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/27_February_2014|2014-02-27]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/20_February_2014|2014-02-20]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/13_February_2014|2014-02-13]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/6_February_2014|2014-02-06]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/30_January_2014|2014-01-30]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/23_January_2014|2014-01-23]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/16_January_2014|2014-01-16]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 31 December - 09 January&lt;br /&gt;
| Holidaze Break&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/26_December_2013|2013-12-26]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/19_December_2013|2013-12-19]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/12_December_2013|2013-12-12]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/5_December_2013|2013-12-05]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/21_November_2013|2013-11-21]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/14_November_2013|2013-11-14]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/07_November_2013|2013-11-07]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/31_October_2013|2013-10-31]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/24_October_2013|2013-10-24]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/17_October_2013|2013-10-17]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/10_October_2013|2013-10-10]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/26_September_2013|2013-09-26]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/18_September_2013|2013-09-18]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/11_September_2013|2013-09-11]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/4_September_2013|2013-09-04]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/28_August_2013|2013-08-28]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 07 August - 21 August&lt;br /&gt;
| Hack nights!&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/31_July_2013|2013-07-31]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/25_July_2013|2013-07-25]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 18 July 2013&lt;br /&gt;
| Hack night: Flashing, firmware&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/11_July_2013|2013-07-11]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/04_July_2013|2013-07-04]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/27_June_2013|2013-06-27]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/20_June_2013|2013-06-20]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/13_June_2013|2013-06-13]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 30 May - 05 June&lt;br /&gt;
| Hack nights! Trying out some of the nicer Ubiquiti equipment we procured&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/23_May_2013|2013-05-23]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/09_May_2013|2013-05-09]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 25 April - 02 May&lt;br /&gt;
| Hack nights! See wiki for documentation - principally going through &amp;lt;br&amp;gt;donated routers, flashing them with OpenWRT and installing batman-adv.&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/18_April_2013|2013-04-18]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/11_April_2013|2013-04-11]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 28 March - 04 April&lt;br /&gt;
| SPRING SHIFT HIATUS&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/21_March_2013|2013-03-21]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/07_March_2013|2013-03-07]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/28_February_2013|2013-02-28]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/21_February_2013|2013-02-21]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/14_February_2013|2013-02-14]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/7_February_2013|2013-02-07]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [http://lists.sudoroom.org/pipermail/mesh/2013-January/000000.html 2013-01-31]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Gcg</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/27_Feb_2018&amp;diff=11070</id>
		<title>Mesh/27 Feb 2018</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/27_Feb_2018&amp;diff=11070"/>
		<updated>2018-03-02T19:10:21Z</updated>

		<summary type="html">&lt;p&gt;Gcg: Created page with &amp;quot;People's Open Network Weekly Meeting - 27 February 2018 7:30pm-9pm * https://omnicommons.org/wiki/Safer_Space_Policy  === Agenda === * Introductions and Meeting Roles (10 mins...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;People's Open Network Weekly Meeting - 27 February 2018 7:30pm-9pm&lt;br /&gt;
* https://omnicommons.org/wiki/Safer_Space_Policy&lt;br /&gt;
&lt;br /&gt;
=== Agenda ===&lt;br /&gt;
* Introductions and Meeting Roles (10 mins)&lt;br /&gt;
* Check in on previous action items (5 mins)&lt;br /&gt;
* Updates &amp;amp; Reportbacks (20 mins)&lt;br /&gt;
* This Sunday (5 mins)&lt;br /&gt;
* Proposal: Finance Expenditures (15 mins)&lt;br /&gt;
* Discussion: Firmware/Software Roadmap (15 mins)&lt;br /&gt;
* Discussion: Announcement of Mozilla/NSF WINS Grant&lt;br /&gt;
* Action Items (5 mins)&lt;br /&gt;
* Breakout Groups&lt;br /&gt;
&lt;br /&gt;
=== Introductions ===&lt;br /&gt;
Introduce yourself: Name; Preferred Pronoun; Icebreaker Response; BRIEF Announcements&lt;br /&gt;
* Icebreaker question: favorite show growing up&lt;br /&gt;
* mai - she/they, saved by the bell,&lt;br /&gt;
* bengo - rugrats, same birthday as tommy pickels&lt;br /&gt;
* sierk - trying to think of something not dutch, the young ones&lt;br /&gt;
* jason - fraggle rock, drove by all the time, was curious, found us online, sounded pretty cool, done programming, nothing with firmware&lt;br /&gt;
* grant - he/they, arthur, &lt;br /&gt;
* jenny - she/her, finally watching Star Trek NG, growing pains&lt;br /&gt;
* robb - he/him benson&lt;br /&gt;
* benny - he/him/they&lt;br /&gt;
* eve -&lt;br /&gt;
* judy - she/her&lt;br /&gt;
&lt;br /&gt;
=== Meeting Roles ===&lt;br /&gt;
* Facilitator/s: mai&lt;br /&gt;
* Stacktaker: sierk&lt;br /&gt;
* Notetaker/s: grant, jenny&lt;br /&gt;
** URL of this pad: https://peoplesopen.net/notes&lt;br /&gt;
* Next meeting's facilitator(s): &lt;br /&gt;
&lt;br /&gt;
== Check in on previous action items ==&lt;br /&gt;
Check previous meeting minutes at https://sudoroom.org/wiki/Mesh/Minutes and past action items below:&lt;br /&gt;
* Document RocketChat instance - grant - in progress https://sudoroom.org/wiki/Mesh/PeoplesOpenChat&lt;br /&gt;
* Move peoplesopen.network to Migadu instance - Jenny - in-progress, verifying DNS changes&lt;br /&gt;
* Follow up with AJ+ - Jenny - still not sure what to say :/ - will ping  &lt;br /&gt;
** Sierk: Can also do via press releases &lt;br /&gt;
*** Jenny: Also an update, we received an extensive press list from Tracy @ Media Alliance, added to: https://docs.google.com/spreadsheets/d/1ctiZQjPlWB_JaCw4mhez0KbH6j1kBzZe-eLvN31j3kk/edit#gid=632631520&lt;br /&gt;
* Follow up with Benny + Jeremy on Rocket.Chat to debug iOS app - Mai - sent Jeremy @ rocket.chat details, haven't checked in with Benny&lt;br /&gt;
* Send community survey to mailing list to solicit volunteer help for projects - Mai - in progress&lt;br /&gt;
* Patch makenode - bug #5 + bug # 17 - grant - in progress, created https://github.com/sudomesh/patches&lt;br /&gt;
** Need to discuss deployment across nodes and who has access to the nodes&lt;br /&gt;
* Contact Diane re: Power - jenny, robb - done&lt;br /&gt;
** did contact, but...&lt;br /&gt;
** robb: never came across outdoor 24V outdoor power supply, had an additional wire that needed to be connected to work properly&lt;br /&gt;
* Contact Jonah re: Richmond tower - Jenny  - not done, waiting on decision re: gear needed&lt;br /&gt;
* Spec out gear for Richmond tower - Ben and anyone interested, - didn't happen yet, need to discuss (in #node-mounting maybe?)&lt;br /&gt;
* procure equipment and coordinate with Jeff for Benvenue mount - Ben - in progress, need less conspicuous mast + long cable, heading back on Sun 3/11&lt;br /&gt;
* Give access to passpack to Mai, Robb, ? - Jenny - done&lt;br /&gt;
* ping Ryan G re: electrical issues w/ Dev's place - jenny - done, he's down, but maybe we should ask doug? grant put doug and dev in contact, hopefully they can coordinate a time&lt;br /&gt;
* respond to Dev about group's position, agree on plans for moving forward - grant - done, he's good, but still needs help with electrical work&lt;br /&gt;
&lt;br /&gt;
== Updates &amp;amp; Reportbacks ==&lt;br /&gt;
=== Bugs/Technical ===&lt;br /&gt;
Priority bugs we need help with are located at: http://peoplesopen.net/helpwanted - For a high-level overview of recent Github activity, see the Trello: https://trello.com/invite/b/r9l5ouQ4/3b2eecd83bb9e7a57a339cf1ee038288/sudo-mesh-github-repos&lt;br /&gt;
* 1) Public &amp;amp; private network traffic route through same IP - open, needs a patch&lt;br /&gt;
* 2) Give priority to non-peoplesopen traffic - rather than % bandwidth, prioritize private traffic over public traffic (eg, when not home, all bandwidth can be allocated to the public network)&lt;br /&gt;
** sierk: via jorrit - percentage set by the tunnel  - -&amp;gt; how to allocate dynamically on the tunneldigger&lt;br /&gt;
* 4) netflix traffic blocked&lt;br /&gt;
* 5) disable debug logging - benny working on this, patching &lt;br /&gt;
* 8) tunnelbroker fails intermittently - exitnode issues. jorrit fixed a lot of this. new exit node up &amp;amp; running&lt;br /&gt;
* 17) add more exit nodes - grant wrote a patch for this. needs to be tested thoroughly and pushed from server -&amp;gt; nodes on the network&lt;br /&gt;
** Bengo - made a script that spins up exit nodes. anyone can use this script to build an exit nodes: &lt;br /&gt;
* 18) Define remote node patch procedure - plz join the conversation - https://github.com/sudomesh/bugs/issues/18 &lt;br /&gt;
** related to #20 - define who has remote node access&lt;br /&gt;
* bengo made https://gitlab.ops.bengo.is/ben/mesh-network#digitalocean-exitnode - an easy script to spin up exitnodes in digitalocean droplets&lt;br /&gt;
&lt;br /&gt;
=== Node Mounts &amp;amp; Outreach ===&lt;br /&gt;
Node Mounts Trello: https://trello.com/invite/b/DtzngKaM/49e1c21fc9da199fcdeceb8623b5117a/node-mounts&lt;br /&gt;
* Report backs?&lt;br /&gt;
* mai - already reported back on jeff's and dianes&lt;br /&gt;
* benny: doug was super nice, had a big ladder. we were 5-6 people. &lt;br /&gt;
** benny:  was wondering how many people grant knew, we were very lax, but we checked with him first, hopefully help with electricity. &lt;br /&gt;
** grant: currently pointing toward Dev's (thought i could see it thru binoculars). also has a good view to the northeast (toward rockridge). trained 4 newbies!&lt;br /&gt;
** benny - also learned we should always bring a roll of cable&lt;br /&gt;
** eve - cost of crimpers?&lt;br /&gt;
*** jenny - from precision, $70,  but can find them on ebay for $35&lt;br /&gt;
**** eve would like to buy us a pair&lt;br /&gt;
** benny - do we have a &amp;quot;hey you had a mount!&amp;quot; card to give to people after a node mount, &lt;br /&gt;
*** name of folks who participated in the mount, node owners's manual, certificate of participation?, privacy/access notes, what is the status of the mount (is everything up and running? anything need fixing? could tie into our own internal logs about which deployments need more work)&lt;br /&gt;
&lt;br /&gt;
=== Communications &amp;amp; Events ===&lt;br /&gt;
Comms Trello: https://trello.com/invite/b/f3ugMPNU/94033ee6c2cef93fc1b1637b727c902a/sudo-mesh-communications // Events Trello: https://trello.com/invite/b/Y3XfDK85/2b6fcb4fa92788609692a53a96fb4614/peoples-open-events&lt;br /&gt;
* sierk - newsletter, was gonna work on it today and send it out soon.&lt;br /&gt;
** mozilla challenge award&lt;br /&gt;
** office hours&lt;br /&gt;
** bugs, help-wanted&lt;br /&gt;
** images: https://github.com/sudomesh/propaganda/tree/master/signage&lt;br /&gt;
** byoi reportback&lt;br /&gt;
** strategy meeting reportback&lt;br /&gt;
** link to survey&lt;br /&gt;
* sierk: would like to change the newsletter layout, currently using a default mailchimp template&lt;br /&gt;
* jenny setup disaster radio facebook page &lt;br /&gt;
* got an inquiry from someone named mondo, would like flyers for their neighborhood&lt;br /&gt;
** who would like to receive and reply to emails sent to info@peoplesopen.net? ping jenny [yes - bengo, ?]&lt;br /&gt;
&lt;br /&gt;
* grant - heard back from Amos (Alameda) is bringing 4-5 people on Sunday March 18th&lt;br /&gt;
&lt;br /&gt;
=== Internal Logistics / Finance ===&lt;br /&gt;
Internal Logistics &amp;amp; Bureaucracy Trello: https://trello.com/invite/b/LzVQlW3X/1bb8bd543c8633688175365d2554c2c2/internal-logistics-bureaucracy-brainstorms&lt;br /&gt;
* Business plan and budget for Sudomesh Directors' Insurance&lt;br /&gt;
** eve: jenny, you are awesome. i salute you.&lt;br /&gt;
&lt;br /&gt;
== This Sunday ==&lt;br /&gt;
=== Node Mount ===&lt;br /&gt;
We try to arrange a rooftop node mount every Sunday afternoon. Ongoing spreadsheet is located at: https://peoplesopen.net/sundays&lt;br /&gt;
* Next Sunday's mount:  Possibly 1) scouting at Ed's; 2) treemount at Scott's; 3) &lt;br /&gt;
&lt;br /&gt;
=== Office Hours ===&lt;br /&gt;
We host office hours every Sunday from 1-3pm in Sudo Room. To sign up for a shift, fill in your name here: https://ethercalc.org/byoi_office_hours&lt;br /&gt;
* Next Sunday's volunteer: Benny unless someone else wants to do it. Sierk, Mai, Grant will probably be there&lt;br /&gt;
** Theme: Node Owner's Guide?&lt;br /&gt;
* Notes from this past Sunday's session: &lt;br /&gt;
** Three node mounts attempted, one success!&lt;br /&gt;
** Nodes were flashed! &lt;br /&gt;
*** Mai flashed a Nanobridge &lt;br /&gt;
*** Benny flashed an extender node (maybe a Nanobridge? I don't know the names...)&lt;br /&gt;
*** Doug came and learned about sudomesh&lt;br /&gt;
*** Someone else came and learned about sudomesh and asked a bunch of technical questions&lt;br /&gt;
** need to make an image for powerbeam (which we have several of)&lt;br /&gt;
&lt;br /&gt;
== Proposal: Finance Expenditures ==&lt;br /&gt;
Jenny would like to pay for the following from the sudomesh bank account:&lt;br /&gt;
* Table at Allied Media Conference ($100) +2&lt;br /&gt;
** Grant down to propose a workshop [mai, jenny, ? will help]&lt;br /&gt;
** Sierk: Possible to demo a tinymesh and/or bring some nodes to sell? &lt;br /&gt;
* Quickbooks Online monthly subscription ($13.50/mo for 6 months, then $27/mo)&lt;br /&gt;
* 2 pairs EZ Crimpers ($66)&lt;br /&gt;
* Large cable clips (4 bags x 100 pieces @ $5/bag =  $25)&lt;br /&gt;
* 2 boxes grounded shielded outdoor ethernet cable ($270)&lt;br /&gt;
* Grounded Shielded RJ45s (4 x 10 pieces @ $16/set = $64) &lt;br /&gt;
* Regular indoor RJ45s (4 x 100 pieces @ $4.25/set = $17)&lt;br /&gt;
Total: $442 + $13.50 recurring monthly&lt;br /&gt;
&lt;br /&gt;
* '''Consenso?''' yes \o/&lt;br /&gt;
&lt;br /&gt;
== Discussion: Firmware/Software Roadmap == &lt;br /&gt;
* What do we want the sudowrt-firmware and peoplesopen-dash to look like by, let's say, June...&lt;br /&gt;
* exciting discussion on github regarding how apply updates and keep node operators informed, https://github.com/sudomesh/bugs/issues/20&lt;br /&gt;
* grant: decided at strategic planning meeting that we wanted to get to zeroconf by june&lt;br /&gt;
** mai: blake had said he wanted to organize a dedicated meeting on this issue&lt;br /&gt;
&lt;br /&gt;
== Discussion: Announcement of Mozilla/NSF WINS Grant ==&lt;br /&gt;
* Put it in the newsletter&lt;br /&gt;
* Press release - to press list&lt;br /&gt;
* Social networks: Twitter, FB, Instagram&lt;br /&gt;
* Other orgs: Outreach to TWC, Media Alliance, Internet Archive, SF MIX, EFF, Credo, net neutrality&lt;br /&gt;
* Mailing lists: noisebridge, battlemesh, opentechinstitute, omni, double union, spaghettinight, sudo-discuss&lt;br /&gt;
&lt;br /&gt;
== Action Items ==&lt;br /&gt;
* Node mount owners' package - node owners' manual, exit survey, certificate, what to do next, contact info&lt;br /&gt;
* Spec out gear for Richmond tower - Ben and anyone interested&lt;br /&gt;
* Check in with Dev and Doug re: electrical situation [grant]&lt;br /&gt;
* PON Newsletter: BYOI recap, Mozilla/NSF WINS grant, bugs, strategy meeting re-cap + survey, BYOI office hours [sierk &amp;amp; co]&lt;br /&gt;
* Gather content, customize template, and send newsletter before Tue 3/6 - Sierk&lt;br /&gt;
* Finalize Business Plan for Sudomesh Directors Insurance - Jenny, Mai, &lt;br /&gt;
* Finalize Sudomesh Budget for Sudomesh Directors Insurance - Mai&lt;br /&gt;
* Ping Mitar re: coops (Jenny [cc sierk, mai, grant, ?])&lt;br /&gt;
* Ping Ed re: scouting on Sunday [sierk]&lt;br /&gt;
* Print sign up sheets for BYOI Office Hours (Benny)&lt;br /&gt;
* Organize firmware/software roadmap meetup {Blake}&lt;br /&gt;
* Create an instagram account for PON [mai]&lt;br /&gt;
* figure out comrades w/ the net neutrality protest [judy]&lt;br /&gt;
* buy all the things [jenny]&lt;br /&gt;
&lt;br /&gt;
== Breakout Groups ==&lt;br /&gt;
At the end of the meeting, break out into small groups to hack on or discuss specific topics.&lt;br /&gt;
* Node mount outreach for Sun March 4&lt;br /&gt;
* Firmware/software roadmap&lt;br /&gt;
&lt;br /&gt;
== Last Meeting Notes ==&lt;br /&gt;
* link to previous meeting minutes&lt;br /&gt;
https://sudoroom.org/wiki/Mesh/20_Feb_2018&lt;br /&gt;
&lt;br /&gt;
== End of Meeting ==&lt;br /&gt;
* please archive these meeting notes by copying the entire pad contents onto the sudomesh wiki&lt;br /&gt;
* then please erase the contents of this pad&lt;br /&gt;
* then please cut &amp;amp; paste a blank template from here: https://sudoroom.org/mediawiki/index.php?title=Mesh/Mesh_Meeting_Notes_Template&amp;amp;action=edit&lt;br /&gt;
* previous meeting notes are archived here: https://sudoroom.org/wiki/Mesh/Minutes&lt;/div&gt;</summary>
		<author><name>Gcg</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11057</id>
		<title>Mesh/WalkThrough</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11057"/>
		<updated>2018-02-26T08:09:42Z</updated>

		<summary type="html">&lt;p&gt;Gcg: who needs &amp;quot;this is&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Congratulations on choosing to become part of a People's Open Network! This is a walkthrough for flashing a node (a home router) with the SudoMesh's sudowrt-firmware (a custom build of OpenWRT) and then configuring it with makenode (a custom javascript tool developed by SudoMesh). At the end of the walkthrough, you'll be able to plug in your router and join the mesh. The walkthrough assumes you're using a linux-ish OS (mac OSX should work also) and that you have [https://help.ubuntu.com/community/UsingTheTerminal basic knowledge of the terminal]. The general idea of building your own mesh node consists of three steps, [[#Download/Build|downloading or compiling]] custom firmware, [[#Flash/Upload|flashing that firmware]] to the node (i.e. copying firmware to [https://en.wikipedia.org/wiki/Flash_memory flash memory]), and [[#makenode/Configure|configuring the node]] to function as part of a mesh (with a software tool such as makenode).&lt;br /&gt;
&lt;br /&gt;
Before you flash your router, it is recommended that you read the [[Home and extender nodes#Home_nodes|home node info]] to find out the router works as a mesh node.&lt;br /&gt;
&lt;br /&gt;
= Download/Build =&lt;br /&gt;
&lt;br /&gt;
Now that you have a node, you will probably want to learn how to flash it with the latest sudowrt-firmware. The first step is to download the firmware image file for your supported router. &lt;br /&gt;
&lt;br /&gt;
At the moment, we are supporting the following routers:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! OpenWRT Doc !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| TP-Link WDR3500 || [https://wiki.openwrt.org/toh/tp-link/tl-wdr3500 OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| TP-Link WDR3600 || [https://wiki.openwrt.org/toh/tp-link/tl-wdr3600 OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| TP-Link WDR4300 || [https://wiki.openwrt.org/toh/tp-link/tl-wdr4300 OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Western Digital MyNet N600 || [https://wiki.openwrt.org/toh/wd/n600 OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
|  Western Digital MyNet N750 || [https://wiki.openwrt.org/toh/wd/n750 OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Builds for other routers can be found on our [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/ builds server], though there is no guarantee the firmware will work with any given router.&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can build your own copy of the firmware images by following the guide in the [https://github.com/sudomesh/sudowrt-firmware sudowrt-firmware source].&lt;br /&gt;
&lt;br /&gt;
If you do not want to use a SudoMesh's OpenWRT image, you can also install [https://downloads.openwrt.org/ a standard OpenWRT] release and configure it from scratch.&lt;br /&gt;
&lt;br /&gt;
= Flash/Upload =&lt;br /&gt;
&lt;br /&gt;
Once you have a copy of the sudowrt-firmware intended for your router, you can proceed with flashing it to your router. There are different techniques for flashing each of the routers. Use the links above to the OpenWRT wiki and follow the instructions there to flash the router with the firmware you've downloaded.&lt;br /&gt;
&lt;br /&gt;
For convenience, if you have a Western Digital MyNet N600 or N750, follow these instructions:&lt;br /&gt;
&lt;br /&gt;
== Reset your new N750/N600 router ==&lt;br /&gt;
* Plug one end of the Ethernet cable into your laptop.&lt;br /&gt;
* Plug the other end of the Ethernet cable into one of the normal ports (LAN) on the router (not the Internet/WAN port).&lt;br /&gt;
* With the router plugged in and power turned off, push a pin into the reset hole and hold it.&lt;br /&gt;
* With the pin held down, turn on the router power button.&lt;br /&gt;
* Watch the front blue light - they will flash on and off a few times.&lt;br /&gt;
* Once the front blue is flashing, you can let go of the pin.&lt;br /&gt;
&lt;br /&gt;
== Configure your computer's network settings ==&lt;br /&gt;
On your laptop edit your network settings to reflect the following:&lt;br /&gt;
&lt;br /&gt;
* Network Manager Method: Manual&lt;br /&gt;
* IP Address: 192.168.1.10 (some devices will only accept from this IP)&lt;br /&gt;
* Subnet Mask: 255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0&lt;br /&gt;
&lt;br /&gt;
You can also use the commands:&lt;br /&gt;
  sudo ip link set eth0 down &lt;br /&gt;
  sudo ip addr add 192.168.1.10/24 dev eth0 &lt;br /&gt;
  sudo ip link set eth0 up&lt;br /&gt;
&lt;br /&gt;
where eth0 is the name of your ethernet interface found using ifconfig (other common interface names esp3s0...)&lt;br /&gt;
&lt;br /&gt;
See Network Configuration Guides: [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20Linux Linux] [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20MacOS%20X Mac]&lt;br /&gt;
&lt;br /&gt;
== Upload sudowrt-firmware ==&lt;br /&gt;
In your web browser:&lt;br /&gt;
&lt;br /&gt;
* Go to [http://192.168.1.1 http://192.168.1.1], if the reset was successful, you should see the following page:&lt;br /&gt;
[[File:Screenshot from 2017-04-04 18-27-09.png|thumb|center|upright=2]]&lt;br /&gt;
* Click 'Browse' and select the firmware file you downloaded&lt;br /&gt;
* Click Upload and you will be taken to an exciting countdown timer:&lt;br /&gt;
[[File:Screenshot from 2017-04-02 17-20-51.png|thumb|center|upright=2]]&lt;br /&gt;
&lt;br /&gt;
Note: Sometimes the firmware upload will not complete. After you click on 'Upload' You should get a page with a countdown of 120+ seconds. If this does not occur, reboot the router with the pin reset button depressed (as noted above), and try again.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= makenode/Configure =&lt;br /&gt;
After flashing sudowrt-firmware to your router you will need to configure it work on a People's Open Network.&lt;br /&gt;
&lt;br /&gt;
== Reconfigure your computer's network settings ==&lt;br /&gt;
A freshly flashed node automatically sets its IP address to 172.22.0.1. You will need to configure your laptop to use the following network settings to communicate with the node.&lt;br /&gt;
&lt;br /&gt;
* IP address: 172.22.0.10 &lt;br /&gt;
* Subnet mask:  255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0&lt;br /&gt;
&lt;br /&gt;
Or use the commands&lt;br /&gt;
  sudo ip link set eth0 down &lt;br /&gt;
  sudo ip addr add 172.22.0.10/24 dev eth0 &lt;br /&gt;
  sudo ip link set eth0 up&lt;br /&gt;
&lt;br /&gt;
where eth0 is the name of your ethernet interface found using ifconfig (other common interface names esp3s0...)&lt;br /&gt;
&lt;br /&gt;
See Network Configuration Guides: [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20Linux Linux] [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20MacOS%20X Mac]&lt;br /&gt;
&lt;br /&gt;
To test that the flashing was successful, feel free to try connecting to your unconfigured router by opening a browser and navigating to https://172.22.0.1&lt;br /&gt;
if the flash was successfull you should be brought to the following screen:&lt;br /&gt;
&lt;br /&gt;
[[File:Peoplesopen-dash.png|thumb|center|upright=2]]&lt;br /&gt;
&lt;br /&gt;
After you have successfully flashed your router with OpenWRT, you will need to use [https://github.com/sudomesh/makenode makenode] to complete the setup. makenode registers your node on the peoplesopen network, resulting in the assignment of a 64 IPv4 address subnet to your node, in addition to applying basic configuration.&lt;br /&gt;
&lt;br /&gt;
== Preparing your laptop for makenode ==&lt;br /&gt;
&lt;br /&gt;
You will need to install the dependencies for [https://github.com/sudomesh/makenode makenode].&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
&lt;br /&gt;
If you are working with a fresh installation of one of the operating systems listed in the compatibility checklist, you will need to install a few pieces of software. &lt;br /&gt;
To install them, open your terminal and enter the following commands.&lt;br /&gt;
&lt;br /&gt;
  sudo apt update&lt;br /&gt;
  sudo apt install curl git dropbear&lt;br /&gt;
  curl -o- ht&amp;lt;span&amp;gt;tps://&amp;lt;/span&amp;gt;raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash&lt;br /&gt;
  export NVM_DIR=&amp;quot;$HOME/.nvm&amp;quot;  # or you can close and reopen your terminal before using nvm&lt;br /&gt;
  nvm install 7.10&lt;br /&gt;
&lt;br /&gt;
==== OS Compatibility checklist ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! OS !! Compatible !! Link to ISO !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 16.04 LTS || yes || http://releases.ubuntu.com/16.04/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 14.04 LTS || please verify || http://releases.ubuntu.com/14.04/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian 9.3 Stretch || yes || https://www.debian.org/distrib/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian 8.1 Jessie || yes || https://www.debian.org/releases/jessie/debian-installer/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Arch Linux || yes || https://www.archlinux.org/download/ || you may have to build dropbear from [https://github.com/mkj/dropbear source]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Mac ===&lt;br /&gt;
&lt;br /&gt;
Install the [http://brew.sh/ Homebrew] package manager, then install the required binaries.&lt;br /&gt;
&lt;br /&gt;
  brew install nodejs&lt;br /&gt;
  brew install git&lt;br /&gt;
  brew install npm&lt;br /&gt;
  brew install dropbear&lt;br /&gt;
  brew install gnu-tar&lt;br /&gt;
  brew install fakeroot&lt;br /&gt;
&lt;br /&gt;
'''Note: Windows is not currently supported, main problem is with Dropbear, which has no known ports for Windows.'''&lt;br /&gt;
&lt;br /&gt;
== Install and run makenode ==&lt;br /&gt;
&lt;br /&gt;
From your terminal, run the following:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/makenode.git&lt;br /&gt;
  cd makenode&lt;br /&gt;
  npm install&lt;br /&gt;
  cp settings.js.example settings.js&lt;br /&gt;
&lt;br /&gt;
The default settings in &amp;lt;tt&amp;gt;settings.js&amp;lt;/tt&amp;gt; should suffice in most cases, but if you need to make changes, do them in &amp;lt;tt&amp;gt;settings.js&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Make sure the Ethernet cable is connected to the 4th port on the router.&lt;br /&gt;
&lt;br /&gt;
Once your network configuration is refreshed, use the following command to run the script and configure your node:&lt;br /&gt;
&lt;br /&gt;
  ./makenode.js&lt;br /&gt;
&lt;br /&gt;
Now the configuration wizard will ask you a number of questions:&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;enter valid hostname&amp;quot; - name of the box, will only be seen when you SSH into the router - For info on what constitutes a valid hostname, see: [http://stackoverflow.com/questions/3523028/valid-characters-of-a-hostname valid characters of a hostname]&lt;br /&gt;
* &amp;quot;max share upstream bandwidth&amp;quot; - how much of your home network upstream bandwidth you wish to share with the mesh network, measured in kbps (kilobits per second). So if you'd like to share 10mbps (megabits per second) enter &amp;quot;10000&amp;quot; or if you want to share 256kbps (kilobits per second) enter &amp;quot;256&amp;quot;. You may want to run a [http://www.dslreports.com/speedtest speed test] to find out how much bandwidth you have and determine how much you want to share.&lt;br /&gt;
* &amp;quot;max share downstream bandwidth&amp;quot; - how much of your home network upstream bandwidth you wish to share with the mesh network - eg. &amp;quot;512&amp;quot; would share 512 kbps&lt;br /&gt;
* &amp;quot;admin user password&amp;quot; - used to log into the admin dashboard where you can modify some settings at https://172.22.0.1 (if on wired connection) or https://172.30.0.1 (if on private wifi network)&lt;br /&gt;
* &amp;quot;root user password&amp;quot; - used to SSH into the router so you modify files and manually configure your router. Make sure that your root password is strong! If you don't enter a root password, a strong one will be generated and will be logged to screen. It's generally preferable to not use the root password at all and instead add an ssh key to the device, ssh keys are stored in /etc/dropbear/authorized_keys.&lt;br /&gt;
* &amp;quot;wifi transmit power&amp;quot; - set this to 23 dBm (which is equivalent to 200 milliwatts)&lt;br /&gt;
* &amp;quot;operator name&amp;quot; - name that the network admins can associate with the node - so use a unique name like your first name or location name&lt;br /&gt;
* &amp;quot;private wifi SSID&amp;quot; - name of the private wireless network that can be used to administer this router. It will be publicly visible so pick something amusing or descriptive.&lt;br /&gt;
* &amp;quot;private wifi password&amp;quot; - password for the private wireless network named in the previous step. It's the one you'll want to give to friends, so come up with something amusing or memorable. Note: it must be at least 8 characters long.&lt;br /&gt;
&lt;br /&gt;
= Testing =&lt;br /&gt;
&lt;br /&gt;
After you're finished with the makenode configuration, your home node should be available for connections via your private WiFi SSID. Additionally the public SSID 'peoplesopen.net' will be available. &lt;br /&gt;
&lt;br /&gt;
A third interface named 'pplsopen.net-node2node' will be detectable as well. This is the interface used for the nodes to mesh with each other.&lt;br /&gt;
&lt;br /&gt;
At this point you're setup. For more information on using your node, such as accessing the web-based management interface, see [[Home and extender nodes#Home_nodes|Home node info]]&lt;br /&gt;
&lt;br /&gt;
For more technical details on the internals of the home node, see the [[Mesh/Technical_Overview]]&lt;br /&gt;
&lt;br /&gt;
For more in depth testing procedures, see our [https://github.com/sudomesh/sudowrt-firmware/blob/master/operator_manual.md mesh node operator's manual].&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
You may need to replace the `node-uuid` module with `uuid` for makenode to work, to fix this using the following commands:&lt;br /&gt;
&lt;br /&gt;
  npm uninstall --save node-uuid&lt;br /&gt;
  npm install --save uuid&lt;br /&gt;
&lt;br /&gt;
If you get the error &amp;quot;no such file or directory&amp;quot;, open a new terminal and run this command to ensure that &amp;lt;tt&amp;gt;node&amp;lt;/tt&amp;gt; points to your NodeJS executable:&lt;br /&gt;
&lt;br /&gt;
  sudo ln -s nodejs node&lt;br /&gt;
&lt;br /&gt;
In the new terminal, return to the 'makenode' source code directory and try again:&lt;br /&gt;
&lt;br /&gt;
  npm install&lt;br /&gt;
  ./makenode.js&lt;br /&gt;
&lt;br /&gt;
= Flashing Extender Nodes =&lt;br /&gt;
&lt;br /&gt;
If you would like to make long distance point-to-point connections between two or more home nodes, you'll want to setup an extender node (a roof mounted antenna).&lt;br /&gt;
&lt;br /&gt;
See [[Mesh/Flashing extender nodes]]&lt;/div&gt;</summary>
		<author><name>Gcg</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/PeoplesOpenChat&amp;diff=11050</id>
		<title>Mesh/PeoplesOpenChat</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/PeoplesOpenChat&amp;diff=11050"/>
		<updated>2018-02-24T22:48:29Z</updated>

		<summary type="html">&lt;p&gt;Gcg: Created page with &amp;quot;People's Open Chat is a [https://rocket.chat/ Rocket.Chat] instance that is being hosted on the sudomesh server. This is a place for documenting it's configuration and trouble...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;People's Open Chat is a [https://rocket.chat/ Rocket.Chat] instance that is being hosted on the sudomesh server. This is a place for documenting it's configuration and troubleshooting bugs related to it. The instance can be found at https://peoplesopen.net/chat.&lt;br /&gt;
&lt;br /&gt;
= Install Rocket.Chat =&lt;br /&gt;
We chose to install Rocket.Chat manually on an Ubuntu 14.04 server, following [https://rocket.chat/docs/installation/manual-installation/ubuntu/ this guide].&lt;/div&gt;</summary>
		<author><name>Gcg</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Minutes&amp;diff=11038</id>
		<title>Mesh/Minutes</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Minutes&amp;diff=11038"/>
		<updated>2018-02-21T19:00:06Z</updated>

		<summary type="html">&lt;p&gt;Gcg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable sortable collapsible&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;| Past Meeting Notes&lt;br /&gt;
|-&lt;br /&gt;
! data-sort-type=&amp;quot;isoDate&amp;quot; | date&lt;br /&gt;
! class=&amp;quot;unsortable&amp;quot; | comments&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/20_Feb_2018|2018-02-20]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/17_Feb_2018|2018-02-17]]&lt;br /&gt;
| Strategic plan meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/13_Feb_2018|2018-02-13]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/06_Feb_2018|2018-02-06]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/30_Jan_2018|2018-01-30]]&lt;br /&gt;
| Monthly general meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/23_Jan_2018|2018-01-23]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/16_Jan_2018|2018-01-16]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/09_Jan_2018|2018-01-09]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/02_Jan_2018|2018-01-02]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/26_Dec_2017|2017-12-26]]&lt;br /&gt;
| Monthly general meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/19_Dec_2017|2017-12-19]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/12_Dec_2017|2017-12-12]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/05_Dec_2017|2017-12-05]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/28_Nov_2017|2017-11-28]]&lt;br /&gt;
| Monthly general meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/21_Nov_2017|2017-11-21]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/14_Nov_2017|2017-11-14]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/24_Oct_2017|2017-10-24]]&lt;br /&gt;
| Monthly general meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/17_Oct_2017|2017-10-17]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/10_Oct_2017|2017-10-10]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/03_Oct_2017|2017-10-03]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/26_Sep_2017|2017-09-26]]&lt;br /&gt;
| Monthly general meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/19_Sep_2017|2017-09-19]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/12_Sep_2017|2017-09-12]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/11_Sep_2017|2017-09-11]]&lt;br /&gt;
| Website redesign session&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/05_Sep_2017|2017-09-05]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/29_Aug_2017|2017-08-29]]&lt;br /&gt;
| Monthly general meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/22_Aug_2017|2017-08-22]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/15_Aug_2017|2017-08-15]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/08_Aug_2017|2017-08-08]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/01_Aug_2017|2017-08-01]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/18_July_2017|2017-07-18]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/11_July_2017|2017-07-11]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/4_July_2017|2017-07-4]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/20_June_2017|2017-06-20]]&lt;br /&gt;
| Monthly general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/13_June_2017|2017-06-13]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/11_June_2017|2017-06-11]]&lt;br /&gt;
| Temescal street fair report-back&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/6_June_2017|2017-06-06]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/30_May_2017|2017-05-30]]&lt;br /&gt;
| Monthly general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/16_May_2017|2017-05-16]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/9_May_2017|2017-05-09]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/02_May_2017|2017-05-02]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/25_April_2017|2017-04-25]]&lt;br /&gt;
| Monthly general meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/18_April_2017|2017-04-18]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/17_April_2017|2017-04-17]]&lt;br /&gt;
| Annual sudo mesh board meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/11_April_2017|2017-04-11]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/4_April_2017|2017-04-04]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/28_March_2017|2017-03-28]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/21_March_2017|2017-03-21]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/14_March_2017|2017-03-14]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/07_March_2017|2017-03-07]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/28_February_2017|2017-02-28]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/21_February_2017|2017-02-21]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/10_February_2017|2017-02-10]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/07_February_2017|2017-02-07]]&lt;br /&gt;
| Organizing &amp;quot;Build Your Own Internet&amp;quot; Workshop&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/05_July_2016|2016-07-05]]&lt;br /&gt;
| Videochat meeting with nycmesh&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/22_June_2016|2016-06-22]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/07_June_2016|2016-06-07]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/23_February_2016|2016-02-23]]&lt;br /&gt;
| Monthly general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/09_February_2016|2016-02-09]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/02_February_2016|2016-02-02]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/26_January_2016|2016-01-26]]&lt;br /&gt;
| Monthly general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/27_October_2015|2015-10-27]]&lt;br /&gt;
| Monthly general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/06_October_2015|2015-10-06]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/29_September_2015|2015-09-29]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/22_September_2015|2015-09-22]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/15_September_2015|2015-09-15]]&lt;br /&gt;
| Second annual board meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/08_September_2015|2015-09-08]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/01_September_2015|2015-09-01]]&lt;br /&gt;
| Monthly general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/07_April_2015|2015-04-07]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/26_March_2015|2015-03-26]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/17_March_2015|2015-03-17]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/10_March_2015|2015-03-10]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/26_February_2015|2015-02-26]]&lt;br /&gt;
| Big general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/24_February_2015|2015-02-24]]&lt;br /&gt;
| Hacknight&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/19_February_2015|2015-02-19]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/05_February_2015|2015-02-05]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/03_February_2015|2015-02-04]]&lt;br /&gt;
| Hacknight&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/29_January_2015|2015-01-29]]&lt;br /&gt;
| Big general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/24_January_2015|2015-01-24]]&lt;br /&gt;
| Mesh mini-retreat&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/22_January_2015|2015-01-22]]&lt;br /&gt;
| Weekly general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/15_January_2015|2015-01-15]]&lt;br /&gt;
| Weekly general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/30_December_2014|2014-12-30]]&lt;br /&gt;
| Big general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/18_December_2014|2014-12-18]]&lt;br /&gt;
| Weekly general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/13_November_2014|2014-11-13]]&lt;br /&gt;
| Weekly general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/21_October_2014|2014-10-21]]&lt;br /&gt;
| Hacknight&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/16_October_2014|2014-10-16]]&lt;br /&gt;
| Weekly general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/09_October_2014|2014-10-09]]&lt;br /&gt;
| Weekly general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/02_October_2014|2014-10-02]]&lt;br /&gt;
| Weekly general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/25_September_2014|2014-09-25]]&lt;br /&gt;
| Big general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/28_August_2014|2014-08-28]]&lt;br /&gt;
| Big general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/21_August_2014|2014-08-21]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/07_August_2014|2014-08-07]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/31_July_2014|2014-07-31]]&lt;br /&gt;
| Big general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/17_July_2014|2014-07-17]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/15_July_2014|2014-07-15]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/10_July_2014|2014-07-10]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/06_July_2014|2014-07-06]]&lt;br /&gt;
| Hackathon Day 2!&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/05_July_2014|2014-07-05]]&lt;br /&gt;
| Hackathon Day 1!&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/03_July_2014|2014-07-03]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/12_June_2014|2014-06-12]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/05_June_2014|2014-06-05]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/29_May_2014|2014-05-29]]&lt;br /&gt;
| General meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/27_May_2014|2014-05-27]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/20_May_2014|2014-05-20]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/13_May_2014|2014-05-13]]&lt;br /&gt;
| First Tuesday meeting ^.^&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/08_May_2014|2014-05-08]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/01_May_2014|2014-05-01]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/24_April_2014|2014-04-24]]&lt;br /&gt;
| General meeting!&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/17_April_2014|2014-04-17]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/03_April_2014|2014-04-03]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/27_March_2014|2014-03-27]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/20_March_2014|2014-03-20]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/13_March_2014|2014-03-13]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/27_February_2014|2014-02-27]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/20_February_2014|2014-02-20]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/13_February_2014|2014-02-13]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/6_February_2014|2014-02-06]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/30_January_2014|2014-01-30]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/23_January_2014|2014-01-23]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/16_January_2014|2014-01-16]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 31 December - 09 January&lt;br /&gt;
| Holidaze Break&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/26_December_2013|2013-12-26]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/19_December_2013|2013-12-19]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/12_December_2013|2013-12-12]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/5_December_2013|2013-12-05]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/21_November_2013|2013-11-21]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/14_November_2013|2013-11-14]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/07_November_2013|2013-11-07]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/31_October_2013|2013-10-31]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/24_October_2013|2013-10-24]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/17_October_2013|2013-10-17]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/10_October_2013|2013-10-10]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/26_September_2013|2013-09-26]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/18_September_2013|2013-09-18]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/11_September_2013|2013-09-11]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/4_September_2013|2013-09-04]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/28_August_2013|2013-08-28]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 07 August - 21 August&lt;br /&gt;
| Hack nights!&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/31_July_2013|2013-07-31]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/25_July_2013|2013-07-25]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 18 July 2013&lt;br /&gt;
| Hack night: Flashing, firmware&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/11_July_2013|2013-07-11]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/04_July_2013|2013-07-04]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/27_June_2013|2013-06-27]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/20_June_2013|2013-06-20]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/13_June_2013|2013-06-13]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 30 May - 05 June&lt;br /&gt;
| Hack nights! Trying out some of the nicer Ubiquiti equipment we procured&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/23_May_2013|2013-05-23]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/09_May_2013|2013-05-09]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 25 April - 02 May&lt;br /&gt;
| Hack nights! See wiki for documentation - principally going through &amp;lt;br&amp;gt;donated routers, flashing them with OpenWRT and installing batman-adv.&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/18_April_2013|2013-04-18]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/11_April_2013|2013-04-11]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 28 March - 04 April&lt;br /&gt;
| SPRING SHIFT HIATUS&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/21_March_2013|2013-03-21]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/07_March_2013|2013-03-07]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/28_February_2013|2013-02-28]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/21_February_2013|2013-02-21]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/14_February_2013|2013-02-14]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/7_February_2013|2013-02-07]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [http://lists.sudoroom.org/pipermail/mesh/2013-January/000000.html 2013-01-31]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Gcg</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/17_Feb_2018&amp;diff=11037</id>
		<title>Mesh/17 Feb 2018</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/17_Feb_2018&amp;diff=11037"/>
		<updated>2018-02-21T18:59:20Z</updated>

		<summary type="html">&lt;p&gt;Gcg: Created page with &amp;quot;People's Open Network Strategic Plan  = Strategic Plan Meeting = * Time: Sat 17 Feb 2018 2-4:30pm * Location: Omni (exact location tbd) * Facilitator: Mai * Stacktaker: Jenny...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;People's Open Network Strategic Plan&lt;br /&gt;
&lt;br /&gt;
= Strategic Plan Meeting =&lt;br /&gt;
* Time: Sat 17 Feb 2018 2-4:30pm&lt;br /&gt;
* Location: Omni (exact location tbd)&lt;br /&gt;
* Facilitator: Mai&lt;br /&gt;
* Stacktaker: Jenny&lt;br /&gt;
* Notetaker(s): Jenny, Grant&lt;br /&gt;
&lt;br /&gt;
=== Schedule ===&lt;br /&gt;
* 2:00 ~ 2:15 -- Intro: review agenda + meeting scope + Mozilla grant&lt;br /&gt;
* 2:15 ~ 2:45 -- SWOT (Strengths Weaknesses Opportunites and Threats) analysis / allies-adversary exercises&lt;br /&gt;
* 2:45 ~ 3:00 -- Project scope brainstorm&lt;br /&gt;
* 3:00 ~ 3:15 -- Break&lt;br /&gt;
* 3:15 ~ 3:45 -- Outline project plan&lt;br /&gt;
* 3:45 ~ 4:15 -- Organizational structure&lt;br /&gt;
* 4:15 ~ 4:30 -- Wrap up: Next steps?&lt;br /&gt;
* 4:30 -- END&lt;br /&gt;
&lt;br /&gt;
=== Suggested preparation ===&lt;br /&gt;
* Review the Mozilla/NSF Grant description: https://wirelesschallenge.mozilla.org/#challenge-2 &lt;br /&gt;
** PDF of detailed application guide: https://wirelesschallenge.mozilla.org/_assets/NSF.WINS.application.guide.pdf&lt;br /&gt;
** Draft of Round 2 application (currently just copied from the PDF above): https://docs.google.com/document/d/1jaMwjvCEiNETpSZRHJlmGPBWgi6vErHHTNoXVBOi2ow/edit#heading=h.xh5zzpywahxt&lt;br /&gt;
* Review our Mozilla/NSF Grant application - https://docs.google.com/document/d/1IMefTIKiQEXw9A68p9BoEsLup7nbwIPwdzoqZ9tnWIg/edit#heading=h.9njnva7pwqay&lt;br /&gt;
* Review projected budget: https://docs.google.com/spreadsheets/d/1QJetruKfHrO5bpaLDk_smXYpLSvGlzytda_6koMjlCc/edit#gid=0&lt;br /&gt;
* Review business plan draft:  https://docs.google.com/document/d/1H8x3JnbGEkoeE3CwMzrCC0MD1tIAhb6O8JjLsiC51xw/edit# &lt;br /&gt;
&lt;br /&gt;
== Strategic Plan Notes ==&lt;br /&gt;
&lt;br /&gt;
=== 2-2:15pm:  Review Agenda &amp;amp; Mozilla Grant ===&lt;br /&gt;
* Review agenda &amp;amp; agree on schedule and format &lt;br /&gt;
&lt;br /&gt;
* What are the most important decisions/plans we want to get out of this meeting?&lt;br /&gt;
** mai - whaat are concrete plans are for where we get internet, are we going to rely on people donating bandwidth or find an access point for bandwidth, secondly, which neighborhood / community of focus to demonstrate working prototype&lt;br /&gt;
who can contribute and commit to work on the project&lt;br /&gt;
** sierk - nothing to add&lt;br /&gt;
** marc - expectations? to procrastinate stuff, come out with an idea of how much time people have, commitment levels&lt;br /&gt;
** jorrit- come out with some sort of organizational guidline, who do we engage with how do we not engage with, this is probably already stated in many forms, also expect to not just to get things done, a group of people who educate each other, distribute work in an orginzational way, how do we create an orginzation that doe snot just get things done of three months but the long term&lt;br /&gt;
** arthur - mostly just hear to listen and be involved in sudomesh going forward, reading meeting minutes only goes so far&lt;br /&gt;
** jnny - how to better distribute labor/task/work/focus areas, also just getting on the same page as value alignment, organizational structure to be in a position to compensate people who are contributing their time, also be cool if people could contribute to the business plan and budget for seeking directors and officers insurance&lt;br /&gt;
** blake - i wanted to get an understanding of sort of what we want to provide and from that i want to lay out a good software feature roadmap , how we're going to distributing nodes: are we gonna be sending out hardware to people or do we expect them to flash their own nodes. what typical user stories are gonna be and how we're gonna cater to that&lt;br /&gt;
** grant: i expect similar things to blake as far as: what services are we providing as an organization, and what communities and community organization we want to work with. what our values are. obviously we want to work with orgs that align with our values.&lt;br /&gt;
** daniel: to have a better liason between high tech folks and the newcombers who are not high tech. that way we don't loose a lot of people who come in.  a liason between developers who are deep into the software and the rest of the organization. i understand that developers focus on what they need to do and don't have a lot of time to explain.&lt;br /&gt;
*** jorrit: overlaps a bit with onboarding. it's all related&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Review PON project as outlined in Mozilla/NSF grant&lt;br /&gt;
&amp;quot;We provide technical, organizational and, in the future, financial support to community groups seeking to seed networks in their local communities. To this end, we are in the process of designing a micro-granting program that includes initial hardware, tools, and educational materials.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* jnny - interesting to think how we could reframe Mozilla's ideas of Internet Health - decentralization-&amp;gt;collaboration&amp;amp;coalition-building; privacy&amp;amp;security-&amp;gt;radical transparency &amp;amp; openness;  digital inclusion-&amp;gt;participation-&amp;gt;mastery&lt;br /&gt;
&lt;br /&gt;
** Social Impact&lt;br /&gt;
*** Our solution includes materials for reproducing the design (technical documentation, tutorials), and curricula for skills such as cable crimping, node mounting and router flashing.&lt;br /&gt;
*** Our solution depends on developing community partners to provide broadband anchor points, we expect implementers to collaborate with these partners to conduct information gathering, workshops and other outreach, so that each installation can be adapted to local needs.&lt;br /&gt;
**** Those active in the network are engaged by collaborating with local peers to gain capacity on how to independently use and operate a local community network.&lt;br /&gt;
&lt;br /&gt;
** Scalability&lt;br /&gt;
*** Our design seeks to achieve scalability with a smaller, neighborhood-scale model that can be replicated across a community and adapted to local conditions. Local groups are empowered to self-govern by providing access to open documentation, open source software, hardware recommendations and connections to similar projects in different geographical locations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
** Community&lt;br /&gt;
*** &amp;quot;This project is particularly suitable for areas where Internet access is available, but unevenly distributed. Point-to-point rooftop links can connect underserved areas to neighboring Extender Nodes up to 20+ miles away depending on line-of-sight. The existence of many &amp;quot;community hubs,&amp;quot; such as housing coops, housing projects, community centers and libraries can be particularly beneficial in serving as bandwidth hubs, where the costs can be shared amongst many members or where there may already be excess bandwidth available. &amp;quot;&lt;br /&gt;
*** &amp;quot;Our design provides open access WiFi to the public in areas and situations where it is most needed, such as homeless encampments, public demonstrations, and city parks. In this way, a community wireless network using our firmware can supplement existing commons-based infrastructure and resources. &amp;quot;&lt;br /&gt;
*** &amp;quot;Given the self-repairing nature of mesh network routing protocols, our solution is also applicable to fragile networks caused by any number of disruptions that may cause one or more nodes to abruptly drop out of the network, such as natural disasters, censorship, or housing crises.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
** Technical Feasibility&lt;br /&gt;
*** Zero-configuration setup. Plug a Home Node into a power socket to connect to the network.&lt;br /&gt;
*** Intelligent relaying over multiple wifi radios to avoid the bandwidth and latency issues associated with relaying over a single radio.&lt;br /&gt;
*** Automatic mapping: With node operator consent, a new node uses wifi-based positioning to add its approximate location to a public mesh map.&lt;br /&gt;
*** A public, password-free wifi network through which any wifi-enabled device can connect to the mesh and the internet&lt;br /&gt;
*** A private, password-protected wifi network, isolated from the mesh, which can be used by the node operator's household to access the network privately and connect any devices that shouldn't be shared publicly (e.g. printers).&lt;br /&gt;
*** Ability to share a portion of the node operator's available bandwidth (if they already have their own internet) via an open wifi hotspot.&lt;br /&gt;
*** Automatic tunneling of traffic coming from the open wifi hotspot via a free non-logging VPN run by the community.&lt;br /&gt;
*** Ability to extend the wifi coverage by hooking long-range wifi routers (Extender Nodes) into one of the ethernet ports of the node. &lt;br /&gt;
A simple web UI that makes it easy for anyone to configure basic options like such as how much bandwidth to share, and their a private wifi network password, which also includes an assistant to establish a link when a new Extender Node is added to the Home Node.&lt;br /&gt;
&lt;br /&gt;
==== Notes ====&lt;br /&gt;
* grant: What is a working prototype? &lt;br /&gt;
* Marc: There's a deadline. We can ignore it, set our own deadline. Decide what we think that should look like and what needs to be done to get there.&lt;br /&gt;
*  Sierk: Shouldn't focus on getting the grant, but what we want to do anyway&lt;br /&gt;
* mai - that is what i was thinking fo rt this meeting, the language is not the grant contraining what we are doing, or change what we would be doing anyway&lt;br /&gt;
* jorrit - what i hear, is that getting a bigger grant is a good thing and we need it, i don't know if it is a good thing, and I don't know if we need, what do you wanna do and how do you do it, rather than pursuign grant&lt;br /&gt;
* mai - it's just a deadline to have something by june, &lt;br /&gt;
* jenny - as far as goals we should have by june, tangible mapping &amp;amp; monitoring and an example of a community/neighborhood we are serving&lt;br /&gt;
** sierk: good to get documentation of how to approach a neighborhood, beyond technical, and get the community onboard. at BYOI 2 of the speakers emphasized focus on community and politics wrt implementation &lt;br /&gt;
* grant: what we have, what we're lacking, what we can do, possible drawbacks&lt;br /&gt;
* mai: what we have as a community (resources)&lt;br /&gt;
&lt;br /&gt;
=== 3:00-3:25pm: SWOT Analysis ===&lt;br /&gt;
&lt;br /&gt;
==== SWOT (Strengths Weaknesses Opportunites and Threats) Analysis ====&lt;br /&gt;
Identify our biggest SWOT items through sticker vote&lt;br /&gt;
&lt;br /&gt;
* Strengths&lt;br /&gt;
** organizing workshops / skillshares&lt;br /&gt;
** publicity / community interest&lt;br /&gt;
** do-ocracy (anyone can participate, jump in)&lt;br /&gt;
*** daniel: shares experience with rocket.chat, free sharing, changing cultural brainwashing of following orders&lt;br /&gt;
** grant: lots of equipment!&lt;br /&gt;
** jorrit: very international community&lt;br /&gt;
** daniel: knowledge, technical knowledge&lt;br /&gt;
** mai: many local community partnerships&lt;br /&gt;
** arthur: actually really easy to flash a home node&lt;br /&gt;
&lt;br /&gt;
* Weaknesses&lt;br /&gt;
** sierK; do-ocracy (difficult for new folks to plug in; impact on diversity)&lt;br /&gt;
*** juul: less of a technical deficiency and more a culture of being told what to do&lt;br /&gt;
** mai: lack of diversity&lt;br /&gt;
** arthur: lack of nodes - any number of us could flash the total # in an afternoon. problem of scaling&lt;br /&gt;
** lack of updated technical documentation / stale repos&lt;br /&gt;
&lt;br /&gt;
* Opportunities&lt;br /&gt;
** sierk: demonstrating and teaching do-ocratic culture - encouraging 'leaderlessness'&lt;br /&gt;
** daniel: taking the time to interact with people personally who aren't as comfortable w/ do-ocracy etc / mentorship; creating a trusting environment&lt;br /&gt;
** mai: more community partnerships &amp;amp; connections - more tangible way of helping&lt;br /&gt;
** arthur/jenny: lots of node requests (53 to be exact) = opportunities for mounting &amp;amp; expanding the mesh&lt;br /&gt;
** jorrit: creating rigorous documentation by sharing/percolating knowledge with others when things are learned / continual education / 1on1 training&lt;br /&gt;
&lt;br /&gt;
* Threats&lt;br /&gt;
** daniel: the word 'leadership' is dividing communities. here it means more pushing people down rather than bringing them up&lt;br /&gt;
** jorrit: letting ourselves be motivated/steered by money/grants &lt;br /&gt;
** jorrit: misaligned values (references issue w/ IFTF and where they get their money)&lt;br /&gt;
*** chaos [juul: not a threat! opportunity. strength!]&lt;br /&gt;
** grant: burnout.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 2:45-3pm: Project scope brainstorm ===&lt;br /&gt;
What are our small, medium, and big goals? &lt;br /&gt;
** jenny: mapping/monitoring; tangible interconnected neighborhood (eg in Richmond or Fruitvale)&lt;br /&gt;
*** arthur: concens at last BYOI re: live mapping&lt;br /&gt;
**** sierk: two kinds of mapping - of nodes or of coverage area&lt;br /&gt;
** documentation re: community outreach&lt;br /&gt;
** jorrit - connected to outreach, would like two workshopd, one before where we talk to a community (provide info) and then one afterwards to see what changed&lt;br /&gt;
** daniel - we have a beautiful ballroom, but we could find a local place to take the workshops to.&lt;br /&gt;
** sierk - have interconnected neighborhoods, document with collaborating with partners in those neighborhoods.&lt;br /&gt;
&lt;br /&gt;
==== Technical ====&lt;br /&gt;
** juul - wants to focus on zeroconf node, preventing us from scaling&lt;br /&gt;
** jorrit: would like to be able to give someone new an internet-in-a-box / cow&amp;amp;chicken&lt;br /&gt;
*** grant: nodemount bag - all you need to set up a node (eg what monkeybrains does)&lt;br /&gt;
** juul: unknowns around firmware flashing wrt ubiquiti &amp;amp; tp-link firmware lockdowns. would like to figure out state of flashing modern hardware, support from openwrt, how do we deal with it.?&lt;br /&gt;
*** jenny: we should talk to the LibreMesh folks&lt;br /&gt;
** juul: prototype of little bag w/ node &amp;amp; cable for running a node off 12V carplug&lt;br /&gt;
&lt;br /&gt;
==== Community ====&lt;br /&gt;
* How do we facilitate a sense of shared ownership of and membership in the network-as-community? +1&lt;br /&gt;
** jorrit - are we going to focus by connecting to people, or by covering area. figure out areas that are technically feasible to connect or to find people interested and try to make it work &lt;br /&gt;
*** grant: example of gung-ho guy from alameda&lt;br /&gt;
** jnny - suggesting richmond and fruitvale because we have potential connections in those areas already.&lt;br /&gt;
** jorrit - how do we select groups we work with&lt;br /&gt;
** mai: interviews with people who've been working on this (eg the BYOI panel, C4MJ) - community network expert survey&lt;br /&gt;
** mai: community survey&lt;br /&gt;
&lt;br /&gt;
==== Organizational ====&lt;br /&gt;
( ! )&lt;br /&gt;
I find it interesting to see that the &amp;quot;Community&amp;quot; and &amp;quot;Organizational&amp;quot; are nearly empty and the &amp;quot;Technical&amp;quot; section is detailed. I think this highlights my desire that we further develop (community) organizing skills.&lt;br /&gt;
** there's a whole section on organization at the bottom...&lt;br /&gt;
** jenny: viable inventory and sticker-printing for nodes&lt;br /&gt;
** sierk: documentation/guide for administrators / node owners manual&lt;br /&gt;
&lt;br /&gt;
==== Fundraising ====&lt;br /&gt;
* How do we want to fundraise/have income so we can pay for staff time, buy equipment, etc? (I'd suggest to move fundraising to last item - after discussing what is needed)&lt;br /&gt;
** Grant writing, crowdfunding, monthly paid memberships?&lt;br /&gt;
* Monthly recurring donations:  https://www.patreon.com/peoplesopennet/overview&lt;br /&gt;
* See ongoing draft of Business Plan: https://docs.google.com/document/d/1H8x3JnbGEkoeE3CwMzrCC0MD1tIAhb6O8JjLsiC51xw/edit# &lt;br /&gt;
* See Sudo Mesh Projected Budget: https://docs.google.com/spreadsheets/d/1QJetruKfHrO5bpaLDk_smXYpLSvGlzytda_6koMjlCc/edit#gid=0&lt;br /&gt;
** jorrit: making it easier for people to give us money - sell swag, nodes, kits&lt;br /&gt;
&lt;br /&gt;
=== 3:25-3:35pm: Break ===&lt;br /&gt;
&lt;br /&gt;
=== 3:35-3:55pm: Outline rough project Plan ===&lt;br /&gt;
* Review the brainstorm: What are Minimum Viable Product ideas vs. moonshot ideas? (suggest to focus on community building: our &amp;quot;product&amp;quot; is a community in my mind)&lt;br /&gt;
* What is the very *least* we could do to satisfy our goals between Feb - June 2018?&lt;br /&gt;
** In other words, what do we prioritize?&lt;br /&gt;
* What would success look like after 3.5 months?&lt;br /&gt;
&lt;br /&gt;
=== 3:55-4:15pm: Organizational structure ===&lt;br /&gt;
* How should we assign roles and responsibilities?&lt;br /&gt;
** Potential coordination roles for discussion: firmware development, bug fixing, community outreach/node mounting, documentation, financials, volunteer coordinating/onboarding?&lt;br /&gt;
--- should there be a clear distinction of teams/facilators and how would these teams coordinate their effort and reportbacks&lt;br /&gt;
* Who is able to commit time to PON and how much?&lt;br /&gt;
** grant: been spending a lot of time working on outreach, node mounts, documentation. can keep contributing at this level right now, but need to switch focus soon in order to make $$$ - kind of all-or-nothing for me, wouldn't want to &lt;br /&gt;
** daniel: willing to work on Saturdays, on and off Tuesdays. would like to participate in how-to documentation&lt;br /&gt;
** jenny:  teeing up the bureaucracy/admin so it's easy for others to do in the future. need to figure out how to sustain myself in the next 3-6 months. documentation, fundraising, outreach,  node mounting, events&lt;br /&gt;
** arthur: one day a week on the weekends, small contributions after work on weekdays. capable of doing an end-to-end nodemount now once i figure out serial stuff. starting to dig into makenode and learning about the firmware&lt;br /&gt;
** jorit: help stabilize the network. includes helping to keep the firmware healthy. helping to keep the exit nodes healthy., and most importantly helping others to do the same. share what i've learned and keep that knowledge alive &amp;amp; scale it. bug reviews, mentoring, documentation/creating guides to onboard others. sometimes the time commitent is really intense, other things are more. cant make any time commitments - a few hours/week to 4 days/week&lt;br /&gt;
** juul: can't put any time into this other than answering questions until ~mid-March. chance i won't have a job after that - so i could put much more time in - but also chance i'll still be working fulltime until June depending on funding. In June will probably go down to halftime. In the time I do have I want to work on getting us off makenode and the auomated mapping.&lt;br /&gt;
** sierk: also looking for paid work, probably part-time. would like to help more with nodemounts, but sundays are often full. want to focus on the things folks dont have time for that i think needs some work. depends, but will be available. want to spend time on organizing documentation and setting up &amp;amp; maintaining local services.&lt;br /&gt;
** mai: would like to help with any admin/filing/fundraising stuff w/ jenny. would like to be able to lead a nodemount. outreach &amp;amp; partnership development; organizing how we work together. any writing that needs to be done - fundraising/newsletter/blogging/outreach materials. same boat as grant&amp;amp;jenny, looking for jobs - if a fulltime opportunity comes up, won't be able to commit. much time spent applying for jobs, should i spend that time working on fundraising for this?&lt;br /&gt;
** jenny:  if i could backtrack and budget in compensation for key roles like accounting, event management, building maintenance - back in the early days of omni i absolutely would have. as it stands, that work's fallen on the shoulders of 3-4 people working more than full-time for years - and that's of a very small minority of people who can afford to do so. always a dream of sudomesh to be able to support the creation of worker co-ops or contractor positions to sustain those who keep the project alive.&lt;br /&gt;
** jorrit: in a way i see it as an outcome of this grant. restating what jenny said.&lt;br /&gt;
** sierk: we should at some point define what were potential tasks that could be compensated. e.g. issues like the exit node emergency could be compensated. there are other more long term developments where we want to have volunteers in there. maybe we should have a discussion when there's money available to pay people what sort of tasks should be paid.&lt;br /&gt;
** mai: we could have people on call and making sure that those peope are paid. i think we have to really think concretely about what we want to accomplish in the next months to a year and what tasks would be involved and how are we going to compensate those people. what sort of models should we look at, e.g. like co-ops&lt;br /&gt;
** jorrit: one of the things i'd like to offer as a &amp;quot;things we do before june&amp;quot;. we wrote into the budget the idea of micro-grants. the other idea was not to be the organization to be handing out money but create a list of trusted people who can do things and those people can handle stuff as a sole proprietor. for june figure out a couple of different ways that people can make a living.&lt;br /&gt;
** mai: i'd say if we document that progress and these models then we can submit that as part of our prototype. if we can be on track to making a model like this work in the coming months.&lt;br /&gt;
*** grant: what is a working prototype? includes the organization, how we organize ourselves &amp;amp; how we function. tech + community + organization&lt;br /&gt;
**** jorrit: yes, agree, but think we have a nice community already. not &amp;quot;we don't have a prototype&amp;quot; but &amp;quot;we can make it better&lt;br /&gt;
*** juul: look at existing models from european groups. someone getting paid for one task vs. someone getting paid continuously - should split into different orgs. Guifi for example doesn't take care of providing internet access - just infrastructure. Money from EU spent on putting in fiber to places lacking infrastructure. When I asked what they did to prevent money from ruining everything - they prevent or discourage speculation. The exact opposite of Bitcoin - design model around people who will only speculate on something that will have no value later. Spend as much as possible of $$ coming into sudomesh on infrastructure. People doing the work not be hired directly but start their own collective - set domain of work commitment. &lt;br /&gt;
****mai: separate from sudomesjh?&lt;br /&gt;
***** juul: yes, if continuous income. money can also flow between the two. &lt;br /&gt;
*** juul: re: microgrants - see ssbc. one person makes the decisions. been disagreements, resolved via one person making final decision&lt;br /&gt;
**** jorrit: decision-making process - if there's a lot of disagreement, shows we're talking with each other&lt;br /&gt;
***** juul: saying community doesn't split over these disagreements&lt;br /&gt;
&lt;br /&gt;
* How should we compensate people for their time?&lt;br /&gt;
* Should we use something like Loomio to try to offload decisionmaking from Tues meetings? +1 -1 I believe in person discussion establish trust and helps build consensus&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
=== 4:15-4:30pm: Wrapup &amp;amp; Next Steps ===&lt;br /&gt;
* I like sending this survey after the first strategic meeting but before the second, maybe we could attach it to the Feb. newsletter also? +1&lt;br /&gt;
* mai: more meetings. need to make decisions. work sprint to deeper dive?&lt;br /&gt;
** jorrit: don't think we need more meetings. lot here we do already - matter of prioritizing,  picking communities of focus. personally have capacity for this kind of meeting about once every 3mos&lt;br /&gt;
*** mai: another way is to use something like loomio&lt;br /&gt;
** grant: maybe have a section of Tuesdays re: org. or make a list and move things around - check in with bottomliners etc. &lt;br /&gt;
** sierk: would be helpful if this was divided into some subprojects and could see who's working on what things.  maybe we could use the trello? and see who's working on what subprojects. &lt;br /&gt;
** jenny:  list action items as wrapup. also we should have a hackathon! maybe mid-march or early april?&lt;br /&gt;
** mai: bank on peoples' enthusiasm? or carve out more deliberate space to continue this conversation? would like to do more fundraising, but can't do it unless i can tell a story about what we'd do with that money. current MO is not as much of a package if we were to do, say, a crowdfunding campaign. &lt;br /&gt;
** daniel - why don't we append names to this list and work on reaching out to get more people involved.&lt;br /&gt;
** jorrit: can take this down, make proposals, have discussions at the meetings&lt;br /&gt;
&lt;br /&gt;
== Action Items ==&lt;br /&gt;
* Monitoring Office Hours Session - Jorrit&lt;br /&gt;
* Fundraising work - Mai / Jenny&lt;br /&gt;
* Set upl a Loomio instance - Jenny&lt;br /&gt;
* viable sticker printing inventory - jnny, sierk&lt;br /&gt;
* documentation with community outreach - mai, jnny, grant&lt;br /&gt;
* tangible network - arthur, jenny, &lt;br /&gt;
** frutivale/LOLspace - jenny, mai&lt;br /&gt;
** richmond - grant, jehan?, mai, jenny, &lt;br /&gt;
* node mount tool kit - daniel, arthur&lt;br /&gt;
** https://sudoroom.org/wiki/Mesh/Mounting#Mounting_Rooftop_Nodes&lt;br /&gt;
** https://github.com/sudomesh/mounting &lt;br /&gt;
** struts, masts, proper-sized hoseclamps, appropriate j-pole bits. need to figure out what we have and what we need.&lt;br /&gt;
** sierk: possibly will or ben would like to be involved in this &lt;br /&gt;
* internet-in-a-box: jorrit, daniel&lt;br /&gt;
** daniel - would like to dev one for spanish-speaking peoples&lt;br /&gt;
* battery-powered node kit - juul, grant&lt;br /&gt;
** unknown: how to keep it from draining car battery&lt;br /&gt;
* mapping - grant, jenny&lt;br /&gt;
* monitoring - jorrit&lt;br /&gt;
** knowing when exit node is down&lt;br /&gt;
** daniel: can include security audit / scans?&lt;br /&gt;
* node config / firmware - grant, juul, jorrit, sierk&lt;br /&gt;
* node operator's manual - sierk, jorrit, mai (editing)&lt;br /&gt;
* flashing modern devices - mostly research, then what to do about this that aren't easy to flash? - jenny, grant?&lt;br /&gt;
* collaboration w/ neighborhood &amp;amp; local orgs - mai, jenny, jorrit (within 1mi range)&lt;br /&gt;
* selling swag / kits / etc - grant, mai, jenny&lt;br /&gt;
* field trip info-session on project &amp;amp; reflection&amp;amp;feedback from community - suggesting newer byoi folks eg benny, matthew - deadline for decision? march 1st -  jorrit, mai&lt;br /&gt;
&lt;br /&gt;
== Reflections ==&lt;br /&gt;
* sierk: doing what we were going to do, but more organized&lt;br /&gt;
* juul: nice to talk. been really tired but not @ this meeting. fitz may set up a workshop for this group for people interested in learning about our new RF station in sudoroom (how radio works)&lt;br /&gt;
* jorrit: was nice. getting better at putting words at what we're trying to do, important&lt;br /&gt;
* arthur: seems like action items correspond to the brainstorm&lt;br /&gt;
* jenny:&lt;br /&gt;
* daniel: happy we put names to things before we left!&lt;br /&gt;
* grant: twas good. would like to start working toward things. action items! guidance iz good.&lt;br /&gt;
* mai: glad we talked through some stuff. didn't hit all of our discussion points re: goals. didn't discuss org plan re: onboarding. maybe a topic for an upcoming tuesday? discuss how we can get people involved on the different subprojects. will get better at using trello. &lt;br /&gt;
** grant: open channels of communication important for onboarding&lt;/div&gt;</summary>
		<author><name>Gcg</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Minutes&amp;diff=11036</id>
		<title>Mesh/Minutes</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Minutes&amp;diff=11036"/>
		<updated>2018-02-21T18:57:40Z</updated>

		<summary type="html">&lt;p&gt;Gcg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable sortable collapsible&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;| Past Meeting Notes&lt;br /&gt;
|-&lt;br /&gt;
! data-sort-type=&amp;quot;isoDate&amp;quot; | date&lt;br /&gt;
! class=&amp;quot;unsortable&amp;quot; | comments&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/20_Feb_2018|2018-02-20]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/13_Feb_2018|2018-02-13]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/06_Feb_2018|2018-02-06]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/30_Jan_2018|2018-01-30]]&lt;br /&gt;
| Monthly general meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/23_Jan_2018|2018-01-23]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/16_Jan_2018|2018-01-16]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/09_Jan_2018|2018-01-09]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/02_Jan_2018|2018-01-02]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/26_Dec_2017|2017-12-26]]&lt;br /&gt;
| Monthly general meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/19_Dec_2017|2017-12-19]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/12_Dec_2017|2017-12-12]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/05_Dec_2017|2017-12-05]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/28_Nov_2017|2017-11-28]]&lt;br /&gt;
| Monthly general meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/21_Nov_2017|2017-11-21]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/14_Nov_2017|2017-11-14]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/24_Oct_2017|2017-10-24]]&lt;br /&gt;
| Monthly general meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/17_Oct_2017|2017-10-17]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/10_Oct_2017|2017-10-10]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/03_Oct_2017|2017-10-03]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/26_Sep_2017|2017-09-26]]&lt;br /&gt;
| Monthly general meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/19_Sep_2017|2017-09-19]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/12_Sep_2017|2017-09-12]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/11_Sep_2017|2017-09-11]]&lt;br /&gt;
| Website redesign session&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/05_Sep_2017|2017-09-05]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/29_Aug_2017|2017-08-29]]&lt;br /&gt;
| Monthly general meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/22_Aug_2017|2017-08-22]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/15_Aug_2017|2017-08-15]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/08_Aug_2017|2017-08-08]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/01_Aug_2017|2017-08-01]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/18_July_2017|2017-07-18]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/11_July_2017|2017-07-11]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/4_July_2017|2017-07-4]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/20_June_2017|2017-06-20]]&lt;br /&gt;
| Monthly general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/13_June_2017|2017-06-13]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/11_June_2017|2017-06-11]]&lt;br /&gt;
| Temescal street fair report-back&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/6_June_2017|2017-06-06]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/30_May_2017|2017-05-30]]&lt;br /&gt;
| Monthly general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/16_May_2017|2017-05-16]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/9_May_2017|2017-05-09]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/02_May_2017|2017-05-02]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/25_April_2017|2017-04-25]]&lt;br /&gt;
| Monthly general meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/18_April_2017|2017-04-18]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/17_April_2017|2017-04-17]]&lt;br /&gt;
| Annual sudo mesh board meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/11_April_2017|2017-04-11]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/4_April_2017|2017-04-04]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/28_March_2017|2017-03-28]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/21_March_2017|2017-03-21]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/14_March_2017|2017-03-14]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/07_March_2017|2017-03-07]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/28_February_2017|2017-02-28]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/21_February_2017|2017-02-21]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/10_February_2017|2017-02-10]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/07_February_2017|2017-02-07]]&lt;br /&gt;
| Organizing &amp;quot;Build Your Own Internet&amp;quot; Workshop&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/05_July_2016|2016-07-05]]&lt;br /&gt;
| Videochat meeting with nycmesh&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/22_June_2016|2016-06-22]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/07_June_2016|2016-06-07]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/23_February_2016|2016-02-23]]&lt;br /&gt;
| Monthly general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/09_February_2016|2016-02-09]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/02_February_2016|2016-02-02]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/26_January_2016|2016-01-26]]&lt;br /&gt;
| Monthly general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/27_October_2015|2015-10-27]]&lt;br /&gt;
| Monthly general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/06_October_2015|2015-10-06]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/29_September_2015|2015-09-29]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/22_September_2015|2015-09-22]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/15_September_2015|2015-09-15]]&lt;br /&gt;
| Second annual board meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/08_September_2015|2015-09-08]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/01_September_2015|2015-09-01]]&lt;br /&gt;
| Monthly general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/07_April_2015|2015-04-07]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/26_March_2015|2015-03-26]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/17_March_2015|2015-03-17]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/10_March_2015|2015-03-10]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/26_February_2015|2015-02-26]]&lt;br /&gt;
| Big general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/24_February_2015|2015-02-24]]&lt;br /&gt;
| Hacknight&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/19_February_2015|2015-02-19]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/05_February_2015|2015-02-05]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/03_February_2015|2015-02-04]]&lt;br /&gt;
| Hacknight&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/29_January_2015|2015-01-29]]&lt;br /&gt;
| Big general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/24_January_2015|2015-01-24]]&lt;br /&gt;
| Mesh mini-retreat&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/22_January_2015|2015-01-22]]&lt;br /&gt;
| Weekly general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/15_January_2015|2015-01-15]]&lt;br /&gt;
| Weekly general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/30_December_2014|2014-12-30]]&lt;br /&gt;
| Big general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/18_December_2014|2014-12-18]]&lt;br /&gt;
| Weekly general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/13_November_2014|2014-11-13]]&lt;br /&gt;
| Weekly general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/21_October_2014|2014-10-21]]&lt;br /&gt;
| Hacknight&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/16_October_2014|2014-10-16]]&lt;br /&gt;
| Weekly general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/09_October_2014|2014-10-09]]&lt;br /&gt;
| Weekly general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/02_October_2014|2014-10-02]]&lt;br /&gt;
| Weekly general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/25_September_2014|2014-09-25]]&lt;br /&gt;
| Big general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/28_August_2014|2014-08-28]]&lt;br /&gt;
| Big general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/21_August_2014|2014-08-21]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/07_August_2014|2014-08-07]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/31_July_2014|2014-07-31]]&lt;br /&gt;
| Big general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/17_July_2014|2014-07-17]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/15_July_2014|2014-07-15]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/10_July_2014|2014-07-10]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/06_July_2014|2014-07-06]]&lt;br /&gt;
| Hackathon Day 2!&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/05_July_2014|2014-07-05]]&lt;br /&gt;
| Hackathon Day 1!&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/03_July_2014|2014-07-03]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/12_June_2014|2014-06-12]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/05_June_2014|2014-06-05]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/29_May_2014|2014-05-29]]&lt;br /&gt;
| General meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/27_May_2014|2014-05-27]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/20_May_2014|2014-05-20]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/13_May_2014|2014-05-13]]&lt;br /&gt;
| First Tuesday meeting ^.^&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/08_May_2014|2014-05-08]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/01_May_2014|2014-05-01]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/24_April_2014|2014-04-24]]&lt;br /&gt;
| General meeting!&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/17_April_2014|2014-04-17]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/03_April_2014|2014-04-03]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/27_March_2014|2014-03-27]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/20_March_2014|2014-03-20]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/13_March_2014|2014-03-13]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/27_February_2014|2014-02-27]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/20_February_2014|2014-02-20]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/13_February_2014|2014-02-13]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/6_February_2014|2014-02-06]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/30_January_2014|2014-01-30]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/23_January_2014|2014-01-23]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/16_January_2014|2014-01-16]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 31 December - 09 January&lt;br /&gt;
| Holidaze Break&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/26_December_2013|2013-12-26]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/19_December_2013|2013-12-19]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/12_December_2013|2013-12-12]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/5_December_2013|2013-12-05]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/21_November_2013|2013-11-21]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/14_November_2013|2013-11-14]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/07_November_2013|2013-11-07]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/31_October_2013|2013-10-31]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/24_October_2013|2013-10-24]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/17_October_2013|2013-10-17]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/10_October_2013|2013-10-10]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/26_September_2013|2013-09-26]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/18_September_2013|2013-09-18]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/11_September_2013|2013-09-11]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/4_September_2013|2013-09-04]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/28_August_2013|2013-08-28]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 07 August - 21 August&lt;br /&gt;
| Hack nights!&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/31_July_2013|2013-07-31]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/25_July_2013|2013-07-25]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 18 July 2013&lt;br /&gt;
| Hack night: Flashing, firmware&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/11_July_2013|2013-07-11]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/04_July_2013|2013-07-04]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/27_June_2013|2013-06-27]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/20_June_2013|2013-06-20]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/13_June_2013|2013-06-13]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 30 May - 05 June&lt;br /&gt;
| Hack nights! Trying out some of the nicer Ubiquiti equipment we procured&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/23_May_2013|2013-05-23]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/09_May_2013|2013-05-09]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 25 April - 02 May&lt;br /&gt;
| Hack nights! See wiki for documentation - principally going through &amp;lt;br&amp;gt;donated routers, flashing them with OpenWRT and installing batman-adv.&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/18_April_2013|2013-04-18]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/11_April_2013|2013-04-11]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 28 March - 04 April&lt;br /&gt;
| SPRING SHIFT HIATUS&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/21_March_2013|2013-03-21]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/07_March_2013|2013-03-07]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/28_February_2013|2013-02-28]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/21_February_2013|2013-02-21]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/14_February_2013|2013-02-14]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/7_February_2013|2013-02-07]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [http://lists.sudoroom.org/pipermail/mesh/2013-January/000000.html 2013-01-31]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Gcg</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/20_Feb_2018&amp;diff=11035</id>
		<title>Mesh/20 Feb 2018</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/20_Feb_2018&amp;diff=11035"/>
		<updated>2018-02-21T18:55:54Z</updated>

		<summary type="html">&lt;p&gt;Gcg: Created page with &amp;quot;People's Open Network Weekly Meeting - 20 February 2018 7:30pm-9pm * https://omnicommons.org/wiki/Safer_Space_Policy  === Agenda === * Introductions and Meeting Roles (10 mins...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;People's Open Network Weekly Meeting - 20 February 2018 7:30pm-9pm&lt;br /&gt;
* https://omnicommons.org/wiki/Safer_Space_Policy&lt;br /&gt;
&lt;br /&gt;
=== Agenda ===&lt;br /&gt;
* Introductions and Meeting Roles (10 mins)&lt;br /&gt;
* Check in on previous action items (5 mins)&lt;br /&gt;
* Updates &amp;amp; Reportbacks (20 mins)&lt;br /&gt;
* Sundays (5 mins)&lt;br /&gt;
* Proposal: Node Explainer Program (10 mins)&lt;br /&gt;
* Discussion: Jeff's Place (10 mins)&lt;br /&gt;
* Discussion Dev's Place (10 mins)&lt;br /&gt;
* Discussion: Community Survey (10 mins)&lt;br /&gt;
* Action Items (5 mins)&lt;br /&gt;
* Breakout Groups:  software/firmware feature planning; biz plan / budget&lt;br /&gt;
&lt;br /&gt;
=== Introductions ===&lt;br /&gt;
Introduce yourself: Name; Preferred Pronoun; Icebreaker Response; BRIEF Announcements&lt;br /&gt;
* Icebreaker question:  First song/thing you pirated&lt;br /&gt;
* blake, *,  wants to plug protest, rob zombie==&lt;br /&gt;
* Daniel, he/him&lt;br /&gt;
* Rob, he/him, Do You Believe in Magic?&lt;br /&gt;
* Jeremy, probably Aphex Twin or Crystal Method&lt;br /&gt;
* Eve, a bunch of songs off of a website&lt;br /&gt;
* Ben, he/they, age of empires&lt;br /&gt;
* Bengo, they/them, Napster'd something?&lt;br /&gt;
* Mai, she/her/they/them, Beck's Odelay&lt;br /&gt;
* Jorrit, he/him, songs off of a radio&lt;br /&gt;
* Scott, Doom&lt;br /&gt;
* Grant, he/they, Da Drought 3&lt;br /&gt;
&lt;br /&gt;
=== Meeting Roles ===&lt;br /&gt;
* Facilitator/s: Ben&lt;br /&gt;
* Stacktaker: Grant&lt;br /&gt;
* Notetaker/s: Blake&lt;br /&gt;
** URL of this pad: https://peoplesopen.net/notes&lt;br /&gt;
* Next meeting's facilitator(s): &lt;br /&gt;
&lt;br /&gt;
== Check in on previous action items ==&lt;br /&gt;
Check previous meeting minutes at https://sudoroom.org/wiki/Mesh/Minutes and past action items below:&lt;br /&gt;
* Send CT-1 and W-9 - Jenny - done&lt;br /&gt;
* Follow up on D&amp;amp;O Insurance - Jenny, ? - pending completion of biz plan and budget. underwriters are concerned that we have no moneyz. they want business plan&lt;br /&gt;
** Mai spent a while copy editing the business plan&lt;br /&gt;
* Reply to Julia / AJ+ - Jenny - did not do yet, as no consensus on location / interviewees...&lt;br /&gt;
** Jenny: Some folks from Al Jazeera wanted to work on a short documentary, but had a short timeline. Exit node down, hard to get installs going, limbo with IA, etc. made it difficult to schedule.&lt;br /&gt;
** had responded based on the notes from previous meeting, did not want to paint ourselves as a successful community network project&lt;br /&gt;
** To move forward: node mount they can join us on, find people that can be interviewed that are directly affected&lt;br /&gt;
** if we get confirm from this weekend's miount... is it worth the effort? &lt;br /&gt;
* Move peoplesopen.network emails to new Migadu server - Jenny/Jehan - pending jnny. Jenny: Next week&lt;br /&gt;
* Get rocket.chat secure and persistent on sudomesh server - grant -   https://peoplesopen.net/chat/&lt;br /&gt;
** Mai wrote back to RocketChat support re: iOS support and they got back to her immediately&lt;br /&gt;
** Benny debugging,got RocketChat working in Android&lt;br /&gt;
** Jorrit noticed a FileUpload Error (maybe by size limit in nginx?)&lt;br /&gt;
* Draft group consensus and send to Amos White (Alameda) - grant&lt;br /&gt;
** he'll come to a meeting. invited to office hours&lt;br /&gt;
* Send survey to mailing list ahead of strategic meeting - mai - did not send, decided to hold off until after the strategy meeting where we came up with solidiefied list of action items&lt;br /&gt;
* Weekday node mount with Jeff 12pm Wednesday - Ben, mai, grant&lt;br /&gt;
** went, no mount but good location survey&lt;br /&gt;
&lt;br /&gt;
== Updates &amp;amp; Reportbacks ==&lt;br /&gt;
=== Bugs/Technical ===&lt;br /&gt;
Priority bugs we need help with are located at: https://peoplesopen.net/issues &amp;amp;&amp;amp;: http://peoplesopen.net/helpwanted - For a high-level overview of recent Github activity, see the Trello: https://trello.com/invite/b/r9l5ouQ4/3b2eecd83bb9e7a57a339cf1ee038288/sudo-mesh-github-repos&lt;br /&gt;
* https://github.com/sudomesh/bugs/issues/17: add more potential exit node ips to homenodes. when more than one, it will use switch if the defailt goes down - grant&lt;br /&gt;
* https://github.com/sudomesh/bugs/issues/8 tunnel broker failed - need to patch config&lt;br /&gt;
* https://github.com/sudomesh/bugs/issues/1 - when exit node goes down on home node, traffic is routed to isp ip - &lt;br /&gt;
* https://github.com/sudomesh/bugs/issues/5 - disable debug logging - daniel/grant/bengo/lesley  --Bengo, can you give me an em address where to forward you info about this issue. (daniel here, danarauz@gmail.com)&lt;br /&gt;
* netflix bug - may be some VPNs that are designed to get around netflix geoblock (robb)&lt;br /&gt;
&lt;br /&gt;
=== Node Mounts &amp;amp; Outreach ===&lt;br /&gt;
Node Mounts Trello: https://trello.com/invite/b/DtzngKaM/49e1c21fc9da199fcdeceb8623b5117a/node-mounts&lt;br /&gt;
* Mai: what would get the internet archive tower link moving?&lt;br /&gt;
** jenny: need to figure out what hardware, coordinate with jonah&lt;br /&gt;
*** ben: what hardware? :: may coordinate::&lt;br /&gt;
**** jorrit: concerns was that they don't want to be on the line in any way , no formal agreements w/ internet archive or partnership&lt;br /&gt;
***** blake: need to get equipment. action item&lt;br /&gt;
** ben, daniel, blake, jenny, grant?&lt;br /&gt;
* Diane's - Jenny has contact info, Robb will help with  power supply&lt;br /&gt;
&lt;br /&gt;
=== Communications &amp;amp; Events ===&lt;br /&gt;
Comms Trello: https://trello.com/invite/b/f3ugMPNU/94033ee6c2cef93fc1b1637b727c902a/sudo-mesh-communications // Events Trello: https://trello.com/invite/b/Y3XfDK85/2b6fcb4fa92788609692a53a96fb4614/peoples-open-events&lt;br /&gt;
* Jenny: Re: AJ++ documentary, we'd need to plan a nodemount to take them along with, strategize where/with whom that might be, and get buy-in from 1-2 people who can attest to how PON could help them. No reply back from LOLspace on collaborating with this. Planning to discuss with Needa Bee (The Village) tomorrow.&lt;br /&gt;
&lt;br /&gt;
=== Internal Logistics / Finance ===&lt;br /&gt;
Internal Logistics &amp;amp; Bureaucracy Trello: https://trello.com/invite/b/LzVQlW3X/1bb8bd543c8633688175365d2554c2c2/internal-logistics-bureaucracy-brainstorms&lt;br /&gt;
* Re: Mozilla WINS grant - we can officially announce that PON won a $10K Honorable Mention, and both PON and DisasterRadio are advancing to Stage 2!&lt;br /&gt;
** https://wirelesschallenge.mozilla.org/#winners-1&lt;br /&gt;
* Jenny: Re: Directors &amp;amp; Officer's Insurance, underwriters are requesting a business plan and projected budget to demonstrate we can pay.&lt;br /&gt;
** Finalizing Business Plan, plz help: https://docs.google.com/document/d/1H8x3JnbGEkoeE3CwMzrCC0MD1tIAhb6O8JjLsiC51xw/edit#heading=h.jbo5jgxizxh9&lt;br /&gt;
** Iterating on 5-year Projected Budget - this is projected, mainly intended for the insurers, but we can continue hacking on: https://docs.google.com/spreadsheets/d/1QJetruKfHrO5bpaLDk_smXYpLSvGlzytda_6koMjlCc/edit#gid=0&lt;br /&gt;
&lt;br /&gt;
==== Strategy Meeting Reportback ====&lt;br /&gt;
Brief summary/highlights below, notes are here: https://peoplesopen.net/pad/p/pon-strategic-plan&lt;br /&gt;
* Mozilla WINS grant as a means to set a deadline â€” June 2018 â€” for goals we already hope to achieve.&lt;br /&gt;
* SWOT analysis&lt;br /&gt;
* Group's reflection on capacity and interests in contributing&lt;br /&gt;
* Discussion of labor compensation â€” cooperative, collective, or other social enterprise?&lt;br /&gt;
* Action plan highlights&lt;br /&gt;
** Tangible network: mapped and monitored, access and mount nodes on Richmond/Internet Archive tower and LOLSpace&lt;br /&gt;
** Toolkits &amp;amp; Prototypes: internet-in-a-box, battery powered node, &lt;br /&gt;
** Documentation: Node mounting guide, community outreach guide, &lt;br /&gt;
** Fundraising: Selling swag &amp;amp; toolkit, things like eg; Internet-in-a-Box&lt;br /&gt;
*** Jeremy? interested in working on fundraising&lt;br /&gt;
* Blake: Do we have tangible deliverables?&lt;br /&gt;
** Mai: Site where network is actively being used&lt;br /&gt;
*** Jorrit: &lt;br /&gt;
**** Jenny: Think written documentation would include potential mapping/monitoring as well as interviews / case studies with people and groups that are using it. They want us to be able to demo it, also - so cow/chicken demo would be prudent&lt;br /&gt;
***** Sierk: Have workshops in that neighborhood before &amp;amp; after. Think we should document with video, interviews etc &lt;br /&gt;
*** Blake: Sounds like we still need a hard timeline of deliverables for June. Would like to have that discussion on another Sat, to figure out deliverables &amp;amp; timeline. &lt;br /&gt;
**** Sierk: end of meeting, maybe try out mai's suggestion for decision-making tool&lt;br /&gt;
***** jorrit: people engaged responsible for figuring out how to make it work moving forward&lt;br /&gt;
** jenny: not much different from round 1 application&lt;br /&gt;
*** jeremy? - look at what they've previously funded and tailor research to that&lt;br /&gt;
****  sierk: not a grant - a competition, not a grant.&lt;br /&gt;
***** jenny: agreed on point - if you look at who won the top prizes, they had something demonstrably different going on than the rest&lt;br /&gt;
&lt;br /&gt;
== Sundays ==&lt;br /&gt;
=== Node Mount ===&lt;br /&gt;
We try to arrange a rooftop node mount every Sunday afternoon. Ongoing spreadsheet is located at: https://peoplesopen.net/sundays&lt;br /&gt;
* Next Sunday's mount:  See Discussion Items below - meet @ sudo @ 1pm for 3-4 potential mount fieldtrips&lt;br /&gt;
&lt;br /&gt;
=== Office Hours ===&lt;br /&gt;
We host office hours every Sunday from 1-2pm in Sudo Room. To sign up for a shift, fill in your name here: https://ethercalc.org/byoi_office_hours&lt;br /&gt;
* Next Sunday's volunteer: Mai&lt;br /&gt;
* Notes from this past Sunday's session: Interview with Cindy from Institute for the Future. &lt;br /&gt;
** Jeremy: Cindy is my colleague. The interview was prompted by BYOI fliers I distributed around the office.&lt;br /&gt;
** Mai: worked on PON wikipedia article. Gotta vote to keep it alive: https://en.wikipedia.org/wiki/People%27s_Open_Network&lt;br /&gt;
** Jorrit: worked with Benny to deploy new Markdown site based on Sierke's project&lt;br /&gt;
** Grant/Ben: contacted potential node operators to coordinate mounts.&lt;br /&gt;
&lt;br /&gt;
== Proposal: Node Explainer Program ==&lt;br /&gt;
Please add any proposal needing consent from or action by the group below:&lt;br /&gt;
* Jorrit proposing: The Node Explainer Program (NEP, better names proposal encouraged: node whisperer, node operator?) -  Node explainers explain how (exit/home/extender) nodes work and keep them from misbehaving by troubleshooting, preparing bug fixes, applying patches, implementing new features and upgrading software. To become a node explainer, you should be able to show someone how to build your own internet by configuring one, (ideally two) home node(s) (https://peoplesopen.net/walkthrough ) to use a custom, self-created exitnode (https://github.com/sudomesh/exitnode ). This also includes showing how babeld and tunneldigger work together by using (and improving!) https://github.com/sudomesh/babeld-lab and https://github.com/sudomesh/tunneldigger-lab on the home and exit nodes using tools like ip route , ip addr, tcpdump . &lt;br /&gt;
* grant - i'd like to work on a improve/expand https://sudoroom.org/wiki/Mesh/Flashing_extender_nodes&lt;br /&gt;
* '''Consenso?'''&lt;br /&gt;
* jorrit: test involved: flash a node, set up an exit node, connect your flashed node to exit node, explain it to someone else, explain babled to someone else, how to monitor it, how to explain how tunneldigger works.  then you're CERTIFIED&lt;br /&gt;
** reason: two weeks of outage &amp;amp; accumulation of knowledge in very few places. first session @ 9. hope many can join (not just the Bens) - plz join so you can explain how shit works.&lt;br /&gt;
*** grant: propose including how extender nodes work. namely because neither of us know how. can take lead on documenting that then explain it to someone else.&lt;br /&gt;
**** jorrit: Extended Node Explainer Program&lt;br /&gt;
&lt;br /&gt;
== Discussion Item: Jeff's Place ==&lt;br /&gt;
* Ben: I talked to Jeff again Sunday night. He's checking in with property owner re: consent for structural mount.&lt;br /&gt;
 - * He's rented since 1984 and has rent control. Other tenants are in a similar situation. Many do not have internet at all.&lt;br /&gt;
* Owners behind LLC. One maintenance worker. One absentee property manager.&lt;br /&gt;
* Opportunities abound!&lt;br /&gt;
** Solid view with good super structure to mount to&lt;br /&gt;
** Abandoned boiler room on roof could house beachhead with switch. Possibly power. This would let us mount several higher-end extender nodes.&lt;br /&gt;
** Possible link to Richmond (2 hops!)&lt;br /&gt;
** Units supposedly have phone lines. I can wire up the building from MPOE if tenants can pitch in for a VDSL  dslam or G.Hn switch.&lt;br /&gt;
** Hip House (BSC) next door might be interested (~57 residents)&lt;br /&gt;
** Wood walls, so Motorola meshing routers could work as well.&lt;br /&gt;
* So, is there interest in using the mesh to deliver to multi-tenant dwellings, assuming they can organize internally? If so, this could be a good place to try it.&lt;br /&gt;
t&lt;br /&gt;
* jenny: Re: Landlords - if we present as an ISp - what we do is no different - landlords shouldn't bat an eye&lt;br /&gt;
** ben: correct, no larger would want this to be a reliable site... expect them to cover equip costs. &lt;br /&gt;
*** mai: benefit is if the tenants are reliant on it, more political power to stay&lt;br /&gt;
&lt;br /&gt;
* ben: who would be interested in pursuing this level of project? &lt;br /&gt;
** mai, jenny, grant, blake, ben&lt;br /&gt;
&lt;br /&gt;
== Discussion Item: Dev's Place ==&lt;br /&gt;
* grant - reconnected with Dev, he is willing to go forward with the chimney mount, but is hesitant with powering the equipment,&lt;br /&gt;
* he would like to get someone with electrical expertise to diagnose a box of wires on the side of his house&lt;br /&gt;
** not sure if Ben or Mike (built mesh cage) would be able to check this out&lt;br /&gt;
*** Ben: I'm not qualified for high voltage, but I think we can implement a solution with POE that bypasses the box. E.g. the WS-6-Mini would support up to 5 radios https://www.netonix.com/wisp-switch.html&lt;br /&gt;
** anyone else with electrical install experience?&lt;br /&gt;
* he is interested in reaching out to someone further up the hill who has shortwave radio equipment.&lt;br /&gt;
**  wants someone to go with him to talk about making a connection&lt;br /&gt;
* requests one-two weeks to sort out wiring after being advised by professional electrician&lt;br /&gt;
* requesting outreach support re: a person further up the hill with shortwave radio equipment&lt;br /&gt;
* do we want to put equipment (eg $150 switch) on a location where the housemates/landlord are uncertain?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Action Items ==&lt;br /&gt;
* Document RocketChat instance - Grant&lt;br /&gt;
* Move peoplesopen.network to Migadu instance - Jenny&lt;br /&gt;
* Follow up with AJ+ - Jenny&lt;br /&gt;
* Follow up with Benny + Jeremy of Rocket.Chat to debug iOS app - Mai&lt;br /&gt;
* Send community survey to mailing list to solicit volunteer help for projects - Mai&lt;br /&gt;
* Patch makenode - bug #5 + bug # 17 - grant&lt;br /&gt;
* Contact Diane re: Power - jenny, robb&lt;br /&gt;
* Contact Jonah re: Richmond tower - Jenny  &lt;br /&gt;
* Spec out gear for Richmond tower - Ben and anyone interested&lt;br /&gt;
* procure equipment and coordinate with Jeff for Benvenue mount - Ben&lt;br /&gt;
* Give access to passpack to Mai, Robb, ? - Jenny&lt;br /&gt;
* ping Ryan G re: electrical issues w/ Dev's place - jenny&lt;br /&gt;
* respond to Dev about group's position, agree on plans for moving forward - grant&lt;br /&gt;
&lt;br /&gt;
== Breakout Groups ==&lt;br /&gt;
At the end of the meeting, break out into small groups to hack on or discuss specific topics.&lt;br /&gt;
* (exit) node whisperer explainer session&lt;br /&gt;
* review sudo mesh business plan and budget &lt;br /&gt;
&lt;br /&gt;
== Last Meeting Notes ==&lt;br /&gt;
https://sudoroom.org/wiki/Mesh/13_Feb_2018&lt;br /&gt;
&lt;br /&gt;
== End of Meeting ==&lt;br /&gt;
* please archive these meeting notes by copying the entire pad contents onto the sudomesh wiki&lt;br /&gt;
* then please erase the contents of this pad&lt;br /&gt;
* then please cut &amp;amp; paste a blank template from here: https://sudoroom.org/mediawiki/index.php?title=Mesh/Mesh_Meeting_Notes_Template&amp;amp;action=edit&lt;br /&gt;
* previous meeting notes are archived here: https://sudoroom.org/wiki/Mesh/Minutes&lt;/div&gt;</summary>
		<author><name>Gcg</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Mesh_Meeting_Notes_Template&amp;diff=11009</id>
		<title>Mesh/Mesh Meeting Notes Template</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Mesh_Meeting_Notes_Template&amp;diff=11009"/>
		<updated>2018-02-15T05:35:07Z</updated>

		<summary type="html">&lt;p&gt;Gcg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;People's Open Network Weekly Meeting - Day Month 2018 7:30pm-9pm&lt;br /&gt;
* https://omnicommons.org/wiki/Safer_Space_Policy&lt;br /&gt;
&lt;br /&gt;
=== Agenda ===&lt;br /&gt;
* Introductions and Meeting Roles (10 mins)&lt;br /&gt;
* Check in on previous action items (5 mins)&lt;br /&gt;
* Updates &amp;amp; Reportbacks (20 mins)&lt;br /&gt;
* Sundays (5 mins)&lt;br /&gt;
* Proposal X: (15 mins)&lt;br /&gt;
* Discussion Y: (15 mins)&lt;br /&gt;
* Discussion Z (15 mins)&lt;br /&gt;
* Action Items (5 mins)&lt;br /&gt;
* Breakout Groups&lt;br /&gt;
&lt;br /&gt;
=== Introductions ===&lt;br /&gt;
Introduce yourself: Name; Preferred Pronoun; Icebreaker Response; BRIEF Announcements&lt;br /&gt;
* Icebreaker question: &lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
=== Meeting Roles ===&lt;br /&gt;
* Facilitator/s: &lt;br /&gt;
* Stacktaker: &lt;br /&gt;
* Notetaker/s: &lt;br /&gt;
** URL of this pad: https://peoplesopen.net/notes&lt;br /&gt;
* Next meeting's facilitator(s): &lt;br /&gt;
&lt;br /&gt;
== Check in on previous action items ==&lt;br /&gt;
Check previous meeting minutes at https://sudoroom.org/wiki/Mesh/Minutes and past action items below:&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
== Updates &amp;amp; Reportbacks ==&lt;br /&gt;
=== Bugs/Technical ===&lt;br /&gt;
Priority bugs we need help with are located at: http://peoplesopen.net/helpwanted - For a high-level overview of recent Github activity, see the Trello: https://trello.com/invite/b/r9l5ouQ4/3b2eecd83bb9e7a57a339cf1ee038288/sudo-mesh-github-repos&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
=== Node Mounts &amp;amp; Outreach ===&lt;br /&gt;
Node Mounts Trello: https://trello.com/invite/b/DtzngKaM/49e1c21fc9da199fcdeceb8623b5117a/node-mounts&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
=== Communications &amp;amp; Events ===&lt;br /&gt;
Comms Trello: https://trello.com/invite/b/f3ugMPNU/94033ee6c2cef93fc1b1637b727c902a/sudo-mesh-communications // Events Trello: https://trello.com/invite/b/Y3XfDK85/2b6fcb4fa92788609692a53a96fb4614/peoples-open-events&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
=== Internal Logistics / Finance ===&lt;br /&gt;
Internal Logistics &amp;amp; Bureaucracy Trello: https://trello.com/invite/b/LzVQlW3X/1bb8bd543c8633688175365d2554c2c2/internal-logistics-bureaucracy-brainstorms&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
== Sundays ==&lt;br /&gt;
=== Node Mount ===&lt;br /&gt;
We try to arrange a rooftop node mount every Sunday afternoon. Ongoing spreadsheet is located at: https://peoplesopen.net/sundays&lt;br /&gt;
* Next Sunday's mount: &lt;br /&gt;
&lt;br /&gt;
=== Office Hours ===&lt;br /&gt;
We host office hours every Sunday from 1-2pm in Sudo Room. To sign up for a shift, fill in your name here: https://ethercalc.org/byoi_office_hours&lt;br /&gt;
* Next Sunday's volunteer: &lt;br /&gt;
* Notes from this past Sunday's session: &lt;br /&gt;
&lt;br /&gt;
== Example Proposal ==&lt;br /&gt;
Please add any proposal needing consent from or action by the group below:&lt;br /&gt;
* &lt;br /&gt;
* '''Consenso?'''&lt;br /&gt;
&lt;br /&gt;
== Example Discussion Item ==&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
== Action Items ==&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
== Breakout Groups ==&lt;br /&gt;
At the end of the meeting, break out into small groups to hack on or discuss specific topics.&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
== End of Meeting ==&lt;br /&gt;
* please archive these meeting notes by copying the entire pad contents onto the sudomesh wiki&lt;br /&gt;
* then please erase the contents of this pad&lt;br /&gt;
* then please cut &amp;amp; paste a blank template from here: https://sudoroom.org/mediawiki/index.php?title=Mesh/Mesh_Meeting_Notes_Template&amp;amp;action=edit&lt;br /&gt;
* previous meeting notes are archived here: https://sudoroom.org/wiki/Mesh/Minutes&lt;/div&gt;</summary>
		<author><name>Gcg</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/13_Feb_2018&amp;diff=11008</id>
		<title>Mesh/13 Feb 2018</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/13_Feb_2018&amp;diff=11008"/>
		<updated>2018-02-15T03:36:26Z</updated>

		<summary type="html">&lt;p&gt;Gcg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;People's Open Network Weekly Meeting - 13 February 2018 7:30pm-9pm&lt;br /&gt;
* https://omnicommons.org/wiki/Safer_Space_Policy&lt;br /&gt;
&lt;br /&gt;
=== Agenda ===&lt;br /&gt;
* Introductions and Meeting Roles (10 mins)&lt;br /&gt;
* Check in on previous action items (5 mins)&lt;br /&gt;
* Updates &amp;amp; Reportbacks (20 mins)&lt;br /&gt;
* Sundays (5 mins)&lt;br /&gt;
* Proposal: Alameda Open Network Proposal (15 mins)&lt;br /&gt;
* Proposal: Semi-synchronous Chat Options (10 mins)&lt;br /&gt;
* Discussion: Preparation for the stategic plan meeting (10 mins)&lt;br /&gt;
* Discussion: PON Home Node and Exit Node Management (20 mins)&lt;br /&gt;
* Action Items (5 mins)&lt;br /&gt;
* Breakout Groups&lt;br /&gt;
&lt;br /&gt;
=== Introductions ===&lt;br /&gt;
Introduce yourself: Name; Preferred Pronoun; Icebreaker Response; BRIEF Announcements&lt;br /&gt;
* Icebreaker question:  Favorite candy&lt;br /&gt;
* mai - she/they, favorite candy kit-kat, no announcements&lt;br /&gt;
* jorrit - he/him, flashback to when he was 8, winegums? and Coke. &lt;br /&gt;
* bengo - he him, they/them, special edition Y2K sweethearts&lt;br /&gt;
* JJ - he/him - candied ginger&lt;br /&gt;
* benny - he/they, likes sour patch watermelon gummie&lt;br /&gt;
* sierk - chocolate cookies&lt;br /&gt;
* Robb - he/him/they - candied ginger, SKOR bar&lt;br /&gt;
* Grant - he /they - mentos -&lt;br /&gt;
* jenny - she/her, not a candy person, dark chocolate, any annoucments, nope&lt;br /&gt;
* Ben - he/they, dark chocolate, go to meet with Jeff tomorrow at 1pm (s of campus)&lt;br /&gt;
* jehan - he/him - jelly beans, wants to help with tunnel&lt;br /&gt;
&lt;br /&gt;
=== Meeting Roles ===&lt;br /&gt;
* Facilitator/s: Mai&lt;br /&gt;
* Stacktaker: Robb&lt;br /&gt;
* Notetaker/s: Benny, Grant, Jenny&lt;br /&gt;
** URL of this pad: https://peoplesopen.net/notes&lt;br /&gt;
* Next meeting's facilitator(s): &lt;br /&gt;
&lt;br /&gt;
== Check in on previous action items ==&lt;br /&gt;
Check previous meeting minutes at https://sudoroom.org/wiki/Mesh/Minutes and past action items below:&lt;br /&gt;
* create meeting agenda template (eg https://omnicommons.org/wiki/Delegates_Meeting_Notes_Template ) and archive nov-feb notes - jenny&lt;br /&gt;
** see https://sudoroom.org/wiki/Mesh/Mesh_Meeting_Notes_Template and https://sudoroom.org/wiki/Mesh/Minutes &lt;br /&gt;
* re-ping lolspace &amp;amp; respond to julia (AJ+ contact) - jenny&lt;br /&gt;
** pinged devie a couple of days ago to see if they would be interested, requested to check back in March, location is close to village, sped up timeline to be part of al jazeera feature&lt;br /&gt;
** got positive reponse from AJ+, hoping to hear back from lolspace&lt;br /&gt;
** jorrit - thanks, for listening to comments from last weeks meeting despite not being here&lt;br /&gt;
** no reply from Devi yet (lolspace) - forwarded Julia's response to sudomesh signal group (folks seemed positive) &lt;br /&gt;
* nyc mesh meetup - jehan&lt;br /&gt;
** the meetup was in a bar, back patio, apparently their meetup schedule is not that regular, they have some but they are for particular purposes, this was a more general public meetup. The event started small, but grew and then turned into a panel discussion with the members of NYCmesh, they have a lot of inbound interest, a lot more than they can deal with. They don't look at individuals, but try to hook up entire building by talking to landlords. They are using a firmware, old custom build of QMP? SO they have trouble updating it, but it does work. They don't pay for bandwidth, they have a gigabit, average 50mbps with peak of 300mbps. They have ~1/3 or ~1/5 chance that people could get internet access. Using primarily Ubiquiti AirGrids&lt;br /&gt;
Also hungout with some people in brooklyn who's internet access is through NYCmesh. Bandwidth just from one node in Manhattan. 5-8 inbounds a week -&amp;gt; 5-8 inbounds a day after press.&lt;br /&gt;
** jorrit - what wold you copy that they do there?&lt;br /&gt;
** jehan - could be wrong about assessment, but having a high up node that can be connected to easily seems to have been very helpful to them. everyone who mails in, they reply, can you see the verizon building from your apartment? okay we can do it. [we have a harder process]&lt;br /&gt;
** mai - do they have any mesh service?&lt;br /&gt;
** jehan - there's a guy running a wiki from his house&lt;br /&gt;
** previous meeting w/ nycmesh: https://sudoroom.org/wiki/Mesh/05_July_2016 &lt;br /&gt;
&lt;br /&gt;
* send out doodle for budget/strategy meeting - mai&lt;br /&gt;
** https://doodle.com/poll/ni5vmu5nvsdxpqip &lt;br /&gt;
** mai - decided on 2pm on Saturday, Feb 17th&lt;br /&gt;
&lt;br /&gt;
== Updates &amp;amp; Reportbacks ==&lt;br /&gt;
=== Bugs/Technical ===&lt;br /&gt;
Priority bugs we need help with are located at: http://peoplesopen.net/helpwanted - For a high-level overview of recent Github activity, see the Trello: https://trello.com/invite/b/r9l5ouQ4/3b2eecd83bb9e7a57a339cf1ee038288/sudo-mesh-github-repos&lt;br /&gt;
* see helpwanted link&lt;br /&gt;
* bug #8 - debugging exit node, &lt;br /&gt;
** jorrit - seems to have figured out how to set up an exit node (in Germany!) poked around the actual exit node, saw some stuff that could be fixed&lt;br /&gt;
** jorrit - feel like I'm looking at a house burning down&lt;br /&gt;
** jorrit - will talk more about operations later&lt;br /&gt;
*** to fix bug #1, need to fix bug #8. made a quick script for creating exit node, want to explain to 3-4 other people. wants to do a breakout.&lt;br /&gt;
&lt;br /&gt;
** grant - I really like &amp;quot;setting up an exitnode&amp;quot; as a sunday skill share. props! wondering--if a node is already up and never gets reset, how can you get root access once it's on their private internet?&lt;br /&gt;
** jorrit - need to reproduce it&lt;br /&gt;
** jenny - yar(sp?) says jorrit *does* have root access to the mesh exit node&lt;br /&gt;
&lt;br /&gt;
** Bengo - are the trello links supposed to be closed?&lt;br /&gt;
** jenny - invite only yeah, pasting link.&lt;br /&gt;
&lt;br /&gt;
** jorrit and Bengo [exit node explanation]&lt;br /&gt;
** jorrit - want to dispute netflix idea that netflix is blocking peoples open traffic&lt;br /&gt;
&lt;br /&gt;
** grant - idea: other bugs, #2 and #13, can be fixed by documenting makenode&lt;br /&gt;
** robb - recalls someone mentioning netflix doesn't allow vpn traffic&lt;br /&gt;
** jorrit - need to test&lt;br /&gt;
** jehan - no im positive that's it&lt;br /&gt;
** jorrit - wants to see proof&lt;br /&gt;
** jehan - could ask netflix, hey this is not a vpn ur confused; work with us&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Node Mounts &amp;amp; Outreach ===&lt;br /&gt;
Node Mounts Trello: https://trello.com/invite/b/DtzngKaM/49e1c21fc9da199fcdeceb8623b5117a/node-mounts&lt;br /&gt;
* ben - going to jeff's place tomorrow, if anyone would like to do a weekday mount? &lt;br /&gt;
** sierk - grant and I are gonna do a survey at Ed's place. Also found another location within LOS to Driveway Follies, also talking with Biblioteca near LOLspace/Village &lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
=== Communications &amp;amp; Events ===&lt;br /&gt;
Comms Trello: https://trello.com/invite/b/f3ugMPNU/94033ee6c2cef93fc1b1637b727c902a/sudo-mesh-communications // Events Trello: https://trello.com/invite/b/Y3XfDK85/2b6fcb4fa92788609692a53a96fb4614/peoples-open-events&lt;br /&gt;
* mai - AJ+ already discussed&lt;br /&gt;
* jenny - january 11th, people wanting to start mesh network in LA. who wants to follow up?&lt;br /&gt;
* sierk - i could follow up--asked the person who asked me about it to e-mail, but they never got in touch&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Internal Logistics / Finance ===&lt;br /&gt;
Internal Logistics &amp;amp; Bureaucracy Trello: https://trello.com/invite/b/LzVQlW3X/1bb8bd543c8633688175365d2554c2c2/internal-logistics-bureaucracy-brainstorms&lt;br /&gt;
* INSURANCE: Will &amp;amp; Jenny have been trying to get a quote for Directors &amp;amp; Officers insurance. Last reply was 1/25 from Tracy @ Brignole &amp;amp; Ghiri: &amp;quot;I have not been successful in obtaining a quote for the Directors &amp;amp; Officers Liability coverage. I have either been declined by markets due to the business operations or a minimum premium of $15,000. I do have a request for the following:&lt;br /&gt;
** Please forward your financials.  If financials are not available do you have a budget?  (Estimation of revenues and expenses).&amp;quot; &lt;br /&gt;
*** Budget Draft: https://docs.google.com/spreadsheets/d/1QJetruKfHrO5bpaLDk_smXYpLSvGlzytda_6koMjlCc/edit?usp=drive_web&amp;amp;ouid=103864922810338339686&lt;br /&gt;
** &amp;quot;What is your business plan. &amp;quot;&lt;br /&gt;
*** Biz Plan Draft: https://docs.google.com/document/d/1H8x3JnbGEkoeE3CwMzrCC0MD1tIAhb6O8JjLsiC51xw/edit&lt;br /&gt;
** jenny - biz plan and budget draft just need to show that we've given them thought--doesn't have to be final&lt;br /&gt;
*** HELP WANTED on the above!&lt;br /&gt;
* GOVT FILINGS: &lt;br /&gt;
** Jenny sending CT-1 initial reg form to the Attorney General tmrw. Once approved we get a # and then have to file RRF-1s probably for 2014-2017.&lt;br /&gt;
** Business Tax exemption - jnny can't remember if she did it form mesh when she did it for omni &amp;amp; sudo. will show up on the radar if/when we start making $$. will x-check&lt;br /&gt;
* FINANCE: $1,187 in bank acct.&lt;br /&gt;
** Mozilla requesting a W-9 - jenny will send tmrw w/ CT-1. &lt;br /&gt;
** Still requesting equipment budget requests! Please add to the notes.&lt;br /&gt;
** Setting up proper accounting this year - ping jnny if you're interested in helping/learning.&lt;br /&gt;
** jenny - needs dollar amount from jorrit for cow/chicken reimbursement&lt;br /&gt;
** bengo - what's better than a spreadsheet&lt;br /&gt;
** jenny - would like to setup a quickbooks online&lt;br /&gt;
** jorrit - what's your plan to help others to help you? Oracle of All Things Complicated&lt;br /&gt;
** jenny - could send out a doodle&lt;br /&gt;
** mai - something we could discuss on Saturday (strategic planning meeting)&lt;br /&gt;
&lt;br /&gt;
== Sundays ==&lt;br /&gt;
=== Node Mount ===&lt;br /&gt;
We try to arrange a rooftop node mount every Sunday afternoon. Ongoing spreadsheet is located at: https://peoplesopen.net/sundays&lt;br /&gt;
* Next Sunday's mount: &lt;br /&gt;
&lt;br /&gt;
=== Office Hours ===&lt;br /&gt;
We host office hours every Sunday from 1-2pm in Sudo Room. To sign up for a shift, fill in your name here: https://ethercalc.org/byoi_office_hours&lt;br /&gt;
* Next Sunday's volunteer: Benny,&lt;br /&gt;
* Notes from this past Sunday's session: &lt;br /&gt;
** Created new &amp;quot;Workshop&amp;quot; landing page for PeoplesOpen.net about BYOI https://peoplesopen.net/workshop.html&lt;br /&gt;
** Cleaned up and added to Mounting Guide https://github.com/sudomesh/mounting&lt;br /&gt;
** Creation of People's Open Network and Sudo Room pages on Wikipedia: https://en.wikipedia.org/wiki/People%27s_Open_Network&lt;br /&gt;
** Attempt at cleaning up SudoMesh wiki https://peoplesopen.net/pad/p/wiki_cleanup help needed!&lt;br /&gt;
** sierk wants to help out with wiki cleanup&lt;br /&gt;
** Benny - is inserting peoplesopen site into disaster radio template&lt;br /&gt;
&lt;br /&gt;
== Proposal: Alameda Open Network  ==&lt;br /&gt;
grant talked with Amos White this afternoon https://about.me/amoswhite&lt;br /&gt;
* he is proposing to head up a large-scale, pratical roll out of a People's Open Network in Alameda and would like to hold workshop(s) very soon (he suggested starting Sat. Mar. 3) on how to go about doing this.&lt;br /&gt;
could sync up well with on-going outreach in East Oakland and &lt;br /&gt;
** grant explained current state of the Oakland PON and various considerations he would have to think about  (cost, LOS, volunteers, etc)&lt;br /&gt;
*** see email chain here https://trello.com/c/OLMqxcph/91-alameda-open-network&lt;br /&gt;
* grant - I wanna know what people think of doing Alameda workshops with amos--practical stuff, getting/setting up antennas&lt;br /&gt;
* jorrit - as you were talking, I was seeing them coming here to get trained (as opposed to us going there). can slowly segue into bigger event.&lt;br /&gt;
* mai - do they have an internet access point? were they hoping we would provide that?&lt;br /&gt;
* grant - i explained that he would have to look into what places in Oakland he had LOS to&lt;br /&gt;
* robb - diane's has a perfect shot at alameda and richmond&lt;br /&gt;
* jenny - still need to power the node&lt;br /&gt;
* mai - is there anything we can do regarding the richmond tower?&lt;br /&gt;
* jenny - the holdup is only that we need to coordinate with Jonah(sp?), probably buy new equipment to put up there, and do a site survey. they have a second tower that might have better LOS to the south. I've been putting in on the agenda, but I wasn't here for a bit.&lt;br /&gt;
* mai - I think this would be a great thing to discuss at the strategic plan discussion. It's a great path forward.&lt;br /&gt;
* jenny - I brought up determining a peering agreement to solidify our partnership--his only concern was that he didn't want to get tied into anything too serious in case they have to back out of the agreement&lt;br /&gt;
* jorrit - we had a long discussion about that, and i think we decided that there would be no (peering) agreement&lt;br /&gt;
*** Agreement was to not have any formal agreement&lt;br /&gt;
* jorrit - re: Amos, first thing is to get him familiar with how stuff works. that can happen right away. e.g. by the time he has two nodes up and running, our exit node should be resolved.&lt;br /&gt;
* robb - they should do a BYOI (in alameda)&lt;br /&gt;
* jehan - if they can/want to pay for an uplink, they might be able to get an uplink through digital realty&lt;br /&gt;
** right across from Digital Realty which is part of SFMIX (SF metropolitan internet exchange)&lt;br /&gt;
* jorrit - i want to make sure we don't scare anyone away with our own fears (e.g. bugs we are fixing that they may never have to face)&lt;br /&gt;
* ben - [questions about whether trees are blocking LOS from Diane -&amp;gt; Alameda]&lt;br /&gt;
* mai - agree w/ jorrit that best way forward is to invite Amos to BYOI office hours. It's awesome that he sounds so enthusiastic.&lt;br /&gt;
* grant - I also suggested office hours! (high five). I also liked robb's suggestion to get Alameda people organized. I tried to make it clear that we can't just hop on over and set everything up. But we can provide tools and knowledge so you can hold your own workshop. Can organize people in Alameda who are interested, bring them here, and we can train them about how to have their own workshops.Going to shoot him an e-mail tomorrow. Will reference notes.&lt;br /&gt;
&lt;br /&gt;
* jehan - is it safe to delete the peoplesopen.network email server?&lt;br /&gt;
* jenny - that's the contact info for mozilla&lt;br /&gt;
&lt;br /&gt;
== Proposal: Semi-synchronous Chat Options ==&lt;br /&gt;
* Rocket.Chat at http://peoplesopen.net:3000 (NOT YET SECURE and maybe up/down, but will have demo running Tuesday night)&lt;br /&gt;
** daniel &amp;amp; grant worked on it a bunch on sat, trying to set it up on a raspi&lt;br /&gt;
*** now set up on a DO droplet running ubuntu. &lt;br /&gt;
* Let's Chat - had trouble running on sudomesh server&lt;br /&gt;
* Mattermost - haven't tried&lt;br /&gt;
* Matrix - haven't tried&lt;br /&gt;
* sierk - what will it replace?&lt;br /&gt;
* jenny - IRC, info@ emails&lt;br /&gt;
* jehan - how does it compare to matrix?&lt;br /&gt;
* grant - dunno--rocketchat had clear docs.&lt;br /&gt;
* ben - am happy w/ mattermost at my home. it seems pretty similar.&lt;br /&gt;
* x - also recommends Discord, for voicechat&lt;br /&gt;
&lt;br /&gt;
* Consenso? Do we wanna go ahead with another chat platform? &lt;br /&gt;
** benny: get it minimally solid for us to try out&lt;br /&gt;
** sierk:  try it for a few months then we know what features are missing&lt;br /&gt;
*** we're-a test it out for awhile &amp;quot;get on there&amp;quot;&lt;br /&gt;
*** &amp;quot;if you don't wanna try it maybe you can get in there &amp;amp; let us know&amp;quot; - jehan&lt;br /&gt;
&lt;br /&gt;
== Discussion: Preparation for People's Open Strategic Plan Meeting ==&lt;br /&gt;
* How should we get input from people who can't attend the meeting? In order to also inform what our community would like to see out of PON.&lt;br /&gt;
** Suggestions: Send out a survey before Saturday&lt;br /&gt;
** proposal: mai - draft a form to send out tomorrow afternoon&lt;br /&gt;
*** inviting suggestions for what should be on survey, will post to signal group&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Discussion: PON Home Node and Exit Node Management ==&lt;br /&gt;
Discuss/share current state of, and ideas regarding: patching home nodes, maintaining exit nodes and monitoring network health&lt;br /&gt;
* jorrit - the reason for bringing this up is to get some ideas from the group on how to move forward on managing the network we love so much&lt;br /&gt;
** there are two bits to it, the managment of the deployed nodes (home and extender) and management of the exit node&lt;br /&gt;
** would like to first share how we do it today, right now we have one active person who has access to ssh and patch nodes&lt;br /&gt;
** some months ago there was a the KRACK attack, that one person jumped up and fixed all the nodes&lt;br /&gt;
** the exit node, there is are maybe one of two who are familiar with, jehan is one, no he isn't, ok there is one. Yar has access, but doesn't know what is running. &lt;br /&gt;
** mai - was the propsal at the last update that you would spread that knowledge?&lt;br /&gt;
** jorrit -that was the technical part, this is the organizational part&lt;br /&gt;
** sierk - very relevant, mentioned something similar to grant, we get to the state that we have a lot to maintian and that people rely on, have a few volunteers who are active maintainers of services and repos. suggest we discuss this on saturday - point people for specific aspects&lt;br /&gt;
** jorrit - for this discussion I wanna talk specifically about a plan of action once the old exit node goes up--do we patch the existing nodes?&lt;br /&gt;
**  jehan - we have nothing to lose&lt;br /&gt;
** jorrit - but the one person who has acces to do it.&lt;br /&gt;
** jenny - it's obviously problematic to have only one person with access to do this. it's currently the case because earlier, there was only one person sufficiently paranoid, competent, and gung-ho to do this. now we probably have more people who can have this responsibility. we need to come up with personal security protocols for system administration.&lt;br /&gt;
** jorrit - what I'm hearing from you is that we're okay with remote management of home nodes (if people consent)&lt;br /&gt;
** grant - current state of network is remote patching with opt-out--you need to know that you can opt-out before you can opt-out. this is a bug in previous firmware. i vote for, with new firmware, you need to opt-in to being open to remote fixes/updates.&lt;br /&gt;
** jorrit - what I'm hearing from grant is that you want explicit opt-in.&lt;br /&gt;
** jenny - I also like this.&lt;br /&gt;
** jehan - right now there are people out there w/ open wifi hotspots that are using their home internet connection. we should definitely remote in to fix this.&lt;br /&gt;
** grant - this is related to the &amp;quot;document makenode&amp;quot; issue. I'm documenting makenode right now so it will be easier to make these firmware changes we're talking about.&lt;br /&gt;
** mai - seems like if we have a mailing list of people who have nodes, then we should let them know about the bug (if they're providing open wifi access to their internet) for the sake of transparency. in that same e-mail, we should let them know that we're working on this issue, and we can help them fix it themselves, or we can fix it for them remotely. Reaching out to them is in the nature and spirit of this project. Letting them be empowered to fix it themselves, or choose to let us do it for them. That's my communication suggestion.&lt;br /&gt;
** sierk - Similar to Mai, but more long term--are we going to discuss this elsewhere, because there are some details... it will take some time. new mailing list?&lt;br /&gt;
** mai - definitely should discuss on saturday&lt;br /&gt;
** ben - very little to lose by giving other people agency about the bug. more of a problem if people don't know and something happens.&lt;br /&gt;
** jenny - only issue i see is that we do not have a mailing list of node operators.&lt;br /&gt;
** jorrit - sounds like we have consensus about what to communicate but not how. I stil want to get consensus on whether we should proactively remotely patch things if we can.&lt;br /&gt;
** grant - bug number 1? yes we should remote patch. but we should discuss whether to remote patch all other bugs.&lt;br /&gt;
** mai - are we going to say that we're going to fix it proactively?&lt;br /&gt;
** jorrit - i want to separate (1) that we are going to proactively patch and (2) that we are going to send an e-mail to operators&lt;br /&gt;
** grant - we did this in september--marc got some, didn't get others. in the past i have sent an e-mail to the list.&lt;br /&gt;
&lt;br /&gt;
* Possible Plan: Get exit node up, fix the code, update firmware on existing nodes,, then:&lt;br /&gt;
** update firmware with opt-in process for remote maintenance&lt;br /&gt;
** establish protocol for those with remote access&lt;br /&gt;
&lt;br /&gt;
Should we remote-patch Bug #1?&lt;br /&gt;
* Mai: Does this entail we let them know beforehand?&lt;br /&gt;
** Jorrit: No, we'd just patch it.  Send an email. &lt;br /&gt;
&lt;br /&gt;
* Aye: Grant, Jenny ??? we are evidently unable to move onto decision-making-moment :P :)&lt;br /&gt;
* Nay: &lt;br /&gt;
* Abstain: &lt;br /&gt;
&lt;br /&gt;
** ben - how long does a mount take?&lt;br /&gt;
** robb - it's usually like 6 hours. could probably do it in 3.&lt;br /&gt;
&lt;br /&gt;
== related topic: makenode documentation/deprecation ==&lt;br /&gt;
(announcement): Anyone wanna help document makenode? see https://peoplesopen.net/pad/p/makenode - also https://sudoroom.org/wiki/Mesh/Makenode&lt;br /&gt;
&lt;br /&gt;
== Action Items ==&lt;br /&gt;
* Send CT-1 and W-9 - Jenny&lt;br /&gt;
* Follow up on D&amp;amp;O Insurance - Jenny, ?&lt;br /&gt;
* Reply to Julia / AJ+ - Jenny&lt;br /&gt;
* Move peoplesopen.network emails to new Migadu server - Jenny/Jehan&lt;br /&gt;
* Get rocket.chat secure and persistent on sudomesh server - grant&lt;br /&gt;
* Draft group consensus and send to Amos White - grant&lt;br /&gt;
* Send survey to mailing list ahead of strategic meeting - mai&lt;br /&gt;
* Weekday node mount with Jeff 12pm Wednesday - Ben, mai, grant&lt;br /&gt;
&lt;br /&gt;
== Breakout Groups ==&lt;br /&gt;
At the end of the meeting, break out into small groups to hack on or discuss specific topics.&lt;br /&gt;
* Exit Node Debug: Jorrit, mai, grant, bengo, benny&lt;br /&gt;
&lt;br /&gt;
== Last Meeting Notes ==&lt;br /&gt;
https://sudoroom.org/wiki/Mesh/06_Feb_2018&lt;br /&gt;
&lt;br /&gt;
== End of Meeting ==&lt;br /&gt;
* please archive these meeting notes by copying the entire pad contents onto the sudomesh wiki&lt;br /&gt;
* then please erase the contents of this pad&lt;br /&gt;
* then please cut &amp;amp; paste a blank template from here: https://sudoroom.org/mediawiki/index.php?title=Mesh/Mesh_Meeting_Notes_Template&amp;amp;action=edit&lt;br /&gt;
* previous meeting notes are archived here: https://sudoroom.org/wiki/Mesh/Minutes&lt;/div&gt;</summary>
		<author><name>Gcg</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Minutes&amp;diff=11007</id>
		<title>Mesh/Minutes</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Minutes&amp;diff=11007"/>
		<updated>2018-02-15T03:00:00Z</updated>

		<summary type="html">&lt;p&gt;Gcg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable sortable collapsible&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;| Past Meeting Notes&lt;br /&gt;
|-&lt;br /&gt;
! data-sort-type=&amp;quot;isoDate&amp;quot; | date&lt;br /&gt;
! class=&amp;quot;unsortable&amp;quot; | comments&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/13_Feb_2018|2018-02-13]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/06_Feb_2018|2018-02-06]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/30_Jan_2018|2018-01-30]]&lt;br /&gt;
| Monthly general meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/23_Jan_2018|2018-01-23]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/16_Jan_2018|2018-01-16]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/09_Jan_2018|2018-01-09]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/02_Jan_2018|2018-01-02]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/26_Dec_2017|2017-12-26]]&lt;br /&gt;
| Monthly general meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/19_Dec_2017|2017-12-19]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/12_Dec_2017|2017-12-12]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/05_Dec_2017|2017-12-05]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/28_Nov_2017|2017-11-28]]&lt;br /&gt;
| Monthly general meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/21_Nov_2017|2017-11-21]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/14_Nov_2017|2017-11-14]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/24_Oct_2017|2017-10-24]]&lt;br /&gt;
| Monthly general meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/17_Oct_2017|2017-10-17]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/10_Oct_2017|2017-10-10]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/03_Oct_2017|2017-10-03]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/26_Sep_2017|2017-09-26]]&lt;br /&gt;
| Monthly general meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/19_Sep_2017|2017-09-19]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/12_Sep_2017|2017-09-12]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/11_Sep_2017|2017-09-11]]&lt;br /&gt;
| Website redesign session&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/05_Sep_2017|2017-09-05]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/29_Aug_2017|2017-08-29]]&lt;br /&gt;
| Monthly general meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/22_Aug_2017|2017-08-22]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/15_Aug_2017|2017-08-15]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/08_Aug_2017|2017-08-08]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/01_Aug_2017|2017-08-01]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/18_July_2017|2017-07-18]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/11_July_2017|2017-07-11]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/4_July_2017|2017-07-4]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/20_June_2017|2017-06-20]]&lt;br /&gt;
| Monthly general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/13_June_2017|2017-06-13]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/11_June_2017|2017-06-11]]&lt;br /&gt;
| Temescal street fair report-back&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/6_June_2017|2017-06-06]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/30_May_2017|2017-05-30]]&lt;br /&gt;
| Monthly general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/16_May_2017|2017-05-16]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/9_May_2017|2017-05-09]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/02_May_2017|2017-05-02]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/25_April_2017|2017-04-25]]&lt;br /&gt;
| Monthly general meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/18_April_2017|2017-04-18]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/17_April_2017|2017-04-17]]&lt;br /&gt;
| Annual sudo mesh board meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/11_April_2017|2017-04-11]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/4_April_2017|2017-04-04]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/28_March_2017|2017-03-28]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/21_March_2017|2017-03-21]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/14_March_2017|2017-03-14]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/07_March_2017|2017-03-07]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/28_February_2017|2017-02-28]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/21_February_2017|2017-02-21]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/10_February_2017|2017-02-10]]&lt;br /&gt;
| Weekly organizing meeting &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/07_February_2017|2017-02-07]]&lt;br /&gt;
| Organizing &amp;quot;Build Your Own Internet&amp;quot; Workshop&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/05_July_2016|2016-07-05]]&lt;br /&gt;
| Videochat meeting with nycmesh&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/22_June_2016|2016-06-22]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/07_June_2016|2016-06-07]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/23_February_2016|2016-02-23]]&lt;br /&gt;
| Monthly general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/09_February_2016|2016-02-09]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/02_February_2016|2016-02-02]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/26_January_2016|2016-01-26]]&lt;br /&gt;
| Monthly general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/27_October_2015|2015-10-27]]&lt;br /&gt;
| Monthly general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/06_October_2015|2015-10-06]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/29_September_2015|2015-09-29]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/22_September_2015|2015-09-22]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/15_September_2015|2015-09-15]]&lt;br /&gt;
| Second annual board meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/08_September_2015|2015-09-08]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/01_September_2015|2015-09-01]]&lt;br /&gt;
| Monthly general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/07_April_2015|2015-04-07]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/26_March_2015|2015-03-26]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/17_March_2015|2015-03-17]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/10_March_2015|2015-03-10]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/26_February_2015|2015-02-26]]&lt;br /&gt;
| Big general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/24_February_2015|2015-02-24]]&lt;br /&gt;
| Hacknight&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/19_February_2015|2015-02-19]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/05_February_2015|2015-02-05]]&lt;br /&gt;
| Weekly organizing meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/03_February_2015|2015-02-04]]&lt;br /&gt;
| Hacknight&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/29_January_2015|2015-01-29]]&lt;br /&gt;
| Big general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/24_January_2015|2015-01-24]]&lt;br /&gt;
| Mesh mini-retreat&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/22_January_2015|2015-01-22]]&lt;br /&gt;
| Weekly general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/15_January_2015|2015-01-15]]&lt;br /&gt;
| Weekly general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/30_December_2014|2014-12-30]]&lt;br /&gt;
| Big general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/18_December_2014|2014-12-18]]&lt;br /&gt;
| Weekly general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/13_November_2014|2014-11-13]]&lt;br /&gt;
| Weekly general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/21_October_2014|2014-10-21]]&lt;br /&gt;
| Hacknight&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/16_October_2014|2014-10-16]]&lt;br /&gt;
| Weekly general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/09_October_2014|2014-10-09]]&lt;br /&gt;
| Weekly general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/02_October_2014|2014-10-02]]&lt;br /&gt;
| Weekly general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/25_September_2014|2014-09-25]]&lt;br /&gt;
| Big general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/28_August_2014|2014-08-28]]&lt;br /&gt;
| Big general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/21_August_2014|2014-08-21]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/07_August_2014|2014-08-07]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/31_July_2014|2014-07-31]]&lt;br /&gt;
| Big general meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/17_July_2014|2014-07-17]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/15_July_2014|2014-07-15]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/10_July_2014|2014-07-10]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/06_July_2014|2014-07-06]]&lt;br /&gt;
| Hackathon Day 2!&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/05_July_2014|2014-07-05]]&lt;br /&gt;
| Hackathon Day 1!&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/03_July_2014|2014-07-03]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/12_June_2014|2014-06-12]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/05_June_2014|2014-06-05]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/29_May_2014|2014-05-29]]&lt;br /&gt;
| General meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/27_May_2014|2014-05-27]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/20_May_2014|2014-05-20]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/13_May_2014|2014-05-13]]&lt;br /&gt;
| First Tuesday meeting ^.^&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/08_May_2014|2014-05-08]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/01_May_2014|2014-05-01]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/24_April_2014|2014-04-24]]&lt;br /&gt;
| General meeting!&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/17_April_2014|2014-04-17]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/03_April_2014|2014-04-03]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/27_March_2014|2014-03-27]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/20_March_2014|2014-03-20]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/13_March_2014|2014-03-13]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/27_February_2014|2014-02-27]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/20_February_2014|2014-02-20]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/13_February_2014|2014-02-13]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/6_February_2014|2014-02-06]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/30_January_2014|2014-01-30]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/23_January_2014|2014-01-23]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/16_January_2014|2014-01-16]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 31 December - 09 January&lt;br /&gt;
| Holidaze Break&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/26_December_2013|2013-12-26]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/19_December_2013|2013-12-19]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/12_December_2013|2013-12-12]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/5_December_2013|2013-12-05]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/21_November_2013|2013-11-21]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/14_November_2013|2013-11-14]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/07_November_2013|2013-11-07]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/31_October_2013|2013-10-31]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/24_October_2013|2013-10-24]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/17_October_2013|2013-10-17]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/10_October_2013|2013-10-10]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/26_September_2013|2013-09-26]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/18_September_2013|2013-09-18]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/11_September_2013|2013-09-11]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/4_September_2013|2013-09-04]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/28_August_2013|2013-08-28]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 07 August - 21 August&lt;br /&gt;
| Hack nights!&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/31_July_2013|2013-07-31]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/25_July_2013|2013-07-25]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 18 July 2013&lt;br /&gt;
| Hack night: Flashing, firmware&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/11_July_2013|2013-07-11]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/04_July_2013|2013-07-04]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/27_June_2013|2013-06-27]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/20_June_2013|2013-06-20]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/13_June_2013|2013-06-13]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 30 May - 05 June&lt;br /&gt;
| Hack nights! Trying out some of the nicer Ubiquiti equipment we procured&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/23_May_2013|2013-05-23]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/09_May_2013|2013-05-09]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 25 April - 02 May&lt;br /&gt;
| Hack nights! See wiki for documentation - principally going through &amp;lt;br&amp;gt;donated routers, flashing them with OpenWRT and installing batman-adv.&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/18_April_2013|2013-04-18]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/11_April_2013|2013-04-11]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 28 March - 04 April&lt;br /&gt;
| SPRING SHIFT HIATUS&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/21_March_2013|2013-03-21]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/07_March_2013|2013-03-07]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/28_February_2013|2013-02-28]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/21_February_2013|2013-02-21]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/14_February_2013|2013-02-14]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh/7_February_2013|2013-02-07]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [http://lists.sudoroom.org/pipermail/mesh/2013-January/000000.html 2013-01-31]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Gcg</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/13_Feb_2018&amp;diff=11006</id>
		<title>Mesh/13 Feb 2018</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/13_Feb_2018&amp;diff=11006"/>
		<updated>2018-02-15T02:59:34Z</updated>

		<summary type="html">&lt;p&gt;Gcg: Created page with &amp;quot;People's Open Network Weekly Meeting - 13 February 2018 7:30pm-9pm * https://omnicommons.org/wiki/Safer_Space_Policy  === Agenda === * Introductions and Meeting Roles (10 mins...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;People's Open Network Weekly Meeting - 13 February 2018 7:30pm-9pm&lt;br /&gt;
* https://omnicommons.org/wiki/Safer_Space_Policy&lt;br /&gt;
&lt;br /&gt;
=== Agenda ===&lt;br /&gt;
* Introductions and Meeting Roles (10 mins)&lt;br /&gt;
* Check in on previous action items (5 mins)&lt;br /&gt;
* Updates &amp;amp; Reportbacks (20 mins)&lt;br /&gt;
* Sundays (5 mins)&lt;br /&gt;
* Proposal: Alameda Open Network Proposal (15 mins)&lt;br /&gt;
* Proposal: Semi-synchronous Chat Options (10 mins)&lt;br /&gt;
* Discussion: Preparation for the stategic plan meeting (10 mins)&lt;br /&gt;
* Discussion: PON Home Node and Exit Node Management (20 mins)&lt;br /&gt;
* Action Items (5 mins)&lt;br /&gt;
* Breakout Groups&lt;br /&gt;
&lt;br /&gt;
=== Introductions ===&lt;br /&gt;
Introduce yourself: Name; Preferred Pronoun; Icebreaker Response; BRIEF Announcements&lt;br /&gt;
* Icebreaker question:  Favorite candy&lt;br /&gt;
* mai - she/they, favorite candy kit-kat, no announcements&lt;br /&gt;
* jorrit - he/him, flashback to when he was 8, winegums? and Coke. &lt;br /&gt;
* bengo - he him, they/them, special edition Y2K sweethearts&lt;br /&gt;
* JJ - he/him - candied ginger&lt;br /&gt;
* benny - he/they, likes sour patch watermelon gummie&lt;br /&gt;
* sierk - chocolate cookies&lt;br /&gt;
* Robb - he/him/they - candied ginger, SKOR bar&lt;br /&gt;
* Grant - he /they - mentos -&lt;br /&gt;
* jenny - she/her, not a candy person, dark chocolate, any annoucments, nope&lt;br /&gt;
* Ben - he/they, dark chocolate, go to meet with Jeff tomorrow at 1pm (s of campus)&lt;br /&gt;
* jehan - he/him - jelly beans, wants to help with tunnel&lt;br /&gt;
&lt;br /&gt;
=== Meeting Roles ===&lt;br /&gt;
* Facilitator/s: Mai&lt;br /&gt;
* Stacktaker: Robb&lt;br /&gt;
* Notetaker/s: Benny, Grant, Jenny&lt;br /&gt;
** URL of this pad: https://peoplesopen.net/notes&lt;br /&gt;
* Next meeting's facilitator(s): &lt;br /&gt;
&lt;br /&gt;
== Check in on previous action items ==&lt;br /&gt;
Check previous meeting minutes at https://sudoroom.org/wiki/Mesh/Minutes and past action items below:&lt;br /&gt;
* create meeting agenda template (eg https://omnicommons.org/wiki/Delegates_Meeting_Notes_Template ) and archive nov-feb notes - jenny&lt;br /&gt;
** see https://sudoroom.org/wiki/Mesh/Mesh_Meeting_Notes_Template and https://sudoroom.org/wiki/Mesh/Minutes &lt;br /&gt;
* re-ping lolspace &amp;amp; respond to julia (AJ+ contact) - jenny&lt;br /&gt;
** pinged devie a couple of days ago to see if they would be interested, requested to check back in March, location is close to village, sped up timeline to be part of al jazeera feature&lt;br /&gt;
** got positive reponse from AJ+, hoping to hear back from lolspace&lt;br /&gt;
** jorrit - thanks, for listening to comments from last weeks meeting despite not being here&lt;br /&gt;
** no reply from Devi yet (lolspace) - forwarded Julia's response to sudomesh signal group (folks seemed positive) &lt;br /&gt;
* nyc mesh meetup - jehan&lt;br /&gt;
** the meetup was in a bar, back patio, apparently their meetup schedule is not that regular, they have some but they are for particular purposes, this was a more general public meetup. The event started small, but grew and then turned into a panel discussion with the members of NYCmesh, they have a lot of inbound interest, a lot more than they can deal with. They don't look at individuals, but try to hook up entire building by talking to landlords. They are using a firmware, old custom build of QMP? SO they have trouble updating it, but it does work. They don't pay for bandwidth, they have a gigabit, average 50mbps with peak of 300mbps. They have ~1/3 or ~1/5 chance that people could get internet access. Using primarily Ubiquiti AirGrids&lt;br /&gt;
Also hungout with some people in brooklyn who's internet access is through NYCmesh. Bandwidth just from one node in Manhattan. 5-8 inbounds a week -&amp;gt; 5-8 inbounds a day after press.&lt;br /&gt;
** jorrit - what wold you copy that they do there?&lt;br /&gt;
** jehan - could be wrong about assessment, but having a high up node that can be connected to easily seems to have been very helpful to them. everyone who mails in, they reply, can you see the verizon building from your apartment? okay we can do it. [we have a harder process]&lt;br /&gt;
** mai - do they have any mesh service?&lt;br /&gt;
** jehan - there's a guy running a wiki from his house&lt;br /&gt;
** previous meeting w/ nycmesh: https://sudoroom.org/wiki/Mesh/05_July_2016 &lt;br /&gt;
&lt;br /&gt;
* send out doodle for budget/strategy meeting - mai&lt;br /&gt;
** https://doodle.com/poll/ni5vmu5nvsdxpqip &lt;br /&gt;
** mai - decided on 2pm on Saturday, Feb 17th&lt;br /&gt;
&lt;br /&gt;
== Updates &amp;amp; Reportbacks ==&lt;br /&gt;
=== Bugs/Technical ===&lt;br /&gt;
Priority bugs we need help with are located at: http://peoplesopen.net/helpwanted - For a high-level overview of recent Github activity, see the Trello: https://trello.com/invite/b/r9l5ouQ4/3b2eecd83bb9e7a57a339cf1ee038288/sudo-mesh-github-repos&lt;br /&gt;
* see helpwanted link&lt;br /&gt;
* bug #8 - debugging exit node, &lt;br /&gt;
** jorrit - seems to have figured out how to set up an exit node (in Germany!) poked around the actual exit node, saw some stuff that could be fixed&lt;br /&gt;
** jorrit - feel like I'm looking at a house burning down&lt;br /&gt;
** jorrit - will talk more about operations later&lt;br /&gt;
*** to fix bug #1, need to fix bug #8. made a quick script for creating exit node, want to explain to 3-4 other people. wants to do a breakout.&lt;br /&gt;
&lt;br /&gt;
** grant - I really like &amp;quot;setting up an exitnode&amp;quot; as a sunday skill share. props! wondering--if a node is already up and never gets reset, how can you get root access once it's on their private internet?&lt;br /&gt;
** jorrit - need to reproduce it&lt;br /&gt;
** jenny - yar(sp?) says jorrit *does* have root access to the mesh exit node&lt;br /&gt;
&lt;br /&gt;
** Bengo - are the trello links supposed to be closed?&lt;br /&gt;
** jenny - invite only yeah, pasting link.&lt;br /&gt;
&lt;br /&gt;
** jorrit and Bengo [exit node explanation]&lt;br /&gt;
** jorrit - want to dispute netflix idea that netflix is blocking peoples open traffic&lt;br /&gt;
&lt;br /&gt;
** grant - idea: other bugs, #2 and #13, can be fixed by documenting makenode&lt;br /&gt;
** robb - recalls someone mentioning netflix doesn't allow vpn traffic&lt;br /&gt;
** jorrit - need to test&lt;br /&gt;
** jehan - no im positive that's it&lt;br /&gt;
** jorrit - wants to see proof&lt;br /&gt;
** jehan - could ask netflix, hey this is not a vpn ur confused; work with us&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Node Mounts &amp;amp; Outreach ===&lt;br /&gt;
Node Mounts Trello: https://trello.com/invite/b/DtzngKaM/49e1c21fc9da199fcdeceb8623b5117a/node-mounts&lt;br /&gt;
* ben - going to jeff's place tomorrow, if anyone would like to do a weekday mount? &lt;br /&gt;
** sierk - grant and I are gonna do a survey at Ed's place. Also found another location within LOS to Driveway Follies, also talking with Biblioteca near LOLspace/Village &lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
=== Communications &amp;amp; Events ===&lt;br /&gt;
Comms Trello: https://trello.com/invite/b/f3ugMPNU/94033ee6c2cef93fc1b1637b727c902a/sudo-mesh-communications // Events Trello: https://trello.com/invite/b/Y3XfDK85/2b6fcb4fa92788609692a53a96fb4614/peoples-open-events&lt;br /&gt;
* mai - AJ+ already discussed&lt;br /&gt;
* jenny - january 11th, people wanting to start mesh network in LA. who wants to follow up?&lt;br /&gt;
* sierk - i could follow up--asked the person who asked me about it to e-mail, but they never got in touch&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Internal Logistics / Finance ===&lt;br /&gt;
Internal Logistics &amp;amp; Bureaucracy Trello: https://trello.com/invite/b/LzVQlW3X/1bb8bd543c8633688175365d2554c2c2/internal-logistics-bureaucracy-brainstorms&lt;br /&gt;
* INSURANCE: Will &amp;amp; Jenny have been trying to get a quote for Directors &amp;amp; Officers insurance. Last reply was 1/25 from Tracy @ Brignole &amp;amp; Ghiri: &amp;quot;I have not been successful in obtaining a quote for the Directors &amp;amp; Officers Liability coverage. I have either been declined by markets due to the business operations or a minimum premium of $15,000. I do have a request for the following:&lt;br /&gt;
** Please forward your financials.  If financials are not available do you have a budget?  (Estimation of revenues and expenses).&amp;quot; &lt;br /&gt;
*** Budget Draft: https://docs.google.com/spreadsheets/d/1QJetruKfHrO5bpaLDk_smXYpLSvGlzytda_6koMjlCc/edit?usp=drive_web&amp;amp;ouid=103864922810338339686&lt;br /&gt;
** &amp;quot;What is your business plan. &amp;quot;&lt;br /&gt;
*** Biz Plan Draft: https://docs.google.com/document/d/1H8x3JnbGEkoeE3CwMzrCC0MD1tIAhb6O8JjLsiC51xw/edit&lt;br /&gt;
** jenny - biz plan and budget draft just need to show that we've given them thought--doesn't have to be final&lt;br /&gt;
*** HELP WANTED on the above!&lt;br /&gt;
* GOVT FILINGS: &lt;br /&gt;
** Jenny sending CT-1 initial reg form to the Attorney General tmrw. Once approved we get a # and then have to file RRF-1s probably for 2014-2017.&lt;br /&gt;
** Business Tax exemption - jnny can't remember if she did it form mesh when she did it for omni &amp;amp; sudo. will show up on the radar if/when we start making $$. will x-check&lt;br /&gt;
* FINANCE: $1,187 in bank acct.&lt;br /&gt;
** Mozilla requesting a W-9 - jenny will send tmrw w/ CT-1. &lt;br /&gt;
** Still requesting equipment budget requests! Please add to the notes.&lt;br /&gt;
** Setting up proper accounting this year - ping jnny if you're interested in helping/learning.&lt;br /&gt;
** jenny - needs dollar amount from jorrit for cow/chicken reimbursement&lt;br /&gt;
** bengo - what's better than a spreadsheet&lt;br /&gt;
** jenny - would like to setup a quickbooks online&lt;br /&gt;
** jorrit - what's your plan to help others to help you? Oracle of All Things Complicated&lt;br /&gt;
** jenny - could send out a doodle&lt;br /&gt;
** mai - something we could discuss on Saturday (strategic planning meeting)&lt;br /&gt;
&lt;br /&gt;
== Sundays ==&lt;br /&gt;
=== Node Mount ===&lt;br /&gt;
We try to arrange a rooftop node mount every Sunday afternoon. Ongoing spreadsheet is located at: https://peoplesopen.net/sundays&lt;br /&gt;
* Next Sunday's mount: &lt;br /&gt;
&lt;br /&gt;
=== Office Hours ===&lt;br /&gt;
We host office hours every Sunday from 1-2pm in Sudo Room. To sign up for a shift, fill in your name here: https://ethercalc.org/byoi_office_hours&lt;br /&gt;
* Next Sunday's volunteer: Benny,&lt;br /&gt;
* Notes from this past Sunday's session: &lt;br /&gt;
** Created new &amp;quot;Workshop&amp;quot; landing page for PeoplesOpen.net about BYOI https://peoplesopen.net/workshop.html&lt;br /&gt;
** Cleaned up and added to Mounting Guide https://github.com/sudomesh/mounting&lt;br /&gt;
** Creation of People's Open Network and Sudo Room pages on Wikipedia: https://en.wikipedia.org/wiki/People%27s_Open_Network&lt;br /&gt;
** Attempt at cleaning up SudoMesh wiki https://peoplesopen.net/pad/p/wiki_cleanup help needed!&lt;br /&gt;
** sierk wants to help out with wiki cleanup&lt;br /&gt;
** Benny - is inserting peoplesopen site into disaster radio template&lt;br /&gt;
&lt;br /&gt;
== Proposal: Alameda Open Network  ==&lt;br /&gt;
grant talked with Amos White this afternoon https://about.me/amoswhite&lt;br /&gt;
* he is proposing to head up a large-scale, pratical roll out of a People's Open Network in Alameda and would like to hold workshop(s) very soon (he suggested starting Sat. Mar. 3) on how to go about doing this.&lt;br /&gt;
could sync up well with on-going outreach in East Oakland and &lt;br /&gt;
** grant explained current state of the Oakland PON and various considerations he would have to think about  (cost, LOS, volunteers, etc)&lt;br /&gt;
*** see email chain here https://trello.com/c/OLMqxcph/91-alameda-open-network&lt;br /&gt;
* grant - I wanna know what people think of doing Alameda workshops with amos--practical stuff, getting/setting up antennas&lt;br /&gt;
* jorrit - as you were talking, I was seeing them coming here to get trained (as opposed to us going there). can slowly segue into bigger event.&lt;br /&gt;
* mai - do they have an internet access point? were they hoping we would provide that?&lt;br /&gt;
* grant - i explained that he would have to look into what places in Oakland he had LOS to&lt;br /&gt;
* robb - diane's has a perfect shot at alameda and richmond&lt;br /&gt;
* jenny - still need to power the node&lt;br /&gt;
* mai - is there anything we can do regarding the richmond tower?&lt;br /&gt;
* jenny - the holdup is only that we need to coordinate with Jonah(sp?), probably buy new equipment to put up there, and do a site survey. they have a second tower that might have better LOS to the south. I've been putting in on the agenda, but I wasn't here for a bit.&lt;br /&gt;
* mai - I think this would be a great thing to discuss at the strategic plan discussion. It's a great path forward.&lt;br /&gt;
* jenny - I brought up determining a peering agreement to solidify our partnership--his only concern was that he didn't want to get tied into anything too serious in case they have to back out of the agreement&lt;br /&gt;
* jorrit - we had a long discussion about that, and i think we decided that there would be no (peering) agreement&lt;br /&gt;
*** Agreement was to not have any formal agreement&lt;br /&gt;
* jorrit - re: Amos, first thing is to get him familiar with how stuff works. that can happen right away. e.g. by the time he has two nodes up and running, our exit node should be resolved.&lt;br /&gt;
* robb - they should do a BYOI (in alameda)&lt;br /&gt;
* jehan - if they can/want to pay for it, they might be able to get an uplink through digital realty&lt;br /&gt;
** right across from Digital Realty which is part of the ?SF Broadband Coalition?&lt;br /&gt;
* jorrit - i want to make sure we don't scare anyone away with our own fears (e.g. bugs we are fixing that they may never have to face)&lt;br /&gt;
* ben - [questions about whether trees are blocking LOS from Diane -&amp;gt; Alameda]&lt;br /&gt;
* mai - agree w/ jorrit that best way forward is to invite Amos to BYOI office hours. It's awesome that he sounds so enthusiastic.&lt;br /&gt;
* grant - I also suggested office hours! (high five). I also liked robb's suggestion to get Alameda people organized. I tried to make it clear that we can't just hop on over and set everything up. But we can provide tools and knowledge so you can hold your own workshop. Can organize people in Alameda who are interested, bring them here, and we can train them about how to have their own workshops.Going to shoot him an e-mail tomorrow. Will reference notes.&lt;br /&gt;
&lt;br /&gt;
* jehan - is it safe to delete the peoplesopen.network email server?&lt;br /&gt;
* jenny - that's the contact info for mozilla&lt;br /&gt;
&lt;br /&gt;
== Proposal: Semi-synchronous Chat Options ==&lt;br /&gt;
* Rocket.Chat at http://peoplesopen.net:3000 (NOT YET SECURE and maybe up/down, but will have demo running Tuesday night)&lt;br /&gt;
** daniel &amp;amp; grant worked on it a bunch on sat, trying to set it up on a raspi&lt;br /&gt;
*** now set up on a DO droplet running ubuntu. &lt;br /&gt;
* Let's Chat - had trouble running on sudomesh server&lt;br /&gt;
* Mattermost - haven't tried&lt;br /&gt;
* Matrix - haven't tried&lt;br /&gt;
* sierk - what will it replace?&lt;br /&gt;
* jenny - IRC, info@ emails&lt;br /&gt;
* jehan - how does it compare to matrix?&lt;br /&gt;
* grant - dunno--rocketchat had clear docs.&lt;br /&gt;
* ben - am happy w/ mattermost at my home. it seems pretty similar.&lt;br /&gt;
* x - also recommends Discord, for voicechat&lt;br /&gt;
&lt;br /&gt;
* Consenso? Do we wanna go ahead with another chat platform? &lt;br /&gt;
** benny: get it minimally solid for us to try out&lt;br /&gt;
** sierk:  try it for a few months then we know what features are missing&lt;br /&gt;
*** we're-a test it out for awhile &amp;quot;get on there&amp;quot;&lt;br /&gt;
*** &amp;quot;if you don't wanna try it maybe you can get in there &amp;amp; let us know&amp;quot; - jehan&lt;br /&gt;
&lt;br /&gt;
== Discussion: Preparation for People's Open Strategic Plan Meeting ==&lt;br /&gt;
* How should we get input from people who can't attend the meeting? In order to also inform what our community would like to see out of PON.&lt;br /&gt;
** Suggestions: Send out a survey before Saturday&lt;br /&gt;
** proposal: mai - draft a form to send out tomorrow afternoon&lt;br /&gt;
*** inviting suggestions for what should be on survey, will post to signal group&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Discussion: PON Home Node and Exit Node Management ==&lt;br /&gt;
Discuss/share current state of, and ideas regarding: patching home nodes, maintaining exit nodes and monitoring network health&lt;br /&gt;
* jorrit - the reason for bringing this up is to get some ideas from the group on how to move forward on managing the network we love so much&lt;br /&gt;
** there are two bits to it, the managment of the deployed nodes (home and extender) and management of the exit node&lt;br /&gt;
** would like to first share how we do it today, right now we have one active person who has access to ssh and patch nodes&lt;br /&gt;
** some months ago there was a the KRACK attack, that one person jumped up and fixed all the nodes&lt;br /&gt;
** the exit node, there is are maybe one of two who are familiar with, jehan is one, no he isn't, ok there is one. Yar has access, but doesn't know what is running. &lt;br /&gt;
** mai - was the propsal at the last update that you would spread that knowledge?&lt;br /&gt;
** jorrit -that was the technical part, this is the organizational part&lt;br /&gt;
** sierk - very relevant, mentioned something similar to grant, we get to the state that we have a lot to maintian and that people rely on, have a few volunteers who are active maintainers of services and repos. suggest we discuss this on saturday - point people for specific aspects&lt;br /&gt;
** jorrit - for this discussion I wanna talk specifically about a plan of action once the old exit node goes up--do we patch the existing nodes?&lt;br /&gt;
**  jehan - we have nothing to lose&lt;br /&gt;
** jorrit - but the one person who has acces to do it.&lt;br /&gt;
** jenny - it's obviously problematic to have only one person with access to do this. it's currently the case because earlier, there was only one person sufficiently paranoid, competent, and gung-ho to do this. now we probably have more people who can have this responsibility. we need to come up with personal security protocols for system administration.&lt;br /&gt;
** jorrit - what I'm hearing from you is that we're okay with remote management of home nodes (if people consent)&lt;br /&gt;
** grant - current state of network is remote patching with opt-out--you need to know that you can opt-out before you can opt-out. this is a bug in previous firmware. i vote for, with new firmware, you need to opt-in to being open to remote fixes/updates.&lt;br /&gt;
** jorrit - what I'm hearing from grant is that you want explicit opt-in.&lt;br /&gt;
** jenny - I also like this.&lt;br /&gt;
** jehan - right now there are people out there w/ open wifi hotspots that are using their home internet connection. we should definitely remote in to fix this.&lt;br /&gt;
** grant - this is related to the &amp;quot;document makenode&amp;quot; issue. I'm documenting makenode right now so it will be easier to make these firmware changes we're talking about.&lt;br /&gt;
** mai - seems like if we have a mailing list of people who have nodes, then we should let them know about the bug (if they're providing open wifi access to their internet) for the sake of transparency. in that same e-mail, we should let them know that we're working on this issue, and we can help them fix it themselves, or we can fix it for them remotely. Reaching out to them is in the nature and spirit of this project. Letting them be empowered to fix it themselves, or choose to let us do it for them. That's my communication suggestion.&lt;br /&gt;
** sierk - Similar to Mai, but more long term--are we going to discuss this elsewhere, because there are some details... it will take some time. new mailing list?&lt;br /&gt;
** mai - definitely should discuss on saturday&lt;br /&gt;
** ben - very little to lose by giving other people agency about the bug. more of a problem if people don't know and something happens.&lt;br /&gt;
** jenny - only issue i see is that we do not have a mailing list of node operators.&lt;br /&gt;
** jorrit - sounds like we have consensus about what to communicate but not how. I stil want to get consensus on whether we should proactively remotely patch things if we can.&lt;br /&gt;
** grant - bug number 1? yes we should remote patch. but we should discuss whether to remote patch all other bugs.&lt;br /&gt;
** mai - are we going to say that we're going to fix it proactively?&lt;br /&gt;
** jorrit - i want to separate (1) that we are going to proactively patch and (2) that we are going to send an e-mail to operators&lt;br /&gt;
** grant - we did this in september--marc got some, didn't get others. in the past i have sent an e-mail to the list.&lt;br /&gt;
&lt;br /&gt;
* Possible Plan: Get exit node up, fix the code, update firmware on existing nodes,, then:&lt;br /&gt;
** update firmware with opt-in process for remote maintenance&lt;br /&gt;
** establish protocol for those with remote access&lt;br /&gt;
&lt;br /&gt;
Should we remote-patch Bug #1?&lt;br /&gt;
* Mai: Does this entail we let them know beforehand?&lt;br /&gt;
** Jorrit: No, we'd just patch it.  Send an email. &lt;br /&gt;
&lt;br /&gt;
* Aye: Grant, Jenny ??? we are evidently unable to move onto decision-making-moment :P :)&lt;br /&gt;
* Nay: &lt;br /&gt;
* Abstain: &lt;br /&gt;
&lt;br /&gt;
** ben - how long does a mount take?&lt;br /&gt;
** robb - it's usually like 6 hours. could probably do it in 3.&lt;br /&gt;
&lt;br /&gt;
== related topic: makenode documentation/deprecation ==&lt;br /&gt;
(announcement): Anyone wanna help document makenode? see https://peoplesopen.net/pad/p/makenode - also https://sudoroom.org/wiki/Mesh/Makenode&lt;br /&gt;
&lt;br /&gt;
== Action Items ==&lt;br /&gt;
* Send CT-1 and W-9 - Jenny&lt;br /&gt;
* Follow up on D&amp;amp;O Insurance - Jenny, ?&lt;br /&gt;
* Reply to Julia / AJ+ - Jenny&lt;br /&gt;
* Move peoplesopen.network emails to new Migadu server - Jenny/Jehan&lt;br /&gt;
* Get rocket.chat secure and persistent on sudomesh server - grant&lt;br /&gt;
* Draft group consensus and send to Amos White - grant&lt;br /&gt;
* Send survey to mailing list ahead of strategic meeting - mai&lt;br /&gt;
* Weekday node mount with Jeff 12pm Wednesday - Ben, mai, grant&lt;br /&gt;
&lt;br /&gt;
== Breakout Groups ==&lt;br /&gt;
At the end of the meeting, break out into small groups to hack on or discuss specific topics.&lt;br /&gt;
* Exit Node Debug: Jorrit, mai, grant, bengo, benny&lt;br /&gt;
&lt;br /&gt;
== Last Meeting Notes ==&lt;br /&gt;
https://sudoroom.org/wiki/Mesh/06_Feb_2018&lt;br /&gt;
&lt;br /&gt;
== End of Meeting ==&lt;br /&gt;
* please archive these meeting notes by copying the entire pad contents onto the sudomesh wiki&lt;br /&gt;
* then please erase the contents of this pad&lt;br /&gt;
* then please cut &amp;amp; paste a blank template from here: https://sudoroom.org/mediawiki/index.php?title=Mesh/Mesh_Meeting_Notes_Template&amp;amp;action=edit&lt;br /&gt;
* previous meeting notes are archived here: https://sudoroom.org/wiki/Mesh/Minutes&lt;/div&gt;</summary>
		<author><name>Gcg</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=11004</id>
		<title>Mesh/Flashing extender nodes</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=11004"/>
		<updated>2018-02-14T01:54:49Z</updated>

		<summary type="html">&lt;p&gt;Gcg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Download the Image File For a Extender Node ==&lt;br /&gt;
&lt;br /&gt;
The extender nodes that we currently support are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Notes !! OpenWRT Doc !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M2 and M5 || Newer models need [[#Downgrading_to_earlier_AirOS|AirOS downgrade]] before flashing! || [https://wiki.openwrt.org/toh/ubiquiti/nanostationm5 OpenWRT Docs] || firmware: [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin pre 2015 M5 versions and all M2 versions] or [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin 2015-2016 M5 versions]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation 2 || Previous generation 802.11g (not the same as M2) || [https://wiki.openwrt.org/toh/ubiquiti/picostation2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ath25.extender-node/openwrt-ath25-ubnt2-pico2-squashfs.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation M2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostationm2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-bullet-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobeam M2 and M5 || NBEâ€‘M2â€‘13 and NBEâ€‘M5â€‘16 work but some (earlier?) NBEâ€‘M5â€‘19 have ethernet port issues. Newer models need [[#Downgrading_to_earlier_AirOS|AirOS downgrade]] before flashing! || [https://wiki.openwrt.org/toh/ubiquiti/nanobeam OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-loco-m-xw-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobridge M2 and M5 || || Same as pre-2015 Nanostation M || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Bullet M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/bullet OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-bullet-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Downgrading to earlier AirOS ==&lt;br /&gt;
&lt;br /&gt;
Anything with version 5.6 of AirOS and above needs to be downgraded to an earlier AirOS version before you can flash it with OpenWRT. If you don't know if you need to do this then proceed to the next section (Flash the Extender Node) and come back here if you get an error saying &amp;quot;Firmware check failed&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you get this error DO NOT try to flash sudowrt/openwrt through the AirOS web interface. It will succeed and you will be stuck with a partially working system (all changes lost on every reboot) and no easy way to get it fully working.&lt;br /&gt;
&lt;br /&gt;
The solution is to use the built-in AirOS web UI to upload a version 5.5 of AirOS. This will downgrade the bootloader to a point where it's compatible with sudowrt/openwrt. Here's how:&lt;br /&gt;
&lt;br /&gt;
XM.v6.0.4 (v6.0.4) firmware version does not appear to be downgradable via the following method, use command-line method.&lt;br /&gt;
&lt;br /&gt;
* Download the v5.5 AirOS firmware&lt;br /&gt;
&lt;br /&gt;
http://dl.ubnt.com/firmwares/XW-fw/v5.5.10/XW.v5.5.10-u2.28005.150723.1358.bin&lt;br /&gt;
&lt;br /&gt;
http://dl.ubnt.com/firmwares/XN-fw/v5.5.11/XM.v5.5.11.28002.150723.1344.bin&lt;br /&gt;
&lt;br /&gt;
http://dl.ubnt.com/firmwares/XN-fw/v5.5.11/TI.v5.5.11.28002.150723.1518.bin&lt;br /&gt;
&lt;br /&gt;
* Configure your wired ethernet interface to use IP: 192.168.1.10, subnet: 255.255.255.0&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Plug another Ethernet cable into your node/router on one end and into the &amp;quot;POE&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Power on the router.&lt;br /&gt;
* Wait for a couple of minutes.&lt;br /&gt;
* Ensure you're not connected to a wifi network that has an 192.168.1.x IP range. Disconnect/disable your wifi if you're unsure.&lt;br /&gt;
* In your browser go to http://192.168.1.20&lt;br /&gt;
* Log in using the credentials username: ubnt and password: ubnt&lt;br /&gt;
* Click the &amp;quot;System&amp;quot; tab.&lt;br /&gt;
* Click the &amp;quot;Browse&amp;quot; button next to the &amp;quot;Upload Firmware&amp;quot; box &lt;br /&gt;
* Select the XW.v5.5.10.bin file that you downloaded earlier.&lt;br /&gt;
* Click &amp;quot;Upload&amp;quot;.&lt;br /&gt;
* After uploading you will be asked if you want to upgrade/install the firmware. Click yes/accept.&lt;br /&gt;
* Let the router finish flashing and wait for it to fully reboot before proceeding to flash sudowrt as described in the next section.&lt;br /&gt;
&lt;br /&gt;
command-line method:&lt;br /&gt;
&lt;br /&gt;
$ ssh-keygen -f &amp;quot;/home/yourusername/.ssh/known_hosts&amp;quot; -R 192.168.1.20&lt;br /&gt;
&lt;br /&gt;
$ scp /''path''/''to''/''firmware''/XM.v5.5.11.28002.150723.1344.bin  ubnt@192.168.1.20:/tmp/fwupdate.bin&lt;br /&gt;
&lt;br /&gt;
$ ssh ubnt@192.168.1.20 (password is ubnt)&lt;br /&gt;
&lt;br /&gt;
$ /sbin/fwupdate -m&lt;br /&gt;
&lt;br /&gt;
$ :)&lt;br /&gt;
&lt;br /&gt;
== Flash the Extender Node ==&lt;br /&gt;
&lt;br /&gt;
* Configure your wired ethernet interface to use IP: 192.168.1.10, subnet: 255.255.255.0&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Plug another Ethernet cable into your node/router on one end and into the &amp;quot;POE&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Push a pin into the reset hole and hold it.&lt;br /&gt;
* With the pin held down, plug in the power to the power-over-ethernet power supply.&lt;br /&gt;
* Watch the lights on the antenna - they will all flash together a few times, then they will flash up and down.&lt;br /&gt;
* Once the lights on the antenna are flashing up and down, you can let go of the pin.&lt;br /&gt;
&lt;br /&gt;
You should be able to ping the extender at 192.168.1.20.&lt;br /&gt;
&lt;br /&gt;
  $ ping 192.168.1.20&lt;br /&gt;
  PING 192.168.1.20 (192.168.1.20) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=1 ttl=64 time=1.54 ms&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=2 ttl=64 time=0.826 ms&lt;br /&gt;
&lt;br /&gt;
In your Linux terminal, type:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/ubi-flasher&lt;br /&gt;
  cd ubi-flasher&lt;br /&gt;
  npm install&lt;br /&gt;
  ./flasher.js '&amp;lt;path to firmware&amp;gt;'&lt;br /&gt;
&lt;br /&gt;
The terminal will tell you &amp;quot;The firmware has been successfully sent to the router. In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up). This means that the router is flashing itself with the new firmware. Once the router goes back to having only the power LED lit, the router has been successfully flashed.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Wait until the antenna has only the power LED lit and you're done.&lt;br /&gt;
&lt;br /&gt;
Reconfigure your machine with the following static network configuration.&lt;br /&gt;
&lt;br /&gt;
* IP Address: 172.22.0.10&lt;br /&gt;
* Subnet mask:  255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0&lt;br /&gt;
&lt;br /&gt;
See Network Configuration Guides: [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20Linux Linux] [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20MacOS%20X Mac]&lt;br /&gt;
&lt;br /&gt;
If you ping the extender node on 172.22.0.2 and it responds, it should be ready to connect to your home node on the appropriate wired Ethernet port.&lt;br /&gt;
&lt;br /&gt;
  $ ping 172.22.0.2&lt;br /&gt;
  PING 172.22.0.2 (172.22.0.2) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=1 ttl=64 time=0.617 ms&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=2 ttl=64 time=0.316 ms&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=3 ttl=64 time=0.398 ms&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Extender Detection ==&lt;br /&gt;
&lt;br /&gt;
Log into your home node via SSH, and tail &amp;lt;tt&amp;gt;/var/log/messages&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver: eth0.3: Physical disconnect detected&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver: Listening on interface eth0.3:&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver:   client IP: 100.64.37.3&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver:   client netmask 26&lt;br /&gt;
  Sun May  8 00:51:12 2016 daemon.debug notdhcpserver: eth0.3: Recieved HEARTBEAT for interface that hadn't been ACKed.&lt;br /&gt;
  ...&lt;br /&gt;
  Sun May  8 00:54:00 2016 daemon.debug notdhcpserver: eth0.3: Recieved HEARTBEAT for interface that hadn't been ACKed.&lt;br /&gt;
  Sun May  8 00:54:00 2016 daemon.info hostapd: priv5: STA 80:e6:50:0e:fe:6e WPA: group key handshake completed (RSN)&lt;br /&gt;
  Sun May  8 00:54:04 2016 daemon.debug notdhcpserver: eth0.2: Received lease request&lt;br /&gt;
  Sun May  8 00:54:04 2016 daemon.debug notdhcpserver: eth0.3: sending response (with ssl certificate)&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received ACK&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Running up hook script&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received redundant ACK&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received redundant ACK&lt;br /&gt;
&lt;br /&gt;
There should be a debug message in the log from notdhcpserver concerning the extender node.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== USB to Serial Connection ===&lt;br /&gt;
&lt;br /&gt;
If you experience trouble flashing your device via the web interface, or via the TFTP image upload method, you'll want to establish a serial connection to troubleshoot further. Methods for flashing your device involving a serial connection may become more common as devices adopt configurations to lock down [http://www.networkworld.com/article/3038722/mobile-wireless/manufacturers-start-to-lock-down-wi-fi-router-firmware-thanks-fcc.html wi-fi router firmware] to prevent flashing.&lt;br /&gt;
&lt;br /&gt;
The following notes describe steps to interface with a Nanostation M5 (NSM5) via the serial interface. &lt;br /&gt;
&lt;br /&gt;
==== Order a USB to Serial Converter ====&lt;br /&gt;
&lt;br /&gt;
USB to serial converter devices exist at a cost of $4 - $8 online, with much lower pricing and longer delivery times if ordered from China. Search for &amp;quot;USB to UART TTL&amp;quot;, including &amp;quot;5 pin&amp;quot; in the search. Make sure the specifications do not mention anything other than 3.3 volts.&lt;br /&gt;
&lt;br /&gt;
Mac OS X users may need to install a device driver for their device. For example, for devices using the CP210X chip, you can download the [https://www.silabs.com/products/mcu/Pages/USBtoUARTBridgeVCPDrivers.aspx#mac CP210x USB to UART Bridge VCP Driver], which is made available as &amp;lt;tt&amp;gt;/dev/tty.SLAB_USBtoUART&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Connecting to Serial ====&lt;br /&gt;
&lt;br /&gt;
You will need to connect the following pins from the converter to the pins on the device.&lt;br /&gt;
&lt;br /&gt;
* Ground (GND)&lt;br /&gt;
* Serial Out (Transmit / TX)&lt;br /&gt;
* Serial In (Receive / RX)&lt;br /&gt;
&lt;br /&gt;
Begin by connecting the Ground of the converter to the Ground of the device. Next connect the Transmit/TX of the converter to the Receive/RX of the device, then connect the Receive/RX of the converter to the Transmit/TX of the device.&lt;br /&gt;
&lt;br /&gt;
Nanostation M5 (NSM5) Example:&lt;br /&gt;
&lt;br /&gt;
[[File:CP2102-usb-to-serial-converter.jpg|400px|KEDSUMÂ® CP2102 Module STC Download Cable USB 2.0 to TTL 6PIN Serial Converter For STC]]&lt;br /&gt;
&lt;br /&gt;
[[File:Ubiquity-NSM5-serial-connectors.jpg|400px|Ubiquiti Nanostation NSM5 - Serial pins with connections]]&lt;br /&gt;
&lt;br /&gt;
==== Serial Communications Program ====&lt;br /&gt;
&lt;br /&gt;
You need to install a serial communication program. Linux users can use Minicom.&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get install minicom&lt;br /&gt;
&lt;br /&gt;
Mac OS X users can as well&lt;br /&gt;
&lt;br /&gt;
  brew install minicom&lt;br /&gt;
&lt;br /&gt;
By default the Minicom program will attempt to use /dev/tty8, and will also attempt to initialize the device (expecting a modem) by default.&lt;br /&gt;
&lt;br /&gt;
  $ minicom&lt;br /&gt;
  minicom: cannot open /dev/tty8: Permission denied&lt;br /&gt;
&lt;br /&gt;
Run the program so that it starts the program on the USB converter that is connected by adding &amp;lt;tt&amp;gt;-D /dev/ttyUSB0&amp;lt;/tt&amp;gt;, and specify that it should skip initialization by adding &amp;lt;tt&amp;gt;-o&amp;lt;/tt&amp;gt;. Mac users may need to reference a different device (such as &amp;lt;tt&amp;gt;/dev/tty.SLAB_USBtoUART&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
You can also specify from the command line that it use the baud rate and '8N1' settings specified below by including &amp;lt;tt&amp;gt;-b 115200 -8&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
  sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
&lt;br /&gt;
In Minicom, CTRL-A to get settings, then Press O, to access settings. Mac users will need to discover the proper META key to use with their Terminal program. iTerm uses the 'ESC' key.&lt;br /&gt;
&lt;br /&gt;
Go to Serial Port Setup, use these settings:&lt;br /&gt;
&lt;br /&gt;
* Set the serial device (should be /dev/tty/USB0)&lt;br /&gt;
* Baud Rate (Bits Per Second): 115200&lt;br /&gt;
* Settings '8N1' (short hand for 8 bits, no parity, 1 stop bit)&lt;br /&gt;
* Turn off hardware and software flow control&lt;br /&gt;
&lt;br /&gt;
Reboot the device, and it will let you drop into a command line. You will then have to figure out how to enable the network from the boot loader (Uboot or Redboot) and transfer the firmware to the device to flash it.&lt;br /&gt;
&lt;br /&gt;
==== Interupting Boot ====&lt;br /&gt;
&lt;br /&gt;
The device will not detect the key you press unless Minicom is configured properly.&lt;br /&gt;
&lt;br /&gt;
* To access the Help screen, Press CTRL-A, then press Z.&lt;br /&gt;
* To access the configuration/settings, press CTRL-A, then press O.&lt;br /&gt;
&lt;br /&gt;
From the configuration window, select to view the 'Serial port setup'&lt;br /&gt;
&lt;br /&gt;
  $ sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
  Welcome to minicom 2.7&lt;br /&gt;
  &lt;br /&gt;
  OPTIONS: I18n &lt;br /&gt;
  Compiled on Jan  1 2014, 17:13:19.&lt;br /&gt;
  Port /dev/ttyUSB0, 21:47:56&lt;br /&gt;
  &lt;br /&gt;
  Press CTRL-A Z for help on special keys&lt;br /&gt;
  &lt;br /&gt;
              +-----[configuration]------+&lt;br /&gt;
              | Filenames and paths      |&lt;br /&gt;
              | File transfer protocols  |&lt;br /&gt;
              | Serial port setup        |&lt;br /&gt;
              | Modem and dialing        |&lt;br /&gt;
              | Screen and keyboard      |&lt;br /&gt;
              | Save setup as dfl        |&lt;br /&gt;
              | Save setup as..          |&lt;br /&gt;
              | Exit                     |&lt;br /&gt;
              +--------------------------+&lt;br /&gt;
  &lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
  | A -    Serial Device      : /dev/ttyUSB0                              |&lt;br /&gt;
  | B - Lockfile Location     : /var/lock                                 |&lt;br /&gt;
  | C -   Callin Program      :                                           |&lt;br /&gt;
  | D -  Callout Program      :                                           |&lt;br /&gt;
  | E -    Bps/Par/Bits       : 115200 8N1                                |&lt;br /&gt;
  | F - Hardware Flow Control : Yes                                       |&lt;br /&gt;
  | G - Software Flow Control : No                                        |&lt;br /&gt;
  |                                                                       |&lt;br /&gt;
  |    Change which setting?                                              |&lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
&lt;br /&gt;
By default the Hardware Flow Control will be enabled. Press 'F' to disable Hardware Flow Control. Press ENTER to exit the Serial port setup window, and then select EXIT to go back to the program.&lt;br /&gt;
&lt;br /&gt;
At this point plug in the Ethernet cable to the 'Main' Ethernet port, with the other end connected to the 'POE' port on the Power Over Ethernet adapter that came with the device. As the device boots up, you'll see output similar to the following.&lt;br /&gt;
&lt;br /&gt;
You'll need to make sure to press a key before it boots the default image.&lt;br /&gt;
&lt;br /&gt;
=== Picostation M2HP ===&lt;br /&gt;
&lt;br /&gt;
Insightful post on [https://www.strugglingcoder.info/index.php/tag/ubnt/ loading FreeBSD image] with help from serial communications. Could be useful with troubleshooting other models.&lt;br /&gt;
=== Nanostation M2 ===&lt;br /&gt;
==== Firmware check failure ====&lt;br /&gt;
&lt;br /&gt;
The following are simply notes. A solution to this issue is still pending.&lt;br /&gt;
&lt;br /&gt;
Flashing the Nanostation M2 (FCC ID: SWX-M2N) using the TFTP rescue mode will result in a Firmware check failure error.&lt;br /&gt;
&lt;br /&gt;
  $ tftp 192.168.1.20&lt;br /&gt;
  tftp&amp;gt; bin&lt;br /&gt;
  tftp&amp;gt; put openwrt-ar71xx-generic-om2p-squashfs-factory.bin&lt;br /&gt;
  Error code 2: Firmware check failed&lt;br /&gt;
  Sent 4609024 bytes in 12.6 seconds&lt;br /&gt;
&lt;br /&gt;
You can boot up the M2 with a serial connection similar to the instructions below concerning the Nanostation M5.&lt;br /&gt;
&lt;br /&gt;
  Board: Ubiquiti Networks XM board (rev 1.0 e012)&lt;br /&gt;
  DRAM:  32 MB&lt;br /&gt;
  Flash:  8 MB&lt;br /&gt;
  PCIe WLAN Module found (#1).&lt;br /&gt;
  Net:   eth0, eth1&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: |&lt;br /&gt;
  Receiving file from 192.168.1.10:35456&lt;br /&gt;
  Received 4609501 bytes&lt;br /&gt;
  Firmware check failed! (-2)&lt;br /&gt;
&lt;br /&gt;
The method outlined for the Nanostation M5 below doesn't work with the M2.&lt;br /&gt;
&lt;br /&gt;
Update the firmware to [http://dl.ubnt.com/firmwares/XN-fw/v5.6.4/XM.v5.6.4.28924.160331.1253.bin airOS for XM board firmware v5.6.4].&lt;br /&gt;
&lt;br /&gt;
Serial Connection:&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
&lt;br /&gt;
Terminal:&lt;br /&gt;
&lt;br /&gt;
  $ tftp 192.168.1.20&lt;br /&gt;
  tftp&amp;gt; bin&lt;br /&gt;
  tftp&amp;gt; put XM.v5.6.4.28924.160331.1253.bin&lt;br /&gt;
  Sent 7537129 bytes in 20.8 seconds&lt;br /&gt;
&lt;br /&gt;
Serial Connection:&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:55113&lt;br /&gt;
  Received 7537129 bytes&lt;br /&gt;
  Firmware Version: XM.ar7240.v5.6.4.28924.160331.1253&lt;br /&gt;
  Setting U-Boot environment variables&lt;br /&gt;
  Un-Protected 1 sectors&lt;br /&gt;
  Erasing Flash.... done&lt;br /&gt;
  Erased 1 sectors&lt;br /&gt;
  Writing to Flash... done&lt;br /&gt;
  Protected 1 sectors&lt;br /&gt;
  Will not overwrite u-boot partition! Skipped.&lt;br /&gt;
  Copying partition 'kernel' to flash memory:&lt;br /&gt;
          erasing range 0x9F050000..0x9F14FFFF: ................ done&lt;br /&gt;
  Erased 16 sectors&lt;br /&gt;
          writing to address 0x9f050000, length 0x00100000 ...&lt;br /&gt;
  Copying partition 'rootfs' to flash memory:&lt;br /&gt;
          erasing range 0x9F150000..0x9F74FFFF: .............................................................................................e&lt;br /&gt;
  Erased 96 sectors&lt;br /&gt;
          writing to address 0x9f150000, length 0x00600000 ...&lt;br /&gt;
  &lt;br /&gt;
  Firmware update complete.&lt;br /&gt;
  &lt;br /&gt;
  Resetting...&lt;br /&gt;
  &lt;br /&gt;
  U-Boot 1.1.4.2-s594 (Dec  5 2012 - 15:23:07)&lt;br /&gt;
  &lt;br /&gt;
  Board: Ubiquiti Networks XM board (rev 1.0 e012)&lt;br /&gt;
&lt;br /&gt;
Attempting to run the same process after performing an official firmware update doesn't resolve the issue.&lt;br /&gt;
&lt;br /&gt;
=== Nanostation M5 ===&lt;br /&gt;
&lt;br /&gt;
Official firmware from Ubiquity Nanostation M5 (NSM5)&lt;br /&gt;
&lt;br /&gt;
* [https://www.ubnt.com/download/airmax-m/nanostationm/default/airos-xw-board-firmware-v564 airOS for XW board firmware v5.6.4]&lt;br /&gt;
&lt;br /&gt;
==== Firmware check failure ====&lt;br /&gt;
&lt;br /&gt;
Flashing the Nanostation M5 (FCC ID: SWX-NSM5D) using the TFTP rescue mode will result in a Firmware check failure error.&lt;br /&gt;
&lt;br /&gt;
If you attempt to flash the extender and receive a 'Firmware check failed' error, then you have a version of the NSM5 that is protected from being flashed via the default TFTP method. You will need to obtain a serial to USB interface (USB to UART TTL Module Serial Converter, 5 pin) and use it to flash the firmware.&lt;br /&gt;
&lt;br /&gt;
   $ ./flasher.js openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin&lt;br /&gt;
   Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
   Connection timed out&lt;br /&gt;
   Sending openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
   [Error: (Server) Firmware check failed]&lt;br /&gt;
&lt;br /&gt;
When connected to the NSM5 via a serial connection, a similar error is displayed when attempting to load the SudoWRT firmware image.&lt;br /&gt;
&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Will reset device configuration (Reset button active after 10 seconds).&lt;br /&gt;
  Erasing sector 123..126&lt;br /&gt;
  &lt;br /&gt;
  First 0x7b last 0x7e sector size 0x10000&lt;br /&gt;
  .... done&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
  Receiving file from 192.168.1.10:49763&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware check failed! (1)&lt;br /&gt;
&lt;br /&gt;
===== Drop into U-Boot Command Prompt =====&lt;br /&gt;
&lt;br /&gt;
Connect a USB to Serial adapter to the correct pins of the NSM5, as shown above. Unplug the Ethernet cable from the device, and then plug it back in to provide Power Over Ethernet once again, resulting in a reboot of the device.&lt;br /&gt;
&lt;br /&gt;
During the boot process, press a key to during the boot process to make the [https://wiki.openwrt.org/doc/techref/bootloader/uboot U-Boot] bootloader to drop into a command line prompt.&lt;br /&gt;
&lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0&lt;br /&gt;
  ar7240&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Running TFTPd =====&lt;br /&gt;
&lt;br /&gt;
Although U-Boot can support two protocols for transfering files, kermit or y-modem, the bootloader does not support the &amp;lt;tt&amp;gt;loadb&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;loady&amp;lt;/tt&amp;gt;. Minicom only supports y-modem protocol.&lt;br /&gt;
&lt;br /&gt;
We do not have to resort to a direct serial file transfer however. The 'mtdparts' command that is used to define flash memory partitions can be used to reset the partition table to the defaults before running 'urescue' to start the TFTP server.&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; help mtdparts&lt;br /&gt;
  mtdparts &lt;br /&gt;
      - list partition table&lt;br /&gt;
  mtdparts delall&lt;br /&gt;
      - delete all partitions&lt;br /&gt;
  mtdparts del part-id&lt;br /&gt;
      - delete partition (e.g. part-id = nand0,1)&lt;br /&gt;
  mtdparts add &amp;lt;mtd-dev&amp;gt; &amp;lt;size&amp;gt;[@&amp;lt;offset&amp;gt;] [&amp;lt;name&amp;gt;] [ro]&lt;br /&gt;
      - add partition&lt;br /&gt;
  mtdparts default&lt;br /&gt;
      - reset partition table to defaults&lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
&lt;br /&gt;
In your other terminal window, run the ubi-flasher script.&lt;br /&gt;
&lt;br /&gt;
  $ ./flasher.js /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin&lt;br /&gt;
  Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
  Connection timed out&lt;br /&gt;
  Sending /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
  Firmware flashing begun!&lt;br /&gt;
  The firmware has been successfully sent to the router.&lt;br /&gt;
  In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up).&lt;br /&gt;
  This means that the router is flashing itself with the new firmware.&lt;br /&gt;
  Once the router goes back to having only the power LED lit, the router has been successfully flashed.&lt;br /&gt;
&lt;br /&gt;
In the terminal running Minicom you should see the firmware successfully flashing.&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:52289&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware Version: XW.ar934x.v6.0.0-OpenWrt-r47662&lt;br /&gt;
  Setting U-Boot environment variables&lt;br /&gt;
  Un-Protected 1 sectors&lt;br /&gt;
  Erasing Flash.... done&lt;br /&gt;
  Erased 1 sectors&lt;br /&gt;
  Writing to Flash... write addr: 9f040000&lt;br /&gt;
  done&lt;br /&gt;
  Protected 1 sectors&lt;br /&gt;
  Copying partition 'kernel' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x5 last 0x14 sector size 0x10000&lt;br /&gt;
  ................ done&lt;br /&gt;
  write addr: 9f050000&lt;br /&gt;
  Copying partition 'rootfs' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x15 last 0x6e sector size 0x10000&lt;br /&gt;
  .......................................................................................... done&lt;br /&gt;
  write addr: 9f150000&lt;br /&gt;
  &lt;br /&gt;
  Firmware update complete.&lt;br /&gt;
  &lt;br /&gt;
  Resetting...&lt;br /&gt;
  &lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ## Booting image at 9f050000 ...&lt;br /&gt;
     Image Name:   MIPS OpenWrt Linux-3.18.23&lt;br /&gt;
     Created:      2015-12-01   0:03:51 UTC&lt;br /&gt;
     Image Type:   MIPS Linux Kernel Image (lzma compressed)&lt;br /&gt;
     Data Size:    1135619 Bytes =  1.1 MB&lt;br /&gt;
     Load Address: 80060000&lt;br /&gt;
     Entry Point:  80060000&lt;br /&gt;
     Verifying Checksum at 0x9f050040 ...OK&lt;br /&gt;
     Uncompressing Kernel Image ... OK&lt;br /&gt;
  &lt;br /&gt;
  Starting kernel ...&lt;br /&gt;
  &lt;br /&gt;
  [    0.000000] Linux version 3.18.23 (sudowrt-builder@build-test2) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.04 r47662) ) #2 Mon Nov 5&lt;br /&gt;
&lt;br /&gt;
After it reboots if you see the first line mention 'sudowrt-builder', the device is booting the SudoWRT firmware build.&lt;br /&gt;
&lt;br /&gt;
You can press ENTER once it is finished, and it should drop into the command line for the SudoWRT system.&lt;br /&gt;
&lt;br /&gt;
  [   25.650000] jffs2: Newly-erased block contained word 0xdeadc0de at offset 0x00000000&lt;br /&gt;
  [   25.660000] done.&lt;br /&gt;
  [   25.660000] jffs2: notice: (993) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and.&lt;br /&gt;
  &lt;br /&gt;
  BusyBox v1.23.2 (2015-11-30 18:48:50 EST) built-in shell (ash)&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
    ._______.___    ._______.______  ._____  .___    .___ .______  ._____  &lt;br /&gt;
    :_ ____/|   |   : .____/:_ _   \ :_ ___\ |   |   : __|:      \ :_ ___\ &lt;br /&gt;
    |   _/  |   |   | : _/\ |   |   ||   |___|   |   | : ||       ||   |___&lt;br /&gt;
    |   |   |   |/\ |   /  \| . |   ||   /  ||   |/\ |   ||   |   ||   /  |&lt;br /&gt;
    |_. |   |   /  \|_.: __/|. ____/ |. __  ||   /  \|   ||___|   ||. __  |&lt;br /&gt;
      :/    |______/   :/    :/       :/ |. ||______/|___|    |___| :/ |. |&lt;br /&gt;
      :                      :        :   :/                        :   :/ &lt;br /&gt;
                                          :                             : &lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   sudo mesh v0.2 (fledgling.extender)&lt;br /&gt;
                                based on OpenWRT 15.05 (Chaos Calmer)&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   &amp;quot;When your rage is choking you, it is best to say nothing.&amp;quot; &lt;br /&gt;
                                              - Octavia E. Butler, Fledgling&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
  &lt;br /&gt;
  root@sudomesh-node:/#&lt;br /&gt;
&lt;br /&gt;
== Extender Node Installation ==&lt;br /&gt;
=== Installation Order ===&lt;br /&gt;
#Flash home nodes and extender nodes&lt;br /&gt;
#Get on roof and determine which direction to face the extender nodes&lt;br /&gt;
#Install J-Pole&lt;br /&gt;
#Crimp end onto Ethernet cable&lt;br /&gt;
#Run Ethernet cable from j-pole down to location of home node (either through a soffit indoors or to an outdoor enclosure)&lt;br /&gt;
#Crimp other end of Ethernet cable and connect to home node via a POE adaptor&lt;br /&gt;
#Install extender node on J-Pole using zip-ties - check lights to make sure unit is powered up&lt;br /&gt;
#Walk around the neighborhood to check the signal&lt;br /&gt;
&lt;br /&gt;
=== Gear Checklist ===&lt;br /&gt;
	&lt;br /&gt;
Protective and personal gear&lt;br /&gt;
*Wear clothes you can get dirty and sturdy boots for roof walking&lt;br /&gt;
*Sunscreen&lt;br /&gt;
*Sunglasses&lt;br /&gt;
*Pocketknife (for cutting zip ties etc)&lt;br /&gt;
*Ladder&lt;br /&gt;
*Safety harness &amp;amp; rope in a bucket&lt;br /&gt;
*Smart phone (to check signal and take pictures)&lt;br /&gt;
Home node gear&lt;br /&gt;
*2 flashed Western Digital Mynet N600 Home Nodes&lt;br /&gt;
*paperclip (to reset equipment)&lt;br /&gt;
*Laptop (to configure equipment)&lt;br /&gt;
*Plastic outdoor enclosure for router (optional)&lt;br /&gt;
*Power Strip&lt;br /&gt;
J-Pole gear&lt;br /&gt;
*J-Pole&lt;br /&gt;
*Latex gloves (for dealing with roofing sealant)&lt;br /&gt;
*Roofing sealant&lt;br /&gt;
*Ratchet set - 10mm for small bolts, 13mm for large bolts&lt;br /&gt;
*Corldless Drill&lt;br /&gt;
*3/16&amp;quot; drill bit for J-pole bolts&lt;br /&gt;
*Steel One-Hole Conduit Straps (for holding Ethernet cable along eves)&lt;br /&gt;
*Screws for the Steel one-hole straps&lt;br /&gt;
Ethernet cable gear&lt;br /&gt;
*Ethernet Spool&lt;br /&gt;
*Ethernet Ends&lt;br /&gt;
*Ethernet Crimper&lt;br /&gt;
*Laminated card showing the Ethernet cable order&lt;br /&gt;
*Label Maker - so you can know which cable is which&lt;br /&gt;
Extender node gear&lt;br /&gt;
*Flashed Ubiquiti Nanostation M2 or M5 extender Node(s)&lt;br /&gt;
*Power over Ethernet (POE) adapters&lt;br /&gt;
*Zip Ties&lt;/div&gt;</summary>
		<author><name>Gcg</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11003</id>
		<title>Mesh/WalkThrough</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11003"/>
		<updated>2018-02-14T01:52:52Z</updated>

		<summary type="html">&lt;p&gt;Gcg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Congratulations on choosing to become part of a People's Open Network! This is a walkthrough for flashing a node (a home router) with the SudoMesh's sudowrt-firmware (a custom build of OpenWRT) and then configuring it with makenode (a custom javascript tool developed by SudoMesh). At the end of the walkthrough, you'll be able to plug in your router and join the mesh. The walkthrough assumes you're using a linux-ish OS (mac OSX should work also) and that you have [https://help.ubuntu.com/community/UsingTheTerminal basic knowledge of the terminal]. The general idea of building your own mesh node consists of three steps, [[#Download/Build|downloading or compiling]] custom firmware, [[#Flash/Upload|flashing that firmware]] to the node (i.e. copying firmware to [https://en.wikipedia.org/wiki/Flash_memory flash memory]), and [[#makenode/Configure|configuring the node]] to function as part of a mesh (with a software tool such as makenode).&lt;br /&gt;
&lt;br /&gt;
Before you flash your router, it is recommended that you read the [[Home and extender nodes#Home_nodes|home node info]] to find out the router works as a mesh node.&lt;br /&gt;
&lt;br /&gt;
= Download/Build =&lt;br /&gt;
&lt;br /&gt;
Now that you have node, you will probably want to learn how to flash it with the latest sudowrt-firmware. The first step is to download the firmware image file for your supported router. &lt;br /&gt;
&lt;br /&gt;
At the moment, we are supporting the following routers:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! OpenWRT Doc !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| TP-Link WDR3500 || [https://wiki.openwrt.org/toh/tp-link/tl-wdr3500 OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| TP-Link WDR3600 || [https://wiki.openwrt.org/toh/tp-link/tl-wdr3600 OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| TP-Link WDR4300 || [https://wiki.openwrt.org/toh/tp-link/tl-wdr4300 OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Western Digital MyNet N600 || [https://wiki.openwrt.org/toh/wd/n600 OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
|  Western Digital MyNet N750 || [https://wiki.openwrt.org/toh/wd/n750 OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Builds for other routers can be found on our [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/ builds server], though there is no guarantee the firmware will work with any given router.&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can build your own copy of the firmware images by following the guide in the [https://github.com/sudomesh/sudowrt-firmware sudowrt-firmware source].&lt;br /&gt;
&lt;br /&gt;
If you do not want to use a SudoMesh's OpenWRT image, you can also install [https://downloads.openwrt.org/ a standard OpenWRT] release and configure it from scratch.&lt;br /&gt;
&lt;br /&gt;
= Flash/Upload =&lt;br /&gt;
&lt;br /&gt;
Once you have a copy of the sudowrt-firmware intended for your router, you can proceed with flashing it to your router. There are different techniques for flashing each of the routers. Use the links above to the OpenWRT wiki and follow the instructions there to flash the router with the firmware you've downloaded.&lt;br /&gt;
&lt;br /&gt;
For convenience, if you have a Western Digital MyNet N600 or N750, follow these instructions:&lt;br /&gt;
&lt;br /&gt;
== Reset your new router ==&lt;br /&gt;
* Plug one end of the Ethernet cable into your laptop.&lt;br /&gt;
* Plug the other end of the Ethernet cable into one of the normal ports on the router (not the Internet/WAN port).&lt;br /&gt;
* With the router plugged in and power turned off, push a pin into the reset hole and hold it.&lt;br /&gt;
* With the pin held down, turn on the router power button.&lt;br /&gt;
* Watch the front blue light - they will flash on and off a few times.&lt;br /&gt;
* Once the front blue is flashing, you can let go of the pin.&lt;br /&gt;
&lt;br /&gt;
== Configure your computer's network settings ==&lt;br /&gt;
On your laptop edit your network settings to reflect the following:&lt;br /&gt;
&lt;br /&gt;
* Network Manager Method: Manual&lt;br /&gt;
* IP Address: 192.168.1.10 (some devices will only accept from this IP)&lt;br /&gt;
* Subnet Mask: 255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0&lt;br /&gt;
&lt;br /&gt;
You can also use the commands:&lt;br /&gt;
  sudo ip link set eth0 down &lt;br /&gt;
  sudo ip addr add 192.168.1.10/24 dev eth0 &lt;br /&gt;
  sudo ip link set eth0 up&lt;br /&gt;
&lt;br /&gt;
where eth0 is the name of your ethernet interface found using ifconfig (other common interface names esp3s0...)&lt;br /&gt;
&lt;br /&gt;
See Network Configuration Guides: [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20Linux Linux] [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20MacOS%20X Mac]&lt;br /&gt;
&lt;br /&gt;
== Upload sudowrt-firmware ==&lt;br /&gt;
In your web browser:&lt;br /&gt;
&lt;br /&gt;
* Go to [http://192.168.1.1 http://192.168.1.1], if the reset was successful, you should see the following page:&lt;br /&gt;
[[File:Screenshot from 2017-04-04 18-27-09.png|thumb|center|upright=2]]&lt;br /&gt;
* Click 'Browse' and select the firmware file you downloaded&lt;br /&gt;
* Click Upload and you will be taken to an exciting countdown timer:&lt;br /&gt;
[[File:Screenshot from 2017-04-02 17-20-51.png|thumb|center|upright=2]]&lt;br /&gt;
&lt;br /&gt;
Note: Sometimes the firmware upload will not complete. After you click on 'Upload' You should get a page with a countdown of 120+ seconds. If this does not occur, reboot the router with the pin reset button depressed (as noted above), and try again.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= makenode/Configure =&lt;br /&gt;
After flashing sudowrt-firmware to your router you will need to configure it work on a People's Open Network.&lt;br /&gt;
&lt;br /&gt;
== Reconfigure your computer's network settings ==&lt;br /&gt;
A freshly flashed node automatically sets its IP address to 172.22.0.1. You will need to configure your laptop to use the following network settings to communicate with the node.&lt;br /&gt;
&lt;br /&gt;
* IP address: 172.22.0.10 &lt;br /&gt;
* Subnet mask:  255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0&lt;br /&gt;
&lt;br /&gt;
Or use the commands&lt;br /&gt;
  sudo ip link set eth0 down &lt;br /&gt;
  sudo ip addr add 172.22.0.10/24 dev eth0 &lt;br /&gt;
  sudo ip link set eth0 up&lt;br /&gt;
&lt;br /&gt;
where eth0 is the name of your ethernet interface found using ifconfig (other common interface names esp3s0...)&lt;br /&gt;
&lt;br /&gt;
See Network Configuration Guides: [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20Linux Linux] [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20MacOS%20X Mac]&lt;br /&gt;
&lt;br /&gt;
To test that the flashing was successful, feel free to try connecting to your unconfigured router by opening a browser and navigating to https://172.22.0.1&lt;br /&gt;
if the flash was successfull you should be brought to the following screen:&lt;br /&gt;
&lt;br /&gt;
[[File:Peoplesopen-dash.png|thumb|center|upright=2]]&lt;br /&gt;
&lt;br /&gt;
After you have successfully flashed your router with OpenWRT, you will need to use [https://github.com/sudomesh/makenode makenode] to complete the setup. makenode registers your node on the peoplesopen network, resulting in the assignment of a 64 IPv4 address subnet to your node, in addition to applying basic configuration.&lt;br /&gt;
&lt;br /&gt;
== Preparing your laptop for makenode ==&lt;br /&gt;
&lt;br /&gt;
You will need to install the dependencies for [https://github.com/sudomesh/makenode makenode].&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
&lt;br /&gt;
If you are working with a fresh installation of one of the operating systems listed in the compatibility checklist, you will need to install a few pieces of software. &lt;br /&gt;
To install them, open your terminal and enter the following commands.&lt;br /&gt;
&lt;br /&gt;
  sudo apt update&lt;br /&gt;
  sudo apt install curl git dropbear&lt;br /&gt;
  curl -o- ht&amp;lt;span&amp;gt;tps://&amp;lt;/span&amp;gt;raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash&lt;br /&gt;
  export NVM_DIR=&amp;quot;$HOME/.nvm&amp;quot;  # or you can close and reopen your terminal before using nvm&lt;br /&gt;
  nvm install 7.10&lt;br /&gt;
&lt;br /&gt;
==== OS Compatibility checklist ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! OS !! Compatible !! Link to ISO !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 16.04 LTS || yes || http://releases.ubuntu.com/16.04/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 14.04 LTS || please verify || http://releases.ubuntu.com/14.04/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian 9.3 Stretch || yes || https://www.debian.org/distrib/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian 8.1 Jessie || yes || https://www.debian.org/releases/jessie/debian-installer/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Arch Linux || yes || https://www.archlinux.org/download/ || you may have to build dropbear from [https://github.com/mkj/dropbear source]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Mac ===&lt;br /&gt;
&lt;br /&gt;
Install the [http://brew.sh/ Homebrew] package manager, then install the required binaries.&lt;br /&gt;
&lt;br /&gt;
  brew install nodejs&lt;br /&gt;
  brew install git&lt;br /&gt;
  brew install npm&lt;br /&gt;
  brew install dropbear&lt;br /&gt;
  brew install gnu-tar&lt;br /&gt;
  brew install fakeroot&lt;br /&gt;
&lt;br /&gt;
'''Note: Windows is not currently supported, main problem is with Dropbear, which has no known ports for Windows.'''&lt;br /&gt;
&lt;br /&gt;
== Install and run makenode ==&lt;br /&gt;
&lt;br /&gt;
From your terminal, run the following:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/makenode.git&lt;br /&gt;
  cd makenode&lt;br /&gt;
  npm install&lt;br /&gt;
  cp settings.js.example settings.js&lt;br /&gt;
&lt;br /&gt;
The default settings in &amp;lt;tt&amp;gt;settings.js&amp;lt;/tt&amp;gt; should suffice in most cases, but if you need to make changes, do them in &amp;lt;tt&amp;gt;settings.js&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Make sure the Ethernet cable is connected to the 4th port on the router.&lt;br /&gt;
&lt;br /&gt;
Once your network configuration is refreshed, use the following command to run the script and configure your node:&lt;br /&gt;
&lt;br /&gt;
  ./makenode.js&lt;br /&gt;
&lt;br /&gt;
Now the configuration wizard will ask you a number of questions:&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;enter valid hostname&amp;quot; - this is the host name when you SSH into the node - For info on what constitutes a valid hostname, see: [http://stackoverflow.com/questions/3523028/valid-characters-of-a-hostname valid characters of a hostname]&lt;br /&gt;
* &amp;quot;max share upstream bandwidth&amp;quot; - how much of your home network upstream bandwidth you wish to share with the mesh network, measured in kbps (kilobits per second). So if you'd like to share 10mbps (megabits per second) enter &amp;quot;10000&amp;quot; or if you want to share 256kbps (kilobits per second) enter &amp;quot;256&amp;quot;. You may want to run a [http://www.dslreports.com/speedtest speed test] to find out how much bandwidth you have and determine how much you want to share.&lt;br /&gt;
* &amp;quot;max share downstream bandwidth&amp;quot; - how much of your home network upstream bandwidth you wish to share with the mesh network - eg. &amp;quot;512&amp;quot; would share 512 kbps&lt;br /&gt;
* &amp;quot;admin user password&amp;quot; - this is the password for for changing wifi settings on the node&lt;br /&gt;
* &amp;quot;root user password&amp;quot; - this is the root password for the router - Make sure that your root password is strong! If you don't enter a root password, a strong one will be generated and will be logged to screen. It's generally preferable to not use the root password at all and instead add an ssh key to the device - see details below.&lt;br /&gt;
* &amp;quot;wifi transmit power&amp;quot; - set this to 23 dBm (which is equivalent to 200 milliwatts)&lt;br /&gt;
* &amp;quot;operator name&amp;quot; - this is the name that the network admins can associate with the node - so use a unique name like your first name or location name&lt;br /&gt;
* &amp;quot;private wifi SSID&amp;quot; - this is the wireless SSID name for the private wireless network that will run on this router&lt;br /&gt;
* &amp;quot;private wifi password&amp;quot; - this is the password for the private wireless network that will run on this router - it must be at least 8 characters long&lt;br /&gt;
&lt;br /&gt;
= Testing =&lt;br /&gt;
&lt;br /&gt;
After you're finished with the makenode configuration, your home node should be available for connections via your private WiFi SSID. Additionally the public SSID 'peoplesopen.net' will be available. &lt;br /&gt;
&lt;br /&gt;
A third interface named 'pplsopen.net-node2node' will be detectable as well. This is the interface used for the nodes to mesh with each other.&lt;br /&gt;
&lt;br /&gt;
At this point you're setup. For more information on using your node, such as accessing the web-based management interface, see [[Home and extender nodes#Home_nodes|Home node info]]&lt;br /&gt;
&lt;br /&gt;
For more technical details on the internals of the home node, see the [[Mesh/Technical_Overview]]&lt;br /&gt;
&lt;br /&gt;
For more in depth testing procedures, see our [https://github.com/sudomesh/sudowrt-firmware/blob/master/operator_manual.md mesh node operator's manual].&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
You may need to replace the `node-uuid` module with `uuid` for makenode to work, to fix this using the following commands:&lt;br /&gt;
&lt;br /&gt;
  npm uninstall --save node-uuid&lt;br /&gt;
  npm install --save uuid&lt;br /&gt;
&lt;br /&gt;
If you get the error &amp;quot;no such file or directory&amp;quot;, open a new terminal and run this command to ensure that &amp;lt;tt&amp;gt;node&amp;lt;/tt&amp;gt; points to your NodeJS executable:&lt;br /&gt;
&lt;br /&gt;
  sudo ln -s nodejs node&lt;br /&gt;
&lt;br /&gt;
In the new terminal, return to the 'makenode' source code directory and try again:&lt;br /&gt;
&lt;br /&gt;
  npm install&lt;br /&gt;
  ./makenode.js&lt;br /&gt;
&lt;br /&gt;
= Flashing Extender Nodes =&lt;br /&gt;
&lt;br /&gt;
If you would like to make long distance point-to-point connections between two or more home nodes, you'll want to setup an extender node (a roof mounted antenna).&lt;br /&gt;
&lt;br /&gt;
See [[Mesh/Flashing extender nodes]]&lt;/div&gt;</summary>
		<author><name>Gcg</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh&amp;diff=11001</id>
		<title>Mesh</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh&amp;diff=11001"/>
		<updated>2018-02-13T09:10:01Z</updated>

		<summary type="html">&lt;p&gt;Gcg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#setlogo:Meshlogo.png}}&lt;br /&gt;
[[File:Sudomesh.jpg|350px]]&lt;br /&gt;
[[File:SudoMesh Node.png|frameless|right|300px]]&lt;br /&gt;
&lt;br /&gt;
'''sudomesh is a group of volunteers operating out of the [https://sudoroom.org sudo room] hackerspace at the [https://omnicommons.org Omni Commons] - a collective of collectives stewarding a large community space in Oakland, California. We develop software and assemble hardware systems to help build open community networks like the [https://peoplesopen.net People's Open Network], a community-owned and -operated non-profit internet infrastructure in Oakland.'''&lt;br /&gt;
&lt;br /&gt;
We're a people-powered project. That means that anyone can join the network if they're willing to contribute by [https://github.com/sudomesh/bugs/issues/new reporting bugs], improving [https://github.com/sudomesh software], fixing hardware, [https://sudoroom.org/wiki/Mesh/WalkThrough setting up a node], [https://peoplesopen.net/blog/new-node-in-the-berkeley-hills/ installing rooftop nodes], telling your friends about us, [https://peoplesopen.net/blog/build-your-own-internet-workshop/ joining for a workshop], bringing pizza to a hack session, donating  [[Mesh/Wishlist|equipment]]/[https://www.patreon.com/peoplesopennet money]/[https://blockchain.info/address/12RxU4DpLpdWcmEBn7Tj325CCXBwt5i9Hc Bitcoin], learning with us about how the internet works, or just being patient if something is broken :)&lt;br /&gt;
&lt;br /&gt;
You can read about our progress on our [https://peoplesopen.net/blog/ blog]. &lt;br /&gt;
&lt;br /&gt;
'''Interested in learning more and exploring?''' Check out our [[#Join Us|Join Us]] section. You do not need to be technically skilled to be part of this project. We need people willing to mount gear on rooftops, folks who want to do public outreach, graphic design artists, film-makers, documentarians and so much more! Show up at a monthly general meeting and get involved!&lt;br /&gt;
&amp;lt;center&amp;gt;{{Mesh nav}}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Mesh_Oakland_High_Res.png|225px|right]]&lt;br /&gt;
----&lt;br /&gt;
= Intro =&lt;br /&gt;
Imagine if the wifi router in your home connected to the wifi routers in your neighbours' homes and they again connected to their neighbours to form a huge free wireless network spanning the city! That's exactly what a [https://en.wikipedia.org/wiki/Mesh_networking mesh network] is, or at least what it can be. Roads and telephone poles are owned by government or private interests and laying down cable is expensive, but by using wireless signals that hop from building to building we can create a community-owned and -operated, free-as-in-freedom alternative to corporate Internet Service Providers. Community wireless mesh networks are growing around the world, creating local 'internets' that support Net Neutrality and community control of critical infrastructure. &lt;br /&gt;
&lt;br /&gt;
sudo mesh is a non-profit organization consisting of a group of unpaid volunteers who are building the People's Open Network. Our mission is building open technology that helps to connect our neighbors, support local businesses, and enable community collaboration and cultural production. In the event of a natural disaster or state censorship, a community mesh network can be a resilient means of communication and sharing of information.&lt;br /&gt;
&lt;br /&gt;
We are spending a lot of time developing [https://github.com/sudomesh/ software] to make it cheap and easy for anyone to be part of People's Open Network, regardless of technical skill.&lt;br /&gt;
&lt;br /&gt;
= Join Us =&lt;br /&gt;
&lt;br /&gt;
Ways to participate:&lt;br /&gt;
&lt;br /&gt;
* Join the [http://lists.sudoroom.org/listinfo/mesh email list]&lt;br /&gt;
* Follow us on [https://twitter.com/sudomesh twitter] and like us on [https://www.facebook.com/sudomesh facebook].&lt;br /&gt;
* Learn more at our general meetings, which are the last Tuesday of every month at [[Getting_there|sudo room]] at 7:30 pm. We have focus groups and collaborate on different parts of the project - from design to software development, documentation to hardware hacking, community outreach and climbing rooftops to mount nodes!&lt;br /&gt;
* We have '''weekly hacknights''' on the Tuesdays that are not general meetings, 7:30-11:00pm at [[Getting_there|sudo room]], but at these events we do not spend time introducing new people to the project. If you do not feel ready to jump right in and start contributing, please show up for our general meetings (mentioned above) where we specifically take time to intro new volunteers and answer questions :D&lt;br /&gt;
* Chat with us on [http://www.irchelp.org/irchelp/irctutorial.html IRC]: [http://webchat.freenode.net/?channels=peoplesopen.net #peoplesopen.net] (see also [[IRC | IRC Intro]])&lt;br /&gt;
* We generally collaborate on [https://pad.riseup.net/p/sudomesh meeting notes] at each meeting. Look at our archive of past [[Mesh/Minutes|meeting minutes]]!&lt;br /&gt;
* Contribute to the network by installing a mesh node at your location using our handy [https://sudoroom.org/wiki/Mesh/WalkThrough Mesh Node Setup Walkthrough]. This is especially helpful for those who are within range of an existing node (seen as a wireless SSID named &amp;quot;peoplesopen.net&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
If you want to join the mesh you'll need a mesh router at your home! Currently the best way to get one is to show up at our monthly general meeting as described above :)&lt;br /&gt;
&lt;br /&gt;
= How to Help =&lt;br /&gt;
&lt;br /&gt;
We need more people on the network to improve the quality of the service. When you setup a node, you improve the service for everybody on the network and give more access to your community. We encourage participants to ask their communities to join their networks and create distributed services for them. We have a [[Mesh/User_Guide|user guide]] to help you get on the network!&lt;br /&gt;
&lt;br /&gt;
*Check out our [[Mesh/ToDos|ToDo list]]&lt;br /&gt;
*Support us with a small monthly donation on [https://www.patreon.com/peoplesopennet Patreon], here's [[Mesh/Purchases|how we spend it]].&lt;br /&gt;
*Send bitcoins to our wallet address: {{bitcoin wallet}}&lt;br /&gt;
*Check out our [[Mesh/Wishlist|wishlist]], we have requests! &lt;br /&gt;
*Come to our meetings in Oakland! (listed above)&lt;br /&gt;
*Improve our documentation&lt;br /&gt;
*Talk to your community about joining the mesh - here are some [[Mesh/Outreach|resources]] for doing so!&lt;br /&gt;
&lt;br /&gt;
== Developers ==&lt;br /&gt;
&lt;br /&gt;
We need hardware and software engineers to help us with our code. We have an overview of [[Mesh/Technical_Overview|technical documentation]] that will be helpful in understanding the network.&lt;br /&gt;
&lt;br /&gt;
If you want to immediately help, check out [https://github.com/sudomesh our code] or [https://github.com/sudomesh/sudowrt-firmware/milestones look at our remaining issues for upcoming milestones].&lt;br /&gt;
&lt;br /&gt;
Here are some of the projects that need attention:&lt;br /&gt;
&lt;br /&gt;
* [[Mesh/Firmware|Firmware]] - The sudowrt firmware&lt;br /&gt;
* [https://github.com/sudomesh/sudowrt-web-ui sudowrt-web-ui] - The new and improved web admin UI for sudowrt nodes&lt;br /&gt;
* [https://github.com/sudomesh/ubus-https-forwarder ubus-https-forwarder] - Allow management of extender nodes from home node web UI&lt;br /&gt;
* [https://github.com/sudomesh/service-browser The Service Browser] - Web UI for browsing mesh services&lt;br /&gt;
* [[Mesh/Distributed Services|Mesh Services]] - Which services should we provide?&lt;br /&gt;
&lt;br /&gt;
== Designers == &lt;br /&gt;
&lt;br /&gt;
We need artists and designers to make things look nice! We have [[Mesh/Design|design schemes]] we already use, but we're always looking to improve it. We need to improve our presentation content and [[Mesh/Diagrams|diagrams]] too! We've been focused on these areas:&lt;br /&gt;
* [[Mesh/Presentations]] - Past presentations, talks, workshops, tutorials and videos&lt;br /&gt;
* [[Mesh/Diagrams|Diagrams]] - Diagrams outlining the network topology and technical stack&lt;br /&gt;
* [[Mesh/Design|Design]] - Website &amp;amp; logo design; swag for enthusiasts; and marketing inspiration.&lt;br /&gt;
&lt;br /&gt;
= Frequently Asked Questions (FAQs)=&lt;br /&gt;
* [[Mesh/Decisions|Decisions]] - What decisions have we made, and why?&lt;br /&gt;
* [[Mesh/Funding|Funding]] - How the heck do we fund this thing?&lt;br /&gt;
* [[Mesh/Legal|Legal]] - How do we use exit nodes, relays and legal structures to protect node owners and ourselves?&lt;br /&gt;
* [[Mesh/Hosting|Hosting]] - How are we hosting and what does it cost?&lt;br /&gt;
* [[Mesh/Backup|Backup]] - How do we handle backups?&lt;br /&gt;
* [[Mesh/Server security|Server Security]] - How do we ensure server security?&lt;br /&gt;
&lt;br /&gt;
= Logistics =&lt;br /&gt;
* [[Mesh/Minutes|Meeting Minutes]] - Notes from our weekly meetings dating back to January 2013.&lt;br /&gt;
* [[Mesh/Inventory|Inventory]] - Continually-updated inventory of our hardware and gear.&lt;br /&gt;
* [[Mesh/Taxes|Taxes]] - Filed taxes for the sudo mesh non-profit&lt;br /&gt;
&lt;br /&gt;
= Research =&lt;br /&gt;
We need help improving our documentation about the area and other legalities.&lt;br /&gt;
* [[Mesh/Interviews with other meshers|Interviews]] - we interviewed other experienced meshers&lt;br /&gt;
* [[Mesh/Documentation|Other documentation]] - books, articles, wikis, blog posts.&lt;br /&gt;
* [[Mesh/Oakland|Oakland]] - information and resources pertaining to Oakland community organizations, wireless initiatives, policy and research initiatives&lt;br /&gt;
* [[Mesh/Other muni networking projects|Municipal projects]] - examples of progressive uses of municipal networks.&lt;br /&gt;
* [[Mesh/Decentralized FM/AM radio|Decentralized FM/AM radio]] - Bit of research on adding legal FM/AM transmitters to nodes.&lt;br /&gt;
&lt;br /&gt;
= Other Firmware and Networks =&lt;br /&gt;
&lt;br /&gt;
There are [[Mesh/Other mesh projects|other meshes]] around the world that have inspired us to make our own network! &lt;br /&gt;
* [[Mesh/wlan-slovenia]] (slovenia) - mesh network in Slovenia with the first cross-country links to Austria and Croatia! wlan-sl developers have been incredibly helpful mentors since the beginning of the sudomesh project, and are the founders of the Nodewatcher admin database as well as the Koruza wireless optical link project.&lt;br /&gt;
* [[Mesh/Freifunk]] (germany) - the creators of batman-adv and one of the longest-running mesh networks in the world.&lt;br /&gt;
* [http://guifi.net/en Guifi] (catalonia) - largest community network (using a variety of topologies) in the world - spanning upwards of 22,000 nodes across catalonia and spain. Guifi folks have also been incredibly supportive of sudo mesh and helpful in guiding the international movement toward community wireless networks.&lt;br /&gt;
* [[Mesh/Altermundi]] (argentina) - Connecting rural communities in Argentina to the Internet using long range point-to-point links connecting community mesh networks. Developers from Altermundi also contribute extensively to the Libremesh firmware and Librerouter, an open hardware mesh router in development.&lt;br /&gt;
* [[Mesh/Funkfeur]] (austria) - another old-school mesh network &lt;br /&gt;
* [[Mesh/Ninux]] (italy) - Spanning several cities across Italy, Ninux developers also contribute extensively to research on community networks, the dashboard admin interface NodeShot, and LibreMesh / Librerouter&lt;br /&gt;
* [[Mesh/Commotion]] - a very well-documented project from the Open Technology Institute creating a simple-to-deploy mesh firmware and setup for small community meshes around the world.&lt;br /&gt;
&lt;br /&gt;
= Web Resources =&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.tidepools.com Tidepools] - [[User:tunabananas|Jenny Ryan]] designed local use cases for a community mobile mapping application built to run on mesh networks.&lt;br /&gt;
* [https://wiki.projectmeshnet.org/Main_Page Project Meshnet] - Extensive wiki on the /r/darknet project, including extensive list of [https://wiki.projectmeshnet.org/Projects projects coordinating with them].&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Long-range_Wi-Fi#Notable_links Long Range Wifi] - Info on the longest-range wifi connections ever made.&lt;br /&gt;
* [https://github.com/adafruit/Adafruit-WebIDE Adafruit's Web IDE built for Raspberry Pi] but probably good for editing code on any device and ensuring it is managed with a code repo.  By default it uses [https://bitbucket.org bitbucket.org] but it could probably be configured for Github.&lt;br /&gt;
&lt;br /&gt;
''Please note that all contributions to Sudo Room may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here. You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see Sudo Room:Copyrights for details). Do not submit copyrighted work without permission!''&lt;br /&gt;
&lt;br /&gt;
[[Category:Projects]][[Category:Mesh]]&lt;/div&gt;</summary>
		<author><name>Gcg</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/How_to_help&amp;diff=11000</id>
		<title>Mesh/How to help</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/How_to_help&amp;diff=11000"/>
		<updated>2018-02-13T08:41:16Z</updated>

		<summary type="html">&lt;p&gt;Gcg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;You want to help build a mesh network in the East Bay? Great! Here's how you can help:&lt;br /&gt;
&lt;br /&gt;
= Participate! =&lt;br /&gt;
&lt;br /&gt;
*Join us at our [[Mesh#Meetup_Info|weekly meeting / hacknight]].&lt;br /&gt;
*Join the [http://lists.sudoroom.org/listinfo/mesh Mailing List!]&lt;br /&gt;
*Find us on IRC: #peoplesopen.net on [http://webchat.freenode.net/?channels=510pen Freenode IRC]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There's a lot of work ahead of us and most of it does not require any technical skills at all! Here are some examples:&lt;br /&gt;
&lt;br /&gt;
*Getting more people involved and excited about a community mesh!&lt;br /&gt;
*Graphic design&lt;br /&gt;
*Printing/posting posters / fliers&lt;br /&gt;
*Events organizing!&lt;br /&gt;
*Mounting routers on buildings (it's easy! we'll teach you how!)&lt;br /&gt;
*Grant application writing&lt;br /&gt;
*Developing and designing web apps&lt;br /&gt;
*OpenWRT administration&lt;br /&gt;
*Mesh protocol wrangling&lt;br /&gt;
*Electronics repair&lt;br /&gt;
&lt;br /&gt;
See our list of [[Mesh/ToDos|To Dos]] for tangible action items!&lt;br /&gt;
&lt;br /&gt;
= Host a node! =&lt;br /&gt;
&lt;br /&gt;
Want to have a mesh node on your house / apartment? We're constantly looking for more people to adopt nodes, especially in the San Antonio neighborhood of Oakland!&lt;br /&gt;
&lt;br /&gt;
Hosting a node involves the following:&lt;br /&gt;
&lt;br /&gt;
1. Letting us mount a router on your roof, or on the side of your house, or pointing out your window (they come in different sizes, but even the big ones are pretty small and unobtrusive) and run a single cable to your existing modem / access point / router.&lt;br /&gt;
&lt;br /&gt;
2. Paying for the routers power usage. They use only 8 watts of power, which is less than 5.9 kilowatt-hours a month, which at an average bay area price of 22.8 cents each comes to about $1.35 a month.&lt;br /&gt;
&lt;br /&gt;
3. Optionally paying for the router! $25 to $110 depending on distance to nearest other mesh node. If you buy a nice rooftop router then you'll get a better connection to the mesh!&lt;br /&gt;
&lt;br /&gt;
4. Optionally letting the mesh use part of your internet connection when you're not using it (strongly encouraged!).&lt;br /&gt;
&lt;br /&gt;
If you're interested in hosting a node then add your location to [http://meshmap.sudoroom.org/ our mesh map]! You can use a fake name if you like and your email address will only be visible to administrators.&lt;br /&gt;
&lt;br /&gt;
= Help our crowdfunding campaign! =&lt;br /&gt;
&lt;br /&gt;
Help us reach our $3,000 goal for our [https://www.wepay.com/xtewtey crowdfunding campaign], either by donating or by sending it out to your social network via facebook, twitter, email, etc.&lt;br /&gt;
&lt;br /&gt;
= Donate used hardware! =&lt;br /&gt;
&lt;br /&gt;
Do you have an old wifi access point or router lying around that you don't use? Donate it! You can leave it at [https://sudoroom.org/ sudo room] at 22nd and Broadway in Oakland. It is almost always open in the evenings. Just put a note on the router saying that it's for the mesh group. If we can, we'll turn it into a mesh node, and if the hardware is not compatible we'll sell it on ebay and use the money to fund the organization! &lt;br /&gt;
&lt;br /&gt;
If your access point or wifi router is listed on [http://wiki.openwrt.org/toh/start this page], then it's definitely compatible, and we can either turn it into a mesh node for you to run in your home or for a local cafe or community center.&lt;br /&gt;
&lt;br /&gt;
= Donate new hardware! =&lt;br /&gt;
&lt;br /&gt;
Buy us some high quality hardware from our [[Mesh/Wishlist|wishlist]]! Let us know if you're ok with us thanking you on our donors page. If you don't specify otherwise then we'll keep your donation anonymous.&lt;br /&gt;
&lt;br /&gt;
[[Mesh/where_to_ship|Shipping address for mesh donations]]&lt;/div&gt;</summary>
		<author><name>Gcg</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Makenode&amp;diff=10999</id>
		<title>Makenode</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Makenode&amp;diff=10999"/>
		<updated>2018-02-13T08:15:07Z</updated>

		<summary type="html">&lt;p&gt;Gcg: Gcg moved page Makenode to Mesh/Makenode: forgot mesh slash&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Mesh/Makenode]]&lt;/div&gt;</summary>
		<author><name>Gcg</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Makenode&amp;diff=10998</id>
		<title>Mesh/Makenode</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Makenode&amp;diff=10998"/>
		<updated>2018-02-13T08:15:07Z</updated>

		<summary type="html">&lt;p&gt;Gcg: Gcg moved page Makenode to Mesh/Makenode: forgot mesh slash&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;makenode is a script that finishes the configuration for People's Open nodes flashed with the sudowrt firmware, see https://github.com/sudomesh/makenode.&lt;br /&gt;
&lt;br /&gt;
This script is in the process of being deprecated, below is ongoing documentation this deprecation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Early alpha status. Things may break.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== What is does makenode change? ==&lt;br /&gt;
&lt;br /&gt;
=== configs/templates/files/opt/mesh/ ===&lt;br /&gt;
* tunnelhook -&amp;gt; callback called by config_load tunneldigger&lt;br /&gt;
&lt;br /&gt;
=== configs/templates/files/etc/ ===&lt;br /&gt;
&lt;br /&gt;
dropbear/ &lt;br /&gt;
* authorized keys, i.e. adds developer keys -&amp;gt; remove? or add more people? opt-in option in dashboard&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
config/ &lt;br /&gt;
* dhcp -&amp;gt; dnsmasq, mesh pool, private pool&lt;br /&gt;
* network -&amp;gt;  loopback, lan, adhoc, open, priv&lt;br /&gt;
* notdhcpserver -&amp;gt; extender node static ips&lt;br /&gt;
* polipo -&amp;gt; daemonised caching web proxy &lt;br /&gt;
* rpcd, -&amp;gt; sets ubus username and pass (from where?)&lt;br /&gt;
* snmpd -&amp;gt; managment/monitoring, pulls in operator email/name, presumably from makenode.js&lt;br /&gt;
* system -&amp;gt; sets hostname and log ip? from makenode.js?&lt;br /&gt;
* tunneldigger- &amp;gt; sets tunnel broker ip, l2tp interface, upstream, downstream bandwidth (related to bug #2), and tunnel hook callback script&lt;br /&gt;
* uhttpd -&amp;gt; http server, sets index directory, ubus, cgi-bin, locale&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
init.d/&lt;br /&gt;
* log -&amp;gt; copied from openwrt? purpose?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
iproute2/&lt;br /&gt;
* rt_tables -&amp;gt; moved to makenode by MaxB, unclear purpose? reverses values for ...?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
babeld.conf -&amp;gt; allows babel to run on l2tp, adhoc, and open interface, (could address bug #13 here)&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
banner -&amp;gt; presents version info, move back to firmware&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
dnsmasq.conf -&amp;gt; excepts interfaces l2tp0, adhoc0, eth0, why?&lt;/div&gt;</summary>
		<author><name>Gcg</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Makenode&amp;diff=10997</id>
		<title>Mesh/Makenode</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Makenode&amp;diff=10997"/>
		<updated>2018-02-13T08:04:00Z</updated>

		<summary type="html">&lt;p&gt;Gcg: Created page with &amp;quot;makenode is a script that finishes the configuration for People's Open nodes flashed with the sudowrt firmware, see https://github.com/sudomesh/makenode.  This script is in th...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;makenode is a script that finishes the configuration for People's Open nodes flashed with the sudowrt firmware, see https://github.com/sudomesh/makenode.&lt;br /&gt;
&lt;br /&gt;
This script is in the process of being deprecated, below is ongoing documentation this deprecation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Early alpha status. Things may break.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== What is does makenode change? ==&lt;br /&gt;
&lt;br /&gt;
=== configs/templates/files/opt/mesh/ ===&lt;br /&gt;
* tunnelhook -&amp;gt; callback called by config_load tunneldigger&lt;br /&gt;
&lt;br /&gt;
=== configs/templates/files/etc/ ===&lt;br /&gt;
&lt;br /&gt;
dropbear/ &lt;br /&gt;
* authorized keys, i.e. adds developer keys -&amp;gt; remove? or add more people? opt-in option in dashboard&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
config/ &lt;br /&gt;
* dhcp -&amp;gt; dnsmasq, mesh pool, private pool&lt;br /&gt;
* network -&amp;gt;  loopback, lan, adhoc, open, priv&lt;br /&gt;
* notdhcpserver -&amp;gt; extender node static ips&lt;br /&gt;
* polipo -&amp;gt; daemonised caching web proxy &lt;br /&gt;
* rpcd, -&amp;gt; sets ubus username and pass (from where?)&lt;br /&gt;
* snmpd -&amp;gt; managment/monitoring, pulls in operator email/name, presumably from makenode.js&lt;br /&gt;
* system -&amp;gt; sets hostname and log ip? from makenode.js?&lt;br /&gt;
* tunneldigger- &amp;gt; sets tunnel broker ip, l2tp interface, upstream, downstream bandwidth (related to bug #2), and tunnel hook callback script&lt;br /&gt;
* uhttpd -&amp;gt; http server, sets index directory, ubus, cgi-bin, locale&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
init.d/&lt;br /&gt;
* log -&amp;gt; copied from openwrt? purpose?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
iproute2/&lt;br /&gt;
* rt_tables -&amp;gt; moved to makenode by MaxB, unclear purpose? reverses values for ...?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
babeld.conf -&amp;gt; allows babel to run on l2tp, adhoc, and open interface, (could address bug #13 here)&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
banner -&amp;gt; presents version info, move back to firmware&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
dnsmasq.conf -&amp;gt; excepts interfaces l2tp0, adhoc0, eth0, why?&lt;/div&gt;</summary>
		<author><name>Gcg</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh&amp;diff=10996</id>
		<title>Mesh</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh&amp;diff=10996"/>
		<updated>2018-02-11T23:04:34Z</updated>

		<summary type="html">&lt;p&gt;Gcg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#setlogo:Meshlogo.png}}&lt;br /&gt;
[[File:Sudomesh.jpg|350px]]&lt;br /&gt;
[[File:SudoMesh Node.png|frameless|right|300px]]&lt;br /&gt;
&lt;br /&gt;
'''sudomesh is a group of volunteers operating out of the [https://sudoroom.org sudo room] hackerspace at the [https://omnicommons.org Omni Commons] - a collective of collectives stewarding a large community space in Oakland, California. We develop software and assemble hardware systems to help build open community networks like the [https://peoplesopen.net People's Open Network], a community-owned and -operated non-profit internet infrastructure in Oakland.'''&lt;br /&gt;
&lt;br /&gt;
We're a people-powered project. That means that anyone can join the network if they're willing to contribute by [https://github.com/sudomesh/bugs/issues/new reporting bugs], improving [https://github.com/sudomesh software], fixing hardware, [https://sudoroom.org/wiki/Mesh/WalkThrough setting up a node], [https://peoplesopen.net/blog/new-node-in-the-berkeley-hills/ installing rooftop nodes], telling your friends about us, [https://peoplesopen.net/blog/build-your-own-internet-workshop/ joining for a workshop], bringing pizza to a hack session, donating  [[Mesh/Wishlist|equipment]]/[https://www.patreon.com/peoplesopennet money]/[https://blockchain.info/address/12RxU4DpLpdWcmEBn7Tj325CCXBwt5i9Hc Bitcoin], learning with us about how the internet works, or just being patient if something is broken :)&lt;br /&gt;
&lt;br /&gt;
You can read about our progress on our [https://peoplesopen.net/blog/ blog]. &lt;br /&gt;
&lt;br /&gt;
'''Interested in learning more and exploring?''' Check out our [[#Join Us|Join Us]] section. You do not need to be technically skilled to be part of this project. We need people willing to mount gear on rooftops, folks who want to do public outreach, graphic design artists, film-makers, documentarians and so much more! Show up at a monthly general meeting and get involved!&lt;br /&gt;
&amp;lt;center&amp;gt;{{Mesh nav}}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Mesh_Oakland_High_Res.png|225px|right]]&lt;br /&gt;
----&lt;br /&gt;
= Intro =&lt;br /&gt;
Imagine if the wifi router in your home connected to the wifi routers in your neighbours' homes and they again connected to their neighbours to form a huge free wireless network spanning the city! That's exactly what a [https://en.wikipedia.org/wiki/Mesh_networking mesh network] is, or at least what it can be. Roads and telephone poles are owned by government or private interests and laying down cable is expensive, but by using wireless signals that hop from building to building we can create a community-owned and -operated, free-as-in-freedom alternative to corporate Internet Service Providers. Community wireless mesh networks are growing around the world, creating local 'internets' that support Net Neutrality and community control of critical infrastructure. &lt;br /&gt;
&lt;br /&gt;
sudo mesh is a non-profit organization consisting of a group of unpaid volunteers who are building the People's Open Network. Our mission is building open technology that helps to connect our neighbors, support local businesses, and enable community collaboration and cultural production. In the event of a natural disaster or state censorship, a community mesh network can be a resilient means of communication and sharing of information.&lt;br /&gt;
&lt;br /&gt;
We are spending a lot of time developing [https://github.com/sudomesh/ software] to make it cheap and easy for anyone to be part of People's Open Network, regardless of technical skill.&lt;br /&gt;
&lt;br /&gt;
= Join Us =&lt;br /&gt;
&lt;br /&gt;
Ways to participate:&lt;br /&gt;
&lt;br /&gt;
* Join the [http://lists.sudoroom.org/listinfo/mesh email list]&lt;br /&gt;
* Follow us on [https://twitter.com/sudomesh twitter] and like us on [https://www.facebook.com/sudomesh facebook].&lt;br /&gt;
* Learn more at our general meetings, which are the last Tuesday of every month at [[Getting_there|sudo room]] at 7:30 pm. We have focus groups and collaborate on different parts of the project - from design to software development, documentation to hardware hacking, community outreach and climbing rooftops to mount nodes!&lt;br /&gt;
* We have '''weekly hacknights''' on the Tuesdays that are not general meetings, 7:30-11:00pm at [[Getting_there|sudo room]], but at these events we do not spend time introducing new people to the project. If you do not feel ready to jump right in and start contributing, please show up for our general meetings (mentioned above) where we specifically take time to intro new volunteers and answer questions :D&lt;br /&gt;
* Chat with us on [http://www.irchelp.org/irchelp/irctutorial.html IRC]: [http://webchat.freenode.net/?channels=peoplesopen.net #peoplesopen.net] (see also [[IRC | IRC Intro]])&lt;br /&gt;
* We generally collaborate on [https://pad.riseup.net/p/sudomesh meeting notes] at each meeting. Look at our archive of past [[Mesh/Minutes|meeting minutes]]!&lt;br /&gt;
* Contribute to the network by installing a mesh node at your location using our handy [https://sudoroom.org/wiki/Mesh/WalkThrough Mesh Node Setup Walkthrough]. This is especially helpful for those who are within range of an existing node (seen as a wireless SSID named &amp;quot;peoplesopen.net&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
If you want to join the mesh you'll need a mesh router at your home! Currently the best way to get one is to show up at our monthly general meeting as described above :)&lt;br /&gt;
&lt;br /&gt;
= How to Help =&lt;br /&gt;
&lt;br /&gt;
We need more people on the network to improve the quality of the service. When you setup a node, you improve the service for everybody on the network and give more access to your community. We encourage participants to ask their communities to join their networks and create distributed services for them. We have a [[Mesh/User_Guide|user guide]] to help you get on the network!&lt;br /&gt;
&lt;br /&gt;
*Check out our [[Mesh/ToDos|ToDo list]]&lt;br /&gt;
*Support us with a small monthly donation on [https://www.patreon.com/peoplesopennet Patreon], here's [[Mesh/Purchases|how we spend it]].&lt;br /&gt;
*Send bitcoins to our wallet address: {{bitcoin wallet}}&lt;br /&gt;
*Check out our [[Mesh/Wishlist|wishlist]], we have requests! &lt;br /&gt;
*Come to our meetings in Oakland! (listed above)&lt;br /&gt;
*Improve our documentation&lt;br /&gt;
*Talk to your community about joining the mesh - here are some [[Mesh/Outreach|resources]] for doing so!&lt;br /&gt;
&lt;br /&gt;
== Developers ==&lt;br /&gt;
&lt;br /&gt;
We need hardware and software engineers to help us with our code. We have an overview of [[Mesh/Technical_Overview|technical documentation]] that will be helpful in understanding the network.&lt;br /&gt;
&lt;br /&gt;
If you want to immediately help, check out [https://github.com/sudomesh our code] or [https://github.com/sudomesh/sudowrt-firmware/milestones look at our remaining issues for upcoming milestones].&lt;br /&gt;
&lt;br /&gt;
Here are some of the projects that need attention:&lt;br /&gt;
&lt;br /&gt;
* [[Mesh/Firmware|Firmware]] - The sudowrt firmware&lt;br /&gt;
* [https://github.com/sudomesh/sudowrt-web-ui sudowrt-web-ui] - The new and improved web admin UI for sudowrt nodes&lt;br /&gt;
* [https://github.com/sudomesh/ubus-https-forwarder ubus-https-forwarder] - Allow management of extender nodes from home node web UI&lt;br /&gt;
* [https://github.com/sudomesh/service-browser The Service Browser] - Web UI for browsing mesh services&lt;br /&gt;
* [[Mesh/Distributed Services|Mesh Services]] - Which services should we provide?&lt;br /&gt;
&lt;br /&gt;
== Designers == &lt;br /&gt;
&lt;br /&gt;
We need artists and designers to make things look nice! We have [[Mesh/Design|design schemes]] we already use, but we're always looking to improve it. We need to improve our presentation content and [[Mesh/Diagrams|diagrams]] too! We've been focused on these areas:&lt;br /&gt;
* [[Mesh/Presentations]] - Past presentations, talks, workshops, tutorials and videos&lt;br /&gt;
* [[Mesh/Diagrams|Diagrams]] - Diagrams outlining the network topology and technical stack&lt;br /&gt;
* [[Mesh/Design|Design]] - Website &amp;amp; logo design; swag for enthusiasts; and marketing inspiration.&lt;br /&gt;
&lt;br /&gt;
= Frequently Asked Questions (FAQs)=&lt;br /&gt;
* [[Mesh/Decisions|Decisions]] - What decisions have we made, and why?&lt;br /&gt;
* [[Mesh/Funding|Funding]] - How the heck do we fund this thing?&lt;br /&gt;
* [[Mesh/Legal|Legal]] - How do we use exit nodes, relays and legal structures to protect node owners and ourselves?&lt;br /&gt;
* [[Mesh/Hosting|Hosting]] - How are we hosting and what does it cost?&lt;br /&gt;
* [[Mesh/Backup|Backup]] - How do we handle backups?&lt;br /&gt;
* [[Mesh/Server security|Server Security]] - How do we ensure server security?&lt;br /&gt;
&lt;br /&gt;
= Logistics =&lt;br /&gt;
* [[Mesh/Minutes|Meeting Minutes]] - Notes from our weekly meetings dating back to January 2013.&lt;br /&gt;
* [[Mesh/Inventory|Inventory]] - Continually-updated inventory of our hardware and gear.&lt;br /&gt;
* [[Mesh/Taxes|Taxes]] - Filed taxes for the sudo mesh non-profit&lt;br /&gt;
&lt;br /&gt;
= Research =&lt;br /&gt;
We need help improving our documentation about the area and other legalities.&lt;br /&gt;
* [[Mesh/Interviews with other meshers|Interviews]] - we interviewed other experienced meshers&lt;br /&gt;
* [[Mesh/Documentation|Other documentation]] - books, articles, wikis, blog posts.&lt;br /&gt;
* [[Mesh/Oakland|Oakland]] - information and resources pertaining to Oakland community organizations, wireless initiatives, policy and research initiatives&lt;br /&gt;
* [[Mesh/Other muni networking projects|Municipal projects]] - examples of progressive uses of municipal networks.&lt;br /&gt;
* [[Mesh/Decentralized FM/AM radio|Decentralized FM/AM radio]] - Bit of research on adding legal FM/AM transmitters to nodes.&lt;br /&gt;
&lt;br /&gt;
= Other Firmware and Networks =&lt;br /&gt;
&lt;br /&gt;
There are [[Mesh/Other mesh projects|other meshes]] around the world that have inspired us to make our own network! &lt;br /&gt;
* [[Mesh/wlan-slovenia]] (slovenia) - mesh network in Slovenia with the first cross-country links to Austria and Croatia! wlan-sl developers have been incredibly helpful mentors since the beginning of the sudomesh project, and are the founders of the Nodewatcher admin database as well as the Koruza wireless optical link project.&lt;br /&gt;
* [[Mesh/Freifunk]] (germany) - the creators of batman-adv and one of the longest-running mesh networks in the world.&lt;br /&gt;
* [http://guifi.net/en Guifi] (catalonia) - largest community network (using a variety of topologies) in the world - spanning upwards of 22,000 nodes across catalonia and spain. Guifi folks have also been incredibly supportive of sudo mesh and helpful in guiding the international movement toward community wireless networks.&lt;br /&gt;
* [[Mesh/Altermundi]] (argentina) - Connecting rural communities in Argentina to the Internet using long range point-to-point links connecting community mesh networks. Developers from Altermundi also contribute extensively to the Libremesh firmware and Librerouter, an open hardware mesh router in development.&lt;br /&gt;
* [[Mesh/Funkfeur]] (austria) - another old-school mesh network &lt;br /&gt;
* [[Mesh/Ninux]] (italy) - Spanning several cities across Italy, Ninux developers also contribute extensively to research on community networks, the dashboard admin interface NodeShot, and LibreMesh / Librerouter&lt;br /&gt;
* [[Mesh/Commotion]] - a very well-documented project from the Open Technology Institute creating a simple-to-deploy mesh firmware and setup for small community meshes around the world.&lt;br /&gt;
&lt;br /&gt;
= Web Resources =&lt;br /&gt;
&lt;br /&gt;
* [http://510pen.org 510pen] - East Bay community wireless mesh network spawned in 2009 by [[User:mfb|Mark Burdett]]&lt;br /&gt;
* [http://wiki.tidepools.com Tidepools] - [[User:tunabananas|Jenny Ryan]] designed local use cases for a community mobile mapping application built to run on mesh networks.&lt;br /&gt;
* [https://wiki.projectmeshnet.org/Main_Page Project Meshnet] - Extensive wiki on the /r/darknet project, including extensive list of [https://wiki.projectmeshnet.org/Projects projects coordinating with them].&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Long-range_Wi-Fi#Notable_links Long Range Wifi] - Info on the longest-range wifi connections ever made.&lt;br /&gt;
* [https://github.com/adafruit/Adafruit-WebIDE Adafruit's Web IDE built for Raspberry Pi] but probably good for editing code on any device and ensuring it is managed with a code repo.  By default it uses [https://bitbucket.org bitbucket.org] but it could probably be configured for Github.&lt;br /&gt;
&lt;br /&gt;
''Please note that all contributions to Sudo Room may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here. You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see Sudo Room:Copyrights for details). Do not submit copyrighted work without permission!''&lt;br /&gt;
&lt;br /&gt;
[[Category:Projects]][[Category:Mesh]]&lt;/div&gt;</summary>
		<author><name>Gcg</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh&amp;diff=10995</id>
		<title>Mesh</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh&amp;diff=10995"/>
		<updated>2018-02-11T23:03:05Z</updated>

		<summary type="html">&lt;p&gt;Gcg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#setlogo:Meshlogo.png}}&lt;br /&gt;
[[File:Sudomesh.jpg|350px]]&lt;br /&gt;
[[File:SudoMesh Node.png|frameless|right|300px]]&lt;br /&gt;
&lt;br /&gt;
'''sudomesh is a group of volunteers operating out of the [https://sudoroom.org sudo room] hackerspace at the [https://omnicommons.org Omni Commons] - a collective of collectives stewarding a large community space in Oakland, California. We develop software and assemble hardware systems to help build open community networks like the [https://peoplesopen.net People's Open Network], a community-owned and -operated non-profit internet infrastructure in Oakland.'''&lt;br /&gt;
&lt;br /&gt;
We're a people-powered project. That means that anyone can join the network if they're willing to contribute by [https://github.com/sudomesh/bugs/issues/new reporting bugs], improving [https://github.com/sudomesh software], fixing hardware, [https://sudoroom.org/wiki/Mesh/WalkThrough setting up a node], [https://peoplesopen.net/blog/downtown-oakland-access-point/ installing rooftop nodes], telling your friends about us, [https://peoplesopen.net/blog/build-your-own-internet-workshop/ joining for a workshop], bringing pizza to a hack session, donating  [[Mesh/Wishlist|equipment]]/[https://www.patreon.com/peoplesopennet money]/[https://blockchain.info/address/12RxU4DpLpdWcmEBn7Tj325CCXBwt5i9Hc Bitcoin], learning with us about how the internet works, or just being patient if something is broken :)&lt;br /&gt;
&lt;br /&gt;
You can read about our progress on our [https://peoplesopen.net/blog/ blog]. &lt;br /&gt;
&lt;br /&gt;
'''Interested in learning more and exploring?''' Check out our [[#Join Us|Join Us]] section. You do not need to be technically skilled to be part of this project. We need people willing to mount gear on rooftops, folks who want to do public outreach, graphic design artists, film-makers, documentarians and so much more! Show up at a monthly general meeting and get involved!&lt;br /&gt;
&amp;lt;center&amp;gt;{{Mesh nav}}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Mesh_Oakland_High_Res.png|225px|right]]&lt;br /&gt;
----&lt;br /&gt;
= Intro =&lt;br /&gt;
Imagine if the wifi router in your home connected to the wifi routers in your neighbours' homes and they again connected to their neighbours to form a huge free wireless network spanning the city! That's exactly what a [https://en.wikipedia.org/wiki/Mesh_networking mesh network] is, or at least what it can be. Roads and telephone poles are owned by government or private interests and laying down cable is expensive, but by using wireless signals that hop from building to building we can create a community-owned and -operated, free-as-in-freedom alternative to corporate Internet Service Providers. Community wireless mesh networks are growing around the world, creating local 'internets' that support Net Neutrality and community control of critical infrastructure. &lt;br /&gt;
&lt;br /&gt;
sudo mesh is a non-profit organization consisting of a group of unpaid volunteers who are building the People's Open Network. Our mission is building open technology that helps to connect our neighbors, support local businesses, and enable community collaboration and cultural production. In the event of a natural disaster or state censorship, a community mesh network can be a resilient means of communication and sharing of information.&lt;br /&gt;
&lt;br /&gt;
We are spending a lot of time developing [https://github.com/sudomesh/ software] to make it cheap and easy for anyone to be part of People's Open Network, regardless of technical skill.&lt;br /&gt;
&lt;br /&gt;
= Join Us =&lt;br /&gt;
&lt;br /&gt;
Ways to participate:&lt;br /&gt;
&lt;br /&gt;
* Join the [http://lists.sudoroom.org/listinfo/mesh email list]&lt;br /&gt;
* Follow us on [https://twitter.com/sudomesh twitter] and like us on [https://www.facebook.com/sudomesh facebook].&lt;br /&gt;
* Learn more at our general meetings, which are the last Tuesday of every month at [[Getting_there|sudo room]] at 7:30 pm. We have focus groups and collaborate on different parts of the project - from design to software development, documentation to hardware hacking, community outreach and climbing rooftops to mount nodes!&lt;br /&gt;
* We have '''weekly hacknights''' on the Tuesdays that are not general meetings, 7:30-11:00pm at [[Getting_there|sudo room]], but at these events we do not spend time introducing new people to the project. If you do not feel ready to jump right in and start contributing, please show up for our general meetings (mentioned above) where we specifically take time to intro new volunteers and answer questions :D&lt;br /&gt;
* Chat with us on [http://www.irchelp.org/irchelp/irctutorial.html IRC]: [http://webchat.freenode.net/?channels=peoplesopen.net #peoplesopen.net] (see also [[IRC | IRC Intro]])&lt;br /&gt;
* We generally collaborate on [https://pad.riseup.net/p/sudomesh meeting notes] at each meeting. Look at our archive of past [[Mesh/Minutes|meeting minutes]]!&lt;br /&gt;
* Contribute to the network by installing a mesh node at your location using our handy [https://sudoroom.org/wiki/Mesh/WalkThrough Mesh Node Setup Walkthrough]. This is especially helpful for those who are within range of an existing node (seen as a wireless SSID named &amp;quot;peoplesopen.net&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
If you want to join the mesh you'll need a mesh router at your home! Currently the best way to get one is to show up at our monthly general meeting as described above :)&lt;br /&gt;
&lt;br /&gt;
= How to Help =&lt;br /&gt;
&lt;br /&gt;
We need more people on the network to improve the quality of the service. When you setup a node, you improve the service for everybody on the network and give more access to your community. We encourage participants to ask their communities to join their networks and create distributed services for them. We have a [[Mesh/User_Guide|user guide]] to help you get on the network!&lt;br /&gt;
&lt;br /&gt;
*Check out our [[Mesh/ToDos|ToDo list]]&lt;br /&gt;
*Support us with a small monthly donation on [https://www.patreon.com/peoplesopennet Patreon], here's [[Mesh/Purchases|how we spend it]].&lt;br /&gt;
*Send bitcoins to our wallet address: {{bitcoin wallet}}&lt;br /&gt;
*Check out our [[Mesh/Wishlist|wishlist]], we have requests! &lt;br /&gt;
*Come to our meetings in Oakland! (listed above)&lt;br /&gt;
*Improve our documentation&lt;br /&gt;
*Talk to your community about joining the mesh - here are some [[Mesh/Outreach|resources]] for doing so!&lt;br /&gt;
&lt;br /&gt;
== Developers ==&lt;br /&gt;
&lt;br /&gt;
We need hardware and software engineers to help us with our code. We have an overview of [[Mesh/Technical_Overview|technical documentation]] that will be helpful in understanding the network.&lt;br /&gt;
&lt;br /&gt;
If you want to immediately help, check out [https://github.com/sudomesh our code] or [https://github.com/sudomesh/sudowrt-firmware/milestones look at our remaining issues for upcoming milestones].&lt;br /&gt;
&lt;br /&gt;
Here are some of the projects that need attention:&lt;br /&gt;
&lt;br /&gt;
* [[Mesh/Firmware|Firmware]] - The sudowrt firmware&lt;br /&gt;
* [https://github.com/sudomesh/sudowrt-web-ui sudowrt-web-ui] - The new and improved web admin UI for sudowrt nodes&lt;br /&gt;
* [https://github.com/sudomesh/ubus-https-forwarder ubus-https-forwarder] - Allow management of extender nodes from home node web UI&lt;br /&gt;
* [https://github.com/sudomesh/service-browser The Service Browser] - Web UI for browsing mesh services&lt;br /&gt;
* [[Mesh/Distributed Services|Mesh Services]] - Which services should we provide?&lt;br /&gt;
&lt;br /&gt;
== Designers == &lt;br /&gt;
&lt;br /&gt;
We need artists and designers to make things look nice! We have [[Mesh/Design|design schemes]] we already use, but we're always looking to improve it. We need to improve our presentation content and [[Mesh/Diagrams|diagrams]] too! We've been focused on these areas:&lt;br /&gt;
* [[Mesh/Presentations]] - Past presentations, talks, workshops, tutorials and videos&lt;br /&gt;
* [[Mesh/Diagrams|Diagrams]] - Diagrams outlining the network topology and technical stack&lt;br /&gt;
* [[Mesh/Design|Design]] - Website &amp;amp; logo design; swag for enthusiasts; and marketing inspiration.&lt;br /&gt;
&lt;br /&gt;
= Frequently Asked Questions (FAQs)=&lt;br /&gt;
* [[Mesh/Decisions|Decisions]] - What decisions have we made, and why?&lt;br /&gt;
* [[Mesh/Funding|Funding]] - How the heck do we fund this thing?&lt;br /&gt;
* [[Mesh/Legal|Legal]] - How do we use exit nodes, relays and legal structures to protect node owners and ourselves?&lt;br /&gt;
* [[Mesh/Hosting|Hosting]] - How are we hosting and what does it cost?&lt;br /&gt;
* [[Mesh/Backup|Backup]] - How do we handle backups?&lt;br /&gt;
* [[Mesh/Server security|Server Security]] - How do we ensure server security?&lt;br /&gt;
&lt;br /&gt;
= Logistics =&lt;br /&gt;
* [[Mesh/Minutes|Meeting Minutes]] - Notes from our weekly meetings dating back to January 2013.&lt;br /&gt;
* [[Mesh/Inventory|Inventory]] - Continually-updated inventory of our hardware and gear.&lt;br /&gt;
* [[Mesh/Taxes|Taxes]] - Filed taxes for the sudo mesh non-profit&lt;br /&gt;
&lt;br /&gt;
= Research =&lt;br /&gt;
We need help improving our documentation about the area and other legalities.&lt;br /&gt;
* [[Mesh/Interviews with other meshers|Interviews]] - we interviewed other experienced meshers&lt;br /&gt;
* [[Mesh/Documentation|Other documentation]] - books, articles, wikis, blog posts.&lt;br /&gt;
* [[Mesh/Oakland|Oakland]] - information and resources pertaining to Oakland community organizations, wireless initiatives, policy and research initiatives&lt;br /&gt;
* [[Mesh/Other muni networking projects|Municipal projects]] - examples of progressive uses of municipal networks.&lt;br /&gt;
* [[Mesh/Decentralized FM/AM radio|Decentralized FM/AM radio]] - Bit of research on adding legal FM/AM transmitters to nodes.&lt;br /&gt;
&lt;br /&gt;
= Other Firmware and Networks =&lt;br /&gt;
&lt;br /&gt;
There are [[Mesh/Other mesh projects|other meshes]] around the world that have inspired us to make our own network! &lt;br /&gt;
* [[Mesh/wlan-slovenia]] (slovenia) - mesh network in Slovenia with the first cross-country links to Austria and Croatia! wlan-sl developers have been incredibly helpful mentors since the beginning of the sudomesh project, and are the founders of the Nodewatcher admin database as well as the Koruza wireless optical link project.&lt;br /&gt;
* [[Mesh/Freifunk]] (germany) - the creators of batman-adv and one of the longest-running mesh networks in the world.&lt;br /&gt;
* [http://guifi.net/en Guifi] (catalonia) - largest community network (using a variety of topologies) in the world - spanning upwards of 22,000 nodes across catalonia and spain. Guifi folks have also been incredibly supportive of sudo mesh and helpful in guiding the international movement toward community wireless networks.&lt;br /&gt;
* [[Mesh/Altermundi]] (argentina) - Connecting rural communities in Argentina to the Internet using long range point-to-point links connecting community mesh networks. Developers from Altermundi also contribute extensively to the Libremesh firmware and Librerouter, an open hardware mesh router in development.&lt;br /&gt;
* [[Mesh/Funkfeur]] (austria) - another old-school mesh network &lt;br /&gt;
* [[Mesh/Ninux]] (italy) - Spanning several cities across Italy, Ninux developers also contribute extensively to research on community networks, the dashboard admin interface NodeShot, and LibreMesh / Librerouter&lt;br /&gt;
* [[Mesh/Commotion]] - a very well-documented project from the Open Technology Institute creating a simple-to-deploy mesh firmware and setup for small community meshes around the world.&lt;br /&gt;
&lt;br /&gt;
= Web Resources =&lt;br /&gt;
&lt;br /&gt;
* [http://510pen.org 510pen] - East Bay community wireless mesh network spawned in 2009 by [[User:mfb|Mark Burdett]]&lt;br /&gt;
* [http://wiki.tidepools.com Tidepools] - [[User:tunabananas|Jenny Ryan]] designed local use cases for a community mobile mapping application built to run on mesh networks.&lt;br /&gt;
* [https://wiki.projectmeshnet.org/Main_Page Project Meshnet] - Extensive wiki on the /r/darknet project, including extensive list of [https://wiki.projectmeshnet.org/Projects projects coordinating with them].&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Long-range_Wi-Fi#Notable_links Long Range Wifi] - Info on the longest-range wifi connections ever made.&lt;br /&gt;
* [https://github.com/adafruit/Adafruit-WebIDE Adafruit's Web IDE built for Raspberry Pi] but probably good for editing code on any device and ensuring it is managed with a code repo.  By default it uses [https://bitbucket.org bitbucket.org] but it could probably be configured for Github.&lt;br /&gt;
&lt;br /&gt;
''Please note that all contributions to Sudo Room may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here. You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see Sudo Room:Copyrights for details). Do not submit copyrighted work without permission!''&lt;br /&gt;
&lt;br /&gt;
[[Category:Projects]][[Category:Mesh]]&lt;/div&gt;</summary>
		<author><name>Gcg</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh&amp;diff=10994</id>
		<title>Mesh</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh&amp;diff=10994"/>
		<updated>2018-02-11T22:46:10Z</updated>

		<summary type="html">&lt;p&gt;Gcg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#setlogo:Meshlogo.png}}&lt;br /&gt;
[[File:Sudomesh.jpg|350px]]&lt;br /&gt;
[[File:SudoMesh Node.png|frameless|right|300px]]&lt;br /&gt;
&lt;br /&gt;
'''sudomesh is a group of volunteers operating out of the [https://sudoroom.org sudo room] hackerspace at the [https://omnicommons.org Omni Commons] - a collective of collectives stewarding a large community space in Oakland, California. We develop software and assemble hardware systems to help build open community networks like the [https://peoplesopen.net People's Open Network], a community-owned and -operated non-profit internet infrastructure in Oakland.'''&lt;br /&gt;
&lt;br /&gt;
We're a people-powered project. That means that anyone can join the network if they're willing to contribute by [https://github.com/sudomesh/bugs/issues/new reporting bugs], improving [https://github.com/sudmesh software], fixing hardware, [https://sudoroom.org/wiki/Mesh/WalkThrough setting up a node], [https://peoplesopen.net/blog/downtown-oakland-access-point/ installing rooftop nodes], telling your friends about us, [https://peoplesopen.net/blog/build-your-own-internet-workshop/ joining for a workshop], bringing pizza to a hack session, donating  [[Mesh/Wishlist|equipment]]/[https://www.patreon.com/peoplesopennet money]/[https://blockchain.info/address/12RxU4DpLpdWcmEBn7Tj325CCXBwt5i9Hc Bitcoin], learning with us about how the internet works, or just being patient if something is broken :)&lt;br /&gt;
&lt;br /&gt;
You can read about our progress on our [https://peoplesopen.net/blog/ blog]. &lt;br /&gt;
&lt;br /&gt;
'''Interested in learning more and exploring?''' Check out our [[#Join Us|Join Us]] section. You do not need to be technically skilled to be part of this project. We need people willing to mount gear on rooftops, folks who want to do public outreach, graphic design artists, film-makers, documentarians and so much more! Show up at a monthly general meeting and get involved!&lt;br /&gt;
&amp;lt;center&amp;gt;{{Mesh nav}}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Mesh_Oakland_High_Res.png|225px|right]]&lt;br /&gt;
----&lt;br /&gt;
= Intro =&lt;br /&gt;
Imagine if the wifi router in your home connected to the wifi routers in your neighbours' homes and they again connected to their neighbours to form a huge free wireless network spanning the city! That's exactly what a [https://en.wikipedia.org/wiki/Mesh_networking mesh network] is, or at least what it can be. Roads and telephone poles are owned by government or private interests and laying down cable is expensive, but by using wireless signals that hop from building to building we can create a community-owned and -operated, free-as-in-freedom alternative to corporate Internet Service Providers. Community wireless mesh networks are growing around the world, creating local 'internets' that support Net Neutrality and community control of critical infrastructure. &lt;br /&gt;
&lt;br /&gt;
sudo mesh is a non-profit organization consisting of a group of unpaid volunteers who are building the People's Open Network. Our mission is building open technology that helps to connect our neighbors, support local businesses, and enable community collaboration and cultural production. In the event of a natural disaster or state censorship, a community mesh network can be a resilient means of communication and sharing of information.&lt;br /&gt;
&lt;br /&gt;
We are spending a lot of time developing [https://github.com/sudomesh/ software] to make it cheap and easy for anyone to be part of People's Open Network, regardless of technical skill.&lt;br /&gt;
&lt;br /&gt;
= Join Us =&lt;br /&gt;
&lt;br /&gt;
Ways to participate:&lt;br /&gt;
&lt;br /&gt;
* Join the [http://lists.sudoroom.org/listinfo/mesh email list]&lt;br /&gt;
* Follow us on [https://twitter.com/sudomesh twitter] and like us on [https://www.facebook.com/sudomesh facebook].&lt;br /&gt;
* Learn more at our general meetings, which are the last Tuesday of every month at [[Getting_there|sudo room]] at 7:30 pm. We have focus groups and collaborate on different parts of the project - from design to software development, documentation to hardware hacking, community outreach and climbing rooftops to mount nodes!&lt;br /&gt;
* We have '''weekly hacknights''' on the Tuesdays that are not general meetings, 7:30-11:00pm at [[Getting_there|sudo room]], but at these events we do not spend time introducing new people to the project. If you do not feel ready to jump right in and start contributing, please show up for our general meetings (mentioned above) where we specifically take time to intro new volunteers and answer questions :D&lt;br /&gt;
* Chat with us on [http://www.irchelp.org/irchelp/irctutorial.html IRC]: [http://webchat.freenode.net/?channels=peoplesopen.net #peoplesopen.net] (see also [[IRC | IRC Intro]])&lt;br /&gt;
* We generally collaborate on [https://pad.riseup.net/p/sudomesh meeting notes] at each meeting. Look at our archive of past [[Mesh/Minutes|meeting minutes]]!&lt;br /&gt;
* Contribute to the network by installing a mesh node at your location using our handy [https://sudoroom.org/wiki/Mesh/WalkThrough Mesh Node Setup Walkthrough]. This is especially helpful for those who are within range of an existing node (seen as a wireless SSID named &amp;quot;peoplesopen.net&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
If you want to join the mesh you'll need a mesh router at your home! Currently the best way to get one is to show up at our monthly general meeting as described above :)&lt;br /&gt;
&lt;br /&gt;
= How to Help =&lt;br /&gt;
&lt;br /&gt;
We need more people on the network to improve the quality of the service. When you setup a node, you improve the service for everybody on the network and give more access to your community. We encourage participants to ask their communities to join their networks and create distributed services for them. We have a [[Mesh/User_Guide|user guide]] to help you get on the network!&lt;br /&gt;
&lt;br /&gt;
*Check out our [[Mesh/ToDos|ToDo list]]&lt;br /&gt;
*Support us with a small monthly donation on [https://www.patreon.com/peoplesopennet Patreon], here's [[Mesh/Purchases|how we spend it]].&lt;br /&gt;
*Send bitcoins to our wallet address: {{bitcoin wallet}}&lt;br /&gt;
*Check out our [[Mesh/Wishlist|wishlist]], we have requests! &lt;br /&gt;
*Come to our meetings in Oakland! (listed above)&lt;br /&gt;
*Improve our documentation&lt;br /&gt;
*Talk to your community about joining the mesh - here are some [[Mesh/Outreach|resources]] for doing so!&lt;br /&gt;
&lt;br /&gt;
== Developers ==&lt;br /&gt;
&lt;br /&gt;
We need hardware and software engineers to help us with our code. We have an overview of [[Mesh/Technical_Overview|technical documentation]] that will be helpful in understanding the network.&lt;br /&gt;
&lt;br /&gt;
If you want to immediately help, check out [https://github.com/sudomesh our code] or [https://github.com/sudomesh/sudowrt-firmware/milestones look at our remaining issues for upcoming milestones].&lt;br /&gt;
&lt;br /&gt;
Here are some of the projects that need attention:&lt;br /&gt;
&lt;br /&gt;
* [[Mesh/Firmware|Firmware]] - The sudowrt firmware&lt;br /&gt;
* [https://github.com/sudomesh/sudowrt-web-ui sudowrt-web-ui] - The new and improved web admin UI for sudowrt nodes&lt;br /&gt;
* [https://github.com/sudomesh/ubus-https-forwarder ubus-https-forwarder] - Allow management of extender nodes from home node web UI&lt;br /&gt;
* [https://github.com/sudomesh/service-browser The Service Browser] - Web UI for browsing mesh services&lt;br /&gt;
* [[Mesh/Distributed Services|Mesh Services]] - Which services should we provide?&lt;br /&gt;
&lt;br /&gt;
== Designers == &lt;br /&gt;
&lt;br /&gt;
We need artists and designers to make things look nice! We have [[Mesh/Design|design schemes]] we already use, but we're always looking to improve it. We need to improve our presentation content and [[Mesh/Diagrams|diagrams]] too! We've been focused on these areas:&lt;br /&gt;
* [[Mesh/Presentations]] - Past presentations, talks, workshops, tutorials and videos&lt;br /&gt;
* [[Mesh/Diagrams|Diagrams]] - Diagrams outlining the network topology and technical stack&lt;br /&gt;
* [[Mesh/Design|Design]] - Website &amp;amp; logo design; swag for enthusiasts; and marketing inspiration.&lt;br /&gt;
&lt;br /&gt;
= Frequently Asked Questions (FAQs)=&lt;br /&gt;
* [[Mesh/Decisions|Decisions]] - What decisions have we made, and why?&lt;br /&gt;
* [[Mesh/Funding|Funding]] - How the heck do we fund this thing?&lt;br /&gt;
* [[Mesh/Legal|Legal]] - How do we use exit nodes, relays and legal structures to protect node owners and ourselves?&lt;br /&gt;
* [[Mesh/Hosting|Hosting]] - How are we hosting and what does it cost?&lt;br /&gt;
* [[Mesh/Backup|Backup]] - How do we handle backups?&lt;br /&gt;
* [[Mesh/Server security|Server Security]] - How do we ensure server security?&lt;br /&gt;
&lt;br /&gt;
= Logistics =&lt;br /&gt;
* [[Mesh/Minutes|Meeting Minutes]] - Notes from our weekly meetings dating back to January 2013.&lt;br /&gt;
* [[Mesh/Inventory|Inventory]] - Continually-updated inventory of our hardware and gear.&lt;br /&gt;
* [[Mesh/Taxes|Taxes]] - Filed taxes for the sudo mesh non-profit&lt;br /&gt;
&lt;br /&gt;
= Research =&lt;br /&gt;
We need help improving our documentation about the area and other legalities.&lt;br /&gt;
* [[Mesh/Interviews with other meshers|Interviews]] - we interviewed other experienced meshers&lt;br /&gt;
* [[Mesh/Documentation|Other documentation]] - books, articles, wikis, blog posts.&lt;br /&gt;
* [[Mesh/Oakland|Oakland]] - information and resources pertaining to Oakland community organizations, wireless initiatives, policy and research initiatives&lt;br /&gt;
* [[Mesh/Other muni networking projects|Municipal projects]] - examples of progressive uses of municipal networks.&lt;br /&gt;
* [[Mesh/Decentralized FM/AM radio|Decentralized FM/AM radio]] - Bit of research on adding legal FM/AM transmitters to nodes.&lt;br /&gt;
&lt;br /&gt;
= Other Firmware and Networks =&lt;br /&gt;
&lt;br /&gt;
There are [[Mesh/Other mesh projects|other meshes]] around the world that have inspired us to make our own network! &lt;br /&gt;
* [[Mesh/wlan-slovenia]] (slovenia) - mesh network in Slovenia with the first cross-country links to Austria and Croatia! wlan-sl developers have been incredibly helpful mentors since the beginning of the sudomesh project, and are the founders of the Nodewatcher admin database as well as the Koruza wireless optical link project.&lt;br /&gt;
* [[Mesh/Freifunk]] (germany) - the creators of batman-adv and one of the longest-running mesh networks in the world.&lt;br /&gt;
* [http://guifi.net/en Guifi] (catalonia) - largest community network (using a variety of topologies) in the world - spanning upwards of 22,000 nodes across catalonia and spain. Guifi folks have also been incredibly supportive of sudo mesh and helpful in guiding the international movement toward community wireless networks.&lt;br /&gt;
* [[Mesh/Altermundi]] (argentina) - Connecting rural communities in Argentina to the Internet using long range point-to-point links connecting community mesh networks. Developers from Altermundi also contribute extensively to the Libremesh firmware and Librerouter, an open hardware mesh router in development.&lt;br /&gt;
* [[Mesh/Funkfeur]] (austria) - another old-school mesh network &lt;br /&gt;
* [[Mesh/Ninux]] (italy) - Spanning several cities across Italy, Ninux developers also contribute extensively to research on community networks, the dashboard admin interface NodeShot, and LibreMesh / Librerouter&lt;br /&gt;
* [[Mesh/Commotion]] - a very well-documented project from the Open Technology Institute creating a simple-to-deploy mesh firmware and setup for small community meshes around the world.&lt;br /&gt;
&lt;br /&gt;
= Web Resources =&lt;br /&gt;
&lt;br /&gt;
* [http://510pen.org 510pen] - East Bay community wireless mesh network spawned in 2009 by [[User:mfb|Mark Burdett]]&lt;br /&gt;
* [http://wiki.tidepools.com Tidepools] - [[User:tunabananas|Jenny Ryan]] designed local use cases for a community mobile mapping application built to run on mesh networks.&lt;br /&gt;
* [https://wiki.projectmeshnet.org/Main_Page Project Meshnet] - Extensive wiki on the /r/darknet project, including extensive list of [https://wiki.projectmeshnet.org/Projects projects coordinating with them].&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Long-range_Wi-Fi#Notable_links Long Range Wifi] - Info on the longest-range wifi connections ever made.&lt;br /&gt;
* [https://github.com/adafruit/Adafruit-WebIDE Adafruit's Web IDE built for Raspberry Pi] but probably good for editing code on any device and ensuring it is managed with a code repo.  By default it uses [https://bitbucket.org bitbucket.org] but it could probably be configured for Github.&lt;br /&gt;
&lt;br /&gt;
''Please note that all contributions to Sudo Room may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here. You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see Sudo Room:Copyrights for details). Do not submit copyrighted work without permission!''&lt;br /&gt;
&lt;br /&gt;
[[Category:Projects]][[Category:Mesh]]&lt;/div&gt;</summary>
		<author><name>Gcg</name></author>
	</entry>
</feed>