<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://massmesh.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Stephen304</id>
	<title>MassMeshWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://massmesh.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Stephen304"/>
	<link rel="alternate" type="text/html" href="https://massmesh.org/wiki/index.php?title=Special:Contributions/Stephen304"/>
	<updated>2026-09-08T17:39:16Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.34.2</generator>
	<entry>
		<id>https://massmesh.org/wiki/index.php?title=Public_Gateways&amp;diff=2183</id>
		<title>Public Gateways</title>
		<link rel="alternate" type="text/html" href="https://massmesh.org/wiki/index.php?title=Public_Gateways&amp;diff=2183"/>
		<updated>2023-05-29T23:02:15Z</updated>

		<summary type="html">&lt;p&gt;Stephen304: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The gateways on this page are available for use by mesh users. Some require approval, so check all the details before connecting.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Gateways&lt;br /&gt;
! Operator Contact !! Location !! Egress Network !! Address !! Notes&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot; | Stephen Smith || New York || Mullvad VPN || &amp;lt;code&amp;gt;200:83a1:3b1a:e7af:4b46:6169:8435:9280&amp;lt;/code&amp;gt; || A free and anonymous mesh gateway run on a $5 DigitalOcean droplet and Mullvad VPN connection&lt;br /&gt;
|-&lt;br /&gt;
| Boston || Mullvad VPN || &amp;lt;strike&amp;gt;&amp;lt;code&amp;gt;201:a13f:15f9:382a:7172:80af:600f:6f83&amp;lt;/code&amp;gt;&amp;lt;/strike&amp;gt; || &amp;lt;strike&amp;gt;Secondary free and anonymous gateway hosted in Boston on a shared server&amp;lt;/strike&amp;gt; (decommissioned)&lt;br /&gt;
|-&lt;br /&gt;
| Ward (@cure:matrix.org)&amp;lt;br&amp;gt; James (@lurker42o:matrix.org)&amp;lt;br&amp;gt; Stephen (@Stephen304:matrix.org) || New Jersey || Digital Ocean || &amp;lt;strike&amp;gt;203:7fe2:2946:3dee:4ce3:9493:2a93:82c3&amp;lt;/strike&amp;gt; || &amp;lt;strike&amp;gt;Main MassMesh gateway, contact an operator for access&amp;lt;/strike&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Stephen304</name></author>
		
	</entry>
	<entry>
		<id>https://massmesh.org/wiki/index.php?title=Public_Gateways&amp;diff=1905</id>
		<title>Public Gateways</title>
		<link rel="alternate" type="text/html" href="https://massmesh.org/wiki/index.php?title=Public_Gateways&amp;diff=1905"/>
		<updated>2021-11-01T19:53:06Z</updated>

		<summary type="html">&lt;p&gt;Stephen304: Add main gateway and update contact instructions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The gateways on this page are available for use by mesh users. Some require approval, so check all the details before connecting.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Gateways&lt;br /&gt;
! Operator Contact !! Location !! Egress Network !! Address !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Ward (@cure:matrix.org)&amp;lt;br&amp;gt; James (@lurker42o:matrix.org)&amp;lt;br&amp;gt; Stephen (@Stephen304:matrix.org) || New Jersey || Digital Ocean || &amp;lt;code&amp;gt;203:7fe2:2946:3dee:4ce3:9493:2a93:82c3&amp;lt;/code&amp;gt; || Main MassMesh gateway, contact an operator for access&lt;br /&gt;
|-&lt;br /&gt;
| James Vorder || New York || Digital Ocean || &amp;lt;code&amp;gt;201:506e:60d6:bd66:e35c:606:4883:ea9a&amp;lt;/code&amp;gt; || Requires approval, contact @lurker42o:matrix.org on Matrix / Element&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot; | Stephen Smith || New York || Mullvad VPN || &amp;lt;code&amp;gt;200:83a1:3b1a:e7af:4b46:6169:8435:9280&amp;lt;/code&amp;gt; || A free and anonymous mesh gateway run on a $5 DigitalOcean droplet and Mullvad VPN connection&lt;br /&gt;
|-&lt;br /&gt;
| Boston || Mullvad VPN || &amp;lt;code&amp;gt;201:a13f:15f9:382a:7172:80af:600f:6f83&amp;lt;/code&amp;gt; || Secondary free and anonymous gateway hosted in Boston on a shared server&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Stephen304</name></author>
		
	</entry>
	<entry>
		<id>https://massmesh.org/wiki/index.php?title=Public_Gateways&amp;diff=1904</id>
		<title>Public Gateways</title>
		<link rel="alternate" type="text/html" href="https://massmesh.org/wiki/index.php?title=Public_Gateways&amp;diff=1904"/>
		<updated>2021-08-25T21:32:09Z</updated>

		<summary type="html">&lt;p&gt;Stephen304: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The gateways on this page are available for use by mesh users. Some require approval, so check all the details before connecting.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Gateways&lt;br /&gt;
! Operator !! Location !! Egress Network !! Address !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| James Vorder || New York || Digital Ocean || &amp;lt;code&amp;gt;201:506e:60d6:bd66:e35c:606:4883:ea9a&amp;lt;/code&amp;gt; || Requires approval, see the #mm-ap-hosts:matrix.org chat room on Matrix / Element&lt;br /&gt;
|-&lt;br /&gt;
| Stephen Smith || New York || Mullvad VPN || &amp;lt;code&amp;gt;200:83a1:3b1a:e7af:4b46:6169:8435:9280&amp;lt;/code&amp;gt; || A free and anonymous mesh gateway run on a $5 DigitalOcean droplet and Mullvad VPN connection&lt;br /&gt;
|-&lt;br /&gt;
| Stephen Smith || Boston || Mullvad VPN || &amp;lt;code&amp;gt;201:a13f:15f9:382a:7172:80af:600f:6f83&amp;lt;/code&amp;gt; || Secondary free and anonymous gateway hosted in Boston on a shared server&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Stephen304</name></author>
		
	</entry>
	<entry>
		<id>https://massmesh.org/wiki/index.php?title=Public_Gateways&amp;diff=1903</id>
		<title>Public Gateways</title>
		<link rel="alternate" type="text/html" href="https://massmesh.org/wiki/index.php?title=Public_Gateways&amp;diff=1903"/>
		<updated>2021-08-25T20:04:39Z</updated>

		<summary type="html">&lt;p&gt;Stephen304: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The gateways on this page are available for use by mesh users. Some require approval, so check all the details before connecting.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Gateways&lt;br /&gt;
! Operator !! Location !! Egress Network !! Address !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| James Vorder || New York || Digital Ocean || &amp;lt;code&amp;gt;201:506e:60d6:bd66:e35c:606:4883:ea9a&amp;lt;/code&amp;gt; || Requires approval, see the #mm-ap-hosts:matrix.org chat room on Matrix / Element&lt;br /&gt;
|-&lt;br /&gt;
| Stephen Smith || Boston || Mullvad VPN || &amp;lt;code&amp;gt;201:a13f:15f9:382a:7172:80af:600f:6f83&amp;lt;/code&amp;gt; || Open access&lt;br /&gt;
|-&lt;br /&gt;
| Stephen Smith || New York || Mullvad VPN || &amp;lt;code&amp;gt;200:83a1:3b1a:e7af:4b46:6169:8435:9280&amp;lt;/code&amp;gt; || A free and anonymous mesh gateway run on a $5 DigitalOcean droplet and Mullvad VPN connection&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Stephen304</name></author>
		
	</entry>
	<entry>
		<id>https://massmesh.org/wiki/index.php?title=Public_Gateways&amp;diff=1902</id>
		<title>Public Gateways</title>
		<link rel="alternate" type="text/html" href="https://massmesh.org/wiki/index.php?title=Public_Gateways&amp;diff=1902"/>
		<updated>2021-08-25T18:43:28Z</updated>

		<summary type="html">&lt;p&gt;Stephen304: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The gateways on this page are available for use by mesh users. Some require approval, so check all the details before connecting.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Gateways&lt;br /&gt;
! Operator !! Location !! Egress Network !! Address !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| James Vorder || New York || Digital Ocean || &amp;lt;code&amp;gt;201:506e:60d6:bd66:e35c:606:4883:ea9a&amp;lt;/code&amp;gt; || Requires approval, see the #mm-ap-hosts:matrix.org chat room on Matrix / Element&lt;br /&gt;
|-&lt;br /&gt;
| Stephen Smith || Boston || Mullvad VPN || &amp;lt;code&amp;gt;201:44e1:28f0:af3c:cf1b:6e2a:79bd:44b0&amp;lt;/code&amp;gt; || Open access&lt;br /&gt;
|-&lt;br /&gt;
| Stephen Smith || New York || Mullvad VPN || &amp;lt;code&amp;gt;200:83a1:3b1a:e7af:4b46:6169:8435:9280&amp;lt;/code&amp;gt; || A free and anonymous mesh gateway run on a $5 DigitalOcean droplet and Mullvad VPN connection&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Stephen304</name></author>
		
	</entry>
	<entry>
		<id>https://massmesh.org/wiki/index.php?title=Public_Gateways&amp;diff=1901</id>
		<title>Public Gateways</title>
		<link rel="alternate" type="text/html" href="https://massmesh.org/wiki/index.php?title=Public_Gateways&amp;diff=1901"/>
		<updated>2021-08-19T23:02:28Z</updated>

		<summary type="html">&lt;p&gt;Stephen304: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The gateways on this page are available for use by mesh users. Some require approval, so check all the details before connecting.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Gateways&lt;br /&gt;
! Operator !! Location !! Egress Network !! Address !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| James Vorder || New York || Digital Ocean || &amp;lt;code&amp;gt;201:506e:60d6:bd66:e35c:606:4883:ea9a&amp;lt;/code&amp;gt; || Requires approval, see the #mm-ap-hosts:matrix.org chat room on Matrix / Element&lt;br /&gt;
|-&lt;br /&gt;
| Stephen Smith || Boston || Mullvad VPN || &amp;lt;code&amp;gt;201:44e1:28f0:af3c:cf1b:6e2a:79bd:44b0&amp;lt;/code&amp;gt; || Open access&lt;br /&gt;
|-&lt;br /&gt;
| Stephen Smith || New York || Mullvad VPN || &amp;lt;code&amp;gt;200:83a1:3b1a:e7af:4b46:6169:8435:9280&amp;lt;/code&amp;gt; || Open access, used for testing, low bandwidth&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Stephen304</name></author>
		
	</entry>
	<entry>
		<id>https://massmesh.org/wiki/index.php?title=Contact_and_Meeting_Info&amp;diff=1899</id>
		<title>Contact and Meeting Info</title>
		<link rel="alternate" type="text/html" href="https://massmesh.org/wiki/index.php?title=Contact_and_Meeting_Info&amp;diff=1899"/>
		<updated>2021-05-11T17:38:59Z</updated>

		<summary type="html">&lt;p&gt;Stephen304: /* Open Weekly Meetings */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Open Weekly Meetings =&lt;br /&gt;
&lt;br /&gt;
{{Warning| '''Due to the covid-19 pandemic, all of our weekly meetings are going virtual until further notice. Please join us in our [https://jitsi.massmesh.net/massmesh jitsi room] from 7PM to 9PM on any Thursday. We wish we could meet you in person, but we must take care of ourselves and each other during this time.'''}}&lt;br /&gt;
&lt;br /&gt;
[https://www.meetup.com/SomervillePirates/ Join Us on Meetup.com]&lt;br /&gt;
&lt;br /&gt;
= Staying Up To Date =&lt;br /&gt;
&lt;br /&gt;
We maintain a [https://calendar.google.com/calendar/embed?src=2d998d5dlmm9v3l7uu6f83ekbg%40group.calendar.google.com&amp;amp;ctz=America%2FNew_York Google calendar] where you can view all of our upcoming events.&lt;br /&gt;
&lt;br /&gt;
Please consider joining the [https://www.meetup.com/SomervillePirates/ Somerville Pirates on Meetup.com] to receive push notifications when we announce new events.&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can stay up to date with Mass Mesh happenings by joining our [https://lists.riseup.net/www/info/massmeshnet mailing list,] introducing yourself in one of our [https://riot.im/app/#/group/+massmesh:matrix.org chatrooms,] or becoming a backer of our [https://opencollective.com/mass-mesh Open Collective.]&lt;/div&gt;</summary>
		<author><name>Stephen304</name></author>
		
	</entry>
	<entry>
		<id>https://massmesh.org/wiki/index.php?title=Benchmarks&amp;diff=1867</id>
		<title>Benchmarks</title>
		<link rel="alternate" type="text/html" href="https://massmesh.org/wiki/index.php?title=Benchmarks&amp;diff=1867"/>
		<updated>2020-09-23T04:35:09Z</updated>

		<summary type="html">&lt;p&gt;Stephen304: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Mesh Benchmark ==&lt;br /&gt;
The Mesh Benchmark represents the maximum amount of mesh-based traffic a device can send or receive. This is the speed limit of node to node traffic that doesn't leave the mesh. Services hosted in a way such that they are accessible on the mesh are mainly subject to this limit.&lt;br /&gt;
&lt;br /&gt;
=== Procedure ===&lt;br /&gt;
To test the in-mesh speed, run iperf3 and yggdrasil on both a decently powerful PC/laptop as well as a mesh node.&lt;br /&gt;
&lt;br /&gt;
On the PC, run the following command:&lt;br /&gt;
&lt;br /&gt;
 iperf3 -s&lt;br /&gt;
&lt;br /&gt;
Then use &amp;lt;code&amp;gt;yggdrasilctl getself&amp;lt;/code&amp;gt; and note the IPv6 address.&lt;br /&gt;
&lt;br /&gt;
On the mesh node, run the following command to start the benchmark:&lt;br /&gt;
&lt;br /&gt;
 iperf3 -c &amp;lt;PC-ipv6-address&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Results ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Mesh Node Benchmarks (In-Mesh)&lt;br /&gt;
! Device !! Download !! Upload !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| example || 55 Mbit/s || 30 Mbit/s || Maxes out cpu&lt;br /&gt;
|-&lt;br /&gt;
| example || 53 Mbit/s || 47 Mbit/s || Low resource usage&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Gateway Benchmark ==&lt;br /&gt;
&lt;br /&gt;
Todo: Create standard test procedure with more powerful hardware&lt;br /&gt;
&lt;br /&gt;
Environment: Laptop, Rpi4, DO Droplet, mullvad&lt;br /&gt;
&lt;br /&gt;
Fully wired, rpi connected via autoygg to droplet, which routes traffic out through mullvad&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Benchmarked VPS&lt;br /&gt;
! Size !! Download !! Upload !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| $5 Basic || 55 Mbit/s || 30 Mbit/s || Tested steam downloads as well as speedtest.net. Maxed out CPU&lt;br /&gt;
|-&lt;br /&gt;
| $15 Basic || 53 Mbit/s || 47 Mbit/s || Tested speedtest.net, CPU at ~50%&lt;br /&gt;
|-&lt;br /&gt;
| $40 Basic || 65 Mbit/s || 55 Mbit/s || Tested speedtest.net, low resource utilization overall&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Old benchmarking results ==&lt;br /&gt;
=== EspressoBin v5 ===&lt;br /&gt;
==== No Yggdrasil ====&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;Connecting to host 10.0.0.1, port 5201&lt;br /&gt;
[  5] local 10.0.0.106 port 58198 connected to 10.0.0.1 port 5201&lt;br /&gt;
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd&lt;br /&gt;
[  5]   0.00-1.00   sec  49.2 MBytes   413 Mbits/sec   27    532 KBytes       &lt;br /&gt;
[  5]   1.00-2.00   sec  44.8 MBytes   376 Mbits/sec    0    592 KBytes       &lt;br /&gt;
[  5]   2.00-3.00   sec  44.8 MBytes   376 Mbits/sec    0    643 KBytes       &lt;br /&gt;
[  5]   3.00-4.00   sec  44.9 MBytes   376 Mbits/sec    1    519 KBytes       &lt;br /&gt;
[  5]   4.00-5.00   sec  46.1 MBytes   387 Mbits/sec    0    581 KBytes       &lt;br /&gt;
[  5]   5.00-6.00   sec  44.8 MBytes   376 Mbits/sec    0    639 KBytes       &lt;br /&gt;
[  5]   6.00-7.00   sec  46.1 MBytes   387 Mbits/sec    1    516 KBytes       &lt;br /&gt;
[  5]   7.00-8.00   sec  43.6 MBytes   366 Mbits/sec  374    346 KBytes       &lt;br /&gt;
[  5]   8.00-9.00   sec  44.9 MBytes   377 Mbits/sec    0    434 KBytes       &lt;br /&gt;
[  5]   9.00-10.00  sec  46.1 MBytes   387 Mbits/sec    0    509 KBytes       &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
[ ID] Interval           Transfer     Bitrate         Retr&lt;br /&gt;
[  5]   0.00-10.00  sec   455 MBytes   382 Mbits/sec  403             sender&lt;br /&gt;
[  5]   0.00-10.05  sec   452 MBytes   377 Mbits/sec                  receiver&lt;br /&gt;
&lt;br /&gt;
iperf Done.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
==== Yggdrasil ====&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;Connecting to host 201:f06b:1827:4e45:90fa:554e:ace5:27c7, port 5201&lt;br /&gt;
[  5] local 201:28ab:ee79:77d4:192e:1366:8b79:4980 port 33776 connected to 201:f06b:1827:4e45:90fa:554e:ace5:27c7 port 5201&lt;br /&gt;
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd&lt;br /&gt;
[  5]   0.00-1.00   sec  17.4 MBytes   146 Mbits/sec   26   1.50 MBytes       &lt;br /&gt;
[  5]   1.00-2.00   sec  16.2 MBytes   136 Mbits/sec   20   1.31 MBytes       &lt;br /&gt;
[  5]   2.00-3.00   sec  15.0 MBytes   126 Mbits/sec   56    959 KBytes       &lt;br /&gt;
[  5]   3.00-4.00   sec  13.8 MBytes   115 Mbits/sec   31    767 KBytes       &lt;br /&gt;
[  5]   4.00-5.00   sec  13.8 MBytes   115 Mbits/sec   20    831 KBytes       &lt;br /&gt;
[  5]   5.00-6.00   sec  15.0 MBytes   126 Mbits/sec    2   1.25 MBytes       &lt;br /&gt;
[  5]   6.00-7.00   sec  17.5 MBytes   147 Mbits/sec   23   1.37 MBytes       &lt;br /&gt;
[  5]   7.00-8.00   sec  17.5 MBytes   147 Mbits/sec    1   1.62 MBytes       &lt;br /&gt;
[  5]   8.00-9.00   sec  15.0 MBytes   126 Mbits/sec    5   1.62 MBytes       &lt;br /&gt;
[  5]   9.00-10.00  sec  17.5 MBytes   147 Mbits/sec    6   1.62 MBytes       &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
[ ID] Interval           Transfer     Bitrate         Retr&lt;br /&gt;
[  5]   0.00-10.00  sec   159 MBytes   133 Mbits/sec  190             sender&lt;br /&gt;
[  5]   0.00-10.09  sec   157 MBytes   130 Mbits/sec                  receiver&lt;br /&gt;
&lt;br /&gt;
iperf Done.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Raspberry Pi 3B+ ===&lt;br /&gt;
==== Yggdrasil ====&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;[ ID] Interval           Transfer     Bitrate&lt;br /&gt;
[  5]   0.00-10.41  sec  37.3 MBytes  30.1 Mbits/sec                  receiver&lt;br /&gt;
[  8]   0.00-10.41  sec  36.6 MBytes  29.5 Mbits/sec                  receiver&lt;br /&gt;
[ 10]   0.00-10.41  sec  36.6 MBytes  29.5 Mbits/sec                  receiver&lt;br /&gt;
[ 12]   0.00-10.41  sec  38.0 MBytes  30.6 Mbits/sec                  receiver&lt;br /&gt;
[SUM]   0.00-10.41  sec   149 MBytes   120 Mbits/sec                  receiver&amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>Stephen304</name></author>
		
	</entry>
	<entry>
		<id>https://massmesh.org/wiki/index.php?title=Benchmarks&amp;diff=1865</id>
		<title>Benchmarks</title>
		<link rel="alternate" type="text/html" href="https://massmesh.org/wiki/index.php?title=Benchmarks&amp;diff=1865"/>
		<updated>2020-09-23T00:02:04Z</updated>

		<summary type="html">&lt;p&gt;Stephen304: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== In-Mesh Benchmarks ==&lt;br /&gt;
=== Procedure ===&lt;br /&gt;
To test the in-mesh speed, run iperf3 and yggdrasil on both a decently powerful PC/laptop as well as a mesh node.&lt;br /&gt;
&lt;br /&gt;
On the PC, run the following command:&lt;br /&gt;
&lt;br /&gt;
 iperf3 -s&lt;br /&gt;
&lt;br /&gt;
Then use &amp;lt;code&amp;gt;yggdrasilctl getself&amp;lt;/code&amp;gt; and note the IPv6 address.&lt;br /&gt;
&lt;br /&gt;
On the mesh node, run the following command to start the benchmark:&lt;br /&gt;
&lt;br /&gt;
 iperf3 -c &amp;lt;PC-ipv6-address&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Results ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Mesh Node Benchmarks (In-Mesh)&lt;br /&gt;
! Device !! Download !! Upload !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| example || 55 Mbit/s || 30 Mbit/s || Maxes out cpu&lt;br /&gt;
|-&lt;br /&gt;
| example || 53 Mbit/s || 47 Mbit/s || Low resource usage&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== EspressoBin v5 ==&lt;br /&gt;
=== No Yggdrasil ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;Connecting to host 10.0.0.1, port 5201&lt;br /&gt;
[  5] local 10.0.0.106 port 58198 connected to 10.0.0.1 port 5201&lt;br /&gt;
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd&lt;br /&gt;
[  5]   0.00-1.00   sec  49.2 MBytes   413 Mbits/sec   27    532 KBytes       &lt;br /&gt;
[  5]   1.00-2.00   sec  44.8 MBytes   376 Mbits/sec    0    592 KBytes       &lt;br /&gt;
[  5]   2.00-3.00   sec  44.8 MBytes   376 Mbits/sec    0    643 KBytes       &lt;br /&gt;
[  5]   3.00-4.00   sec  44.9 MBytes   376 Mbits/sec    1    519 KBytes       &lt;br /&gt;
[  5]   4.00-5.00   sec  46.1 MBytes   387 Mbits/sec    0    581 KBytes       &lt;br /&gt;
[  5]   5.00-6.00   sec  44.8 MBytes   376 Mbits/sec    0    639 KBytes       &lt;br /&gt;
[  5]   6.00-7.00   sec  46.1 MBytes   387 Mbits/sec    1    516 KBytes       &lt;br /&gt;
[  5]   7.00-8.00   sec  43.6 MBytes   366 Mbits/sec  374    346 KBytes       &lt;br /&gt;
[  5]   8.00-9.00   sec  44.9 MBytes   377 Mbits/sec    0    434 KBytes       &lt;br /&gt;
[  5]   9.00-10.00  sec  46.1 MBytes   387 Mbits/sec    0    509 KBytes       &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
[ ID] Interval           Transfer     Bitrate         Retr&lt;br /&gt;
[  5]   0.00-10.00  sec   455 MBytes   382 Mbits/sec  403             sender&lt;br /&gt;
[  5]   0.00-10.05  sec   452 MBytes   377 Mbits/sec                  receiver&lt;br /&gt;
&lt;br /&gt;
iperf Done.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
=== Yggdrasil ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;Connecting to host 201:f06b:1827:4e45:90fa:554e:ace5:27c7, port 5201&lt;br /&gt;
[  5] local 201:28ab:ee79:77d4:192e:1366:8b79:4980 port 33776 connected to 201:f06b:1827:4e45:90fa:554e:ace5:27c7 port 5201&lt;br /&gt;
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd&lt;br /&gt;
[  5]   0.00-1.00   sec  17.4 MBytes   146 Mbits/sec   26   1.50 MBytes       &lt;br /&gt;
[  5]   1.00-2.00   sec  16.2 MBytes   136 Mbits/sec   20   1.31 MBytes       &lt;br /&gt;
[  5]   2.00-3.00   sec  15.0 MBytes   126 Mbits/sec   56    959 KBytes       &lt;br /&gt;
[  5]   3.00-4.00   sec  13.8 MBytes   115 Mbits/sec   31    767 KBytes       &lt;br /&gt;
[  5]   4.00-5.00   sec  13.8 MBytes   115 Mbits/sec   20    831 KBytes       &lt;br /&gt;
[  5]   5.00-6.00   sec  15.0 MBytes   126 Mbits/sec    2   1.25 MBytes       &lt;br /&gt;
[  5]   6.00-7.00   sec  17.5 MBytes   147 Mbits/sec   23   1.37 MBytes       &lt;br /&gt;
[  5]   7.00-8.00   sec  17.5 MBytes   147 Mbits/sec    1   1.62 MBytes       &lt;br /&gt;
[  5]   8.00-9.00   sec  15.0 MBytes   126 Mbits/sec    5   1.62 MBytes       &lt;br /&gt;
[  5]   9.00-10.00  sec  17.5 MBytes   147 Mbits/sec    6   1.62 MBytes       &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
[ ID] Interval           Transfer     Bitrate         Retr&lt;br /&gt;
[  5]   0.00-10.00  sec   159 MBytes   133 Mbits/sec  190             sender&lt;br /&gt;
[  5]   0.00-10.09  sec   157 MBytes   130 Mbits/sec                  receiver&lt;br /&gt;
&lt;br /&gt;
iperf Done.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Raspberry Pi 3B+ ==&lt;br /&gt;
=== Yggdrasil ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;[ ID] Interval           Transfer     Bitrate&lt;br /&gt;
[  5]   0.00-10.41  sec  37.3 MBytes  30.1 Mbits/sec                  receiver&lt;br /&gt;
[  8]   0.00-10.41  sec  36.6 MBytes  29.5 Mbits/sec                  receiver&lt;br /&gt;
[ 10]   0.00-10.41  sec  36.6 MBytes  29.5 Mbits/sec                  receiver&lt;br /&gt;
[ 12]   0.00-10.41  sec  38.0 MBytes  30.6 Mbits/sec                  receiver&lt;br /&gt;
[SUM]   0.00-10.41  sec   149 MBytes   120 Mbits/sec                  receiver&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VPS Benchmark ==&lt;br /&gt;
Environment: Laptop, Rpi4, DO Droplet, mullvad&lt;br /&gt;
&lt;br /&gt;
Fully wired, rpi connected via autoygg to droplet, which routes traffic out through mullvad&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Benchmarked VPS&lt;br /&gt;
! Size !! Download !! Upload !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| $5 Basic || 55 Mbit/s || 30 Mbit/s || Tested steam downloads as well as speedtest.net. Maxed out CPU&lt;br /&gt;
|-&lt;br /&gt;
| $15 Basic || 53 Mbit/s || 47 Mbit/s || Tested speedtest.net, CPU at ~50%&lt;br /&gt;
|-&lt;br /&gt;
| $40 Basic || 65 Mbit/s || 55 Mbit/s || Tested speedtest.net, low resource utilization overall&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Stephen304</name></author>
		
	</entry>
	<entry>
		<id>https://massmesh.org/wiki/index.php?title=First_Time_Setup&amp;diff=1864</id>
		<title>First Time Setup</title>
		<link rel="alternate" type="text/html" href="https://massmesh.org/wiki/index.php?title=First_Time_Setup&amp;diff=1864"/>
		<updated>2020-09-16T04:41:26Z</updated>

		<summary type="html">&lt;p&gt;Stephen304: /* Connecting to a Mass Mesh public Internet Gateway */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Tip | Before continuing, connect to your mesh node using the '''MassMesh.org''' wireless network or by connecting directly to the mesh node, like in [[Mesh Node Troubleshooting]].}}&lt;br /&gt;
&lt;br /&gt;
{{Tip | Access your mesh node by navigating to http://192.168.42.1 in your web browser.}}&lt;br /&gt;
&lt;br /&gt;
== Setting Your Password ==&lt;br /&gt;
&lt;br /&gt;
[[File:No_password.png|thumb|When you first boot your mesh node, there is no admin password set.]]&lt;br /&gt;
&lt;br /&gt;
When you first boot your mesh node, there is no password set. This is quite dangerous, so OpenWrt will disable many useful features until you set one. Therefore, it is important that you set one up right away.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is not the same thing as a wi-fi password. Your admin password should be a secret.}}&lt;br /&gt;
&lt;br /&gt;
To set a password, complete the following steps:&lt;br /&gt;
* Navigate to &amp;quot;System &amp;gt; Administration&amp;quot; in the left-hand menu of OpenWrt&lt;br /&gt;
** [[File:Set_password_screen.png|frameless|Enter your desired password twice, and click &amp;quot;Save.&amp;quot;]]&lt;br /&gt;
* Enter your desired password twice, and hit Enter or click &amp;quot;Save.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Enabling Remote Support ==&lt;br /&gt;
&lt;br /&gt;
Following these steps, you will allow a maintainer to log into and use your mesh node remotely -- as long as it's connected to the global Yggdrasil network. See [[#The Yggdrasil Page]] if you think you may not be connected to the rest of the Yggdrasil network.&lt;br /&gt;
&lt;br /&gt;
In order to enable remote support, you will need to:&lt;br /&gt;
# Authorize the maintenance team to access your mesh node&lt;br /&gt;
# Allow SSH over Yggdrasil&lt;br /&gt;
&lt;br /&gt;
=== Authorize the Maintenance Team to Access Your Mesh Node ===&lt;br /&gt;
&lt;br /&gt;
{{Note|You must first [[#Setting Your Password|Set Up a Password]] before adding authorized remote users.}}&lt;br /&gt;
&lt;br /&gt;
# Navigate to System &amp;gt; Administration&lt;br /&gt;
# Select the &amp;quot;SSH-Keys&amp;quot; tab&lt;br /&gt;
## [[File:SSH_Keys_Screen_owrt.png|frameless|The ssh-keys tab.]]&lt;br /&gt;
# Enter the following keys, clicking &amp;quot;Add Key&amp;quot; in between each&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCndT67lJYJl1Re974keiGRzzD0m4qY9KM4m/XttWWinSggoFD+VKQDZchxnsyGbtDFH/NOSfI37MS+djccDj5fue1s/KnzL/j44JFyzt0M1pVgwopetMKTCaduCVeCQP2JN20Ss4fBI4FjvBM1tgAx3d1FUJEz7axwxJUBAgUDtvA1PUSKdhPxZTlWrKgHr4OXzdEoYJcLiktQc79QR2lJHKIBZgVq0C76Y/q+Q3mbl7ppLMmNgFRprXRkzDtRHndin5S7+f2zOlNryIGdnX3HCItr0XBkG/uNkrWnx0NFArP6Xq/BsJMhdNvl+KfCZiLYN2m3qxhEjZeTQIfBXh5wDfUzW0tPoDSCQ2WIBRjkSPjgnohskbakF6bnzLPJlsQofHfdDYUJJkywTYfo7FspPR4h2//FrBUDaRUXFUQBaguBTKX5P6U6quXSAfupkPIjZ7TkbxL0Q4OkWa/MX/QdBi/wZMYTcm4osJBmFxEZEumFHTb2gZ3SyTKD9sCKQHE= lurker@lurker-T450&lt;br /&gt;
&lt;br /&gt;
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAgEA3nzI6T6Lpd5xFoRewcx91Dv9sUzNNmdYfwOleemBFz0y3RaQElehUWasyjuIURZw7RL5EjvrqeQq9pe/lO99dO0F9yMuMsMH2t88YrVJQ/z/5Aa4I2zYQotKb/9CCfynsy41y5xywxtOwXiDk2kpo+c9VZCyCeW8Hnc9HaIpkKSLnkqDVhESzlrkYyNKZvUAL1hiFIzmmw/veFgRb7/ol76Ze3xsWugbHUECEIAKoz/8uaevOAAoJrMFhffFIQ8IfClqDZv2lnBBhvh1O9TO0Mg4klcieyQ1RZhMjeP4WnAa9PXP7xZlQHLgO9qO1jDd2sOdkX6EedCfX5jO4Y51HPJpV35uYumw3veftMlpIJFmA2eIQxU19SCYpojWRGXZ5v9WtFIHX2nGy+Gi1bk7TR+HBsCDXOPhhQk4ceIM4OonqEb1NJ57elxh6mFbDAQCZtYhRLqYvcyGpuBdVdLNOJbOZ7vBJY3Kfjxa87rvFIJheT6DXhpdRayeOovLm0vuJ53bZoWxWOqjpuigQqHtSB3OmintrKB916BhNFsHwPeZpK0ahZGFygV63REM/X8m0nOlHqyAY69uzLHyYXM83zAI1L5Y4wuzsVqO+1tnK6PMcfg5/DArjBrn7YqA5tzJY9EgdVVPjpgjD2yYYTOP6b3UUw4uFj3asnOX24dfVzk= ward@countzero&lt;br /&gt;
&lt;br /&gt;
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDVi8ExDYdV7EfkjQiMZA3o0QtjVNtd0wVzp9n1xFqY1dse/zHBqrEZQKBtbrk7D/NAI4qzoogC6SbHWa8fHPyc3LJuKbxHrSC8xylByGL7nAzI7AfmsHCQ8Z+OrgI625PzVpMCY/30D/rBgR2JTlzxlA35cuOPjN5r1HHE53+mVRu62jn/wTa16ubFXaYmibpZ3C830+qsAB8RPEHJH7zknFNPponAqH7kt1I8WQL6fa2TCuxIBijzDLbtX1xH4klTeMRJTK+tmLRUUjUefD/f7lNlgce7o9zkHktO5u1hmpC95/NC2cylzU9RWglHqJ21fSg66y441lm0Y9ZUc2p7DQFQP0f6kovuPWgVPWuMCQHVPgCWqqlKfTK3Dyscn9MfsCUnN2fZY+T0fx3lutLcIOwvQc/N2EDJIb0/R+7XMrzfUDVrkGeBoG11tBkKjltdC19JrAmGAkfIcN0LMOeZT7yTlZ/f/6d5C19DegXX74owM4V4pkqs/hbpmDkvQYkSXPfVpZ9ZTVUVSBrwKVaVX9A1hTXjIzfsuoZheMIdlakt0qSIuukyaIxzi1aAH67nR0kp+XCLldBDXGKQXah+mIGQPDBwWFR34re40jzxKmvLT+Dq+5yASgoLDbul8IYDJa2r7yYZQu+EgsW24p62q+y041wW4YIGBJs/cQqpCw== stephen304@gmail.com&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Allow SSH over Yggdrasil ===&lt;br /&gt;
# Navigate to Network &amp;gt; Firewall&lt;br /&gt;
# Select the &amp;quot;Traffic Rules tab&lt;br /&gt;
## [[File:Firewall_traffic_rules_tab_owrt.png|frameless|The network firewall traffic rules tab.]]&lt;br /&gt;
# Scroll down to &amp;quot;Allow-SSH-Yggdrasil&amp;quot;&lt;br /&gt;
# Enable the Accept input checkbox&lt;br /&gt;
## [[File:Enable_ssh_over_yggdrasil_firewall_rule_checked.png|frameless|Enable the ssh-over-yggdrasil firewall rule.]]&lt;br /&gt;
# Click &amp;quot;Save and Apply&amp;quot;&lt;br /&gt;
## [[File:firewall_save_and_apply.png|frameless|Click save and apply]]&lt;br /&gt;
&lt;br /&gt;
== The Diagnostic Page ==&lt;br /&gt;
== The Yggdrasil Page ==&lt;br /&gt;
&lt;br /&gt;
[[File:Peers.png|thumb|A working mesh node should have several peers.]]&lt;br /&gt;
&lt;br /&gt;
One of the most helpful screens for troubleshooting is the Yggdrasil page. This page is entirely focused on your mesh node's status ''within the global Yggdrasil mesh network.'' You can access the Yggdrasil page by selecting &amp;quot;Network &amp;gt; Yggdrasil&amp;quot; on the right-hand menu in OpenWrt.&lt;br /&gt;
&lt;br /&gt;
=== Important Yggdrasil Information ===&lt;br /&gt;
&lt;br /&gt;
You can view important information about your mesh node in the Yggdrasil screen. Among other things, you can view your node's static [https://en.wikipedia.org/wiki/IPv6 IPv6] address and [https://en.wikipedia.org/wiki/Public-key_cryptography public key.]&lt;br /&gt;
&lt;br /&gt;
Your static IPv6 address is unique to the Yggdrasil, and never changes. It comes in handy very frequently, and is used for remote support (among other things.) Your public key is sometimes used to gain access to private resources on the Yggdrasil network. It's good to know where it is just in case you ever need it.&lt;br /&gt;
&lt;br /&gt;
[[File:IPv6.png|frameless|Your static IPv6 address is unique to the Yggdrasil, and never changes.]]&lt;br /&gt;
[[File:Pubkey.png|frameless|Your public key is sometimes used to gain access to private resources on the Yggdrasil network.]]&lt;br /&gt;
&lt;br /&gt;
=== Checking for Peers ===&lt;br /&gt;
&lt;br /&gt;
As long as your mesh node has public Yggdrasil peers, it is connected to the global Yggdrasil mesh network. This means that things like remote support will work properly. If you're interested in learning more about Yggdrasil vs. the Internet vs. the LAN, see our [[Network Architecture]] page.&lt;br /&gt;
&lt;br /&gt;
A working mesh node should have several peers. You can see these in the following screen:&lt;br /&gt;
* [[File:Peers.png|frameless|A working mesh node should have several peers.]]&lt;br /&gt;
&lt;br /&gt;
If you don't have any peers, your Yggdrasil screen will look something like this:&lt;br /&gt;
* [[File:No_Peers.png|frameless|If you don't have any peers, your Yggdrasil screen will look something like this.]]&lt;br /&gt;
* Note the &amp;quot;Proto&amp;quot; column.... it says &amp;quot;self,&amp;quot; because the only peer your mesh node has is ... itself!&lt;br /&gt;
&lt;br /&gt;
== The Internet Gateway Page ==&lt;br /&gt;
&lt;br /&gt;
Once you are connected to the ''Yggdrasil mesh network'' (see previous section), it is time to configure the node for internet access. To do so, the node needs to be connected to an internet gateway. We use a program called [https://github.com/massmesh/autoygg Autoygg] for this purpose. You can access the Internet Gateway page by selecting &amp;quot;Network &amp;gt; Internet Gateway&amp;quot; in the left-hand menu in OpenWrt.&lt;br /&gt;
&lt;br /&gt;
=== The Autoygg client status page ===&lt;br /&gt;
&lt;br /&gt;
The '''Status''' page shows the current connection state with the configured Autoygg Gateway. On first boot, the page will show that you are '''disconnected''':&lt;br /&gt;
&lt;br /&gt;
[[File:AutoyggStatusFirstTimeSetup.png|frameless|The Autoygg status screen for a new installation.]]&lt;br /&gt;
&lt;br /&gt;
=== The Autoygg client settings page ===&lt;br /&gt;
&lt;br /&gt;
On the '''Settings''' page, an Internet Gateway server can be configured. It is also possible (but not required) to populate your name, e-mail address and/or phone number, to identify yourself to the gateway owner.&lt;br /&gt;
&lt;br /&gt;
==== Connecting to a Mass Mesh public Internet Gateway ====&lt;br /&gt;
&amp;lt;section begin=autoygg_firstsetup /&amp;gt;&lt;br /&gt;
Mass Mesh runs a public Internet Gateway at the address '''201:506e:60d6:bd66:e35c:606:4883:ea9a'''. If you would like to use it to connect to the internet, put that address in the '''autoygg gateway''' field and click '''SAVE &amp;amp; APPLY''':&lt;br /&gt;
&lt;br /&gt;
[[File:AutoyggSettingsMassMeshGateway.png|frameless|The Autoygg settings screen with the Mass Mesh gateway configured.]]&lt;br /&gt;
&lt;br /&gt;
At this point, the '''Status''' page will show you are not connected:&lt;br /&gt;
&lt;br /&gt;
[[File:AutoyggStatusPageClientNotConnected.png|frameless|The Autoygg status screen with the Mass Mesh gateway configured, but not connected.]]&lt;br /&gt;
&lt;br /&gt;
Before you can connect to the internet via the Mass Mesh gateway, one of our volunteers will need to add your node to the accesslist on the gateway server. You can request this in the '''[https://app.element.io/#/room/#mm-ap-hosts:matrix.org Mass Mesh AP Hosts chat room].''' Please provide your Yggdrasil IPv6 address when you do so, which is available on the '''Yggdrasil node status''' page:&lt;br /&gt;
&lt;br /&gt;
[[File:IPv6.png|frameless|Your static IPv6 address is unique to your Yggdrasil node, and never changes.]]&lt;br /&gt;
&lt;br /&gt;
Once your node is added to our accesslist, you can hit the '''Connect''' button and if that goes well, the status page will look similar to this:&lt;br /&gt;
&lt;br /&gt;
[[File:AutoyggStatusPageClientConnected.png|frameless|The Autoygg status screen with the Mass Mesh gateway configured and connected.]]&lt;br /&gt;
&amp;lt;section end=autoygg_firstsetup /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Connecting to your own Internet Gateway ====&lt;br /&gt;
&lt;br /&gt;
It is also possible to run your own Internet Gateway server. This can be done on a cheap cloud VPS, for instance. It requires installing and running the [https://github.com/MassMesh/autoygg/blob/main/README.md Autoygg server]. If you want assistance with this, please ask in the '''[https://app.element.io/#/room/#massmeshtech:matrix.org MassMesh Tech chat room].'''&lt;/div&gt;</summary>
		<author><name>Stephen304</name></author>
		
	</entry>
	<entry>
		<id>https://massmesh.org/wiki/index.php?title=Main_Page&amp;diff=1863</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://massmesh.org/wiki/index.php?title=Main_Page&amp;diff=1863"/>
		<updated>2020-09-15T23:33:23Z</updated>

		<summary type="html">&lt;p&gt;Stephen304: /* Getting Started */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Stephen_adjusting_nanostation.jpg|thumb|One of our core contributors aiming an antenna in the South End.]]&lt;br /&gt;
&lt;br /&gt;
{{Note|To build a DIY mesh node, follow our [[Node Setup]] guide.}}&lt;br /&gt;
&lt;br /&gt;
Mass Mesh is a high-tech social club building community-owned mesh networks throughout Boston. These networks enable home Internet access that is fairer, more secure, and more locally resilient than traditional cable. The purpose of this wiki is to provide you with all of the information you need to join the mesh by setting up your own mesh node. All of the information on this site and all of the code in our software is [https://www.gnu.org/philosophy/free-sw.html free to use share and edit.] Please get in touch if you are interested in contributing.&lt;br /&gt;
&lt;br /&gt;
== Getting Started ==&lt;br /&gt;
&amp;lt;div class=&amp;quot;archwiki-main-page-columns&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; [[Node Setup|DIY Mesh Node]]: A step-by-step guide to setting up your own mesh node, so that you can form a network with your neighbors.&lt;br /&gt;
&lt;br /&gt;
; [[Neighborhood Captain Pamphlet|DIY Mesh Network]]: &amp;quot;Do it Together!&amp;quot; Read here to learn about starting a community-owned network with your neighbors.&lt;br /&gt;
&lt;br /&gt;
; [[Network Architecture]]: A broad overview of how a neighborhood networks are constructed, and how to connect them to the Internet.&lt;br /&gt;
&lt;br /&gt;
; [[Volunteer Projects|Contributing]]: Here's what we're working on, and what we could use your help with!&lt;br /&gt;
&lt;br /&gt;
; [[Contact and Meeting Info]]: Information on how to get in touch with us online and in person.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Developer Resources ==&lt;br /&gt;
&amp;lt;div class=&amp;quot;archwiki-main-page-columns&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; [https://github.com/MassMesh Source]: Browse the source code behind our firmware and Yggdrasil convenience tools.&lt;br /&gt;
&lt;br /&gt;
; [[:Category:Devices|Devices]]: A list of our supported devices with their performance stats, costs, and setup tutorials.&lt;br /&gt;
&lt;br /&gt;
; [https://github.com/orgs/MassMesh/projects/1 Tech Team Kanban]: See upcoming development work and find a place to jump in!&lt;br /&gt;
&lt;br /&gt;
; [https://circleci.com/gh/MassMesh/workflows/meta-imagebuilder/tree/master Build Status]: Our firmware's CircleCI.&lt;br /&gt;
&lt;br /&gt;
; [https://downloads.massmesh.net/ Downloads]: Get our latest firmware and packages.&lt;br /&gt;
&lt;br /&gt;
; [[Build infrastructure]]: A description of our build infrastructure.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installer Resources ==&lt;br /&gt;
&amp;lt;div class=&amp;quot;archwiki-main-page-columns&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; [[Gateway Configuration]]: Steps for configuring gateway servers and clients. This tunnels people off of the Yggdrasil network.&lt;br /&gt;
&lt;br /&gt;
; [[:Category:Devices|Devices]]: A list of our supported devices with their performance stats, costs, and setup tutorials.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Stephen304</name></author>
		
	</entry>
	<entry>
		<id>https://massmesh.org/wiki/index.php?title=Template:TFTP_Flashing_Steps&amp;diff=1862</id>
		<title>Template:TFTP Flashing Steps</title>
		<link rel="alternate" type="text/html" href="https://massmesh.org/wiki/index.php?title=Template:TFTP_Flashing_Steps&amp;diff=1862"/>
		<updated>2020-09-15T14:44:58Z</updated>

		<summary type="html">&lt;p&gt;Stephen304: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
This template allows easy inclusion of TFTP flashing instructions across the wiki.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&amp;lt;pre&amp;gt;{{Template:TFTP Flashing Steps}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{Template:TFTP Flashing Steps}}&lt;br /&gt;
&lt;br /&gt;
Additional parameters may be passed to customize the instructions:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{Template:TFTP Flashing Steps&lt;br /&gt;
|factory_reset_steps=&lt;br /&gt;
# Power off the device&lt;br /&gt;
# Use a paper clip to hold in the reset button&lt;br /&gt;
# Plug in the device&lt;br /&gt;
# Continue holding the reset button until the LED flashes&lt;br /&gt;
|firmware_link=[https://example.com/12345.bin firmware file]&lt;br /&gt;
|firmware_filename=firmware.bin&lt;br /&gt;
|firmware_renamed=yes&lt;br /&gt;
|device_ip=192.168.1.20&lt;br /&gt;
|user_ip=192.168.1.25/24&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{Template:TFTP Flashing Steps&lt;br /&gt;
|factory_reset_steps=&lt;br /&gt;
# Power off the device&lt;br /&gt;
# Use a paper clip to hold in the reset button&lt;br /&gt;
# Plug in the device&lt;br /&gt;
# Continue holding the reset button until the LED flashes&lt;br /&gt;
|firmware_link=[https://example.com/12345.bin firmware file]&lt;br /&gt;
|firmware_filename=firmware.bin&lt;br /&gt;
|firmware_renamed=yes&lt;br /&gt;
|device_ip=192.168.1.20&lt;br /&gt;
|user_ip=192.168.1.25/24&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;includeonly&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 1.6em;&amp;quot;&amp;gt;&lt;br /&gt;
====== Enter TFTP Mode ======&lt;br /&gt;
{{{factory_reset_steps|Follow the steps for your device to enter TFTP Mode}}}&lt;br /&gt;
&lt;br /&gt;
====== Set Up a Static IP Address ======&lt;br /&gt;
The next step is to assign your computer a static IP address {{#if: {{{user_ip|}}}|of &amp;lt;code&amp;gt;{{{user_ip}}}&amp;lt;/code&amp;gt;|in the appropriate subnet for your device. See the wiki page for your device if you are unsure}}.&lt;br /&gt;
# '''Windows:''' [https://winaero.com/blog/set-static-ip-address-windows-10/ Setting a static IP address in Windows 10]&lt;br /&gt;
# '''Mac:''' [https://osxdaily.com/2010/12/17/set-static-ip-address-mac/ Setting a static IP address in OSX]&lt;br /&gt;
# '''Linux:''' [https://linuxize.com/post/how-to-configure-static-ip-address-on-ubuntu-18-04/#configuring-static-ip-address-on-ubuntu-desktop Setting a static IP address in Ubuntu 18.04 desktop]&lt;br /&gt;
&lt;br /&gt;
====== Sending Firmware via TFTP ======&lt;br /&gt;
# Download {{{firmware_link|the firmware file you wish to flash}}}{{#if: {{{firmware_renamed|}}}{{{firmware_filename|}}}|&lt;br /&gt;
# Rename the firmware file to &amp;lt;code&amp;gt;{{{firmware_filename}}}&amp;lt;/code&amp;gt;, as the device will look for this file name| }}&lt;br /&gt;
# Launch a command prompt/terminal, and enter the following, one line at a time:&lt;br /&gt;
&lt;br /&gt;
 tftp&lt;br /&gt;
&lt;br /&gt;
 tftp&amp;gt; connect {{{device_ip|&amp;lt;device_ip&amp;gt;}}}&lt;br /&gt;
 tftp&amp;gt; binary&lt;br /&gt;
 tftp&amp;gt; rexmt 1&lt;br /&gt;
 tftp&amp;gt; timeout 60&lt;br /&gt;
 tftp&amp;gt; put {{{firmware_filename|&amp;lt;firmware_filename&amp;gt;}}}&lt;br /&gt;
 Sent x bytes in x seconds&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Stephen304</name></author>
		
	</entry>
	<entry>
		<id>https://massmesh.org/wiki/index.php?title=Ubiquiti_UAP_AC_Mesh&amp;diff=1861</id>
		<title>Ubiquiti UAP AC Mesh</title>
		<link rel="alternate" type="text/html" href="https://massmesh.org/wiki/index.php?title=Ubiquiti_UAP_AC_Mesh&amp;diff=1861"/>
		<updated>2020-09-15T14:40:55Z</updated>

		<summary type="html">&lt;p&gt;Stephen304: /* Flashing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Devices]]&lt;br /&gt;
[[Category:Ubiquiti]]&lt;br /&gt;
[[File:Ubnt-uap-ac-m.png|thumb|UAP AC Mesh -- Front]]&lt;br /&gt;
[[File:UAP_Mounting_Slide.jpeg|thumb|UAP AC Mesh -- Back]]&lt;br /&gt;
&lt;br /&gt;
The UAP AC Mesh is an omnidirectional, weather resistant, PoE powered access point. It is useful for short (less than one block,) unplanned links. If you live in an apartment building, this device will connect you with your next-door neighbor through the wall.&lt;br /&gt;
&lt;br /&gt;
{{ Warning| This is a PoE device. Never connect your computer directly to the PoE injector's red port!!!}}&lt;br /&gt;
&lt;br /&gt;
== Files ==&lt;br /&gt;
[https://dl.ui.com/unifi/firmware/U7PG2/3.7.58.6385/BZ.qca956x.v3.7.58.6385.170508.0957.bin Ubiquiti Firmware (Downgrade to 3.7.xx)]&lt;br /&gt;
&lt;br /&gt;
[https://downloads.massmesh.net/snapshots/images/meshradio/ubnt_unifiac-mesh/openwrt-massmesh-meshradio-ath79-generic-ubnt_unifiac-mesh-squashfs-sysupgrade.bin Mass Mesh Firmware (sysupgrade)]&lt;br /&gt;
&lt;br /&gt;
== Flashing ==&lt;br /&gt;
&lt;br /&gt;
=== From OpenWRT ===&lt;br /&gt;
If you're already using OpenWRT, you can use Luci to install the Mass Mesh firmware. &lt;br /&gt;
# Download the latest [https://downloads.massmesh.net/snapshots/images/meshradio/ubnt_unifiac-mesh/openwrt-massmesh-meshradio-ath79-generic-ubnt_unifiac-mesh-squashfs-sysupgrade.bin MassMesh sysupgrade firmware.]&lt;br /&gt;
# Connect to the Nanostation and enter its IP address into your favorite web browser.&lt;br /&gt;
## If you are using another version of OpenWrt, please refer to its documentation for details about its IP address.&lt;br /&gt;
# Navigate to System → Backup / Flash Firmware → Actions: '''Flash new firmware image.'''&lt;br /&gt;
# Choose the sysupgrade file previously downloaded and click '''Flash'''&lt;br /&gt;
# Wait for the device to complete and reboot (This can take up to 5 minutes.)&lt;br /&gt;
&lt;br /&gt;
=== From Stock Firmware (Ubiquiti AirOS) ===&lt;br /&gt;
If your device shipped with the latest firmware, or if you upgraded to version &amp;lt;code&amp;gt;3.8.xx.xxxx&amp;lt;/code&amp;gt; or higher, you need to downgrade the device before you can flash it due to the &amp;lt;code&amp;gt;mtd&amp;lt;/code&amp;gt; utility being missing in later versions. Simply download any &amp;lt;code&amp;gt;3.7.xx.xxxx&amp;lt;/code&amp;gt; firmware image from [https://dl.ui.com/unifi/firmware/U7PG2/3.7.58.6385/BZ.qca956x.v3.7.58.6385.170508.0957.bin Ubiquiti Downloads] and complete this section before proceeding to [[#Install the Mass Mesh Firmware]].&amp;lt;section begin=&amp;quot;flash-uap-ac-mesh&amp;quot; /&amp;gt;{{Template:TFTP Flashing Steps&lt;br /&gt;
|factory_reset_steps=&lt;br /&gt;
# Unplug the ethernet from the antenna (This turns it off.)&lt;br /&gt;
# Use a paper clip to hold in the reset button&lt;br /&gt;
# Plug the ethernet back in to the antenna, holding the paperclip steady as you do&lt;br /&gt;
# Continue holding the paper clip until the light on the side of your UAP AC Mesh starts blinking OFF/WHITE/BLUE (should take about 30 seconds)&lt;br /&gt;
|firmware_link=[https://dl.ui.com/unifi/firmware/U7PG2/3.7.58.6385/BZ.qca956x.v3.7.58.6385.170508.0957.bin version 3.7 of Ubiquiti's AirOS]&lt;br /&gt;
|firmware_filename=firmware.bin&lt;br /&gt;
|firmware_renamed=yes&lt;br /&gt;
|device_ip=192.168.1.20&lt;br /&gt;
|user_ip=192.168.1.25/24&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The LED will flash at varying speeds, then it will turn solid when complete.&lt;br /&gt;
&lt;br /&gt;
* The radio will timeout if left in tftp mode for too long. If the transfer is unsuccessful, try power cycling the radio and entering tftp mode again.&lt;br /&gt;
* If you don't see something like what's shown above (maybe your &amp;quot;Transfer timed out.), go back and make sure that the light on the side of your UAP AC Mesh is blinking in the pattern indicated above. If not, start again from [[#Enter Factory Reset Mode]]&lt;br /&gt;
* If the light is blinking properly, make sure that your static IP address was assigned properly. If not, start again from [[#Set Up a Static IP Address]]&lt;br /&gt;
* If you are still having trouble transferring firmware to the device, reach out for help in the chatroom. Someone will help you get unstuck.&lt;br /&gt;
&lt;br /&gt;
=== Install the Mass Mesh Firmware ===&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Download the latest Mass Mesh radio firmware [https://downloads.massmesh.net/snapshots/images/meshradio/ubnt_unifiac-mesh/openwrt-massmesh-meshradio-ath79-generic-ubnt_unifiac-mesh-squashfs-sysupgrade.bin here.]&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Statically assign your computer the IP address &amp;lt;code&amp;gt;192.168.1.25&amp;lt;/code&amp;gt; (See [[#Set Up a Static IP Address]] if needed.)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Open a terminal/command prompt.&amp;lt;/b&amp;gt; You will need it in order to copy/paste the commands shown below.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Copy the Mass Mesh firmware onto the device:&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt; &amp;lt;pre&amp;gt;scp openwrt-ar71xx-generic-ubnt-unifiac-lite-squashfs-sysupgrade.bin ubnt@192.168.1.20:/tmp/&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;SSH into the device and log in with the default username and password &amp;lt;code&amp;gt;ubnt / ubnt&amp;lt;/code&amp;gt;&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;pre&amp;gt;ssh ubnt@192.168.1.20&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Then write the firmware to &amp;lt;code&amp;gt;kernel0&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;kernel1&amp;lt;/code&amp;gt; by entering the following into the terminal, line by line:&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;pre&amp;gt;BZ.v3.7.40# mtd write /tmp/openwrt-ar71xx-generic-ubnt-unifiac-lite-squashfs-sysupgrade.bin kernel0&lt;br /&gt;
BZ.v3.7.40# mtd -r write /tmp/openwrt-ar71xx-generic-ubnt-unifiac-lite-squashfs-sysupgrade.bin kernel1&amp;lt;/pre&amp;gt;&lt;br /&gt;
        &amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;You should see something like the following:&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;pre&amp;gt;BZ.v3.7.40# mtd write /tmp/openwrt-ar71xx-generic-ubnt-unifiac-lite-squashfs-sysupgrade.bin kernel0&lt;br /&gt;
Unlocking kernel0 ...&lt;br /&gt;
Erasing kernel0 ...&lt;br /&gt;
Writing from /tmp/openwrt-ar71xx-generic-ubnt-unifiac-lite-squashfs-sysupgrade.bin to kernel0 ...  [e/w]&lt;br /&gt;
&lt;br /&gt;
BZ.v3.7.40# mtd -r write /tmp/openwrt-ar71xx-generic-ubnt-unifiac-lite-squashfs-sysupgrade.bin kernel1&lt;br /&gt;
Unlocking kernel1 ...&lt;br /&gt;
Erasing kernel1 ...&lt;br /&gt;
Writing from /tmp/openwrt-ar71xx-generic-ubnt-unifiac-lite-squashfs-sysupgrade.bin to kernel1 ...  [e/w]&amp;lt;/pre&amp;gt;&lt;br /&gt;
         &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Type &amp;lt;code&amp;gt;reboot&amp;lt;/code&amp;gt; into the terminal, and hit enter. The radio will now restart. Please wait upwards of 5+ minutes during this &amp;quot;first boot&amp;quot; process. When the device is working properly, you should see a wifi network named &amp;quot;MassMesh.org&amp;quot;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;section end=&amp;quot;flash-uap-ac-mesh&amp;quot; /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Stephen304</name></author>
		
	</entry>
	<entry>
		<id>https://massmesh.org/wiki/index.php?title=Template:TFTP_Flashing_Steps&amp;diff=1860</id>
		<title>Template:TFTP Flashing Steps</title>
		<link rel="alternate" type="text/html" href="https://massmesh.org/wiki/index.php?title=Template:TFTP_Flashing_Steps&amp;diff=1860"/>
		<updated>2020-09-15T14:40:07Z</updated>

		<summary type="html">&lt;p&gt;Stephen304: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
This template allows easy inclusion of TFTP flashing instructions across the wiki.&lt;br /&gt;
&lt;br /&gt;
== Steps ==&lt;br /&gt;
{{Template:TFTP Flashing Steps}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;includeonly&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 1.6em;&amp;quot;&amp;gt;&lt;br /&gt;
====== Enter TFTP Mode ======&lt;br /&gt;
{{{factory_reset_steps|Follow the steps for your device to enter TFTP Mode}}}&lt;br /&gt;
&lt;br /&gt;
====== Set Up a Static IP Address ======&lt;br /&gt;
The next step is to assign your computer a static IP address {{#if: {{{user_ip|}}}|of &amp;lt;code&amp;gt;{{{user_ip}}}&amp;lt;/code&amp;gt;|in the appropriate subnet for your device. See the wiki page for your device if you are unsure}}.&lt;br /&gt;
# '''Windows:''' [https://winaero.com/blog/set-static-ip-address-windows-10/ Setting a static IP address in Windows 10]&lt;br /&gt;
# '''Mac:''' [https://osxdaily.com/2010/12/17/set-static-ip-address-mac/ Setting a static IP address in OSX]&lt;br /&gt;
# '''Linux:''' [https://linuxize.com/post/how-to-configure-static-ip-address-on-ubuntu-18-04/#configuring-static-ip-address-on-ubuntu-desktop Setting a static IP address in Ubuntu 18.04 desktop]&lt;br /&gt;
&lt;br /&gt;
====== Sending Firmware via TFTP ======&lt;br /&gt;
# Download {{{firmware_link|the firmware file you wish to flash}}}{{#if: {{{firmware_renamed|}}}{{{firmware_filename|}}}|&lt;br /&gt;
# Rename the firmware file to &amp;lt;code&amp;gt;{{{firmware_filename}}}&amp;lt;/code&amp;gt;, as the device will look for this file name| }}&lt;br /&gt;
# Launch a command prompt/terminal, and enter the following, one line at a time:&lt;br /&gt;
&lt;br /&gt;
 tftp&lt;br /&gt;
&lt;br /&gt;
 tftp&amp;gt; connect {{{device_ip|&amp;lt;device_ip&amp;gt;}}}&lt;br /&gt;
 tftp&amp;gt; binary&lt;br /&gt;
 tftp&amp;gt; rexmt 1&lt;br /&gt;
 tftp&amp;gt; timeout 60&lt;br /&gt;
 tftp&amp;gt; put {{{firmware_filename|&amp;lt;firmware_filename&amp;gt;}}}&lt;br /&gt;
 Sent x bytes in x seconds&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Stephen304</name></author>
		
	</entry>
	<entry>
		<id>https://massmesh.org/wiki/index.php?title=Template:TFTP_Flashing_Steps&amp;diff=1859</id>
		<title>Template:TFTP Flashing Steps</title>
		<link rel="alternate" type="text/html" href="https://massmesh.org/wiki/index.php?title=Template:TFTP_Flashing_Steps&amp;diff=1859"/>
		<updated>2020-09-15T14:32:32Z</updated>

		<summary type="html">&lt;p&gt;Stephen304: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
This template allows easy inclusion of TFTP flashing instructions across the wiki.&lt;br /&gt;
&lt;br /&gt;
== Steps ==&lt;br /&gt;
{{Template:TFTP Flashing Steps}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;includeonly&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 1.6em;&amp;quot;&amp;gt;&lt;br /&gt;
====== Enter TFTP Mode ======&lt;br /&gt;
{{{factory_reset_steps|Follow the steps for your device to enter TFTP Mode}}}&lt;br /&gt;
&lt;br /&gt;
====== Set Up a Static IP Address ======&lt;br /&gt;
The next step is to assign your computer a static IP address {{#if: {{{user_ip|}}}|of &amp;lt;code&amp;gt;{{{user_ip}}}&amp;lt;/code&amp;gt;|in the appropriate subnet for your device. See the wiki page for your device if you are unsure}}.&lt;br /&gt;
# '''Windows:''' [https://winaero.com/blog/set-static-ip-address-windows-10/ Setting a static IP address in Windows 10]&lt;br /&gt;
# '''Mac:''' [https://osxdaily.com/2010/12/17/set-static-ip-address-mac/ Setting a static IP address in OSX]&lt;br /&gt;
# '''Linux:''' [https://linuxize.com/post/how-to-configure-static-ip-address-on-ubuntu-18-04/#configuring-static-ip-address-on-ubuntu-desktop Setting a static IP address in Ubuntu 18.04 desktop]&lt;br /&gt;
&lt;br /&gt;
====== Downgrade Ubiquiti AirOS ======&lt;br /&gt;
&lt;br /&gt;
Because we are &amp;quot;jailbreaking&amp;quot; the Ubiquiti router, we have to downgrade to an older version of their proprietary firmware first. Using a tool called TFTP, we can do this quite simply.&lt;br /&gt;
&lt;br /&gt;
# Download {{{firmware_link|the firmware file you wish to flash}}}{{#if: {{{firmware_renamed|}}}{{{firmware_filename|}}}|&lt;br /&gt;
# Rename the firmware file to &amp;lt;code&amp;gt;{{{firmware_filename}}}&amp;lt;/code&amp;gt;, as the device will look for this file name| }}&lt;br /&gt;
# Launch a command prompt/terminal, and enter the following, one line at a time:&lt;br /&gt;
&lt;br /&gt;
 tftp&lt;br /&gt;
&lt;br /&gt;
 tftp&amp;gt; connect {{{device_ip|&amp;lt;device_ip&amp;gt;}}}&lt;br /&gt;
 tftp&amp;gt; binary&lt;br /&gt;
 tftp&amp;gt; rexmt 1&lt;br /&gt;
 tftp&amp;gt; timeout 60&lt;br /&gt;
 tftp&amp;gt; put {{{firmware_filename|&amp;lt;firmware_filename&amp;gt;}}}&lt;br /&gt;
 Sent x bytes in x seconds&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Stephen304</name></author>
		
	</entry>
	<entry>
		<id>https://massmesh.org/wiki/index.php?title=Template:TFTP_Flashing_Steps&amp;diff=1858</id>
		<title>Template:TFTP Flashing Steps</title>
		<link rel="alternate" type="text/html" href="https://massmesh.org/wiki/index.php?title=Template:TFTP_Flashing_Steps&amp;diff=1858"/>
		<updated>2020-09-15T14:31:38Z</updated>

		<summary type="html">&lt;p&gt;Stephen304: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
This template allows easy inclusion of TFTP flashing instructions across the wiki.&lt;br /&gt;
&lt;br /&gt;
== Steps ==&lt;br /&gt;
{{Template:TFTP Flashing Steps}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;includeonly&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 1.6em;&amp;quot;&amp;gt;&lt;br /&gt;
==== Enter TFTP Mode ====&lt;br /&gt;
{{{factory_reset_steps|Follow the steps for your device to enter TFTP Mode}}}&lt;br /&gt;
&lt;br /&gt;
==== Set Up a Static IP Address ====&lt;br /&gt;
The next step is to assign your computer a static IP address {{#if: {{{user_ip|}}}|of &amp;lt;code&amp;gt;{{{user_ip}}}&amp;lt;/code&amp;gt;|in the appropriate subnet for your device. See the wiki page for your device if you are unsure}}.&lt;br /&gt;
# '''Windows:''' [https://winaero.com/blog/set-static-ip-address-windows-10/ Setting a static IP address in Windows 10]&lt;br /&gt;
# '''Mac:''' [https://osxdaily.com/2010/12/17/set-static-ip-address-mac/ Setting a static IP address in OSX]&lt;br /&gt;
# '''Linux:''' [https://linuxize.com/post/how-to-configure-static-ip-address-on-ubuntu-18-04/#configuring-static-ip-address-on-ubuntu-desktop Setting a static IP address in Ubuntu 18.04 desktop]&lt;br /&gt;
&lt;br /&gt;
==== Downgrade Ubiquiti AirOS ====&lt;br /&gt;
&lt;br /&gt;
Because we are &amp;quot;jailbreaking&amp;quot; the Ubiquiti router, we have to downgrade to an older version of their proprietary firmware first. Using a tool called TFTP, we can do this quite simply.&lt;br /&gt;
&lt;br /&gt;
# Download {{{firmware_link|the firmware file you wish to flash}}}{{#if: {{{firmware_renamed|}}}{{{firmware_filename|}}}|&lt;br /&gt;
# Rename the firmware file to &amp;lt;code&amp;gt;{{{firmware_filename}}}&amp;lt;/code&amp;gt;, as the device will look for this file name| }}&lt;br /&gt;
# Launch a command prompt/terminal, and enter the following, one line at a time:&lt;br /&gt;
&lt;br /&gt;
 tftp&lt;br /&gt;
&lt;br /&gt;
 tftp&amp;gt; connect {{{device_ip|&amp;lt;device_ip&amp;gt;}}}&lt;br /&gt;
 tftp&amp;gt; binary&lt;br /&gt;
 tftp&amp;gt; rexmt 1&lt;br /&gt;
 tftp&amp;gt; timeout 60&lt;br /&gt;
 tftp&amp;gt; put {{{firmware_filename|&amp;lt;firmware_filename&amp;gt;}}}&lt;br /&gt;
 Sent x bytes in x seconds&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Stephen304</name></author>
		
	</entry>
	<entry>
		<id>https://massmesh.org/wiki/index.php?title=Template:TFTP_Flashing_Steps&amp;diff=1857</id>
		<title>Template:TFTP Flashing Steps</title>
		<link rel="alternate" type="text/html" href="https://massmesh.org/wiki/index.php?title=Template:TFTP_Flashing_Steps&amp;diff=1857"/>
		<updated>2020-09-15T14:27:31Z</updated>

		<summary type="html">&lt;p&gt;Stephen304: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
This template allows easy inclusion of TFTP flashing instructions across the wiki.&lt;br /&gt;
&lt;br /&gt;
== Steps ==&lt;br /&gt;
{{Template:TFTP Flashing Steps}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;includeonly&amp;gt;&lt;br /&gt;
==== Enter TFTP Mode ====&lt;br /&gt;
{{{factory_reset_steps|Follow the steps for your device to enter TFTP Mode}}}&lt;br /&gt;
&lt;br /&gt;
==== Set Up a Static IP Address ====&lt;br /&gt;
The next step is to assign your computer a static IP address {{#if: {{{user_ip|}}}|of &amp;lt;code&amp;gt;{{{user_ip}}}&amp;lt;/code&amp;gt;|in the appropriate subnet for your device. See the wiki page for your device if you are unsure}}.&lt;br /&gt;
# '''Windows:''' [https://winaero.com/blog/set-static-ip-address-windows-10/ Setting a static IP address in Windows 10]&lt;br /&gt;
# '''Mac:''' [https://osxdaily.com/2010/12/17/set-static-ip-address-mac/ Setting a static IP address in OSX]&lt;br /&gt;
# '''Linux:''' [https://linuxize.com/post/how-to-configure-static-ip-address-on-ubuntu-18-04/#configuring-static-ip-address-on-ubuntu-desktop Setting a static IP address in Ubuntu 18.04 desktop]&lt;br /&gt;
&lt;br /&gt;
==== Downgrade Ubiquiti AirOS ====&lt;br /&gt;
&lt;br /&gt;
Because we are &amp;quot;jailbreaking&amp;quot; the Ubiquiti router, we have to downgrade to an older version of their proprietary firmware first. Using a tool called TFTP, we can do this quite simply.&lt;br /&gt;
&lt;br /&gt;
# Download {{{firmware_link|the firmware file you wish to flash}}}{{#if: {{{firmware_renamed|}}}{{{firmware_filename|}}}|&lt;br /&gt;
# Rename the firmware file to &amp;lt;code&amp;gt;{{{firmware_filename}}}&amp;lt;/code&amp;gt;, as the device will look for this file name| }}&lt;br /&gt;
# Launch a command prompt/terminal, and enter the following, one line at a time:&lt;br /&gt;
&lt;br /&gt;
 tftp&lt;br /&gt;
&lt;br /&gt;
 tftp&amp;gt; connect {{{device_ip|&amp;lt;device_ip&amp;gt;}}}&lt;br /&gt;
 tftp&amp;gt; binary&lt;br /&gt;
 tftp&amp;gt; rexmt 1&lt;br /&gt;
 tftp&amp;gt; timeout 60&lt;br /&gt;
 tftp&amp;gt; put {{{firmware_filename|&amp;lt;firmware_filename&amp;gt;}}}&lt;br /&gt;
 Sent x bytes in x seconds&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Stephen304</name></author>
		
	</entry>
	<entry>
		<id>https://massmesh.org/wiki/index.php?title=Template:TFTP_Flashing_Steps&amp;diff=1856</id>
		<title>Template:TFTP Flashing Steps</title>
		<link rel="alternate" type="text/html" href="https://massmesh.org/wiki/index.php?title=Template:TFTP_Flashing_Steps&amp;diff=1856"/>
		<updated>2020-09-15T14:21:56Z</updated>

		<summary type="html">&lt;p&gt;Stephen304: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
This template allows easy inclusion of TFTP flashing instructions across the wiki.&lt;br /&gt;
&lt;br /&gt;
== Steps ==&lt;br /&gt;
{{Template:TFTP Flashing Steps}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;includeonly&amp;gt;&lt;br /&gt;
=== Enter TFTP Mode ===&lt;br /&gt;
{{{factory_reset_steps|Follow the steps for your device to enter TFTP Mode}}}&lt;br /&gt;
&lt;br /&gt;
=== Set Up a Static IP Address ===&lt;br /&gt;
The next step is to assign your computer a static IP address {{#if: {{{user_ip|}}}|of &amp;lt;code&amp;gt;{{{user_ip}}}&amp;lt;/code&amp;gt;|in the appropriate subnet for your device. See the wiki page for your device if you are unsure}}.&lt;br /&gt;
# '''Windows:''' [https://winaero.com/blog/set-static-ip-address-windows-10/ Setting a static IP address in Windows 10]&lt;br /&gt;
# '''Mac:''' [https://osxdaily.com/2010/12/17/set-static-ip-address-mac/ Setting a static IP address in OSX]&lt;br /&gt;
# '''Linux:''' [https://linuxize.com/post/how-to-configure-static-ip-address-on-ubuntu-18-04/#configuring-static-ip-address-on-ubuntu-desktop Setting a static IP address in Ubuntu 18.04 desktop]&lt;br /&gt;
&lt;br /&gt;
=== Downgrade Ubiquiti AirOS ===&lt;br /&gt;
&lt;br /&gt;
Because we are &amp;quot;jailbreaking&amp;quot; the Ubiquiti router, we have to downgrade to an older version of their proprietary firmware first. Using a tool called TFTP, we can do this quite simply.&lt;br /&gt;
&lt;br /&gt;
# Download {{{firmware_link|the firmware file you wish to flash}}}{{#if: {{{firmware_renamed|}}}{{{firmware_filename|}}}|&lt;br /&gt;
# Rename the firmware file to &amp;lt;code&amp;gt;{{{firmware_filename}}}&amp;lt;/code&amp;gt;, as the device will look for this file name| }}&lt;br /&gt;
# Launch a command prompt/terminal, and enter the following, one line at a time:&lt;br /&gt;
&lt;br /&gt;
 tftp&lt;br /&gt;
&lt;br /&gt;
 tftp&amp;gt; connect {{{device_ip|&amp;lt;device_ip&amp;gt;}}}&lt;br /&gt;
 tftp&amp;gt; binary&lt;br /&gt;
 tftp&amp;gt; rexmt 1&lt;br /&gt;
 tftp&amp;gt; timeout 60&lt;br /&gt;
 tftp&amp;gt; put {{{firmware_filename|&amp;lt;firmware_filename&amp;gt;}}}&lt;br /&gt;
 Sent x bytes in x seconds&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Stephen304</name></author>
		
	</entry>
	<entry>
		<id>https://massmesh.org/wiki/index.php?title=Template:TFTP_Flashing_Steps&amp;diff=1855</id>
		<title>Template:TFTP Flashing Steps</title>
		<link rel="alternate" type="text/html" href="https://massmesh.org/wiki/index.php?title=Template:TFTP_Flashing_Steps&amp;diff=1855"/>
		<updated>2020-09-15T14:19:04Z</updated>

		<summary type="html">&lt;p&gt;Stephen304: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
This template allows easy inclusion of TFTP flashing instructions across the wiki.&lt;br /&gt;
&lt;br /&gt;
== Steps ==&lt;br /&gt;
{{Template:TFTP Flashing Steps}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;includeonly&amp;gt;&lt;br /&gt;
=== Enter TFTP Mode ===&lt;br /&gt;
{{{factory_reset_steps|Follow the steps for your device to enter TFTP Mode}}}&lt;br /&gt;
&lt;br /&gt;
=== Set Up a Static IP Address ===&lt;br /&gt;
The next step is to assign your computer a static IP address of &amp;lt;code&amp;gt;192.168.1.25/24&amp;lt;/code&amp;gt;&lt;br /&gt;
# '''Windows:''' [https://winaero.com/blog/set-static-ip-address-windows-10/ Setting a static IP address in Windows 10]&lt;br /&gt;
# '''Mac:''' [https://osxdaily.com/2010/12/17/set-static-ip-address-mac/ Setting a static IP address in OSX]&lt;br /&gt;
# '''Linux:''' [https://linuxize.com/post/how-to-configure-static-ip-address-on-ubuntu-18-04/#configuring-static-ip-address-on-ubuntu-desktop Setting a static IP address in Ubuntu 18.04 desktop]&lt;br /&gt;
&lt;br /&gt;
=== Downgrade Ubiquiti AirOS ===&lt;br /&gt;
&lt;br /&gt;
Because we are &amp;quot;jailbreaking&amp;quot; the Ubiquiti router, we have to downgrade to an older version of their proprietary firmware first. Using a tool called TFTP, we can do this quite simply.&lt;br /&gt;
&lt;br /&gt;
# Download {{{firmware_link|the firmware file you wish to flash}}}{{#if: {{{firmware_renamed|}}}{{{firmware_filename|}}}|&lt;br /&gt;
# Rename the firmware file to &amp;lt;code&amp;gt;{{{firmware_filename}}}&amp;lt;/code&amp;gt;, as the device will look for this file name| }}&lt;br /&gt;
# Launch a command prompt/terminal, and enter the following, one line at a time:&lt;br /&gt;
&lt;br /&gt;
 tftp&lt;br /&gt;
&lt;br /&gt;
 tftp&amp;gt; connect {{{device_ip|&amp;lt;device_ip&amp;gt;}}}&lt;br /&gt;
 tftp&amp;gt; binary&lt;br /&gt;
 tftp&amp;gt; rexmt 1&lt;br /&gt;
 tftp&amp;gt; timeout 60&lt;br /&gt;
 tftp&amp;gt; put {{{firmware_filename|&amp;lt;firmware_filename&amp;gt;}}}&lt;br /&gt;
 Sent x bytes in x seconds&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Stephen304</name></author>
		
	</entry>
	<entry>
		<id>https://massmesh.org/wiki/index.php?title=Template:TFTP_Flashing_Steps&amp;diff=1854</id>
		<title>Template:TFTP Flashing Steps</title>
		<link rel="alternate" type="text/html" href="https://massmesh.org/wiki/index.php?title=Template:TFTP_Flashing_Steps&amp;diff=1854"/>
		<updated>2020-09-15T08:02:02Z</updated>

		<summary type="html">&lt;p&gt;Stephen304: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
This template allows easy inclusion of TFTP flashing instructions across the wiki.&lt;br /&gt;
&lt;br /&gt;
== Steps ==&lt;br /&gt;
{{Template:TFTP Flashing Steps}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;includeonly&amp;gt;&lt;br /&gt;
=== Enter TFTP Mode ===&lt;br /&gt;
{{{factory_reset_steps|Follow the steps for your device to enter TFTP Mode}}}&lt;br /&gt;
&lt;br /&gt;
=== Set Up a Static IP Address ===&lt;br /&gt;
The next step is to assign your computer a static IP address of &amp;lt;code&amp;gt;192.168.1.25/24&amp;lt;/code&amp;gt;&lt;br /&gt;
# '''Windows:''' [https://winaero.com/blog/set-static-ip-address-windows-10/ Setting a static IP address in Windows 10]&lt;br /&gt;
# '''Mac:''' [https://osxdaily.com/2010/12/17/set-static-ip-address-mac/ Setting a static IP address in OSX]&lt;br /&gt;
# '''Linux:''' [https://linuxize.com/post/how-to-configure-static-ip-address-on-ubuntu-18-04/#configuring-static-ip-address-on-ubuntu-desktop Setting a static IP address in Ubuntu 18.04 desktop]&lt;br /&gt;
&lt;br /&gt;
=== Downgrade Ubiquiti AirOS ===&lt;br /&gt;
&lt;br /&gt;
Because we are &amp;quot;jailbreaking&amp;quot; the Ubiquiti router, we have to downgrade to an older version of their proprietary firmware first. Using a tool called TFTP, we can do this quite simply.&lt;br /&gt;
&lt;br /&gt;
# Download {{{firmware_link|the firmware file you wish to flash}}}&lt;br /&gt;
&lt;br /&gt;
{{#if: {{{rename_firmware|}}}|# Rename the firmware file to &amp;lt;code&amp;gt;{{{rename_firmware}}}&amp;lt;/code&amp;gt;, as the device will look for this file name| }}&lt;br /&gt;
&lt;br /&gt;
# Launch a command prompt/terminal, and enter the following, one line at a time:&lt;br /&gt;
&lt;br /&gt;
 tftp&lt;br /&gt;
&lt;br /&gt;
 tftp&amp;gt; connect {{{device_ip|&amp;lt;device_ip&amp;gt;}}}&lt;br /&gt;
 tftp&amp;gt; binary&lt;br /&gt;
 tftp&amp;gt; rexmt 1&lt;br /&gt;
 tftp&amp;gt; timeout 60&lt;br /&gt;
 tftp&amp;gt; put {{{rename_firmware|{{{firmware_filename|firmware.bin}}}}}}&lt;br /&gt;
 Sent x bytes in x seconds&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Stephen304</name></author>
		
	</entry>
	<entry>
		<id>https://massmesh.org/wiki/index.php?title=Template:TFTP_Flashing_Steps&amp;diff=1853</id>
		<title>Template:TFTP Flashing Steps</title>
		<link rel="alternate" type="text/html" href="https://massmesh.org/wiki/index.php?title=Template:TFTP_Flashing_Steps&amp;diff=1853"/>
		<updated>2020-09-15T07:39:08Z</updated>

		<summary type="html">&lt;p&gt;Stephen304: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
This template allows easy inclusion of TFTP flashing instructions across the wiki.&lt;br /&gt;
&lt;br /&gt;
== Steps ==&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
=== Enter Factory Reset Mode ===&lt;br /&gt;
# Unplug the ethernet from the antenna (This turns it off.)&lt;br /&gt;
# Use a paper clip to hold in the reset button&lt;br /&gt;
# Plug the ethernet back in to the antenna, holding the paperclip steady as you do&lt;br /&gt;
# Continue holding the paper clip until the light on the side of your UAP AC Mesh starts blinking OFF/WHITE/BLUE (should take about 30 seconds)&lt;br /&gt;
&lt;br /&gt;
=== Set Up a Static IP Address ===&lt;br /&gt;
The next step is to assign your computer a static IP address of &amp;lt;code&amp;gt;192.168.1.25/24&amp;lt;/code&amp;gt;&lt;br /&gt;
# '''Windows:''' [https://winaero.com/blog/set-static-ip-address-windows-10/ Setting a static IP address in Windows 10]&lt;br /&gt;
# '''Mac:''' [https://osxdaily.com/2010/12/17/set-static-ip-address-mac/ Setting a static IP address in OSX]&lt;br /&gt;
# '''Linux:''' [https://linuxize.com/post/how-to-configure-static-ip-address-on-ubuntu-18-04/#configuring-static-ip-address-on-ubuntu-desktop Setting a static IP address in Ubuntu 18.04 desktop]&lt;br /&gt;
&lt;br /&gt;
=== Downgrade Ubiquiti AirOS ===&lt;br /&gt;
&lt;br /&gt;
Because we are &amp;quot;jailbreaking&amp;quot; the Ubiquiti router, we have to downgrade to an older version of their proprietary firmware first. Using a tool called TFTP, we can do this quite simply.&lt;br /&gt;
&lt;br /&gt;
# Download [https://dl.ui.com/unifi/firmware/U7PG2/3.7.58.6385/BZ.qca956x.v3.7.58.6385.170508.0957.bin version 3.7 of Ubiquiti's AirOS]&lt;br /&gt;
# Rename the firmware file to &amp;lt;code&amp;gt;firmware.bin&amp;lt;/code&amp;gt;, as the device will look for this file name&lt;br /&gt;
# Launch a command prompt/terminal, and enter the following, one line at a time:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tftp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tftp&amp;gt; connect {{{device_ip|&amp;lt;device_ip&amp;gt;}}}&lt;br /&gt;
tftp&amp;gt; binary&lt;br /&gt;
tftp&amp;gt; rexmt 1&lt;br /&gt;
tftp&amp;gt; timeout 60&lt;br /&gt;
tftp&amp;gt; put firmware.bin&lt;br /&gt;
Sent x bytes in x seconds&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Stephen304</name></author>
		
	</entry>
	<entry>
		<id>https://massmesh.org/wiki/index.php?title=Template:TFTP_Flashing_Steps&amp;diff=1852</id>
		<title>Template:TFTP Flashing Steps</title>
		<link rel="alternate" type="text/html" href="https://massmesh.org/wiki/index.php?title=Template:TFTP_Flashing_Steps&amp;diff=1852"/>
		<updated>2020-09-15T07:37:22Z</updated>

		<summary type="html">&lt;p&gt;Stephen304: /* Steps */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
This template allows easy inclusion of TFTP flashing instructions across the wiki.&lt;br /&gt;
&lt;br /&gt;
== Steps ==&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
=== Enter Factory Reset Mode ===&lt;br /&gt;
# Unplug the ethernet from the antenna (This turns it off.)&lt;br /&gt;
# Use a paper clip to hold in the reset button&lt;br /&gt;
# Plug the ethernet back in to the antenna, holding the paperclip steady as you do&lt;br /&gt;
# Continue holding the paper clip until the light on the side of your UAP AC Mesh starts blinking OFF/WHITE/BLUE (should take about 30 seconds)&lt;br /&gt;
&lt;br /&gt;
=== Set Up a Static IP Address ===&lt;br /&gt;
The next step is to assign your computer a static IP address of &amp;lt;code&amp;gt;192.168.1.25/24&amp;lt;/code&amp;gt;&lt;br /&gt;
# '''Windows:''' [https://winaero.com/blog/set-static-ip-address-windows-10/ Setting a static IP address in Windows 10]&lt;br /&gt;
# '''Mac:''' [https://osxdaily.com/2010/12/17/set-static-ip-address-mac/ Setting a static IP address in OSX]&lt;br /&gt;
# '''Linux:''' [https://linuxize.com/post/how-to-configure-static-ip-address-on-ubuntu-18-04/#configuring-static-ip-address-on-ubuntu-desktop Setting a static IP address in Ubuntu 18.04 desktop]&lt;br /&gt;
&lt;br /&gt;
=== Downgrade Ubiquiti AirOS ===&lt;br /&gt;
&lt;br /&gt;
Because we are &amp;quot;jailbreaking&amp;quot; the Ubiquiti router, we have to downgrade to an older version of their proprietary firmware first. Using a tool called TFTP, we can do this quite simply.&lt;br /&gt;
&lt;br /&gt;
# Download [https://dl.ui.com/unifi/firmware/U7PG2/3.7.58.6385/BZ.qca956x.v3.7.58.6385.170508.0957.bin version 3.7 of Ubiquiti's AirOS]&lt;br /&gt;
# Rename the firmware file to &amp;lt;code&amp;gt;firmware.bin&amp;lt;/code&amp;gt;, as the device will look for this file name&lt;br /&gt;
# Launch a command prompt/terminal, and enter the following, one line at a time:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tftp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tftp&amp;gt; connect 192.168.1.20&lt;br /&gt;
tftp&amp;gt; binary&lt;br /&gt;
tftp&amp;gt; rexmt 1&lt;br /&gt;
tftp&amp;gt; timeout 60&lt;br /&gt;
tftp&amp;gt; put firmware.bin&lt;br /&gt;
Sent x bytes in x seconds&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Stephen304</name></author>
		
	</entry>
	<entry>
		<id>https://massmesh.org/wiki/index.php?title=Template:TFTP_Flashing_Steps&amp;diff=1851</id>
		<title>Template:TFTP Flashing Steps</title>
		<link rel="alternate" type="text/html" href="https://massmesh.org/wiki/index.php?title=Template:TFTP_Flashing_Steps&amp;diff=1851"/>
		<updated>2020-09-15T07:26:24Z</updated>

		<summary type="html">&lt;p&gt;Stephen304: Created page with &amp;quot;&amp;lt;noinclude&amp;gt; This template allows easy inclusion of TFTP flashing instructions across the wiki.  == Steps == &amp;lt;/noinclude&amp;gt; === Enter Factory Reset Mode ===  # Unplug the etherne...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
This template allows easy inclusion of TFTP flashing instructions across the wiki.&lt;br /&gt;
&lt;br /&gt;
== Steps ==&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
=== Enter Factory Reset Mode ===&lt;br /&gt;
&lt;br /&gt;
# Unplug the ethernet from the antenna (This turns it off.)&lt;br /&gt;
# Use a paper clip to hold in the reset button&lt;br /&gt;
# Plug the ethernet back in to the antenna, holding the paperclip steady as you do&lt;br /&gt;
# Continue holding the paper clip until the light on the side of your UAP AC Mesh starts blinking OFF/WHITE/BLUE (should take about 30 seconds)&lt;br /&gt;
&lt;br /&gt;
=== Set Up a Static IP Address ===&lt;br /&gt;
&lt;br /&gt;
The next step is to assign your computer a static IP address of &amp;lt;code&amp;gt;192.168.1.25/24&amp;lt;/code&amp;gt;&lt;br /&gt;
# '''Windows:''' [https://winaero.com/blog/set-static-ip-address-windows-10/ Setting a static IP address in Windows 10]&lt;br /&gt;
# '''Mac:''' [https://osxdaily.com/2010/12/17/set-static-ip-address-mac/ Setting a static IP address in OSX]&lt;br /&gt;
# '''Linux:''' [https://linuxize.com/post/how-to-configure-static-ip-address-on-ubuntu-18-04/#configuring-static-ip-address-on-ubuntu-desktop Setting a static IP address in Ubuntu 18.04 desktop]&lt;br /&gt;
&lt;br /&gt;
=== Downgrade Ubiquiti AirOS ===&lt;br /&gt;
&lt;br /&gt;
Because we are &amp;quot;jailbreaking&amp;quot; the Ubiquiti router, we have to downgrade to an older version of their proprietary firmware first. Using a tool called TFTP, we can do this quite simply.&lt;br /&gt;
&lt;br /&gt;
# Download [https://dl.ui.com/unifi/firmware/U7PG2/3.7.58.6385/BZ.qca956x.v3.7.58.6385.170508.0957.bin version 3.7 of Ubiquiti's AirOS]&lt;br /&gt;
# Rename the firmware file to &amp;lt;code&amp;gt;firmware.bin&amp;lt;/code&amp;gt;, as the device will look for this file name&lt;br /&gt;
# Launch a command prompt/terminal, and enter the following, one line at a time:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tftp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tftp&amp;gt; connect 192.168.1.20&lt;br /&gt;
tftp&amp;gt; binary&lt;br /&gt;
tftp&amp;gt; rexmt 1&lt;br /&gt;
tftp&amp;gt; timeout 60&lt;br /&gt;
tftp&amp;gt; put firmware.bin&lt;br /&gt;
Sent x bytes in x seconds&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Stephen304</name></author>
		
	</entry>
	<entry>
		<id>https://massmesh.org/wiki/index.php?title=Ubiquiti_NanoStation_5AC_Loco&amp;diff=1850</id>
		<title>Ubiquiti NanoStation 5AC Loco</title>
		<link rel="alternate" type="text/html" href="https://massmesh.org/wiki/index.php?title=Ubiquiti_NanoStation_5AC_Loco&amp;diff=1850"/>
		<updated>2020-09-14T20:26:13Z</updated>

		<summary type="html">&lt;p&gt;Stephen304: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Devices]]&lt;br /&gt;
[[Category:Ubiquiti]]&lt;br /&gt;
[[File:Ubnt-ns-5ac-loco.png|thumb|NanoStation 5AC Loco]]&lt;br /&gt;
&lt;br /&gt;
The NanoStation 5AC Loco is a directional, weather resistant, PoE powered radio with a beam width of 90 degrees and a secondary omnidirectional radio. This makes it useful for simultaneously meshing on one radio while providing an access point for client devices on the other.&lt;br /&gt;
&lt;br /&gt;
{{ Warning| This is a PoE device. Never connect your computer directly to the PoE injector's red port!!!}}&lt;br /&gt;
&lt;br /&gt;
{{Note| The Nanostation's architecture is '''MIPS 24KC.'''}}&lt;br /&gt;
&lt;br /&gt;
{{ Warning| As of January 1, 2020, brand new Nanostations do not support downgrading the Ubiquiti AirOS firmware. (Even with the patch.) Instead, you must [[#Flash using serial header access|Flash using serial header access]]}}&lt;br /&gt;
&lt;br /&gt;
== Files ==&lt;br /&gt;
[https://dl.ubnt.com/firmwares/XC-fw/v8.5.0/WA.v8.5.0.36727.180118.1314.bin Stock Firmware v8.5.0.36727]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/MassMesh/meta-imagebuilder-artifacts/raw/master/massmesh/meshradio/ubnt_nanostation-ac-loco/openwrt-massmesh-meshradio-ath79-generic-ubnt_nanostation-ac-loco-squashfs-factory.bin MassMesh Firmware (Factory) (Latest)]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/MassMesh/meta-imagebuilder-artifacts/raw/master/massmesh/meshradio/ubnt_nanostation-ac-loco/openwrt-massmesh-meshradio-ath79-generic-ubnt_nanostation-ac-loco-squashfs-sysupgrade.bin MassMesh Firmware (Sysupgrade) (Latest)]&lt;br /&gt;
&lt;br /&gt;
== Flashing ==&lt;br /&gt;
&lt;br /&gt;
=== From OpenWrt ===&lt;br /&gt;
{{Note|Mass Mesh mesh radios have a static IP of 192.168.2.1. To access the admin UI, set your computer's ip/netmask to 192.168.2.10/24, then browse to http://192.168.2.1/ in your favorite web browser.}}&lt;br /&gt;
# Download the latest [https://github.com/MassMesh/meta-imagebuilder-artifacts/raw/master/massmesh/meshradio/ubnt_nanostation-ac-loco/openwrt-massmesh-meshradio-ath79-generic-ubnt_nanostation-ac-loco-squashfs-sysupgrade.bin MassMesh sysupgrade firmware.]&lt;br /&gt;
# Connect to the Nanostation and enter its IP address into your favorite web browser.&lt;br /&gt;
## If you are using another version of OpenWrt, please refer to its documentation for details about its IP address.&lt;br /&gt;
# Navigate to System → Backup / Flash Firmware → Actions: '''Flash new firmware image.'''&lt;br /&gt;
# Choose the sysupgrade file previously downloaded and click '''Flash'''&lt;br /&gt;
# Wait for the device to complete and reboot (This can take up to 5 minutes.)&lt;br /&gt;
&lt;br /&gt;
=== From Stock Firmware (Ubiquiti AirOS)===&lt;br /&gt;
&lt;br /&gt;
==== Downgrade Ubiquiti AirOS via Web UI ====&lt;br /&gt;
&lt;br /&gt;
# Download the [https://dl.ubnt.com/firmwares/XC-fw/v8.5.0/WA.v8.5.0.36727.180118.1314.bin Stock Firmware Image v8.5.0.36727].&lt;br /&gt;
# Power on the Nanostation via a PoE injector. (This is the **red** ethernet port on your injector.)&lt;br /&gt;
# Connect the LAN side of the PoE injector to a computer.&lt;br /&gt;
# Assign a static IP/netmask of &amp;lt;code&amp;gt;192.168.1.25/24&amp;lt;/code&amp;gt; to the computer&lt;br /&gt;
## &amp;lt;code&amp;gt;sudo ip addr add 192.168.1.25/24 dev eth0&amp;lt;/code&amp;gt;&lt;br /&gt;
# Use a browser to visit http://192.168.1.20/&lt;br /&gt;
# Login using the set password or default credentials &amp;lt;code&amp;gt;ubnt / ubnt&amp;lt;/code&amp;gt;&lt;br /&gt;
# Navigate to settings and downgrade the stock firmware to v8.5.0.36727 using the downloaded image file&lt;br /&gt;
&lt;br /&gt;
{{Note|Newer versions of the NanoStation 5AC Loco block downgrading the firmware to 8.5.0. If you encounter this error, you will need to open up the radio and use the [[#Downgrade Ubiquiti AirOS With An External Programmer|Pomona clip method]] or the [[#Flash using serial header access|serial flashing method]].}}&lt;br /&gt;
&lt;br /&gt;
==== Downgrade Ubiquiti AirOS via TFTP ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget https://dl.ubnt.com/firmwares/XC-fw/v8.5.0/WA.v8.5.0.36727.180118.1314.bin&lt;br /&gt;
cp https://dl.ubnt.com/firmwares/XC-fw/v8.5.0/WA.v8.5.0.36727.180118.1314.bin firmware.bin&lt;br /&gt;
sudo apt install tftp&lt;br /&gt;
tftp&lt;br /&gt;
tftp&amp;gt; connect 192.168.1.20&lt;br /&gt;
tftp&amp;gt; rexmt 1&lt;br /&gt;
tftp&amp;gt; timeout 60&lt;br /&gt;
tftp&amp;gt; binary&lt;br /&gt;
tftp&amp;gt; put firmware.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No re-boot is necessary. You should be able to access the router at 192.168.1.20 after a couple of minutes.&lt;br /&gt;
&lt;br /&gt;
{{Note|Newer versions of the NanoStation 5AC Loco block downgrading the firmware to 8.5.0. If you encounter an &amp;quot;Initialization Error&amp;quot; after flashing, you will need to open up the radio and use the [[#Downgrade Ubiquiti AirOS With An External Programmer|Pomona clip method]] or the [[#Flash using serial header access|serial flashing method]].}}&lt;br /&gt;
&lt;br /&gt;
==== Install The Mass Mesh OpenWrt Image ====&lt;br /&gt;
&lt;br /&gt;
{{ Note| Additional instructions are available [https://openwrt.org/toh/ubiquiti/ubiquiti_nanostation_ac_loco on OpenWrt's website]. The &amp;quot;factory&amp;quot; image should be chosen for this step.}}&lt;br /&gt;
# Download the latest Mass Mesh firmware [https://github.com/MassMesh/meta-imagebuilder-artifacts/raw/master/massmesh/meshradio/ubnt_nanostation-ac-loco/openwrt-massmesh-meshradio-ath79-generic-ubnt_nanostation-ac-loco-squashfs-factory.bin here].&lt;br /&gt;
# Copy the firmware onto the nanostation. (We like to put it in the &amp;lt;code&amp;gt;/tmp/&amp;lt;/code&amp;gt; directory.)&lt;br /&gt;
# Open a secure shell on the Nanostation. &amp;lt;code&amp;gt;ssh ubnt@192.168.1.20&amp;lt;/code&amp;gt;&lt;br /&gt;
# Patch the fwupdate.real binary a la the instructions [https://openwrt.org/toh/ubiquiti/ubiquiti_nanostation_ac_loco here.]&lt;br /&gt;
# &amp;lt;code&amp;gt;/tmp/fwupdate.real -m /tmp/openwrt-massmesh-meshradio-ath79-generic-ubnt_nanostation-ac-loco-squashfs-factory.bin&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Advanced Flashing Techniques ==&lt;br /&gt;
&lt;br /&gt;
=== Downgrade Ubiquiti AirOS With An External Programmer===&lt;br /&gt;
&lt;br /&gt;
When your nanostation is bricked, or if the stock firmware won't let you flash our custom firmware, you can use the '''In-System Programming''' (ISP) technique to reflash the device (see also the [https://www.flashrom.org/ISP Flashrom wiki]. You're going to need:&lt;br /&gt;
&lt;br /&gt;
# a Pomona 5252 test clip (https://www.digikey.com/product-detail/en/pomona-electronics/5252/501-2059-ND/745103), ~$16&lt;br /&gt;
# a raspberry pi (e.g. a zero w) ~$10&lt;br /&gt;
# some header pins and prototyping wires to connect everything&lt;br /&gt;
&lt;br /&gt;
The Nanostation has a Macronix MX25L12835F rom chip ([https://www.macronix.com/Lists/Datasheet/Attachments/7397/MX25L12835F,%203V,%20128Mb,%20v1.6.pdf datasheet]), which is an SPI chip with 16 connectors good for 128 Mbit of storage.&lt;br /&gt;
&lt;br /&gt;
We can use [https://flashrom.org Flashrom] running on a raspberry pi to read and write that chip, if we hook up the Pomona 5252 test clip to the MX25L12835F and connect it to the correct [https://pinout.xyz/pinout/spi SPI pins] on the pi:&lt;br /&gt;
&lt;br /&gt;
[[File:raspberry-pi-pinout.png|inline|raspberry pi GPIO pinout]]&lt;br /&gt;
&lt;br /&gt;
(note: the SPI1 CE0/CE1 pins are not labeled on this image)&lt;br /&gt;
&lt;br /&gt;
==== Pinouts (please proceed with caution!) ====&lt;br /&gt;
&lt;br /&gt;
The Raspberry Pi has 2 SPI interfaces, SPI0 and SPI1.&lt;br /&gt;
&lt;br /&gt;
On the Raspberry Pi boot partition, make sure to update config.txt and uncomment the line that reads&lt;br /&gt;
&lt;br /&gt;
 dtparam=spi=on&lt;br /&gt;
&lt;br /&gt;
After a reboot, you should see the spi device files:&lt;br /&gt;
&lt;br /&gt;
  root@raspberrypi:/home/pi# ls -laF /dev/spidev0.*&lt;br /&gt;
  crw-rw---- 1 root spi 153, 0 Jan  7 01:44 /dev/spidev0.0&lt;br /&gt;
  crw-rw---- 1 root spi 153, 1 Jan  7 01:44 /dev/spidev0.1&lt;br /&gt;
&lt;br /&gt;
Now connect the Raspberry Pi to the Pomona clip. Choose either SPI0 or SPI1. We're going to leave the VCC pin on the flash chip disconnected. We are however going to connect a few other pins to our 3.3V source from the raspberry pi, to pull them up.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|RPi SPI0!!colspan=&amp;quot;2&amp;quot;|RPi SPI1!!colspan=&amp;quot;2&amp;quot;|Pomona Clip!!Notes!!Color in picture below&lt;br /&gt;
|-&lt;br /&gt;
|17||3.3V&lt;br /&gt;
|17||3.3V&lt;br /&gt;
|1||SIO3&lt;br /&gt;
|''we do not use this pin, so we pull it up''&lt;br /&gt;
|red&lt;br /&gt;
|-&lt;br /&gt;
|17||3.3V&lt;br /&gt;
|17||3.3V&lt;br /&gt;
|9||WP#SIO2&lt;br /&gt;
|''put the chip in read/write mode''&lt;br /&gt;
|red&lt;br /&gt;
|-&lt;br /&gt;
|19||SPI0 MOSI&lt;br /&gt;
|38||SPI1 MOSI&lt;br /&gt;
|15||SI&lt;br /&gt;
|&lt;br /&gt;
|blue&lt;br /&gt;
|-&lt;br /&gt;
|21||SPI0 MISO&lt;br /&gt;
|35||SPI1 MISO&lt;br /&gt;
|8||SO&lt;br /&gt;
|&lt;br /&gt;
|orange&lt;br /&gt;
|-&lt;br /&gt;
|23||SPI0 SCLK&lt;br /&gt;
|40||SPI1 SCLK&lt;br /&gt;
|16||SCLK&lt;br /&gt;
|&lt;br /&gt;
|green&lt;br /&gt;
|-&lt;br /&gt;
|25||GND&lt;br /&gt;
|25||GND&lt;br /&gt;
|10||GND&lt;br /&gt;
|&lt;br /&gt;
|brown&lt;br /&gt;
|-&lt;br /&gt;
|24||SPI0 CE0&lt;br /&gt;
|12||SPI1 CE0&lt;br /&gt;
|7||CS&lt;br /&gt;
|&lt;br /&gt;
|yellow&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:20200127-raspberry-pi-zero-w-with-pomona-clip.jpg|thumb|A Raspberry Pi Zero W with wires connected to the SPI0 pins. There is an unused 3.3V wire visible.]]&lt;br /&gt;
&lt;br /&gt;
==== Reading the chip with flashrom ====&lt;br /&gt;
&lt;br /&gt;
Once the pomona is connected to the raspberry pi, make sure the nanostation is disconnected from power/ethernet. Then clip on the pomona.&lt;br /&gt;
&lt;br /&gt;
Flashrom on the raspberry pi requires us to specify the spi speed for the operation. We also need to specify the exact rom chip model, because there are two models that match:&lt;br /&gt;
&lt;br /&gt;
  $ flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=30000 -r proprietary.rom&lt;br /&gt;
  flashrom  on Linux 4.19.75+ (armv6l)&lt;br /&gt;
  flashrom is free software, get the source code at https://flashrom.org&lt;br /&gt;
&lt;br /&gt;
  Using clock_gettime for delay loops (clk_id: 1, resolution: 1ns).&lt;br /&gt;
  Found Macronix flash chip &amp;quot;MX25L12805D&amp;quot; (16384 kB, SPI) on linux_spi.&lt;br /&gt;
  Found Macronix flash chip &amp;quot;MX25L12835F/MX25L12845E/MX25L12865E&amp;quot; (16384 kB, SPI) on linux_spi.&lt;br /&gt;
  Multiple flash chip definitions match the detected chip(s): &amp;quot;MX25L12805D&amp;quot;, &amp;quot;MX25L12835F/MX25L12845E/MX25L12865E&amp;quot;&lt;br /&gt;
  Please specify which chip definition to use with the -c &amp;lt;chipname&amp;gt; option.&lt;br /&gt;
&lt;br /&gt;
So here's the final command to read out the chip:&lt;br /&gt;
&lt;br /&gt;
  $ flashrom -c &amp;quot;MX25L12835F/MX25L12845E/MX25L12865E&amp;quot; -p linux_spi:dev=/dev/spidev0.0,spispeed=30000 -r proprietary.rom&lt;br /&gt;
  flashrom  on Linux 4.19.75+ (armv6l)&lt;br /&gt;
  flashrom is free software, get the source code at https://flashrom.org&lt;br /&gt;
&lt;br /&gt;
  Using clock_gettime for delay loops (clk_id: 1, resolution: 1ns).&lt;br /&gt;
  Found Macronix flash chip &amp;quot;MX25L12835F/MX25L12845E/MX25L12865E&amp;quot; (16384 kB, SPI) on linux_spi.&lt;br /&gt;
  Reading flash... done.&lt;br /&gt;
&lt;br /&gt;
It's easy to verify that if the reading worked. If you were reading out the original firmware, binwalk would print something like this:&lt;br /&gt;
&lt;br /&gt;
  $ binwalk proprietary.rom &lt;br /&gt;
&lt;br /&gt;
  DECIMAL       HEXADECIMAL     DESCRIPTION&lt;br /&gt;
  --------------------------------------------------------------------------------&lt;br /&gt;
  115152        0x1C1D0         Certificate in DER format (x509 v3), header length: 4, sequence length: 64&lt;br /&gt;
  142896        0x22E30         U-Boot version string, &amp;quot;U-Boot 1.1.4-s1100 (Sep  5 2018 - 17:53:00)&amp;quot;&lt;br /&gt;
  143184        0x22F50         CRC32 polynomial table, big endian&lt;br /&gt;
  224396        0x36C8C         CRC32 polynomial table, big endian&lt;br /&gt;
  226924        0x3766C         Ubiquiti end header, header size: 12 bytes, cumulative ~CRC32: 0x454E442E&lt;br /&gt;
  231856        0x389B0         Ubiquiti partition header, header size: 56 bytes, name: &amp;quot;PARTkernel&amp;quot;, base address: 0x00000001, data size: -2147475456 bytes&lt;br /&gt;
  231920        0x389F0         uImage header, header size: 64 bytes, header CRC: 0xE75790E0, created: 2018-11-13 14:36:59, image size: 998847 bytes, Data &lt;br /&gt;
  Address: 0x80002000, Entry Point: 0x80002000, data CRC: 0xAAECA664, OS: Linux, CPU: MIPS, image type: OS Kernel Image, compression type: lzma, image name: &amp;quot;MIPS Ubiquiti Linux-2.6.32.68&amp;quot;&lt;br /&gt;
  327680        0x50000         uImage header, header size: 64 bytes, header CRC: 0x22425505, created: 2019-02-13 09:09:52, image size: 990770 bytes, Data Address: 0x80002000, Entry Point: 0x80002000, data CRC: 0x8F3B71D3, OS: Linux, CPU: MIPS, image type: OS Kernel Image, compression type: lzma, image name: &amp;quot;MIPS Ubiquiti Linux-2.6.32.68&amp;quot;&lt;br /&gt;
  327744        0x50040         LZMA compressed data, properties: 0x5D, dictionary size: 8388608 bytes, uncompressed size: 2836596 bytes&lt;br /&gt;
  1318514       0x141E72        Ubiquiti partition header, header size: 56 bytes, name: &amp;quot;PARTrootfs&amp;quot;, base address: 0x00000002, data size: 0 bytes&lt;br /&gt;
  1318578       0x141EB2        Squashfs filesystem, little endian, version 4.0, compression:lzma, size: 7203018 bytes, 956 inodes, blocksize: 262144 bytes, created: 2019-02-13 09:09:54&lt;br /&gt;
&lt;br /&gt;
Useful resources:&lt;br /&gt;
* [https://www.flashrom.org/RaspberryPi Flashrom page on using the Raspberry Pi as a flashing tool]&lt;br /&gt;
&lt;br /&gt;
==== Writing to the chip with flashrom ====&lt;br /&gt;
&lt;br /&gt;
  pi@raspberrypi:~ $ flashrom -c &amp;quot;MX25L12835F/MX25L12845E/MX25L12865E&amp;quot; -p linux_spi:dev=/dev/spidev0.0,spispeed=30000 -w read1-10000-openwrt.bin&lt;br /&gt;
  flashrom  on Linux 4.19.75-v7l+ (armv7l)&lt;br /&gt;
  flashrom is free software, get the source code at https://flashrom.org&lt;br /&gt;
  &lt;br /&gt;
  Using clock_gettime for delay loops (clk_id: 1, resolution: 1ns).&lt;br /&gt;
  Found Macronix flash chip &amp;quot;MX25L12835F/MX25L12845E/MX25L12865E&amp;quot; (16384 kB, SPI) on linux_spi.&lt;br /&gt;
  Reading old flash chip contents... done.&lt;br /&gt;
  Erasing and writing flash chip... Erase/write done.&lt;br /&gt;
  Verifying flash... VERIFIED.&lt;br /&gt;
&lt;br /&gt;
=== Flash using serial header access ===&lt;br /&gt;
Direct serial access allows temporarily running OpenWRT in memory and using the temporary environment to flash a full image to the radio's memory.&lt;br /&gt;
&lt;br /&gt;
[[File:Ubnt_ns5acl_serial.jpg|thumb|Click to enlarge pinout]]&lt;br /&gt;
# Using your thumb or a small tool, push the tab in the slot located on the lower rear of the radio and slide the bottom half out of the enclosure&lt;br /&gt;
# Looking at the rear of the board (where all the components are on the opposite side as the antenna), locate the serial headers on the middle left side of the board&lt;br /&gt;
# Solder at least the top 3 pins shown in the picture. The pins from left to right (starting with the square shaped pad that is unpopulated in the image) are 3.3V, RX, TX, and GND. 3.3V is not needed here&lt;br /&gt;
# Connect GND on the board to GND on your FTDI adapter, TX on the board to RX on the FTDI adapter, and RX on the board to TX on the FTDI adapter&lt;br /&gt;
# Make sure your FTDI adapter is in 3.3V mode and attached to your computer, then open the serial port on your computer (ex. &amp;lt;code&amp;gt;minicom -D /dev/ttyUSB0&amp;lt;/code&amp;gt;). Use 115200 8N1 in your terminal settings.&lt;br /&gt;
# Connect the NanoStation and press enter in the console when it says &amp;lt;code&amp;gt;Hit any key to stop autoboot:&amp;lt;/code&amp;gt;. You should be left at a &amp;lt;code&amp;gt;ar7240&amp;gt; &amp;lt;/code&amp;gt; prompt.&lt;br /&gt;
# Connect your laptop to the LAN port of the PoE injector powering the NanoStation and assign a static IP of &amp;lt;code&amp;gt;192.168.1.254&amp;lt;/code&amp;gt;&lt;br /&gt;
# Install a TFTP server and place [https://downloads.openwrt.org/releases/19.07.0/targets/ath79/generic/openwrt-19.07.0-ath79-generic-ubnt_nanostation-ac-loco-initramfs-kernel.bin openwrt-19.07.0-ath79-generic-ubnt_nanostation-ac-loco-initramfs-kernel.bin] in the root folder of the TFTP server (&amp;lt;code&amp;gt;/srv/tftp&amp;lt;/code&amp;gt; for tftp-hpa on Arch).&lt;br /&gt;
# Rename the initramfs-kernel.bin file to &amp;lt;code&amp;gt;1401A8C0.img&amp;lt;/code&amp;gt; and ensure the tftp server / service is started&lt;br /&gt;
# Run &amp;lt;code&amp;gt;tftpboot&amp;lt;/code&amp;gt; in the serial console and wait for it to complete&lt;br /&gt;
# Run &amp;lt;code&amp;gt;bootm&amp;lt;/code&amp;gt; in the serial console to boot the initramfs&lt;br /&gt;
# Once OpenWRT has booted, you can press Enter to enable shell access&lt;br /&gt;
# Ensure you have an IP address in the 192.168.1.x subnet and use scp to transfer the sysupgrade firmware you wish to flash&lt;br /&gt;
# Flash the full firmware to the radio's storage using &amp;lt;code&amp;gt;mtd -r write /tmp/sysupgrade.bin firmware&amp;lt;/code&amp;gt;, replacing &amp;lt;code&amp;gt;sysupgrade.bin&amp;lt;/code&amp;gt; with the full filename of the firmware you are flashing&lt;br /&gt;
&lt;br /&gt;
== Condensed Command-list ==&lt;br /&gt;
=== Flash The Stock Ubiquiti Firmware via TFTP ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget https://dl.ubnt.com/firmwares/XC-fw/v8.5.0/WA.v8.5.0.36727.180118.1314.bin&lt;br /&gt;
cp https://dl.ubnt.com/firmwares/XC-fw/v8.5.0/WA.v8.5.0.36727.180118.1314.bin firmware.bin&lt;br /&gt;
sudo apt install tftp&lt;br /&gt;
tftp&lt;br /&gt;
tftp&amp;gt; connect 192.168.1.20&lt;br /&gt;
tftp&amp;gt; rexmt 1&lt;br /&gt;
tftp&amp;gt; timeout 60&lt;br /&gt;
tftp&amp;gt; binary&lt;br /&gt;
tftp&amp;gt; put firmware.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No re-boot is necessary. You should be able to access the router at 192.168.1.20 after a couple of minutes.&lt;br /&gt;
&lt;br /&gt;
=== Flash The Mass Mesh Firmware ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget https://github.com/MassMesh/meta-imagebuilder-artifacts/raw/master/massmesh/meshradio/ubnt_nanostation-ac-loco/openwrt-massmesh-meshradio-ath79-generic-ubnt_nanostation-ac-loco-squashfs-factory.bin&lt;br /&gt;
scp openwrt-massmesh-meshradio-ath79-generic-ubnt_nanostation-ac-loco-squashfs-factory.bin ubnt@192.168.1.20:/tmp&lt;br /&gt;
ssh ubnt@192.168.1.20&lt;br /&gt;
hexdump -Cv /bin/ubntbox | sed 's/14 40 fe fe/00 00 00 00/g' | hexdump -R &amp;gt; /tmp/fwupdate.real&lt;br /&gt;
chmod +x /tmp/fwupdate.real&lt;br /&gt;
/tmp/fwupdate.real -m /tmp/openwrt-massmesh-meshradio-ath79-generic-ubnt_nanostation-ac-loco-squashfs-factory.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Stephen304</name></author>
		
	</entry>
	<entry>
		<id>https://massmesh.org/wiki/index.php?title=Public_Gateways&amp;diff=1848</id>
		<title>Public Gateways</title>
		<link rel="alternate" type="text/html" href="https://massmesh.org/wiki/index.php?title=Public_Gateways&amp;diff=1848"/>
		<updated>2020-09-14T03:42:24Z</updated>

		<summary type="html">&lt;p&gt;Stephen304: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The gateways on this page are available for use by mesh users. Some require approval, so check all the details before connecting.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Gateways&lt;br /&gt;
! Operator !! Location !! Egress Network !! Address !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| James Vorder || New York || Digital Ocean || &amp;lt;code&amp;gt;201:506e:60d6:bd66:e35c:606:4883:ea9a&amp;lt;/code&amp;gt; || Requires approval, see the #mm-ap-hosts:matrix.org chat room on Matrix / Element&lt;br /&gt;
|-&lt;br /&gt;
| Stephen Smith || Boston || Mullvad VPN || &amp;lt;code&amp;gt;201:44e1:28f0:af3c:cf1b:6e2a:79bd:44b0&amp;lt;/code&amp;gt; || Open access&lt;br /&gt;
|-&lt;br /&gt;
| Stephen Smith || New York || Mullvad VPN || &amp;lt;code&amp;gt;202:8f28:b8e0:6068:a178:6f18:e01d:e278&amp;lt;/code&amp;gt; || Open access, used for testing, low bandwidth&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Stephen304</name></author>
		
	</entry>
	<entry>
		<id>https://massmesh.org/wiki/index.php?title=Public_Gateways&amp;diff=1847</id>
		<title>Public Gateways</title>
		<link rel="alternate" type="text/html" href="https://massmesh.org/wiki/index.php?title=Public_Gateways&amp;diff=1847"/>
		<updated>2020-09-14T03:37:58Z</updated>

		<summary type="html">&lt;p&gt;Stephen304: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The gateways on this page are available for use by mesh users. Some require approval, so check all the details before connecting.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Gateways&lt;br /&gt;
! Operator !! Location !! Egress Network !! Address !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| James Vorder || New York || Digital Ocean || &amp;lt;code&amp;gt;201:506e:60d6:bd66:e35c:606:4883:ea9a&amp;lt;/code&amp;gt; || Requires approval, see the #mm-ap-hosts:matrix.org chat room on Matrix / Element&lt;br /&gt;
|-&lt;br /&gt;
| Stephen Smith || Boston || Mullvad VPN || &amp;lt;code&amp;gt;&amp;lt;/code&amp;gt; || Open access&lt;br /&gt;
|-&lt;br /&gt;
| Stephen Smith || New York || Mullvad VPN || &amp;lt;code&amp;gt;202:8f28:b8e0:6068:a178:6f18:e01d:e278&amp;lt;/code&amp;gt; || Open access, used for testing, low bandwidth&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Stephen304</name></author>
		
	</entry>
	<entry>
		<id>https://massmesh.org/wiki/index.php?title=Public_Gateways&amp;diff=1846</id>
		<title>Public Gateways</title>
		<link rel="alternate" type="text/html" href="https://massmesh.org/wiki/index.php?title=Public_Gateways&amp;diff=1846"/>
		<updated>2020-09-13T23:42:26Z</updated>

		<summary type="html">&lt;p&gt;Stephen304: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The gateways on this page are available for use by mesh users. Some require approval, so check all the details before connecting.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Gateways&lt;br /&gt;
! Operator !! Location !! Egress Network !! Address !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| James Vorder || New York || Digital Ocean || &amp;lt;code&amp;gt;201:506e:60d6:bd66:e35c:606:4883:ea9a&amp;lt;/code&amp;gt; || Requires approval, see the #mm-ap-hosts:matrix.org chat room on Matrix / Element&lt;br /&gt;
|-&lt;br /&gt;
| Stephen Smith || New York || Mullvad VPN || &amp;lt;code&amp;gt;202:8f28:b8e0:6068:a178:6f18:e01d:e278&amp;lt;/code&amp;gt; || Open access, used for testing, low bandwidth&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Stephen304</name></author>
		
	</entry>
	<entry>
		<id>https://massmesh.org/wiki/index.php?title=Public_Gateways&amp;diff=1845</id>
		<title>Public Gateways</title>
		<link rel="alternate" type="text/html" href="https://massmesh.org/wiki/index.php?title=Public_Gateways&amp;diff=1845"/>
		<updated>2020-09-13T23:42:11Z</updated>

		<summary type="html">&lt;p&gt;Stephen304: Created page with &amp;quot;The gateways on this page are available for use by mesh users. Some require approval, so check all the details before connecting.  {| class=&amp;quot;wikitable&amp;quot; |+ Gateways ! Operator...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The gateways on this page are available for use by mesh users. Some require approval, so check all the details before connecting.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Gateways&lt;br /&gt;
! Operator !! Location !! Egress Network !! Address !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| James Vorder || New York || Digital Ocean || &amp;lt;code&amp;gt;201:506e:60d6:bd66:e35c:606:4883:ea9a&amp;lt;/code&amp;gt; || Requires approval, see the #mm-ap-hosts:matrix.org chat room on Matrix / Element&lt;br /&gt;
|-&lt;br /&gt;
| Stephen Smith || New York || Mullvad VPN || &amp;lt;code&amp;gt;202:8f28:b8e0:6068:a178:6f18:e01d:e278&amp;lt;/code&amp;gt; || Open access, used for testing, low bandwidth&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Network Restrictions&lt;br /&gt;
! Network !! Location !! Egress Network !! Address !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| James Vorder || New York || Digital Ocean || &amp;lt;code&amp;gt;201:506e:60d6:bd66:e35c:606:4883:ea9a&amp;lt;/code&amp;gt; || Requires approval, see the #mm-ap-hosts:matrix.org chat room on Matrix / Element&lt;br /&gt;
|-&lt;br /&gt;
| Stephen Smith || New York || Mullvad VPN || &amp;lt;code&amp;gt;202:8f28:b8e0:6068:a178:6f18:e01d:e278&amp;lt;/code&amp;gt; || Open access, used for testing, low bandwidth&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Stephen304</name></author>
		
	</entry>
	<entry>
		<id>https://massmesh.org/wiki/index.php?title=Hosting_a_Gateway&amp;diff=1842</id>
		<title>Hosting a Gateway</title>
		<link rel="alternate" type="text/html" href="https://massmesh.org/wiki/index.php?title=Hosting_a_Gateway&amp;diff=1842"/>
		<updated>2020-09-13T22:21:00Z</updated>

		<summary type="html">&lt;p&gt;Stephen304: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page documents the steps to set up your own gateway. Digitalocean's $5 VPS provides great value for this purpose.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
* Install packages `sudo apt install openvpn golang make`&lt;br /&gt;
* [https://yggdrasil-network.github.io/installation-linux-deb.html Install yggdrasil] and enable the service&lt;br /&gt;
* Ensure peers are added to yggdrasil's config&lt;br /&gt;
* Set yggdrasil's interface name to ygg0 in the config&lt;br /&gt;
* Clone [https://github.com/MassMesh/autoygg autoygg] and checkout the desired version tag&lt;br /&gt;
* `cd autoygg &amp;amp;&amp;amp; make`&lt;br /&gt;
* Copy autoygg-server to /bin/ and autoygg-server.service to /usr/lib/systemd/system/&lt;br /&gt;
* `sudo systemctl daemon-reload`&lt;br /&gt;
* Create /etc/autoygg/server/yml&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
---&lt;br /&gt;
ListenHost: &amp;quot;your-gateways-ygg-ip-from-yggdrasilctl-getSelf&amp;quot;&lt;br /&gt;
ListenPort: &amp;quot;8080&amp;quot;&lt;br /&gt;
GatewayOwner: &amp;quot;Your Name &amp;lt;you@provider.com&amp;gt;&amp;quot;&lt;br /&gt;
GatewayDescription: &amp;quot;Describe this gateway&amp;quot;&lt;br /&gt;
GatewayNetwork: &amp;quot;Mullvad VPN&amp;quot;&lt;br /&gt;
GatewayLocation: &amp;quot;New York, US&amp;quot;&lt;br /&gt;
RequireRegistration: true&lt;br /&gt;
AccessListEnabled: false&lt;br /&gt;
GatewayTunnelIP: &amp;quot;10.42.0.1&amp;quot;&lt;br /&gt;
GatewayTunnelNetmask: &amp;quot;16&amp;quot;&lt;br /&gt;
GatewayTunnelIPRangeMin: 10.42.0.10&lt;br /&gt;
GatewayTunnelIPRangeMax: 10.42.0.255&lt;br /&gt;
MaxClients: 100&lt;br /&gt;
YggdrasilInterface: ygg0&lt;br /&gt;
FirewallWanInterface: vpn0&lt;br /&gt;
GatewayInfoURL: &amp;quot;&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Enable / start the autoygg-server service&lt;br /&gt;
* Edit your .ovpn config, remove up/down:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dev vpn0&lt;br /&gt;
dev-type tun&lt;br /&gt;
route-nopull&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Place .ovpn, userpass.txt (if applicable), and any certs in /etc/openvpn/&lt;br /&gt;
* Reboot&lt;br /&gt;
* Restart autoygg-server.service&lt;br /&gt;
* Connect via autoygg client&lt;/div&gt;</summary>
		<author><name>Stephen304</name></author>
		
	</entry>
	<entry>
		<id>https://massmesh.org/wiki/index.php?title=Ubiquiti_UAP_AC_Mesh&amp;diff=1841</id>
		<title>Ubiquiti UAP AC Mesh</title>
		<link rel="alternate" type="text/html" href="https://massmesh.org/wiki/index.php?title=Ubiquiti_UAP_AC_Mesh&amp;diff=1841"/>
		<updated>2020-09-13T21:33:50Z</updated>

		<summary type="html">&lt;p&gt;Stephen304: /* Downgrade Ubiquiti AirOS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Devices]]&lt;br /&gt;
[[Category:Ubiquiti]]&lt;br /&gt;
[[File:Ubnt-uap-ac-m.png|thumb|UAP AC Mesh -- Front]]&lt;br /&gt;
[[File:UAP_Mounting_Slide.jpeg|thumb|UAP AC Mesh -- Back]]&lt;br /&gt;
&lt;br /&gt;
The UAP AC Mesh is an omnidirectional, weather resistant, PoE powered access point. It is useful for short (less than one block,) unplanned links. If you live in an apartment building, this device will connect you with your next-door neighbor through the wall.&lt;br /&gt;
&lt;br /&gt;
{{ Warning| This is a PoE device. Never connect your computer directly to the PoE injector's red port!!!}}&lt;br /&gt;
&lt;br /&gt;
== Files ==&lt;br /&gt;
[https://dl.ui.com/unifi/firmware/U7PG2/3.7.58.6385/BZ.qca956x.v3.7.58.6385.170508.0957.bin Ubiquiti Firmware (Downgrade to 3.7.xx)]&lt;br /&gt;
&lt;br /&gt;
[https://downloads.massmesh.net/snapshots/images/meshradio/ubnt_unifiac-mesh/openwrt-massmesh-meshradio-ath79-generic-ubnt_unifiac-mesh-squashfs-sysupgrade.bin Mass Mesh Firmware (sysupgrade)]&lt;br /&gt;
&lt;br /&gt;
= Flashing =&lt;br /&gt;
&lt;br /&gt;
== From OpenWRT ==&lt;br /&gt;
If you're already using OpenWRT, you can use Luci to install the Mass Mesh firmware. &lt;br /&gt;
# Download the latest [https://downloads.massmesh.net/snapshots/images/meshradio/ubnt_unifiac-mesh/openwrt-massmesh-meshradio-ath79-generic-ubnt_unifiac-mesh-squashfs-sysupgrade.bin MassMesh sysupgrade firmware.]&lt;br /&gt;
# Connect to the Nanostation and enter its IP address into your favorite web browser.&lt;br /&gt;
## If you are using another version of OpenWrt, please refer to its documentation for details about its IP address.&lt;br /&gt;
# Navigate to System → Backup / Flash Firmware → Actions: '''Flash new firmware image.'''&lt;br /&gt;
# Choose the sysupgrade file previously downloaded and click '''Flash'''&lt;br /&gt;
# Wait for the device to complete and reboot (This can take up to 5 minutes.)&lt;br /&gt;
&lt;br /&gt;
== From Stock Firmware (Ubiquiti AirOS) ==&lt;br /&gt;
&lt;br /&gt;
If your device shipped with the latest firmware, or if you upgraded to version &amp;lt;code&amp;gt;3.8.xx.xxxx&amp;lt;/code&amp;gt; or higher, you need to downgrade the device before you can flash it due to the &amp;lt;code&amp;gt;mtd&amp;lt;/code&amp;gt; utility being missing in later versions. Simply download any &amp;lt;code&amp;gt;3.7.xx.xxxx&amp;lt;/code&amp;gt; firmware image from [https://dl.ui.com/unifi/firmware/U7PG2/3.7.58.6385/BZ.qca956x.v3.7.58.6385.170508.0957.bin Ubiquiti Downloads] and proceed with the recovery instructions.&lt;br /&gt;
&amp;lt;section begin=&amp;quot;flash-uap-ac-mesh&amp;quot; /&amp;gt;&lt;br /&gt;
=== Enter Factory Reset Mode ===&lt;br /&gt;
&lt;br /&gt;
# Unplug the ethernet from the antenna (This turns it off.)&lt;br /&gt;
# Use a paper clip to hold in the reset button&lt;br /&gt;
# Plug the ethernet back in to the antenna, holding the paperclip steady as you do&lt;br /&gt;
# Continue holding the paper clip until the light on the side of your UAP AC Mesh starts blinking OFF/WHITE/BLUE (should take about 30 seconds)&lt;br /&gt;
&lt;br /&gt;
=== Set Up a Static IP Address ===&lt;br /&gt;
&lt;br /&gt;
The next step is to assign your computer a static IP address of &amp;lt;code&amp;gt;192.168.1.25/24&amp;lt;/code&amp;gt;&lt;br /&gt;
# '''Windows:''' [https://winaero.com/blog/set-static-ip-address-windows-10/ Setting a static IP address in Windows 10]&lt;br /&gt;
# '''Mac:''' [https://osxdaily.com/2010/12/17/set-static-ip-address-mac/ Setting a static IP address in OSX]&lt;br /&gt;
# '''Linux:''' [https://linuxize.com/post/how-to-configure-static-ip-address-on-ubuntu-18-04/#configuring-static-ip-address-on-ubuntu-desktop Setting a static IP address in Ubuntu 18.04 desktop]&lt;br /&gt;
&lt;br /&gt;
=== Downgrade Ubiquiti AirOS ===&lt;br /&gt;
&lt;br /&gt;
Because we are &amp;quot;jailbreaking&amp;quot; the Ubiquiti router, we have to downgrade to an older version of their proprietary firmware first. Using a tool called TFTP, we can do this quite simply.&lt;br /&gt;
&lt;br /&gt;
# Download [https://dl.ui.com/unifi/firmware/U7PG2/3.7.58.6385/BZ.qca956x.v3.7.58.6385.170508.0957.bin version 3.7 of Ubiquiti's AirOS]&lt;br /&gt;
# Rename the firmware file to &amp;lt;code&amp;gt;firmware.bin&amp;lt;/code&amp;gt;, as the device will look for this file name&lt;br /&gt;
# Launch a command prompt/terminal, and enter the following, one line at a time:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tftp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tftp&amp;gt; connect 192.168.1.20&lt;br /&gt;
tftp&amp;gt; binary&lt;br /&gt;
tftp&amp;gt; rexmt 1&lt;br /&gt;
tftp&amp;gt; timeout 60&lt;br /&gt;
tftp&amp;gt; put firmware.bin&lt;br /&gt;
Sent x bytes in x seconds&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The LED will flash at varying speeds, then it will turn solid when complete.&lt;br /&gt;
&lt;br /&gt;
* The radio will timeout if left in tftp mode for too long. If the transfer is unsuccessful, try power cycling the radio and entering tftp mode again.&lt;br /&gt;
* If you don't see something like what's shown above (maybe your &amp;quot;Transfer timed out.), go back and make sure that the light on the side of your UAP AC Mesh is blinking in the pattern indicated above. If not, start again from [[#Enter Factory Reset Mode]]&lt;br /&gt;
* If the light is blinking properly, make sure that your static IP address was assigned properly. If not, start again from [[#Set Up a Static IP Address]]&lt;br /&gt;
* If you are still having trouble transferring firmware to the device, reach out for help in the chatroom. Someone will help you get unstuck.&lt;br /&gt;
&lt;br /&gt;
=== Install the Mass Mesh Firmware ===&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Download the latest Mass Mesh radio firmware [https://downloads.massmesh.net/snapshots/images/meshradio/ubnt_unifiac-mesh/openwrt-massmesh-meshradio-ath79-generic-ubnt_unifiac-mesh-squashfs-sysupgrade.bin here.]&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Statically assign your computer the IP address &amp;lt;code&amp;gt;192.168.1.25&amp;lt;/code&amp;gt; (See [[#Set Up a Static IP Address]] if needed.)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Open a terminal/command prompt.&amp;lt;/b&amp;gt; You will need it in order to copy/paste the commands shown below.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Copy the Mass Mesh firmware onto the device:&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt; &amp;lt;pre&amp;gt;scp openwrt-ar71xx-generic-ubnt-unifiac-lite-squashfs-sysupgrade.bin ubnt@192.168.1.20:/tmp/&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;SSH into the device and log in with the default username and password &amp;lt;code&amp;gt;ubnt / ubnt&amp;lt;/code&amp;gt;&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;pre&amp;gt;ssh ubnt@192.168.1.20&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Then write the firmware to &amp;lt;code&amp;gt;kernel0&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;kernel1&amp;lt;/code&amp;gt; by entering the following into the terminal, line by line:&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;pre&amp;gt;BZ.v3.7.40# mtd write /tmp/openwrt-ar71xx-generic-ubnt-unifiac-lite-squashfs-sysupgrade.bin kernel0&lt;br /&gt;
BZ.v3.7.40# mtd -r write /tmp/openwrt-ar71xx-generic-ubnt-unifiac-lite-squashfs-sysupgrade.bin kernel1&amp;lt;/pre&amp;gt;&lt;br /&gt;
        &amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;You should see something like the following:&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;pre&amp;gt;BZ.v3.7.40# mtd write /tmp/openwrt-ar71xx-generic-ubnt-unifiac-lite-squashfs-sysupgrade.bin kernel0&lt;br /&gt;
Unlocking kernel0 ...&lt;br /&gt;
Erasing kernel0 ...&lt;br /&gt;
Writing from /tmp/openwrt-ar71xx-generic-ubnt-unifiac-lite-squashfs-sysupgrade.bin to kernel0 ...  [e/w]&lt;br /&gt;
&lt;br /&gt;
BZ.v3.7.40# mtd -r write /tmp/openwrt-ar71xx-generic-ubnt-unifiac-lite-squashfs-sysupgrade.bin kernel1&lt;br /&gt;
Unlocking kernel1 ...&lt;br /&gt;
Erasing kernel1 ...&lt;br /&gt;
Writing from /tmp/openwrt-ar71xx-generic-ubnt-unifiac-lite-squashfs-sysupgrade.bin to kernel1 ...  [e/w]&amp;lt;/pre&amp;gt;&lt;br /&gt;
         &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Type &amp;lt;code&amp;gt;reboot&amp;lt;/code&amp;gt; into the terminal, and hit enter. The radio will now restart. Please wait upwards of 5+ minutes during this &amp;quot;first boot&amp;quot; process. When the device is working properly, you should see a wifi network named &amp;quot;MassMesh.org&amp;quot;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;section end=&amp;quot;flash-uap-ac-mesh&amp;quot; /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Stephen304</name></author>
		
	</entry>
	<entry>
		<id>https://massmesh.org/wiki/index.php?title=Hosting_a_Gateway&amp;diff=1840</id>
		<title>Hosting a Gateway</title>
		<link rel="alternate" type="text/html" href="https://massmesh.org/wiki/index.php?title=Hosting_a_Gateway&amp;diff=1840"/>
		<updated>2020-09-13T16:02:37Z</updated>

		<summary type="html">&lt;p&gt;Stephen304: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page documents the steps to set up your own gateway. Digitalocean's $5 VPS provides great value for this purpose.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
* Install packages `sudo apt install openvpn golang make`&lt;br /&gt;
* [https://yggdrasil-network.github.io/installation-linux-deb.html Install yggdrasil] and enable the service&lt;br /&gt;
* Ensure peers are added to yggdrasil's config&lt;br /&gt;
* Set yggdrasil's interface name to ygg0 in the config&lt;br /&gt;
* Clone [https://github.com/MassMesh/autoygg autoygg] and checkout the desired version tag&lt;br /&gt;
* `cd autoygg &amp;amp;&amp;amp; make`&lt;br /&gt;
* Copy autoygg-server to /bin/ and autoygg-server.service to /usr/lib/systemd/system/&lt;br /&gt;
* `sudo systemctl daemon-reload`&lt;br /&gt;
* Create /etc/autoygg/server/yml&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
---&lt;br /&gt;
ListenHost: &amp;quot;your-gateways-ygg-ip-from-yggdrasilctl-getSelf&amp;quot;&lt;br /&gt;
ListenPort: &amp;quot;8080&amp;quot;&lt;br /&gt;
GatewayOwner: &amp;quot;Your Name &amp;lt;you@provider.com&amp;gt;&amp;quot;&lt;br /&gt;
GatewayDescription: &amp;quot;Describe this gateway&amp;quot;&lt;br /&gt;
GatewayNetwork: &amp;quot;Mullvad VPN&amp;quot;&lt;br /&gt;
GatewayLocation: &amp;quot;New York, US&amp;quot;&lt;br /&gt;
RequireRegistration: true&lt;br /&gt;
AccessListEnabled: false&lt;br /&gt;
GatewayTunnelIP: &amp;quot;10.42.0.1&amp;quot;&lt;br /&gt;
GatewayTunnelNetmask: &amp;quot;16&amp;quot;&lt;br /&gt;
GatewayTunnelIPRangeMin: 10.42.0.10&lt;br /&gt;
GatewayTunnelIPRangeMax: 10.42.0.255&lt;br /&gt;
MaxClients: 100&lt;br /&gt;
YggdrasilInterface: ygg0&lt;br /&gt;
FirewallWanInterface: vpn0&lt;br /&gt;
GatewayInfoURL: &amp;quot;&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Enable / start the autoygg-server service&lt;br /&gt;
* Edit your .ovpn config, remove up/down:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dev vpn0&lt;br /&gt;
dev-type tun&lt;br /&gt;
route-nopull&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Place .ovpn, userpass.txt (if applicable), and any certs in /etc/openvpn/&lt;br /&gt;
* Reboot&lt;br /&gt;
* sudo ip rule add from 10.42.0.0/16 table 42&lt;br /&gt;
* ip ro add default dev vpn0 table 42&lt;br /&gt;
* Connect via autoygg client&lt;/div&gt;</summary>
		<author><name>Stephen304</name></author>
		
	</entry>
	<entry>
		<id>https://massmesh.org/wiki/index.php?title=Manual_Configuration&amp;diff=1839</id>
		<title>Manual Configuration</title>
		<link rel="alternate" type="text/html" href="https://massmesh.org/wiki/index.php?title=Manual_Configuration&amp;diff=1839"/>
		<updated>2020-09-13T15:58:04Z</updated>

		<summary type="html">&lt;p&gt;Stephen304: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Configuring your Mesh Node ==&lt;br /&gt;
Once your device has been flashed, the meshing software needs to be set up. Follow these steps to complete the set-up:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Plug your node's WAN port into a network that provides internet access. If your device has multiple ports, check the device page for which one to use.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Navigate to the openwrt configuration page at &amp;lt;code&amp;gt;http://192.168.1.1/&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Log in with an empty password and press &amp;quot;Go to password configuration...&amp;quot; to set an administrator password&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Optional: Add an ssh key to the SSH-Keys section to allow secure access to the node via ssh.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Enter a new password, uncheck &amp;quot;Password authentication&amp;quot; and &amp;quot;Allow root logins with password&amp;quot;. Press &amp;quot;Save &amp;amp; Apply&amp;quot;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Navigate to Network &amp;gt; DHCP and DNS and add 2 values for DNS Forwardings: &amp;lt;code&amp;gt;200:c493:950a:d576:a413:faef:990b:fb76&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;1.1.1.1&amp;lt;/code&amp;gt;, click &amp;quot;Save &amp;amp; Apply&amp;quot; at the bottom&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Use scp to send the Yggdrasil package to the node, eg. &amp;lt;code&amp;gt;scp -o StrictHostKeyChecking=no ~/Downloads/yggdrasil_0.3.5-4_aarch64_cortex-a53.ipk root@192.168.1.1:/tmp&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Use ssh and your node's password to access the node's command line, eg. &amp;lt;code&amp;gt;ssh root@192.168.1.1&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Run &amp;lt;code&amp;gt;opkg update &amp;amp;&amp;amp; opkg install kmod-tun nano&amp;lt;/code&amp;gt; to prepare the node for Yggdrasil&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Run &amp;lt;code&amp;gt;opkg install /tmp/yggdrasil_0.3.5-4_aarch64_cortex-a53.ipk&amp;lt;/code&amp;gt; to install Yggdrasil&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Use the command &amp;lt;code&amp;gt;nano /etc/yggdrasil.conf&amp;lt;/code&amp;gt; to edit the Yggdrasil configuration. Change peers section to include a few public nodes:&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;{ &amp;quot;Peers&amp;quot;: [ &amp;quot;tcp://50.236.201.218:56088&amp;quot;, &amp;quot;tcp://45.76.166.128:12345&amp;quot;, &amp;quot;tcp://45.77.107.150:34660&amp;quot;, &amp;quot;tcp://108.175.10.127:61216&amp;quot;, &amp;quot;tcp://198.58.100.240:44478&amp;quot; ],...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Press &amp;lt;code&amp;gt;Ctrl + O, Enter, Ctrl + X&amp;lt;/code&amp;gt; to edit the text editor&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Run &amp;lt;code&amp;gt;yggdrasilctl getSelf&amp;lt;/code&amp;gt; and take note of the &amp;quot;IPv6 subnet&amp;quot;, for example &amp;lt;code&amp;gt;IPv6 subnet: 300:f86f:fcf9:8479::/64&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Run &amp;lt;code&amp;gt;reboot&amp;lt;/code&amp;gt; to fully initialize Yggdrasil&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Navigate to Network &amp;gt; Interfaces in the Openwrt web configuration and find &amp;quot;ULA Prefix&amp;quot; near the bottom. Replace the value with the IPv6 subnet value from before (starting from 3xx and ending with /64) and click &amp;quot;Save &amp;amp; Apply&amp;quot;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;On the same page, click &amp;quot;Edit&amp;quot; next to &amp;quot;LAN&amp;quot; and set &amp;quot;IPv6 assignment length&amp;quot; to 64. Under the DHCP Server section in the &amp;quot;IPv6 Settings&amp;quot; tab, check &amp;quot;Always announce default router&amp;quot;. Click Save &amp;amp; Apply&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Navigate to Network &amp;gt; Firewall, and find &amp;quot;LAN&amp;quot; in the &amp;quot;Zones&amp;quot; section. Press the Edit button for this zone.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Under the &amp;quot;Inter-Zone Forwarding&amp;quot; section, add &amp;quot;yggdrasil&amp;quot; to both &amp;quot;Allow forward to destination zones:&amp;quot; and &amp;quot;Allow forward from source zones:&amp;quot;. Press &amp;quot;Save &amp;amp; Apply&amp;quot;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Optional: To disallow unencrypted usage of the shared internet connection, remove &amp;quot;WAN&amp;quot; from &amp;quot;Allow forward to destination zones:&amp;quot;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Optional: Under Network &amp;gt; Firewall &amp;gt; Traffic Rules, check enable on &amp;quot;Allow-SSH-yggdrasil&amp;quot; to allow ssh access using the node's mesh IP. Click &amp;quot;Save &amp;amp; Apply&amp;quot;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once these steps are completed, your node will be capable of meshing with any other similarly configured node, as well as relaying encrypted mesh traffic to nodes over the internet if an internet connection is supplied to the node. Clients of the node will also be able to access in-mesh services using mesh IPs that the node assigns to connected devices. You can test this out by visiting the [http://[203:e0b0:ec08:4e1f:f004:19a9:577a:90ba]/wiki/index.php?title=Main_Page in-mesh wiki] while connected to a LAN port of the node.&lt;br /&gt;
&lt;br /&gt;
{{Note|At this point, your mesh node cannot access any services 'outside' the Yggdrasil network. To enable that, follow the [[Manual Gateway Configuration]] guide.}}&lt;/div&gt;</summary>
		<author><name>Stephen304</name></author>
		
	</entry>
	<entry>
		<id>https://massmesh.org/wiki/index.php?title=Manual_Gateway_Configuration&amp;diff=1838</id>
		<title>Manual Gateway Configuration</title>
		<link rel="alternate" type="text/html" href="https://massmesh.org/wiki/index.php?title=Manual_Gateway_Configuration&amp;diff=1838"/>
		<updated>2020-09-13T15:57:16Z</updated>

		<summary type="html">&lt;p&gt;Stephen304: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__FORCETOC__&lt;br /&gt;
&lt;br /&gt;
{{Info|These instructions are superseded by autoygg and are retained for informational purposes. See [[Node Setup]] if you wish to connect your node to the internet.}}&lt;br /&gt;
&lt;br /&gt;
This page documents the manual steps to configuring both ends of a mesh gateway. Using these instructions is not recommended, as newer methods exist to automate this setup. These instructions are useful to anyone who wishes to understand how the gateway is configured on both ends, as well as to anyone looking to rewrite the gateway configuration software.&lt;br /&gt;
&lt;br /&gt;
= Gateway Server Manual Configuration =&lt;br /&gt;
&lt;br /&gt;
Add &amp;lt;code&amp;gt;0.0.0.0/0&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;IPv4LocalSubnets&amp;lt;/code&amp;gt; and enable &amp;lt;code&amp;gt;TunnelRouting&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;/etc/yggdrasil.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 TunnelRouting:&lt;br /&gt;
 {&lt;br /&gt;
   # Enable or disable tunnel routing.&lt;br /&gt;
   Enable: true&lt;br /&gt;
   # IPv4 subnets belonging to this node's end of the tunnels. Only traffic  &lt;br /&gt;
   # from these ranges will be tunnelled.&lt;br /&gt;
   IPv4LocalSubnets:&lt;br /&gt;
   [&lt;br /&gt;
     0.0.0.0/0&lt;br /&gt;
   ]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Restart yggdrasil with &amp;lt;code&amp;gt;systemctl restart yggdrasil.service&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;service yggdrasil restart&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assign an IP/subnet to the yggdrasil interface (&amp;lt;code&amp;gt;tun0&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;ygg0&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
 ip addr add 10.42.0.1/16 dev tun0&lt;br /&gt;
&lt;br /&gt;
For every node using the gateway, pick an IP address in the previous subnet and inform yggdrasil of the public key of the node to be associated with the chosen IP&lt;br /&gt;
&lt;br /&gt;
 yggdrasilctl addremotesubnet subnet=10.42.0.10/32 box_pub_key=&amp;lt;client_public_key&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, add iptables rules to route / forward traffic to the internet. Replace eth0 with the WAN interface of the gateway&lt;br /&gt;
&lt;br /&gt;
 iptables -A FORWARD -i eth0 -j ACCEPT&lt;br /&gt;
 iptables -A FORWARD -o eth0 -j ACCEPT                                                      &lt;br /&gt;
 iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE                                       &lt;br /&gt;
 echo 1 | tee /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
= Gateway Client Configuration =&lt;br /&gt;
== Using mm-cli (obsolete) ==&lt;br /&gt;
&lt;br /&gt;
This method will work as long as you connect your client device to the Internet during the install.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
opkg update&lt;br /&gt;
opkg install python3-pip&lt;br /&gt;
pip install mm-cli&lt;br /&gt;
alias mm=&amp;quot;python -m mm_cli&lt;br /&gt;
mm cl setgateway d5ce5d9e98bf9d5031c0e78a64339915b71e77b808830a719241afb7dd6c8c25 10.42.0.{Client_IP}/24 10.42.0.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Manual Configuration ==&lt;br /&gt;
&lt;br /&gt;
Add &amp;lt;code&amp;gt;0.0.0.0/0&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;IPv4LocalSubnets&amp;lt;/code&amp;gt; and enable &amp;lt;code&amp;gt;TunnelRouting&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;/etc/yggdrasil.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 TunnelRouting:&lt;br /&gt;
 {&lt;br /&gt;
   # Enable or disable tunnel routing.&lt;br /&gt;
   Enable: true&lt;br /&gt;
   # IPv4 subnets belonging to this node's end of the tunnels. Only traffic  &lt;br /&gt;
   # from these ranges will be tunnelled.&lt;br /&gt;
   IPv4LocalSubnets:&lt;br /&gt;
   [&lt;br /&gt;
     0.0.0.0/0&lt;br /&gt;
   ]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Restart yggdrasil with &amp;lt;code&amp;gt;systemctl restart yggdrasil.service&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;service yggdrasil restart&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the IP address allocated on the gateway for this node to the yggdrasil interface&lt;br /&gt;
&lt;br /&gt;
 ip addr add 10.42.0.10/16 dev ygg0&lt;br /&gt;
&lt;br /&gt;
Inform yggdrasil of the gateway node's public key&lt;br /&gt;
&lt;br /&gt;
 yggdrasilctl addremotesubnet subnet=0.0.0.0/0 box_pub_key=&amp;lt;gateway_public_key&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the client device is connected to WAN, add routes to each yggdrasil peer's IP address to override the default route. Replace &amp;lt;code&amp;gt;&amp;lt;peer_ip&amp;gt;&amp;lt;/code&amp;gt; with the IP address of the yggdrasil peer (likely found in yggdrasil.conf), replace &amp;lt;code&amp;gt;&amp;lt;wan_gw&amp;gt;&amp;lt;/code&amp;gt; with the IP address of the router or gateway the client device is connected to (likely 192.168.1.1), and replace &amp;lt;code&amp;gt;&amp;lt;wan_dev&amp;gt;&amp;lt;/code&amp;gt; with the interface name of the WAN port on the client device. Do this for every peer yggdrasil is configured to use.&lt;br /&gt;
&lt;br /&gt;
 ip ro add &amp;lt;peer_ip&amp;gt; via &amp;lt;wan_gw&amp;gt; dev &amp;lt;wan_dev&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, replace the default route with one pointing to the gateway node's tunnel IP&lt;br /&gt;
&lt;br /&gt;
 ip ro replace default via 10.42.0.1&lt;br /&gt;
&lt;br /&gt;
= Diagnostics Commands =&lt;br /&gt;
&lt;br /&gt;
 tcpdump -nqi any net 4.2.2.1&lt;br /&gt;
 ip a | grep 200&lt;br /&gt;
 # think metric as in &amp;quot;cost&amp;quot; -&amp;gt; higher is lower priority&lt;br /&gt;
 ip route del default via 192.168.42.1 dev enp0s25&lt;br /&gt;
 ip route del default via 192.168.42.1 dev enp0s25 metric 700&lt;br /&gt;
 ./build -d # build w/ debug flag&lt;br /&gt;
 env PPROFLISTEN=localhost:6060 ./yggdrasil -useconffile /etc/yggdrasil/yggdrasil.conf&lt;br /&gt;
 http://localhost:6060/debug/pprof/&lt;br /&gt;
 ./yggdrasilctl -v getself&lt;/div&gt;</summary>
		<author><name>Stephen304</name></author>
		
	</entry>
	<entry>
		<id>https://massmesh.org/wiki/index.php?title=Manual_Gateway_Configuration&amp;diff=1837</id>
		<title>Manual Gateway Configuration</title>
		<link rel="alternate" type="text/html" href="https://massmesh.org/wiki/index.php?title=Manual_Gateway_Configuration&amp;diff=1837"/>
		<updated>2020-09-13T15:47:26Z</updated>

		<summary type="html">&lt;p&gt;Stephen304: Stephen304 moved page Gateway Configuration to Manual Gateway Configuration without leaving a redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__FORCETOC__&lt;br /&gt;
&lt;br /&gt;
{{Info|Our gateway's public key is d5ce5d9e98bf9d5031c0e78a64339915b71e77b808830a719241afb7dd6c8c25. After coordinating with [mailto:lurker@riseup.net our gateway operator], you will get an IPv4 address necessary to complete the [[#Gateway Client Configuration]] steps.}}&lt;br /&gt;
&lt;br /&gt;
= Gateway Server Configuration =&lt;br /&gt;
&lt;br /&gt;
== Manual Configuration ==&lt;br /&gt;
&lt;br /&gt;
Add &amp;lt;code&amp;gt;0.0.0.0/0&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;IPv4LocalSubnets&amp;lt;/code&amp;gt; and enable &amp;lt;code&amp;gt;TunnelRouting&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;/etc/yggdrasil.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 TunnelRouting:&lt;br /&gt;
 {&lt;br /&gt;
   # Enable or disable tunnel routing.&lt;br /&gt;
   Enable: true&lt;br /&gt;
   # IPv4 subnets belonging to this node's end of the tunnels. Only traffic  &lt;br /&gt;
   # from these ranges will be tunnelled.&lt;br /&gt;
   IPv4LocalSubnets:&lt;br /&gt;
   [&lt;br /&gt;
     0.0.0.0/0&lt;br /&gt;
   ]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Restart yggdrasil with &amp;lt;code&amp;gt;systemctl restart yggdrasil.service&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;service yggdrasil restart&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assign an IP/subnet to the yggdrasil interface (&amp;lt;code&amp;gt;tun0&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;ygg0&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
 ip addr add 10.42.0.1/16 dev tun0&lt;br /&gt;
&lt;br /&gt;
For every node using the gateway, pick an IP address in the previous subnet and inform yggdrasil of the public key of the node to be associated with the chosen IP&lt;br /&gt;
&lt;br /&gt;
 yggdrasilctl addremotesubnet subnet=10.42.0.10/32 box_pub_key=&amp;lt;client_public_key&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, add iptables rules to route / forward traffic to the internet. Replace eth0 with the WAN interface of the gateway&lt;br /&gt;
&lt;br /&gt;
 iptables -A FORWARD -i eth0 -j ACCEPT&lt;br /&gt;
 iptables -A FORWARD -o eth0 -j ACCEPT                                                      &lt;br /&gt;
 iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE                                       &lt;br /&gt;
 echo 1 | tee /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
= Gateway Client Configuration =&lt;br /&gt;
&lt;br /&gt;
== Using Auto YGG ==&lt;br /&gt;
&lt;br /&gt;
Public Gateway Address: 201:506e:60d6:bd66:e35c:606:4883:ea9a&lt;br /&gt;
&lt;br /&gt;
This can be accomplished in LuCi. Navigate to &amp;quot;Network &amp;gt; Internet Gateway (autoygg).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Using mm-cli ==&lt;br /&gt;
&lt;br /&gt;
This method will work as long as you connect your client device to the Internet during the install.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
opkg update&lt;br /&gt;
opkg install python3-pip&lt;br /&gt;
pip install mm-cli&lt;br /&gt;
alias mm=&amp;quot;python -m mm_cli&lt;br /&gt;
mm cl setgateway d5ce5d9e98bf9d5031c0e78a64339915b71e77b808830a719241afb7dd6c8c25 10.42.0.{Client_IP}/24 10.42.0.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Manual Configuration ==&lt;br /&gt;
&lt;br /&gt;
Add &amp;lt;code&amp;gt;0.0.0.0/0&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;IPv4LocalSubnets&amp;lt;/code&amp;gt; and enable &amp;lt;code&amp;gt;TunnelRouting&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;/etc/yggdrasil.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 TunnelRouting:&lt;br /&gt;
 {&lt;br /&gt;
   # Enable or disable tunnel routing.&lt;br /&gt;
   Enable: true&lt;br /&gt;
   # IPv4 subnets belonging to this node's end of the tunnels. Only traffic  &lt;br /&gt;
   # from these ranges will be tunnelled.&lt;br /&gt;
   IPv4LocalSubnets:&lt;br /&gt;
   [&lt;br /&gt;
     0.0.0.0/0&lt;br /&gt;
   ]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Restart yggdrasil with &amp;lt;code&amp;gt;systemctl restart yggdrasil.service&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;service yggdrasil restart&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the IP address allocated on the gateway for this node to the yggdrasil interface&lt;br /&gt;
&lt;br /&gt;
 ip addr add 10.42.0.10/16 dev ygg0&lt;br /&gt;
&lt;br /&gt;
Inform yggdrasil of the gateway node's public key&lt;br /&gt;
&lt;br /&gt;
 yggdrasilctl addremotesubnet subnet=0.0.0.0/0 box_pub_key=&amp;lt;gateway_public_key&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the client device is connected to WAN, add routes to each yggdrasil peer's IP address to override the default route. Replace &amp;lt;code&amp;gt;&amp;lt;peer_ip&amp;gt;&amp;lt;/code&amp;gt; with the IP address of the yggdrasil peer (likely found in yggdrasil.conf), replace &amp;lt;code&amp;gt;&amp;lt;wan_gw&amp;gt;&amp;lt;/code&amp;gt; with the IP address of the router or gateway the client device is connected to (likely 192.168.1.1), and replace &amp;lt;code&amp;gt;&amp;lt;wan_dev&amp;gt;&amp;lt;/code&amp;gt; with the interface name of the WAN port on the client device. Do this for every peer yggdrasil is configured to use.&lt;br /&gt;
&lt;br /&gt;
 ip ro add &amp;lt;peer_ip&amp;gt; via &amp;lt;wan_gw&amp;gt; dev &amp;lt;wan_dev&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, replace the default route with one pointing to the gateway node's tunnel IP&lt;br /&gt;
&lt;br /&gt;
 ip ro replace default via 10.42.0.1&lt;br /&gt;
&lt;br /&gt;
= Diagnostics Commands =&lt;br /&gt;
&lt;br /&gt;
 tcpdump -nqi any net 4.2.2.1&lt;br /&gt;
 ip a | grep 200&lt;br /&gt;
 # think metric as in &amp;quot;cost&amp;quot; -&amp;gt; higher is lower priority&lt;br /&gt;
 ip route del default via 192.168.42.1 dev enp0s25&lt;br /&gt;
 ip route del default via 192.168.42.1 dev enp0s25 metric 700&lt;br /&gt;
 ./build -d # build w/ debug flag&lt;br /&gt;
 env PPROFLISTEN=localhost:6060 ./yggdrasil -useconffile /etc/yggdrasil/yggdrasil.conf&lt;br /&gt;
 http://localhost:6060/debug/pprof/&lt;br /&gt;
 ./yggdrasilctl -v getself&lt;/div&gt;</summary>
		<author><name>Stephen304</name></author>
		
	</entry>
	<entry>
		<id>https://massmesh.org/wiki/index.php?title=Hosting_a_Gateway&amp;diff=1836</id>
		<title>Hosting a Gateway</title>
		<link rel="alternate" type="text/html" href="https://massmesh.org/wiki/index.php?title=Hosting_a_Gateway&amp;diff=1836"/>
		<updated>2020-09-13T15:18:28Z</updated>

		<summary type="html">&lt;p&gt;Stephen304: Created page with &amp;quot;This page documents the steps to set up your own gateway. Digitalocean's $5 VPS provides great value for this purpose.  == Installation ==  * Install packages `sudo apt instal...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page documents the steps to set up your own gateway. Digitalocean's $5 VPS provides great value for this purpose.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
* Install packages `sudo apt install openvpn golang make`&lt;br /&gt;
* [https://yggdrasil-network.github.io/installation-linux-deb.html Install yggdrasil] and enable the service&lt;br /&gt;
* Ensure peers are added to yggdrasil's config&lt;br /&gt;
* Set yggdrasil's interface name to ygg0 in the config&lt;br /&gt;
* Clone [https://github.com/MassMesh/autoygg autoygg] and checkout the desired version tag&lt;br /&gt;
* `cd autoygg &amp;amp;&amp;amp; make`&lt;br /&gt;
* Copy autoygg-server to /bin/ and autoygg-server.service to /usr/lib/systemd/system/&lt;br /&gt;
* `sudo systemctl daemon-reload`&lt;br /&gt;
* Create /etc/autoygg/server/yml&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
---&lt;br /&gt;
ListenHost: &amp;quot;your-gateways-ygg-ip-from-yggdrasilctl-getSelf&amp;quot;&lt;br /&gt;
ListenPort: &amp;quot;8080&amp;quot;&lt;br /&gt;
GatewayOwner: &amp;quot;Your Name &amp;lt;you@provider.com&amp;gt;&amp;quot;&lt;br /&gt;
GatewayDescription: &amp;quot;Describe this gateway&amp;quot;&lt;br /&gt;
GatewayNetwork: &amp;quot;Mullvad VPN&amp;quot;&lt;br /&gt;
GatewayLocation: &amp;quot;New York, US&amp;quot;&lt;br /&gt;
RequireRegistration: true&lt;br /&gt;
AccessListEnabled: false&lt;br /&gt;
GatewayTunnelIP: &amp;quot;10.42.0.1&amp;quot;&lt;br /&gt;
GatewayTunnelNetmask: &amp;quot;16&amp;quot;&lt;br /&gt;
GatewayTunnelIPRangeMin: 10.42.0.10&lt;br /&gt;
GatewayTunnelIPRangeMax: 10.42.0.255&lt;br /&gt;
MaxClients: 100&lt;br /&gt;
YggdrasilInterface: ygg0&lt;br /&gt;
GatewayInfoURL: &amp;quot;&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Enable / start the autoygg-server service&lt;br /&gt;
* Edit your .ovpn config, remove up/down:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dev vpn0&lt;br /&gt;
dev-type tun&lt;br /&gt;
route-nopull&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Place .ovpn, userpass.txt (if applicable), and any certs in /etc/openvpn/&lt;br /&gt;
* Reboot&lt;br /&gt;
* sudo ip rule add from 10.42.0.0/16 table 42&lt;br /&gt;
* ip ro add default dev vpn0 table 42&lt;br /&gt;
* Connect via autoygg client&lt;/div&gt;</summary>
		<author><name>Stephen304</name></author>
		
	</entry>
	<entry>
		<id>https://massmesh.org/wiki/index.php?title=Benchmarks&amp;diff=1832</id>
		<title>Benchmarks</title>
		<link rel="alternate" type="text/html" href="https://massmesh.org/wiki/index.php?title=Benchmarks&amp;diff=1832"/>
		<updated>2020-09-13T07:49:09Z</updated>

		<summary type="html">&lt;p&gt;Stephen304: /* Tests */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== EspressoBin v5 ==&lt;br /&gt;
=== No Yggdrasil ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;Connecting to host 10.0.0.1, port 5201&lt;br /&gt;
[  5] local 10.0.0.106 port 58198 connected to 10.0.0.1 port 5201&lt;br /&gt;
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd&lt;br /&gt;
[  5]   0.00-1.00   sec  49.2 MBytes   413 Mbits/sec   27    532 KBytes       &lt;br /&gt;
[  5]   1.00-2.00   sec  44.8 MBytes   376 Mbits/sec    0    592 KBytes       &lt;br /&gt;
[  5]   2.00-3.00   sec  44.8 MBytes   376 Mbits/sec    0    643 KBytes       &lt;br /&gt;
[  5]   3.00-4.00   sec  44.9 MBytes   376 Mbits/sec    1    519 KBytes       &lt;br /&gt;
[  5]   4.00-5.00   sec  46.1 MBytes   387 Mbits/sec    0    581 KBytes       &lt;br /&gt;
[  5]   5.00-6.00   sec  44.8 MBytes   376 Mbits/sec    0    639 KBytes       &lt;br /&gt;
[  5]   6.00-7.00   sec  46.1 MBytes   387 Mbits/sec    1    516 KBytes       &lt;br /&gt;
[  5]   7.00-8.00   sec  43.6 MBytes   366 Mbits/sec  374    346 KBytes       &lt;br /&gt;
[  5]   8.00-9.00   sec  44.9 MBytes   377 Mbits/sec    0    434 KBytes       &lt;br /&gt;
[  5]   9.00-10.00  sec  46.1 MBytes   387 Mbits/sec    0    509 KBytes       &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
[ ID] Interval           Transfer     Bitrate         Retr&lt;br /&gt;
[  5]   0.00-10.00  sec   455 MBytes   382 Mbits/sec  403             sender&lt;br /&gt;
[  5]   0.00-10.05  sec   452 MBytes   377 Mbits/sec                  receiver&lt;br /&gt;
&lt;br /&gt;
iperf Done.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
=== Yggdrasil ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;Connecting to host 201:f06b:1827:4e45:90fa:554e:ace5:27c7, port 5201&lt;br /&gt;
[  5] local 201:28ab:ee79:77d4:192e:1366:8b79:4980 port 33776 connected to 201:f06b:1827:4e45:90fa:554e:ace5:27c7 port 5201&lt;br /&gt;
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd&lt;br /&gt;
[  5]   0.00-1.00   sec  17.4 MBytes   146 Mbits/sec   26   1.50 MBytes       &lt;br /&gt;
[  5]   1.00-2.00   sec  16.2 MBytes   136 Mbits/sec   20   1.31 MBytes       &lt;br /&gt;
[  5]   2.00-3.00   sec  15.0 MBytes   126 Mbits/sec   56    959 KBytes       &lt;br /&gt;
[  5]   3.00-4.00   sec  13.8 MBytes   115 Mbits/sec   31    767 KBytes       &lt;br /&gt;
[  5]   4.00-5.00   sec  13.8 MBytes   115 Mbits/sec   20    831 KBytes       &lt;br /&gt;
[  5]   5.00-6.00   sec  15.0 MBytes   126 Mbits/sec    2   1.25 MBytes       &lt;br /&gt;
[  5]   6.00-7.00   sec  17.5 MBytes   147 Mbits/sec   23   1.37 MBytes       &lt;br /&gt;
[  5]   7.00-8.00   sec  17.5 MBytes   147 Mbits/sec    1   1.62 MBytes       &lt;br /&gt;
[  5]   8.00-9.00   sec  15.0 MBytes   126 Mbits/sec    5   1.62 MBytes       &lt;br /&gt;
[  5]   9.00-10.00  sec  17.5 MBytes   147 Mbits/sec    6   1.62 MBytes       &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
[ ID] Interval           Transfer     Bitrate         Retr&lt;br /&gt;
[  5]   0.00-10.00  sec   159 MBytes   133 Mbits/sec  190             sender&lt;br /&gt;
[  5]   0.00-10.09  sec   157 MBytes   130 Mbits/sec                  receiver&lt;br /&gt;
&lt;br /&gt;
iperf Done.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Raspberry Pi 3B+ ==&lt;br /&gt;
=== Yggdrasil ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;[ ID] Interval           Transfer     Bitrate&lt;br /&gt;
[  5]   0.00-10.41  sec  37.3 MBytes  30.1 Mbits/sec                  receiver&lt;br /&gt;
[  8]   0.00-10.41  sec  36.6 MBytes  29.5 Mbits/sec                  receiver&lt;br /&gt;
[ 10]   0.00-10.41  sec  36.6 MBytes  29.5 Mbits/sec                  receiver&lt;br /&gt;
[ 12]   0.00-10.41  sec  38.0 MBytes  30.6 Mbits/sec                  receiver&lt;br /&gt;
[SUM]   0.00-10.41  sec   149 MBytes   120 Mbits/sec                  receiver&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tests ==&lt;br /&gt;
&lt;br /&gt;
=== VPS Benchmark ===&lt;br /&gt;
Environment: Laptop, Rpi4, DO Droplet, mullvad&lt;br /&gt;
&lt;br /&gt;
Fully wired, rpi connected via autoygg to droplet, which routes traffic out through mullvad&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Benchmarked VPS&lt;br /&gt;
! Size !! Download !! Upload !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| $5 Basic || 55 Mbit/s || 30 Mbit/s || Tested steam downloads as well as speedtest.net. Maxed out CPU&lt;br /&gt;
|-&lt;br /&gt;
| $15 Basic || 53 Mbit/s || 47 Mbit/s || Tested speedtest.net, CPU at ~50%&lt;br /&gt;
|-&lt;br /&gt;
| $40 Basic || 65 Mbit/s || 55 Mbit/s || Tested speedtest.net, low resource utilization overall&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Stephen304</name></author>
		
	</entry>
	<entry>
		<id>https://massmesh.org/wiki/index.php?title=Benchmarks&amp;diff=1831</id>
		<title>Benchmarks</title>
		<link rel="alternate" type="text/html" href="https://massmesh.org/wiki/index.php?title=Benchmarks&amp;diff=1831"/>
		<updated>2020-09-13T07:44:18Z</updated>

		<summary type="html">&lt;p&gt;Stephen304: /* VPS Benchmark */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== EspressoBin v5 ==&lt;br /&gt;
=== No Yggdrasil ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;Connecting to host 10.0.0.1, port 5201&lt;br /&gt;
[  5] local 10.0.0.106 port 58198 connected to 10.0.0.1 port 5201&lt;br /&gt;
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd&lt;br /&gt;
[  5]   0.00-1.00   sec  49.2 MBytes   413 Mbits/sec   27    532 KBytes       &lt;br /&gt;
[  5]   1.00-2.00   sec  44.8 MBytes   376 Mbits/sec    0    592 KBytes       &lt;br /&gt;
[  5]   2.00-3.00   sec  44.8 MBytes   376 Mbits/sec    0    643 KBytes       &lt;br /&gt;
[  5]   3.00-4.00   sec  44.9 MBytes   376 Mbits/sec    1    519 KBytes       &lt;br /&gt;
[  5]   4.00-5.00   sec  46.1 MBytes   387 Mbits/sec    0    581 KBytes       &lt;br /&gt;
[  5]   5.00-6.00   sec  44.8 MBytes   376 Mbits/sec    0    639 KBytes       &lt;br /&gt;
[  5]   6.00-7.00   sec  46.1 MBytes   387 Mbits/sec    1    516 KBytes       &lt;br /&gt;
[  5]   7.00-8.00   sec  43.6 MBytes   366 Mbits/sec  374    346 KBytes       &lt;br /&gt;
[  5]   8.00-9.00   sec  44.9 MBytes   377 Mbits/sec    0    434 KBytes       &lt;br /&gt;
[  5]   9.00-10.00  sec  46.1 MBytes   387 Mbits/sec    0    509 KBytes       &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
[ ID] Interval           Transfer     Bitrate         Retr&lt;br /&gt;
[  5]   0.00-10.00  sec   455 MBytes   382 Mbits/sec  403             sender&lt;br /&gt;
[  5]   0.00-10.05  sec   452 MBytes   377 Mbits/sec                  receiver&lt;br /&gt;
&lt;br /&gt;
iperf Done.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
=== Yggdrasil ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;Connecting to host 201:f06b:1827:4e45:90fa:554e:ace5:27c7, port 5201&lt;br /&gt;
[  5] local 201:28ab:ee79:77d4:192e:1366:8b79:4980 port 33776 connected to 201:f06b:1827:4e45:90fa:554e:ace5:27c7 port 5201&lt;br /&gt;
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd&lt;br /&gt;
[  5]   0.00-1.00   sec  17.4 MBytes   146 Mbits/sec   26   1.50 MBytes       &lt;br /&gt;
[  5]   1.00-2.00   sec  16.2 MBytes   136 Mbits/sec   20   1.31 MBytes       &lt;br /&gt;
[  5]   2.00-3.00   sec  15.0 MBytes   126 Mbits/sec   56    959 KBytes       &lt;br /&gt;
[  5]   3.00-4.00   sec  13.8 MBytes   115 Mbits/sec   31    767 KBytes       &lt;br /&gt;
[  5]   4.00-5.00   sec  13.8 MBytes   115 Mbits/sec   20    831 KBytes       &lt;br /&gt;
[  5]   5.00-6.00   sec  15.0 MBytes   126 Mbits/sec    2   1.25 MBytes       &lt;br /&gt;
[  5]   6.00-7.00   sec  17.5 MBytes   147 Mbits/sec   23   1.37 MBytes       &lt;br /&gt;
[  5]   7.00-8.00   sec  17.5 MBytes   147 Mbits/sec    1   1.62 MBytes       &lt;br /&gt;
[  5]   8.00-9.00   sec  15.0 MBytes   126 Mbits/sec    5   1.62 MBytes       &lt;br /&gt;
[  5]   9.00-10.00  sec  17.5 MBytes   147 Mbits/sec    6   1.62 MBytes       &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
[ ID] Interval           Transfer     Bitrate         Retr&lt;br /&gt;
[  5]   0.00-10.00  sec   159 MBytes   133 Mbits/sec  190             sender&lt;br /&gt;
[  5]   0.00-10.09  sec   157 MBytes   130 Mbits/sec                  receiver&lt;br /&gt;
&lt;br /&gt;
iperf Done.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Raspberry Pi 3B+ ==&lt;br /&gt;
=== Yggdrasil ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;[ ID] Interval           Transfer     Bitrate&lt;br /&gt;
[  5]   0.00-10.41  sec  37.3 MBytes  30.1 Mbits/sec                  receiver&lt;br /&gt;
[  8]   0.00-10.41  sec  36.6 MBytes  29.5 Mbits/sec                  receiver&lt;br /&gt;
[ 10]   0.00-10.41  sec  36.6 MBytes  29.5 Mbits/sec                  receiver&lt;br /&gt;
[ 12]   0.00-10.41  sec  38.0 MBytes  30.6 Mbits/sec                  receiver&lt;br /&gt;
[SUM]   0.00-10.41  sec   149 MBytes   120 Mbits/sec                  receiver&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tests ==&lt;br /&gt;
&lt;br /&gt;
=== VPS Benchmark ===&lt;br /&gt;
Environment: Laptop, Rpi4, DO Droplet, mullvad&lt;br /&gt;
&lt;br /&gt;
Fully wired, rpi connected via autoygg to droplet, which routes traffic out through mullvad&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Benchmarked VPS&lt;br /&gt;
! Size !! Download !! Upload !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| $5 Basic || 55 Mbit/s || 30 Mbit/s || Tested steam downloads as well as speedtest.net. Maxed out CPU&lt;br /&gt;
|-&lt;br /&gt;
| $15 Basic || 53 Mbit/s || 47 Mbit/s || Tested speedtest.net, CPU at ~50%&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Stephen304</name></author>
		
	</entry>
	<entry>
		<id>https://massmesh.org/wiki/index.php?title=Benchmarks&amp;diff=1830</id>
		<title>Benchmarks</title>
		<link rel="alternate" type="text/html" href="https://massmesh.org/wiki/index.php?title=Benchmarks&amp;diff=1830"/>
		<updated>2020-09-13T07:42:38Z</updated>

		<summary type="html">&lt;p&gt;Stephen304: /* VPS Benchmark */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== EspressoBin v5 ==&lt;br /&gt;
=== No Yggdrasil ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;Connecting to host 10.0.0.1, port 5201&lt;br /&gt;
[  5] local 10.0.0.106 port 58198 connected to 10.0.0.1 port 5201&lt;br /&gt;
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd&lt;br /&gt;
[  5]   0.00-1.00   sec  49.2 MBytes   413 Mbits/sec   27    532 KBytes       &lt;br /&gt;
[  5]   1.00-2.00   sec  44.8 MBytes   376 Mbits/sec    0    592 KBytes       &lt;br /&gt;
[  5]   2.00-3.00   sec  44.8 MBytes   376 Mbits/sec    0    643 KBytes       &lt;br /&gt;
[  5]   3.00-4.00   sec  44.9 MBytes   376 Mbits/sec    1    519 KBytes       &lt;br /&gt;
[  5]   4.00-5.00   sec  46.1 MBytes   387 Mbits/sec    0    581 KBytes       &lt;br /&gt;
[  5]   5.00-6.00   sec  44.8 MBytes   376 Mbits/sec    0    639 KBytes       &lt;br /&gt;
[  5]   6.00-7.00   sec  46.1 MBytes   387 Mbits/sec    1    516 KBytes       &lt;br /&gt;
[  5]   7.00-8.00   sec  43.6 MBytes   366 Mbits/sec  374    346 KBytes       &lt;br /&gt;
[  5]   8.00-9.00   sec  44.9 MBytes   377 Mbits/sec    0    434 KBytes       &lt;br /&gt;
[  5]   9.00-10.00  sec  46.1 MBytes   387 Mbits/sec    0    509 KBytes       &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
[ ID] Interval           Transfer     Bitrate         Retr&lt;br /&gt;
[  5]   0.00-10.00  sec   455 MBytes   382 Mbits/sec  403             sender&lt;br /&gt;
[  5]   0.00-10.05  sec   452 MBytes   377 Mbits/sec                  receiver&lt;br /&gt;
&lt;br /&gt;
iperf Done.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
=== Yggdrasil ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;Connecting to host 201:f06b:1827:4e45:90fa:554e:ace5:27c7, port 5201&lt;br /&gt;
[  5] local 201:28ab:ee79:77d4:192e:1366:8b79:4980 port 33776 connected to 201:f06b:1827:4e45:90fa:554e:ace5:27c7 port 5201&lt;br /&gt;
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd&lt;br /&gt;
[  5]   0.00-1.00   sec  17.4 MBytes   146 Mbits/sec   26   1.50 MBytes       &lt;br /&gt;
[  5]   1.00-2.00   sec  16.2 MBytes   136 Mbits/sec   20   1.31 MBytes       &lt;br /&gt;
[  5]   2.00-3.00   sec  15.0 MBytes   126 Mbits/sec   56    959 KBytes       &lt;br /&gt;
[  5]   3.00-4.00   sec  13.8 MBytes   115 Mbits/sec   31    767 KBytes       &lt;br /&gt;
[  5]   4.00-5.00   sec  13.8 MBytes   115 Mbits/sec   20    831 KBytes       &lt;br /&gt;
[  5]   5.00-6.00   sec  15.0 MBytes   126 Mbits/sec    2   1.25 MBytes       &lt;br /&gt;
[  5]   6.00-7.00   sec  17.5 MBytes   147 Mbits/sec   23   1.37 MBytes       &lt;br /&gt;
[  5]   7.00-8.00   sec  17.5 MBytes   147 Mbits/sec    1   1.62 MBytes       &lt;br /&gt;
[  5]   8.00-9.00   sec  15.0 MBytes   126 Mbits/sec    5   1.62 MBytes       &lt;br /&gt;
[  5]   9.00-10.00  sec  17.5 MBytes   147 Mbits/sec    6   1.62 MBytes       &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
[ ID] Interval           Transfer     Bitrate         Retr&lt;br /&gt;
[  5]   0.00-10.00  sec   159 MBytes   133 Mbits/sec  190             sender&lt;br /&gt;
[  5]   0.00-10.09  sec   157 MBytes   130 Mbits/sec                  receiver&lt;br /&gt;
&lt;br /&gt;
iperf Done.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Raspberry Pi 3B+ ==&lt;br /&gt;
=== Yggdrasil ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;[ ID] Interval           Transfer     Bitrate&lt;br /&gt;
[  5]   0.00-10.41  sec  37.3 MBytes  30.1 Mbits/sec                  receiver&lt;br /&gt;
[  8]   0.00-10.41  sec  36.6 MBytes  29.5 Mbits/sec                  receiver&lt;br /&gt;
[ 10]   0.00-10.41  sec  36.6 MBytes  29.5 Mbits/sec                  receiver&lt;br /&gt;
[ 12]   0.00-10.41  sec  38.0 MBytes  30.6 Mbits/sec                  receiver&lt;br /&gt;
[SUM]   0.00-10.41  sec   149 MBytes   120 Mbits/sec                  receiver&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tests ==&lt;br /&gt;
&lt;br /&gt;
=== VPS Benchmark ===&lt;br /&gt;
Environment: Laptop, Rpi4, DO Droplet, mullvad&lt;br /&gt;
&lt;br /&gt;
Fully wired, rpi connected via autoygg to droplet, which routes traffic out through mullvad&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Benchmarked VPS&lt;br /&gt;
! Size !! Download !! Upload !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| $5 General || 55 Mbit/s || 30 Mbit/s || Tested steam downloads as well as speedtest.net&lt;br /&gt;
| $15 General || 53 Mbit/s || 47 Mbit/s || Tested speedtest.net&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Stephen304</name></author>
		
	</entry>
	<entry>
		<id>https://massmesh.org/wiki/index.php?title=Benchmarks&amp;diff=1829</id>
		<title>Benchmarks</title>
		<link rel="alternate" type="text/html" href="https://massmesh.org/wiki/index.php?title=Benchmarks&amp;diff=1829"/>
		<updated>2020-09-13T06:42:33Z</updated>

		<summary type="html">&lt;p&gt;Stephen304: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== EspressoBin v5 ==&lt;br /&gt;
=== No Yggdrasil ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;Connecting to host 10.0.0.1, port 5201&lt;br /&gt;
[  5] local 10.0.0.106 port 58198 connected to 10.0.0.1 port 5201&lt;br /&gt;
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd&lt;br /&gt;
[  5]   0.00-1.00   sec  49.2 MBytes   413 Mbits/sec   27    532 KBytes       &lt;br /&gt;
[  5]   1.00-2.00   sec  44.8 MBytes   376 Mbits/sec    0    592 KBytes       &lt;br /&gt;
[  5]   2.00-3.00   sec  44.8 MBytes   376 Mbits/sec    0    643 KBytes       &lt;br /&gt;
[  5]   3.00-4.00   sec  44.9 MBytes   376 Mbits/sec    1    519 KBytes       &lt;br /&gt;
[  5]   4.00-5.00   sec  46.1 MBytes   387 Mbits/sec    0    581 KBytes       &lt;br /&gt;
[  5]   5.00-6.00   sec  44.8 MBytes   376 Mbits/sec    0    639 KBytes       &lt;br /&gt;
[  5]   6.00-7.00   sec  46.1 MBytes   387 Mbits/sec    1    516 KBytes       &lt;br /&gt;
[  5]   7.00-8.00   sec  43.6 MBytes   366 Mbits/sec  374    346 KBytes       &lt;br /&gt;
[  5]   8.00-9.00   sec  44.9 MBytes   377 Mbits/sec    0    434 KBytes       &lt;br /&gt;
[  5]   9.00-10.00  sec  46.1 MBytes   387 Mbits/sec    0    509 KBytes       &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
[ ID] Interval           Transfer     Bitrate         Retr&lt;br /&gt;
[  5]   0.00-10.00  sec   455 MBytes   382 Mbits/sec  403             sender&lt;br /&gt;
[  5]   0.00-10.05  sec   452 MBytes   377 Mbits/sec                  receiver&lt;br /&gt;
&lt;br /&gt;
iperf Done.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
=== Yggdrasil ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;Connecting to host 201:f06b:1827:4e45:90fa:554e:ace5:27c7, port 5201&lt;br /&gt;
[  5] local 201:28ab:ee79:77d4:192e:1366:8b79:4980 port 33776 connected to 201:f06b:1827:4e45:90fa:554e:ace5:27c7 port 5201&lt;br /&gt;
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd&lt;br /&gt;
[  5]   0.00-1.00   sec  17.4 MBytes   146 Mbits/sec   26   1.50 MBytes       &lt;br /&gt;
[  5]   1.00-2.00   sec  16.2 MBytes   136 Mbits/sec   20   1.31 MBytes       &lt;br /&gt;
[  5]   2.00-3.00   sec  15.0 MBytes   126 Mbits/sec   56    959 KBytes       &lt;br /&gt;
[  5]   3.00-4.00   sec  13.8 MBytes   115 Mbits/sec   31    767 KBytes       &lt;br /&gt;
[  5]   4.00-5.00   sec  13.8 MBytes   115 Mbits/sec   20    831 KBytes       &lt;br /&gt;
[  5]   5.00-6.00   sec  15.0 MBytes   126 Mbits/sec    2   1.25 MBytes       &lt;br /&gt;
[  5]   6.00-7.00   sec  17.5 MBytes   147 Mbits/sec   23   1.37 MBytes       &lt;br /&gt;
[  5]   7.00-8.00   sec  17.5 MBytes   147 Mbits/sec    1   1.62 MBytes       &lt;br /&gt;
[  5]   8.00-9.00   sec  15.0 MBytes   126 Mbits/sec    5   1.62 MBytes       &lt;br /&gt;
[  5]   9.00-10.00  sec  17.5 MBytes   147 Mbits/sec    6   1.62 MBytes       &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
[ ID] Interval           Transfer     Bitrate         Retr&lt;br /&gt;
[  5]   0.00-10.00  sec   159 MBytes   133 Mbits/sec  190             sender&lt;br /&gt;
[  5]   0.00-10.09  sec   157 MBytes   130 Mbits/sec                  receiver&lt;br /&gt;
&lt;br /&gt;
iperf Done.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Raspberry Pi 3B+ ==&lt;br /&gt;
=== Yggdrasil ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;[ ID] Interval           Transfer     Bitrate&lt;br /&gt;
[  5]   0.00-10.41  sec  37.3 MBytes  30.1 Mbits/sec                  receiver&lt;br /&gt;
[  8]   0.00-10.41  sec  36.6 MBytes  29.5 Mbits/sec                  receiver&lt;br /&gt;
[ 10]   0.00-10.41  sec  36.6 MBytes  29.5 Mbits/sec                  receiver&lt;br /&gt;
[ 12]   0.00-10.41  sec  38.0 MBytes  30.6 Mbits/sec                  receiver&lt;br /&gt;
[SUM]   0.00-10.41  sec   149 MBytes   120 Mbits/sec                  receiver&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tests ==&lt;br /&gt;
&lt;br /&gt;
=== VPS Benchmark ===&lt;br /&gt;
Environment: Laptop, Rpi4, DO Droplet, mullvad&lt;br /&gt;
&lt;br /&gt;
Fully wired, rpi connected via autoygg to droplet, which routes traffic out through mullvad&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Benchmarked VPS&lt;br /&gt;
! Size !! Download !! Upload !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| $5 General || 55 Mbit/s || 30 Mbit/s || Tested steam downloads as well as speedtest.net&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Stephen304</name></author>
		
	</entry>
	<entry>
		<id>https://massmesh.org/wiki/index.php?title=USB_Ethernet_Adapters&amp;diff=1819</id>
		<title>USB Ethernet Adapters</title>
		<link rel="alternate" type="text/html" href="https://massmesh.org/wiki/index.php?title=USB_Ethernet_Adapters&amp;diff=1819"/>
		<updated>2020-09-05T04:00:37Z</updated>

		<summary type="html">&lt;p&gt;Stephen304: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page documents USB Ethernet Adapters that may be compatible with the MassMesh Mesh Node. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ USB Ethernet Adapter Comparison&lt;br /&gt;
! Brand !! Model !! Supported&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; !! Driver Required !! Links&lt;br /&gt;
|-&lt;br /&gt;
| Amazon Basics || USB 3.0 to 10/100/1000 Gigabit Ethernet Adapter || Yes || kmod-usb-net-asix-ax88179 || [https://www.amazon.com/dp/B00M77HMU0/ Amazon]&lt;br /&gt;
|-&lt;br /&gt;
| Anker || USB 3.0 Unibody Aluminum Gigabit Ethernet Adapter || Yes || kmod-usb-net-rtl8152 || [https://www.amazon.com/gp/product/B00PC0H9IE/ Amazon] [https://www.newegg.com/p/1B4-065J-001A0 Newegg]&lt;br /&gt;
|-&lt;br /&gt;
| Inland || USB 3.0 to Gigabit Ethernet Adapter || Likely || kmod-usb-net-asix-ax88179 ? || [https://www.microcenter.com/product/485118/USB_30_to_Gigabit_Ethernet_Adapter Micro Center]&lt;br /&gt;
|-&lt;br /&gt;
| TP-Link || TL-UE300 || Yes || kmod-usb-net-rtl8152 || [https://www.amazon.com/TP-Link-Foldable-Gigabit-Ethernet-Compatible/dp/B00YUU3KC6/ Amazon] [https://www.microcenter.com/product/496684/tp-link-usb-30-to-gigabit-ethernet-network-adapter Micro Center] [https://www.newegg.com/tp-link-ue300/p/N82E16833704260 Newegg]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; For the purposes of this comparison, supported means that it works as intended out of the box&amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Stephen304</name></author>
		
	</entry>
	<entry>
		<id>https://massmesh.org/wiki/index.php?title=USB_Ethernet_Adapters&amp;diff=1818</id>
		<title>USB Ethernet Adapters</title>
		<link rel="alternate" type="text/html" href="https://massmesh.org/wiki/index.php?title=USB_Ethernet_Adapters&amp;diff=1818"/>
		<updated>2020-09-05T03:51:24Z</updated>

		<summary type="html">&lt;p&gt;Stephen304: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page documents USB Ethernet Adapters that may be compatible with the MassMesh Mesh Node. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ USB Ethernet Adapter Comparison&lt;br /&gt;
! Brand !! Model !! Supported&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; !! Driver Required !! Links&lt;br /&gt;
|-&lt;br /&gt;
| Amazon Basics || USB 3.0 to 10/100/1000 Gigabit Ethernet Adapter || Yes || kmod-usb-net-asix-ax88179 || [https://www.amazon.com/dp/B00M77HMU0/ Amazon]&lt;br /&gt;
|-&lt;br /&gt;
| Anker || USB 3.0 Unibody Aluminum Gigabit Ethernet Adapter || Yes || kmod-usb-net-rtl8152 || [https://www.amazon.com/gp/product/B00PC0H9IE/ Amazon]&lt;br /&gt;
|-&lt;br /&gt;
| Inland || USB 3.0 to Gigabit Ethernet Adapter || Likely || kmod-usb-net-asix-ax88179 ? || [https://www.microcenter.com/product/485118/USB_30_to_Gigabit_Ethernet_Adapter Micro Center]&lt;br /&gt;
|-&lt;br /&gt;
| TP-Link || TL-UE300 || Yes || kmod-usb-net-rtl8152 || [https://www.amazon.com/TP-Link-Foldable-Gigabit-Ethernet-Compatible/dp/B00YUU3KC6/ Amazon] [https://www.microcenter.com/product/496684/tp-link-usb-30-to-gigabit-ethernet-network-adapter Micro Center]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; For the purposes of this comparison, supported means that it works as intended out of the box&amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Stephen304</name></author>
		
	</entry>
	<entry>
		<id>https://massmesh.org/wiki/index.php?title=USB_Ethernet_Adapters&amp;diff=1812</id>
		<title>USB Ethernet Adapters</title>
		<link rel="alternate" type="text/html" href="https://massmesh.org/wiki/index.php?title=USB_Ethernet_Adapters&amp;diff=1812"/>
		<updated>2020-09-03T17:16:17Z</updated>

		<summary type="html">&lt;p&gt;Stephen304: Created page with &amp;quot;This page documents USB Ethernet Adapters that may be compatible with the MassMesh Mesh Node.   {| class=&amp;quot;wikitable&amp;quot; |+ USB Ethernet Adapter Comparison ! Brand !! Model !! Sup...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page documents USB Ethernet Adapters that may be compatible with the MassMesh Mesh Node. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ USB Ethernet Adapter Comparison&lt;br /&gt;
! Brand !! Model !! Supported&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; !! Driver Required !! Links&lt;br /&gt;
|-&lt;br /&gt;
| Amazon Basics || USB 3.0 to 10/100/1000 Gigabit Ethernet Adapter || Yes || kmod-usb-net-asix-ax88179 || [https://www.amazon.com/dp/B00M77HMU0/ Amazon]&lt;br /&gt;
|-&lt;br /&gt;
| Anker || USB 3.0 Unibody Aluminum Gigabit Ethernet Adapter || Yes || ? || [https://www.amazon.com/gp/product/B00PC0H9IE/ Amazon]&lt;br /&gt;
|-&lt;br /&gt;
| Inland || USB 3.0 to Gigabit Ethernet Adapter || Likely || kmod-usb-net-asix-ax88179 ? || [https://www.microcenter.com/product/485118/USB_30_to_Gigabit_Ethernet_Adapter Micro Center]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; For the purposes of this comparison, supported means that it works as intended out of the box&amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Stephen304</name></author>
		
	</entry>
	<entry>
		<id>https://massmesh.org/wiki/index.php?title=Node_Setup&amp;diff=1743</id>
		<title>Node Setup</title>
		<link rel="alternate" type="text/html" href="https://massmesh.org/wiki/index.php?title=Node_Setup&amp;diff=1743"/>
		<updated>2020-08-11T23:56:25Z</updated>

		<summary type="html">&lt;p&gt;Stephen304: /* Install the Mass Mesh Firmware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In these instructions, we will cover how to deploy a mesh node that is privacy-enabled by default, and allows you to share an Internet connection with your neighbors. The whole setup process takes about 2 hours from start to finish. The necessary hardware is listed below, and instructions for everything from flashing the firmware to placing the antenna are covered.&lt;br /&gt;
&lt;br /&gt;
= Definitions =&lt;br /&gt;
* '''Mesh Node:''' A ''mesh node'' is the smallest unit on a mesh network. Every ''mesh node'' is a ''router'', and is critical for delivering the online traffic of its neighbors. For more details about how mesh networks and neighborhood networks work internally, please see the [[Network Architecture]] page.&lt;br /&gt;
* '''Firmware:''' Firmware is the first thing that you will install on your mesh node. ''Firmware'' is just like the operating system on your computer (Linux, Windows, Mac, etc.) ''Firmware'' is what allows us to install applications, manage users, and all the other things you can do on a functioning computer. The firmware that we use on our network is a customized version of [https://openwrt.org OpenWrt].&lt;br /&gt;
* '''Antenna/Radio:''' The ''antenna'' (or ''radio'') is what allows your mesh node to communicate with other mesh nodes. Our ''antennas'' communicate in [https://en.wikipedia.org/wiki/Open_spectrum free spectrum] at 2.4Ghz and 5Ghz -- just like the wi-fi in your home or workplace.&lt;br /&gt;
* '''Router:''' A ''router'' is any computer that is responsible for &amp;quot;routing&amp;quot; information on a network. All the ''mesh nodes'' on our network can also be called ''routers.''&lt;br /&gt;
* '''Gateway:''' A ''gateway'' or ''gateway server'' is a computer (usually a big one) that acts as a bridge between two networks. In order to provide a high level of security on our network, all of our ''mesh nodes'' reach the Internet through a ''gateway server.'' For more details about how mesh networks and neighborhood networks work internally, please see the [[Network Architecture]] page.&lt;br /&gt;
&lt;br /&gt;
= Preparation =&lt;br /&gt;
&lt;br /&gt;
{{Note|Set yourself up for success, and '''[https://riot.im/app/#/group/+massmesh:matrix.org introduce yourself in one of our chat rooms] before you begin.''' Something will go wrong during the setup process, and it's best to have experienced friends ready to help when it does.}}&lt;br /&gt;
&lt;br /&gt;
== Considerations ==&lt;br /&gt;
&lt;br /&gt;
* '''Time:''' about 2 hours&lt;br /&gt;
* '''Cost:''' about $150&lt;br /&gt;
* '''Internet Access:''' If you do not already have Internet access, you will need to find a neighbor (on your same street) who is willing to set up a mesh node at their home too, and work out a deal to share their Internet connection fairly.&lt;br /&gt;
* '''Difficulty:''' The instructions contained on this website are quite technical, and may be incomplete in some places. Most of these instructions were written with Linux users in mind. If you are using another operating system (like Windows or Mac,) some &amp;quot;[https://ddg.gg googling]&amp;quot; may be necessary to get through them. As stated above, it's good to have friends. [https://riot.im/app/#/group/+massmesh:matrix.org Introduce yourself in any of our chat channels] if you want some help getting started!&lt;br /&gt;
&lt;br /&gt;
== Materials ==&lt;br /&gt;
&lt;br /&gt;
=== Standard Mesh Node ===&lt;br /&gt;
To set up a standard mesh node that broadcasts a secure Internet connection in all directions, you will need to obtain the following equipment:&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Rpf-raspberry-pi-4-model-b.png | '''[[RPF Raspberry Pi 4 Model B]]'''&lt;br /&gt;
File:Pi_power_supply.jpg | '''Official Raspberry Pi 4 Power Supply'''&lt;br /&gt;
File:MicroSD_card.jpg  | '''microSD Card''' (4GB+)&lt;br /&gt;
File:Ethernet.jpg | '''Ethernet Cable (3x)''' (Three sections, cut to length)&lt;br /&gt;
File:usb_to_eth.png | '''USB to Ethernet Adapter (1+)'''&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Ubnt-uap-ac-m.png | '''[[Ubiquiti UAP AC Mesh]]'''&lt;br /&gt;
File:Poe.jpg | '''PoE Injector''' (One should come with the UAP AC Mesh if you buy it new)&lt;br /&gt;
File:Paperclip.jpg | '''One Paperclip''' (Seriously, these come in handy)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Custom Mesh Nodes ===&lt;br /&gt;
If you know what kind of hardware you want, and this 'aint it, please see the recommended [[Hardware Bundles]], or browse the full list of [[:Category:Devices|Devices]].&lt;br /&gt;
&lt;br /&gt;
= Firmware Installation =&lt;br /&gt;
&lt;br /&gt;
If you prefer, bring your hardware to one of our weekly [https://massmesh.org/wiki/index.php?title=Contact_and_Meeting_Info meetups], and we will be happy to flash it for you!&lt;br /&gt;
&lt;br /&gt;
== Raspberry Pi 4 ==&lt;br /&gt;
&lt;br /&gt;
=== Materials &amp;amp; Software ===&lt;br /&gt;
{{Warning|Download and install the appropriate version of the [https://www.raspberrypi.org/downloads/ Raspberry Pi Imager] for your computer before continuing.}}&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Rpf-raspberry-pi-4-model-b.png | '''[[RPF Raspberry Pi 4 Model B]]'''&lt;br /&gt;
File:MicroSD_card.jpg  | '''microSD Card''' (4GB+)&lt;br /&gt;
File:Ethernet.jpg | '''Ethernet Cable (1x)'''&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Install the Firmware ===&lt;br /&gt;
# Download the latest stable version of Mass Mesh's free firmware [https://downloads.massmesh.net/snapshots/images/meshnode/rpi-4/openwrt-massmesh-meshnode-bcm27xx-bcm2711-rpi-4-ext4-sysupgrade.img.gz here]&lt;br /&gt;
# Open the Raspberry Pi Imager (Download and install it from [https://www.raspberrypi.org/downloads/ here] if you haven't yet.)&lt;br /&gt;
# Select &amp;quot;Choose OS&amp;quot;&lt;br /&gt;
## [[File:RPI_Imager_Main_Screen.png|frameless|Select &amp;quot;Choose OS&amp;quot;]]&lt;br /&gt;
# Scroll to the bottom of the list, and select &amp;quot;Use Custom&amp;quot; &lt;br /&gt;
## [[File:RPI_Imager_Use_Custom.png|frameless|Scroll to the bottom of the list, and select &amp;quot;Use Custom&amp;quot;]]&lt;br /&gt;
# Find the Mass Mesh firmware you just downloaded, and select it from the filesystem.&lt;br /&gt;
# Once you have selected the appropriate firmware, select &amp;quot;Choose SD Card&amp;quot; &lt;br /&gt;
## [[File:RPI_Imager_Main_Screen.png|frameless|Once you have selected the appropriate firmware, select &amp;quot;Choose SD Card&amp;quot;]]&lt;br /&gt;
# You should see something like the following. Go ahead and select that card. (You probably only see one, but use the size of the card as a hint if you see several.) &lt;br /&gt;
## [[File:RPI_Imager_Select_SD_Card.png|frameless|Go ahead and select that card. (You probably only see one, but use the size of the card as a hint if you see several.)]]&lt;br /&gt;
# Once you have selected the OS and the SD Card, select &amp;quot;Write.&amp;quot; You will see a warning like the one shown below... Go ahead and select &amp;quot;Yes.&amp;quot;&lt;br /&gt;
## [[File:RPI_Imager_Write.png|frameless|Once you have selected the OS and the SD Card, select &amp;quot;Write.&amp;quot;]]&lt;br /&gt;
## [[File:RPI_Imager_Warning.png|frameless|You will see a warning like this... Go ahead and select &amp;quot;Yes.&amp;quot;]]&lt;br /&gt;
# You should see a screen like the following. Click &amp;quot;Continue,&amp;quot; and remove the SD card from your computer.&lt;br /&gt;
## [[File:RPI_Imager_Success.png|frameless|Click &amp;quot;Continue,&amp;quot; and remove the SD card from your computer.]]&lt;br /&gt;
# Plug the micro SD card into your Raspberry Pi 4.&lt;br /&gt;
&lt;br /&gt;
'''Congratulations!!!''' You have successfully prepared your Raspberry Pi 4b to act as a secure mesh node. Set it aside for now while we prepare the other hardware. We will assemble it at the end in [[#Assembly]].&lt;br /&gt;
&lt;br /&gt;
== UAP AC Mesh ==&lt;br /&gt;
&lt;br /&gt;
=== Materials ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Ubnt-uap-ac-m.png | '''[[Ubiquiti UAP AC Mesh]]'''&lt;br /&gt;
File:Ethernet.jpg | '''Ethernet Cable (2x)'''&lt;br /&gt;
File:Poe.jpg | '''PoE Injector''' (One should come with the UAP AC Mesh if you buy it new)&lt;br /&gt;
File:Paperclip.jpg | '''One Paperclip''' (Seriously, these come in handy)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Install the Firmware ===&lt;br /&gt;
&lt;br /&gt;
The steps to install firmware on the antenna are a bit different than they were for the Raspberry Pi. For one thing, the antenna does not have an SD card. So, we will have to install the firmware by connecting to the antenna with our laptop. Please see page 6 of the &amp;quot;Node Installation Guide&amp;quot; for instructions on plugging in the antenna. After you have followed the instructions there, connect your computer to the port marked &amp;quot;LAN&amp;quot; on your PoE injector. We are now ready to begin installing the firmware.&lt;br /&gt;
&lt;br /&gt;
==== Enter Factory Reset Mode ====&lt;br /&gt;
&lt;br /&gt;
# Put the antenna into factory reset mode&lt;br /&gt;
## Unplug the ethernet from the antenna&lt;br /&gt;
## Use a paper clip to hold in the reset button&lt;br /&gt;
## Plug the ethernet back in to the antenna, holding the paperclip steady as you do&lt;br /&gt;
## Continue holding the paper clip until the light on the side of your UAP AC Mesh starts blinking OFF/WHITE/BLUE (should take about 30 seconds)&lt;br /&gt;
&lt;br /&gt;
==== Set Up a Static IP Address ====&lt;br /&gt;
&lt;br /&gt;
# Assign your computer a static IP address of 192.168.1.25/24&lt;br /&gt;
## '''Windows:''' [https://winaero.com/blog/set-static-ip-address-windows-10/ Setting a static IP address in Windows 10]&lt;br /&gt;
## '''Mac:''' [https://osxdaily.com/2010/12/17/set-static-ip-address-mac/ Setting a static IP address in OSX]&lt;br /&gt;
## '''Linux:''' [https://linuxize.com/post/how-to-configure-static-ip-address-on-ubuntu-18-04/#configuring-static-ip-address-on-ubuntu-desktop Setting a static IP address in Ubuntu 18.04 desktop]&lt;br /&gt;
# Open a command prompt/terminal, and type &amp;lt;pre&amp;gt;ping 192.168.1.20&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should see something like this: (Hit Ctrl + c to stop the output)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&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=63 time=3.37 ms&lt;br /&gt;
64 bytes from 192.168.1.20: icmp_seq=2 ttl=63 time=1.36 ms&lt;br /&gt;
64 bytes from 192.168.1.20: icmp_seq=3 ttl=63 time=0.995 ms&lt;br /&gt;
64 bytes from 192.168.1.20: icmp_seq=4 ttl=63 time=1.81 ms&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* If you don't see something like what's shown above, go back and make sure that the light on the side of your UAP AC Mesh is blinking in the pattern indicated above. If not, start again from [[#Enter Factory Reset Mode]]&lt;br /&gt;
* If the light is blinking properly and you still can't ping the device, make sure that your static IP address was assigned properly. If not, start again from [[#Set Up a Static IP Address]]&lt;br /&gt;
* If you are still having trouble pinging the device, reach out for help in the chatroom. Someone will help you get unstuck.&lt;br /&gt;
&lt;br /&gt;
==== Downgrade Ubiquiti AirOS ====&lt;br /&gt;
&lt;br /&gt;
Because we are &amp;quot;jailbreaking&amp;quot; the Ubiquiti router, we have to downgrade to an older version of their proprietary firmware first. Using a tool called TFTP, we can do this quite simply.&lt;br /&gt;
&lt;br /&gt;
# Download [https://dl.ui.com/unifi/firmware/U7PG2/3.7.58.6385/BZ.qca956x.v3.7.58.6385.170508.0957.bin version 3.7 of Ubiquiti's AirOS]&lt;br /&gt;
# Rename the firmware file to &amp;lt;code&amp;gt;firmware.bin&amp;lt;/code&amp;gt;, as the device will look for this file name&lt;br /&gt;
# Use TFTP to flash the firmware onto the device:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tftp&amp;gt; connect 192.168.1.20&lt;br /&gt;
tftp&amp;gt; binary&lt;br /&gt;
tftp&amp;gt; rexmt 1&lt;br /&gt;
tftp&amp;gt; timeout 60&lt;br /&gt;
tftp&amp;gt; put firmware.bin&lt;br /&gt;
Sent x bytes in x seconds&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The LED will flash at varying speeds, then it will turn solid when complete.&lt;br /&gt;
&lt;br /&gt;
==== Install the Mass Mesh Firmware ====&lt;br /&gt;
Get the firmware [https://downloads.massmesh.net/snapshots/images/meshradio/ubnt_unifiac-mesh/openwrt-massmesh-meshradio-ath79-generic-ubnt_unifiac-mesh-squashfs-sysupgrade.bin here.]&lt;br /&gt;
&lt;br /&gt;
In the stock firmware, the access point will have the default user/pass &amp;lt;code&amp;gt;ubnt / ubnt&amp;lt;/code&amp;gt;. If there is no DHCP server, it will assign itself the IP address &amp;lt;code&amp;gt;192.168.1.20&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Statically assign your computer the IP address &amp;lt;code&amp;gt;192.168.1.25&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Power on the device and plug it into your computer's ethernet port&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Copy the firmware you want to flash to the device:&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;scp openwrt-ar71xx-generic-ubnt-unifiac-lite-squashfs-sysupgrade.bin ubnt@192.168.1.20:/tmp/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;SSH into the device and log in with the default username and password &amp;lt;code&amp;gt;ubnt / ubnt&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;ssh ubnt@192.168.1.20&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Then write the firmware to &amp;lt;code&amp;gt;kernel0&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;kernel1&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BZ.v3.7.40# mtd write /tmp/openwrt-ar71xx-generic-ubnt-unifiac-lite-squashfs-sysupgrade.bin kernel0&lt;br /&gt;
Unlocking kernel0 ...&lt;br /&gt;
Erasing kernel0 ...&lt;br /&gt;
Writing from /tmp/openwrt-ar71xx-generic-ubnt-unifiac-lite-squashfs-sysupgrade.bin to kernel0 ...  [e/w]&lt;br /&gt;
&lt;br /&gt;
BZ.v3.7.40# mtd -r write /tmp/openwrt-ar71xx-generic-ubnt-unifiac-lite-squashfs-sysupgrade.bin kernel1&lt;br /&gt;
Unlocking kernel1 ...&lt;br /&gt;
Erasing kernel1 ...&lt;br /&gt;
Writing from /tmp/openwrt-ar71xx-generic-ubnt-unifiac-lite-squashfs-sysupgrade.bin to kernel1 ...  [e/w]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After writing the firmware and giving the radio a &amp;lt;code&amp;gt;reboot&amp;lt;/code&amp;gt; please wait upwards of 5+ minutes during this &amp;quot;first boot&amp;quot; process. Soon you'll be able to access to device over WiFi (or Ethernet) in order to set a new admin password. (192.168.2.1)&lt;br /&gt;
&lt;br /&gt;
'''Congratulations!''' You have now installed all the firmware you need.&lt;br /&gt;
&lt;br /&gt;
= Assembly =&lt;br /&gt;
&lt;br /&gt;
To assemble your mesh node, please follow this PDF guide. It can be downloaded for your convenience.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pdf&amp;gt;File:New_Node_Install_Guide.pdf&amp;lt;/pdf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Next Steps =&lt;br /&gt;
&lt;br /&gt;
{{Note|You still have to do [[Gateway Configuration]] in order to access the Internet.}}&lt;br /&gt;
&lt;br /&gt;
# [[First Time Setup]]&lt;br /&gt;
# [[Gateway Configuration]]&lt;/div&gt;</summary>
		<author><name>Stephen304</name></author>
		
	</entry>
	<entry>
		<id>https://massmesh.org/wiki/index.php?title=Node_Setup&amp;diff=1742</id>
		<title>Node Setup</title>
		<link rel="alternate" type="text/html" href="https://massmesh.org/wiki/index.php?title=Node_Setup&amp;diff=1742"/>
		<updated>2020-08-11T23:51:36Z</updated>

		<summary type="html">&lt;p&gt;Stephen304: /* Downgrade Ubiquiti AirOS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In these instructions, we will cover how to deploy a mesh node that is privacy-enabled by default, and allows you to share an Internet connection with your neighbors. The whole setup process takes about 2 hours from start to finish. The necessary hardware is listed below, and instructions for everything from flashing the firmware to placing the antenna are covered.&lt;br /&gt;
&lt;br /&gt;
= Definitions =&lt;br /&gt;
* '''Mesh Node:''' A ''mesh node'' is the smallest unit on a mesh network. Every ''mesh node'' is a ''router'', and is critical for delivering the online traffic of its neighbors. For more details about how mesh networks and neighborhood networks work internally, please see the [[Network Architecture]] page.&lt;br /&gt;
* '''Firmware:''' Firmware is the first thing that you will install on your mesh node. ''Firmware'' is just like the operating system on your computer (Linux, Windows, Mac, etc.) ''Firmware'' is what allows us to install applications, manage users, and all the other things you can do on a functioning computer. The firmware that we use on our network is a customized version of [https://openwrt.org OpenWrt].&lt;br /&gt;
* '''Antenna/Radio:''' The ''antenna'' (or ''radio'') is what allows your mesh node to communicate with other mesh nodes. Our ''antennas'' communicate in [https://en.wikipedia.org/wiki/Open_spectrum free spectrum] at 2.4Ghz and 5Ghz -- just like the wi-fi in your home or workplace.&lt;br /&gt;
* '''Router:''' A ''router'' is any computer that is responsible for &amp;quot;routing&amp;quot; information on a network. All the ''mesh nodes'' on our network can also be called ''routers.''&lt;br /&gt;
* '''Gateway:''' A ''gateway'' or ''gateway server'' is a computer (usually a big one) that acts as a bridge between two networks. In order to provide a high level of security on our network, all of our ''mesh nodes'' reach the Internet through a ''gateway server.'' For more details about how mesh networks and neighborhood networks work internally, please see the [[Network Architecture]] page.&lt;br /&gt;
&lt;br /&gt;
= Preparation =&lt;br /&gt;
&lt;br /&gt;
{{Note|Set yourself up for success, and '''[https://riot.im/app/#/group/+massmesh:matrix.org introduce yourself in one of our chat rooms] before you begin.''' Something will go wrong during the setup process, and it's best to have experienced friends ready to help when it does.}}&lt;br /&gt;
&lt;br /&gt;
== Considerations ==&lt;br /&gt;
&lt;br /&gt;
* '''Time:''' about 2 hours&lt;br /&gt;
* '''Cost:''' about $150&lt;br /&gt;
* '''Internet Access:''' If you do not already have Internet access, you will need to find a neighbor (on your same street) who is willing to set up a mesh node at their home too, and work out a deal to share their Internet connection fairly.&lt;br /&gt;
* '''Difficulty:''' The instructions contained on this website are quite technical, and may be incomplete in some places. Most of these instructions were written with Linux users in mind. If you are using another operating system (like Windows or Mac,) some &amp;quot;[https://ddg.gg googling]&amp;quot; may be necessary to get through them. As stated above, it's good to have friends. [https://riot.im/app/#/group/+massmesh:matrix.org Introduce yourself in any of our chat channels] if you want some help getting started!&lt;br /&gt;
&lt;br /&gt;
== Materials ==&lt;br /&gt;
&lt;br /&gt;
=== Standard Mesh Node ===&lt;br /&gt;
To set up a standard mesh node that broadcasts a secure Internet connection in all directions, you will need to obtain the following equipment:&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Rpf-raspberry-pi-4-model-b.png | '''[[RPF Raspberry Pi 4 Model B]]'''&lt;br /&gt;
File:Pi_power_supply.jpg | '''Official Raspberry Pi 4 Power Supply'''&lt;br /&gt;
File:MicroSD_card.jpg  | '''microSD Card''' (4GB+)&lt;br /&gt;
File:Ethernet.jpg | '''Ethernet Cable (3x)''' (Three sections, cut to length)&lt;br /&gt;
File:usb_to_eth.png | '''USB to Ethernet Adapter (1+)'''&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Ubnt-uap-ac-m.png | '''[[Ubiquiti UAP AC Mesh]]'''&lt;br /&gt;
File:Poe.jpg | '''PoE Injector''' (One should come with the UAP AC Mesh if you buy it new)&lt;br /&gt;
File:Paperclip.jpg | '''One Paperclip''' (Seriously, these come in handy)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Custom Mesh Nodes ===&lt;br /&gt;
If you know what kind of hardware you want, and this 'aint it, please see the recommended [[Hardware Bundles]], or browse the full list of [[:Category:Devices|Devices]].&lt;br /&gt;
&lt;br /&gt;
= Firmware Installation =&lt;br /&gt;
&lt;br /&gt;
If you prefer, bring your hardware to one of our weekly [https://massmesh.org/wiki/index.php?title=Contact_and_Meeting_Info meetups], and we will be happy to flash it for you!&lt;br /&gt;
&lt;br /&gt;
== Raspberry Pi 4 ==&lt;br /&gt;
&lt;br /&gt;
=== Materials &amp;amp; Software ===&lt;br /&gt;
{{Warning|Download and install the appropriate version of the [https://www.raspberrypi.org/downloads/ Raspberry Pi Imager] for your computer before continuing.}}&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Rpf-raspberry-pi-4-model-b.png | '''[[RPF Raspberry Pi 4 Model B]]'''&lt;br /&gt;
File:MicroSD_card.jpg  | '''microSD Card''' (4GB+)&lt;br /&gt;
File:Ethernet.jpg | '''Ethernet Cable (1x)'''&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Install the Firmware ===&lt;br /&gt;
# Download the latest stable version of Mass Mesh's free firmware [https://downloads.massmesh.net/snapshots/images/meshnode/rpi-4/openwrt-massmesh-meshnode-bcm27xx-bcm2711-rpi-4-ext4-sysupgrade.img.gz here]&lt;br /&gt;
# Open the Raspberry Pi Imager (Download and install it from [https://www.raspberrypi.org/downloads/ here] if you haven't yet.)&lt;br /&gt;
# Select &amp;quot;Choose OS&amp;quot;&lt;br /&gt;
## [[File:RPI_Imager_Main_Screen.png|frameless|Select &amp;quot;Choose OS&amp;quot;]]&lt;br /&gt;
# Scroll to the bottom of the list, and select &amp;quot;Use Custom&amp;quot; &lt;br /&gt;
## [[File:RPI_Imager_Use_Custom.png|frameless|Scroll to the bottom of the list, and select &amp;quot;Use Custom&amp;quot;]]&lt;br /&gt;
# Find the Mass Mesh firmware you just downloaded, and select it from the filesystem.&lt;br /&gt;
# Once you have selected the appropriate firmware, select &amp;quot;Choose SD Card&amp;quot; &lt;br /&gt;
## [[File:RPI_Imager_Main_Screen.png|frameless|Once you have selected the appropriate firmware, select &amp;quot;Choose SD Card&amp;quot;]]&lt;br /&gt;
# You should see something like the following. Go ahead and select that card. (You probably only see one, but use the size of the card as a hint if you see several.) &lt;br /&gt;
## [[File:RPI_Imager_Select_SD_Card.png|frameless|Go ahead and select that card. (You probably only see one, but use the size of the card as a hint if you see several.)]]&lt;br /&gt;
# Once you have selected the OS and the SD Card, select &amp;quot;Write.&amp;quot; You will see a warning like the one shown below... Go ahead and select &amp;quot;Yes.&amp;quot;&lt;br /&gt;
## [[File:RPI_Imager_Write.png|frameless|Once you have selected the OS and the SD Card, select &amp;quot;Write.&amp;quot;]]&lt;br /&gt;
## [[File:RPI_Imager_Warning.png|frameless|You will see a warning like this... Go ahead and select &amp;quot;Yes.&amp;quot;]]&lt;br /&gt;
# You should see a screen like the following. Click &amp;quot;Continue,&amp;quot; and remove the SD card from your computer.&lt;br /&gt;
## [[File:RPI_Imager_Success.png|frameless|Click &amp;quot;Continue,&amp;quot; and remove the SD card from your computer.]]&lt;br /&gt;
# Plug the micro SD card into your Raspberry Pi 4.&lt;br /&gt;
&lt;br /&gt;
'''Congratulations!!!''' You have successfully prepared your Raspberry Pi 4b to act as a secure mesh node. Set it aside for now while we prepare the other hardware. We will assemble it at the end in [[#Assembly]].&lt;br /&gt;
&lt;br /&gt;
== UAP AC Mesh ==&lt;br /&gt;
&lt;br /&gt;
=== Materials ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Ubnt-uap-ac-m.png | '''[[Ubiquiti UAP AC Mesh]]'''&lt;br /&gt;
File:Ethernet.jpg | '''Ethernet Cable (2x)'''&lt;br /&gt;
File:Poe.jpg | '''PoE Injector''' (One should come with the UAP AC Mesh if you buy it new)&lt;br /&gt;
File:Paperclip.jpg | '''One Paperclip''' (Seriously, these come in handy)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Install the Firmware ===&lt;br /&gt;
&lt;br /&gt;
The steps to install firmware on the antenna are a bit different than they were for the Raspberry Pi. For one thing, the antenna does not have an SD card. So, we will have to install the firmware by connecting to the antenna with our laptop. Please see page 6 of the &amp;quot;Node Installation Guide&amp;quot; for instructions on plugging in the antenna. After you have followed the instructions there, connect your computer to the port marked &amp;quot;LAN&amp;quot; on your PoE injector. We are now ready to begin installing the firmware.&lt;br /&gt;
&lt;br /&gt;
==== Enter Factory Reset Mode ====&lt;br /&gt;
&lt;br /&gt;
# Put the antenna into factory reset mode&lt;br /&gt;
## Unplug the ethernet from the antenna&lt;br /&gt;
## Use a paper clip to hold in the reset button&lt;br /&gt;
## Plug the ethernet back in to the antenna, holding the paperclip steady as you do&lt;br /&gt;
## Continue holding the paper clip until the light on the side of your UAP AC Mesh starts blinking OFF/WHITE/BLUE (should take about 30 seconds)&lt;br /&gt;
&lt;br /&gt;
==== Set Up a Static IP Address ====&lt;br /&gt;
&lt;br /&gt;
# Assign your computer a static IP address of 192.168.1.25/24&lt;br /&gt;
## '''Windows:''' [https://winaero.com/blog/set-static-ip-address-windows-10/ Setting a static IP address in Windows 10]&lt;br /&gt;
## '''Mac:''' [https://osxdaily.com/2010/12/17/set-static-ip-address-mac/ Setting a static IP address in OSX]&lt;br /&gt;
## '''Linux:''' [https://linuxize.com/post/how-to-configure-static-ip-address-on-ubuntu-18-04/#configuring-static-ip-address-on-ubuntu-desktop Setting a static IP address in Ubuntu 18.04 desktop]&lt;br /&gt;
# Open a command prompt/terminal, and type &amp;lt;pre&amp;gt;ping 192.168.1.20&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should see something like this: (Hit Ctrl + c to stop the output)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&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=63 time=3.37 ms&lt;br /&gt;
64 bytes from 192.168.1.20: icmp_seq=2 ttl=63 time=1.36 ms&lt;br /&gt;
64 bytes from 192.168.1.20: icmp_seq=3 ttl=63 time=0.995 ms&lt;br /&gt;
64 bytes from 192.168.1.20: icmp_seq=4 ttl=63 time=1.81 ms&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* If you don't see something like what's shown above, go back and make sure that the light on the side of your UAP AC Mesh is blinking in the pattern indicated above. If not, start again from [[#Enter Factory Reset Mode]]&lt;br /&gt;
* If the light is blinking properly and you still can't ping the device, make sure that your static IP address was assigned properly. If not, start again from [[#Set Up a Static IP Address]]&lt;br /&gt;
* If you are still having trouble pinging the device, reach out for help in the chatroom. Someone will help you get unstuck.&lt;br /&gt;
&lt;br /&gt;
==== Downgrade Ubiquiti AirOS ====&lt;br /&gt;
&lt;br /&gt;
Because we are &amp;quot;jailbreaking&amp;quot; the Ubiquiti router, we have to downgrade to an older version of their proprietary firmware first. Using a tool called TFTP, we can do this quite simply.&lt;br /&gt;
&lt;br /&gt;
# Download [https://dl.ui.com/unifi/firmware/U7PG2/3.7.58.6385/BZ.qca956x.v3.7.58.6385.170508.0957.bin version 3.7 of Ubiquiti's AirOS]&lt;br /&gt;
# Rename the firmware file to &amp;lt;code&amp;gt;firmware.bin&amp;lt;/code&amp;gt;, as the device will look for this file name&lt;br /&gt;
# Use TFTP to flash the firmware onto the device:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tftp&amp;gt; connect 192.168.1.20&lt;br /&gt;
tftp&amp;gt; binary&lt;br /&gt;
tftp&amp;gt; rexmt 1&lt;br /&gt;
tftp&amp;gt; timeout 60&lt;br /&gt;
tftp&amp;gt; put firmware.bin&lt;br /&gt;
Sent x bytes in x seconds&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The LED will flash at varying speeds, then it will turn solid when complete.&lt;br /&gt;
&lt;br /&gt;
==== Install the Mass Mesh Firmware ====&lt;br /&gt;
# scp the firmware onto the device&lt;br /&gt;
# Write the firmware to the device using MTD&lt;br /&gt;
&lt;br /&gt;
'''Congratulations!''' You have now installed all the firmware you need.&lt;br /&gt;
&lt;br /&gt;
= Assembly =&lt;br /&gt;
&lt;br /&gt;
To assemble your mesh node, please follow this PDF guide. It can be downloaded for your convenience.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pdf&amp;gt;File:New_Node_Install_Guide.pdf&amp;lt;/pdf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Next Steps =&lt;br /&gt;
&lt;br /&gt;
{{Note|You still have to do [[Gateway Configuration]] in order to access the Internet.}}&lt;br /&gt;
&lt;br /&gt;
# [[First Time Setup]]&lt;br /&gt;
# [[Gateway Configuration]]&lt;/div&gt;</summary>
		<author><name>Stephen304</name></author>
		
	</entry>
	<entry>
		<id>https://massmesh.org/wiki/index.php?title=Category:Devices&amp;diff=1610</id>
		<title>Category:Devices</title>
		<link rel="alternate" type="text/html" href="https://massmesh.org/wiki/index.php?title=Category:Devices&amp;diff=1610"/>
		<updated>2020-02-05T23:54:25Z</updated>

		<summary type="html">&lt;p&gt;Stephen304: Add 60g radio&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__FORCETOC__&lt;br /&gt;
In order to mesh with other mesh nodes in your neighborhood network, you will require two main components: a device to run the Mass Mesh firmware and a radio so that you can communicate with other nodes.&lt;br /&gt;
{{Note|We also maintain a helpful list of [[Hardware Bundles]] for your convenience.}}&lt;br /&gt;
{{Warning|Always check the openwrt wiki *and* techdata *and* commit before buying a new device. Flashing OpenWRT can be very difficult on certain routers.}}&lt;br /&gt;
&lt;br /&gt;
== Mesh Node Devices ==&lt;br /&gt;
These are devices that can run the meshing protocol (Yggdrasil.) Once they have the Mass Mesh firmware flashed, you can connect to them for access to the mesh via wifi and/or ethernet. They will also automatically discover and connect to nearby mesh nodes via their [[#Mesh Radio Devices|connected mesh radio]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Supported Devices&lt;br /&gt;
! Brand !! Model !! Vendor Materials !! Yggdrasil Speed !! Mesh Exit Capable !! Built-in Wifi !! Outdoor !! Year !! MSRP&lt;br /&gt;
|-&lt;br /&gt;
| [[:Category:Raspberry Pi Foundation|Raspberry Pi Foundation]] || [[RPF Raspberry Pi 4 Model B|Raspberry Pi 4 Model B]] || [https://www.raspberrypi.org/documentation/hardware/raspberrypi/README.md Hardware Specifications] || 450 Mbit/s || No&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt; || Yes || No&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; || 2019 || $35.00&lt;br /&gt;
|-&lt;br /&gt;
| PC Engines || [[PC Engines APU2|APU2]] || [https://pcengines.ch/pdf/apu2.pdf Owner's Manual], [https://pcengines.ch/apu2c4.htm Product File] || 950 Mbit/s || Yes || No&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; || No&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; || 2016 || $115.00&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; USB and 2 mini-pcie interfaces available to add one or more wifi interfaces&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; Possible with outdoor case&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt; Possible with additional adapters&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Mesh Radio Devices ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Supported Point-To-Multi-Point (PTMP) Radios&lt;br /&gt;
! Brand !! Model !! Vendor Materials !! Outdoor !! Year !! MSRP&lt;br /&gt;
|-&lt;br /&gt;
| [[:Category:Ubiquiti|Ubiquiti]] || [[Ubiquiti NanoStation 5AC Loco|NanoStation 5AC Loco]] || [https://dl.ubnt.com/guides/NanoStation_ac/NS-5ACL_QSG.pdf Quick Start Guide], [https://dl.ubnt.com/datasheets/NanoStation_AC/NanoStation_AC_DS.pdf Data Sheet] || Yes || ? || $60.00&lt;br /&gt;
|-&lt;br /&gt;
| [[:Category:Ubiquiti|Ubiquiti]] || [[Ubiquiti UAP AC Mesh|UAP AC Mesh]] || [http://dl-origin.ubnt.com/guides/UniFi/UniFi_AP-AC-M_QSG.pdf Quick Start Guide], [http://dl-origin.ubnt.com/datasheets/unifi/UniFi_AC_Mesh_DS.pdf Data Sheet] || Yes || 2016 || $120.00&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Point-To-Point Radio Devices ==&lt;br /&gt;
PTP radios are devices that provide a direct link between 2 locations, usually over a long range. There is no need for custom firmware on these radios. Simply configure both ends of the link with matching settings and provide line-of-sight between them to connect.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Supported Point-To-Point (PTP) Radios&lt;br /&gt;
! Brand !! Model !! Vendor Materials !! Outdoor !! Year !! MSRP&lt;br /&gt;
|-&lt;br /&gt;
| [[:Category:MikroTik|MikroTik]] || [[MikroTik wAP 60G]] || [https://i.mt.lv/cdn/rb_files/1542446763RBwAPG-60ad-h.pdf Quick Start Guide] || Yes || ? || $99&lt;br /&gt;
|-&lt;br /&gt;
| [[:Category:Ubiquiti|Ubiquiti]] || [[Ubiquiti LiteBeam 5AC Gen2|LiteBeam 5AC Gen2]] || [https://dl.ubnt.com/guides/LiteBeam_Gen2/LiteBeam_5AC-Gen2_QSG.pdf Quick Start Guide], [https://dl.ubnt.com/datasheets/LiteBeam/LiteBeam_AC_Gen2_DS.pdf Data Sheet] || Yes || ? || ?&lt;br /&gt;
|-&lt;br /&gt;
| [[:Category:Ubiquiti|Ubiquiti]] || [[Ubiquiti NanoBeam 5AC 16|NanoBeam 5AC 16]] || [https://dl.ubnt.com/guides/NanoBeam_ac/NanoBeam_NBE-5AC-16_QSG.pdf Quick Start Guide], [https://dl.ubnt.com/datasheets/NanoBeam_ac/NanoBeam_ac_DS.pdf Data Sheet] || Yes || ? || ?&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Work In Progress Devices ==&lt;br /&gt;
{{Warning| The following devices are unsupported. '''If you are looking to host a node, we recommend that you buy one of the supported devices,''' as it's guaranteed that they will work in the mesh.}}&lt;br /&gt;
{{Note| A great way to help the tech team is to work with us to add support for the WIP devices.}}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Work In Progress (WIP) Devices&lt;br /&gt;
! Brand !! Model !! Yggdrasil Speed !! Mesh Exit Capable !! Built-in Wifi !! Outdoor !! Year !! MSRP !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| [[:Category:Globalscale|Globalscale]] || [[Globalscale ESPRESSObin v5|Espressobin v5]] || 300 Mbit/s || Yes || No&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; || No || 2017 || $49.00 || Fails to boot, no longer available for purchase&lt;br /&gt;
|-&lt;br /&gt;
| [[:Category:Linksys|Linksys]] || [[Linksys WRT1900AC|WRT1900AC]] || ? || Yes || Yes || No || 2014 || $149.99 ||&lt;br /&gt;
|-&lt;br /&gt;
| [[:Category:TP-Link|TP-Link]] || [[TP-Link Archer C7 AC1750|Archer C7 AC1750]] || ? || Yes || Yes || No || 2013 || $99.99 ||&lt;br /&gt;
|-&lt;br /&gt;
| [[:Category:TP-Link|TP-Link]] || [[TL-WDR3500]] || ? || Yes || Yes || No || 2012 || $44.99 ||&lt;br /&gt;
|-&lt;br /&gt;
| [[:Category:TP-Link|TP-Link]] || [[TL-WDR4300]] || ? || Yes || Yes || No || 2012 || $109.99 ||&lt;br /&gt;
|-&lt;br /&gt;
| [[:Category:Xiaomi|Xiaomi]] || [[Xiaomi Mi Router 3|Mi Router 3]] || ? || Yes || Yes || No || ? || $30.00 ||&lt;br /&gt;
|-&lt;br /&gt;
| [[:Category:Aerohive|Aerohive]] || [[Aerohive AP330|AP330]] || ? || ? || Yes || No || 2013 || ? || Must flash Open WRT [https://git.openwrt.org/?p=openwrt/openwrt.git;a=commit;h=f2b7d9dc1ca3d33f14961cf2885639f4f9e8965e via UART.]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; USB and mini-pcie interfaces available to add a wifi interface&amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Stephen304</name></author>
		
	</entry>
	<entry>
		<id>https://massmesh.org/wiki/index.php?title=Ubiquiti_NanoStation_5AC_Loco&amp;diff=1603</id>
		<title>Ubiquiti NanoStation 5AC Loco</title>
		<link rel="alternate" type="text/html" href="https://massmesh.org/wiki/index.php?title=Ubiquiti_NanoStation_5AC_Loco&amp;diff=1603"/>
		<updated>2020-01-29T02:00:57Z</updated>

		<summary type="html">&lt;p&gt;Stephen304: /* Downgrade Ubiquiti AirOS With An External Programmer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Devices]]&lt;br /&gt;
[[Category:Ubiquiti]]&lt;br /&gt;
[[File:Ubnt-ns-5ac-loco.png|thumb|NanoStation 5AC Loco]]&lt;br /&gt;
&lt;br /&gt;
The NanoStation 5AC Loco is a directional, weather resistant, PoE powered radio with a beam width of 90 degrees and a secondary omnidirectional radio. This makes it useful for simultaneously meshing on one radio while providing an access point for client devices on the other.&lt;br /&gt;
&lt;br /&gt;
{{ Warning| This is a PoE device. Never connect your computer directly to the PoE injector's red port!!!}}&lt;br /&gt;
&lt;br /&gt;
{{Note| The Nanostation's architecture is '''MIPS 24KC.'''}}&lt;br /&gt;
&lt;br /&gt;
{{ Warning| As of January 1, 2020, brand new Nanostations do not support downgrading the Ubiquiti AirOS firmware. (Even with the patch.)}}&lt;br /&gt;
&lt;br /&gt;
== Files ==&lt;br /&gt;
[https://dl.ubnt.com/firmwares/XC-fw/v8.5.0/WA.v8.5.0.36727.180118.1314.bin Stock Firmware v8.5.0.36727]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/MassMesh/meta-imagebuilder-artifacts/raw/master/massmesh/meshradio/ubnt_nanostation-ac-loco/openwrt-massmesh-meshradio-ath79-generic-ubnt_nanostation-ac-loco-squashfs-factory.bin MassMesh Firmware (Factory) (Latest)]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/MassMesh/meta-imagebuilder-artifacts/raw/master/massmesh/meshradio/ubnt_nanostation-ac-loco/openwrt-massmesh-meshradio-ath79-generic-ubnt_nanostation-ac-loco-squashfs-sysupgrade.bin MassMesh Firmware (Sysupgrade) (Latest)]&lt;br /&gt;
&lt;br /&gt;
== Flashing ==&lt;br /&gt;
&lt;br /&gt;
=== From OpenWrt ===&lt;br /&gt;
{{Note|Mass Mesh mesh radios have a static IP of 192.168.2.1. To access the admin UI, set your computer's ip/netmask to 192.168.2.10/24, then browse to http://192.168.2.1/ in your favorite web browser.}}&lt;br /&gt;
# Download the latest [https://github.com/MassMesh/meta-imagebuilder-artifacts/raw/master/massmesh/meshradio/ubnt_nanostation-ac-loco/openwrt-massmesh-meshradio-ath79-generic-ubnt_nanostation-ac-loco-squashfs-sysupgrade.bin MassMesh sysupgrade firmware.]&lt;br /&gt;
# Connect to the Nanostation and enter its IP address into your favorite web browser.&lt;br /&gt;
## If you are using another version of OpenWrt, please refer to its documentation for details about its IP address.&lt;br /&gt;
# Navigate to System → Backup / Flash Firmware → Actions: '''Flash new firmware image.'''&lt;br /&gt;
# Choose the sysupgrade file previously downloaded and click '''Flash'''&lt;br /&gt;
# Wait for the device to complete and reboot (This can take up to 5 minutes.)&lt;br /&gt;
&lt;br /&gt;
=== From Stock Firmware (Ubiquiti AirOS)===&lt;br /&gt;
&lt;br /&gt;
==== Downgrade Ubiquiti AirOS ====&lt;br /&gt;
&lt;br /&gt;
# Download the [https://dl.ubnt.com/firmwares/XC-fw/v8.5.0/WA.v8.5.0.36727.180118.1314.bin Stock Firmware Image v8.5.0.36727].&lt;br /&gt;
# Power on the Nanostation via a PoE injector. (This is the **red** ethernet port on your injector.)&lt;br /&gt;
# Connect the LAN side of the PoE injector to a computer.&lt;br /&gt;
# Assign a static IP/netmask of &amp;lt;code&amp;gt;192.168.1.25/24&amp;lt;/code&amp;gt; to the computer&lt;br /&gt;
## &amp;lt;code&amp;gt;sudo ip addr add 192.168.1.25/24 dev eth0&amp;lt;/code&amp;gt;&lt;br /&gt;
# Use a browser to visit http://192.168.1.20/&lt;br /&gt;
# Login using the set password or default credentials &amp;lt;code&amp;gt;ubnt / ubnt&amp;lt;/code&amp;gt;&lt;br /&gt;
# Navigate to settings and downgrade the stock firmware to v8.5.0.36727 using the downloaded image file&lt;br /&gt;
&lt;br /&gt;
==== Install The Mass Mesh OpenWrt Image ====&lt;br /&gt;
&lt;br /&gt;
{{ Note| Additional instructions are available [https://openwrt.org/toh/ubiquiti/ubiquiti_nanostation_ac_loco on OpenWrt's website].}}&lt;br /&gt;
# Download the latest Mass Mesh firmware [https://github.com/MassMesh/meta-imagebuilder-artifacts/raw/master/massmesh/meshradio/ubnt_nanostation-ac-loco/openwrt-massmesh-meshradio-ath79-generic-ubnt_nanostation-ac-loco-squashfs-factory.bin here].&lt;br /&gt;
# Copy the firmware onto the nanostation. (We like to put it in the &amp;lt;code&amp;gt;/tmp/&amp;lt;/code&amp;gt; directory.)&lt;br /&gt;
# Open a secure shell on the Nanostation. &amp;lt;code&amp;gt;ssh ubnt@192.168.1.20&amp;lt;/code&amp;gt;&lt;br /&gt;
# Patch the fwupdate.real binary a la the instructions [https://openwrt.org/toh/ubiquiti/ubiquiti_nanostation_ac_loco here.]&lt;br /&gt;
# &amp;lt;code&amp;gt;/tmp/fwupdate.real -m /tmp/openwrt-massmesh-meshradio-ath79-generic-ubnt_nanostation-ac-loco-squashfs-factory.bin&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Downgrade Ubiquiti AirOS With An External Programmer===&lt;br /&gt;
&lt;br /&gt;
When your nanostation is bricked, or if the stock firmware won't let you flash our custom firmware, you can use the '''In-System Programming''' (ISP) technique to reflash the device (see also the [https://www.flashrom.org/ISP Flashrom wiki]. You're going to need:&lt;br /&gt;
&lt;br /&gt;
# a Pomona 5252 test clip (https://www.digikey.com/product-detail/en/pomona-electronics/5252/501-2059-ND/745103), ~$16&lt;br /&gt;
# a raspberry pi (e.g. a zero w) ~$10&lt;br /&gt;
# some header pins and prototyping wires to connect everything&lt;br /&gt;
&lt;br /&gt;
The Nanostation has a Macronix MX25L12835F rom chip ([https://www.macronix.com/Lists/Datasheet/Attachments/7397/MX25L12835F,%203V,%20128Mb,%20v1.6.pdf datasheet]), which is an SPI chip with 16 connectors good for 128 Mbit of storage.&lt;br /&gt;
&lt;br /&gt;
We can use [https://flashrom.org Flashrom] running on a raspberry pi to read and write that chip, if we hook up the Pomona 5252 test clip to the MX25L12835F and connect it to the correct [https://pinout.xyz/pinout/spi SPI pins] on the pi:&lt;br /&gt;
&lt;br /&gt;
[[File:raspberry-pi-pinout.png|inline|raspberry pi GPIO pinout]]&lt;br /&gt;
&lt;br /&gt;
(note: the SPI1 CE0/CE1 pins are not labeled on this image)&lt;br /&gt;
&lt;br /&gt;
==== Pinouts (please proceed with caution!) ====&lt;br /&gt;
&lt;br /&gt;
The Raspberry Pi has 2 SPI interfaces, SPI0 and SPI1.&lt;br /&gt;
&lt;br /&gt;
On the Raspberry Pi boot partition, make sure to update config.txt and uncomment the line that reads&lt;br /&gt;
&lt;br /&gt;
 dtparam=spi=on&lt;br /&gt;
&lt;br /&gt;
After a reboot, you should see the spi device files:&lt;br /&gt;
&lt;br /&gt;
  root@raspberrypi:/home/pi# ls -laF /dev/spidev0.*&lt;br /&gt;
  crw-rw---- 1 root spi 153, 0 Jan  7 01:44 /dev/spidev0.0&lt;br /&gt;
  crw-rw---- 1 root spi 153, 1 Jan  7 01:44 /dev/spidev0.1&lt;br /&gt;
&lt;br /&gt;
Now connect the Raspberry Pi to the Pomona clip. Choose either SPI0 or SPI1. We're going to leave the VCC pin on the flash chip disconnected. We are however going to connect a few other pins to our 3.3V source from the raspberry pi, to pull them up.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|RPi SPI0!!colspan=&amp;quot;2&amp;quot;|RPi SPI1!!colspan=&amp;quot;2&amp;quot;|Pomona Clip!!Notes!!Color in picture below&lt;br /&gt;
|-&lt;br /&gt;
|17||3.3V&lt;br /&gt;
|17||3.3V&lt;br /&gt;
|1||SIO3&lt;br /&gt;
|''we do not use this pin, so we pull it up''&lt;br /&gt;
|red&lt;br /&gt;
|-&lt;br /&gt;
|17||3.3V&lt;br /&gt;
|17||3.3V&lt;br /&gt;
|9||WP#SIO2&lt;br /&gt;
|''put the chip in read/write mode''&lt;br /&gt;
|red&lt;br /&gt;
|-&lt;br /&gt;
|19||SPI0 MOSI&lt;br /&gt;
|38||SPI1 MOSI&lt;br /&gt;
|15||SI&lt;br /&gt;
|&lt;br /&gt;
|blue&lt;br /&gt;
|-&lt;br /&gt;
|21||SPI0 MISO&lt;br /&gt;
|35||SPI1 MISO&lt;br /&gt;
|8||SO&lt;br /&gt;
|&lt;br /&gt;
|orange&lt;br /&gt;
|-&lt;br /&gt;
|23||SPI0 SCLK&lt;br /&gt;
|40||SPI1 SCLK&lt;br /&gt;
|16||SCLK&lt;br /&gt;
|&lt;br /&gt;
|green&lt;br /&gt;
|-&lt;br /&gt;
|25||GND&lt;br /&gt;
|25||GND&lt;br /&gt;
|10||GND&lt;br /&gt;
|&lt;br /&gt;
|brown&lt;br /&gt;
|-&lt;br /&gt;
|24||SPI0 CE0&lt;br /&gt;
|12||SPI1 CE0&lt;br /&gt;
|7||CS&lt;br /&gt;
|&lt;br /&gt;
|yellow&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:20200127-raspberry-pi-zero-w-with-pomona-clip.jpg|thumb|A Raspberry Pi Zero W with wires connected to the SPI0 pins. There is an unused 3.3V wire visible.]]&lt;br /&gt;
&lt;br /&gt;
==== Reading the chip with flashrom ====&lt;br /&gt;
&lt;br /&gt;
Once the pomona is connected to the raspberry pi, make sure the nanostation is disconnected from power/ethernet. Then clip on the pomona.&lt;br /&gt;
&lt;br /&gt;
Flashrom on the raspberry pi requires us to specify the spi speed for the operation. We also need to specify the exact rom chip model, because there are two models that match:&lt;br /&gt;
&lt;br /&gt;
  $ flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=30000 -r proprietary.rom&lt;br /&gt;
  flashrom  on Linux 4.19.75+ (armv6l)&lt;br /&gt;
  flashrom is free software, get the source code at https://flashrom.org&lt;br /&gt;
&lt;br /&gt;
  Using clock_gettime for delay loops (clk_id: 1, resolution: 1ns).&lt;br /&gt;
  Found Macronix flash chip &amp;quot;MX25L12805D&amp;quot; (16384 kB, SPI) on linux_spi.&lt;br /&gt;
  Found Macronix flash chip &amp;quot;MX25L12835F/MX25L12845E/MX25L12865E&amp;quot; (16384 kB, SPI) on linux_spi.&lt;br /&gt;
  Multiple flash chip definitions match the detected chip(s): &amp;quot;MX25L12805D&amp;quot;, &amp;quot;MX25L12835F/MX25L12845E/MX25L12865E&amp;quot;&lt;br /&gt;
  Please specify which chip definition to use with the -c &amp;lt;chipname&amp;gt; option.&lt;br /&gt;
&lt;br /&gt;
So here's the final command to read out the chip:&lt;br /&gt;
&lt;br /&gt;
  $ flashrom -c &amp;quot;MX25L12835F/MX25L12845E/MX25L12865E&amp;quot; -p linux_spi:dev=/dev/spidev0.0,spispeed=30000 -r proprietary.rom&lt;br /&gt;
  flashrom  on Linux 4.19.75+ (armv6l)&lt;br /&gt;
  flashrom is free software, get the source code at https://flashrom.org&lt;br /&gt;
&lt;br /&gt;
  Using clock_gettime for delay loops (clk_id: 1, resolution: 1ns).&lt;br /&gt;
  Found Macronix flash chip &amp;quot;MX25L12835F/MX25L12845E/MX25L12865E&amp;quot; (16384 kB, SPI) on linux_spi.&lt;br /&gt;
  Reading flash... done.&lt;br /&gt;
&lt;br /&gt;
It's easy to verify that if the reading worked. If you were reading out the original firmware, binwalk would print something like this:&lt;br /&gt;
&lt;br /&gt;
  $ binwalk proprietary.rom &lt;br /&gt;
&lt;br /&gt;
  DECIMAL       HEXADECIMAL     DESCRIPTION&lt;br /&gt;
  --------------------------------------------------------------------------------&lt;br /&gt;
  115152        0x1C1D0         Certificate in DER format (x509 v3), header length: 4, sequence length: 64&lt;br /&gt;
  142896        0x22E30         U-Boot version string, &amp;quot;U-Boot 1.1.4-s1100 (Sep  5 2018 - 17:53:00)&amp;quot;&lt;br /&gt;
  143184        0x22F50         CRC32 polynomial table, big endian&lt;br /&gt;
  224396        0x36C8C         CRC32 polynomial table, big endian&lt;br /&gt;
  226924        0x3766C         Ubiquiti end header, header size: 12 bytes, cumulative ~CRC32: 0x454E442E&lt;br /&gt;
  231856        0x389B0         Ubiquiti partition header, header size: 56 bytes, name: &amp;quot;PARTkernel&amp;quot;, base address: 0x00000001, data size: -2147475456 bytes&lt;br /&gt;
  231920        0x389F0         uImage header, header size: 64 bytes, header CRC: 0xE75790E0, created: 2018-11-13 14:36:59, image size: 998847 bytes, Data &lt;br /&gt;
  Address: 0x80002000, Entry Point: 0x80002000, data CRC: 0xAAECA664, OS: Linux, CPU: MIPS, image type: OS Kernel Image, compression type: lzma, image name: &amp;quot;MIPS Ubiquiti Linux-2.6.32.68&amp;quot;&lt;br /&gt;
  327680        0x50000         uImage header, header size: 64 bytes, header CRC: 0x22425505, created: 2019-02-13 09:09:52, image size: 990770 bytes, Data Address: 0x80002000, Entry Point: 0x80002000, data CRC: 0x8F3B71D3, OS: Linux, CPU: MIPS, image type: OS Kernel Image, compression type: lzma, image name: &amp;quot;MIPS Ubiquiti Linux-2.6.32.68&amp;quot;&lt;br /&gt;
  327744        0x50040         LZMA compressed data, properties: 0x5D, dictionary size: 8388608 bytes, uncompressed size: 2836596 bytes&lt;br /&gt;
  1318514       0x141E72        Ubiquiti partition header, header size: 56 bytes, name: &amp;quot;PARTrootfs&amp;quot;, base address: 0x00000002, data size: 0 bytes&lt;br /&gt;
  1318578       0x141EB2        Squashfs filesystem, little endian, version 4.0, compression:lzma, size: 7203018 bytes, 956 inodes, blocksize: 262144 bytes, created: 2019-02-13 09:09:54&lt;br /&gt;
&lt;br /&gt;
Useful resources:&lt;br /&gt;
* [https://www.flashrom.org/RaspberryPi Flashrom page on using the Raspberry Pi as a flashing tool]&lt;br /&gt;
&lt;br /&gt;
==== Writing to the chip with flashrom ====&lt;br /&gt;
&lt;br /&gt;
  pi@raspberrypi:~ $ flashrom -c &amp;quot;MX25L12835F/MX25L12845E/MX25L12865E&amp;quot; -p linux_spi:dev=/dev/spidev0.0,spispeed=30000 -w read1-10000-openwrt.bin&lt;br /&gt;
  flashrom  on Linux 4.19.75-v7l+ (armv7l)&lt;br /&gt;
  flashrom is free software, get the source code at https://flashrom.org&lt;br /&gt;
  &lt;br /&gt;
  Using clock_gettime for delay loops (clk_id: 1, resolution: 1ns).&lt;br /&gt;
  Found Macronix flash chip &amp;quot;MX25L12835F/MX25L12845E/MX25L12865E&amp;quot; (16384 kB, SPI) on linux_spi.&lt;br /&gt;
  Reading old flash chip contents... done.&lt;br /&gt;
  Erasing and writing flash chip... Erase/write done.&lt;br /&gt;
  Verifying flash... VERIFIED.&lt;br /&gt;
&lt;br /&gt;
=== Flash using serial header access ===&lt;br /&gt;
Using small modifications to the radio, direct serial access allows temporarily running OpenWRT in memory and using the temporary environment to flash a full image to the radio's memory.&lt;br /&gt;
&lt;br /&gt;
[[File:Ubnt_ns5acl_serial.jpg|thumb|Click to enlarge pinout]]&lt;br /&gt;
# Using your thumb or a small tool, push the tab in the slot located on the lower rear of the radio and slide the bottom half out of the enclosure&lt;br /&gt;
# Looking at the rear of the board (where all the components are on the opposite side as the antenna), locate the serial headers on the middle left side of the board&lt;br /&gt;
# Solder at least the top 3 pins shown in the picture. The pins from left to right (starting with the square shaped pad that is unpopulated in the image) are 3.3V, RX, TX, and GND. 3.3V is not needed here&lt;br /&gt;
# Connect GND on the board to GND on your FTDI adapter, TX on the board to RX on the FTDI adapter, and RX on the board to TX on the FTDI adapter&lt;br /&gt;
# Make sure your FTDI adapter is in 3.3V mode and attached to your computer, then open the serial port on your computer (ex. &amp;lt;code&amp;gt;minicom -D /dev/ttyUSB0&amp;lt;/code&amp;gt;). Use 115200 8N1 in your terminal settings.&lt;br /&gt;
# Connect the NanoStation and press enter in the console when it says &amp;lt;code&amp;gt;Hit any key to stop autoboot:&amp;lt;/code&amp;gt;. You should be left at a &amp;lt;code&amp;gt;ar7240&amp;gt; &amp;lt;/code&amp;gt; prompt.&lt;br /&gt;
# Connect your laptop to the LAN port of the PoE injector powering the NanoStation and assign a static IP of &amp;lt;code&amp;gt;192.168.1.254&amp;lt;/code&amp;gt;&lt;br /&gt;
# Install a TFTP server and place [https://downloads.openwrt.org/releases/19.07.0/targets/ath79/generic/openwrt-19.07.0-ath79-generic-ubnt_nanostation-ac-loco-initramfs-kernel.bin openwrt-19.07.0-ath79-generic-ubnt_nanostation-ac-loco-initramfs-kernel.bin] in the root folder of the TFTP server (&amp;lt;code&amp;gt;/srv/tftp&amp;lt;/code&amp;gt; for tftp-hpa on Arch).&lt;br /&gt;
# Rename the initramfs-kernel.bin file to &amp;lt;code&amp;gt;1401A8C0.img&amp;lt;/code&amp;gt; and ensure the tftp server / service is started&lt;br /&gt;
# Run &amp;lt;code&amp;gt;tftpboot&amp;lt;/code&amp;gt; in the serial console and wait for it to complete&lt;br /&gt;
# Run &amp;lt;code&amp;gt;bootm&amp;lt;/code&amp;gt; in the serial console to boot the initramfs&lt;br /&gt;
# Once OpenWRT has booted, you can press Enter to enable shell access&lt;br /&gt;
# Ensure you have an IP address in the 192.168.1.x subnet and use scp to transfer the sysupgrade firmware you wish to flash&lt;br /&gt;
# Flash the full firmware to the radio's storage using &amp;lt;code&amp;gt;mtd -r write /tmp/sysupgrade.bin firmware&amp;lt;/code&amp;gt;, replacing &amp;lt;code&amp;gt;sysupgrade.bin&amp;lt;/code&amp;gt; with the full filename of the firmware you are flashing&lt;br /&gt;
&lt;br /&gt;
== Condensed Command-list ==&lt;br /&gt;
=== Flash The Stock Ubiquiti Firmware via TFTP ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget https://dl.ubnt.com/firmwares/XC-fw/v8.5.0/WA.v8.5.0.36727.180118.1314.bin&lt;br /&gt;
cp https://dl.ubnt.com/firmwares/XC-fw/v8.5.0/WA.v8.5.0.36727.180118.1314.bin firmware.bin&lt;br /&gt;
sudo apt install tftp&lt;br /&gt;
tftp&lt;br /&gt;
tftp&amp;gt; connect 192.168.1.20&lt;br /&gt;
tftp&amp;gt; rexmt 1&lt;br /&gt;
tftp&amp;gt; timeout 60&lt;br /&gt;
tftp&amp;gt; binary&lt;br /&gt;
tftp&amp;gt; put firmware.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Flash The Mass Mesh Firmware ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget https://github.com/MassMesh/meta-imagebuilder-artifacts/raw/master/massmesh/meshradio/ubnt_nanostation-ac-loco/openwrt-massmesh-meshradio-ath79-generic-ubnt_nanostation-ac-loco-squashfs-factory.bin&lt;br /&gt;
scp openwrt-massmesh-meshradio-ath79-generic-ubnt_nanostation-ac-loco-squashfs-factory.bin ubnt@192.168.1.20:/tmp&lt;br /&gt;
ssh ubnt@192.168.1.20&lt;br /&gt;
hexdump -Cv /bin/ubntbox | sed 's/14 40 fe fe/00 00 00 00/g' | hexdump -R &amp;gt; /tmp/fwupdate.real&lt;br /&gt;
chmod +x /tmp/fwupdate.real&lt;br /&gt;
/tmp/fwupdate.real -m /tmp/openwrt-massmesh-meshradio-ath79-generic-ubnt_nanostation-ac-loco-squashfs-factory.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Stephen304</name></author>
		
	</entry>
	<entry>
		<id>https://massmesh.org/wiki/index.php?title=Ubiquiti_NanoStation_5AC_Loco&amp;diff=1591</id>
		<title>Ubiquiti NanoStation 5AC Loco</title>
		<link rel="alternate" type="text/html" href="https://massmesh.org/wiki/index.php?title=Ubiquiti_NanoStation_5AC_Loco&amp;diff=1591"/>
		<updated>2020-01-27T06:42:32Z</updated>

		<summary type="html">&lt;p&gt;Stephen304: Add serial console flash method&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Devices]]&lt;br /&gt;
[[Category:Ubiquiti]]&lt;br /&gt;
[[File:Ubnt-ns-5ac-loco.png|thumb|NanoStation 5AC Loco]]&lt;br /&gt;
&lt;br /&gt;
The NanoStation 5AC Loco is a directional, weather resistant, PoE powered radio with a beam width of 90 degrees and a secondary omnidirectional radio. This makes it useful for simultaneously meshing on one radio while providing an access point for client devices on the other.&lt;br /&gt;
&lt;br /&gt;
{{ Warning| This is a PoE device. Never connect your computer directly to the PoE injector's red port!!!}}&lt;br /&gt;
&lt;br /&gt;
{{Note| The Nanostation's architecture is '''MIPS 24KC.'''}}&lt;br /&gt;
&lt;br /&gt;
{{ Warning| As of January 1, 2020, brand new Nanostations do not support downgrading the Ubiquiti AirOS firmware. (Even with the patch.)}}&lt;br /&gt;
&lt;br /&gt;
== Files ==&lt;br /&gt;
[https://dl.ubnt.com/firmwares/XC-fw/v8.5.0/WA.v8.5.0.36727.180118.1314.bin Stock Firmware v8.5.0.36727]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/MassMesh/meta-imagebuilder-artifacts/raw/master/massmesh/meshradio/ubnt_nanostation-ac-loco/openwrt-massmesh-meshradio-ath79-generic-ubnt_nanostation-ac-loco-squashfs-factory.bin MassMesh Firmware (Factory) (Latest)]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/MassMesh/meta-imagebuilder-artifacts/raw/master/massmesh/meshradio/ubnt_nanostation-ac-loco/openwrt-massmesh-meshradio-ath79-generic-ubnt_nanostation-ac-loco-squashfs-sysupgrade.bin MassMesh Firmware (Sysupgrade) (Latest)]&lt;br /&gt;
&lt;br /&gt;
== Flashing ==&lt;br /&gt;
&lt;br /&gt;
=== From OpenWrt ===&lt;br /&gt;
{{Note|Mass Mesh mesh radios have a static IP of 192.168.2.1. To access the admin UI, set your computer's ip/netmask to 192.168.2.10/24, then browse to http://192.168.2.1/ in your favorite web browser.}}&lt;br /&gt;
# Download the latest [https://github.com/MassMesh/meta-imagebuilder-artifacts/raw/master/massmesh/meshradio/ubnt_nanostation-ac-loco/openwrt-massmesh-meshradio-ath79-generic-ubnt_nanostation-ac-loco-squashfs-sysupgrade.bin MassMesh sysupgrade firmware.]&lt;br /&gt;
# Connect to the Nanostation and enter its IP address into your favorite web browser.&lt;br /&gt;
## If you are using another version of OpenWrt, please refer to its documentation for details about its IP address.&lt;br /&gt;
# Navigate to System → Backup / Flash Firmware → Actions: '''Flash new firmware image.'''&lt;br /&gt;
# Choose the sysupgrade file previously downloaded and click '''Flash'''&lt;br /&gt;
# Wait for the device to complete and reboot (This can take up to 5 minutes.)&lt;br /&gt;
&lt;br /&gt;
=== From Stock Firmware (Ubiquiti AirOS)===&lt;br /&gt;
&lt;br /&gt;
==== Downgrade Ubiquiti AirOS ====&lt;br /&gt;
&lt;br /&gt;
# Download the [https://dl.ubnt.com/firmwares/XC-fw/v8.5.0/WA.v8.5.0.36727.180118.1314.bin Stock Firmware Image v8.5.0.36727].&lt;br /&gt;
# Power on the Nanostation via a PoE injector. (This is the **red** ethernet port on your injector.)&lt;br /&gt;
# Connect the LAN side of the PoE injector to a computer.&lt;br /&gt;
# Assign a static IP/netmask of &amp;lt;code&amp;gt;192.168.1.25/24&amp;lt;/code&amp;gt; to the computer&lt;br /&gt;
## &amp;lt;code&amp;gt;sudo ip addr add 192.168.1.25/24 dev eth0&amp;lt;/code&amp;gt;&lt;br /&gt;
# Use a browser to visit http://192.168.1.20/&lt;br /&gt;
# Login using the set password or default credentials &amp;lt;code&amp;gt;ubnt / ubnt&amp;lt;/code&amp;gt;&lt;br /&gt;
# Navigate to settings and downgrade the stock firmware to v8.5.0.36727 using the downloaded image file&lt;br /&gt;
&lt;br /&gt;
==== Install The Mass Mesh OpenWrt Image ====&lt;br /&gt;
&lt;br /&gt;
{{ Note| Additional instructions are available [https://openwrt.org/toh/ubiquiti/ubiquiti_nanostation_ac_loco on OpenWrt's website].}}&lt;br /&gt;
# Download the latest Mass Mesh firmware [https://github.com/MassMesh/meta-imagebuilder-artifacts/raw/master/massmesh/meshradio/ubnt_nanostation-ac-loco/openwrt-massmesh-meshradio-ath79-generic-ubnt_nanostation-ac-loco-squashfs-factory.bin here].&lt;br /&gt;
# Copy the firmware onto the nanostation. (We like to put it in the &amp;lt;code&amp;gt;/tmp/&amp;lt;/code&amp;gt; directory.)&lt;br /&gt;
# Open a secure shell on the Nanostation. &amp;lt;code&amp;gt;ssh ubnt@192.168.1.20&amp;lt;/code&amp;gt;&lt;br /&gt;
# Patch the fwupdate.real binary a la the instructions [https://openwrt.org/toh/ubiquiti/ubiquiti_nanostation_ac_loco here.]&lt;br /&gt;
# &amp;lt;code&amp;gt;/tmp/fwupdate.real -m /tmp/openwrt-massmesh-meshradio-ath79-generic-ubnt_nanostation-ac-loco-squashfs-factory.bin&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Downgrade Ubiquiti AirOS With An External Programmer===&lt;br /&gt;
&lt;br /&gt;
When your nanostation is bricked, or if the stock firmware won't let you flash our custom firmware, you can use the '''In-System Programming''' (ISP) technique to reflash the device (see also the [https://www.flashrom.org/ISP Flashrom wiki]. You're going to need:&lt;br /&gt;
&lt;br /&gt;
# a Pomona 5252 test clip (https://www.digikey.com/product-detail/en/pomona-electronics/5252/501-2059-ND/745103), ~$16&lt;br /&gt;
# a raspberry pi (e.g. a zero w) ~$10&lt;br /&gt;
# some header pins and prototyping wires to connect everything&lt;br /&gt;
&lt;br /&gt;
The Nanostation has a Macronix MX25L12835F rom chip ([https://www.macronix.com/Lists/Datasheet/Attachments/7397/MX25L12835F,%203V,%20128Mb,%20v1.6.pdf datasheet]), which is an SPI chip with 16 connectors good for 128 Mbit of storage.&lt;br /&gt;
&lt;br /&gt;
We can use [https://flashrom.org Flashrom] running on a raspberry pi to read and write that chip, if we hook up the Pomona 5252 test clip to the MX25L12835F and connect it to the correct [https://pinout.xyz/pinout/spi SPI pins] on the pi:&lt;br /&gt;
&lt;br /&gt;
[[File:raspberry-pi-pinout.png|inline|raspberry pi GPIO pinout]]&lt;br /&gt;
&lt;br /&gt;
(note: the SPI1 CE0/CE1 pins are not labeled on this image)&lt;br /&gt;
&lt;br /&gt;
==== Pinouts (untested, please proceed with caution!) ====&lt;br /&gt;
&lt;br /&gt;
The Raspberry Pi has 2 SPI interfaces, SPI0 and SPI1.&lt;br /&gt;
&lt;br /&gt;
On the Raspberry Pi boot partition, make sure to update config.txt and uncomment the line that reads&lt;br /&gt;
&lt;br /&gt;
 dtparam=spi=on&lt;br /&gt;
&lt;br /&gt;
After a reboot, you should see the spi device files:&lt;br /&gt;
&lt;br /&gt;
  root@raspberrypi:/home/pi# ls -laF /dev/spidev0.*&lt;br /&gt;
  crw-rw---- 1 root spi 153, 0 Jan  7 01:44 /dev/spidev0.0&lt;br /&gt;
  crw-rw---- 1 root spi 153, 1 Jan  7 01:44 /dev/spidev0.1&lt;br /&gt;
&lt;br /&gt;
Now connect the Raspberry Pi to the Pomona clip. Choose either SPI0 or SPI1.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|RPi SPI0!!colspan=&amp;quot;2&amp;quot;|RPi SPI1!!colspan=&amp;quot;2&amp;quot;|Pomona Clip!!Notes!!Color in picture below&lt;br /&gt;
|-&lt;br /&gt;
|17||3.3V&lt;br /&gt;
|17||3.3V&lt;br /&gt;
|2||VCC&lt;br /&gt;
|''DO NOT connect the 3.3V/VCC pin if you choose to power the nanostation directly instead!''&lt;br /&gt;
|red&lt;br /&gt;
|-&lt;br /&gt;
|19||SPI0 MOSI&lt;br /&gt;
|38||SPI1 MOSI&lt;br /&gt;
|15||SI&lt;br /&gt;
|&lt;br /&gt;
|blue&lt;br /&gt;
|-&lt;br /&gt;
|21||SPI0 MISO&lt;br /&gt;
|35||SPI1 MISO&lt;br /&gt;
|8||SO&lt;br /&gt;
|&lt;br /&gt;
|orange&lt;br /&gt;
|-&lt;br /&gt;
|23||SPI0 SCLK&lt;br /&gt;
|40||SPI1 SCLK&lt;br /&gt;
|16||SCLK&lt;br /&gt;
|&lt;br /&gt;
|green&lt;br /&gt;
|-&lt;br /&gt;
|25||GND&lt;br /&gt;
|25||GND&lt;br /&gt;
|10||GND&lt;br /&gt;
|&lt;br /&gt;
|brown&lt;br /&gt;
|-&lt;br /&gt;
|24||SPI0 CE0&lt;br /&gt;
|12||SPI1 CE0&lt;br /&gt;
|7||CS&lt;br /&gt;
|&lt;br /&gt;
|yellow&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:raspberry-pi-zero-w-spi0-connected.jpg|inline|1024px|A Raspberry Pi Zero W with wires connected to the SPI0 pins]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Useful resources:&lt;br /&gt;
* [https://www.flashrom.org/RaspberryPi Flashrom page on using the Raspberry Pi as a flashing tool]&lt;br /&gt;
&lt;br /&gt;
=== Flash using serial header access ===&lt;br /&gt;
Using small modifications to the radio, direct serial access allows temporarily running OpenWRT in memory and using the temporary environment to flash a full image to the radio's memory.&lt;br /&gt;
&lt;br /&gt;
[[File:Ubnt_ns5acl_serial.jpg|thumb|Click to enlarge pinout]]&lt;br /&gt;
# Using your thumb or a small tool, push the tab in the slot located on the lower rear of the radio and slide the bottom half out of the enclosure&lt;br /&gt;
# Looking at the rear of the board (where all the components are on the opposite side as the antenna), locate the serial headers on the middle left side of the board&lt;br /&gt;
# Solder at least the top 3 pins shown in the picture. The pins from left to right (starting with the square shaped pad that is unpopulated in the image) are 3.3V, RX, TX, and GND. 3.3V is not needed here&lt;br /&gt;
# Connect GND on the board to GND on your FTDI adapter, TX on the board to RX on the FTDI adapter, and RX on the board to TX on the FTDI adapter&lt;br /&gt;
# Make sure your FTDI adapter is in 3.3V mode and attached to your computer, then open the serial port on your computer (ex. &amp;lt;code&amp;gt;minicom -D /dev/ttyUSB0&amp;lt;/code&amp;gt;). Use 115200 8N1 in your terminal settings.&lt;br /&gt;
# Connect the NanoStation and press enter in the console when it says &amp;lt;code&amp;gt;Hit any key to stop autoboot:&amp;lt;/code&amp;gt;. You should be left at a &amp;lt;code&amp;gt;ar7240&amp;gt; &amp;lt;/code&amp;gt; prompt.&lt;br /&gt;
# Connect your laptop to the LAN port of the PoE injector powering the NanoStation and assign a static IP of &amp;lt;code&amp;gt;192.168.1.254&amp;lt;/code&amp;gt;&lt;br /&gt;
# Install a TFTP server and place [https://downloads.openwrt.org/releases/19.07.0/targets/ath79/generic/openwrt-19.07.0-ath79-generic-ubnt_nanostation-ac-loco-initramfs-kernel.bin openwrt-19.07.0-ath79-generic-ubnt_nanostation-ac-loco-initramfs-kernel.bin] in the root folder of the TFTP server (&amp;lt;code&amp;gt;/srv/tftp&amp;lt;/code&amp;gt; for tftp-hpa on Arch).&lt;br /&gt;
# Rename the initramfs-kernel.bin file to &amp;lt;code&amp;gt;1401A8C0.img&amp;lt;/code&amp;gt; and ensure the tftp server / service is started&lt;br /&gt;
# Run &amp;lt;code&amp;gt;tftpboot&amp;lt;/code&amp;gt; in the serial console and wait for it to complete&lt;br /&gt;
# Run &amp;lt;code&amp;gt;bootm&amp;lt;/code&amp;gt; in the serial console to boot the initramfs&lt;br /&gt;
# Once OpenWRT has booted, you can press Enter to enable shell access&lt;br /&gt;
# Ensure you have an IP address in the 192.168.1.x subnet and use scp to transfer the sysupgrade firmware you wish to flash&lt;br /&gt;
# Flash the full firmware to the radio's storage using &amp;lt;code&amp;gt;mtd -r write /tmp/sysupgrade.bin firmware&amp;lt;/code&amp;gt;, replacing &amp;lt;code&amp;gt;sysupgrade.bin&amp;lt;/code&amp;gt; with the full filename of the firmware you are flashing&lt;br /&gt;
&lt;br /&gt;
== Condensed Command-list ==&lt;br /&gt;
=== Flash The Stock Ubiquiti Firmware via TFTP ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget https://dl.ubnt.com/firmwares/XC-fw/v8.5.0/WA.v8.5.0.36727.180118.1314.bin&lt;br /&gt;
cp https://dl.ubnt.com/firmwares/XC-fw/v8.5.0/WA.v8.5.0.36727.180118.1314.bin firmware.bin&lt;br /&gt;
sudo apt install tftp&lt;br /&gt;
tftp&lt;br /&gt;
tftp&amp;gt; connect 192.168.1.20&lt;br /&gt;
tftp&amp;gt; rexmt 1&lt;br /&gt;
tftp&amp;gt; timeout 60&lt;br /&gt;
tftp&amp;gt; binary&lt;br /&gt;
tftp&amp;gt; put firmware.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Flash The Mass Mesh Firmware ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget https://github.com/MassMesh/meta-imagebuilder-artifacts/raw/master/massmesh/meshradio/ubnt_nanostation-ac-loco/openwrt-massmesh-meshradio-ath79-generic-ubnt_nanostation-ac-loco-squashfs-factory.bin&lt;br /&gt;
scp openwrt-massmesh-meshradio-ath79-generic-ubnt_nanostation-ac-loco-squashfs-factory.bin ubnt@192.168.1.20:/tmp&lt;br /&gt;
ssh ubnt@192.168.1.20&lt;br /&gt;
hexdump -Cv /bin/ubntbox | sed 's/14 40 fe fe/00 00 00 00/g' | hexdump -R &amp;gt; /tmp/fwupdate.real&lt;br /&gt;
chmod +x /tmp/fwupdate.real&lt;br /&gt;
/tmp/fwupdate.real -m /tmp/openwrt-massmesh-meshradio-ath79-generic-ubnt_nanostation-ac-loco-squashfs-factory.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Stephen304</name></author>
		
	</entry>
	<entry>
		<id>https://massmesh.org/wiki/index.php?title=File:Ubnt_ns5acl_serial.jpg&amp;diff=1590</id>
		<title>File:Ubnt ns5acl serial.jpg</title>
		<link rel="alternate" type="text/html" href="https://massmesh.org/wiki/index.php?title=File:Ubnt_ns5acl_serial.jpg&amp;diff=1590"/>
		<updated>2020-01-27T06:35:20Z</updated>

		<summary type="html">&lt;p&gt;Stephen304: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Stephen304</name></author>
		
	</entry>
	<entry>
		<id>https://massmesh.org/wiki/index.php?title=Glossary_Of_Terms&amp;diff=1578</id>
		<title>Glossary Of Terms</title>
		<link rel="alternate" type="text/html" href="https://massmesh.org/wiki/index.php?title=Glossary_Of_Terms&amp;diff=1578"/>
		<updated>2020-01-16T17:04:50Z</updated>

		<summary type="html">&lt;p&gt;Stephen304: /* T */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Glossary Of Terms =&lt;br /&gt;
== A ==&lt;br /&gt;
== B ==&lt;br /&gt;
== C ==&lt;br /&gt;
== D ==&lt;br /&gt;
== E ==&lt;br /&gt;
== F ==&lt;br /&gt;
* '''Firmware''' The software that runs on a specific piece of hardware is called firmware. Both the Mesh Node and Mesh Radio have a custom firmware that performs specific tasks and contains other software. Firmware commonly refers to the entire set of software running on a device, as opposed to one piece of it.&lt;br /&gt;
* '''Flash(ing)''' Refers to the process of writing a new firmware to a device. The process can be simple or complex depending on the manufacturer of the hardware.&lt;br /&gt;
&lt;br /&gt;
== G ==&lt;br /&gt;
== H ==&lt;br /&gt;
== I ==&lt;br /&gt;
== J ==&lt;br /&gt;
== K ==&lt;br /&gt;
== L ==&lt;br /&gt;
* '''LAN:''' See Wikipedia: [https://en.wikipedia.org/wiki/Local_area_network Local Area Network]&lt;br /&gt;
&lt;br /&gt;
== M ==&lt;br /&gt;
* '''Mesh Mode''' Refers to a mode of operation for wifi devices known as 802.11s that allows devices to talk directly to each other without an access point. This is similar to Ad-Hoc mode and allows devices to come in and out of range with each other while still allowing any device to talk to any other device.&lt;br /&gt;
* '''Mesh Network:''' A mesh network is a peer-to-peer network where there are multiple links between each Mesh Node.&lt;br /&gt;
* '''Mesh Node:''' Think of a mesh network as a graph. A mesh node is one 'vertex' on that graph. It's the combination of radios and single-board-computers you keep in your home in order to participate in your neighborhood network.&lt;br /&gt;
* '''Mesh Radio''' Each mesh node uses one or more mesh radios to communicate with other mesh nodes. For simplicity, the radio will sometimes be omitted from diagrams despite being a separate piece of hardware. The job of the mesh radio is to relay traffic between the ethernet plug on the mesh node and a meshing wifi signal.&lt;br /&gt;
&lt;br /&gt;
== N ==&lt;br /&gt;
== O ==&lt;br /&gt;
== P ==&lt;br /&gt;
* '''Peer-to-Peer:''' Peer-to-peer computing or networking is a distributed application architecture that partitions tasks or workloads between peers. Peers are equally privileged, equipotent participants in the application. They are said to form a peer-to-peer network of nodes. &lt;br /&gt;
== Q ==&lt;br /&gt;
== R ==&lt;br /&gt;
== S ==&lt;br /&gt;
* '''Stock''' or '''Stock Firmware''' is used to describe the preloaded software that comes on a device when purchased from a store. Not all devices have a stock firmware, but it's important to be aware of those that do because flashing steps for our custom firmware can differ depending on whether a device is running stock or has already been flashed to our firmware.&lt;br /&gt;
&lt;br /&gt;
== T ==&lt;br /&gt;
* '''TFTP''' Is a method of transferring files that is used by certain devices to receive firmware files.&lt;br /&gt;
* '''TFTP Mode''' Many devices feature a recovery mode that can be used to re-flash the device firmware. The software for this mode is separate from the firmware, so even when the device software breaks, TFTP Mode can usually be used to reset the main firmware. This mode is used for several devices for the flashing process.&lt;br /&gt;
&lt;br /&gt;
== U ==&lt;br /&gt;
== V == &lt;br /&gt;
== W ==&lt;br /&gt;
* '''WAN:''' See Wikipedia: [https://en.wikipedia.org/wiki/Wide_area_network Wide Area Network]&lt;br /&gt;
&lt;br /&gt;
== X ==&lt;br /&gt;
== Y ==&lt;br /&gt;
* '''Yggdrasil''' The software and protocol we use for forming our mesh. To learn more, visit the [https://yggdrasil-network.github.io/ Yggdrasil Website]&lt;br /&gt;
&lt;br /&gt;
== Z ==&lt;/div&gt;</summary>
		<author><name>Stephen304</name></author>
		
	</entry>
	<entry>
		<id>https://massmesh.org/wiki/index.php?title=Glossary_Of_Terms&amp;diff=1576</id>
		<title>Glossary Of Terms</title>
		<link rel="alternate" type="text/html" href="https://massmesh.org/wiki/index.php?title=Glossary_Of_Terms&amp;diff=1576"/>
		<updated>2020-01-16T16:58:33Z</updated>

		<summary type="html">&lt;p&gt;Stephen304: /* M */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Glossary Of Terms =&lt;br /&gt;
== A ==&lt;br /&gt;
== B ==&lt;br /&gt;
== C ==&lt;br /&gt;
== D ==&lt;br /&gt;
== E ==&lt;br /&gt;
== F ==&lt;br /&gt;
* '''Firmware''' The software that runs on a specific piece of hardware is called firmware. Both the Mesh Node and Mesh Radio have a custom firmware that performs specific tasks and contains other software. Firmware commonly refers to the entire set of software running on a device, as opposed to one piece of it.&lt;br /&gt;
* '''Flash(ing)''' Refers to the process of writing a new firmware to a device. The process can be simple or complex depending on the manufacturer of the hardware.&lt;br /&gt;
&lt;br /&gt;
== G ==&lt;br /&gt;
== H ==&lt;br /&gt;
== I ==&lt;br /&gt;
== J ==&lt;br /&gt;
== K ==&lt;br /&gt;
== L ==&lt;br /&gt;
* '''LAN:''' See Wikipedia: [https://en.wikipedia.org/wiki/Local_area_network Local Area Network]&lt;br /&gt;
&lt;br /&gt;
== M ==&lt;br /&gt;
* '''Mesh Mode''' Refers to a mode of operation for wifi devices known as 802.11s that allows devices to talk directly to each other without an access point. This is similar to Ad-Hoc mode and allows devices to come in and out of range with each other while still allowing any device to talk to any other device.&lt;br /&gt;
* '''Mesh Network:''' A mesh network is a peer-to-peer network where there are multiple links between each Mesh Node.&lt;br /&gt;
* '''Mesh Node:''' Think of a mesh network as a graph. A mesh node is one 'vertex' on that graph. It's the combination of radios and single-board-computers you keep in your home in order to participate in your neighborhood network.&lt;br /&gt;
* '''Mesh Radio''' Each mesh node uses one or more mesh radios to communicate with other mesh nodes. For simplicity, the radio will sometimes be omitted from diagrams despite being a separate piece of hardware. The job of the mesh radio is to relay traffic between the ethernet plug on the mesh node and a meshing wifi signal.&lt;br /&gt;
&lt;br /&gt;
== N ==&lt;br /&gt;
== O ==&lt;br /&gt;
== P ==&lt;br /&gt;
* '''Peer-to-Peer:''' Peer-to-peer computing or networking is a distributed application architecture that partitions tasks or workloads between peers. Peers are equally privileged, equipotent participants in the application. They are said to form a peer-to-peer network of nodes. &lt;br /&gt;
== Q ==&lt;br /&gt;
== R ==&lt;br /&gt;
== S ==&lt;br /&gt;
* '''Stock''' or '''Stock Firmware''' is used to describe the preloaded software that comes on a device when purchased from a store. Not all devices have a stock firmware, but it's important to be aware of those that do because flashing steps for our custom firmware can differ depending on whether a device is running stock or has already been flashed to our firmware.&lt;br /&gt;
&lt;br /&gt;
== T ==&lt;br /&gt;
== U ==&lt;br /&gt;
== V == &lt;br /&gt;
== W ==&lt;br /&gt;
* '''WAN:''' See Wikipedia: [https://en.wikipedia.org/wiki/Wide_area_network Wide Area Network]&lt;br /&gt;
&lt;br /&gt;
== X ==&lt;br /&gt;
== Y ==&lt;br /&gt;
* '''Yggdrasil''' The software and protocol we use for forming our mesh. To learn more, visit the [https://yggdrasil-network.github.io/ Yggdrasil Website]&lt;br /&gt;
&lt;br /&gt;
== Z ==&lt;/div&gt;</summary>
		<author><name>Stephen304</name></author>
		
	</entry>
</feed>