<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://sudoroom.org/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Redconfetti</id>
	<title>Sudo Room - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://sudoroom.org/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Redconfetti"/>
	<link rel="alternate" type="text/html" href="https://sudoroom.org/wiki/Special:Contributions/Redconfetti"/>
	<updated>2026-05-13T19:36:42Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.37.2</generator>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Distributed_Services&amp;diff=10254</id>
		<title>Mesh/Distributed Services</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Distributed_Services&amp;diff=10254"/>
		<updated>2016-07-06T05:14:48Z</updated>

		<summary type="html">&lt;p&gt;Redconfetti: /* Mapping */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [[mesh]] network should provide communication services, so that it offers value to its users beyond mere connectivity to the Internet. What can be done to help it strengthen ties among Oakland residents, and to benefit the community? This wiki page is here to collect ideas about what services could/should be offered.&lt;br /&gt;
&lt;br /&gt;
Services (such as file sharing, email, contacts, calendar, and phone) should be provided based on existing free/open source software. Orientation &amp;amp; setup could be built into the introductory process for new mesh users.&lt;br /&gt;
&lt;br /&gt;
Some general aspects worth considering:&lt;br /&gt;
&lt;br /&gt;
* Security&lt;br /&gt;
* Integration into a user account distributed database with master-master replication and low latency (ex. [http://www.datastax.com/resources/whitepapers/benchmarking-top-nosql-databases Cassandra]).&lt;br /&gt;
&lt;br /&gt;
== Mesh Connected Hosts ==&lt;br /&gt;
&lt;br /&gt;
Hosts wishing to offer services can simply connect to the public network port of the home node they've setup to connect to the SudoMesh network.&lt;br /&gt;
&lt;br /&gt;
== Externally Hosted ==&lt;br /&gt;
&lt;br /&gt;
Hosts that are not directly connected to a SudoMesh node can make themselves available on the SudoMesh network by establishing a VPN connection into the network via the Exit node (exit.sudomesh.org). This requires use of the [https://github.com/wlanslovenija/tunneldigger tunneldigger] client. As of Ubuntu 14.4, the required kernel modules supporting [https://en.wikipedia.org/wiki/Layer_2_Tunneling_Protocol L2TP] are not included, so you must build a custom kernel that includes the necessary modules, or use the Debian distribution instead. Plans are in place to eventually use a more efficient tunneling method using [https://github.com/sudomesh/foutun Foo Over UDP], which will eliminate this L2TP complication.&lt;br /&gt;
&lt;br /&gt;
Your host will need to use a static IP assigned from the mesh network. Support for obtaining only a static IP assignment will need to be added to the [https://github.com/sudomesh/makenode makenode] utility to accomplish this.&lt;br /&gt;
&lt;br /&gt;
== Active Services ==&lt;br /&gt;
&lt;br /&gt;
The service browser is unfinished, but as we're working on building out the network and setting up services on the network, we can document what we currently have running here for now:&lt;br /&gt;
&lt;br /&gt;
== Architecture: Centralized &amp;amp; decentralized services ==&lt;br /&gt;
&lt;br /&gt;
A central philosophical and practical consideration is how services will be provided. Do we fundamentally want the mesh to be a centralized entity which offers certain services to all members? Or a platform on which individual members can offer services? Or a hybrid?&lt;br /&gt;
&lt;br /&gt;
As it stands now (summer 2015), the mesh offers some opportunity for individual members to offer services. For instance, it's possible for anybody on the mesh to offer services that are accessible elsewhere on the mesh. Should there be (for instance) a central, community-curated file server? Or should it just be up to anybody who wants to, to offer up file shares?&lt;br /&gt;
&lt;br /&gt;
Are there certain kinds of sharing we want to discourage or prohibit, and if so, what will be the social and technical means for enforcement? How will we respond if people start openly sharing copyrighted music and movies? Proprietary software? Child porn? It's worthwhile to think through these scenarios, as a successful network that lacks any kind of governance would become an attractive resource for those whose illegal activities cannot be pursued in the open on the Internet. (An example of this dynamic: [http://www.seattletimes.com/seattle-news/crime/state-supreme-court-rules-against-backpagecom-in-sex-trafficking-suit/ State Supreme Court rules against Backpage.com in sex-trafficking suit], Seattle Times, Sept. 2015)&lt;br /&gt;
&lt;br /&gt;
== Storage / File Systems ==&lt;br /&gt;
&lt;br /&gt;
There are several options for a distributed file system and each have there advantages and disadvantages. The distributed file system can be used to offer file storage or reduce latency across the network. &lt;br /&gt;
&lt;br /&gt;
* [http://opensfs.org/lustre/ Lustre] - Used by sixty percent of the top 100 websites.&lt;br /&gt;
** Performance: Amazingly fast! I can assert that Lustre can serve a lot of streams and that encoding speed is not affected by accessing files via Lustre.&lt;br /&gt;
** [http://en.wikipedia.org/wiki/POSIX POSIX] compatibility: Very good!. No need to modify applications to use luster.&lt;br /&gt;
** Replication, Load Balancing and Fail Over: Very bad!. For replication load balancing we and fail over we need to rely on other software such as virtual IPs and DRDB.&lt;br /&gt;
** Installation: The worst!. Impossible to install by mere mortals. Requires a very specific combination of kernel, lustre patches and tweaks to get it working. And current luster patches usually work with old kernels that are incompatible with new hardware/software.&lt;br /&gt;
&lt;br /&gt;
* [https://code.google.com/p/mogilefs/ MogileFS] &lt;br /&gt;
** Performance: Good for small files but not usable for medium to large files. This is mostly due to HTTP overhead since all files are send/receive via HTTP requests that encode all data in base64 adding a 33% overhead to each file.&lt;br /&gt;
** POXIS compatibility: Non existent. All applications require to be modified to use MogileFS that renders it useless for streaming/encoding since most streaming servers and encoding tools do not understand the protocol.&lt;br /&gt;
** Replication and failover out of the box and load balancing can be implemented in the application by accessing more than one tracker at a time.&lt;br /&gt;
** Installation: Relatively easy and ready to use packages exist in most distributions. The only difficulty I found was setting the database master-slave to eliminate the single point of failure.&lt;br /&gt;
&lt;br /&gt;
* [http://www.gluster.org/ GlusterFS] &lt;br /&gt;
** Performance: Very bad for streaming. I cannot reach more than a few Mbps in a 10Gbps network. Clients and Server CPU skyrockets on heavy writes. For encoding works because the CPU is saturated before the network and I/O.&lt;br /&gt;
** POXIS: Almost compatible. The tools I use can access gluster mounts as normal folders in disk but in some edge cases things start causing problems. Check gluster mailing lists and you will see there are a lot of problems.&lt;br /&gt;
** Replication, Failover and Load balancing: The best! if they actually worked. Gluster is very new and it has a lot of bugs and performance problems.&lt;br /&gt;
** Installation is too easy. The management command line is amazing and setting replicated, striped and distributed volumes among several servers can not be any easier. &lt;br /&gt;
&lt;br /&gt;
([http://stackoverflow.com/questions/916902/lustre-gluster-or-mogilefs-for-video-storage-encoding-and-streaming source of above information])&lt;br /&gt;
&lt;br /&gt;
* [http://hadoop.apache.org/ Hadoop] (HDFS) - slow and has a lot of proprietary derivatives (MapR, GPFS, and [http://gigaom.com/2012/07/11/because-hadoop-isnt-perfect-8-ways-to-replace-hdfs/ other alternatives])&lt;br /&gt;
* [http://www.xtreemfs.org/ XtreemFS] - slow and we need more research on it. &lt;br /&gt;
* Cassandra File System (CFS) - proprietary software made by DataStax and included in the Enterprise Edition of their software.&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Network_File_System Network File Sytem] (NFS) - comparable to Lustre, but the [http://wiki.lustre.org/index.php/NFS_vs._Lustre IO bandwidth doesn't scale].&lt;br /&gt;
&lt;br /&gt;
'''Non-distributed file systems'''&lt;br /&gt;
There's the option to use a modern file system with [http://en.wikipedia.org/wiki/Rsync rsync]. &lt;br /&gt;
[http://rudd-o.com/linux-and-free-software/ways-in-which-zfs-is-better-than-btrfs Comparison of ZFS and BTRFS]&lt;br /&gt;
[http://porky.linuxjournal.com:8080/LJ/218/11250.html A Quick Introduction to Modern Filesystems]&lt;br /&gt;
&lt;br /&gt;
== Databases and Servers ==&lt;br /&gt;
&lt;br /&gt;
These are decentralized databases and servers that could ultimately be optimized to store data nearest to where people access it. A significant factors with mesh networks, that as &amp;quot;size and complexity continues to grow, mesh networks that contain multiple hops become increasingly vulnerable to problems such as bandwidth degradation, radio interference and network latency.&amp;lt;ref&amp;gt;[http://www.strixsystems.com/products/datasheets/strixwhitepaper_multihop.pdf Solving the Wireless Mesh Multi-Hop Dilemma]&amp;lt;/ref&amp;gt;&amp;quot; There are several other methods of improving network latency, but all means should be tested and implemented to improve services. &lt;br /&gt;
&lt;br /&gt;
* [https://cassandra.apache.org/ cassandra] - a decentralized database with asynchronous masterless replication allowing low latency operations for all clients. Cassandra has [http://en.wikipedia.org/wiki/Hadoop Hadoop] integration, with MapReduce support. &lt;br /&gt;
* [https://couchdb.apache.org/ CouchDB] - I can tell you that it quickly becomes complicated to write multi-user app with CouchDB. Decent access control means that you need a database per user and likely a few extra databases. You then have to set all of these databases up to synchronize between each other which is further complicated by the limitations on what information is available by the limitations on how synchronization rules and filters can be written. There seem to be no good tools for managing/visualizing these complex relationships so you end up having to roll your own.&lt;br /&gt;
* [https://github.com/mirage/irmin irmin] - a distributed database with built-in snapshot, branch and revert mechanisms. (similar to git) &lt;br /&gt;
* [http://code.google.com/p/leveldb/ levelDB] - a fast and lightweight key/value database library. &lt;br /&gt;
* [http://www.mongodb.org/ mongoDB] - an open-source document database, a NoSQL database. Written in C++.&lt;br /&gt;
* [http://nodejs.org/ node.js] - an HTTP server written in javascript.&lt;br /&gt;
* [http://pouchdb.com/ PouchDB] - a javascript based couchDB.&lt;br /&gt;
* [https://github.com/dominictarr/scuttlebutt scuttlebutt] - a data synchronization protocol, or a peer-to-peer replicable data structure.&lt;br /&gt;
* [https://tahoe-lafs.org/trac/tahoe-lafs tahoe-lafs] - a decentralized database.&lt;br /&gt;
&lt;br /&gt;
== Communications ==&lt;br /&gt;
&lt;br /&gt;
*[http://radicale.org/ radicale] - a CalDAV (calendar) and CardDAV (contacts) server. &lt;br /&gt;
*[http://keithp.com/blogs/calypso/ calypso] - Radicale fork with a git back-end (by Keith Packard of X11 fame)&lt;br /&gt;
*[http://villagetelco.org Village telco] - an initiative to build low-cost community telephone network hardware and software that can be set up in minutes anywhere in the world.  No mobile phone towers or land lines are required, it uses the internet. It has a Simple Unified Dashboard (SPUD) for mesh networks.&lt;br /&gt;
*[https://ripple.com/currency/ Ripple] (XRP) - a math-based crypto-currency designed to work seamlessly with the Internet. Powered by a global network of computers; a fast, direct, and secure way to send payments on the web. '''It can be used to prevent malious attacks on servers.'''&lt;br /&gt;
*[http://openbts.org/ OpenBTS] - open source cell phone tower software. &lt;br /&gt;
*[http://www.openmama.org/what-is-openmama OpenMAMA] - a high performance middleware agnostic messaging API that interfaces with a variety of message oriented middleware systems&lt;br /&gt;
*an encrypted asynchronous messaging system to replace email&lt;br /&gt;
*a module to have collaborative documents, voting, and groups (ie. [http://en.wikipedia.org/wiki/Collaborative_software groupware])&lt;br /&gt;
** Read information about the [http://mitar.tnode.com/post/73983101095/peer-to-peer-voting-scheme peer-to-peer voting scheme].&lt;br /&gt;
*a module for peer to peer file sharing.&lt;br /&gt;
*a module for object-orientated tagging, shareable feeds.&lt;br /&gt;
*a module for feeds and posts, such as [http://www.trsst.com/ Trsst].&lt;br /&gt;
* [http://www.frontlinesms.com/ Frontline SMS] - a free, open-source desktop application that allows you to send texts.&lt;br /&gt;
&lt;br /&gt;
== Mapping ==&lt;br /&gt;
&lt;br /&gt;
* [http://nodewatcher.readthedocs.org/en/latest/installation.html NodeWatcher] -  an open source network planning, deployment, monitoring and maintanance platform. Provides stats on the uptime and status of every node, mapping them, contact information, access control levels&lt;br /&gt;
* [http://wiki.ninux.org/InstallNodeshot NodeShot] - an easy to use wireless community map server.&lt;br /&gt;
* [https://github.com/freifunk/openwifimap-html5  OpenWiFiMap] - a database and map for free network WiFi routers (freifunk and others, too!).&lt;br /&gt;
* [https://github.com/libremap  LibreMap] -  a scalable, global and decentralized router database and map visualization for community networks, such as guifi, ninux, etc. &lt;br /&gt;
* [http://tidepools.co Tidepools] - collaborative local mapping software&lt;br /&gt;
* [http://ediblecities.org/ Edible Cities] - a food mapping project&lt;br /&gt;
* Bulletin Board / Local Classified Ads&lt;br /&gt;
** Community Asset Mapping (ex. [http://thepyre.org/wiki/Mycelia Mycelia])&lt;br /&gt;
&lt;br /&gt;
== Protocols ==&lt;br /&gt;
&lt;br /&gt;
* [https://tent.io/ Tent] - a method to store all your data in one place that you control. Instead of your digital life being spread across many services.&lt;br /&gt;
* [https://www.docker.io/ Docker] - an open-source project to easily create lightweight, portable, self-sufficient containers from any application.&lt;br /&gt;
* [http://maidsafe.net/ MaidSafe] - an encrypted, fully distributed data management service. This network manages static and dynamic data as well as communications. (charges money)&lt;br /&gt;
* [https://github.com/telehash/telehash.org/blob/master/v3/intro.md Telehash] - &amp;quot;Telehash is a 100% open, secure mesh networking technology with these design principles: full end-to-end encryption, all the time; strict privacy: no content, identity, or metadata is ever revealed to third parties; maximum app/device compatibility: suitable for embedded, mobile, and web usage; making privacy the easy choice for developers; flexible transport protocols, for compatibility with existing layers; native implementations for the widest possible variety of languages/platforms. The telehash team includes collaborators from around the world, many of whom were the principal architects of XMPP. It is intended as a next-generation protocol advancing the original goals of Jabber.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Social Platforms ==&lt;br /&gt;
&lt;br /&gt;
* [https://joindiaspora.com/ Diaspora] - a decentralized social network&lt;br /&gt;
* [https://identi.ca/ Identi.ca] - a high-performance Open Source social engine. &lt;br /&gt;
* [http://pump.io/ Pump] - a stream server that does most of what people really want from a social network.&lt;br /&gt;
* [http://twister.net.co/ Twister] - a decentralized, peer to peer microblogging platform&lt;br /&gt;
&lt;br /&gt;
== Utilities and Misc ==&lt;br /&gt;
&lt;br /&gt;
* [https://sudoroom.org/wiki/Mesh/Firmware/Zeroconf Avahi] - a mDNS responder that allows you to broadcast services&lt;br /&gt;
* [http://localwiki.org/ Local Wiki] - create a local wikipedia (eg; http://oaklandwiki.org)&lt;br /&gt;
* a module for sensor data (eg; Temperature, Seismic activity, air pollution)&lt;br /&gt;
* [http://dev.wlan-si.net/wiki/PiplMesh PiplMesh] - an open source social networking and info portal for wireless networks used as a welcome page when users connect to the network. &lt;br /&gt;
* [https://neocities.org/ Neocities] ([https://github.com/neocities/neocities git]) - create free user sites&lt;br /&gt;
* [http://crabgrass.riseuplabs.org/ Crabgrass] - a project out of riseup labs, a ruby rails application for community organizing. It's not the easiest to run your own instance, but very easy to sign up to their server ([https://we.riseup.net/ we.riseup.net])&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Redconfetti</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Template:Mesh_nav&amp;diff=10253</id>
		<title>Template:Mesh nav</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Template:Mesh_nav&amp;diff=10253"/>
		<updated>2016-07-06T05:06:53Z</updated>

		<summary type="html">&lt;p&gt;Redconfetti: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|style=&amp;quot;border-style: solid; border-width: 10px; border-color: #20b24b; background-color: #ffffcc; width: 70%; text-align: center;&amp;quot;&lt;br /&gt;
|+ '''''Quick Links''' (see below for more details)''&lt;br /&gt;
|-&lt;br /&gt;
!Documentation&lt;br /&gt;
!Technical&lt;br /&gt;
!Outreach&lt;br /&gt;
!Operations&lt;br /&gt;
!Help&lt;br /&gt;
!External Links&lt;br /&gt;
|-&lt;br /&gt;
|[[Mesh/Blog|Blog]]&lt;br /&gt;
|[[Mesh/Home_and_extender_nodes|Home and Extender Nodes]]&lt;br /&gt;
|[[Mesh/Website|Website]]&lt;br /&gt;
|[[Mesh/Minutes|Minutes]]&lt;br /&gt;
|[[Mesh/FAQ|FAQ]]&lt;br /&gt;
|[http://peoplesopen.net peoplesopen.net]&lt;br /&gt;
|-&lt;br /&gt;
|[[Mesh/Oakland|Oakland]]&lt;br /&gt;
|[[Mesh/WalkThrough|Walkthrough]]&lt;br /&gt;
|[[Mesh/Meetings|Meetings]]&lt;br /&gt;
|[[Mesh/Legal|Legal]]&lt;br /&gt;
|[[Mesh/How_to_help|How to Help]] &lt;br /&gt;
|[http://meshmap.sudoroom.org sudo mesh map]&lt;br /&gt;
|-&lt;br /&gt;
|[[Mesh/Interviews with other meshers|Interviews]]&lt;br /&gt;
|[[Mesh/Firmware|Firmware]]&lt;br /&gt;
|[[Mesh/Stickers|Stickers]]&lt;br /&gt;
|[[Mesh/Hosting|Hosting]]&lt;br /&gt;
|[[Mesh/ToDos|To-Do's]]&lt;br /&gt;
|[https://github.com/sudomesh code on github]&lt;br /&gt;
|-&lt;br /&gt;
|[[Mesh/Other mesh projects|Other meshes]]&lt;br /&gt;
|[[Mesh/MeshApps|MeshApps]]&lt;br /&gt;
|[[Mesh/Presentations|Presentations]]&lt;br /&gt;
|[[Mesh/Backup|Backup]]&lt;br /&gt;
|[[Mesh/Wishlist|Wishlist]]&lt;br /&gt;
|[http://meshthepla.net meshthepla.net!]&lt;br /&gt;
|-&lt;br /&gt;
|[[Mesh/Documentation|Documentation]]&lt;br /&gt;
|[[Mesh/Network topology|Network topology]]&lt;br /&gt;
|[[Mesh/Swag|Swag]]&lt;br /&gt;
|[[Mesh/Server security|Server security]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Mesh/Distributed_Services|Services]]&lt;br /&gt;
|[[Mesh/Specs|Specs]]&lt;br /&gt;
|[[Ascii Art]]&lt;br /&gt;
|[[Mesh/Naming|Naming]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|[[Mesh/Frequencies|Frequencies]]&lt;br /&gt;
|[[Mesh/Communities|Communities]]&lt;br /&gt;
|[[Mesh/Marketing|Marketing]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|[[Mesh/Software tools|Software tools]]&lt;br /&gt;
|[[Mesh/Press|Press]]&lt;br /&gt;
|[[Mesh/Purchases|Purchases]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
||[[Mesh/Terms|Terms]]&lt;br /&gt;
|[[Mesh/Design|Design]]&lt;br /&gt;
|[[Mesh/Inventory|Inventory]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|[[Mesh/Power|Power]]&lt;br /&gt;
|&lt;br /&gt;
|[[Mesh/Donations|Donations]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
||[[Mesh/Monitoring|Monitoring]]&lt;br /&gt;
|&lt;br /&gt;
|[[Mesh/Decisions|Decisions]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
||[[Mesh/Freifunk|Freifunk]]&lt;br /&gt;
|&lt;br /&gt;
|[[Mesh/Challenges|Challenges]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
||[[Mesh/Commotion|Commotion]]&lt;br /&gt;
|&lt;br /&gt;
|[[Mesh/Checkouts|Checkouts]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|[[Mesh/Diagrams|Diagrams]]&lt;br /&gt;
|&lt;br /&gt;
|[[Mesh/Funding|Funding]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|[[Mesh/Network|Network]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|[[Mesh/History|History]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Redconfetti</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Template:Mesh_nav&amp;diff=10252</id>
		<title>Template:Mesh nav</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Template:Mesh_nav&amp;diff=10252"/>
		<updated>2016-07-06T05:06:19Z</updated>

		<summary type="html">&lt;p&gt;Redconfetti: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|style=&amp;quot;border-style: solid; border-width: 10px; border-color: #20b24b; background-color: #ffffcc; width: 70%; text-align: center;&amp;quot;&lt;br /&gt;
|+ '''''Quick Links''' (see below for more details)''&lt;br /&gt;
|-&lt;br /&gt;
!Documentation&lt;br /&gt;
!Technical&lt;br /&gt;
!Outreach&lt;br /&gt;
!Operations&lt;br /&gt;
!Help&lt;br /&gt;
!External Links&lt;br /&gt;
|-&lt;br /&gt;
|[[Mesh/Blog|Blog]]&lt;br /&gt;
|[[Mesh/Home_and_extender_nodes|Home and Extender Nodes]]&lt;br /&gt;
|[[Mesh/Website|Website]]&lt;br /&gt;
|[[Mesh/Minutes|Minutes]]&lt;br /&gt;
|[[Mesh/FAQ|FAQ]]&lt;br /&gt;
|[http://peoplesopen.net peoplesopen.net]&lt;br /&gt;
|-&lt;br /&gt;
|[[Mesh/Oakland|Oakland]]&lt;br /&gt;
|[[Mesh/WalkThrough|Walkthrough]]&lt;br /&gt;
|[[Mesh/Meetings|Meetings]]&lt;br /&gt;
|[[Mesh/Legal|Legal]]&lt;br /&gt;
|[[Mesh/How_to_help|How to Help]] &lt;br /&gt;
|[http://meshmap.sudoroom.org sudo mesh map]&lt;br /&gt;
|-&lt;br /&gt;
|[[Mesh/Interviews with other meshers|Interviews]]&lt;br /&gt;
|[[Mesh/Firmware|Firmware]]&lt;br /&gt;
|[[Mesh/Stickers|Stickers]]&lt;br /&gt;
|[[Mesh/Hosting|Hosting]]&lt;br /&gt;
|[[Mesh/ToDos|To-Do's]]&lt;br /&gt;
|[https://github.com/sudomesh code on github]&lt;br /&gt;
|-&lt;br /&gt;
|[[Mesh/Other mesh projects|Other meshes]]&lt;br /&gt;
|[[Mesh/MeshApps|MeshApps]]&lt;br /&gt;
|[[Mesh/Presentations|Presentations]]&lt;br /&gt;
|[[Mesh/Backup|Backup]]&lt;br /&gt;
|[[Mesh/Wishlist|Wishlist]]&lt;br /&gt;
|[http://meshthepla.net meshthepla.net!]&lt;br /&gt;
|-&lt;br /&gt;
|[[Mesh/Documentation|Documentation]]&lt;br /&gt;
|[[Mesh/Network topology|Network topology]]&lt;br /&gt;
|[[Mesh/Swag|Swag]]&lt;br /&gt;
|[[Mesh/Server security|Server security]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|[[Mesh/Specs|Specs]]&lt;br /&gt;
|[[Ascii Art]]&lt;br /&gt;
|[[Mesh/Naming|Naming]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|[[Mesh/Frequencies|Frequencies]]&lt;br /&gt;
|[[Mesh/Communities|Communities]]&lt;br /&gt;
|[[Mesh/Marketing|Marketing]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|[[Mesh/Software tools|Software tools]]&lt;br /&gt;
|[[Mesh/Press|Press]]&lt;br /&gt;
|[[Mesh/Purchases|Purchases]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
||[[Mesh/Terms|Terms]]&lt;br /&gt;
|[[Mesh/Design|Design]]&lt;br /&gt;
|[[Mesh/Inventory|Inventory]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|[[Mesh/Power|Power]]&lt;br /&gt;
|&lt;br /&gt;
|[[Mesh/Donations|Donations]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
||[[Mesh/Monitoring|Monitoring]]&lt;br /&gt;
|&lt;br /&gt;
|[[Mesh/Decisions|Decisions]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
||[[Mesh/Freifunk|Freifunk]]&lt;br /&gt;
|&lt;br /&gt;
|[[Mesh/Challenges|Challenges]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
||[[Mesh/Commotion|Commotion]]&lt;br /&gt;
|&lt;br /&gt;
|[[Mesh/Checkouts|Checkouts]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Mesh/Distributed_Services|Services]]&lt;br /&gt;
|[[Mesh/Diagrams|Diagrams]]&lt;br /&gt;
|&lt;br /&gt;
|[[Mesh/Funding|Funding]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|[[Mesh/Network|Network]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|[[Mesh/History|History]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Redconfetti</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Distributed_Services&amp;diff=10251</id>
		<title>Mesh/Distributed Services</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Distributed_Services&amp;diff=10251"/>
		<updated>2016-07-06T05:03:57Z</updated>

		<summary type="html">&lt;p&gt;Redconfetti: adding simple note about how servers can become available through a mesh connected home node&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [[mesh]] network should provide communication services, so that it offers value to its users beyond mere connectivity to the Internet. What can be done to help it strengthen ties among Oakland residents, and to benefit the community? This wiki page is here to collect ideas about what services could/should be offered.&lt;br /&gt;
&lt;br /&gt;
Services (such as file sharing, email, contacts, calendar, and phone) should be provided based on existing free/open source software. Orientation &amp;amp; setup could be built into the introductory process for new mesh users.&lt;br /&gt;
&lt;br /&gt;
Some general aspects worth considering:&lt;br /&gt;
&lt;br /&gt;
* Security&lt;br /&gt;
* Integration into a user account distributed database with master-master replication and low latency (ex. [http://www.datastax.com/resources/whitepapers/benchmarking-top-nosql-databases Cassandra]).&lt;br /&gt;
&lt;br /&gt;
== Mesh Connected Hosts ==&lt;br /&gt;
&lt;br /&gt;
Hosts wishing to offer services can simply connect to the public network port of the home node they've setup to connect to the SudoMesh network.&lt;br /&gt;
&lt;br /&gt;
== Externally Hosted ==&lt;br /&gt;
&lt;br /&gt;
Hosts that are not directly connected to a SudoMesh node can make themselves available on the SudoMesh network by establishing a VPN connection into the network via the Exit node (exit.sudomesh.org). This requires use of the [https://github.com/wlanslovenija/tunneldigger tunneldigger] client. As of Ubuntu 14.4, the required kernel modules supporting [https://en.wikipedia.org/wiki/Layer_2_Tunneling_Protocol L2TP] are not included, so you must build a custom kernel that includes the necessary modules, or use the Debian distribution instead. Plans are in place to eventually use a more efficient tunneling method using [https://github.com/sudomesh/foutun Foo Over UDP], which will eliminate this L2TP complication.&lt;br /&gt;
&lt;br /&gt;
Your host will need to use a static IP assigned from the mesh network. Support for obtaining only a static IP assignment will need to be added to the [https://github.com/sudomesh/makenode makenode] utility to accomplish this.&lt;br /&gt;
&lt;br /&gt;
== Active Services ==&lt;br /&gt;
&lt;br /&gt;
The service browser is unfinished, but as we're working on building out the network and setting up services on the network, we can document what we currently have running here for now:&lt;br /&gt;
&lt;br /&gt;
== Architecture: Centralized &amp;amp; decentralized services ==&lt;br /&gt;
&lt;br /&gt;
A central philosophical and practical consideration is how services will be provided. Do we fundamentally want the mesh to be a centralized entity which offers certain services to all members? Or a platform on which individual members can offer services? Or a hybrid?&lt;br /&gt;
&lt;br /&gt;
As it stands now (summer 2015), the mesh offers some opportunity for individual members to offer services. For instance, it's possible for anybody on the mesh to offer services that are accessible elsewhere on the mesh. Should there be (for instance) a central, community-curated file server? Or should it just be up to anybody who wants to, to offer up file shares?&lt;br /&gt;
&lt;br /&gt;
Are there certain kinds of sharing we want to discourage or prohibit, and if so, what will be the social and technical means for enforcement? How will we respond if people start openly sharing copyrighted music and movies? Proprietary software? Child porn? It's worthwhile to think through these scenarios, as a successful network that lacks any kind of governance would become an attractive resource for those whose illegal activities cannot be pursued in the open on the Internet. (An example of this dynamic: [http://www.seattletimes.com/seattle-news/crime/state-supreme-court-rules-against-backpagecom-in-sex-trafficking-suit/ State Supreme Court rules against Backpage.com in sex-trafficking suit], Seattle Times, Sept. 2015)&lt;br /&gt;
&lt;br /&gt;
== Storage / File Systems ==&lt;br /&gt;
&lt;br /&gt;
There are several options for a distributed file system and each have there advantages and disadvantages. The distributed file system can be used to offer file storage or reduce latency across the network. &lt;br /&gt;
&lt;br /&gt;
* [http://opensfs.org/lustre/ Lustre] - Used by sixty percent of the top 100 websites.&lt;br /&gt;
** Performance: Amazingly fast! I can assert that Lustre can serve a lot of streams and that encoding speed is not affected by accessing files via Lustre.&lt;br /&gt;
** [http://en.wikipedia.org/wiki/POSIX POSIX] compatibility: Very good!. No need to modify applications to use luster.&lt;br /&gt;
** Replication, Load Balancing and Fail Over: Very bad!. For replication load balancing we and fail over we need to rely on other software such as virtual IPs and DRDB.&lt;br /&gt;
** Installation: The worst!. Impossible to install by mere mortals. Requires a very specific combination of kernel, lustre patches and tweaks to get it working. And current luster patches usually work with old kernels that are incompatible with new hardware/software.&lt;br /&gt;
&lt;br /&gt;
* [https://code.google.com/p/mogilefs/ MogileFS] &lt;br /&gt;
** Performance: Good for small files but not usable for medium to large files. This is mostly due to HTTP overhead since all files are send/receive via HTTP requests that encode all data in base64 adding a 33% overhead to each file.&lt;br /&gt;
** POXIS compatibility: Non existent. All applications require to be modified to use MogileFS that renders it useless for streaming/encoding since most streaming servers and encoding tools do not understand the protocol.&lt;br /&gt;
** Replication and failover out of the box and load balancing can be implemented in the application by accessing more than one tracker at a time.&lt;br /&gt;
** Installation: Relatively easy and ready to use packages exist in most distributions. The only difficulty I found was setting the database master-slave to eliminate the single point of failure.&lt;br /&gt;
&lt;br /&gt;
* [http://www.gluster.org/ GlusterFS] &lt;br /&gt;
** Performance: Very bad for streaming. I cannot reach more than a few Mbps in a 10Gbps network. Clients and Server CPU skyrockets on heavy writes. For encoding works because the CPU is saturated before the network and I/O.&lt;br /&gt;
** POXIS: Almost compatible. The tools I use can access gluster mounts as normal folders in disk but in some edge cases things start causing problems. Check gluster mailing lists and you will see there are a lot of problems.&lt;br /&gt;
** Replication, Failover and Load balancing: The best! if they actually worked. Gluster is very new and it has a lot of bugs and performance problems.&lt;br /&gt;
** Installation is too easy. The management command line is amazing and setting replicated, striped and distributed volumes among several servers can not be any easier. &lt;br /&gt;
&lt;br /&gt;
([http://stackoverflow.com/questions/916902/lustre-gluster-or-mogilefs-for-video-storage-encoding-and-streaming source of above information])&lt;br /&gt;
&lt;br /&gt;
* [http://hadoop.apache.org/ Hadoop] (HDFS) - slow and has a lot of proprietary derivatives (MapR, GPFS, and [http://gigaom.com/2012/07/11/because-hadoop-isnt-perfect-8-ways-to-replace-hdfs/ other alternatives])&lt;br /&gt;
* [http://www.xtreemfs.org/ XtreemFS] - slow and we need more research on it. &lt;br /&gt;
* Cassandra File System (CFS) - proprietary software made by DataStax and included in the Enterprise Edition of their software.&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Network_File_System Network File Sytem] (NFS) - comparable to Lustre, but the [http://wiki.lustre.org/index.php/NFS_vs._Lustre IO bandwidth doesn't scale].&lt;br /&gt;
&lt;br /&gt;
'''Non-distributed file systems'''&lt;br /&gt;
There's the option to use a modern file system with [http://en.wikipedia.org/wiki/Rsync rsync]. &lt;br /&gt;
[http://rudd-o.com/linux-and-free-software/ways-in-which-zfs-is-better-than-btrfs Comparison of ZFS and BTRFS]&lt;br /&gt;
[http://porky.linuxjournal.com:8080/LJ/218/11250.html A Quick Introduction to Modern Filesystems]&lt;br /&gt;
&lt;br /&gt;
== Databases and Servers ==&lt;br /&gt;
&lt;br /&gt;
These are decentralized databases and servers that could ultimately be optimized to store data nearest to where people access it. A significant factors with mesh networks, that as &amp;quot;size and complexity continues to grow, mesh networks that contain multiple hops become increasingly vulnerable to problems such as bandwidth degradation, radio interference and network latency.&amp;lt;ref&amp;gt;[http://www.strixsystems.com/products/datasheets/strixwhitepaper_multihop.pdf Solving the Wireless Mesh Multi-Hop Dilemma]&amp;lt;/ref&amp;gt;&amp;quot; There are several other methods of improving network latency, but all means should be tested and implemented to improve services. &lt;br /&gt;
&lt;br /&gt;
* [https://cassandra.apache.org/ cassandra] - a decentralized database with asynchronous masterless replication allowing low latency operations for all clients. Cassandra has [http://en.wikipedia.org/wiki/Hadoop Hadoop] integration, with MapReduce support. &lt;br /&gt;
* [https://couchdb.apache.org/ CouchDB] - I can tell you that it quickly becomes complicated to write multi-user app with CouchDB. Decent access control means that you need a database per user and likely a few extra databases. You then have to set all of these databases up to synchronize between each other which is further complicated by the limitations on what information is available by the limitations on how synchronization rules and filters can be written. There seem to be no good tools for managing/visualizing these complex relationships so you end up having to roll your own.&lt;br /&gt;
* [https://github.com/mirage/irmin irmin] - a distributed database with built-in snapshot, branch and revert mechanisms. (similar to git) &lt;br /&gt;
* [http://code.google.com/p/leveldb/ levelDB] - a fast and lightweight key/value database library. &lt;br /&gt;
* [http://www.mongodb.org/ mongoDB] - an open-source document database, a NoSQL database. Written in C++.&lt;br /&gt;
* [http://nodejs.org/ node.js] - an HTTP server written in javascript.&lt;br /&gt;
* [http://pouchdb.com/ PouchDB] - a javascript based couchDB.&lt;br /&gt;
* [https://github.com/dominictarr/scuttlebutt scuttlebutt] - a data synchronization protocol, or a peer-to-peer replicable data structure.&lt;br /&gt;
* [https://tahoe-lafs.org/trac/tahoe-lafs tahoe-lafs] - a decentralized database.&lt;br /&gt;
&lt;br /&gt;
== Communications ==&lt;br /&gt;
&lt;br /&gt;
*[http://radicale.org/ radicale] - a CalDAV (calendar) and CardDAV (contacts) server. &lt;br /&gt;
*[http://keithp.com/blogs/calypso/ calypso] - Radicale fork with a git back-end (by Keith Packard of X11 fame)&lt;br /&gt;
*[http://villagetelco.org Village telco] - an initiative to build low-cost community telephone network hardware and software that can be set up in minutes anywhere in the world.  No mobile phone towers or land lines are required, it uses the internet. It has a Simple Unified Dashboard (SPUD) for mesh networks.&lt;br /&gt;
*[https://ripple.com/currency/ Ripple] (XRP) - a math-based crypto-currency designed to work seamlessly with the Internet. Powered by a global network of computers; a fast, direct, and secure way to send payments on the web. '''It can be used to prevent malious attacks on servers.'''&lt;br /&gt;
*[http://openbts.org/ OpenBTS] - open source cell phone tower software. &lt;br /&gt;
*[http://www.openmama.org/what-is-openmama OpenMAMA] - a high performance middleware agnostic messaging API that interfaces with a variety of message oriented middleware systems&lt;br /&gt;
*an encrypted asynchronous messaging system to replace email&lt;br /&gt;
*a module to have collaborative documents, voting, and groups (ie. [http://en.wikipedia.org/wiki/Collaborative_software groupware])&lt;br /&gt;
** Read information about the [http://mitar.tnode.com/post/73983101095/peer-to-peer-voting-scheme peer-to-peer voting scheme].&lt;br /&gt;
*a module for peer to peer file sharing.&lt;br /&gt;
*a module for object-orientated tagging, shareable feeds.&lt;br /&gt;
*a module for feeds and posts, such as [http://www.trsst.com/ Trsst].&lt;br /&gt;
* [http://www.frontlinesms.com/ Frontline SMS] - a free, open-source desktop application that allows you to send texts.&lt;br /&gt;
&lt;br /&gt;
== Mapping ==&lt;br /&gt;
&lt;br /&gt;
* [http://nodewatcher.readthedocs.org/en/latest/installation.html NodeWatcher] -  an open source network planning, deployment, monitoring and maintanance platform. &lt;br /&gt;
* [http://wiki.ninux.org/InstallNodeshot NodeShot] - an easy to use wireless community map server.&lt;br /&gt;
* [https://github.com/freifunk/openwifimap-html5  OpenWiFiMap] - a database and map for free network WiFi routers (freifunk and others, too!).&lt;br /&gt;
* [https://github.com/libremap  LibreMap] -  a scalable, global and decentralized router database and map visualization for community networks, such as guifi, ninux, etc. &lt;br /&gt;
* [http://tidepools.co Tidepools] - collaborative local mapping software&lt;br /&gt;
* [http://ediblecities.org/ Edible Cities] - a food mapping project&lt;br /&gt;
* Bulletin Board / Local Classified Ads&lt;br /&gt;
** Community Asset Mapping (ex. [http://thepyre.org/wiki/Mycelia Mycelia])&lt;br /&gt;
&lt;br /&gt;
== Protocols ==&lt;br /&gt;
&lt;br /&gt;
* [https://tent.io/ Tent] - a method to store all your data in one place that you control. Instead of your digital life being spread across many services.&lt;br /&gt;
* [https://www.docker.io/ Docker] - an open-source project to easily create lightweight, portable, self-sufficient containers from any application.&lt;br /&gt;
* [http://maidsafe.net/ MaidSafe] - an encrypted, fully distributed data management service. This network manages static and dynamic data as well as communications. (charges money)&lt;br /&gt;
* [https://github.com/telehash/telehash.org/blob/master/v3/intro.md Telehash] - &amp;quot;Telehash is a 100% open, secure mesh networking technology with these design principles: full end-to-end encryption, all the time; strict privacy: no content, identity, or metadata is ever revealed to third parties; maximum app/device compatibility: suitable for embedded, mobile, and web usage; making privacy the easy choice for developers; flexible transport protocols, for compatibility with existing layers; native implementations for the widest possible variety of languages/platforms. The telehash team includes collaborators from around the world, many of whom were the principal architects of XMPP. It is intended as a next-generation protocol advancing the original goals of Jabber.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Social Platforms ==&lt;br /&gt;
&lt;br /&gt;
* [https://joindiaspora.com/ Diaspora] - a decentralized social network&lt;br /&gt;
* [https://identi.ca/ Identi.ca] - a high-performance Open Source social engine. &lt;br /&gt;
* [http://pump.io/ Pump] - a stream server that does most of what people really want from a social network.&lt;br /&gt;
* [http://twister.net.co/ Twister] - a decentralized, peer to peer microblogging platform&lt;br /&gt;
&lt;br /&gt;
== Utilities and Misc ==&lt;br /&gt;
&lt;br /&gt;
* [https://sudoroom.org/wiki/Mesh/Firmware/Zeroconf Avahi] - a mDNS responder that allows you to broadcast services&lt;br /&gt;
* [http://localwiki.org/ Local Wiki] - create a local wikipedia (eg; http://oaklandwiki.org)&lt;br /&gt;
* a module for sensor data (eg; Temperature, Seismic activity, air pollution)&lt;br /&gt;
* [http://dev.wlan-si.net/wiki/PiplMesh PiplMesh] - an open source social networking and info portal for wireless networks used as a welcome page when users connect to the network. &lt;br /&gt;
* [https://neocities.org/ Neocities] ([https://github.com/neocities/neocities git]) - create free user sites&lt;br /&gt;
* [http://crabgrass.riseuplabs.org/ Crabgrass] - a project out of riseup labs, a ruby rails application for community organizing. It's not the easiest to run your own instance, but very easy to sign up to their server ([https://we.riseup.net/ we.riseup.net])&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Redconfetti</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Distributed_Services&amp;diff=10250</id>
		<title>Mesh/Distributed Services</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Distributed_Services&amp;diff=10250"/>
		<updated>2016-07-06T05:01:22Z</updated>

		<summary type="html">&lt;p&gt;Redconfetti: adds details on hosting services external to the mesh network (e.g. digital ocean)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [[mesh]] network should provide communication services, so that it offers value to its users beyond mere connectivity to the Internet. What can be done to help it strengthen ties among Oakland residents, and to benefit the community? This wiki page is here to collect ideas about what services could/should be offered.&lt;br /&gt;
&lt;br /&gt;
Services (such as file sharing, email, contacts, calendar, and phone) should be provided based on existing free/open source software. Orientation &amp;amp; setup could be built into the introductory process for new mesh users.&lt;br /&gt;
&lt;br /&gt;
Some general aspects worth considering:&lt;br /&gt;
* Security&lt;br /&gt;
* Integration into a user account distributed database with master-master replication and low latency (ex. [http://www.datastax.com/resources/whitepapers/benchmarking-top-nosql-databases Cassandra]).&lt;br /&gt;
&lt;br /&gt;
== Externally Hosted ==&lt;br /&gt;
&lt;br /&gt;
Hosts that are not directly connected to a SudoMesh node can make themselves available on the SudoMesh network by establishing a VPN connection into the network via the Exit node (exit.sudomesh.org). This requires use of the [https://github.com/wlanslovenija/tunneldigger tunneldigger] client. As of Ubuntu 14.4, the required kernel modules supporting [https://en.wikipedia.org/wiki/Layer_2_Tunneling_Protocol L2TP] are not included, so you must build a custom kernel that includes the necessary modules, or use the Debian distribution instead. Plans are in place to eventually use a more efficient tunneling method using [https://github.com/sudomesh/foutun Foo Over UDP], which will eliminate this L2TP complication.&lt;br /&gt;
&lt;br /&gt;
Your host will need to use a static IP assigned from the mesh network. Support for obtaining only a static IP assignment will need to be added to the [https://github.com/sudomesh/makenode makenode] utility to accomplish this.&lt;br /&gt;
&lt;br /&gt;
== Active Services ==&lt;br /&gt;
&lt;br /&gt;
The service browser is unfinished, but as we're working on building out the network and setting up services on the network, we can document what we currently have running here for now:&lt;br /&gt;
&lt;br /&gt;
== Architecture: Centralized &amp;amp; decentralized services ==&lt;br /&gt;
&lt;br /&gt;
A central philosophical and practical consideration is how services will be provided. Do we fundamentally want the mesh to be a centralized entity which offers certain services to all members? Or a platform on which individual members can offer services? Or a hybrid?&lt;br /&gt;
&lt;br /&gt;
As it stands now (summer 2015), the mesh offers some opportunity for individual members to offer services. For instance, it's possible for anybody on the mesh to offer services that are accessible elsewhere on the mesh. Should there be (for instance) a central, community-curated file server? Or should it just be up to anybody who wants to, to offer up file shares?&lt;br /&gt;
&lt;br /&gt;
Are there certain kinds of sharing we want to discourage or prohibit, and if so, what will be the social and technical means for enforcement? How will we respond if people start openly sharing copyrighted music and movies? Proprietary software? Child porn? It's worthwhile to think through these scenarios, as a successful network that lacks any kind of governance would become an attractive resource for those whose illegal activities cannot be pursued in the open on the Internet. (An example of this dynamic: [http://www.seattletimes.com/seattle-news/crime/state-supreme-court-rules-against-backpagecom-in-sex-trafficking-suit/ State Supreme Court rules against Backpage.com in sex-trafficking suit], Seattle Times, Sept. 2015)&lt;br /&gt;
&lt;br /&gt;
== Storage / File Systems ==&lt;br /&gt;
&lt;br /&gt;
There are several options for a distributed file system and each have there advantages and disadvantages. The distributed file system can be used to offer file storage or reduce latency across the network. &lt;br /&gt;
&lt;br /&gt;
* [http://opensfs.org/lustre/ Lustre] - Used by sixty percent of the top 100 websites.&lt;br /&gt;
** Performance: Amazingly fast! I can assert that Lustre can serve a lot of streams and that encoding speed is not affected by accessing files via Lustre.&lt;br /&gt;
** [http://en.wikipedia.org/wiki/POSIX POSIX] compatibility: Very good!. No need to modify applications to use luster.&lt;br /&gt;
** Replication, Load Balancing and Fail Over: Very bad!. For replication load balancing we and fail over we need to rely on other software such as virtual IPs and DRDB.&lt;br /&gt;
** Installation: The worst!. Impossible to install by mere mortals. Requires a very specific combination of kernel, lustre patches and tweaks to get it working. And current luster patches usually work with old kernels that are incompatible with new hardware/software.&lt;br /&gt;
&lt;br /&gt;
* [https://code.google.com/p/mogilefs/ MogileFS] &lt;br /&gt;
** Performance: Good for small files but not usable for medium to large files. This is mostly due to HTTP overhead since all files are send/receive via HTTP requests that encode all data in base64 adding a 33% overhead to each file.&lt;br /&gt;
** POXIS compatibility: Non existent. All applications require to be modified to use MogileFS that renders it useless for streaming/encoding since most streaming servers and encoding tools do not understand the protocol.&lt;br /&gt;
** Replication and failover out of the box and load balancing can be implemented in the application by accessing more than one tracker at a time.&lt;br /&gt;
** Installation: Relatively easy and ready to use packages exist in most distributions. The only difficulty I found was setting the database master-slave to eliminate the single point of failure.&lt;br /&gt;
&lt;br /&gt;
* [http://www.gluster.org/ GlusterFS] &lt;br /&gt;
** Performance: Very bad for streaming. I cannot reach more than a few Mbps in a 10Gbps network. Clients and Server CPU skyrockets on heavy writes. For encoding works because the CPU is saturated before the network and I/O.&lt;br /&gt;
** POXIS: Almost compatible. The tools I use can access gluster mounts as normal folders in disk but in some edge cases things start causing problems. Check gluster mailing lists and you will see there are a lot of problems.&lt;br /&gt;
** Replication, Failover and Load balancing: The best! if they actually worked. Gluster is very new and it has a lot of bugs and performance problems.&lt;br /&gt;
** Installation is too easy. The management command line is amazing and setting replicated, striped and distributed volumes among several servers can not be any easier. &lt;br /&gt;
&lt;br /&gt;
([http://stackoverflow.com/questions/916902/lustre-gluster-or-mogilefs-for-video-storage-encoding-and-streaming source of above information])&lt;br /&gt;
&lt;br /&gt;
* [http://hadoop.apache.org/ Hadoop] (HDFS) - slow and has a lot of proprietary derivatives (MapR, GPFS, and [http://gigaom.com/2012/07/11/because-hadoop-isnt-perfect-8-ways-to-replace-hdfs/ other alternatives])&lt;br /&gt;
* [http://www.xtreemfs.org/ XtreemFS] - slow and we need more research on it. &lt;br /&gt;
* Cassandra File System (CFS) - proprietary software made by DataStax and included in the Enterprise Edition of their software.&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Network_File_System Network File Sytem] (NFS) - comparable to Lustre, but the [http://wiki.lustre.org/index.php/NFS_vs._Lustre IO bandwidth doesn't scale].&lt;br /&gt;
&lt;br /&gt;
'''Non-distributed file systems'''&lt;br /&gt;
There's the option to use a modern file system with [http://en.wikipedia.org/wiki/Rsync rsync]. &lt;br /&gt;
[http://rudd-o.com/linux-and-free-software/ways-in-which-zfs-is-better-than-btrfs Comparison of ZFS and BTRFS]&lt;br /&gt;
[http://porky.linuxjournal.com:8080/LJ/218/11250.html A Quick Introduction to Modern Filesystems]&lt;br /&gt;
&lt;br /&gt;
== Databases and Servers ==&lt;br /&gt;
&lt;br /&gt;
These are decentralized databases and servers that could ultimately be optimized to store data nearest to where people access it. A significant factors with mesh networks, that as &amp;quot;size and complexity continues to grow, mesh networks that contain multiple hops become increasingly vulnerable to problems such as bandwidth degradation, radio interference and network latency.&amp;lt;ref&amp;gt;[http://www.strixsystems.com/products/datasheets/strixwhitepaper_multihop.pdf Solving the Wireless Mesh Multi-Hop Dilemma]&amp;lt;/ref&amp;gt;&amp;quot; There are several other methods of improving network latency, but all means should be tested and implemented to improve services. &lt;br /&gt;
&lt;br /&gt;
* [https://cassandra.apache.org/ cassandra] - a decentralized database with asynchronous masterless replication allowing low latency operations for all clients. Cassandra has [http://en.wikipedia.org/wiki/Hadoop Hadoop] integration, with MapReduce support. &lt;br /&gt;
* [https://couchdb.apache.org/ CouchDB] - I can tell you that it quickly becomes complicated to write multi-user app with CouchDB. Decent access control means that you need a database per user and likely a few extra databases. You then have to set all of these databases up to synchronize between each other which is further complicated by the limitations on what information is available by the limitations on how synchronization rules and filters can be written. There seem to be no good tools for managing/visualizing these complex relationships so you end up having to roll your own.&lt;br /&gt;
* [https://github.com/mirage/irmin irmin] - a distributed database with built-in snapshot, branch and revert mechanisms. (similar to git) &lt;br /&gt;
* [http://code.google.com/p/leveldb/ levelDB] - a fast and lightweight key/value database library. &lt;br /&gt;
* [http://www.mongodb.org/ mongoDB] - an open-source document database, a NoSQL database. Written in C++.&lt;br /&gt;
* [http://nodejs.org/ node.js] - an HTTP server written in javascript.&lt;br /&gt;
* [http://pouchdb.com/ PouchDB] - a javascript based couchDB.&lt;br /&gt;
* [https://github.com/dominictarr/scuttlebutt scuttlebutt] - a data synchronization protocol, or a peer-to-peer replicable data structure.&lt;br /&gt;
* [https://tahoe-lafs.org/trac/tahoe-lafs tahoe-lafs] - a decentralized database.&lt;br /&gt;
&lt;br /&gt;
== Communications ==&lt;br /&gt;
&lt;br /&gt;
*[http://radicale.org/ radicale] - a CalDAV (calendar) and CardDAV (contacts) server. &lt;br /&gt;
*[http://keithp.com/blogs/calypso/ calypso] - Radicale fork with a git back-end (by Keith Packard of X11 fame)&lt;br /&gt;
*[http://villagetelco.org Village telco] - an initiative to build low-cost community telephone network hardware and software that can be set up in minutes anywhere in the world.  No mobile phone towers or land lines are required, it uses the internet. It has a Simple Unified Dashboard (SPUD) for mesh networks.&lt;br /&gt;
*[https://ripple.com/currency/ Ripple] (XRP) - a math-based crypto-currency designed to work seamlessly with the Internet. Powered by a global network of computers; a fast, direct, and secure way to send payments on the web. '''It can be used to prevent malious attacks on servers.'''&lt;br /&gt;
*[http://openbts.org/ OpenBTS] - open source cell phone tower software. &lt;br /&gt;
*[http://www.openmama.org/what-is-openmama OpenMAMA] - a high performance middleware agnostic messaging API that interfaces with a variety of message oriented middleware systems&lt;br /&gt;
*an encrypted asynchronous messaging system to replace email&lt;br /&gt;
*a module to have collaborative documents, voting, and groups (ie. [http://en.wikipedia.org/wiki/Collaborative_software groupware])&lt;br /&gt;
** Read information about the [http://mitar.tnode.com/post/73983101095/peer-to-peer-voting-scheme peer-to-peer voting scheme].&lt;br /&gt;
*a module for peer to peer file sharing.&lt;br /&gt;
*a module for object-orientated tagging, shareable feeds.&lt;br /&gt;
*a module for feeds and posts, such as [http://www.trsst.com/ Trsst].&lt;br /&gt;
* [http://www.frontlinesms.com/ Frontline SMS] - a free, open-source desktop application that allows you to send texts.&lt;br /&gt;
&lt;br /&gt;
== Mapping ==&lt;br /&gt;
&lt;br /&gt;
* [http://nodewatcher.readthedocs.org/en/latest/installation.html NodeWatcher] -  an open source network planning, deployment, monitoring and maintanance platform. &lt;br /&gt;
* [http://wiki.ninux.org/InstallNodeshot NodeShot] - an easy to use wireless community map server.&lt;br /&gt;
* [https://github.com/freifunk/openwifimap-html5  OpenWiFiMap] - a database and map for free network WiFi routers (freifunk and others, too!).&lt;br /&gt;
* [https://github.com/libremap  LibreMap] -  a scalable, global and decentralized router database and map visualization for community networks, such as guifi, ninux, etc. &lt;br /&gt;
* [http://tidepools.co Tidepools] - collaborative local mapping software&lt;br /&gt;
* [http://ediblecities.org/ Edible Cities] - a food mapping project&lt;br /&gt;
* Bulletin Board / Local Classified Ads&lt;br /&gt;
** Community Asset Mapping (ex. [http://thepyre.org/wiki/Mycelia Mycelia])&lt;br /&gt;
&lt;br /&gt;
== Protocols ==&lt;br /&gt;
&lt;br /&gt;
* [https://tent.io/ Tent] - a method to store all your data in one place that you control. Instead of your digital life being spread across many services.&lt;br /&gt;
* [https://www.docker.io/ Docker] - an open-source project to easily create lightweight, portable, self-sufficient containers from any application.&lt;br /&gt;
* [http://maidsafe.net/ MaidSafe] - an encrypted, fully distributed data management service. This network manages static and dynamic data as well as communications. (charges money)&lt;br /&gt;
* [https://github.com/telehash/telehash.org/blob/master/v3/intro.md Telehash] - &amp;quot;Telehash is a 100% open, secure mesh networking technology with these design principles: full end-to-end encryption, all the time; strict privacy: no content, identity, or metadata is ever revealed to third parties; maximum app/device compatibility: suitable for embedded, mobile, and web usage; making privacy the easy choice for developers; flexible transport protocols, for compatibility with existing layers; native implementations for the widest possible variety of languages/platforms. The telehash team includes collaborators from around the world, many of whom were the principal architects of XMPP. It is intended as a next-generation protocol advancing the original goals of Jabber.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Social Platforms ==&lt;br /&gt;
&lt;br /&gt;
* [https://joindiaspora.com/ Diaspora] - a decentralized social network&lt;br /&gt;
* [https://identi.ca/ Identi.ca] - a high-performance Open Source social engine. &lt;br /&gt;
* [http://pump.io/ Pump] - a stream server that does most of what people really want from a social network.&lt;br /&gt;
* [http://twister.net.co/ Twister] - a decentralized, peer to peer microblogging platform&lt;br /&gt;
&lt;br /&gt;
== Utilities and Misc ==&lt;br /&gt;
&lt;br /&gt;
* [https://sudoroom.org/wiki/Mesh/Firmware/Zeroconf Avahi] - a mDNS responder that allows you to broadcast services&lt;br /&gt;
* [http://localwiki.org/ Local Wiki] - create a local wikipedia (eg; http://oaklandwiki.org)&lt;br /&gt;
* a module for sensor data (eg; Temperature, Seismic activity, air pollution)&lt;br /&gt;
* [http://dev.wlan-si.net/wiki/PiplMesh PiplMesh] - an open source social networking and info portal for wireless networks used as a welcome page when users connect to the network. &lt;br /&gt;
* [https://neocities.org/ Neocities] ([https://github.com/neocities/neocities git]) - create free user sites&lt;br /&gt;
* [http://crabgrass.riseuplabs.org/ Crabgrass] - a project out of riseup labs, a ruby rails application for community organizing. It's not the easiest to run your own instance, but very easy to sign up to their server ([https://we.riseup.net/ we.riseup.net])&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Redconfetti</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Template:Mesh_nav&amp;diff=10249</id>
		<title>Template:Mesh nav</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Template:Mesh_nav&amp;diff=10249"/>
		<updated>2016-07-06T04:40:07Z</updated>

		<summary type="html">&lt;p&gt;Redconfetti: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|style=&amp;quot;border-style: solid; border-width: 10px; border-color: #20b24b; background-color: #ffffcc; width: 70%; text-align: center;&amp;quot;&lt;br /&gt;
|+ '''''Quick Links''' (see below for more details)''&lt;br /&gt;
|-&lt;br /&gt;
!Documentation&lt;br /&gt;
!Technical&lt;br /&gt;
!Outreach&lt;br /&gt;
!Operations&lt;br /&gt;
!Help&lt;br /&gt;
!External Links&lt;br /&gt;
|-&lt;br /&gt;
|[[Mesh/Blog|Blog]]&lt;br /&gt;
|[[Mesh/Home_and_extender_nodes|Home and Extender Nodes]]&lt;br /&gt;
|[[Mesh/Website|Website]]&lt;br /&gt;
|[[Mesh/Minutes|Minutes]]&lt;br /&gt;
|[[Mesh/FAQ|FAQ]]&lt;br /&gt;
|[http://peoplesopen.net peoplesopen.net]&lt;br /&gt;
|-&lt;br /&gt;
|[[Mesh/Oakland|Oakland]]&lt;br /&gt;
|[[Mesh/WalkThrough|Walkthrough]]&lt;br /&gt;
|[[Mesh/Meetings|Meetings]]&lt;br /&gt;
|[[Mesh/Legal|Legal]]&lt;br /&gt;
|[[Mesh/How_to_help|How to Help]] &lt;br /&gt;
|[http://meshmap.sudoroom.org sudo mesh map]&lt;br /&gt;
|-&lt;br /&gt;
|[[Mesh/Interviews with other meshers|Interviews]]&lt;br /&gt;
|[[Mesh/Firmware|Firmware]]&lt;br /&gt;
|[[Mesh/Stickers|Stickers]]&lt;br /&gt;
|[[Mesh/Hosting|Hosting]]&lt;br /&gt;
|[[Mesh/ToDos|To-Do's]]&lt;br /&gt;
|[https://github.com/sudomesh code on github]&lt;br /&gt;
|-&lt;br /&gt;
|[[Mesh/Other mesh projects|Other meshes]]&lt;br /&gt;
|[[Mesh/MeshApps|MeshApps]]&lt;br /&gt;
|[[Mesh/Presentations|Presentations]]&lt;br /&gt;
|[[Mesh/Backup|Backup]]&lt;br /&gt;
|[[Mesh/Wishlist|Wishlist]]&lt;br /&gt;
|[http://meshthepla.net meshthepla.net!]&lt;br /&gt;
|-&lt;br /&gt;
|[[Mesh/Documentation|Documentation]]&lt;br /&gt;
|[[Mesh/Network topology|Network topology]]&lt;br /&gt;
|[[Mesh/Swag|Swag]]&lt;br /&gt;
|[[Mesh/Server security|Server security]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|[[Mesh/Specs|Specs]]&lt;br /&gt;
|[[Ascii Art]]&lt;br /&gt;
|[[Mesh/Naming|Naming]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|[[Mesh/Frequencies|Frequencies]]&lt;br /&gt;
|[[Mesh/Communities|Communities]]&lt;br /&gt;
|[[Mesh/Marketing|Marketing]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|[[Mesh/Software tools|Software tools]]&lt;br /&gt;
|[[Mesh/Press|Press]]&lt;br /&gt;
|[[Mesh/Purchases|Purchases]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
||[[Mesh/Terms|Terms]]&lt;br /&gt;
|[[Mesh/Design|Design]]&lt;br /&gt;
|[[Mesh/Inventory|Inventory]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|[[Mesh/Power|Power]]&lt;br /&gt;
|&lt;br /&gt;
|[[Mesh/Donations|Donations]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
||[[Mesh/Monitoring|Monitoring]]&lt;br /&gt;
|&lt;br /&gt;
|[[Mesh/Decisions|Decisions]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
||[[Mesh/Freifunk|Freifunk]]&lt;br /&gt;
|&lt;br /&gt;
|[[Mesh/Challenges|Challenges]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
||[[Mesh/Commotion|Commotion]]&lt;br /&gt;
|&lt;br /&gt;
|[[Mesh/Checkouts|Checkouts]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|[[Mesh/Diagrams|Diagrams]]&lt;br /&gt;
|&lt;br /&gt;
|[[Mesh/Funding|Funding]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|[[Mesh/Network|Network]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|[[Mesh/History|History]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Redconfetti</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Template:Mesh_nav&amp;diff=10248</id>
		<title>Template:Mesh nav</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Template:Mesh_nav&amp;diff=10248"/>
		<updated>2016-07-06T04:37:35Z</updated>

		<summary type="html">&lt;p&gt;Redconfetti: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|style=&amp;quot;border-style: solid; border-width: 10px; border-color: #20b24b; background-color: #ffffcc; width: 70%; text-align: center;&amp;quot;&lt;br /&gt;
|+ '''''Quick Links''' (see below for more details)''&lt;br /&gt;
|-&lt;br /&gt;
!Documentation&lt;br /&gt;
!Technical&lt;br /&gt;
!Outreach&lt;br /&gt;
!Operations&lt;br /&gt;
!Help&lt;br /&gt;
!External Links&lt;br /&gt;
|-&lt;br /&gt;
|[[Mesh/Blog|Blog]]&lt;br /&gt;
|[[Mesh/History|History]]&lt;br /&gt;
|[[Mesh/Home_and_extender_nodes|Home and Extender Nodes]]&lt;br /&gt;
|[[Mesh/Website|Website]]&lt;br /&gt;
|[[Mesh/Minutes|Minutes]]&lt;br /&gt;
|[[Mesh/FAQ|FAQ]]&lt;br /&gt;
|[http://peoplesopen.net peoplesopen.net]&lt;br /&gt;
|-&lt;br /&gt;
|[[Mesh/Oakland|Oakland]]&lt;br /&gt;
|[[Mesh/WalkThrough|Walkthrough]]&lt;br /&gt;
|[[Mesh/Meetings|Meetings]]&lt;br /&gt;
|[[Mesh/Legal|Legal]]&lt;br /&gt;
|[[Mesh/How_to_help|How to Help]] &lt;br /&gt;
|[http://meshmap.sudoroom.org sudo mesh map]&lt;br /&gt;
|-&lt;br /&gt;
|[[Mesh/Interviews with other meshers|Interviews]]&lt;br /&gt;
|[[Mesh/Firmware|Firmware]]&lt;br /&gt;
|[[Mesh/Stickers|Stickers]]&lt;br /&gt;
|[[Mesh/Hosting|Hosting]]&lt;br /&gt;
|[[Mesh/ToDos|To-Do's]]&lt;br /&gt;
|[https://github.com/sudomesh code on github]&lt;br /&gt;
|-&lt;br /&gt;
|[[Mesh/Other mesh projects|Other meshes]]&lt;br /&gt;
|[[Mesh/MeshApps|MeshApps]]&lt;br /&gt;
|[[Mesh/Presentations|Presentations]]&lt;br /&gt;
|[[Mesh/Backup|Backup]]&lt;br /&gt;
|[[Mesh/Wishlist|Wishlist]]&lt;br /&gt;
|[http://meshthepla.net meshthepla.net!]&lt;br /&gt;
|-&lt;br /&gt;
|[[Mesh/Documentation|Documentation]]&lt;br /&gt;
|[[Mesh/Network topology|Network topology]]&lt;br /&gt;
|[[Mesh/Swag|Swag]]&lt;br /&gt;
|[[Mesh/Server security|Server security]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|[[Mesh/Specs|Specs]]&lt;br /&gt;
|[[Ascii Art]]&lt;br /&gt;
|[[Mesh/Naming|Naming]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|[[Mesh/Frequencies|Frequencies]]&lt;br /&gt;
|[[Mesh/Communities|Communities]]&lt;br /&gt;
|[[Mesh/Marketing|Marketing]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|[[Mesh/Software tools|Software tools]]&lt;br /&gt;
|[[Mesh/Press|Press]]&lt;br /&gt;
|[[Mesh/Purchases|Purchases]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
||[[Mesh/Terms|Terms]]&lt;br /&gt;
|[[Mesh/Design|Design]]&lt;br /&gt;
|[[Mesh/Inventory|Inventory]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|[[Mesh/Power|Power]]&lt;br /&gt;
|&lt;br /&gt;
|[[Mesh/Donations|Donations]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
||[[Mesh/Monitoring|Monitoring]]&lt;br /&gt;
|&lt;br /&gt;
|[[Mesh/Decisions|Decisions]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
||[[Mesh/Freifunk|Freifunk]]&lt;br /&gt;
|&lt;br /&gt;
|[[Mesh/Challenges|Challenges]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
||[[Mesh/Commotion|Commotion]]&lt;br /&gt;
|&lt;br /&gt;
|[[Mesh/Checkouts|Checkouts]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|[[Mesh/Diagrams|Diagrams]]&lt;br /&gt;
|&lt;br /&gt;
|[[Mesh/Funding|Funding]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|[[Mesh/Network|Network]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Redconfetti</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/History&amp;diff=10247</id>
		<title>Mesh/History</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/History&amp;diff=10247"/>
		<updated>2016-07-06T04:33:53Z</updated>

		<summary type="html">&lt;p&gt;Redconfetti: Created page with &amp;quot;= WLAN =  Many of the architectural decisions for the SudoMesh project were based on implementations and lessons learned by [https://wlan-si.net/ wlan slovenija] - open wirele...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= WLAN =&lt;br /&gt;
&lt;br /&gt;
Many of the architectural decisions for the SudoMesh project were based on implementations and lessons learned by [https://wlan-si.net/ wlan slovenija] - open wireless network of Slovenia.&lt;br /&gt;
&lt;br /&gt;
SudoMesh uses [https://en.wikipedia.org/wiki/Babel_(protocol) Babel], a Mesh routing protocol that didn't exist when the WLAN Slovenija project was started. &lt;br /&gt;
&lt;br /&gt;
Technologies shared by both SudoMesh and WLAN Sovenija include:&lt;br /&gt;
* [https://github.com/wlanslovenija/tunneldigger tunneldigger] - VPN tunneling&lt;br /&gt;
* [https://github.com/wlanslovenija/nodewatcher nodewatcher] - Network monitoring&lt;/div&gt;</summary>
		<author><name>Redconfetti</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Network_topology&amp;diff=10246</id>
		<title>Mesh/Network topology</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Network_topology&amp;diff=10246"/>
		<updated>2016-07-06T04:19:17Z</updated>

		<summary type="html">&lt;p&gt;Redconfetti: added backbone connections section with note concerning SF and Laney College desired link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Network topology diagram-hi.png|thumb|png (hi), [[Mesh/Diagrams#Network Topology Diagram|see more]]]]&lt;br /&gt;
= peoplesopen.net topology =&lt;br /&gt;
For information about the people's open network topology, refer to this [[Mesh/Diagrams#Network Topology Diagram|network topology diagram]].&lt;br /&gt;
&lt;br /&gt;
= wifi topology =&lt;br /&gt;
&lt;br /&gt;
[[File:Mesh topology diagram.png|thumb]]&lt;br /&gt;
&lt;br /&gt;
We use 2.4 ghz 802.11g or 802.11n wifi gear with omni or semi-directional antennas to provide connectivity to devices such as laptops and smartphones at street level and within buildings. We are currently using a variety of gear including Ubiquiti Picostation M2 HP and Ubiquiti Bullet M2 HP routers for the outdoor APs. &lt;br /&gt;
&lt;br /&gt;
A high-speed wireless backbone for the mesh will be provided by 5 ghz 802.11n hardware, usually with point to point or point to multipoint connections mounted in high places such as on rooftops, flagpoles or antenna towers. We currently have a variety of Ubiquiti M5 routers such as airgrids, nanobridges, nanostations and a rocket.&lt;br /&gt;
&lt;br /&gt;
See the [[Mesh/Home and extender nodes|Home and extender nodes]] for more info about how these are setup.&lt;br /&gt;
&lt;br /&gt;
All of the outdoor gear will be Power over Ethernet (PoE), requiring only a single cable for network and power connectivity.&lt;br /&gt;
&lt;br /&gt;
= mesh topology =&lt;br /&gt;
&lt;br /&gt;
All routers run the Babel mesh routing protocol. The street-level 2.4 ghz routers should ideally be able to function in the event that e.g. an earthquake takes out all of the point to point and point to multipoint rooftop nodes (more alignment sensitive) and the mesh should remain functional, though it could become segmented.&lt;br /&gt;
&lt;br /&gt;
The relays / [[VPuN]] servers (see the internet connectivity section) also run Babel, so mesh traffic can flow from one part of the mesh, through the internet, through a relay, and into another part of the mesh if some of the mesh nodes are connected to the internet.&lt;br /&gt;
&lt;br /&gt;
= internet connectivity =&lt;br /&gt;
&lt;br /&gt;
There are four primary types of devices in the mesh:&lt;br /&gt;
&lt;br /&gt;
*Clients: E.g. smart phones or laptops connected to the mesh. &lt;br /&gt;
:These do not run the meshing protocol.&lt;br /&gt;
*Mesh nodes: Wifi routers running OpenWRT.&lt;br /&gt;
:This includes home nodes and their extender nodes&lt;br /&gt;
*Relays / [[Mesh/VPuN|VPuN servers]]: Professionally hosted servers that relay mesh traffic over the internet.&lt;br /&gt;
:These run the meshing protocol. Mesh nodes are connected to them with L2TP tunnels.&lt;br /&gt;
*Exit nodes: Co-located servers that appear as the source IP for packets from mesh to internet.&lt;br /&gt;
:Both relays and exit nodes serve as a layer of protection between people sharing their internet connections with the mesh. A relay can also be an exit server and this may in fact end up being the case in most instances.&lt;br /&gt;
&lt;br /&gt;
Some mesh routers will be hosted in homes that already have internet connections. If an internet connection is available, a mesh router will open an L2TP tunnel (using the tunneldigger software) to several relay nodes over the internet connection. A relay could be e.g. a VPS without a bandwidth cap. The relays all run Babel and function as part of the mesh through the L2TP tunnels to the mesh nodes. Each relay will have a connection to an exit nodes. The relays allow segments of the mesh that are not connected with wifi to be connected over the internet.&lt;br /&gt;
&lt;br /&gt;
Each relay is connected to one exit node (tunnel type not yet decided). It does NAT (IP Masquerading) on traffic coming from the mesh and headed for the internet. All traffic coming from the mesh and going to the wider internet goes through an exit node. The source IP of data coming from the mesh thus appears as the IP of one of the exit nodes. This provides a layer of protection such that e.g. abuse complaints will be sent to the mesh organization instead of the individuals who donate some of their internet bandwidth to the mesh.&lt;br /&gt;
:Until network has an AS, only one exit node should be made and multiple relay nodes should connect to that exit node (Tunneldigger software can be reused for that). Otherwise clients can have issues when routing protocol decides to move from one exit node to another.&lt;br /&gt;
:It is important that nodes are connecting to relays and relays to exit nodes and that no IPs of those connecting to relays and exit nodes is stored.&lt;br /&gt;
&lt;br /&gt;
= Backbone Connections =&lt;br /&gt;
&lt;br /&gt;
== Desired ==&lt;br /&gt;
&lt;br /&gt;
* We have the opportunity to establish a Gigabit link between Oakland and San Francisco, with a connection in San Francisco near the Western most part of 24th street in the [https://goo.gl/maps/TzMBTsadiCL2 Noe Valley] neighborhood. This location has great line of sight with many locations in the East Bay. We would like to establish a relationship with anyone that can grant permission to mount equipment on Laney Tower at [http://www.laney.edu/wp/ Laney College] in Oakland.&lt;/div&gt;</summary>
		<author><name>Redconfetti</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=IRC&amp;diff=10245</id>
		<title>IRC</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=IRC&amp;diff=10245"/>
		<updated>2016-07-06T04:04:01Z</updated>

		<summary type="html">&lt;p&gt;Redconfetti: /* Managing Process */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;NOTE: a lot of people think that you can get on IRC and talk to people right away.  That only works if people are in the channel you want at that very moment, and paying attention to that screen on their computer.&lt;br /&gt;
&lt;br /&gt;
The reality is that most conversations in IRC happen over hours or days, so the only way to fully experience a channel such as #sudoroom is to find a way to stay logged into IRC continuously.  If you have a desktop computer that stays powered on and connected to the internet, this is easy.  Otherwise, you need to connect to a computer that stays on (such as a server) and leave an IRC session running there, using &amp;quot;screen&amp;quot; or &amp;quot;tmux&amp;quot; as described below.&lt;br /&gt;
&lt;br /&gt;
If you log into IRC and say Hello and nobody gets back you to you for an hour, that is totally normal.  If you log out five minutes after asking a question, people will make fun of you an hour later when they look at their IRC sessions.&lt;br /&gt;
&lt;br /&gt;
Internet Relay Chat (IRC) is an instant messaging service that has been used on the internet since the early 1990s. IRC is made possible by the [https://en.wikipedia.org/wiki/Internet_Relay_Chat Internet Relay Chat Protocol (IRCP)], an application layer protocol. The chat process works on a client/server networking model. IRC clients are computer programs that a user can install on their system. These clients communicate with chat servers to transfer messages to other clients. IRC is mainly designed for group communication in discussion forums, called channels, but also allows one-on-one communication via private messages as well as chat and data transfer, including file sharing.&lt;br /&gt;
&lt;br /&gt;
Many [https://en.wikipedia.org/wiki/Comparison_of_instant_messaging_protocols other instant messaging services] exist, however many services are proprietary and/or rely on a centralized platform. This does not appeal to organizations that wish to establish a channel of communication that can be adopted by users without fear of unwanted regulations by the service/platform provider. Although open source protocols such as [https://en.wikipedia.org/wiki/XMPP XMPP (formerly Jabber)] exist, IRC continues to be used because it is lightweight and stable.&lt;br /&gt;
&lt;br /&gt;
IRC consists of channels. Each channel is like a chat room, and is represented by a name that begins with '#' followed by a string that represents the primary topic of the channel. Examples:  #html, #css, #javascript, #go-lang.&lt;br /&gt;
&lt;br /&gt;
== Recommended Clients ==&lt;br /&gt;
&lt;br /&gt;
There are many various IRC clients available for many platforms.&lt;br /&gt;
&lt;br /&gt;
=== Graphical Clients ===&lt;br /&gt;
&lt;br /&gt;
* Cross-platform&lt;br /&gt;
** [https://www.pidgin.im/download/ Pidgin]&lt;br /&gt;
* Mac OS X&lt;br /&gt;
** [https://adium.im/ Adium]&lt;br /&gt;
&lt;br /&gt;
=== Command Line Interface Clients ===&lt;br /&gt;
&lt;br /&gt;
These clients are intended to be used from the command line interface (CLI), also known as the &amp;quot;terminal&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* [https://irssi.org/ irssi]&lt;br /&gt;
&lt;br /&gt;
== Basics ==&lt;br /&gt;
&lt;br /&gt;
For those that are new to IRC, itâ€™s a good idea to become familiar with the [http://www.ircbeginner.com/ircinfo/ircc-commands.html common commands] that IRC programs support. Here are a few:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Command !! Example !! Description&lt;br /&gt;
|-&lt;br /&gt;
| /join #channel_name || /join #sudoroom ||Join a channel&lt;br /&gt;
|-&lt;br /&gt;
| /me &amp;lt;action&amp;gt; || /me waves hello || Announces some action&lt;br /&gt;
|-&lt;br /&gt;
| /msg &amp;lt;nickname&amp;gt; &amp;lt;message&amp;gt; || /msg juul Hey! I need some help  || Send a direct message to another user&lt;br /&gt;
|-&lt;br /&gt;
| /ignore &amp;lt;nickname&amp;gt; || /ignore annoyingperson || Block someone that is harassing you&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Although the above commands are likely to be supported by all IRC client programs, some only apply to specific clients. The following are supported by [https://irssi.org/ irssi]:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Command !! Example !! Description&lt;br /&gt;
|-&lt;br /&gt;
| /help || /help || View documentation on supported commands&lt;br /&gt;
|-&lt;br /&gt;
| /help &amp;lt;command&amp;gt; || /help connect || View documentation on a specific supported command&lt;br /&gt;
|-&lt;br /&gt;
| /connect &amp;lt;server address&amp;gt; &amp;lt;port&amp;gt; || /connect irc.freenode.net 8001 || Connect to an IRC server&lt;br /&gt;
|-&lt;br /&gt;
| /set nick &amp;lt;nick&amp;gt; || /set nick someGuy2015 || Register your nickname with the IRC server/network&lt;br /&gt;
|-&lt;br /&gt;
| /set real_name &amp;lt;real name&amp;gt; || /set nick Bill Murray || Register your real name within the IRC server/network&lt;br /&gt;
|-&lt;br /&gt;
| /quit || /quit || Quits IRC program&lt;br /&gt;
|-&lt;br /&gt;
| /exit || /exit || Quits IRC program&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
See [https://irssi.org/documentation/ IRSSI Documentation] for more commands.&lt;br /&gt;
&lt;br /&gt;
== FreeNode ==&lt;br /&gt;
&lt;br /&gt;
Many programming/hacking communities establish a channel on the [https://en.wikipedia.org/wiki/Freenode FreeNode IRC network] to facilitate discussions and provide support to members of their community.&lt;br /&gt;
&lt;br /&gt;
=== Registering with FreeNode ===&lt;br /&gt;
&lt;br /&gt;
The FreeNode IRC network allows you to register your nickname and associate it with your email address. This is done by using the following commands:&lt;br /&gt;
&lt;br /&gt;
  /msg nickserv REGISTER &amp;lt;password&amp;gt; &amp;lt;email&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should receive a message informing you that you need to check your email account and obtain instructions to verify yourself.&lt;br /&gt;
&lt;br /&gt;
To make sure that your email address isnâ€™t revealed to other users, use the following command to ensure that it is hidden.&lt;br /&gt;
&lt;br /&gt;
  /msg NickServ SET HIDEMAIL ON&lt;br /&gt;
&lt;br /&gt;
You can verify your information with the NickServ by using:&lt;br /&gt;
&lt;br /&gt;
  /msg nickserv info&lt;br /&gt;
&lt;br /&gt;
== Persistent CLI Client ==&lt;br /&gt;
&lt;br /&gt;
This section is a guide to setting up a command line based IRC client on a persistently running machine so that it stays connected within a channel even when you are not connected to the machine via SSH. This results in the ability to reconnect and view the messages in the channel that occurred even when you were not connected.&lt;br /&gt;
&lt;br /&gt;
These instructions assume you are using an Ubuntu machine, and will be using the [https://irssi.org/ irssi] client.&lt;br /&gt;
&lt;br /&gt;
=== Client Machine ===&lt;br /&gt;
&lt;br /&gt;
You can setup a system at home and configure your home network device(s) to make that machine available via the internet, or alternatively gain shell access to a server on the internet. There are services that provide free or paid shell access, with features and support for IRC that varies. Some of these services even provide support for [https://en.wikipedia.org/wiki/IRC_bot IRC bots]. Alternatively you can pay for a [https://en.wikipedia.org/wiki/Virtual_private_server Virtual Private Server (VPS)] for as low as $5 a month through services such as [digitalocean.com DigitalOcean], thus providing you with an entire UNIX-like server environment that you can use as you wish.&lt;br /&gt;
&lt;br /&gt;
=== Install Client ===&lt;br /&gt;
&lt;br /&gt;
Install the irssi client using the following command:&lt;br /&gt;
&lt;br /&gt;
  apt-get install irssi&lt;br /&gt;
&lt;br /&gt;
After itâ€™s done installing, simply run the program&lt;br /&gt;
&lt;br /&gt;
  irssi&lt;br /&gt;
&lt;br /&gt;
=== Configure ===&lt;br /&gt;
&lt;br /&gt;
There is a configuration file in ~/.irssi/config that you can inspect, but you can use commands from within the program to configure IRSSI to automatically perform when you first open the program. &lt;br /&gt;
&lt;br /&gt;
The following commands will configure IRSSI to connect to the Freenode network with an SSL connection, with automatic joining of the #sudoroom channel.&lt;br /&gt;
&lt;br /&gt;
  /network add Freenode&lt;br /&gt;
  /server add -auto -ssl -ssl_verify -ssl_capath /etc/ssl/certs -network Freenode irc.freenode.net 7000&lt;br /&gt;
  /channel add -auto #sudoroom Freenode&lt;br /&gt;
  /save&lt;br /&gt;
&lt;br /&gt;
After youâ€™ve successfully registered your FreeNode nick name, you can run this command to configure IRSSI to login automatically after connecting to FreeNode.&lt;br /&gt;
&lt;br /&gt;
  /network add -autosendcmd &amp;quot;/msg nickserv identify &amp;lt;password&amp;gt; ;wait 2000&amp;quot; Freenode&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
&lt;br /&gt;
irssi support separate &amp;quot;windows&amp;quot; for the different channels you are connected to, or for the different people you are chatting with. If for some reason you do not see information on the screen for a command youâ€™ve run, it may be displayed in another window.&lt;br /&gt;
&lt;br /&gt;
An Ubuntu terminal can use the ALT key combined with a number key (e.g. ALT+1, ALT+2, ALT+3, etc) to switch between the different displays in IRSSI. This will not work via SSH however, so you will need to use the /window command instead.&lt;br /&gt;
&lt;br /&gt;
  /WINDOW NEW                    - Create new split window&lt;br /&gt;
  /WINDOW NEW HIDE               - Create new hidden window&lt;br /&gt;
  /WINDOW CLOSE                  - Close split or hidden window&lt;br /&gt;
  &lt;br /&gt;
  /WINDOW HIDE [&amp;lt;number&amp;gt;|&amp;lt;name&amp;gt;] - Make the split window hidden window&lt;br /&gt;
  /WINDOW SHOW &amp;lt;number&amp;gt;|&amp;lt;name&amp;gt;   - Make the hidden window a split window&lt;br /&gt;
  &lt;br /&gt;
  /WINDOW SHRINK [&amp;lt;lines&amp;gt;]       - Shrink the split window&lt;br /&gt;
  /WINDOW GROW [&amp;lt;lines&amp;gt;]         - Grow the split window&lt;br /&gt;
  /WINDOW BALANCE                - Balance the sizes of all split windows&lt;br /&gt;
&lt;br /&gt;
=== Managing Process ===&lt;br /&gt;
&lt;br /&gt;
You can use [https://en.wikipedia.org/wiki/GNU_Screen GNU screen] or [https://en.wikipedia.org/wiki/Tmux tmux] to maintain a terminal session that will persist even after you disconnect from the SSH session on your client machine.&lt;br /&gt;
&lt;br /&gt;
For example, you can run 'screen' to start a screen session. Once the session is started, run any program you wish. To disconnect from the session press CTRL-A, followed by D key. You can then safely disconnect from your SSH session. When you return, use `screen -r` to reconnect.&lt;br /&gt;
&lt;br /&gt;
See [http://carina.org.uk/screenirssi.shtml How to use screen and irssi] and [https://michael.lustfield.net/linux/irssi-using-screen-and-ssh IRSSI Using Screen and SSH]&lt;/div&gt;</summary>
		<author><name>Redconfetti</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=IRC&amp;diff=10244</id>
		<title>IRC</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=IRC&amp;diff=10244"/>
		<updated>2016-07-06T04:03:24Z</updated>

		<summary type="html">&lt;p&gt;Redconfetti: /* Managing Process */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;NOTE: a lot of people think that you can get on IRC and talk to people right away.  That only works if people are in the channel you want at that very moment, and paying attention to that screen on their computer.&lt;br /&gt;
&lt;br /&gt;
The reality is that most conversations in IRC happen over hours or days, so the only way to fully experience a channel such as #sudoroom is to find a way to stay logged into IRC continuously.  If you have a desktop computer that stays powered on and connected to the internet, this is easy.  Otherwise, you need to connect to a computer that stays on (such as a server) and leave an IRC session running there, using &amp;quot;screen&amp;quot; or &amp;quot;tmux&amp;quot; as described below.&lt;br /&gt;
&lt;br /&gt;
If you log into IRC and say Hello and nobody gets back you to you for an hour, that is totally normal.  If you log out five minutes after asking a question, people will make fun of you an hour later when they look at their IRC sessions.&lt;br /&gt;
&lt;br /&gt;
Internet Relay Chat (IRC) is an instant messaging service that has been used on the internet since the early 1990s. IRC is made possible by the [https://en.wikipedia.org/wiki/Internet_Relay_Chat Internet Relay Chat Protocol (IRCP)], an application layer protocol. The chat process works on a client/server networking model. IRC clients are computer programs that a user can install on their system. These clients communicate with chat servers to transfer messages to other clients. IRC is mainly designed for group communication in discussion forums, called channels, but also allows one-on-one communication via private messages as well as chat and data transfer, including file sharing.&lt;br /&gt;
&lt;br /&gt;
Many [https://en.wikipedia.org/wiki/Comparison_of_instant_messaging_protocols other instant messaging services] exist, however many services are proprietary and/or rely on a centralized platform. This does not appeal to organizations that wish to establish a channel of communication that can be adopted by users without fear of unwanted regulations by the service/platform provider. Although open source protocols such as [https://en.wikipedia.org/wiki/XMPP XMPP (formerly Jabber)] exist, IRC continues to be used because it is lightweight and stable.&lt;br /&gt;
&lt;br /&gt;
IRC consists of channels. Each channel is like a chat room, and is represented by a name that begins with '#' followed by a string that represents the primary topic of the channel. Examples:  #html, #css, #javascript, #go-lang.&lt;br /&gt;
&lt;br /&gt;
== Recommended Clients ==&lt;br /&gt;
&lt;br /&gt;
There are many various IRC clients available for many platforms.&lt;br /&gt;
&lt;br /&gt;
=== Graphical Clients ===&lt;br /&gt;
&lt;br /&gt;
* Cross-platform&lt;br /&gt;
** [https://www.pidgin.im/download/ Pidgin]&lt;br /&gt;
* Mac OS X&lt;br /&gt;
** [https://adium.im/ Adium]&lt;br /&gt;
&lt;br /&gt;
=== Command Line Interface Clients ===&lt;br /&gt;
&lt;br /&gt;
These clients are intended to be used from the command line interface (CLI), also known as the &amp;quot;terminal&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* [https://irssi.org/ irssi]&lt;br /&gt;
&lt;br /&gt;
== Basics ==&lt;br /&gt;
&lt;br /&gt;
For those that are new to IRC, itâ€™s a good idea to become familiar with the [http://www.ircbeginner.com/ircinfo/ircc-commands.html common commands] that IRC programs support. Here are a few:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Command !! Example !! Description&lt;br /&gt;
|-&lt;br /&gt;
| /join #channel_name || /join #sudoroom ||Join a channel&lt;br /&gt;
|-&lt;br /&gt;
| /me &amp;lt;action&amp;gt; || /me waves hello || Announces some action&lt;br /&gt;
|-&lt;br /&gt;
| /msg &amp;lt;nickname&amp;gt; &amp;lt;message&amp;gt; || /msg juul Hey! I need some help  || Send a direct message to another user&lt;br /&gt;
|-&lt;br /&gt;
| /ignore &amp;lt;nickname&amp;gt; || /ignore annoyingperson || Block someone that is harassing you&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Although the above commands are likely to be supported by all IRC client programs, some only apply to specific clients. The following are supported by [https://irssi.org/ irssi]:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Command !! Example !! Description&lt;br /&gt;
|-&lt;br /&gt;
| /help || /help || View documentation on supported commands&lt;br /&gt;
|-&lt;br /&gt;
| /help &amp;lt;command&amp;gt; || /help connect || View documentation on a specific supported command&lt;br /&gt;
|-&lt;br /&gt;
| /connect &amp;lt;server address&amp;gt; &amp;lt;port&amp;gt; || /connect irc.freenode.net 8001 || Connect to an IRC server&lt;br /&gt;
|-&lt;br /&gt;
| /set nick &amp;lt;nick&amp;gt; || /set nick someGuy2015 || Register your nickname with the IRC server/network&lt;br /&gt;
|-&lt;br /&gt;
| /set real_name &amp;lt;real name&amp;gt; || /set nick Bill Murray || Register your real name within the IRC server/network&lt;br /&gt;
|-&lt;br /&gt;
| /quit || /quit || Quits IRC program&lt;br /&gt;
|-&lt;br /&gt;
| /exit || /exit || Quits IRC program&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
See [https://irssi.org/documentation/ IRSSI Documentation] for more commands.&lt;br /&gt;
&lt;br /&gt;
== FreeNode ==&lt;br /&gt;
&lt;br /&gt;
Many programming/hacking communities establish a channel on the [https://en.wikipedia.org/wiki/Freenode FreeNode IRC network] to facilitate discussions and provide support to members of their community.&lt;br /&gt;
&lt;br /&gt;
=== Registering with FreeNode ===&lt;br /&gt;
&lt;br /&gt;
The FreeNode IRC network allows you to register your nickname and associate it with your email address. This is done by using the following commands:&lt;br /&gt;
&lt;br /&gt;
  /msg nickserv REGISTER &amp;lt;password&amp;gt; &amp;lt;email&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should receive a message informing you that you need to check your email account and obtain instructions to verify yourself.&lt;br /&gt;
&lt;br /&gt;
To make sure that your email address isnâ€™t revealed to other users, use the following command to ensure that it is hidden.&lt;br /&gt;
&lt;br /&gt;
  /msg NickServ SET HIDEMAIL ON&lt;br /&gt;
&lt;br /&gt;
You can verify your information with the NickServ by using:&lt;br /&gt;
&lt;br /&gt;
  /msg nickserv info&lt;br /&gt;
&lt;br /&gt;
== Persistent CLI Client ==&lt;br /&gt;
&lt;br /&gt;
This section is a guide to setting up a command line based IRC client on a persistently running machine so that it stays connected within a channel even when you are not connected to the machine via SSH. This results in the ability to reconnect and view the messages in the channel that occurred even when you were not connected.&lt;br /&gt;
&lt;br /&gt;
These instructions assume you are using an Ubuntu machine, and will be using the [https://irssi.org/ irssi] client.&lt;br /&gt;
&lt;br /&gt;
=== Client Machine ===&lt;br /&gt;
&lt;br /&gt;
You can setup a system at home and configure your home network device(s) to make that machine available via the internet, or alternatively gain shell access to a server on the internet. There are services that provide free or paid shell access, with features and support for IRC that varies. Some of these services even provide support for [https://en.wikipedia.org/wiki/IRC_bot IRC bots]. Alternatively you can pay for a [https://en.wikipedia.org/wiki/Virtual_private_server Virtual Private Server (VPS)] for as low as $5 a month through services such as [digitalocean.com DigitalOcean], thus providing you with an entire UNIX-like server environment that you can use as you wish.&lt;br /&gt;
&lt;br /&gt;
=== Install Client ===&lt;br /&gt;
&lt;br /&gt;
Install the irssi client using the following command:&lt;br /&gt;
&lt;br /&gt;
  apt-get install irssi&lt;br /&gt;
&lt;br /&gt;
After itâ€™s done installing, simply run the program&lt;br /&gt;
&lt;br /&gt;
  irssi&lt;br /&gt;
&lt;br /&gt;
=== Configure ===&lt;br /&gt;
&lt;br /&gt;
There is a configuration file in ~/.irssi/config that you can inspect, but you can use commands from within the program to configure IRSSI to automatically perform when you first open the program. &lt;br /&gt;
&lt;br /&gt;
The following commands will configure IRSSI to connect to the Freenode network with an SSL connection, with automatic joining of the #sudoroom channel.&lt;br /&gt;
&lt;br /&gt;
  /network add Freenode&lt;br /&gt;
  /server add -auto -ssl -ssl_verify -ssl_capath /etc/ssl/certs -network Freenode irc.freenode.net 7000&lt;br /&gt;
  /channel add -auto #sudoroom Freenode&lt;br /&gt;
  /save&lt;br /&gt;
&lt;br /&gt;
After youâ€™ve successfully registered your FreeNode nick name, you can run this command to configure IRSSI to login automatically after connecting to FreeNode.&lt;br /&gt;
&lt;br /&gt;
  /network add -autosendcmd &amp;quot;/msg nickserv identify &amp;lt;password&amp;gt; ;wait 2000&amp;quot; Freenode&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
&lt;br /&gt;
irssi support separate &amp;quot;windows&amp;quot; for the different channels you are connected to, or for the different people you are chatting with. If for some reason you do not see information on the screen for a command youâ€™ve run, it may be displayed in another window.&lt;br /&gt;
&lt;br /&gt;
An Ubuntu terminal can use the ALT key combined with a number key (e.g. ALT+1, ALT+2, ALT+3, etc) to switch between the different displays in IRSSI. This will not work via SSH however, so you will need to use the /window command instead.&lt;br /&gt;
&lt;br /&gt;
  /WINDOW NEW                    - Create new split window&lt;br /&gt;
  /WINDOW NEW HIDE               - Create new hidden window&lt;br /&gt;
  /WINDOW CLOSE                  - Close split or hidden window&lt;br /&gt;
  &lt;br /&gt;
  /WINDOW HIDE [&amp;lt;number&amp;gt;|&amp;lt;name&amp;gt;] - Make the split window hidden window&lt;br /&gt;
  /WINDOW SHOW &amp;lt;number&amp;gt;|&amp;lt;name&amp;gt;   - Make the hidden window a split window&lt;br /&gt;
  &lt;br /&gt;
  /WINDOW SHRINK [&amp;lt;lines&amp;gt;]       - Shrink the split window&lt;br /&gt;
  /WINDOW GROW [&amp;lt;lines&amp;gt;]         - Grow the split window&lt;br /&gt;
  /WINDOW BALANCE                - Balance the sizes of all split windows&lt;br /&gt;
&lt;br /&gt;
=== Managing Process ===&lt;br /&gt;
&lt;br /&gt;
You can use [GNU screen](https://en.wikipedia.org/wiki/GNU_Screen) or [tmux](https://en.wikipedia.org/wiki/Tmux) to maintain a terminal session that will persist even after you disconnect from the SSH session on your client machine.&lt;br /&gt;
&lt;br /&gt;
For example, you can run 'screen' to start a screen session. Once the session is started, run any program you wish. To disconnect from the session press CTRL-A, followed by D key. You can then safely disconnect from your SSH session. When you return, use `screen -r` to reconnect.&lt;br /&gt;
&lt;br /&gt;
See [http://carina.org.uk/screenirssi.shtml How to use screen and irssi] and [https://michael.lustfield.net/linux/irssi-using-screen-and-ssh IRSSI Using Screen and SSH]&lt;/div&gt;</summary>
		<author><name>Redconfetti</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=IRC&amp;diff=10243</id>
		<title>IRC</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=IRC&amp;diff=10243"/>
		<updated>2016-07-06T03:50:15Z</updated>

		<summary type="html">&lt;p&gt;Redconfetti: /* Client Machine */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;NOTE: a lot of people think that you can get on IRC and talk to people right away.  That only works if people are in the channel you want at that very moment, and paying attention to that screen on their computer.&lt;br /&gt;
&lt;br /&gt;
The reality is that most conversations in IRC happen over hours or days, so the only way to fully experience a channel such as #sudoroom is to find a way to stay logged into IRC continuously.  If you have a desktop computer that stays powered on and connected to the internet, this is easy.  Otherwise, you need to connect to a computer that stays on (such as a server) and leave an IRC session running there, using &amp;quot;screen&amp;quot; or &amp;quot;tmux&amp;quot; as described below.&lt;br /&gt;
&lt;br /&gt;
If you log into IRC and say Hello and nobody gets back you to you for an hour, that is totally normal.  If you log out five minutes after asking a question, people will make fun of you an hour later when they look at their IRC sessions.&lt;br /&gt;
&lt;br /&gt;
Internet Relay Chat (IRC) is an instant messaging service that has been used on the internet since the early 1990s. IRC is made possible by the [https://en.wikipedia.org/wiki/Internet_Relay_Chat Internet Relay Chat Protocol (IRCP)], an application layer protocol. The chat process works on a client/server networking model. IRC clients are computer programs that a user can install on their system. These clients communicate with chat servers to transfer messages to other clients. IRC is mainly designed for group communication in discussion forums, called channels, but also allows one-on-one communication via private messages as well as chat and data transfer, including file sharing.&lt;br /&gt;
&lt;br /&gt;
Many [https://en.wikipedia.org/wiki/Comparison_of_instant_messaging_protocols other instant messaging services] exist, however many services are proprietary and/or rely on a centralized platform. This does not appeal to organizations that wish to establish a channel of communication that can be adopted by users without fear of unwanted regulations by the service/platform provider. Although open source protocols such as [https://en.wikipedia.org/wiki/XMPP XMPP (formerly Jabber)] exist, IRC continues to be used because it is lightweight and stable.&lt;br /&gt;
&lt;br /&gt;
IRC consists of channels. Each channel is like a chat room, and is represented by a name that begins with '#' followed by a string that represents the primary topic of the channel. Examples:  #html, #css, #javascript, #go-lang.&lt;br /&gt;
&lt;br /&gt;
== Recommended Clients ==&lt;br /&gt;
&lt;br /&gt;
There are many various IRC clients available for many platforms.&lt;br /&gt;
&lt;br /&gt;
=== Graphical Clients ===&lt;br /&gt;
&lt;br /&gt;
* Cross-platform&lt;br /&gt;
** [https://www.pidgin.im/download/ Pidgin]&lt;br /&gt;
* Mac OS X&lt;br /&gt;
** [https://adium.im/ Adium]&lt;br /&gt;
&lt;br /&gt;
=== Command Line Interface Clients ===&lt;br /&gt;
&lt;br /&gt;
These clients are intended to be used from the command line interface (CLI), also known as the &amp;quot;terminal&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* [https://irssi.org/ irssi]&lt;br /&gt;
&lt;br /&gt;
== Basics ==&lt;br /&gt;
&lt;br /&gt;
For those that are new to IRC, itâ€™s a good idea to become familiar with the [http://www.ircbeginner.com/ircinfo/ircc-commands.html common commands] that IRC programs support. Here are a few:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Command !! Example !! Description&lt;br /&gt;
|-&lt;br /&gt;
| /join #channel_name || /join #sudoroom ||Join a channel&lt;br /&gt;
|-&lt;br /&gt;
| /me &amp;lt;action&amp;gt; || /me waves hello || Announces some action&lt;br /&gt;
|-&lt;br /&gt;
| /msg &amp;lt;nickname&amp;gt; &amp;lt;message&amp;gt; || /msg juul Hey! I need some help  || Send a direct message to another user&lt;br /&gt;
|-&lt;br /&gt;
| /ignore &amp;lt;nickname&amp;gt; || /ignore annoyingperson || Block someone that is harassing you&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Although the above commands are likely to be supported by all IRC client programs, some only apply to specific clients. The following are supported by [https://irssi.org/ irssi]:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Command !! Example !! Description&lt;br /&gt;
|-&lt;br /&gt;
| /help || /help || View documentation on supported commands&lt;br /&gt;
|-&lt;br /&gt;
| /help &amp;lt;command&amp;gt; || /help connect || View documentation on a specific supported command&lt;br /&gt;
|-&lt;br /&gt;
| /connect &amp;lt;server address&amp;gt; &amp;lt;port&amp;gt; || /connect irc.freenode.net 8001 || Connect to an IRC server&lt;br /&gt;
|-&lt;br /&gt;
| /set nick &amp;lt;nick&amp;gt; || /set nick someGuy2015 || Register your nickname with the IRC server/network&lt;br /&gt;
|-&lt;br /&gt;
| /set real_name &amp;lt;real name&amp;gt; || /set nick Bill Murray || Register your real name within the IRC server/network&lt;br /&gt;
|-&lt;br /&gt;
| /quit || /quit || Quits IRC program&lt;br /&gt;
|-&lt;br /&gt;
| /exit || /exit || Quits IRC program&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
See [https://irssi.org/documentation/ IRSSI Documentation] for more commands.&lt;br /&gt;
&lt;br /&gt;
== FreeNode ==&lt;br /&gt;
&lt;br /&gt;
Many programming/hacking communities establish a channel on the [https://en.wikipedia.org/wiki/Freenode FreeNode IRC network] to facilitate discussions and provide support to members of their community.&lt;br /&gt;
&lt;br /&gt;
=== Registering with FreeNode ===&lt;br /&gt;
&lt;br /&gt;
The FreeNode IRC network allows you to register your nickname and associate it with your email address. This is done by using the following commands:&lt;br /&gt;
&lt;br /&gt;
  /msg nickserv REGISTER &amp;lt;password&amp;gt; &amp;lt;email&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should receive a message informing you that you need to check your email account and obtain instructions to verify yourself.&lt;br /&gt;
&lt;br /&gt;
To make sure that your email address isnâ€™t revealed to other users, use the following command to ensure that it is hidden.&lt;br /&gt;
&lt;br /&gt;
  /msg NickServ SET HIDEMAIL ON&lt;br /&gt;
&lt;br /&gt;
You can verify your information with the NickServ by using:&lt;br /&gt;
&lt;br /&gt;
  /msg nickserv info&lt;br /&gt;
&lt;br /&gt;
== Persistent CLI Client ==&lt;br /&gt;
&lt;br /&gt;
This section is a guide to setting up a command line based IRC client on a persistently running machine so that it stays connected within a channel even when you are not connected to the machine via SSH. This results in the ability to reconnect and view the messages in the channel that occurred even when you were not connected.&lt;br /&gt;
&lt;br /&gt;
These instructions assume you are using an Ubuntu machine, and will be using the [https://irssi.org/ irssi] client.&lt;br /&gt;
&lt;br /&gt;
=== Client Machine ===&lt;br /&gt;
&lt;br /&gt;
You can setup a system at home and configure your home network device(s) to make that machine available via the internet, or alternatively gain shell access to a server on the internet. There are services that provide free or paid shell access, with features and support for IRC that varies. Some of these services even provide support for [https://en.wikipedia.org/wiki/IRC_bot IRC bots]. Alternatively you can pay for a [https://en.wikipedia.org/wiki/Virtual_private_server Virtual Private Server (VPS)] for as low as $5 a month through services such as [digitalocean.com DigitalOcean], thus providing you with an entire UNIX-like server environment that you can use as you wish.&lt;br /&gt;
&lt;br /&gt;
=== Install Client ===&lt;br /&gt;
&lt;br /&gt;
Install the irssi client using the following command:&lt;br /&gt;
&lt;br /&gt;
  apt-get install irssi&lt;br /&gt;
&lt;br /&gt;
After itâ€™s done installing, simply run the program&lt;br /&gt;
&lt;br /&gt;
  irssi&lt;br /&gt;
&lt;br /&gt;
=== Configure ===&lt;br /&gt;
&lt;br /&gt;
There is a configuration file in ~/.irssi/config that you can inspect, but you can use commands from within the program to configure IRSSI to automatically perform when you first open the program. &lt;br /&gt;
&lt;br /&gt;
The following commands will configure IRSSI to connect to the Freenode network with an SSL connection, with automatic joining of the #sudoroom channel.&lt;br /&gt;
&lt;br /&gt;
  /network add Freenode&lt;br /&gt;
  /server add -auto -ssl -ssl_verify -ssl_capath /etc/ssl/certs -network Freenode irc.freenode.net 7000&lt;br /&gt;
  /channel add -auto #sudoroom Freenode&lt;br /&gt;
  /save&lt;br /&gt;
&lt;br /&gt;
After youâ€™ve successfully registered your FreeNode nick name, you can run this command to configure IRSSI to login automatically after connecting to FreeNode.&lt;br /&gt;
&lt;br /&gt;
  /network add -autosendcmd &amp;quot;/msg nickserv identify &amp;lt;password&amp;gt; ;wait 2000&amp;quot; Freenode&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
&lt;br /&gt;
irssi support separate &amp;quot;windows&amp;quot; for the different channels you are connected to, or for the different people you are chatting with. If for some reason you do not see information on the screen for a command youâ€™ve run, it may be displayed in another window.&lt;br /&gt;
&lt;br /&gt;
An Ubuntu terminal can use the ALT key combined with a number key (e.g. ALT+1, ALT+2, ALT+3, etc) to switch between the different displays in IRSSI. This will not work via SSH however, so you will need to use the /window command instead.&lt;br /&gt;
&lt;br /&gt;
  /WINDOW NEW                    - Create new split window&lt;br /&gt;
  /WINDOW NEW HIDE               - Create new hidden window&lt;br /&gt;
  /WINDOW CLOSE                  - Close split or hidden window&lt;br /&gt;
  &lt;br /&gt;
  /WINDOW HIDE [&amp;lt;number&amp;gt;|&amp;lt;name&amp;gt;] - Make the split window hidden window&lt;br /&gt;
  /WINDOW SHOW &amp;lt;number&amp;gt;|&amp;lt;name&amp;gt;   - Make the hidden window a split window&lt;br /&gt;
  &lt;br /&gt;
  /WINDOW SHRINK [&amp;lt;lines&amp;gt;]       - Shrink the split window&lt;br /&gt;
  /WINDOW GROW [&amp;lt;lines&amp;gt;]         - Grow the split window&lt;br /&gt;
  /WINDOW BALANCE                - Balance the sizes of all split windows&lt;br /&gt;
&lt;br /&gt;
=== Managing Process ===&lt;br /&gt;
&lt;br /&gt;
Use 'screen' command on the VPS to &lt;br /&gt;
&lt;br /&gt;
CTRL-A, then D - disconnect from the screen instance, and then use `screen -r`.&lt;br /&gt;
&lt;br /&gt;
tmux (terminal multiplexer) is another option&lt;br /&gt;
&lt;br /&gt;
See [http://carina.org.uk/screenirssi.shtml How to use screen and irssi] and [https://michael.lustfield.net/linux/irssi-using-screen-and-ssh IRSSI Using Screen and SSH]&lt;/div&gt;</summary>
		<author><name>Redconfetti</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Technical_Overview&amp;diff=10208</id>
		<title>Mesh/Technical Overview</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Technical_Overview&amp;diff=10208"/>
		<updated>2016-06-01T04:04:40Z</updated>

		<summary type="html">&lt;p&gt;Redconfetti: /* Detailed Documentation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[File:Sudomesh home and extender node illustration extra-simplified.png|thumb|Illustration showing how a sudomesh home node can connect to a window-mounted extender node. The device with two antennas is the home node and the device on the outside of the window is an extender node.]]&lt;br /&gt;
&lt;br /&gt;
[[File:Sudomesh home and extender node illustration.png|thumb|Illustration showing a more complicated setup. Here the node operator has connected their personal computer, a small Raspberry Pi computer and two extender nodes: One on the outside of the window and one on the roof (not shown but a can be seen going up and out of the frame). This is definitely an advanced node operator.]]&lt;br /&gt;
&lt;br /&gt;
[[File:Sudomesh home node ethernet ports.png|thumb|A close-up of the wired network ports on the home node and their use.]]&lt;br /&gt;
&lt;br /&gt;
== Home and extender nodes ==&lt;br /&gt;
&lt;br /&gt;
''Note: You can also read the [[home node|non-technical explanation of home nodes and extender nodes]].''&lt;br /&gt;
&lt;br /&gt;
Our mesh has two types of nodes: Home nodes and extender nodes.&lt;br /&gt;
&lt;br /&gt;
The home nodes run the full sudowrt firmware and on its own a bunch of home nodes will make up a fine mesh network. The home node is a normal five-ethernet-port indoor wifi router. An extender node runs a minimal firmware and does nothing on its own. Instead, the extender node basically acts as extra radios when plugged in to a home node. The node operator can put a home node in e.g. their living room and if they later decide they want a high speed directional link to a neighbour then they can put e.g. a Nanobridge M5 running the extender node firmware on their roof and connect it via ethernet to the home node. Or they could put a Nanostation M2 pointed out their window and extend the signal further out into the street or to nearby neighbours. Each extender node extends all three networks (explained in the next section).&lt;br /&gt;
&lt;br /&gt;
For home nodes we are currently only officially supporting the [http://www.tp-link.us/products/details/cat-9_TL-WDR3600.html TP-Link TL-WDR3600]. We are not planning to support anything else for the time being, though if you have a good reason please let us know. For extender nodes we are currently supporting the Ubiquiti Nanobridge M series and the Ubiquiti Nanostation M series.&lt;br /&gt;
&lt;br /&gt;
The mesh is made up mostly of wifi routers using Atheros chipsets and running [https://github.com/sudomesh/sudowrt-firmware our own firmware] based on [http://openwrt.org/ OpenWRT], [http://www.pps.univ-paris-diderot.fr/~jch/software/babel/ Babel] and wlan slovenja's [https://github.com/sudomesh/tunneldigger tunneldigger]. &lt;br /&gt;
&lt;br /&gt;
Node-owners can choose to connect the nodes to their existing internet connection using ethernet. If they have Internet access, they can share a portion of it with the mesh. The amount of bandwidth shared is limited with 'tc'. It is chosen at node-configuration time and can be changed using the simple built-in web admin interface.&lt;br /&gt;
&lt;br /&gt;
== The three wifi networks and IP assignment ==&lt;br /&gt;
&lt;br /&gt;
The nodes each run three wifi networks (three SSIDs on the same physical wifi interfaces):&lt;br /&gt;
&lt;br /&gt;
* The Open network with SSID peoplesopen.net is an open access point. Most people will use the network by connecting to this.&lt;br /&gt;
* The Mesh network with SSID pplsopen.net-node2node is an ad-hoc network that the nodes use to mesh with each other using Babel&lt;br /&gt;
* A private wifi network that is named by the node owner (or a name is generated) and uses WPA2-PSK.&lt;br /&gt;
&lt;br /&gt;
All three of these networks are available on both 2.4 and 5 GHz on the home node. They are also all three available on any extender nodes plugged in to the home node. The three different networks are extended over a single ethernet cable using VLANs.&lt;br /&gt;
&lt;br /&gt;
If a node-owner is sharing internet, then the node will create a layer 2 (L2TP) tunnel to a VPN server on the Internet using tunneldigger. Babel (the mesh routing protocol) will connect over this tunnel to other nodes on the mesh, so the mesh can route traffic over the internet if no wifi path to another node is available (e.g. other nodes are physically too far away). When people connect to the peoplesopen.net access point and try to access the Internet, the traffic will flow through the VPuN, and the source IP of requests will appear to be the VPuN with the sudo mesh organization listed as the abuse contact. &lt;br /&gt;
&lt;br /&gt;
The nodes run DHCP servers and each have a /24 IPv4 subnet in the 100.64.0.0/10 range that is statically assigned by coordination between mesh groups and individuals hosting and administrating their own nodes on People's Open Network (currently only the sudo mesh organization).&lt;br /&gt;
&lt;br /&gt;
The private network does not limit bandwidth and provides access to both direct access to the Internet (if the node owner has hooked the node up to the Internet) and access to the mesh. Each node's private network runs on 172.30.0.0/16 and uses NAT between the private network and the mesh. It does not accept any new incoming connections from the mesh onto the 172.30.0.0/16 subnet.&lt;br /&gt;
&lt;br /&gt;
== Accessing Home Node via SSH ==&lt;br /&gt;
&lt;br /&gt;
Your home node is accessible via the [https://wiki.openwrt.org/doc/uci/dropbear Dropbear] Secure Shell (SSH) server on port 22.&lt;br /&gt;
&lt;br /&gt;
The 4 Ethernet ports that are provided with your router should be configured as follows:&lt;br /&gt;
&lt;br /&gt;
# Private network with DHCP of 172.30.0.x network addresses&lt;br /&gt;
# Public network with DHCP of 100.64.x.x network addresses (SudoMesh network)&lt;br /&gt;
# NotDHCP for Extender 1&lt;br /&gt;
# NotDHCP for Extender 2&lt;br /&gt;
&lt;br /&gt;
This may not apply to your router. For instance, the TP-Link N750 uses the opposite port assignment, with port 3 for private network, and port 4 for public SudoMesh/PeoplesOpen.net network.&lt;br /&gt;
&lt;br /&gt;
=== Network Settings ===&lt;br /&gt;
&lt;br /&gt;
=== Default Build Configuration ===&lt;br /&gt;
&lt;br /&gt;
The IP address of your home node is &amp;lt;tt&amp;gt;172.22.0.1&amp;lt;/tt&amp;gt; prior to configuration via the [https://github.com/sudomesh/makenode makenode] utility. You can SSH into the node as &amp;lt;tt&amp;gt;root&amp;lt;/tt&amp;gt; using the password 'meshtheplanet' after setting up your computer to use an IP on the 172.22.0.0/16 network.&lt;br /&gt;
&lt;br /&gt;
=== Post Makenode Configuration ===&lt;br /&gt;
&lt;br /&gt;
The private network configuration uses a 172.30.0.0/16 network with DHCP available for connected clients. You can configure your workstation to use the following manual network configuration so that you can SSH into your home node. &lt;br /&gt;
&lt;br /&gt;
* IP Address: 172.30.0.9 (or anything other than 172.30.0.1)&lt;br /&gt;
* Netmask: 255.255.255.0&lt;br /&gt;
* Gateway: 172.30.0.1&lt;br /&gt;
&lt;br /&gt;
See Network Configuration Guides: [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20Linux Linux] [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20MacOS%20X Mac]&lt;br /&gt;
&lt;br /&gt;
The IP of your home node on the private network is &amp;lt;tt&amp;gt;172.30.0.1&amp;lt;/tt&amp;gt;, with the root password you specified when running &amp;lt;tt&amp;gt;makenode&amp;lt;/tt&amp;gt; to configure it.&lt;br /&gt;
&lt;br /&gt;
  ssh root@172.30.0.1&lt;br /&gt;
  The authenticity of host '172.30.0.1 (172.30.0.1)' can't be established.&lt;br /&gt;
  RSA key fingerprint is b8:9d:4a:2f:1b:f5:e1:ae:b8:19:5b:70:92:8b:7f:34.&lt;br /&gt;
  Are you sure you want to continue connecting (yes/no)? &lt;br /&gt;
&lt;br /&gt;
After accepting the key by entering 'yes' and pressing ENTER, it will ask you for the root password. &lt;br /&gt;
&lt;br /&gt;
=== SSH Keys ===&lt;br /&gt;
&lt;br /&gt;
If you'd like to add your ssh key to the router (instead of using a root password), add it to the &amp;lt;tt&amp;gt;configs/authorized_keys&amp;lt;/tt&amp;gt; file. You'll see that there are 3 other keys there for our developers. You can remove them if you'd like, but they're currently the only way we can provide remote support. During the alpha test phase we ask that you consider whether you are able to do diagnostics/debugging yourself before you remove them.&lt;br /&gt;
&lt;br /&gt;
== Node flashing and configuration ==&lt;br /&gt;
&lt;br /&gt;
One of our medium-term goals is to be able to sell nodes on our website and minimize the amount of work required to re-flash/configure the nodes and provide documentation for the user. To facilitate this, our current process for new nodes is:&lt;br /&gt;
&lt;br /&gt;
* A new node is flashed either automatically (using e.g. [https://github.com/sudomesh/ubiquiti-flasher ubiquiti-flasher] or [https://github.com/sudomesh/merakiflasher merakiflasher]) or manually with your own tools and the [https://github.com/sudomesh/sudowrt-firmware sudowrt] firmware.&lt;br /&gt;
* The node is then configured by a sudo mesh volunteer using our [https://github.com/sudomesh/makenode makenode] software.&lt;br /&gt;
* makenode generates SSH keys, SSH root password, web admin password and private wifi password, then it configures the node, saves the info in the [https://github.com/sudomesh/node-database node database] and shuts down the node.&lt;br /&gt;
* makenode then automatically [https://github.com/sudomesh/ql570 prints a sticker] containing some basic info including wifi and web admin passwords.&lt;br /&gt;
* The sudo mesh volunteer attaches the sticker to the nodes power supply and puts the node back in the box with a set of instructions for how to install and use the node.&lt;br /&gt;
* The node is shipped to the new node owner!&lt;br /&gt;
&lt;br /&gt;
== Node management ==&lt;br /&gt;
&lt;br /&gt;
All nodes set up by sudo mesh automatically allow root access using an SSH key held by a few trusted sudo mesh organizers. This is to allow us to update the firmware and troubleshoot network issues. We inform node-owners of this fact and tell them how to prevent sudo mesh from accessing their nodes, but also indicate that they should be ready to manage their own node if they choose to do this.&lt;br /&gt;
&lt;br /&gt;
We don't yet have a solution for node monitoring but we're expecting to use the new version of wlan slovenja's nodewatcher software.&lt;br /&gt;
&lt;br /&gt;
We don't yet have an automatic update solution in place, but we are looking at the software used by Gluon. The Gluon update system is centralized but in the long term we would like to have a decentralized system that works something like this:&lt;br /&gt;
&lt;br /&gt;
* Any number of node-updater servers announce themselves on the mesh and whether or not an update is available.&lt;br /&gt;
* The nodes run a future version of mdnssd-min as a daemon that keeps a currently list of node-updaters.&lt;br /&gt;
* Once every N hours +/- a random factor, if any node-updaters have updates available, all nodes connect to a randomly chosen node-updater and request an update.&lt;br /&gt;
* The node-updaters send the nodes an ipk file with the update and the nodes check the signature and install it if it's signed by a trusted authority.&lt;br /&gt;
&lt;br /&gt;
==Detailed Documentation==&lt;br /&gt;
*[[Mesh/Tracking]] - Problems and solutions related to tracking, logging and anonymity&lt;br /&gt;
*[[Mesh/WalkThrough]] - Easy how-to for setting up OpenWRT&lt;br /&gt;
**[[Mesh/Flashing Extender Antennas]] - How-to for Ubiquiti routers&lt;br /&gt;
**[[Mesh/OpenWRT]] - Experiences with the OpenWRT router firmware&lt;br /&gt;
*[[Mesh/Firmware]] - Everything related to our firmware&lt;br /&gt;
**[[Mesh/Firmware/Overview]] - High level view&lt;br /&gt;
**[[Mesh/Firmware/Flash]] - How to install the sudowrt firmware based on openwrt with supported hardware&lt;br /&gt;
**[[Mesh/Firmware/Splash page]] - Splash page / Captive Portal&lt;br /&gt;
**[[Mesh/Firmware/Bandwidth shaping]] - QoS / Bandwidth shaping&lt;br /&gt;
**[[Mesh/Firmware/Zeroconf]] - Issues related to mDNS and DNS-SD&lt;br /&gt;
**[[Mesh/Firmware/MTU_issues]] - MTU issues&lt;br /&gt;
**[[Mesh/Firmware/Web Admin Development]] - Web admin development&lt;br /&gt;
*[[Mesh/Network topology]] - High-level explanation of the mesh network structure&lt;br /&gt;
*[[Mesh/Specs]] - Specs sheet on different access points&lt;br /&gt;
*[[Mesh/Frequencies]] - Information on different frequencies.&lt;br /&gt;
*[[Mesh/Software tools]] - List of useful mesh troubleshooting tools&lt;br /&gt;
*[[Mesh/Terms]] - Hidden Node, Fresnal zone, and other jargons&lt;br /&gt;
*[[Mesh/Power]] - Stuff about power usage, batteries and solar power.&lt;br /&gt;
*[[Mesh/Monitoring]] - notes about how to monitor systems&lt;br /&gt;
*[[Mesh/Spectrum]] - Different forms of spectral analysis&lt;br /&gt;
*[[Mesh/Hardware support]] - Officially and unofficially supported hardware / routers&lt;br /&gt;
*[[Mesh/Relay setup]] - Setting up a relay node&lt;br /&gt;
*[[Mesh/Exit setup]] - Setting up an exit node&lt;br /&gt;
*[[Mesh/Spectrum mapping]] - The setup we use for mapping local spectrum and wifi usage &lt;br /&gt;
**[[Mesh/Spectrum mapping/XO-1 Laptop]] - How to configure an XO-1 laptop for use with our spectrum mapping setup&lt;br /&gt;
* [[Mesh/Install]] - physical installation notes/stories&lt;br /&gt;
* [[Mesh/Diagrams]] - technical diagrams to support new outreach materials&lt;/div&gt;</summary>
		<author><name>Redconfetti</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Sudoroom&amp;diff=10180</id>
		<title>Sudoroom</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Sudoroom&amp;diff=10180"/>
		<updated>2016-05-15T04:54:55Z</updated>

		<summary type="html">&lt;p&gt;Redconfetti: /* Upcoming Events */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
[[File:SudoMesh-2.jpg|thumb|SudoMesh over Oakland]]&lt;br /&gt;
[[File:SudoMesh Node.png|frameless|right|300px]]&lt;br /&gt;
[[File:Graph theory lesson.JPG|frameless|right|300px]]&lt;br /&gt;
[[File:Cyberwizard Institute Version 2 Flyer.png|frameless|right|300px]]&lt;br /&gt;
[[File:Sudo_room_remix_raster.png|frameless|right|300px]]&lt;br /&gt;
[[File:Sudoroom people.png|human beings visit SudoRoom along with small animals|right|frameless|300px]]&lt;br /&gt;
[[File:Sudo-intro-comic.jpg|frameless|right|300px]]&lt;br /&gt;
&lt;br /&gt;
*We're '''Sudo Room''', a ''free'' hackerspace located at '''[[Directions|4799 Shattuck]]''' in north Oakland, CA!&lt;br /&gt;
*We're into '''technology''' and where it intersects with '''social justice''', '''sustainability''', '''education''' and '''solidarity'''. &lt;br /&gt;
*We strive to be an '''open''', '''transparent''', '''horizontal''' and '''welcoming''' community where all are supported and free to ''learn'', ''create'', ''gather'', ''collaborate'', ''work'', ''play'' and ''more''! .&lt;br /&gt;
*We've got tons of '''tools''' for you to use  from a '''3D printer''' to '''public computer terminals''',  [[Math]] projects, a '''big huge library''' and '''all kinds of gadgets'''!  &lt;br /&gt;
*We are exclusively '''volunteer-run''' and supported through '''[[Gittip|donations]]'''!! Learn more about [[Membership|membership]].&lt;br /&gt;
*Our slogan is: '''''HACK THE PLANET!'''''&lt;br /&gt;
* Check out [[Projects|some of the things we are working on]]!&lt;br /&gt;
* Way more details: [[Welcome|Welcome]] &lt;br /&gt;
&lt;br /&gt;
== '''Upcoming Events''' ==&lt;br /&gt;
:''See also: [https://sudoroom.org/calendar/ Sudo Room Calendar] and [https://omnicommons.org/calendar/ Omni Commons Global Calendar]''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;| Weekly Events&lt;br /&gt;
|-&lt;br /&gt;
| '''[[Fermentation]] Mondays&lt;br /&gt;
(5-7p)'''&lt;br /&gt;
|  collaboration &amp;amp; meet up - come learn Kombucha &amp;amp; other fermentations!&lt;br /&gt;
or help us build temperature, humidity and PH monitoring using Raspberry PI to record our brews.&lt;br /&gt;
|-&lt;br /&gt;
| '''[[HardwareHackNight]] Tuesdays&lt;br /&gt;
(6-11p)'''&lt;br /&gt;
| [[image:SudoRoom_hardware_hacknight.jpg|thumb|120px|A large animal will lead you through real life stuff, you digital wimps ;)]]&lt;br /&gt;
Come hack on hardware. build stuff! take apart small robotic animals, electronics &amp;amp; make things&lt;br /&gt;
|-&lt;br /&gt;
| '''[[Meetings|Sudoroom Party / Meetings]]&lt;br /&gt;
(Wednesdays 7p)'''&lt;br /&gt;
| Every 2nd Wednesday is the Official meeting of organization, bureaucracy and fun. All other Wednesdays are an informal [https://sudoroom.org/events/sudoroom-weekly-meeting-2016-05-25/ Party]&lt;br /&gt;
&lt;br /&gt;
We keep our agenda on an [https://pad.riseup.net/ etherpad] and then [[Meetings#Meeting_Notes_Archive|archive the meeting minutes]]. We're a California non-profit. See our [[Articles of Association]].&lt;br /&gt;
|-&lt;br /&gt;
| '''[https://sudoroom.org/wiki/Javascript Javascript study group]&lt;br /&gt;
(Thursdays 6:30p)'''&lt;br /&gt;
| [[File:JavasScript Forest at SudoRoom.png|thumb|Sudoroom Javascript forest]] Learn, chat and hack on node.js, frontend, or whatever! &lt;br /&gt;
Oakland is [http://oaklandwiki.org/Javascript javascript city].&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Every other week&lt;br /&gt;
|-&lt;br /&gt;
| '''[http://oaklandwiki.org/ Oakland Wiki]&lt;br /&gt;
(Every other Thursday 7-8:30p)'''&lt;br /&gt;
| Come edit Oakland's only open, publicly editable wiki! Oakland Wiki has been used as a platform for [http://oaklandwiki.org/Domain_Awareness_Center citizen journalism], sharing local [http://oaklandwiki.org/Resources resources] and [http://oaklandwiki.org/Oakland_Chicano_Moratorium history], and whatever else you can [http://oaklandwiki.org/tags/fun dream up].&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Monthly Events&lt;br /&gt;
|-&lt;br /&gt;
| '''[[Mesh]]&lt;br /&gt;
(Last Tuesday of the month 7:30-10p)'''&lt;br /&gt;
| [[image:510NetworkDishes.jpg|thumb|120px|the antenna that beamed wireless packets across Lake Merritt]]&lt;br /&gt;
A group [[Mesh|working]] on bringing [http://peoplesopen.net/ free wifi] to the East Bay. We hack every week but Last Tuesday's is our open meeting for new folk!&lt;br /&gt;
|-&lt;br /&gt;
| '''[[Cryptoparty]]&lt;br /&gt;
(Third Sundays 2-5p)'''&lt;br /&gt;
| Learn &amp;amp; talk about encryption &amp;amp; cybersecurity. Learn how to use GPG, OTR, Tor, Tails, and other anti-surveillance technologies. (currently on hiatus but coming back soon)&lt;br /&gt;
|}&lt;br /&gt;
Categories of Wiki pages: {{Special:Categories}}&lt;/div&gt;</summary>
		<author><name>Redconfetti</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Meetings&amp;diff=10179</id>
		<title>Meetings</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Meetings&amp;diff=10179"/>
		<updated>2016-05-15T04:50:41Z</updated>

		<summary type="html">&lt;p&gt;Redconfetti: added update regarding 2nd wednesday&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Sudo Room Meeting April 17, 2013.jpg|thumb|right|April 2013 Meeting]]&lt;br /&gt;
Sudoroom's official meetings are every 2nd Wednesday of the month at 7pm, or sometimes as late as 7:30. They are bureaucratic, sometimes fun, and usually more functional than rumored. We try to handle conflicts respectfully.&lt;br /&gt;
&lt;br /&gt;
All other Wednesdays are [https://sudoroom.org/events/sudoroom-weekly-meeting-2016-05-25/ parties].&lt;br /&gt;
&lt;br /&gt;
== Etherpad ==&lt;br /&gt;
&lt;br /&gt;
We keep our agenda on an etherpad. The etherpad is projected on a big screen for everyone to see. Anyone who knows the URL can collaboratively edit it on their laptop. After the meeting, its contents are copied to our wiki - that's how we keep record. Then we clear it for the next meeting and people can add items throughout the week. Ideally someone posts a summary to the mailing list, but that doesn't always happen.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, in the past our etherpad has caught the attention of online troll dens who like to overwhelm it and make it unusable. For this reason, we don't post the address online. Sorry! '''These addresses''' had been used in the past, and '''are obsolete''':&lt;br /&gt;
* https://pad.riseup.net/p/sudoroom&lt;br /&gt;
* https://pad.riseup.net/p/sudoroommeeting&lt;br /&gt;
&lt;br /&gt;
== Archive == &lt;br /&gt;
&lt;br /&gt;
Each old meeting gets its own page, and we link to them here.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable collapsible&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot;| Past Meeting Notes&lt;br /&gt;
|-&lt;br /&gt;
! data-sort-type=&amp;quot;isoDate&amp;quot; | date&lt;br /&gt;
! class=&amp;quot;unsortable&amp;quot; | new&amp;lt;br /&amp;gt;member&amp;lt;br /&amp;gt;interviews&lt;br /&gt;
! class=&amp;quot;unsortable&amp;quot; | comments&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2016-04-20|2016-04-20]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2016-04-13|2016-04-13]]&lt;br /&gt;
| Abhiram&amp;lt;br /&amp;gt;Pete Forsyth&amp;lt;br /&amp;gt;Dirty Bill&amp;lt;br /&amp;gt;Chris&amp;lt;br /&amp;gt;Jamie&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2016-04-06|2016-04-06]]&lt;br /&gt;
| Jacob&amp;lt;br /&amp;gt;Jason&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2016-03-30&lt;br /&gt;
|rowspan=6 colspan=2 align=center|We totally flaked for the entire month of March.&lt;br /&gt;
|-&lt;br /&gt;
| 2016-03-23&lt;br /&gt;
|-&lt;br /&gt;
| 2016-03-23&lt;br /&gt;
|-&lt;br /&gt;
| 2016-03-16&lt;br /&gt;
|-&lt;br /&gt;
| 2016-03-09&lt;br /&gt;
|-&lt;br /&gt;
| 2016-03-02&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2016-02-24|2016-02-24]]&lt;br /&gt;
| ''(none)''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2016-02-17|2016-02-17]]&lt;br /&gt;
| bstack&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2016-02-10|2016-02-10]]&lt;br /&gt;
| ''(none)''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2016-02-03|2016-02-03]]&lt;br /&gt;
| ''(none)''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2016-01-27|2016-01-27]]&lt;br /&gt;
| Jay&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2016-01-20|2016-01-20]]&lt;br /&gt;
| ''(none)''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2016-01-13|2016-01-13]]&lt;br /&gt;
| &lt;br /&gt;
| cancelled-ish&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2016-01-06|2016-01-06]]&lt;br /&gt;
| nathan&amp;lt;br /&amp;gt;Nick&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-12-30|2015-12-30]]&lt;br /&gt;
| Charley&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2015-12-23&lt;br /&gt;
|&lt;br /&gt;
| no signs of having happened&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-12-16|2015-12-16]]&lt;br /&gt;
| Daisy&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-12-09|2015-12-09]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-12-02|2015-12-02]]&lt;br /&gt;
| Max&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-11-25|2015-11-25]]&lt;br /&gt;
|&lt;br /&gt;
| didn't really happen, blame thanksgiving&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-11-18|2015-11-18]]&lt;br /&gt;
| morgan&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-11-11|2015-11-11]]&lt;br /&gt;
| Kwaku&amp;lt;br /&amp;gt;Gracie&amp;lt;br /&amp;gt;Micolah&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-11-04|2015-11-04]]&lt;br /&gt;
| dane&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-10-28|2015-10-28]]&lt;br /&gt;
| Andrew&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2015-10-21|2015-10-21]]&lt;br /&gt;
| Merry&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2015-10-14|2015-10-14]]&lt;br /&gt;
| Alex&amp;lt;br /&amp;gt;Lef&amp;lt;br /&amp;gt;Mari&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2015-10-07|2015-10-07]]&lt;br /&gt;
| Tom&amp;lt;br /&amp;gt;Daron&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2015-09-30|2015-09-30]]&lt;br /&gt;
|&lt;br /&gt;
| Insufficient critical mass&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2015-09-23|2015-09-23]]&lt;br /&gt;
| Ari&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2015-09-16|2015-09-16]]&lt;br /&gt;
| david&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2015-09-09|2015-09-09]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2015-09-02|2015-09-02]]&lt;br /&gt;
| Benji&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2015-08-26|2015-08-26]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2015-08-19&lt;br /&gt;
|&lt;br /&gt;
| nobody showed up&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2015-08-12|2015-08-12]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2015-08-05|2015-08-05]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2015-07-29|2015-07-29]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-07-22|2015-07-22]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-07-15|2015-07-15]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-07-08|2015-07-08]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-07-01|2015-07-01]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-06-24|2015-06-24]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-06-17|2015-06-17]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-06-10|2015-06-10]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-06-03|2015-06-03]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-05-27|2015-05-27]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-05-20|2015-05-20]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-05-13|2015-05-13]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-05-06|2015-05-06]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-04-29|2015-04-29]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-04-22|2015-04-22]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-04-15|2015-04-15]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-04-08|2015-04-08]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-04-01|2015-04-01]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-03-25|2015-03-25]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-03-18|2015-03-18]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-03-11|2015-03-11]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-03-04|2015-03-04]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-02-25|2015-02-25]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-02-18|2015-02-18]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-02-11|2015-02-11]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-02-04|2015-02-04]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-01-28|2015-01-28]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-01-21|2015-01-21]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-01-14|2015-01-14]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-01-07|2015-01-07]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-12-31|2014-12-31]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-12-24|2014-12-24]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-12-17|2014-12-17]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-12-10|2014-12-10]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-12-03|2014-12-03]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-11-26|2014-11-26]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-11-19|2014-11-19]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-11-12|2014-11-12]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-11-05|2014-11-05]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-10-29|2014-10-29]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-10-27|2014-10-27]]&lt;br /&gt;
|&lt;br /&gt;
| Board of Directors Meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-10-22|2014-10-22]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-10-15|2014-10-15]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-10-08|2014-10-08]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-10-01|2014-10-01]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-09-24|2014-09-24]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-09-17|2014-09-17]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-09-10|2014-09-10]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-09-03|2014-09-03]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-08-27|2014-08-27]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-08-20|2014-08-20]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-08-13|2014-08-13]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-08-06|2014-08-06]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-07-30|2014-07-30]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-07-23|2014-07-23]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-07-16|2014-07-16]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-07-09|2014-07-09]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-07-02|2014-07-02]]&lt;br /&gt;
|&lt;br /&gt;
| First meeting in our new space @ 4799 Shattuck!&lt;br /&gt;
|-&lt;br /&gt;
| 2014-06-25&lt;br /&gt;
|&lt;br /&gt;
| big moving day, no meeting notes&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-06-18|2014-06-18]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-06-11|2014-06-11]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-06-04|2014-06-04]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2014-05-28|2014-05-28]]&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2014-05-21|2014-05-21]]&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2014-05-14|2014-05-14]]&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2014-05-07|2014-05-07]]&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2014-04-30|2014-04-30]]&lt;br /&gt;
|&lt;br /&gt;
| Joint mtg w/ [http://counterculturelabs.org/ CCL]&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2014-04-23|2014-04-23]]&lt;br /&gt;
|&lt;br /&gt;
| Joint mtg w/ [http://counterculturelabs.org/ CCL]&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2014-04-16|2014-04-16]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2014-04-09|2014-04-09]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2014-04-02|2014-04-02]]&lt;br /&gt;
|&lt;br /&gt;
| mostly reboot&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2014-03-26|2014-03-26]]&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2014-03-19|2014-03-19]]&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2014-03-12|2014-03-12]]&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2014-03-05|2014-03-05]]&lt;br /&gt;
|&lt;br /&gt;
| Special edition on reboot&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2014-02-26|2014-02-26]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2014-02-19|2014-02-19]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2014-02-12|2014-02-12]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2014-02-05|2014-02-05]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2014-01-29|2014-01-29]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2014-01-22|2014-01-22]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2014-01-15|2014-01-15]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2014-01-08|2014-01-08]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2014-01-01|2014-01-01]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-12-25|2013-12-25]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-12-18|2013-12-18]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-12-11|2013-12-11]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-12-04|2013-12-04]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-11-27|2013-11-27]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-11-20|2013-11-20]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-11-13|2013-11-13]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-11-06|2013-11-06]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-10-30|2013-10-30]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-10-23|2013-10-23]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-10-16|2013-10-16]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-10-02|2013-10-02]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-09-25|2013-09-25]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-09-18|2013-09-18]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-09-11|2013-09-11]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-09-04|2013-09-04]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-08-28|2013-08-28]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-08-21|2013-08-21]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-08-14|2013-08-14]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-08-07|2013-08-07]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-07-30|2013-07-30]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-07-24|2013-07-24]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-07-17|2013-07-17]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-07-10|2013-07-10]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-07-03|2013-07-03]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-06-26|2013-06-26]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-06-19|2013-06-19]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-06-12|2013-06-12]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-06-05|2013-06-05]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-05-29|2013-05-29]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-05-22|2013-05-22]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-05-15|2013-05-15]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-05-08|2013-05-08]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-05-01|2013-05-01]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-04-24|2013-04-24]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-04-17|2013-04-17]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-04-11|2013-04-11]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-04-03|2013-04-03]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-03-27|2013-03-27]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2013-03-20&lt;br /&gt;
|&lt;br /&gt;
| no notes?&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-03-13|2013-03-13]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-03-06|2013-03-06]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-02-27|2013-02-27]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-02-20|2013-02-20]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-02-13|2013-02-13]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-02-06|2013-02-06]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-01-30|2013-01-30]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-01-23|2013-01-23]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-01-16|2013-01-16]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-01-09|2013-01-09]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-01-02|2013-01-02]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/12-26-2012 Meetup|2012-12-26]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/12-19-2012 Meetup|2012-12-19]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/12-12-2012 Meetup|2012-12-12]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/12-05-2012 Meetup|2012-12-05]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/11-28-2012 Meetup|2012-11-28]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/11-21-2012 Meetup|2012-11-21]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/11-14-2012 Meetup|2012-11-14]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/11-7-2012 Meetup|2012-11-07]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/10-31-2012 Meetup|2012-10-31]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/10-24-2012 Meetup|2012-10-24]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/10-17-2012 Meetup|2012-10-17]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/10-10-2012 Meetup|2012-10-10]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/10-03-2012 Meetup|2012-10-03]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/09-26-2012 Meetup|2012-09-26]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/09-19-2012 Meetup|2012-09-19]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/09-12-2012 Meetup|2012-09-12]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/09-05-2012 Meetup|2012-09-05]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/08-29-2012 Meetup|2012-08-29]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/08-22-2012 Meetup|2012-08-22]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/08-13-2012 Meetup|2012-08-13]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/08-08-2012 Meetup|2012-08-08]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/08-01-2012 Meetup|2012-08-01]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/07-25-2012 Meetup|2012-07-25]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/07-18-2012 Meetup|2012-07-18]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/07-11-2012 Meetup|2012-07-11]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/07-04-2012 Meetup|2012-07-04]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/06-27-2012 Meetup|2012-06-27]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/06-20-2012 Meetup|2012-06-20]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/06-13-2012 Meetup|2012-06-13]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/06-06-2012 Meetup|2012-06-06]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/05-30-2012 Meetup|2012-05-30]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/05-23-2012 Meetup|2012-05-23]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/05-16-2012 Meetup|2012-05-16]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2012-05-09&lt;br /&gt;
|&lt;br /&gt;
| no notes?&lt;br /&gt;
|-&lt;br /&gt;
| 2012-05-02&lt;br /&gt;
|&lt;br /&gt;
| no notes?&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/04-25-2012 Meetup|2012-04-25]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2012-04-18&lt;br /&gt;
|&lt;br /&gt;
| no notes?&lt;br /&gt;
|-&lt;br /&gt;
| 2012-04-11&lt;br /&gt;
|&lt;br /&gt;
| no notes?&lt;br /&gt;
|-&lt;br /&gt;
| 2012-04-04&lt;br /&gt;
|&lt;br /&gt;
| no notes?&lt;br /&gt;
|-&lt;br /&gt;
| 2012-03-28&lt;br /&gt;
|&lt;br /&gt;
| no notes?&lt;br /&gt;
|-&lt;br /&gt;
| 2012-03-21&lt;br /&gt;
|&lt;br /&gt;
| no notes?&lt;br /&gt;
|-&lt;br /&gt;
| 2012-03-14&lt;br /&gt;
|&lt;br /&gt;
| no notes?&lt;br /&gt;
|-&lt;br /&gt;
| 2012-03-07&lt;br /&gt;
|&lt;br /&gt;
| no notes?&lt;br /&gt;
|-&lt;br /&gt;
| 2012-02-29&lt;br /&gt;
|&lt;br /&gt;
| no notes?&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/02-22-2012 Meetup|2012-02-22]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2012-02-15&lt;br /&gt;
|&lt;br /&gt;
| no notes?&lt;br /&gt;
|-&lt;br /&gt;
| 2012-02-08&lt;br /&gt;
|&lt;br /&gt;
| no notes?&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/02-01-2011 Meetup|2012-02-01]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/01-25-2011 Meetup|2012-01-25]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/01-18-2011 Meetup|2012-01-18]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/01-11-2011 Meetup|2012-01-11]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/01-04-2011 Meetup|2012-01-04]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/12-28-2011 Meetup|2011-12-28]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/12-21-2011 Meetup|2011-12-21]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/12-14-2011 Meetup|2011-12-14]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/12-07-2011 Meetup|2011-12-07]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/First Wed Meetup|2011-11-30]]&lt;br /&gt;
|&lt;br /&gt;
| @ Cafe Mediterraneum&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/Initial Meeting| Initial Meeting]]&lt;br /&gt;
|&lt;br /&gt;
| 2011-11-18, 12pm @ Actual Cafe&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:SudoRoom Organization]][[Category:Meetings]]&lt;/div&gt;</summary>
		<author><name>Redconfetti</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10178</id>
		<title>Mesh/Flashing extender nodes</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10178"/>
		<updated>2016-05-15T04:29:59Z</updated>

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

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

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

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

		<summary type="html">&lt;p&gt;Redconfetti: /* Configure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Internet Relay Chat (IRC) is an instant messaging service that has been used on the internet since the early 1990s. IRC is made possible by the [https://en.wikipedia.org/wiki/Internet_Relay_Chat Internet Relay Chat Protocol (IRCP)], an application layer protocol. The chat process works on a client/server networking model. IRC clients are computer programs that a user can install on their system. These clients communicate with chat servers to transfer messages to other clients. IRC is mainly designed for group communication in discussion forums, called channels, but also allows one-on-one communication via private messages as well as chat and data transfer, including file sharing.&lt;br /&gt;
&lt;br /&gt;
Many [https://en.wikipedia.org/wiki/Comparison_of_instant_messaging_protocols other instant messaging services] exist, however many services are proprietary and/or rely on a centralized platform. This does not appeal to organizations that wish to establish a channel of communication that can be adopted by users without fear of unwanted regulations by the service/platform provider. Although open source protocols such as [https://en.wikipedia.org/wiki/XMPP XMPP (formerly Jabber)] exist, IRC continues to be used because it is lightweight and stable.&lt;br /&gt;
&lt;br /&gt;
IRC consists of channels. Each channel is like a chat room, and is represented by a name that begins with '#' followed by a string that represents the primary topic of the channel. Examples:  #html, #css, #javascript, #go-lang.&lt;br /&gt;
&lt;br /&gt;
== Recommended Clients ==&lt;br /&gt;
&lt;br /&gt;
There are many various IRC clients available for many platforms.&lt;br /&gt;
&lt;br /&gt;
=== Graphical Clients ===&lt;br /&gt;
&lt;br /&gt;
* Cross-platform&lt;br /&gt;
** [https://www.pidgin.im/download/ Pidgin]&lt;br /&gt;
* Mac OS X&lt;br /&gt;
** [https://adium.im/ Adium]&lt;br /&gt;
&lt;br /&gt;
=== Command Line Interface Clients ===&lt;br /&gt;
&lt;br /&gt;
These clients are intended to be used from the command line interface (CLI), also known as the &amp;quot;terminal&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* [https://irssi.org/ irssi]&lt;br /&gt;
&lt;br /&gt;
== Basics ==&lt;br /&gt;
&lt;br /&gt;
For those that are new to IRC, itâ€™s a good idea to become familiar with the [http://www.ircbeginner.com/ircinfo/ircc-commands.html common commands] that IRC programs support. Here are a few:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Command !! Example !! Description&lt;br /&gt;
|-&lt;br /&gt;
| /join #channel_name || /join #sudoroom ||Join a channel&lt;br /&gt;
|-&lt;br /&gt;
| /me &amp;lt;action&amp;gt; || /me waves hello || Announces some action&lt;br /&gt;
|-&lt;br /&gt;
| /msg &amp;lt;nickname&amp;gt; &amp;lt;message&amp;gt; || /msg juul Hey! I need some help  || Send a direct message to another user&lt;br /&gt;
|-&lt;br /&gt;
| /ignore &amp;lt;nickname&amp;gt; || /ignore annoyingperson || Block someone that is harassing you&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Although the above commands are likely to be supported by all IRC client programs, some only apply to specific clients. The following are supported by [https://irssi.org/ irssi]:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Command !! Example !! Description&lt;br /&gt;
|-&lt;br /&gt;
| /help || /help || View documentation on supported commands&lt;br /&gt;
|-&lt;br /&gt;
| /help &amp;lt;command&amp;gt; || /help connect || View documentation on a specific supported command&lt;br /&gt;
|-&lt;br /&gt;
| /connect &amp;lt;server address&amp;gt; &amp;lt;port&amp;gt; || /connect irc.freenode.net 8001 || Connect to an IRC server&lt;br /&gt;
|-&lt;br /&gt;
| /set nick &amp;lt;nick&amp;gt; || /set nick someGuy2015 || Register your nickname with the IRC server/network&lt;br /&gt;
|-&lt;br /&gt;
| /set real_name &amp;lt;real name&amp;gt; || /set nick Bill Murray || Register your real name within the IRC server/network&lt;br /&gt;
|-&lt;br /&gt;
| /quit || /quit || Quits IRC program&lt;br /&gt;
|-&lt;br /&gt;
| /exit || /exit || Quits IRC program&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
See [https://irssi.org/documentation/ IRSSI Documentation] for more commands.&lt;br /&gt;
&lt;br /&gt;
== FreeNode ==&lt;br /&gt;
&lt;br /&gt;
Many programming/hacking communities establish a channel on the [https://en.wikipedia.org/wiki/Freenode FreeNode IRC network] to facilitate discussions and provide support to members of their community.&lt;br /&gt;
&lt;br /&gt;
=== Registering with FreeNode ===&lt;br /&gt;
&lt;br /&gt;
The FreeNode IRC network allows you to register your nickname and associate it with your email address. This is done by using the following commands:&lt;br /&gt;
&lt;br /&gt;
  /msg nickserv REGISTER &amp;lt;password&amp;gt; &amp;lt;email&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should receive a message informing you that you need to check your email account and obtain instructions to verify yourself.&lt;br /&gt;
&lt;br /&gt;
To make sure that your email address isnâ€™t revealed to other users, use the following command to ensure that it is hidden.&lt;br /&gt;
&lt;br /&gt;
  /msg NickServ SET HIDEMAIL ON&lt;br /&gt;
&lt;br /&gt;
You can verify your information with the NickServ by using:&lt;br /&gt;
&lt;br /&gt;
  /msg nickserv info&lt;br /&gt;
&lt;br /&gt;
== Persistent CLI Client ==&lt;br /&gt;
&lt;br /&gt;
This section is a guide to setting up a command line based IRC client on a persistently running machine so that it stays connected within a channel even when you are not connected to the machine via SSH. This results in the ability to reconnect and view the messages in the channel that occurred even when you were not connected.&lt;br /&gt;
&lt;br /&gt;
These instructions assume you are using an Ubuntu machine, and will be using the [https://irssi.org/ irssi] client.&lt;br /&gt;
&lt;br /&gt;
=== Client Machine ===&lt;br /&gt;
&lt;br /&gt;
You setup a system at home and configure your home network device(s) to make that machine available via the internet, or alternatively gain shell access to a server on the internet. There are services that provide free or paid shell access, with features and support for IRC that varies. Some of these services even provide support for [https://en.wikipedia.org/wiki/IRC_bot IRC bots]. Alternatively you can pay for a [https://en.wikipedia.org/wiki/Virtual_private_server Virtual Private Server (VPS)] for as low as $5 a month through services such as [digitalocean.com DigitalOcean], thus providing you with an entire UNIX-like server environment that you can use as you wish.&lt;br /&gt;
&lt;br /&gt;
=== Install Client ===&lt;br /&gt;
&lt;br /&gt;
Install the irssi client using the following command:&lt;br /&gt;
&lt;br /&gt;
  apt-get install irssi&lt;br /&gt;
&lt;br /&gt;
After itâ€™s done installing, simply run the program&lt;br /&gt;
&lt;br /&gt;
  irssi&lt;br /&gt;
&lt;br /&gt;
=== Configure ===&lt;br /&gt;
&lt;br /&gt;
There is a configuration file in ~/.irssi/config that you can inspect, but you can use commands from within the program to configure IRSSI to automatically perform when you first open the program. &lt;br /&gt;
&lt;br /&gt;
The following commands will configure IRSSI to connect to the Freenode network with an SSL connection, with automatic joining of the #sudoroom channel.&lt;br /&gt;
&lt;br /&gt;
  /network add Freenode&lt;br /&gt;
  /server add -auto -ssl -ssl_verify -ssl_capath /etc/ssl/certs -network Freenode irc.freenode.net 7000&lt;br /&gt;
  /channel add -auto #sudoroom Freenode&lt;br /&gt;
  /save&lt;br /&gt;
&lt;br /&gt;
After youâ€™ve successfully registered your FreeNode nick name, you can run this command to configure IRSSI to login automatically after connecting to FreeNode.&lt;br /&gt;
&lt;br /&gt;
  /network add -autosendcmd &amp;quot;/msg nickserv identify &amp;lt;password&amp;gt; ;wait 2000&amp;quot; Freenode&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
&lt;br /&gt;
irssi support separate &amp;quot;windows&amp;quot; for the different channels you are connected to, or for the different people you are chatting with. If for some reason you do not see information on the screen for a command youâ€™ve run, it may be displayed in another window.&lt;br /&gt;
&lt;br /&gt;
An Ubuntu terminal can use the ALT key combined with a number key (e.g. ALT+1, ALT+2, ALT+3, etc) to switch between the different displays in IRSSI. This will not work via SSH however, so you will need to use the /window command instead.&lt;br /&gt;
&lt;br /&gt;
  /WINDOW NEW                    - Create new split window&lt;br /&gt;
  /WINDOW NEW HIDE               - Create new hidden window&lt;br /&gt;
  /WINDOW CLOSE                  - Close split or hidden window&lt;br /&gt;
  &lt;br /&gt;
  /WINDOW HIDE [&amp;lt;number&amp;gt;|&amp;lt;name&amp;gt;] - Make the split window hidden window&lt;br /&gt;
  /WINDOW SHOW &amp;lt;number&amp;gt;|&amp;lt;name&amp;gt;   - Make the hidden window a split window&lt;br /&gt;
  &lt;br /&gt;
  /WINDOW SHRINK [&amp;lt;lines&amp;gt;]       - Shrink the split window&lt;br /&gt;
  /WINDOW GROW [&amp;lt;lines&amp;gt;]         - Grow the split window&lt;br /&gt;
  /WINDOW BALANCE                - Balance the sizes of all split windows&lt;br /&gt;
&lt;br /&gt;
=== Managing Process ===&lt;br /&gt;
&lt;br /&gt;
Use 'screen' command on the VPS to &lt;br /&gt;
&lt;br /&gt;
CTRL-A, then D - disconnect from the screen instance, and then use `screen -r`.&lt;br /&gt;
&lt;br /&gt;
tmux (terminal multiplexer) is another option&lt;br /&gt;
&lt;br /&gt;
See [http://carina.org.uk/screenirssi.shtml How to use screen and irssi] and [https://michael.lustfield.net/linux/irssi-using-screen-and-ssh IRSSI Using Screen and SSH]&lt;/div&gt;</summary>
		<author><name>Redconfetti</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh&amp;diff=10172</id>
		<title>Mesh</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh&amp;diff=10172"/>
		<updated>2016-05-14T21:10:57Z</updated>

		<summary type="html">&lt;p&gt;Redconfetti: /* Join Us */ added link to irc intro&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:SudoMesh Node.png|frameless|right|300px]]&lt;br /&gt;
&lt;br /&gt;
You can read about our progress on our [[Mesh/Blog|blog]]. We're in an alpha testing phase, and our monitoring results can be seen on [https://monitor.sudomesh.org/smokeping/smokeping.cgi?target=Mesh smokeping] or [https://monitor.sudomesh.org/cacti/graph.php?action=view&amp;amp;local_graph_id=217&amp;amp;rra_id=all cacti].&lt;br /&gt;
&lt;br /&gt;
Check out the Join Us section below for opportunities to help out! &lt;br /&gt;
&lt;br /&gt;
([[User:Maxb|Maxb]] December 22nd 2015) &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''We are an all-volunteer organization building the People's Open Network, a community-owned and operated non-profit internet infrastructure in Oakland.'''&lt;br /&gt;
&lt;br /&gt;
People's Open Network is a [http://en.wikipedia.org/wiki/Mesh_networking mesh network] based out of Oakland, California. &lt;br /&gt;
&lt;br /&gt;
Imagine if the wifi router in your home connected to the wifi routers in your neighbourâ€™s homes and they again connected to their neighbours to form a huge free wireless network spanning the city! That's exactly what a mesh network is, or at least what it can be. Roads and telephone poles are owned government or private interests and laying down cable is expensive but by using wireless signals that hop from building to building we can create a community owned and operated free-as-in-freedom alternative to corporate Internet Service Providers! Community wireless mesh networks are growing around the world, creating local 'internets' that support Net Neutrality and community control of critical infrastructure. &lt;br /&gt;
&lt;br /&gt;
sudo mesh is a non-profit organization consisting of a group of unpaid volunteers who are building People's Open Network. Our mission in building the network is to connect our neighbors, support local businesses, and enable community collaboration and cultural production. In the event of disaster or censorship, a mesh network can be a resilient means of communication and sharing of information.&lt;br /&gt;
&lt;br /&gt;
We are spending a lot of time developing [https://github.com/sudomesh/ software] to make it cheap and easy for anyone to be part of People's Open Network, regardless of technical skill.&lt;br /&gt;
&lt;br /&gt;
[[File:Mesh_Oakland_High_Res.png|225px|right]]&lt;br /&gt;
&lt;br /&gt;
= Join Us =&lt;br /&gt;
&lt;br /&gt;
* Join the [http://lists.sudoroom.org/listinfo/mesh email list]&lt;br /&gt;
* Follow us on [https://twitter.com/sudomesh twitter] and like us on [https://www.facebook.com/sudomesh facebook].&lt;br /&gt;
* Learn more at our general meetings, which are the last Tuesdays of every month at [[Getting_there|sudo room]] at 7:30 pm. We have focus groups and we collaborate on different parts of the project - from design to software development, documentation to community outreach and of course, community outreach and climbing rooftops to mount nodes!&lt;br /&gt;
* We have '''weekly meetings'' on Tuesdays and '''weekly hacknights''' on Thursdays, 7:30-11:00pm at [[Getting_there|sudo room]], but at these events we do not spend time introducing new people to the project. If you do not feel ready to jump right in and start contributing, please show up for our general meetings (mentioned above) where we specifically take time to intro new volunteers and answer questions :D&lt;br /&gt;
* Chat with us on [http://www.irchelp.org/irchelp/irctutorial.html IRC]: [http://webchat.freenode.net/?channels=peoplesopen.net #peoplesopen.net] (see also [[IRC | IRC Intro]])&lt;br /&gt;
* We generally collaborate on [https://pad.riseup.net/p/sudomesh meeting notes] at each meeting. Look at our archive of past [[Mesh/Minutes|meeting minutes]]!&lt;br /&gt;
* Contribute to the network by installing a mesh node at your location using our handy [https://sudoroom.org/wiki/Mesh/WalkThrough Mesh Node Setup Walkthrough]. This is especially helpful for those that are within range of an existing node (seen as a wireless SSID named &amp;quot;peoplesopen.net&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
= How to Help =&lt;br /&gt;
&lt;br /&gt;
We need more people on the network to improve the quality of the service. When you setup a node, you improve the service for everybody on the network and give more access to your community. We encourage participants to ask their communities to join their networks and create distributed services for them. We have a [[Mesh/User_Guide|user guide]] to help you get on the network!&lt;br /&gt;
&lt;br /&gt;
*Check out our [[Mesh/ToDos|action items]]&lt;br /&gt;
*Support us with a small weekly donation on [https://www.gittip.com/sudomesh/ gittip], here's [[Mesh/Purchases|how we spend it]].&lt;br /&gt;
*Send bitcoins to our wallet address: {{bitcoin wallet}}&lt;br /&gt;
*Check out our [[Mesh/Wishlist|wishlist]], we have requests! &lt;br /&gt;
*Come to our meetings in Oakland! (listed above)&lt;br /&gt;
*Improve our documentation&lt;br /&gt;
*Talk to your community about joining the mesh&lt;br /&gt;
&lt;br /&gt;
== Developers ==&lt;br /&gt;
&lt;br /&gt;
We need hardware and software engineers to help us with our code. We have an overview of [[Mesh/Technical_Overview|technical documentation]] that will be helpful in understanding the network.&lt;br /&gt;
&lt;br /&gt;
If you want to immediately help, check out [https://github.com/sudomesh our code] or [https://github.com/sudomesh/sudowrt-firmware/milestones look at our remaining issues for upcoming milestones].&lt;br /&gt;
&lt;br /&gt;
Here are some of the projects that need attention:&lt;br /&gt;
&lt;br /&gt;
* [[Mesh/Firmware|Firmware]] - The sudowrt firmware&lt;br /&gt;
* [https://github.com/sudomesh/sudowrt-web-ui sudowrt-web-ui] - The new and improved web admin UI for sudowrt nodes&lt;br /&gt;
* [https://github.com/sudomesh/ubus-https-forwarder ubus-https-forwarder] - Allow management of extender nodes from home node web UI&lt;br /&gt;
* [https://github.com/sudomesh/service-browser The Service Browser] - Web UI for browsing mesh services&lt;br /&gt;
* [[Mesh/Distributed Services|Mesh Services]] - Which services should we provide?&lt;br /&gt;
&lt;br /&gt;
== Designers == &lt;br /&gt;
&lt;br /&gt;
We need artists and designers to make things look nice! We have [[Mesh/Design|design schemes]] we already use, but we're always looking to improve it. We need to improve our presentation content and [[Mesh/Diagrams|diagrams]] too! We've been focused on these areas:&lt;br /&gt;
&lt;br /&gt;
* [[Mesh/Presentation|Presentation]]&lt;br /&gt;
* [[Mesh/Diagrams|Diagrams]]&lt;br /&gt;
* Tutorials and Videos&lt;br /&gt;
&lt;br /&gt;
= Frequently Asked Questions (FAQs)=&lt;br /&gt;
&lt;br /&gt;
* [[Mesh/Challenges|Challenges]] - What sort of challenges and problems do we face?&lt;br /&gt;
* [[Mesh/Decisions|Decisions]] - What decisions have we made, and why?&lt;br /&gt;
* [[Mesh/Funding|Funding]] - How the heck do we fund this thing?&lt;br /&gt;
* [[Mesh/Legal|Legal]] - How do we use exit nodes, relays and legal structures to protect node owners and ourselves?&lt;br /&gt;
* [[Mesh/Hosting|Hosting]] - How are we hosting and what does it cost?&lt;br /&gt;
* [[Mesh/Backup|Backup]] - How do we handle backups?&lt;br /&gt;
* [[Mesh/Server security|Server security]] - How do we ensure server security?&lt;br /&gt;
&lt;br /&gt;
= Logistics =&lt;br /&gt;
&lt;br /&gt;
* [[Mesh/Checkouts|Checkouts]] - Who took what gear home.&lt;br /&gt;
* [[Mesh/Inventory|Inventory]] - Continually-updated inventory of our hardware and gear.&lt;br /&gt;
* [[Mesh/Marketing|Marketing]] - Inspiration and links to marketing materials in progress.&lt;br /&gt;
* [[Mesh/Naming|Naming]] - What do we call ourselves? A lineage of bikeshedding.&lt;br /&gt;
* [[Mesh/Purchases|Purchases]] - Details on our purchases, made by either individuals or through our crowdfunded money.&lt;br /&gt;
* [[Mesh/Taxes|Taxes]] - Filed taxes for the sudo mesh non-profit&lt;br /&gt;
&lt;br /&gt;
= Research =&lt;br /&gt;
&lt;br /&gt;
We need help improving our documentation about the area and other legalities.&lt;br /&gt;
&lt;br /&gt;
* [[Mesh/Legal|Legal]] - we are becoming a 501(c)3 and there are other legalities of wireless networks&lt;br /&gt;
* [[Mesh/Interviews with other meshers|Interviews]] - we interviewed other experienced meshers&lt;br /&gt;
* [[Mesh/Documentation|Other documentation]] - books, articles, wikis, blog posts.&lt;br /&gt;
* [[Mesh/Oakland|Oakland]] - information and resources pertaining to Oakland community organizations, wireless initiatives, policy and research initiatives&lt;br /&gt;
* [[Mesh/Other muni networking projects|Municipal projects]] - examples of progressive uses of municipal networks.&lt;br /&gt;
* [[Mesh/Decentralized FM/AM radio|Decentralized FM/AM radio]] - Bit of research on adding legal FM/AM transmitters to nodes.&lt;br /&gt;
&lt;br /&gt;
= Other Firmware and Networks =&lt;br /&gt;
&lt;br /&gt;
There are [[Mesh/Other mesh projects|other meshes]] around the world that have inspired us to make our own network! They use software from these projects: &lt;br /&gt;
&lt;br /&gt;
* [[Mesh/Freifunk]] (germany) - the creators of batman-adv (routing protocol we use) and one of the longest-running mesh networks in the world.&lt;br /&gt;
* [[Mesh/Commotion]] - a very well-documented project from the Open Technology Institute creating a simple-to-deploy mesh firmware and setup for small community meshes around the world.&lt;br /&gt;
* [[Mesh/San Francisco]] Mesh projects in San Francisco&lt;br /&gt;
&lt;br /&gt;
= Web Resources =&lt;br /&gt;
&lt;br /&gt;
* [http://510pen.org 510pen] - East Bay community wireless mesh network spawned in 2009 by [[User:mfb|Mark Burdett]]&lt;br /&gt;
* [http://wiki.tidepools.com Tidepools] - [[User:tunabananas|Jenny Ryan]] designed local use cases for a community mobile mapping application built to run on mesh networks.&lt;br /&gt;
* [https://wiki.projectmeshnet.org/Main_Page Project Meshnet] - Extensive wiki on the /r/darknet project, including extensive list of [https://wiki.projectmeshnet.org/Projects projects coordinating with them].&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Long-range_Wi-Fi#Notable_links Long Range Wifi] - Info on the longest-range wifi connections ever made.&lt;br /&gt;
* [https://github.com/adafruit/Adafruit-WebIDE Adafruit's Web IDE built for Raspberry Pi] but probably good for editing code on any device and ensuring it is managed with a code repo.  By default it uses [https://bitbucket.org bitbucket.org] but it could probably be configured for Github.&lt;br /&gt;
&lt;br /&gt;
= All Sudo Mesh Wiki Pages =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;{{Mesh nav}}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Please note that all contributions to Sudo Room may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here. You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see Sudo Room:Copyrights for details). Do not submit copyrighted work without permission!''&lt;br /&gt;
&lt;br /&gt;
[[Category:Projects]][[Category:Mesh]]&lt;/div&gt;</summary>
		<author><name>Redconfetti</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=IRC&amp;diff=10171</id>
		<title>IRC</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=IRC&amp;diff=10171"/>
		<updated>2016-05-14T21:06:33Z</updated>

		<summary type="html">&lt;p&gt;Redconfetti: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Internet Relay Chat (IRC) is an instant messaging service that has been used on the internet since the early 1990s. IRC is made possible by the [https://en.wikipedia.org/wiki/Internet_Relay_Chat Internet Relay Chat Protocol (IRCP)], an application layer protocol. The chat process works on a client/server networking model. IRC clients are computer programs that a user can install on their system. These clients communicate with chat servers to transfer messages to other clients. IRC is mainly designed for group communication in discussion forums, called channels, but also allows one-on-one communication via private messages as well as chat and data transfer, including file sharing.&lt;br /&gt;
&lt;br /&gt;
Many [https://en.wikipedia.org/wiki/Comparison_of_instant_messaging_protocols other instant messaging services] exist, however many services are proprietary and/or rely on a centralized platform. This does not appeal to organizations that wish to establish a channel of communication that can be adopted by users without fear of unwanted regulations by the service/platform provider. Although open source protocols such as [https://en.wikipedia.org/wiki/XMPP XMPP (formerly Jabber)] exist, IRC continues to be used because it is lightweight and stable.&lt;br /&gt;
&lt;br /&gt;
IRC consists of channels. Each channel is like a chat room, and is represented by a name that begins with '#' followed by a string that represents the primary topic of the channel. Examples:  #html, #css, #javascript, #go-lang.&lt;br /&gt;
&lt;br /&gt;
== Recommended Clients ==&lt;br /&gt;
&lt;br /&gt;
There are many various IRC clients available for many platforms.&lt;br /&gt;
&lt;br /&gt;
=== Graphical Clients ===&lt;br /&gt;
&lt;br /&gt;
* Cross-platform&lt;br /&gt;
** [https://www.pidgin.im/download/ Pidgin]&lt;br /&gt;
* Mac OS X&lt;br /&gt;
** [https://adium.im/ Adium]&lt;br /&gt;
&lt;br /&gt;
=== Command Line Interface Clients ===&lt;br /&gt;
&lt;br /&gt;
These clients are intended to be used from the command line interface (CLI), also known as the &amp;quot;terminal&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* [https://irssi.org/ irssi]&lt;br /&gt;
&lt;br /&gt;
== Basics ==&lt;br /&gt;
&lt;br /&gt;
For those that are new to IRC, itâ€™s a good idea to become familiar with the [http://www.ircbeginner.com/ircinfo/ircc-commands.html common commands] that IRC programs support. Here are a few:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Command !! Example !! Description&lt;br /&gt;
|-&lt;br /&gt;
| /join #channel_name || /join #sudoroom ||Join a channel&lt;br /&gt;
|-&lt;br /&gt;
| /me &amp;lt;action&amp;gt; || /me waves hello || Announces some action&lt;br /&gt;
|-&lt;br /&gt;
| /msg &amp;lt;nickname&amp;gt; &amp;lt;message&amp;gt; || /msg juul Hey! I need some help  || Send a direct message to another user&lt;br /&gt;
|-&lt;br /&gt;
| /ignore &amp;lt;nickname&amp;gt; || /ignore annoyingperson || Block someone that is harassing you&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Although the above commands are likely to be supported by all IRC client programs, some only apply to specific clients. The following are supported by [https://irssi.org/ irssi]:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Command !! Example !! Description&lt;br /&gt;
|-&lt;br /&gt;
| /help || /help || View documentation on supported commands&lt;br /&gt;
|-&lt;br /&gt;
| /help &amp;lt;command&amp;gt; || /help connect || View documentation on a specific supported command&lt;br /&gt;
|-&lt;br /&gt;
| /connect &amp;lt;server address&amp;gt; &amp;lt;port&amp;gt; || /connect irc.freenode.net 8001 || Connect to an IRC server&lt;br /&gt;
|-&lt;br /&gt;
| /set nick &amp;lt;nick&amp;gt; || /set nick someGuy2015 || Register your nickname with the IRC server/network&lt;br /&gt;
|-&lt;br /&gt;
| /set real_name &amp;lt;real name&amp;gt; || /set nick Bill Murray || Register your real name within the IRC server/network&lt;br /&gt;
|-&lt;br /&gt;
| /quit || /quit || Quits IRC program&lt;br /&gt;
|-&lt;br /&gt;
| /exit || /exit || Quits IRC program&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
See [https://irssi.org/documentation/ IRSSI Documentation] for more commands.&lt;br /&gt;
&lt;br /&gt;
== FreeNode ==&lt;br /&gt;
&lt;br /&gt;
Many programming/hacking communities establish a channel on the [https://en.wikipedia.org/wiki/Freenode FreeNode IRC network] to facilitate discussions and provide support to members of their community.&lt;br /&gt;
&lt;br /&gt;
=== Registering with FreeNode ===&lt;br /&gt;
&lt;br /&gt;
The FreeNode IRC network allows you to register your nickname and associate it with your email address. This is done by using the following commands:&lt;br /&gt;
&lt;br /&gt;
  /msg nickserv REGISTER &amp;lt;password&amp;gt; &amp;lt;email&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should receive a message informing you that you need to check your email account and obtain instructions to verify yourself.&lt;br /&gt;
&lt;br /&gt;
To make sure that your email address isnâ€™t revealed to other users, use the following command to ensure that it is hidden.&lt;br /&gt;
&lt;br /&gt;
  /msg NickServ SET HIDEMAIL ON&lt;br /&gt;
&lt;br /&gt;
You can verify your information with the NickServ by using:&lt;br /&gt;
&lt;br /&gt;
  /msg nickserv info&lt;br /&gt;
&lt;br /&gt;
== Persistent CLI Client ==&lt;br /&gt;
&lt;br /&gt;
This section is a guide to setting up a command line based IRC client on a persistently running machine so that it stays connected within a channel even when you are not connected to the machine via SSH. This results in the ability to reconnect and view the messages in the channel that occurred even when you were not connected.&lt;br /&gt;
&lt;br /&gt;
These instructions assume you are using an Ubuntu machine, and will be using the [https://irssi.org/ irssi] client.&lt;br /&gt;
&lt;br /&gt;
=== Client Machine ===&lt;br /&gt;
&lt;br /&gt;
You setup a system at home and configure your home network device(s) to make that machine available via the internet, or alternatively gain shell access to a server on the internet. There are services that provide free or paid shell access, with features and support for IRC that varies. Some of these services even provide support for [https://en.wikipedia.org/wiki/IRC_bot IRC bots]. Alternatively you can pay for a [https://en.wikipedia.org/wiki/Virtual_private_server Virtual Private Server (VPS)] for as low as $5 a month through services such as [digitalocean.com DigitalOcean], thus providing you with an entire UNIX-like server environment that you can use as you wish.&lt;br /&gt;
&lt;br /&gt;
=== Install Client ===&lt;br /&gt;
&lt;br /&gt;
Install the irssi client using the following command:&lt;br /&gt;
&lt;br /&gt;
  apt-get install irssi&lt;br /&gt;
&lt;br /&gt;
After itâ€™s done installing, simply run the program&lt;br /&gt;
&lt;br /&gt;
  irssi&lt;br /&gt;
&lt;br /&gt;
=== Configure ===&lt;br /&gt;
&lt;br /&gt;
There is a configuration file in ~/.irssi/config that you can inspect, but you can use commands from within the program to configure IRSSI to automatically perform when you first open the program. &lt;br /&gt;
&lt;br /&gt;
The following commands will configure IRSSI to connect to the Freenode network with an SSL connection, with automatic joining of the #sudoroom channel.&lt;br /&gt;
&lt;br /&gt;
  /network add Freenode&lt;br /&gt;
  /server add -auto -ssl -ssl_verify -ssl_capath /etc/ssl/certs -network Freenode irc.freenode.net 7000&lt;br /&gt;
  /channel add -auto #sudo Freenode&lt;br /&gt;
  /save&lt;br /&gt;
&lt;br /&gt;
After youâ€™ve successfully registered your FreeNode nick name, you can run this command to configure IRSSI to login automatically after connecting to FreeNode.&lt;br /&gt;
&lt;br /&gt;
  /network add -autosendcmd &amp;quot;/msg nickserv identify &amp;lt;password&amp;gt; ;wait 2000&amp;quot; Freenode&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
&lt;br /&gt;
irssi support separate &amp;quot;windows&amp;quot; for the different channels you are connected to, or for the different people you are chatting with. If for some reason you do not see information on the screen for a command youâ€™ve run, it may be displayed in another window.&lt;br /&gt;
&lt;br /&gt;
An Ubuntu terminal can use the ALT key combined with a number key (e.g. ALT+1, ALT+2, ALT+3, etc) to switch between the different displays in IRSSI. This will not work via SSH however, so you will need to use the /window command instead.&lt;br /&gt;
&lt;br /&gt;
  /WINDOW NEW                    - Create new split window&lt;br /&gt;
  /WINDOW NEW HIDE               - Create new hidden window&lt;br /&gt;
  /WINDOW CLOSE                  - Close split or hidden window&lt;br /&gt;
  &lt;br /&gt;
  /WINDOW HIDE [&amp;lt;number&amp;gt;|&amp;lt;name&amp;gt;] - Make the split window hidden window&lt;br /&gt;
  /WINDOW SHOW &amp;lt;number&amp;gt;|&amp;lt;name&amp;gt;   - Make the hidden window a split window&lt;br /&gt;
  &lt;br /&gt;
  /WINDOW SHRINK [&amp;lt;lines&amp;gt;]       - Shrink the split window&lt;br /&gt;
  /WINDOW GROW [&amp;lt;lines&amp;gt;]         - Grow the split window&lt;br /&gt;
  /WINDOW BALANCE                - Balance the sizes of all split windows&lt;br /&gt;
&lt;br /&gt;
=== Managing Process ===&lt;br /&gt;
&lt;br /&gt;
Use 'screen' command on the VPS to &lt;br /&gt;
&lt;br /&gt;
CTRL-A, then D - disconnect from the screen instance, and then use `screen -r`.&lt;br /&gt;
&lt;br /&gt;
tmux (terminal multiplexer) is another option&lt;br /&gt;
&lt;br /&gt;
See [http://carina.org.uk/screenirssi.shtml How to use screen and irssi] and [https://michael.lustfield.net/linux/irssi-using-screen-and-ssh IRSSI Using Screen and SSH]&lt;/div&gt;</summary>
		<author><name>Redconfetti</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=IRC&amp;diff=10170</id>
		<title>IRC</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=IRC&amp;diff=10170"/>
		<updated>2016-05-14T20:36:06Z</updated>

		<summary type="html">&lt;p&gt;Redconfetti: creating IRC guide page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Internet Relay Chat (IRC) is an instant messaging service that has been used on the internet since the early 1990s. IRC is made possible by the [https://en.wikipedia.org/wiki/Internet_Relay_Chat Internet Relay Chat Protocol (IRCP)], an application layer protocol. The chat process works on a client/server networking model. IRC clients are computer programs that a user can install on their system. These clients communicate with chat servers to transfer messages to other clients. IRC is mainly designed for group communication in discussion forums, called channels, but also allows one-on-one communication via private messages as well as chat and data transfer, including file sharing.&lt;br /&gt;
&lt;br /&gt;
Many [https://en.wikipedia.org/wiki/Comparison_of_instant_messaging_protocols other instant messaging services] exist, however many services are proprietary and/or rely on a centralized platform. This does not appeal to organizations that wish to establish a channel of communication that can be adopted by users without fear of unwanted regulations by the service/platform provider. Although open source protocols such as [https://en.wikipedia.org/wiki/XMPP XMPP (formerly Jabber)] exist, IRC continues to be used because it is lightweight and stable.&lt;br /&gt;
&lt;br /&gt;
== Recommended Clients ==&lt;br /&gt;
&lt;br /&gt;
There are many various IRC clients available for many platforms.&lt;br /&gt;
&lt;br /&gt;
=== Graphical Clients ===&lt;br /&gt;
&lt;br /&gt;
* Cross-platform&lt;br /&gt;
** [https://www.pidgin.im/download/ Pidgin]&lt;br /&gt;
* Mac OS X&lt;br /&gt;
** [https://adium.im/ Adium]&lt;br /&gt;
&lt;br /&gt;
=== Command Line Interface Clients ===&lt;br /&gt;
&lt;br /&gt;
These clients are intended to be used from the command line interface (CLI), also known as the &amp;quot;terminal&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* [https://irssi.org/ irssi]&lt;br /&gt;
&lt;br /&gt;
== Basics ==&lt;br /&gt;
&lt;br /&gt;
IRC consists of channels. Each channel is like a chat room, and is represented by a name that begins with '#' followed by a string that represents the primary topic of the channel. Examples:  #html, #css, #javascript, #go-lang.&lt;br /&gt;
&lt;br /&gt;
== FreeNode ==&lt;br /&gt;
&lt;br /&gt;
Many programming/hacking communities establish a channel on the [https://en.wikipedia.org/wiki/Freenode FreeNode IRC network] to facilitate discussions and provide support to members of their community.&lt;br /&gt;
&lt;br /&gt;
== Persistent CLI Client ==&lt;br /&gt;
&lt;br /&gt;
This section is a guide to setting up a command line based IRC client on a persistently running machine so that it stays connected within a channel even when you are not connected to the machine via SSH. This results in the ability to reconnect and view the messages in the channel that occurred even when you were not connected.&lt;br /&gt;
&lt;br /&gt;
These instructions assume you are using an Ubuntu machine, and will be using the [https://irssi.org/ irssi] client.&lt;br /&gt;
&lt;br /&gt;
=== Client Machine ===&lt;br /&gt;
&lt;br /&gt;
You setup a system at home and configure your home network device(s) to make that machine available via the internet, or alternatively gain shell access to a server on the internet. There are services that provide free or paid shell access, with features and support for IRC that varies. Some of these services even provide support for [https://en.wikipedia.org/wiki/IRC_bot IRC bots]. Alternatively you can pay for a [https://en.wikipedia.org/wiki/Virtual_private_server Virtual Private Server (VPS)] for as low as $5 a month through services such as [digitalocean.com DigitalOcean], thus providing you with an entire UNIX-like server environment that you can use as you wish.&lt;br /&gt;
&lt;br /&gt;
=== Install Client ===&lt;br /&gt;
&lt;br /&gt;
Install the irssi client using the following command:&lt;br /&gt;
&lt;br /&gt;
  apt-get install irssi&lt;br /&gt;
&lt;br /&gt;
After itâ€™s done installing, simply run the program&lt;br /&gt;
&lt;br /&gt;
  irssi&lt;br /&gt;
&lt;br /&gt;
=== Getting Started ===&lt;br /&gt;
&lt;br /&gt;
Upon opening the program for the first time IRSSI may connect to a default IRC network. There is a configuration file in ~/.irssi/config that you can inspect, but you can use commands from within the program to configure IRSSI to automatically perform when you first open the program. This includes connecting to Freenode, authenticating using your registered nick name, and joining a default channel.&lt;br /&gt;
&lt;br /&gt;
You can use these commands to get started immediately:&lt;br /&gt;
&lt;br /&gt;
Set your nick name and real name&lt;br /&gt;
&lt;br /&gt;
/set nick &amp;lt;nick&amp;gt;&lt;br /&gt;
/set real_name &amp;lt;Real Name&amp;gt;&lt;br /&gt;
Connecting to FreeNode&lt;br /&gt;
&lt;br /&gt;
/connect irc.freenode.net 8001&lt;br /&gt;
Join Channel&lt;br /&gt;
&lt;br /&gt;
/join #sudoroom&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
&lt;br /&gt;
irssi support separate &amp;quot;windows&amp;quot; for the different channels you are connected to, or for the different people you are chatting with. If for some reason you do not see information on the screen for a command youâ€™ve run, it may be displayed in another window.&lt;br /&gt;
&lt;br /&gt;
An Ubuntu terminal can use the ALT key combined with a number key (e.g. ALT+1, ALT+2, ALT+3, etc) to switch between the different displays in IRSSI. This will not work via SSH however, so you will need to use the /window command instead.&lt;br /&gt;
&lt;br /&gt;
  /WINDOW NEW                    - Create new split window&lt;br /&gt;
  /WINDOW NEW HIDE               - Create new hidden window&lt;br /&gt;
  /WINDOW CLOSE                  - Close split or hidden window&lt;br /&gt;
  &lt;br /&gt;
  /WINDOW HIDE [&amp;lt;number&amp;gt;|&amp;lt;name&amp;gt;] - Make the split window hidden window&lt;br /&gt;
  /WINDOW SHOW &amp;lt;number&amp;gt;|&amp;lt;name&amp;gt;   - Make the hidden window a split window&lt;br /&gt;
  &lt;br /&gt;
  /WINDOW SHRINK [&amp;lt;lines&amp;gt;]       - Shrink the split window&lt;br /&gt;
  /WINDOW GROW [&amp;lt;lines&amp;gt;]         - Grow the split window&lt;br /&gt;
  /WINDOW BALANCE                - Balance the sizes of all split windows&lt;br /&gt;
&lt;br /&gt;
=== Managing Process ===&lt;br /&gt;
&lt;br /&gt;
Use 'screen' command on the VPS to &lt;br /&gt;
&lt;br /&gt;
CTRL-A, then D - disconnect from the screen instance, and then use `screen -r`.&lt;br /&gt;
&lt;br /&gt;
tmux (terminal multiplexer) is another option&lt;br /&gt;
&lt;br /&gt;
See [http://carina.org.uk/screenirssi.shtml How to use screen and irssi] and [https://michael.lustfield.net/linux/irssi-using-screen-and-ssh IRSSI Using Screen and SSH]&lt;/div&gt;</summary>
		<author><name>Redconfetti</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Firmware/Web_Admin_Development&amp;diff=10169</id>
		<title>Mesh/Firmware/Web Admin Development</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Firmware/Web_Admin_Development&amp;diff=10169"/>
		<updated>2016-05-11T04:34:58Z</updated>

		<summary type="html">&lt;p&gt;Redconfetti: adding resource links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This used to be a page on our old Luci-based web admin UI, but that UI is being deprecated.&lt;br /&gt;
&lt;br /&gt;
We are now writing [https://github.com/sudomesh/sudowrt-web-ui a new UI] that uses ubus via uhttpd-mod-ubus instead of Luci.&lt;br /&gt;
&lt;br /&gt;
ubus is the system bus for OpenWRT, similar to D-Bus but very light-weight. Using ubus it is possible to configure all OpenWRT config files in the /etc/config directory, and even run scripts on the router. uhttpd-mod-ubus allows access to ubus over http with access restricted by access control lists. More info on this [http://wiki.openwrt.org/doc/techref/ubus#access_to_ubus_over_http here].&lt;br /&gt;
&lt;br /&gt;
The new UI includes a simulator (written in node.js) that pretends to be a sudowrt router, which makes it easy for developers to test their client-side code without having to always have a sudowrt router with them.&lt;br /&gt;
&lt;br /&gt;
== Resource Links ==&lt;br /&gt;
&lt;br /&gt;
* [https://wiki.openwrt.org/doc/techref/ubus#access_to_ubus_over_http OpenWRT.org - Access to ubus over HTTP]&lt;br /&gt;
* [https://wiki.openwrt.org/doc/techref/luci2 Luci2 Web Interface Documentation]&lt;br /&gt;
* [https://en.wikipedia.org/wiki/XMLHttpRequest Wikipedia - XMLHttpRequest]&lt;br /&gt;
* [https://github.com/sudomesh/sudowrt-firmware Github - SudoWRT-Firmware]&lt;/div&gt;</summary>
		<author><name>Redconfetti</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10166</id>
		<title>Mesh/Flashing extender nodes</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10166"/>
		<updated>2016-05-08T08:13:49Z</updated>

		<summary type="html">&lt;p&gt;Redconfetti: /* Drop into U-Boot Command Prompt */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Download the Image File For a Extender Node ==&lt;br /&gt;
&lt;br /&gt;
The extender nodes that we currently support are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Model No. !! OpenWRT Doc !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M5 || NSM5 || [https://wiki.openwrt.org/toh/ubiquiti/nanostationm5 OpenWRT Docs] || firmware: [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin pre 2015] or [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin 2015-2016]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M2 || NSM2 || [https://wiki.openwrt.org/toh/ubiquiti/nanostationm2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-om2p-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation 2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostation2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ath25.extender-node/openwrt-ath25-ubnt2-pico2-squashfs.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation M2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostationm2 OpenWRT Docs] || &lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobeam M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/nanobeam OpenWRT Docs] || &lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Bullet M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/bullet OpenWRT Docs] || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Flash the Extender Node ==&lt;br /&gt;
&lt;br /&gt;
* Configure your wired internet settings to use Manual IPv4 settings with IP: 192.168.1.10, subnet: 255.255.255.0, gateway: 0.0.0.0&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Plug another Ethernet cable into your antenna on one end and into the &amp;quot;POE&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Push a pin into the reset hole and hold it.&lt;br /&gt;
* With the pin held down, plug in the power to the power-over-ethernet power supply.&lt;br /&gt;
* Watch the lights on the antenna - they will all flash together a few times, then they will flash up and down.&lt;br /&gt;
* Once the lights on the antenna are flashing up and down, you can let go of the pin.&lt;br /&gt;
&lt;br /&gt;
You should be able to ping the extender at 192.168.1.20.&lt;br /&gt;
&lt;br /&gt;
  $ ping 192.168.1.20&lt;br /&gt;
  PING 192.168.1.20 (192.168.1.20) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=1 ttl=64 time=1.54 ms&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=2 ttl=64 time=0.826 ms&lt;br /&gt;
&lt;br /&gt;
In your Linux terminal, type:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/ubi-flasher&lt;br /&gt;
  cd ubi-flasher&lt;br /&gt;
  npm install&lt;br /&gt;
  ./flasher.js '&amp;lt;path to firmware&amp;gt;'&lt;br /&gt;
&lt;br /&gt;
The terminal will tell you &amp;quot;The firmware has been successfully sent to the router. In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up). This means that the router is flashing itself with the new firmware. Once the router goes back to having only the power LED lit, the router has been successfully flashed.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Wait until the antenna has only the power LED lit and you're done.&lt;br /&gt;
&lt;br /&gt;
Reconfigure your machine with the following static network configuration.&lt;br /&gt;
&lt;br /&gt;
* IP Address: 172.22.0.10&lt;br /&gt;
* Subnet mask:  255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0&lt;br /&gt;
&lt;br /&gt;
See Network Configuration Guides: [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20Linux Linux] [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20MacOS%20X Mac]&lt;br /&gt;
&lt;br /&gt;
If you ping the extender node on 172.22.0.2 and it responds, it should be ready to connect to your home node on the appropriate wired Ethernet port.&lt;br /&gt;
&lt;br /&gt;
  $ ping 172.22.0.2&lt;br /&gt;
  PING 172.22.0.2 (172.22.0.2) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=1 ttl=64 time=0.617 ms&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=2 ttl=64 time=0.316 ms&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=3 ttl=64 time=0.398 ms&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Extender Detection ==&lt;br /&gt;
&lt;br /&gt;
Log into your home node via SSH, and tail &amp;lt;tt&amp;gt;/var/log/messages&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver: eth0.3: Physical disconnect detected&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver: Listening on interface eth0.3:&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver:   client IP: 100.64.37.3&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver:   client netmask 26&lt;br /&gt;
  Sun May  8 00:51:12 2016 daemon.debug notdhcpserver: eth0.3: Recieved HEARTBEAT for interface that hadn't been ACKed.&lt;br /&gt;
  ...&lt;br /&gt;
  Sun May  8 00:54:00 2016 daemon.debug notdhcpserver: eth0.3: Recieved HEARTBEAT for interface that hadn't been ACKed.&lt;br /&gt;
  Sun May  8 00:54:00 2016 daemon.info hostapd: priv5: STA 80:e6:50:0e:fe:6e WPA: group key handshake completed (RSN)&lt;br /&gt;
  Sun May  8 00:54:04 2016 daemon.debug notdhcpserver: eth0.2: Received lease request&lt;br /&gt;
  Sun May  8 00:54:04 2016 daemon.debug notdhcpserver: eth0.3: sending response (with ssl certificate)&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received ACK&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Running up hook script&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received redundant ACK&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received redundant ACK&lt;br /&gt;
&lt;br /&gt;
There should be a debug message in the log from notdhcpserver concerning the extender node.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== USB to Serial Connection ===&lt;br /&gt;
&lt;br /&gt;
If you experience trouble flashing your device via the web interface, or via the TFTP image upload method, you'll want to establish a serial connection to troubleshoot further. Methods for flashing your device involving a serial connection may become more common as devices adopt configurations to lock down [http://www.networkworld.com/article/3038722/mobile-wireless/manufacturers-start-to-lock-down-wi-fi-router-firmware-thanks-fcc.html wi-fi router firmware] to prevent flashing.&lt;br /&gt;
&lt;br /&gt;
The following notes describe steps to interface with a Nanostation M5 (NSM5) via the serial interface. &lt;br /&gt;
&lt;br /&gt;
==== Order a USB to Serial Converter ====&lt;br /&gt;
&lt;br /&gt;
USB to serial converter devices exist at a cost of $4 - $8 online, with much lower pricing and longer delivery times if ordered from China. Search for &amp;quot;USB to UART TTL&amp;quot;, including &amp;quot;5 pin&amp;quot; in the search. Make sure the specifications do not mention anything other than 3.3 volts.&lt;br /&gt;
&lt;br /&gt;
==== Connecting to Serial ====&lt;br /&gt;
&lt;br /&gt;
You will need to connect the following pins from the converter to the pins on the device.&lt;br /&gt;
&lt;br /&gt;
* Ground (GND)&lt;br /&gt;
* Serial Out (Transmit / TX)&lt;br /&gt;
* Serial In (Receive / RX)&lt;br /&gt;
&lt;br /&gt;
Begin by connecting the Ground of the converter to the Ground of the device. Next connect the Transmit/TX of the converter to the Receive/RX of the device, then connect the Receive/RX of the converter to the Transmit/TX of the device.&lt;br /&gt;
&lt;br /&gt;
Nanostation M5 (NSM5) Example:&lt;br /&gt;
&lt;br /&gt;
[[File:CP2102-usb-to-serial-converter.jpg|400px|KEDSUMÂ® CP2102 Module STC Download Cable USB 2.0 to TTL 6PIN Serial Converter For STC]]&lt;br /&gt;
&lt;br /&gt;
[[File:Ubiquity-NSM5-serial-connectors.jpg|400px|Ubiquiti Nanostation NSM5 - Serial pins with connections]]&lt;br /&gt;
&lt;br /&gt;
==== Serial Communications Program ====&lt;br /&gt;
&lt;br /&gt;
You need to install a serial communication program. Linux users can use Minicom.&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get install minicom&lt;br /&gt;
&lt;br /&gt;
By default the Minicom program will attempt to use /dev/tty8, and will also attempt to initialize the device (expecting a modem) by default.&lt;br /&gt;
&lt;br /&gt;
  $ minicom&lt;br /&gt;
  minicom: cannot open /dev/tty8: Permission denied&lt;br /&gt;
&lt;br /&gt;
Run the program so that it starts the program on the USB converter that is connected by adding &amp;lt;tt&amp;gt;-D /dev/ttyUSB0&amp;lt;/tt&amp;gt;, and specify that it should skip initialization by adding &amp;lt;tt&amp;gt;-o&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You can also specify from the command line that it use the baud rate and '8N1' settings specified below by including &amp;lt;tt&amp;gt;-b 115200 -8&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
  sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
&lt;br /&gt;
In Minicom, CTRL-A to get settings, then Press O, to access settings&lt;br /&gt;
&lt;br /&gt;
Go to Serial Port Setup, use these settings:&lt;br /&gt;
&lt;br /&gt;
* Set the serial device (should be /dev/tty/USB0)&lt;br /&gt;
* Baud Rate (Bits Per Second): 115200&lt;br /&gt;
* Settings '8N1' (short hand for 8 bits, no parity, 1 stop bit)&lt;br /&gt;
* Turn off hardware and software flow control&lt;br /&gt;
&lt;br /&gt;
Reboot the device, and it will let you drop into a command line. You will then have to figure out how to enable the network from the boot loader (Uboot or Redboot) and transfer the firmware to the device to flash it.&lt;br /&gt;
&lt;br /&gt;
==== Interupting Boot ====&lt;br /&gt;
&lt;br /&gt;
The device will not detect the key you press unless Minicom is configured properly.&lt;br /&gt;
&lt;br /&gt;
* To access the Help screen, Press CTRL-A, then press Z.&lt;br /&gt;
* To access the configuration/settings, press CTRL-A, then press O.&lt;br /&gt;
&lt;br /&gt;
From the configuration window, select to view the 'Serial port setup'&lt;br /&gt;
&lt;br /&gt;
  $ sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
  Welcome to minicom 2.7&lt;br /&gt;
  &lt;br /&gt;
  OPTIONS: I18n &lt;br /&gt;
  Compiled on Jan  1 2014, 17:13:19.&lt;br /&gt;
  Port /dev/ttyUSB0, 21:47:56&lt;br /&gt;
  &lt;br /&gt;
  Press CTRL-A Z for help on special keys&lt;br /&gt;
  &lt;br /&gt;
              +-----[configuration]------+&lt;br /&gt;
              | Filenames and paths      |&lt;br /&gt;
              | File transfer protocols  |&lt;br /&gt;
              | Serial port setup        |&lt;br /&gt;
              | Modem and dialing        |&lt;br /&gt;
              | Screen and keyboard      |&lt;br /&gt;
              | Save setup as dfl        |&lt;br /&gt;
              | Save setup as..          |&lt;br /&gt;
              | Exit                     |&lt;br /&gt;
              +--------------------------+&lt;br /&gt;
  &lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
  | A -    Serial Device      : /dev/ttyUSB0                              |&lt;br /&gt;
  | B - Lockfile Location     : /var/lock                                 |&lt;br /&gt;
  | C -   Callin Program      :                                           |&lt;br /&gt;
  | D -  Callout Program      :                                           |&lt;br /&gt;
  | E -    Bps/Par/Bits       : 115200 8N1                                |&lt;br /&gt;
  | F - Hardware Flow Control : Yes                                       |&lt;br /&gt;
  | G - Software Flow Control : No                                        |&lt;br /&gt;
  |                                                                       |&lt;br /&gt;
  |    Change which setting?                                              |&lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
&lt;br /&gt;
By default the Hardware Flow Control will be enabled. Press 'F' to disable Hardware Flow Control. Press ENTER to exit the Serial port setup window, and then select EXIT to go back to the program.&lt;br /&gt;
&lt;br /&gt;
At this point plug in the Ethernet cable to the 'Main' Ethernet port, with the other end connected to the 'POE' port on the Power Over Ethernet adapter that came with the device. As the device boots up, you'll see output similar to the following.&lt;br /&gt;
&lt;br /&gt;
You'll need to make sure to press a key before it boots the default image.&lt;br /&gt;
&lt;br /&gt;
=== Picostation M2HP ===&lt;br /&gt;
&lt;br /&gt;
Insightful post on [https://www.strugglingcoder.info/index.php/tag/ubnt/ loading FreeBSD image] with help from serial communications. Could be useful with troubleshooting other models.&lt;br /&gt;
=== Nanostation M2 ===&lt;br /&gt;
==== Firmware check failure ====&lt;br /&gt;
&lt;br /&gt;
The following are simply notes. A solution to this issue is still pending.&lt;br /&gt;
&lt;br /&gt;
Flashing the Nanostation M2 (FCC ID: SWX-M2N) using the TFTP rescue mode will result in a Firmware check failure error.&lt;br /&gt;
&lt;br /&gt;
  $ tftp 192.168.1.20&lt;br /&gt;
  tftp&amp;gt; bin&lt;br /&gt;
  tftp&amp;gt; put openwrt-ar71xx-generic-om2p-squashfs-factory.bin&lt;br /&gt;
  Error code 2: Firmware check failed&lt;br /&gt;
  Sent 4609024 bytes in 12.6 seconds&lt;br /&gt;
&lt;br /&gt;
You can boot up the M2 with a serial connection similar to the instructions below concerning the Nanostation M5.&lt;br /&gt;
&lt;br /&gt;
  Board: Ubiquiti Networks XM board (rev 1.0 e012)&lt;br /&gt;
  DRAM:  32 MB&lt;br /&gt;
  Flash:  8 MB&lt;br /&gt;
  PCIe WLAN Module found (#1).&lt;br /&gt;
  Net:   eth0, eth1&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: |&lt;br /&gt;
  Receiving file from 192.168.1.10:35456&lt;br /&gt;
  Received 4609501 bytes&lt;br /&gt;
  Firmware check failed! (-2)&lt;br /&gt;
&lt;br /&gt;
The method outlined for the Nanostation M5 below doesn't work with the M2.&lt;br /&gt;
&lt;br /&gt;
Update the firmware to [http://dl.ubnt.com/firmwares/XN-fw/v5.6.4/XM.v5.6.4.28924.160331.1253.bin airOS for XM board firmware v5.6.4].&lt;br /&gt;
&lt;br /&gt;
Serial Connection:&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
&lt;br /&gt;
Terminal:&lt;br /&gt;
&lt;br /&gt;
  $ tftp 192.168.1.20&lt;br /&gt;
  tftp&amp;gt; bin&lt;br /&gt;
  tftp&amp;gt; put XM.v5.6.4.28924.160331.1253.bin&lt;br /&gt;
  Sent 7537129 bytes in 20.8 seconds&lt;br /&gt;
&lt;br /&gt;
Serial Connection:&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:55113&lt;br /&gt;
  Received 7537129 bytes&lt;br /&gt;
  Firmware Version: XM.ar7240.v5.6.4.28924.160331.1253&lt;br /&gt;
  Setting U-Boot environment variables&lt;br /&gt;
  Un-Protected 1 sectors&lt;br /&gt;
  Erasing Flash.... done&lt;br /&gt;
  Erased 1 sectors&lt;br /&gt;
  Writing to Flash... done&lt;br /&gt;
  Protected 1 sectors&lt;br /&gt;
  Will not overwrite u-boot partition! Skipped.&lt;br /&gt;
  Copying partition 'kernel' to flash memory:&lt;br /&gt;
          erasing range 0x9F050000..0x9F14FFFF: ................ done&lt;br /&gt;
  Erased 16 sectors&lt;br /&gt;
          writing to address 0x9f050000, length 0x00100000 ...&lt;br /&gt;
  Copying partition 'rootfs' to flash memory:&lt;br /&gt;
          erasing range 0x9F150000..0x9F74FFFF: .............................................................................................e&lt;br /&gt;
  Erased 96 sectors&lt;br /&gt;
          writing to address 0x9f150000, length 0x00600000 ...&lt;br /&gt;
  &lt;br /&gt;
  Firmware update complete.&lt;br /&gt;
  &lt;br /&gt;
  Resetting...&lt;br /&gt;
  &lt;br /&gt;
  U-Boot 1.1.4.2-s594 (Dec  5 2012 - 15:23:07)&lt;br /&gt;
  &lt;br /&gt;
  Board: Ubiquiti Networks XM board (rev 1.0 e012)&lt;br /&gt;
&lt;br /&gt;
Attempting to run the same process after performing an official firmware update doesn't resolve the issue.&lt;br /&gt;
&lt;br /&gt;
=== Nanostation M5 ===&lt;br /&gt;
&lt;br /&gt;
Official firmware from Ubiquity Nanostation M5 (NSM5)&lt;br /&gt;
&lt;br /&gt;
* [https://www.ubnt.com/download/airmax-m/nanostationm/default/airos-xw-board-firmware-v564 airOS for XW board firmware v5.6.4]&lt;br /&gt;
&lt;br /&gt;
==== Firmware check failure ====&lt;br /&gt;
&lt;br /&gt;
Flashing the Nanostation M5 (FCC ID: SWX-NSM5D) using the TFTP rescue mode will result in a Firmware check failure error.&lt;br /&gt;
&lt;br /&gt;
If you attempt to flash the extender and receive a 'Firmware check failed' error, then you have a version of the NSM5 that is protected from being flashed via the default TFTP method. You will need to obtain a serial to USB interface (USB to UART TTL Module Serial Converter, 5 pin) and use it to flash the firmware.&lt;br /&gt;
&lt;br /&gt;
   $ ./flasher.js openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin&lt;br /&gt;
   Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
   Connection timed out&lt;br /&gt;
   Sending openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
   [Error: (Server) Firmware check failed]&lt;br /&gt;
&lt;br /&gt;
When connected to the NSM5 via a serial connection, a similar error is displayed when attempting to load the SudoWRT firmware image.&lt;br /&gt;
&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Will reset device configuration (Reset button active after 10 seconds).&lt;br /&gt;
  Erasing sector 123..126&lt;br /&gt;
  &lt;br /&gt;
  First 0x7b last 0x7e sector size 0x10000&lt;br /&gt;
  .... done&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
  Receiving file from 192.168.1.10:49763&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware check failed! (1)&lt;br /&gt;
&lt;br /&gt;
===== Drop into U-Boot Command Prompt =====&lt;br /&gt;
&lt;br /&gt;
Connect a USB to Serial adapter to the correct pins of the NSM5, as shown above. Unplug the Ethernet cable from the device, and then plug it back in to provide Power Over Ethernet once again, resulting in a reboot of the device.&lt;br /&gt;
&lt;br /&gt;
During the boot process, press a key to during the boot process to make the [https://wiki.openwrt.org/doc/techref/bootloader/uboot U-Boot] bootloader to drop into a command line prompt.&lt;br /&gt;
&lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0&lt;br /&gt;
  ar7240&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Running TFTPd =====&lt;br /&gt;
&lt;br /&gt;
Although U-Boot can support two protocols for transfering files, kermit or y-modem, the bootloader does not support the &amp;lt;tt&amp;gt;loadb&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;loady&amp;lt;/tt&amp;gt;. Minicom only supports y-modem protocol.&lt;br /&gt;
&lt;br /&gt;
We do not have to resort to a direct serial file transfer however. The 'mtdparts' command that is used to define flash memory partitions can be used to reset the partition table to the defaults before running 'urescue' to start the TFTP server.&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; help mtdparts&lt;br /&gt;
  mtdparts &lt;br /&gt;
      - list partition table&lt;br /&gt;
  mtdparts delall&lt;br /&gt;
      - delete all partitions&lt;br /&gt;
  mtdparts del part-id&lt;br /&gt;
      - delete partition (e.g. part-id = nand0,1)&lt;br /&gt;
  mtdparts add &amp;lt;mtd-dev&amp;gt; &amp;lt;size&amp;gt;[@&amp;lt;offset&amp;gt;] [&amp;lt;name&amp;gt;] [ro]&lt;br /&gt;
      - add partition&lt;br /&gt;
  mtdparts default&lt;br /&gt;
      - reset partition table to defaults&lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
&lt;br /&gt;
In your other terminal window, run the ubi-flasher script.&lt;br /&gt;
&lt;br /&gt;
  $ ./flasher.js /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin&lt;br /&gt;
  Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
  Connection timed out&lt;br /&gt;
  Sending /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
  Firmware flashing begun!&lt;br /&gt;
  The firmware has been successfully sent to the router.&lt;br /&gt;
  In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up).&lt;br /&gt;
  This means that the router is flashing itself with the new firmware.&lt;br /&gt;
  Once the router goes back to having only the power LED lit, the router has been successfully flashed.&lt;br /&gt;
&lt;br /&gt;
In the terminal running Minicom you should see the firmware successfully flashing.&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:52289&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware Version: XW.ar934x.v6.0.0-OpenWrt-r47662&lt;br /&gt;
  Setting U-Boot environment variables&lt;br /&gt;
  Un-Protected 1 sectors&lt;br /&gt;
  Erasing Flash.... done&lt;br /&gt;
  Erased 1 sectors&lt;br /&gt;
  Writing to Flash... write addr: 9f040000&lt;br /&gt;
  done&lt;br /&gt;
  Protected 1 sectors&lt;br /&gt;
  Copying partition 'kernel' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x5 last 0x14 sector size 0x10000&lt;br /&gt;
  ................ done&lt;br /&gt;
  write addr: 9f050000&lt;br /&gt;
  Copying partition 'rootfs' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x15 last 0x6e sector size 0x10000&lt;br /&gt;
  .......................................................................................... done&lt;br /&gt;
  write addr: 9f150000&lt;br /&gt;
  &lt;br /&gt;
  Firmware update complete.&lt;br /&gt;
  &lt;br /&gt;
  Resetting...&lt;br /&gt;
  &lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ## Booting image at 9f050000 ...&lt;br /&gt;
     Image Name:   MIPS OpenWrt Linux-3.18.23&lt;br /&gt;
     Created:      2015-12-01   0:03:51 UTC&lt;br /&gt;
     Image Type:   MIPS Linux Kernel Image (lzma compressed)&lt;br /&gt;
     Data Size:    1135619 Bytes =  1.1 MB&lt;br /&gt;
     Load Address: 80060000&lt;br /&gt;
     Entry Point:  80060000&lt;br /&gt;
     Verifying Checksum at 0x9f050040 ...OK&lt;br /&gt;
     Uncompressing Kernel Image ... OK&lt;br /&gt;
  &lt;br /&gt;
  Starting kernel ...&lt;br /&gt;
  &lt;br /&gt;
  [    0.000000] Linux version 3.18.23 (sudowrt-builder@build-test2) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.04 r47662) ) #2 Mon Nov 5&lt;br /&gt;
&lt;br /&gt;
After it reboots if you see the first line mention 'sudowrt-builder', the device is booting the SudoWRT firmware build.&lt;br /&gt;
&lt;br /&gt;
You can press ENTER once it is finished, and it should drop into the command line for the SudoWRT system.&lt;br /&gt;
&lt;br /&gt;
  [   25.650000] jffs2: Newly-erased block contained word 0xdeadc0de at offset 0x00000000&lt;br /&gt;
  [   25.660000] done.&lt;br /&gt;
  [   25.660000] jffs2: notice: (993) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and.&lt;br /&gt;
  &lt;br /&gt;
  BusyBox v1.23.2 (2015-11-30 18:48:50 EST) built-in shell (ash)&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
    ._______.___    ._______.______  ._____  .___    .___ .______  ._____  &lt;br /&gt;
    :_ ____/|   |   : .____/:_ _   \ :_ ___\ |   |   : __|:      \ :_ ___\ &lt;br /&gt;
    |   _/  |   |   | : _/\ |   |   ||   |___|   |   | : ||       ||   |___&lt;br /&gt;
    |   |   |   |/\ |   /  \| . |   ||   /  ||   |/\ |   ||   |   ||   /  |&lt;br /&gt;
    |_. |   |   /  \|_.: __/|. ____/ |. __  ||   /  \|   ||___|   ||. __  |&lt;br /&gt;
      :/    |______/   :/    :/       :/ |. ||______/|___|    |___| :/ |. |&lt;br /&gt;
      :                      :        :   :/                        :   :/ &lt;br /&gt;
                                          :                             : &lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   sudo mesh v0.2 (fledgling.extender)&lt;br /&gt;
                                based on OpenWRT 15.05 (Chaos Calmer)&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   &amp;quot;When your rage is choking you, it is best to say nothing.&amp;quot; &lt;br /&gt;
                                              - Octavia E. Butler, Fledgling&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
  &lt;br /&gt;
  root@sudomesh-node:/#&lt;/div&gt;</summary>
		<author><name>Redconfetti</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10165</id>
		<title>Mesh/Flashing extender nodes</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10165"/>
		<updated>2016-05-08T08:12:24Z</updated>

		<summary type="html">&lt;p&gt;Redconfetti: /* NSM5 Official Firmware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Download the Image File For a Extender Node ==&lt;br /&gt;
&lt;br /&gt;
The extender nodes that we currently support are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Model No. !! OpenWRT Doc !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M5 || NSM5 || [https://wiki.openwrt.org/toh/ubiquiti/nanostationm5 OpenWRT Docs] || firmware: [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin pre 2015] or [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin 2015-2016]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M2 || NSM2 || [https://wiki.openwrt.org/toh/ubiquiti/nanostationm2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-om2p-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation 2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostation2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ath25.extender-node/openwrt-ath25-ubnt2-pico2-squashfs.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation M2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostationm2 OpenWRT Docs] || &lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobeam M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/nanobeam OpenWRT Docs] || &lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Bullet M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/bullet OpenWRT Docs] || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Flash the Extender Node ==&lt;br /&gt;
&lt;br /&gt;
* Configure your wired internet settings to use Manual IPv4 settings with IP: 192.168.1.10, subnet: 255.255.255.0, gateway: 0.0.0.0&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Plug another Ethernet cable into your antenna on one end and into the &amp;quot;POE&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Push a pin into the reset hole and hold it.&lt;br /&gt;
* With the pin held down, plug in the power to the power-over-ethernet power supply.&lt;br /&gt;
* Watch the lights on the antenna - they will all flash together a few times, then they will flash up and down.&lt;br /&gt;
* Once the lights on the antenna are flashing up and down, you can let go of the pin.&lt;br /&gt;
&lt;br /&gt;
You should be able to ping the extender at 192.168.1.20.&lt;br /&gt;
&lt;br /&gt;
  $ ping 192.168.1.20&lt;br /&gt;
  PING 192.168.1.20 (192.168.1.20) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=1 ttl=64 time=1.54 ms&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=2 ttl=64 time=0.826 ms&lt;br /&gt;
&lt;br /&gt;
In your Linux terminal, type:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/ubi-flasher&lt;br /&gt;
  cd ubi-flasher&lt;br /&gt;
  npm install&lt;br /&gt;
  ./flasher.js '&amp;lt;path to firmware&amp;gt;'&lt;br /&gt;
&lt;br /&gt;
The terminal will tell you &amp;quot;The firmware has been successfully sent to the router. In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up). This means that the router is flashing itself with the new firmware. Once the router goes back to having only the power LED lit, the router has been successfully flashed.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Wait until the antenna has only the power LED lit and you're done.&lt;br /&gt;
&lt;br /&gt;
Reconfigure your machine with the following static network configuration.&lt;br /&gt;
&lt;br /&gt;
* IP Address: 172.22.0.10&lt;br /&gt;
* Subnet mask:  255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0&lt;br /&gt;
&lt;br /&gt;
See Network Configuration Guides: [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20Linux Linux] [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20MacOS%20X Mac]&lt;br /&gt;
&lt;br /&gt;
If you ping the extender node on 172.22.0.2 and it responds, it should be ready to connect to your home node on the appropriate wired Ethernet port.&lt;br /&gt;
&lt;br /&gt;
  $ ping 172.22.0.2&lt;br /&gt;
  PING 172.22.0.2 (172.22.0.2) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=1 ttl=64 time=0.617 ms&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=2 ttl=64 time=0.316 ms&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=3 ttl=64 time=0.398 ms&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Extender Detection ==&lt;br /&gt;
&lt;br /&gt;
Log into your home node via SSH, and tail &amp;lt;tt&amp;gt;/var/log/messages&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver: eth0.3: Physical disconnect detected&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver: Listening on interface eth0.3:&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver:   client IP: 100.64.37.3&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver:   client netmask 26&lt;br /&gt;
  Sun May  8 00:51:12 2016 daemon.debug notdhcpserver: eth0.3: Recieved HEARTBEAT for interface that hadn't been ACKed.&lt;br /&gt;
  ...&lt;br /&gt;
  Sun May  8 00:54:00 2016 daemon.debug notdhcpserver: eth0.3: Recieved HEARTBEAT for interface that hadn't been ACKed.&lt;br /&gt;
  Sun May  8 00:54:00 2016 daemon.info hostapd: priv5: STA 80:e6:50:0e:fe:6e WPA: group key handshake completed (RSN)&lt;br /&gt;
  Sun May  8 00:54:04 2016 daemon.debug notdhcpserver: eth0.2: Received lease request&lt;br /&gt;
  Sun May  8 00:54:04 2016 daemon.debug notdhcpserver: eth0.3: sending response (with ssl certificate)&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received ACK&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Running up hook script&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received redundant ACK&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received redundant ACK&lt;br /&gt;
&lt;br /&gt;
There should be a debug message in the log from notdhcpserver concerning the extender node.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== USB to Serial Connection ===&lt;br /&gt;
&lt;br /&gt;
If you experience trouble flashing your device via the web interface, or via the TFTP image upload method, you'll want to establish a serial connection to troubleshoot further. Methods for flashing your device involving a serial connection may become more common as devices adopt configurations to lock down [http://www.networkworld.com/article/3038722/mobile-wireless/manufacturers-start-to-lock-down-wi-fi-router-firmware-thanks-fcc.html wi-fi router firmware] to prevent flashing.&lt;br /&gt;
&lt;br /&gt;
The following notes describe steps to interface with a Nanostation M5 (NSM5) via the serial interface. &lt;br /&gt;
&lt;br /&gt;
==== Order a USB to Serial Converter ====&lt;br /&gt;
&lt;br /&gt;
USB to serial converter devices exist at a cost of $4 - $8 online, with much lower pricing and longer delivery times if ordered from China. Search for &amp;quot;USB to UART TTL&amp;quot;, including &amp;quot;5 pin&amp;quot; in the search. Make sure the specifications do not mention anything other than 3.3 volts.&lt;br /&gt;
&lt;br /&gt;
==== Connecting to Serial ====&lt;br /&gt;
&lt;br /&gt;
You will need to connect the following pins from the converter to the pins on the device.&lt;br /&gt;
&lt;br /&gt;
* Ground (GND)&lt;br /&gt;
* Serial Out (Transmit / TX)&lt;br /&gt;
* Serial In (Receive / RX)&lt;br /&gt;
&lt;br /&gt;
Begin by connecting the Ground of the converter to the Ground of the device. Next connect the Transmit/TX of the converter to the Receive/RX of the device, then connect the Receive/RX of the converter to the Transmit/TX of the device.&lt;br /&gt;
&lt;br /&gt;
Nanostation M5 (NSM5) Example:&lt;br /&gt;
&lt;br /&gt;
[[File:CP2102-usb-to-serial-converter.jpg|400px|KEDSUMÂ® CP2102 Module STC Download Cable USB 2.0 to TTL 6PIN Serial Converter For STC]]&lt;br /&gt;
&lt;br /&gt;
[[File:Ubiquity-NSM5-serial-connectors.jpg|400px|Ubiquiti Nanostation NSM5 - Serial pins with connections]]&lt;br /&gt;
&lt;br /&gt;
==== Serial Communications Program ====&lt;br /&gt;
&lt;br /&gt;
You need to install a serial communication program. Linux users can use Minicom.&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get install minicom&lt;br /&gt;
&lt;br /&gt;
By default the Minicom program will attempt to use /dev/tty8, and will also attempt to initialize the device (expecting a modem) by default.&lt;br /&gt;
&lt;br /&gt;
  $ minicom&lt;br /&gt;
  minicom: cannot open /dev/tty8: Permission denied&lt;br /&gt;
&lt;br /&gt;
Run the program so that it starts the program on the USB converter that is connected by adding &amp;lt;tt&amp;gt;-D /dev/ttyUSB0&amp;lt;/tt&amp;gt;, and specify that it should skip initialization by adding &amp;lt;tt&amp;gt;-o&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You can also specify from the command line that it use the baud rate and '8N1' settings specified below by including &amp;lt;tt&amp;gt;-b 115200 -8&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
  sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
&lt;br /&gt;
In Minicom, CTRL-A to get settings, then Press O, to access settings&lt;br /&gt;
&lt;br /&gt;
Go to Serial Port Setup, use these settings:&lt;br /&gt;
&lt;br /&gt;
* Set the serial device (should be /dev/tty/USB0)&lt;br /&gt;
* Baud Rate (Bits Per Second): 115200&lt;br /&gt;
* Settings '8N1' (short hand for 8 bits, no parity, 1 stop bit)&lt;br /&gt;
* Turn off hardware and software flow control&lt;br /&gt;
&lt;br /&gt;
Reboot the device, and it will let you drop into a command line. You will then have to figure out how to enable the network from the boot loader (Uboot or Redboot) and transfer the firmware to the device to flash it.&lt;br /&gt;
&lt;br /&gt;
==== Interupting Boot ====&lt;br /&gt;
&lt;br /&gt;
The device will not detect the key you press unless Minicom is configured properly.&lt;br /&gt;
&lt;br /&gt;
* To access the Help screen, Press CTRL-A, then press Z.&lt;br /&gt;
* To access the configuration/settings, press CTRL-A, then press O.&lt;br /&gt;
&lt;br /&gt;
From the configuration window, select to view the 'Serial port setup'&lt;br /&gt;
&lt;br /&gt;
  $ sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
  Welcome to minicom 2.7&lt;br /&gt;
  &lt;br /&gt;
  OPTIONS: I18n &lt;br /&gt;
  Compiled on Jan  1 2014, 17:13:19.&lt;br /&gt;
  Port /dev/ttyUSB0, 21:47:56&lt;br /&gt;
  &lt;br /&gt;
  Press CTRL-A Z for help on special keys&lt;br /&gt;
  &lt;br /&gt;
              +-----[configuration]------+&lt;br /&gt;
              | Filenames and paths      |&lt;br /&gt;
              | File transfer protocols  |&lt;br /&gt;
              | Serial port setup        |&lt;br /&gt;
              | Modem and dialing        |&lt;br /&gt;
              | Screen and keyboard      |&lt;br /&gt;
              | Save setup as dfl        |&lt;br /&gt;
              | Save setup as..          |&lt;br /&gt;
              | Exit                     |&lt;br /&gt;
              +--------------------------+&lt;br /&gt;
  &lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
  | A -    Serial Device      : /dev/ttyUSB0                              |&lt;br /&gt;
  | B - Lockfile Location     : /var/lock                                 |&lt;br /&gt;
  | C -   Callin Program      :                                           |&lt;br /&gt;
  | D -  Callout Program      :                                           |&lt;br /&gt;
  | E -    Bps/Par/Bits       : 115200 8N1                                |&lt;br /&gt;
  | F - Hardware Flow Control : Yes                                       |&lt;br /&gt;
  | G - Software Flow Control : No                                        |&lt;br /&gt;
  |                                                                       |&lt;br /&gt;
  |    Change which setting?                                              |&lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
&lt;br /&gt;
By default the Hardware Flow Control will be enabled. Press 'F' to disable Hardware Flow Control. Press ENTER to exit the Serial port setup window, and then select EXIT to go back to the program.&lt;br /&gt;
&lt;br /&gt;
At this point plug in the Ethernet cable to the 'Main' Ethernet port, with the other end connected to the 'POE' port on the Power Over Ethernet adapter that came with the device. As the device boots up, you'll see output similar to the following.&lt;br /&gt;
&lt;br /&gt;
You'll need to make sure to press a key before it boots the default image.&lt;br /&gt;
&lt;br /&gt;
=== Picostation M2HP ===&lt;br /&gt;
&lt;br /&gt;
Insightful post on [https://www.strugglingcoder.info/index.php/tag/ubnt/ loading FreeBSD image] with help from serial communications. Could be useful with troubleshooting other models.&lt;br /&gt;
=== Nanostation M2 ===&lt;br /&gt;
==== Firmware check failure ====&lt;br /&gt;
&lt;br /&gt;
The following are simply notes. A solution to this issue is still pending.&lt;br /&gt;
&lt;br /&gt;
Flashing the Nanostation M2 (FCC ID: SWX-M2N) using the TFTP rescue mode will result in a Firmware check failure error.&lt;br /&gt;
&lt;br /&gt;
  $ tftp 192.168.1.20&lt;br /&gt;
  tftp&amp;gt; bin&lt;br /&gt;
  tftp&amp;gt; put openwrt-ar71xx-generic-om2p-squashfs-factory.bin&lt;br /&gt;
  Error code 2: Firmware check failed&lt;br /&gt;
  Sent 4609024 bytes in 12.6 seconds&lt;br /&gt;
&lt;br /&gt;
You can boot up the M2 with a serial connection similar to the instructions below concerning the Nanostation M5.&lt;br /&gt;
&lt;br /&gt;
  Board: Ubiquiti Networks XM board (rev 1.0 e012)&lt;br /&gt;
  DRAM:  32 MB&lt;br /&gt;
  Flash:  8 MB&lt;br /&gt;
  PCIe WLAN Module found (#1).&lt;br /&gt;
  Net:   eth0, eth1&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: |&lt;br /&gt;
  Receiving file from 192.168.1.10:35456&lt;br /&gt;
  Received 4609501 bytes&lt;br /&gt;
  Firmware check failed! (-2)&lt;br /&gt;
&lt;br /&gt;
The method outlined for the Nanostation M5 below doesn't work with the M2.&lt;br /&gt;
&lt;br /&gt;
Update the firmware to [http://dl.ubnt.com/firmwares/XN-fw/v5.6.4/XM.v5.6.4.28924.160331.1253.bin airOS for XM board firmware v5.6.4].&lt;br /&gt;
&lt;br /&gt;
Serial Connection:&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
&lt;br /&gt;
Terminal:&lt;br /&gt;
&lt;br /&gt;
  $ tftp 192.168.1.20&lt;br /&gt;
  tftp&amp;gt; bin&lt;br /&gt;
  tftp&amp;gt; put XM.v5.6.4.28924.160331.1253.bin&lt;br /&gt;
  Sent 7537129 bytes in 20.8 seconds&lt;br /&gt;
&lt;br /&gt;
Serial Connection:&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:55113&lt;br /&gt;
  Received 7537129 bytes&lt;br /&gt;
  Firmware Version: XM.ar7240.v5.6.4.28924.160331.1253&lt;br /&gt;
  Setting U-Boot environment variables&lt;br /&gt;
  Un-Protected 1 sectors&lt;br /&gt;
  Erasing Flash.... done&lt;br /&gt;
  Erased 1 sectors&lt;br /&gt;
  Writing to Flash... done&lt;br /&gt;
  Protected 1 sectors&lt;br /&gt;
  Will not overwrite u-boot partition! Skipped.&lt;br /&gt;
  Copying partition 'kernel' to flash memory:&lt;br /&gt;
          erasing range 0x9F050000..0x9F14FFFF: ................ done&lt;br /&gt;
  Erased 16 sectors&lt;br /&gt;
          writing to address 0x9f050000, length 0x00100000 ...&lt;br /&gt;
  Copying partition 'rootfs' to flash memory:&lt;br /&gt;
          erasing range 0x9F150000..0x9F74FFFF: .............................................................................................e&lt;br /&gt;
  Erased 96 sectors&lt;br /&gt;
          writing to address 0x9f150000, length 0x00600000 ...&lt;br /&gt;
  &lt;br /&gt;
  Firmware update complete.&lt;br /&gt;
  &lt;br /&gt;
  Resetting...&lt;br /&gt;
  &lt;br /&gt;
  U-Boot 1.1.4.2-s594 (Dec  5 2012 - 15:23:07)&lt;br /&gt;
  &lt;br /&gt;
  Board: Ubiquiti Networks XM board (rev 1.0 e012)&lt;br /&gt;
&lt;br /&gt;
Attempting to run the same process after performing an official firmware update doesn't resolve the issue.&lt;br /&gt;
&lt;br /&gt;
=== Nanostation M5 ===&lt;br /&gt;
&lt;br /&gt;
Official firmware from Ubiquity Nanostation M5 (NSM5)&lt;br /&gt;
&lt;br /&gt;
* [https://www.ubnt.com/download/airmax-m/nanostationm/default/airos-xw-board-firmware-v564 airOS for XW board firmware v5.6.4]&lt;br /&gt;
&lt;br /&gt;
==== Firmware check failure ====&lt;br /&gt;
&lt;br /&gt;
Flashing the Nanostation M5 (FCC ID: SWX-NSM5D) using the TFTP rescue mode will result in a Firmware check failure error.&lt;br /&gt;
&lt;br /&gt;
If you attempt to flash the extender and receive a 'Firmware check failed' error, then you have a version of the NSM5 that is protected from being flashed via the default TFTP method. You will need to obtain a serial to USB interface (USB to UART TTL Module Serial Converter, 5 pin) and use it to flash the firmware.&lt;br /&gt;
&lt;br /&gt;
   $ ./flasher.js openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin&lt;br /&gt;
   Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
   Connection timed out&lt;br /&gt;
   Sending openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
   [Error: (Server) Firmware check failed]&lt;br /&gt;
&lt;br /&gt;
When connected to the NSM5 via a serial connection, a similar error is displayed when attempting to load the SudoWRT firmware image.&lt;br /&gt;
&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Will reset device configuration (Reset button active after 10 seconds).&lt;br /&gt;
  Erasing sector 123..126&lt;br /&gt;
  &lt;br /&gt;
  First 0x7b last 0x7e sector size 0x10000&lt;br /&gt;
  .... done&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
  Receiving file from 192.168.1.10:49763&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware check failed! (1)&lt;br /&gt;
&lt;br /&gt;
===== Drop into U-Boot Command Prompt =====&lt;br /&gt;
&lt;br /&gt;
Press a key to during the boot process to make the [https://wiki.openwrt.org/doc/techref/bootloader/uboot U-Boot] bootloader to drop into a command line prompt.&lt;br /&gt;
&lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0&lt;br /&gt;
  ar7240&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Running TFTPd =====&lt;br /&gt;
&lt;br /&gt;
Although U-Boot can support two protocols for transfering files, kermit or y-modem, the bootloader does not support the &amp;lt;tt&amp;gt;loadb&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;loady&amp;lt;/tt&amp;gt;. Minicom only supports y-modem protocol.&lt;br /&gt;
&lt;br /&gt;
We do not have to resort to a direct serial file transfer however. The 'mtdparts' command that is used to define flash memory partitions can be used to reset the partition table to the defaults before running 'urescue' to start the TFTP server.&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; help mtdparts&lt;br /&gt;
  mtdparts &lt;br /&gt;
      - list partition table&lt;br /&gt;
  mtdparts delall&lt;br /&gt;
      - delete all partitions&lt;br /&gt;
  mtdparts del part-id&lt;br /&gt;
      - delete partition (e.g. part-id = nand0,1)&lt;br /&gt;
  mtdparts add &amp;lt;mtd-dev&amp;gt; &amp;lt;size&amp;gt;[@&amp;lt;offset&amp;gt;] [&amp;lt;name&amp;gt;] [ro]&lt;br /&gt;
      - add partition&lt;br /&gt;
  mtdparts default&lt;br /&gt;
      - reset partition table to defaults&lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
&lt;br /&gt;
In your other terminal window, run the ubi-flasher script.&lt;br /&gt;
&lt;br /&gt;
  $ ./flasher.js /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin&lt;br /&gt;
  Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
  Connection timed out&lt;br /&gt;
  Sending /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
  Firmware flashing begun!&lt;br /&gt;
  The firmware has been successfully sent to the router.&lt;br /&gt;
  In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up).&lt;br /&gt;
  This means that the router is flashing itself with the new firmware.&lt;br /&gt;
  Once the router goes back to having only the power LED lit, the router has been successfully flashed.&lt;br /&gt;
&lt;br /&gt;
In the terminal running Minicom you should see the firmware successfully flashing.&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:52289&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware Version: XW.ar934x.v6.0.0-OpenWrt-r47662&lt;br /&gt;
  Setting U-Boot environment variables&lt;br /&gt;
  Un-Protected 1 sectors&lt;br /&gt;
  Erasing Flash.... done&lt;br /&gt;
  Erased 1 sectors&lt;br /&gt;
  Writing to Flash... write addr: 9f040000&lt;br /&gt;
  done&lt;br /&gt;
  Protected 1 sectors&lt;br /&gt;
  Copying partition 'kernel' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x5 last 0x14 sector size 0x10000&lt;br /&gt;
  ................ done&lt;br /&gt;
  write addr: 9f050000&lt;br /&gt;
  Copying partition 'rootfs' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x15 last 0x6e sector size 0x10000&lt;br /&gt;
  .......................................................................................... done&lt;br /&gt;
  write addr: 9f150000&lt;br /&gt;
  &lt;br /&gt;
  Firmware update complete.&lt;br /&gt;
  &lt;br /&gt;
  Resetting...&lt;br /&gt;
  &lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ## Booting image at 9f050000 ...&lt;br /&gt;
     Image Name:   MIPS OpenWrt Linux-3.18.23&lt;br /&gt;
     Created:      2015-12-01   0:03:51 UTC&lt;br /&gt;
     Image Type:   MIPS Linux Kernel Image (lzma compressed)&lt;br /&gt;
     Data Size:    1135619 Bytes =  1.1 MB&lt;br /&gt;
     Load Address: 80060000&lt;br /&gt;
     Entry Point:  80060000&lt;br /&gt;
     Verifying Checksum at 0x9f050040 ...OK&lt;br /&gt;
     Uncompressing Kernel Image ... OK&lt;br /&gt;
  &lt;br /&gt;
  Starting kernel ...&lt;br /&gt;
  &lt;br /&gt;
  [    0.000000] Linux version 3.18.23 (sudowrt-builder@build-test2) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.04 r47662) ) #2 Mon Nov 5&lt;br /&gt;
&lt;br /&gt;
After it reboots if you see the first line mention 'sudowrt-builder', the device is booting the SudoWRT firmware build.&lt;br /&gt;
&lt;br /&gt;
You can press ENTER once it is finished, and it should drop into the command line for the SudoWRT system.&lt;br /&gt;
&lt;br /&gt;
  [   25.650000] jffs2: Newly-erased block contained word 0xdeadc0de at offset 0x00000000&lt;br /&gt;
  [   25.660000] done.&lt;br /&gt;
  [   25.660000] jffs2: notice: (993) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and.&lt;br /&gt;
  &lt;br /&gt;
  BusyBox v1.23.2 (2015-11-30 18:48:50 EST) built-in shell (ash)&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
    ._______.___    ._______.______  ._____  .___    .___ .______  ._____  &lt;br /&gt;
    :_ ____/|   |   : .____/:_ _   \ :_ ___\ |   |   : __|:      \ :_ ___\ &lt;br /&gt;
    |   _/  |   |   | : _/\ |   |   ||   |___|   |   | : ||       ||   |___&lt;br /&gt;
    |   |   |   |/\ |   /  \| . |   ||   /  ||   |/\ |   ||   |   ||   /  |&lt;br /&gt;
    |_. |   |   /  \|_.: __/|. ____/ |. __  ||   /  \|   ||___|   ||. __  |&lt;br /&gt;
      :/    |______/   :/    :/       :/ |. ||______/|___|    |___| :/ |. |&lt;br /&gt;
      :                      :        :   :/                        :   :/ &lt;br /&gt;
                                          :                             : &lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   sudo mesh v0.2 (fledgling.extender)&lt;br /&gt;
                                based on OpenWRT 15.05 (Chaos Calmer)&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   &amp;quot;When your rage is choking you, it is best to say nothing.&amp;quot; &lt;br /&gt;
                                              - Octavia E. Butler, Fledgling&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
  &lt;br /&gt;
  root@sudomesh-node:/#&lt;/div&gt;</summary>
		<author><name>Redconfetti</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10164</id>
		<title>Mesh/Flashing extender nodes</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10164"/>
		<updated>2016-05-08T08:10:56Z</updated>

		<summary type="html">&lt;p&gt;Redconfetti: /* Nanostation M5 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Download the Image File For a Extender Node ==&lt;br /&gt;
&lt;br /&gt;
The extender nodes that we currently support are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Model No. !! OpenWRT Doc !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M5 || NSM5 || [https://wiki.openwrt.org/toh/ubiquiti/nanostationm5 OpenWRT Docs] || firmware: [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin pre 2015] or [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin 2015-2016]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M2 || NSM2 || [https://wiki.openwrt.org/toh/ubiquiti/nanostationm2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-om2p-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation 2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostation2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ath25.extender-node/openwrt-ath25-ubnt2-pico2-squashfs.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation M2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostationm2 OpenWRT Docs] || &lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobeam M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/nanobeam OpenWRT Docs] || &lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Bullet M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/bullet OpenWRT Docs] || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Flash the Extender Node ==&lt;br /&gt;
&lt;br /&gt;
* Configure your wired internet settings to use Manual IPv4 settings with IP: 192.168.1.10, subnet: 255.255.255.0, gateway: 0.0.0.0&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Plug another Ethernet cable into your antenna on one end and into the &amp;quot;POE&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Push a pin into the reset hole and hold it.&lt;br /&gt;
* With the pin held down, plug in the power to the power-over-ethernet power supply.&lt;br /&gt;
* Watch the lights on the antenna - they will all flash together a few times, then they will flash up and down.&lt;br /&gt;
* Once the lights on the antenna are flashing up and down, you can let go of the pin.&lt;br /&gt;
&lt;br /&gt;
You should be able to ping the extender at 192.168.1.20.&lt;br /&gt;
&lt;br /&gt;
  $ ping 192.168.1.20&lt;br /&gt;
  PING 192.168.1.20 (192.168.1.20) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=1 ttl=64 time=1.54 ms&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=2 ttl=64 time=0.826 ms&lt;br /&gt;
&lt;br /&gt;
In your Linux terminal, type:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/ubi-flasher&lt;br /&gt;
  cd ubi-flasher&lt;br /&gt;
  npm install&lt;br /&gt;
  ./flasher.js '&amp;lt;path to firmware&amp;gt;'&lt;br /&gt;
&lt;br /&gt;
The terminal will tell you &amp;quot;The firmware has been successfully sent to the router. In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up). This means that the router is flashing itself with the new firmware. Once the router goes back to having only the power LED lit, the router has been successfully flashed.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Wait until the antenna has only the power LED lit and you're done.&lt;br /&gt;
&lt;br /&gt;
Reconfigure your machine with the following static network configuration.&lt;br /&gt;
&lt;br /&gt;
* IP Address: 172.22.0.10&lt;br /&gt;
* Subnet mask:  255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0&lt;br /&gt;
&lt;br /&gt;
See Network Configuration Guides: [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20Linux Linux] [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20MacOS%20X Mac]&lt;br /&gt;
&lt;br /&gt;
If you ping the extender node on 172.22.0.2 and it responds, it should be ready to connect to your home node on the appropriate wired Ethernet port.&lt;br /&gt;
&lt;br /&gt;
  $ ping 172.22.0.2&lt;br /&gt;
  PING 172.22.0.2 (172.22.0.2) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=1 ttl=64 time=0.617 ms&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=2 ttl=64 time=0.316 ms&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=3 ttl=64 time=0.398 ms&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Extender Detection ==&lt;br /&gt;
&lt;br /&gt;
Log into your home node via SSH, and tail &amp;lt;tt&amp;gt;/var/log/messages&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver: eth0.3: Physical disconnect detected&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver: Listening on interface eth0.3:&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver:   client IP: 100.64.37.3&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver:   client netmask 26&lt;br /&gt;
  Sun May  8 00:51:12 2016 daemon.debug notdhcpserver: eth0.3: Recieved HEARTBEAT for interface that hadn't been ACKed.&lt;br /&gt;
  ...&lt;br /&gt;
  Sun May  8 00:54:00 2016 daemon.debug notdhcpserver: eth0.3: Recieved HEARTBEAT for interface that hadn't been ACKed.&lt;br /&gt;
  Sun May  8 00:54:00 2016 daemon.info hostapd: priv5: STA 80:e6:50:0e:fe:6e WPA: group key handshake completed (RSN)&lt;br /&gt;
  Sun May  8 00:54:04 2016 daemon.debug notdhcpserver: eth0.2: Received lease request&lt;br /&gt;
  Sun May  8 00:54:04 2016 daemon.debug notdhcpserver: eth0.3: sending response (with ssl certificate)&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received ACK&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Running up hook script&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received redundant ACK&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received redundant ACK&lt;br /&gt;
&lt;br /&gt;
There should be a debug message in the log from notdhcpserver concerning the extender node.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== USB to Serial Connection ===&lt;br /&gt;
&lt;br /&gt;
If you experience trouble flashing your device via the web interface, or via the TFTP image upload method, you'll want to establish a serial connection to troubleshoot further. Methods for flashing your device involving a serial connection may become more common as devices adopt configurations to lock down [http://www.networkworld.com/article/3038722/mobile-wireless/manufacturers-start-to-lock-down-wi-fi-router-firmware-thanks-fcc.html wi-fi router firmware] to prevent flashing.&lt;br /&gt;
&lt;br /&gt;
The following notes describe steps to interface with a Nanostation M5 (NSM5) via the serial interface. &lt;br /&gt;
&lt;br /&gt;
==== Order a USB to Serial Converter ====&lt;br /&gt;
&lt;br /&gt;
USB to serial converter devices exist at a cost of $4 - $8 online, with much lower pricing and longer delivery times if ordered from China. Search for &amp;quot;USB to UART TTL&amp;quot;, including &amp;quot;5 pin&amp;quot; in the search. Make sure the specifications do not mention anything other than 3.3 volts.&lt;br /&gt;
&lt;br /&gt;
==== Connecting to Serial ====&lt;br /&gt;
&lt;br /&gt;
You will need to connect the following pins from the converter to the pins on the device.&lt;br /&gt;
&lt;br /&gt;
* Ground (GND)&lt;br /&gt;
* Serial Out (Transmit / TX)&lt;br /&gt;
* Serial In (Receive / RX)&lt;br /&gt;
&lt;br /&gt;
Begin by connecting the Ground of the converter to the Ground of the device. Next connect the Transmit/TX of the converter to the Receive/RX of the device, then connect the Receive/RX of the converter to the Transmit/TX of the device.&lt;br /&gt;
&lt;br /&gt;
Nanostation M5 (NSM5) Example:&lt;br /&gt;
&lt;br /&gt;
[[File:CP2102-usb-to-serial-converter.jpg|400px|KEDSUMÂ® CP2102 Module STC Download Cable USB 2.0 to TTL 6PIN Serial Converter For STC]]&lt;br /&gt;
&lt;br /&gt;
[[File:Ubiquity-NSM5-serial-connectors.jpg|400px|Ubiquiti Nanostation NSM5 - Serial pins with connections]]&lt;br /&gt;
&lt;br /&gt;
==== Serial Communications Program ====&lt;br /&gt;
&lt;br /&gt;
You need to install a serial communication program. Linux users can use Minicom.&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get install minicom&lt;br /&gt;
&lt;br /&gt;
By default the Minicom program will attempt to use /dev/tty8, and will also attempt to initialize the device (expecting a modem) by default.&lt;br /&gt;
&lt;br /&gt;
  $ minicom&lt;br /&gt;
  minicom: cannot open /dev/tty8: Permission denied&lt;br /&gt;
&lt;br /&gt;
Run the program so that it starts the program on the USB converter that is connected by adding &amp;lt;tt&amp;gt;-D /dev/ttyUSB0&amp;lt;/tt&amp;gt;, and specify that it should skip initialization by adding &amp;lt;tt&amp;gt;-o&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You can also specify from the command line that it use the baud rate and '8N1' settings specified below by including &amp;lt;tt&amp;gt;-b 115200 -8&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
  sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
&lt;br /&gt;
In Minicom, CTRL-A to get settings, then Press O, to access settings&lt;br /&gt;
&lt;br /&gt;
Go to Serial Port Setup, use these settings:&lt;br /&gt;
&lt;br /&gt;
* Set the serial device (should be /dev/tty/USB0)&lt;br /&gt;
* Baud Rate (Bits Per Second): 115200&lt;br /&gt;
* Settings '8N1' (short hand for 8 bits, no parity, 1 stop bit)&lt;br /&gt;
* Turn off hardware and software flow control&lt;br /&gt;
&lt;br /&gt;
Reboot the device, and it will let you drop into a command line. You will then have to figure out how to enable the network from the boot loader (Uboot or Redboot) and transfer the firmware to the device to flash it.&lt;br /&gt;
&lt;br /&gt;
==== Interupting Boot ====&lt;br /&gt;
&lt;br /&gt;
The device will not detect the key you press unless Minicom is configured properly.&lt;br /&gt;
&lt;br /&gt;
* To access the Help screen, Press CTRL-A, then press Z.&lt;br /&gt;
* To access the configuration/settings, press CTRL-A, then press O.&lt;br /&gt;
&lt;br /&gt;
From the configuration window, select to view the 'Serial port setup'&lt;br /&gt;
&lt;br /&gt;
  $ sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
  Welcome to minicom 2.7&lt;br /&gt;
  &lt;br /&gt;
  OPTIONS: I18n &lt;br /&gt;
  Compiled on Jan  1 2014, 17:13:19.&lt;br /&gt;
  Port /dev/ttyUSB0, 21:47:56&lt;br /&gt;
  &lt;br /&gt;
  Press CTRL-A Z for help on special keys&lt;br /&gt;
  &lt;br /&gt;
              +-----[configuration]------+&lt;br /&gt;
              | Filenames and paths      |&lt;br /&gt;
              | File transfer protocols  |&lt;br /&gt;
              | Serial port setup        |&lt;br /&gt;
              | Modem and dialing        |&lt;br /&gt;
              | Screen and keyboard      |&lt;br /&gt;
              | Save setup as dfl        |&lt;br /&gt;
              | Save setup as..          |&lt;br /&gt;
              | Exit                     |&lt;br /&gt;
              +--------------------------+&lt;br /&gt;
  &lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
  | A -    Serial Device      : /dev/ttyUSB0                              |&lt;br /&gt;
  | B - Lockfile Location     : /var/lock                                 |&lt;br /&gt;
  | C -   Callin Program      :                                           |&lt;br /&gt;
  | D -  Callout Program      :                                           |&lt;br /&gt;
  | E -    Bps/Par/Bits       : 115200 8N1                                |&lt;br /&gt;
  | F - Hardware Flow Control : Yes                                       |&lt;br /&gt;
  | G - Software Flow Control : No                                        |&lt;br /&gt;
  |                                                                       |&lt;br /&gt;
  |    Change which setting?                                              |&lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
&lt;br /&gt;
By default the Hardware Flow Control will be enabled. Press 'F' to disable Hardware Flow Control. Press ENTER to exit the Serial port setup window, and then select EXIT to go back to the program.&lt;br /&gt;
&lt;br /&gt;
At this point plug in the Ethernet cable to the 'Main' Ethernet port, with the other end connected to the 'POE' port on the Power Over Ethernet adapter that came with the device. As the device boots up, you'll see output similar to the following.&lt;br /&gt;
&lt;br /&gt;
You'll need to make sure to press a key before it boots the default image.&lt;br /&gt;
&lt;br /&gt;
=== Picostation M2HP ===&lt;br /&gt;
&lt;br /&gt;
Insightful post on [https://www.strugglingcoder.info/index.php/tag/ubnt/ loading FreeBSD image] with help from serial communications. Could be useful with troubleshooting other models.&lt;br /&gt;
=== Nanostation M2 ===&lt;br /&gt;
==== Firmware check failure ====&lt;br /&gt;
&lt;br /&gt;
The following are simply notes. A solution to this issue is still pending.&lt;br /&gt;
&lt;br /&gt;
Flashing the Nanostation M2 (FCC ID: SWX-M2N) using the TFTP rescue mode will result in a Firmware check failure error.&lt;br /&gt;
&lt;br /&gt;
  $ tftp 192.168.1.20&lt;br /&gt;
  tftp&amp;gt; bin&lt;br /&gt;
  tftp&amp;gt; put openwrt-ar71xx-generic-om2p-squashfs-factory.bin&lt;br /&gt;
  Error code 2: Firmware check failed&lt;br /&gt;
  Sent 4609024 bytes in 12.6 seconds&lt;br /&gt;
&lt;br /&gt;
You can boot up the M2 with a serial connection similar to the instructions below concerning the Nanostation M5.&lt;br /&gt;
&lt;br /&gt;
  Board: Ubiquiti Networks XM board (rev 1.0 e012)&lt;br /&gt;
  DRAM:  32 MB&lt;br /&gt;
  Flash:  8 MB&lt;br /&gt;
  PCIe WLAN Module found (#1).&lt;br /&gt;
  Net:   eth0, eth1&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: |&lt;br /&gt;
  Receiving file from 192.168.1.10:35456&lt;br /&gt;
  Received 4609501 bytes&lt;br /&gt;
  Firmware check failed! (-2)&lt;br /&gt;
&lt;br /&gt;
The method outlined for the Nanostation M5 below doesn't work with the M2.&lt;br /&gt;
&lt;br /&gt;
Update the firmware to [http://dl.ubnt.com/firmwares/XN-fw/v5.6.4/XM.v5.6.4.28924.160331.1253.bin airOS for XM board firmware v5.6.4].&lt;br /&gt;
&lt;br /&gt;
Serial Connection:&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
&lt;br /&gt;
Terminal:&lt;br /&gt;
&lt;br /&gt;
  $ tftp 192.168.1.20&lt;br /&gt;
  tftp&amp;gt; bin&lt;br /&gt;
  tftp&amp;gt; put XM.v5.6.4.28924.160331.1253.bin&lt;br /&gt;
  Sent 7537129 bytes in 20.8 seconds&lt;br /&gt;
&lt;br /&gt;
Serial Connection:&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:55113&lt;br /&gt;
  Received 7537129 bytes&lt;br /&gt;
  Firmware Version: XM.ar7240.v5.6.4.28924.160331.1253&lt;br /&gt;
  Setting U-Boot environment variables&lt;br /&gt;
  Un-Protected 1 sectors&lt;br /&gt;
  Erasing Flash.... done&lt;br /&gt;
  Erased 1 sectors&lt;br /&gt;
  Writing to Flash... done&lt;br /&gt;
  Protected 1 sectors&lt;br /&gt;
  Will not overwrite u-boot partition! Skipped.&lt;br /&gt;
  Copying partition 'kernel' to flash memory:&lt;br /&gt;
          erasing range 0x9F050000..0x9F14FFFF: ................ done&lt;br /&gt;
  Erased 16 sectors&lt;br /&gt;
          writing to address 0x9f050000, length 0x00100000 ...&lt;br /&gt;
  Copying partition 'rootfs' to flash memory:&lt;br /&gt;
          erasing range 0x9F150000..0x9F74FFFF: .............................................................................................e&lt;br /&gt;
  Erased 96 sectors&lt;br /&gt;
          writing to address 0x9f150000, length 0x00600000 ...&lt;br /&gt;
  &lt;br /&gt;
  Firmware update complete.&lt;br /&gt;
  &lt;br /&gt;
  Resetting...&lt;br /&gt;
  &lt;br /&gt;
  U-Boot 1.1.4.2-s594 (Dec  5 2012 - 15:23:07)&lt;br /&gt;
  &lt;br /&gt;
  Board: Ubiquiti Networks XM board (rev 1.0 e012)&lt;br /&gt;
&lt;br /&gt;
Attempting to run the same process after performing an official firmware update doesn't resolve the issue.&lt;br /&gt;
&lt;br /&gt;
=== Nanostation M5 ===&lt;br /&gt;
&lt;br /&gt;
Official firmware from Ubiquity Nanostation M5 (NSM5)&lt;br /&gt;
&lt;br /&gt;
* [https://www.ubnt.com/download/airmax-m/nanostationm/default/airos-xw-board-firmware-v564 airOS for XW board firmware v5.6.4]&lt;br /&gt;
&lt;br /&gt;
==== Firmware check failure ====&lt;br /&gt;
&lt;br /&gt;
Flashing the Nanostation M5 (FCC ID: SWX-NSM5D) using the TFTP rescue mode will result in a Firmware check failure error.&lt;br /&gt;
&lt;br /&gt;
If you attempt to flash the extender and receive a 'Firmware check failed' error, then you have a version of the NSM5 that is protected from being flashed via the default TFTP method. You will need to obtain a serial to USB interface (USB to UART TTL Module Serial Converter, 5 pin) and use it to flash the firmware.&lt;br /&gt;
&lt;br /&gt;
   $ ./flasher.js openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin&lt;br /&gt;
   Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
   Connection timed out&lt;br /&gt;
   Sending openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
   [Error: (Server) Firmware check failed]&lt;br /&gt;
&lt;br /&gt;
When connected to the NSM5 via a serial connection, a similar error is displayed when attempting to load the SudoWRT firmware image.&lt;br /&gt;
&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Will reset device configuration (Reset button active after 10 seconds).&lt;br /&gt;
  Erasing sector 123..126&lt;br /&gt;
  &lt;br /&gt;
  First 0x7b last 0x7e sector size 0x10000&lt;br /&gt;
  .... done&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
  Receiving file from 192.168.1.10:49763&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware check failed! (1)&lt;br /&gt;
&lt;br /&gt;
===== NSM5 Official Firmware =====&lt;br /&gt;
&lt;br /&gt;
Press a key to during the boot process to make U-Boot drop into the command line.&lt;br /&gt;
&lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0&lt;br /&gt;
  ar7240&amp;gt; &lt;br /&gt;
&lt;br /&gt;
This will cause the [https://wiki.openwrt.org/doc/techref/bootloader/uboot U-Boot] bootloader to drop into a command line.&lt;br /&gt;
&lt;br /&gt;
===== Running TFTPd =====&lt;br /&gt;
&lt;br /&gt;
Although U-Boot can support two protocols for transfering files, kermit or y-modem, the bootloader does not support the &amp;lt;tt&amp;gt;loadb&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;loady&amp;lt;/tt&amp;gt;. Minicom only supports y-modem protocol.&lt;br /&gt;
&lt;br /&gt;
We do not have to resort to a direct serial file transfer however. The 'mtdparts' command that is used to define flash memory partitions can be used to reset the partition table to the defaults before running 'urescue' to start the TFTP server.&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; help mtdparts&lt;br /&gt;
  mtdparts &lt;br /&gt;
      - list partition table&lt;br /&gt;
  mtdparts delall&lt;br /&gt;
      - delete all partitions&lt;br /&gt;
  mtdparts del part-id&lt;br /&gt;
      - delete partition (e.g. part-id = nand0,1)&lt;br /&gt;
  mtdparts add &amp;lt;mtd-dev&amp;gt; &amp;lt;size&amp;gt;[@&amp;lt;offset&amp;gt;] [&amp;lt;name&amp;gt;] [ro]&lt;br /&gt;
      - add partition&lt;br /&gt;
  mtdparts default&lt;br /&gt;
      - reset partition table to defaults&lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
&lt;br /&gt;
In your other terminal window, run the ubi-flasher script.&lt;br /&gt;
&lt;br /&gt;
  $ ./flasher.js /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin&lt;br /&gt;
  Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
  Connection timed out&lt;br /&gt;
  Sending /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
  Firmware flashing begun!&lt;br /&gt;
  The firmware has been successfully sent to the router.&lt;br /&gt;
  In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up).&lt;br /&gt;
  This means that the router is flashing itself with the new firmware.&lt;br /&gt;
  Once the router goes back to having only the power LED lit, the router has been successfully flashed.&lt;br /&gt;
&lt;br /&gt;
In the terminal running Minicom you should see the firmware successfully flashing.&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:52289&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware Version: XW.ar934x.v6.0.0-OpenWrt-r47662&lt;br /&gt;
  Setting U-Boot environment variables&lt;br /&gt;
  Un-Protected 1 sectors&lt;br /&gt;
  Erasing Flash.... done&lt;br /&gt;
  Erased 1 sectors&lt;br /&gt;
  Writing to Flash... write addr: 9f040000&lt;br /&gt;
  done&lt;br /&gt;
  Protected 1 sectors&lt;br /&gt;
  Copying partition 'kernel' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x5 last 0x14 sector size 0x10000&lt;br /&gt;
  ................ done&lt;br /&gt;
  write addr: 9f050000&lt;br /&gt;
  Copying partition 'rootfs' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x15 last 0x6e sector size 0x10000&lt;br /&gt;
  .......................................................................................... done&lt;br /&gt;
  write addr: 9f150000&lt;br /&gt;
  &lt;br /&gt;
  Firmware update complete.&lt;br /&gt;
  &lt;br /&gt;
  Resetting...&lt;br /&gt;
  &lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ## Booting image at 9f050000 ...&lt;br /&gt;
     Image Name:   MIPS OpenWrt Linux-3.18.23&lt;br /&gt;
     Created:      2015-12-01   0:03:51 UTC&lt;br /&gt;
     Image Type:   MIPS Linux Kernel Image (lzma compressed)&lt;br /&gt;
     Data Size:    1135619 Bytes =  1.1 MB&lt;br /&gt;
     Load Address: 80060000&lt;br /&gt;
     Entry Point:  80060000&lt;br /&gt;
     Verifying Checksum at 0x9f050040 ...OK&lt;br /&gt;
     Uncompressing Kernel Image ... OK&lt;br /&gt;
  &lt;br /&gt;
  Starting kernel ...&lt;br /&gt;
  &lt;br /&gt;
  [    0.000000] Linux version 3.18.23 (sudowrt-builder@build-test2) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.04 r47662) ) #2 Mon Nov 5&lt;br /&gt;
&lt;br /&gt;
After it reboots if you see the first line mention 'sudowrt-builder', the device is booting the SudoWRT firmware build.&lt;br /&gt;
&lt;br /&gt;
You can press ENTER once it is finished, and it should drop into the command line for the SudoWRT system.&lt;br /&gt;
&lt;br /&gt;
  [   25.650000] jffs2: Newly-erased block contained word 0xdeadc0de at offset 0x00000000&lt;br /&gt;
  [   25.660000] done.&lt;br /&gt;
  [   25.660000] jffs2: notice: (993) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and.&lt;br /&gt;
  &lt;br /&gt;
  BusyBox v1.23.2 (2015-11-30 18:48:50 EST) built-in shell (ash)&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
    ._______.___    ._______.______  ._____  .___    .___ .______  ._____  &lt;br /&gt;
    :_ ____/|   |   : .____/:_ _   \ :_ ___\ |   |   : __|:      \ :_ ___\ &lt;br /&gt;
    |   _/  |   |   | : _/\ |   |   ||   |___|   |   | : ||       ||   |___&lt;br /&gt;
    |   |   |   |/\ |   /  \| . |   ||   /  ||   |/\ |   ||   |   ||   /  |&lt;br /&gt;
    |_. |   |   /  \|_.: __/|. ____/ |. __  ||   /  \|   ||___|   ||. __  |&lt;br /&gt;
      :/    |______/   :/    :/       :/ |. ||______/|___|    |___| :/ |. |&lt;br /&gt;
      :                      :        :   :/                        :   :/ &lt;br /&gt;
                                          :                             : &lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   sudo mesh v0.2 (fledgling.extender)&lt;br /&gt;
                                based on OpenWRT 15.05 (Chaos Calmer)&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   &amp;quot;When your rage is choking you, it is best to say nothing.&amp;quot; &lt;br /&gt;
                                              - Octavia E. Butler, Fledgling&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
  &lt;br /&gt;
  root@sudomesh-node:/#&lt;/div&gt;</summary>
		<author><name>Redconfetti</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10163</id>
		<title>Mesh/Flashing extender nodes</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10163"/>
		<updated>2016-05-08T08:08:56Z</updated>

		<summary type="html">&lt;p&gt;Redconfetti: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Download the Image File For a Extender Node ==&lt;br /&gt;
&lt;br /&gt;
The extender nodes that we currently support are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Model No. !! OpenWRT Doc !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M5 || NSM5 || [https://wiki.openwrt.org/toh/ubiquiti/nanostationm5 OpenWRT Docs] || firmware: [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin pre 2015] or [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin 2015-2016]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M2 || NSM2 || [https://wiki.openwrt.org/toh/ubiquiti/nanostationm2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-om2p-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation 2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostation2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ath25.extender-node/openwrt-ath25-ubnt2-pico2-squashfs.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation M2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostationm2 OpenWRT Docs] || &lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobeam M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/nanobeam OpenWRT Docs] || &lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Bullet M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/bullet OpenWRT Docs] || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Flash the Extender Node ==&lt;br /&gt;
&lt;br /&gt;
* Configure your wired internet settings to use Manual IPv4 settings with IP: 192.168.1.10, subnet: 255.255.255.0, gateway: 0.0.0.0&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Plug another Ethernet cable into your antenna on one end and into the &amp;quot;POE&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Push a pin into the reset hole and hold it.&lt;br /&gt;
* With the pin held down, plug in the power to the power-over-ethernet power supply.&lt;br /&gt;
* Watch the lights on the antenna - they will all flash together a few times, then they will flash up and down.&lt;br /&gt;
* Once the lights on the antenna are flashing up and down, you can let go of the pin.&lt;br /&gt;
&lt;br /&gt;
You should be able to ping the extender at 192.168.1.20.&lt;br /&gt;
&lt;br /&gt;
  $ ping 192.168.1.20&lt;br /&gt;
  PING 192.168.1.20 (192.168.1.20) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=1 ttl=64 time=1.54 ms&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=2 ttl=64 time=0.826 ms&lt;br /&gt;
&lt;br /&gt;
In your Linux terminal, type:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/ubi-flasher&lt;br /&gt;
  cd ubi-flasher&lt;br /&gt;
  npm install&lt;br /&gt;
  ./flasher.js '&amp;lt;path to firmware&amp;gt;'&lt;br /&gt;
&lt;br /&gt;
The terminal will tell you &amp;quot;The firmware has been successfully sent to the router. In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up). This means that the router is flashing itself with the new firmware. Once the router goes back to having only the power LED lit, the router has been successfully flashed.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Wait until the antenna has only the power LED lit and you're done.&lt;br /&gt;
&lt;br /&gt;
Reconfigure your machine with the following static network configuration.&lt;br /&gt;
&lt;br /&gt;
* IP Address: 172.22.0.10&lt;br /&gt;
* Subnet mask:  255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0&lt;br /&gt;
&lt;br /&gt;
See Network Configuration Guides: [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20Linux Linux] [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20MacOS%20X Mac]&lt;br /&gt;
&lt;br /&gt;
If you ping the extender node on 172.22.0.2 and it responds, it should be ready to connect to your home node on the appropriate wired Ethernet port.&lt;br /&gt;
&lt;br /&gt;
  $ ping 172.22.0.2&lt;br /&gt;
  PING 172.22.0.2 (172.22.0.2) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=1 ttl=64 time=0.617 ms&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=2 ttl=64 time=0.316 ms&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=3 ttl=64 time=0.398 ms&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Extender Detection ==&lt;br /&gt;
&lt;br /&gt;
Log into your home node via SSH, and tail &amp;lt;tt&amp;gt;/var/log/messages&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver: eth0.3: Physical disconnect detected&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver: Listening on interface eth0.3:&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver:   client IP: 100.64.37.3&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver:   client netmask 26&lt;br /&gt;
  Sun May  8 00:51:12 2016 daemon.debug notdhcpserver: eth0.3: Recieved HEARTBEAT for interface that hadn't been ACKed.&lt;br /&gt;
  ...&lt;br /&gt;
  Sun May  8 00:54:00 2016 daemon.debug notdhcpserver: eth0.3: Recieved HEARTBEAT for interface that hadn't been ACKed.&lt;br /&gt;
  Sun May  8 00:54:00 2016 daemon.info hostapd: priv5: STA 80:e6:50:0e:fe:6e WPA: group key handshake completed (RSN)&lt;br /&gt;
  Sun May  8 00:54:04 2016 daemon.debug notdhcpserver: eth0.2: Received lease request&lt;br /&gt;
  Sun May  8 00:54:04 2016 daemon.debug notdhcpserver: eth0.3: sending response (with ssl certificate)&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received ACK&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Running up hook script&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received redundant ACK&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received redundant ACK&lt;br /&gt;
&lt;br /&gt;
There should be a debug message in the log from notdhcpserver concerning the extender node.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== USB to Serial Connection ===&lt;br /&gt;
&lt;br /&gt;
If you experience trouble flashing your device via the web interface, or via the TFTP image upload method, you'll want to establish a serial connection to troubleshoot further. Methods for flashing your device involving a serial connection may become more common as devices adopt configurations to lock down [http://www.networkworld.com/article/3038722/mobile-wireless/manufacturers-start-to-lock-down-wi-fi-router-firmware-thanks-fcc.html wi-fi router firmware] to prevent flashing.&lt;br /&gt;
&lt;br /&gt;
The following notes describe steps to interface with a Nanostation M5 (NSM5) via the serial interface. &lt;br /&gt;
&lt;br /&gt;
==== Order a USB to Serial Converter ====&lt;br /&gt;
&lt;br /&gt;
USB to serial converter devices exist at a cost of $4 - $8 online, with much lower pricing and longer delivery times if ordered from China. Search for &amp;quot;USB to UART TTL&amp;quot;, including &amp;quot;5 pin&amp;quot; in the search. Make sure the specifications do not mention anything other than 3.3 volts.&lt;br /&gt;
&lt;br /&gt;
==== Connecting to Serial ====&lt;br /&gt;
&lt;br /&gt;
You will need to connect the following pins from the converter to the pins on the device.&lt;br /&gt;
&lt;br /&gt;
* Ground (GND)&lt;br /&gt;
* Serial Out (Transmit / TX)&lt;br /&gt;
* Serial In (Receive / RX)&lt;br /&gt;
&lt;br /&gt;
Begin by connecting the Ground of the converter to the Ground of the device. Next connect the Transmit/TX of the converter to the Receive/RX of the device, then connect the Receive/RX of the converter to the Transmit/TX of the device.&lt;br /&gt;
&lt;br /&gt;
Nanostation M5 (NSM5) Example:&lt;br /&gt;
&lt;br /&gt;
[[File:CP2102-usb-to-serial-converter.jpg|400px|KEDSUMÂ® CP2102 Module STC Download Cable USB 2.0 to TTL 6PIN Serial Converter For STC]]&lt;br /&gt;
&lt;br /&gt;
[[File:Ubiquity-NSM5-serial-connectors.jpg|400px|Ubiquiti Nanostation NSM5 - Serial pins with connections]]&lt;br /&gt;
&lt;br /&gt;
==== Serial Communications Program ====&lt;br /&gt;
&lt;br /&gt;
You need to install a serial communication program. Linux users can use Minicom.&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get install minicom&lt;br /&gt;
&lt;br /&gt;
By default the Minicom program will attempt to use /dev/tty8, and will also attempt to initialize the device (expecting a modem) by default.&lt;br /&gt;
&lt;br /&gt;
  $ minicom&lt;br /&gt;
  minicom: cannot open /dev/tty8: Permission denied&lt;br /&gt;
&lt;br /&gt;
Run the program so that it starts the program on the USB converter that is connected by adding &amp;lt;tt&amp;gt;-D /dev/ttyUSB0&amp;lt;/tt&amp;gt;, and specify that it should skip initialization by adding &amp;lt;tt&amp;gt;-o&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You can also specify from the command line that it use the baud rate and '8N1' settings specified below by including &amp;lt;tt&amp;gt;-b 115200 -8&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
  sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
&lt;br /&gt;
In Minicom, CTRL-A to get settings, then Press O, to access settings&lt;br /&gt;
&lt;br /&gt;
Go to Serial Port Setup, use these settings:&lt;br /&gt;
&lt;br /&gt;
* Set the serial device (should be /dev/tty/USB0)&lt;br /&gt;
* Baud Rate (Bits Per Second): 115200&lt;br /&gt;
* Settings '8N1' (short hand for 8 bits, no parity, 1 stop bit)&lt;br /&gt;
* Turn off hardware and software flow control&lt;br /&gt;
&lt;br /&gt;
Reboot the device, and it will let you drop into a command line. You will then have to figure out how to enable the network from the boot loader (Uboot or Redboot) and transfer the firmware to the device to flash it.&lt;br /&gt;
&lt;br /&gt;
==== Interupting Boot ====&lt;br /&gt;
&lt;br /&gt;
The device will not detect the key you press unless Minicom is configured properly.&lt;br /&gt;
&lt;br /&gt;
* To access the Help screen, Press CTRL-A, then press Z.&lt;br /&gt;
* To access the configuration/settings, press CTRL-A, then press O.&lt;br /&gt;
&lt;br /&gt;
From the configuration window, select to view the 'Serial port setup'&lt;br /&gt;
&lt;br /&gt;
  $ sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
  Welcome to minicom 2.7&lt;br /&gt;
  &lt;br /&gt;
  OPTIONS: I18n &lt;br /&gt;
  Compiled on Jan  1 2014, 17:13:19.&lt;br /&gt;
  Port /dev/ttyUSB0, 21:47:56&lt;br /&gt;
  &lt;br /&gt;
  Press CTRL-A Z for help on special keys&lt;br /&gt;
  &lt;br /&gt;
              +-----[configuration]------+&lt;br /&gt;
              | Filenames and paths      |&lt;br /&gt;
              | File transfer protocols  |&lt;br /&gt;
              | Serial port setup        |&lt;br /&gt;
              | Modem and dialing        |&lt;br /&gt;
              | Screen and keyboard      |&lt;br /&gt;
              | Save setup as dfl        |&lt;br /&gt;
              | Save setup as..          |&lt;br /&gt;
              | Exit                     |&lt;br /&gt;
              +--------------------------+&lt;br /&gt;
  &lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
  | A -    Serial Device      : /dev/ttyUSB0                              |&lt;br /&gt;
  | B - Lockfile Location     : /var/lock                                 |&lt;br /&gt;
  | C -   Callin Program      :                                           |&lt;br /&gt;
  | D -  Callout Program      :                                           |&lt;br /&gt;
  | E -    Bps/Par/Bits       : 115200 8N1                                |&lt;br /&gt;
  | F - Hardware Flow Control : Yes                                       |&lt;br /&gt;
  | G - Software Flow Control : No                                        |&lt;br /&gt;
  |                                                                       |&lt;br /&gt;
  |    Change which setting?                                              |&lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
&lt;br /&gt;
By default the Hardware Flow Control will be enabled. Press 'F' to disable Hardware Flow Control. Press ENTER to exit the Serial port setup window, and then select EXIT to go back to the program.&lt;br /&gt;
&lt;br /&gt;
At this point plug in the Ethernet cable to the 'Main' Ethernet port, with the other end connected to the 'POE' port on the Power Over Ethernet adapter that came with the device. As the device boots up, you'll see output similar to the following.&lt;br /&gt;
&lt;br /&gt;
You'll need to make sure to press a key before it boots the default image.&lt;br /&gt;
&lt;br /&gt;
=== Picostation M2HP ===&lt;br /&gt;
&lt;br /&gt;
Insightful post on [https://www.strugglingcoder.info/index.php/tag/ubnt/ loading FreeBSD image] with help from serial communications. Could be useful with troubleshooting other models.&lt;br /&gt;
=== Nanostation M2 ===&lt;br /&gt;
==== Firmware check failure ====&lt;br /&gt;
&lt;br /&gt;
The following are simply notes. A solution to this issue is still pending.&lt;br /&gt;
&lt;br /&gt;
Flashing the Nanostation M2 (FCC ID: SWX-M2N) using the TFTP rescue mode will result in a Firmware check failure error.&lt;br /&gt;
&lt;br /&gt;
  $ tftp 192.168.1.20&lt;br /&gt;
  tftp&amp;gt; bin&lt;br /&gt;
  tftp&amp;gt; put openwrt-ar71xx-generic-om2p-squashfs-factory.bin&lt;br /&gt;
  Error code 2: Firmware check failed&lt;br /&gt;
  Sent 4609024 bytes in 12.6 seconds&lt;br /&gt;
&lt;br /&gt;
You can boot up the M2 with a serial connection similar to the instructions below concerning the Nanostation M5.&lt;br /&gt;
&lt;br /&gt;
  Board: Ubiquiti Networks XM board (rev 1.0 e012)&lt;br /&gt;
  DRAM:  32 MB&lt;br /&gt;
  Flash:  8 MB&lt;br /&gt;
  PCIe WLAN Module found (#1).&lt;br /&gt;
  Net:   eth0, eth1&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: |&lt;br /&gt;
  Receiving file from 192.168.1.10:35456&lt;br /&gt;
  Received 4609501 bytes&lt;br /&gt;
  Firmware check failed! (-2)&lt;br /&gt;
&lt;br /&gt;
The method outlined for the Nanostation M5 below doesn't work with the M2.&lt;br /&gt;
&lt;br /&gt;
Update the firmware to [http://dl.ubnt.com/firmwares/XN-fw/v5.6.4/XM.v5.6.4.28924.160331.1253.bin airOS for XM board firmware v5.6.4].&lt;br /&gt;
&lt;br /&gt;
Serial Connection:&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
&lt;br /&gt;
Terminal:&lt;br /&gt;
&lt;br /&gt;
  $ tftp 192.168.1.20&lt;br /&gt;
  tftp&amp;gt; bin&lt;br /&gt;
  tftp&amp;gt; put XM.v5.6.4.28924.160331.1253.bin&lt;br /&gt;
  Sent 7537129 bytes in 20.8 seconds&lt;br /&gt;
&lt;br /&gt;
Serial Connection:&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:55113&lt;br /&gt;
  Received 7537129 bytes&lt;br /&gt;
  Firmware Version: XM.ar7240.v5.6.4.28924.160331.1253&lt;br /&gt;
  Setting U-Boot environment variables&lt;br /&gt;
  Un-Protected 1 sectors&lt;br /&gt;
  Erasing Flash.... done&lt;br /&gt;
  Erased 1 sectors&lt;br /&gt;
  Writing to Flash... done&lt;br /&gt;
  Protected 1 sectors&lt;br /&gt;
  Will not overwrite u-boot partition! Skipped.&lt;br /&gt;
  Copying partition 'kernel' to flash memory:&lt;br /&gt;
          erasing range 0x9F050000..0x9F14FFFF: ................ done&lt;br /&gt;
  Erased 16 sectors&lt;br /&gt;
          writing to address 0x9f050000, length 0x00100000 ...&lt;br /&gt;
  Copying partition 'rootfs' to flash memory:&lt;br /&gt;
          erasing range 0x9F150000..0x9F74FFFF: .............................................................................................e&lt;br /&gt;
  Erased 96 sectors&lt;br /&gt;
          writing to address 0x9f150000, length 0x00600000 ...&lt;br /&gt;
  &lt;br /&gt;
  Firmware update complete.&lt;br /&gt;
  &lt;br /&gt;
  Resetting...&lt;br /&gt;
  &lt;br /&gt;
  U-Boot 1.1.4.2-s594 (Dec  5 2012 - 15:23:07)&lt;br /&gt;
  &lt;br /&gt;
  Board: Ubiquiti Networks XM board (rev 1.0 e012)&lt;br /&gt;
&lt;br /&gt;
Attempting to run the same process after performing an official firmware update doesn't resolve the issue.&lt;br /&gt;
&lt;br /&gt;
=== Nanostation M5 ===&lt;br /&gt;
&lt;br /&gt;
==== Firmware check failure ====&lt;br /&gt;
&lt;br /&gt;
Flashing the Nanostation M5 (FCC ID: SWX-NSM5D) using the TFTP rescue mode will result in a Firmware check failure error.&lt;br /&gt;
&lt;br /&gt;
If you attempt to flash the extender and receive a 'Firmware check failed' error, then you have a version of the NSM5 that is protected from being flashed via the default TFTP method. You will need to obtain a serial to USB interface (USB to UART TTL Module Serial Converter, 5 pin) and use it to flash the firmware.&lt;br /&gt;
&lt;br /&gt;
   $ ./flasher.js openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin&lt;br /&gt;
   Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
   Connection timed out&lt;br /&gt;
   Sending openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
   [Error: (Server) Firmware check failed]&lt;br /&gt;
&lt;br /&gt;
When connected to the NSM5 via a serial connection, a similar error is displayed when attempting to load the SudoWRT firmware image.&lt;br /&gt;
&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Will reset device configuration (Reset button active after 10 seconds).&lt;br /&gt;
  Erasing sector 123..126&lt;br /&gt;
  &lt;br /&gt;
  First 0x7b last 0x7e sector size 0x10000&lt;br /&gt;
  .... done&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
  Receiving file from 192.168.1.10:49763&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware check failed! (1)&lt;br /&gt;
&lt;br /&gt;
===== NSM5 Official Firmware =====&lt;br /&gt;
&lt;br /&gt;
Official firmware from Ubiquity Nanostation M5 (NSM5)&lt;br /&gt;
&lt;br /&gt;
* [https://www.ubnt.com/download/airmax-m/nanostationm/default/airos-xw-board-firmware-v564 airOS for XW board firmware v5.6.4]&lt;br /&gt;
* [http://dl.ubnt.com/firmwares/XW-fw/v5.6.3/XW.v5.6.3.28591.151130.1735.bin airOS for XW board firmware v5.6.3]&lt;br /&gt;
&lt;br /&gt;
Press a key to during the boot process to make U-Boot drop into the command line.&lt;br /&gt;
&lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0&lt;br /&gt;
  ar7240&amp;gt; &lt;br /&gt;
&lt;br /&gt;
This will cause the [https://wiki.openwrt.org/doc/techref/bootloader/uboot U-Boot] bootloader to drop into a command line.&lt;br /&gt;
&lt;br /&gt;
===== Running TFTPd =====&lt;br /&gt;
&lt;br /&gt;
Although U-Boot can support two protocols for transfering files, kermit or y-modem, the bootloader does not support the &amp;lt;tt&amp;gt;loadb&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;loady&amp;lt;/tt&amp;gt;. Minicom only supports y-modem protocol.&lt;br /&gt;
&lt;br /&gt;
We do not have to resort to a direct serial file transfer however. The 'mtdparts' command that is used to define flash memory partitions can be used to reset the partition table to the defaults before running 'urescue' to start the TFTP server.&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; help mtdparts&lt;br /&gt;
  mtdparts &lt;br /&gt;
      - list partition table&lt;br /&gt;
  mtdparts delall&lt;br /&gt;
      - delete all partitions&lt;br /&gt;
  mtdparts del part-id&lt;br /&gt;
      - delete partition (e.g. part-id = nand0,1)&lt;br /&gt;
  mtdparts add &amp;lt;mtd-dev&amp;gt; &amp;lt;size&amp;gt;[@&amp;lt;offset&amp;gt;] [&amp;lt;name&amp;gt;] [ro]&lt;br /&gt;
      - add partition&lt;br /&gt;
  mtdparts default&lt;br /&gt;
      - reset partition table to defaults&lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
&lt;br /&gt;
In your other terminal window, run the ubi-flasher script.&lt;br /&gt;
&lt;br /&gt;
  $ ./flasher.js /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin&lt;br /&gt;
  Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
  Connection timed out&lt;br /&gt;
  Sending /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
  Firmware flashing begun!&lt;br /&gt;
  The firmware has been successfully sent to the router.&lt;br /&gt;
  In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up).&lt;br /&gt;
  This means that the router is flashing itself with the new firmware.&lt;br /&gt;
  Once the router goes back to having only the power LED lit, the router has been successfully flashed.&lt;br /&gt;
&lt;br /&gt;
In the terminal running Minicom you should see the firmware successfully flashing.&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:52289&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware Version: XW.ar934x.v6.0.0-OpenWrt-r47662&lt;br /&gt;
  Setting U-Boot environment variables&lt;br /&gt;
  Un-Protected 1 sectors&lt;br /&gt;
  Erasing Flash.... done&lt;br /&gt;
  Erased 1 sectors&lt;br /&gt;
  Writing to Flash... write addr: 9f040000&lt;br /&gt;
  done&lt;br /&gt;
  Protected 1 sectors&lt;br /&gt;
  Copying partition 'kernel' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x5 last 0x14 sector size 0x10000&lt;br /&gt;
  ................ done&lt;br /&gt;
  write addr: 9f050000&lt;br /&gt;
  Copying partition 'rootfs' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x15 last 0x6e sector size 0x10000&lt;br /&gt;
  .......................................................................................... done&lt;br /&gt;
  write addr: 9f150000&lt;br /&gt;
  &lt;br /&gt;
  Firmware update complete.&lt;br /&gt;
  &lt;br /&gt;
  Resetting...&lt;br /&gt;
  &lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ## Booting image at 9f050000 ...&lt;br /&gt;
     Image Name:   MIPS OpenWrt Linux-3.18.23&lt;br /&gt;
     Created:      2015-12-01   0:03:51 UTC&lt;br /&gt;
     Image Type:   MIPS Linux Kernel Image (lzma compressed)&lt;br /&gt;
     Data Size:    1135619 Bytes =  1.1 MB&lt;br /&gt;
     Load Address: 80060000&lt;br /&gt;
     Entry Point:  80060000&lt;br /&gt;
     Verifying Checksum at 0x9f050040 ...OK&lt;br /&gt;
     Uncompressing Kernel Image ... OK&lt;br /&gt;
  &lt;br /&gt;
  Starting kernel ...&lt;br /&gt;
  &lt;br /&gt;
  [    0.000000] Linux version 3.18.23 (sudowrt-builder@build-test2) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.04 r47662) ) #2 Mon Nov 5&lt;br /&gt;
&lt;br /&gt;
After it reboots if you see the first line mention 'sudowrt-builder', the device is booting the SudoWRT firmware build.&lt;br /&gt;
&lt;br /&gt;
You can press ENTER once it is finished, and it should drop into the command line for the SudoWRT system.&lt;br /&gt;
&lt;br /&gt;
  [   25.650000] jffs2: Newly-erased block contained word 0xdeadc0de at offset 0x00000000&lt;br /&gt;
  [   25.660000] done.&lt;br /&gt;
  [   25.660000] jffs2: notice: (993) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and.&lt;br /&gt;
  &lt;br /&gt;
  BusyBox v1.23.2 (2015-11-30 18:48:50 EST) built-in shell (ash)&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
    ._______.___    ._______.______  ._____  .___    .___ .______  ._____  &lt;br /&gt;
    :_ ____/|   |   : .____/:_ _   \ :_ ___\ |   |   : __|:      \ :_ ___\ &lt;br /&gt;
    |   _/  |   |   | : _/\ |   |   ||   |___|   |   | : ||       ||   |___&lt;br /&gt;
    |   |   |   |/\ |   /  \| . |   ||   /  ||   |/\ |   ||   |   ||   /  |&lt;br /&gt;
    |_. |   |   /  \|_.: __/|. ____/ |. __  ||   /  \|   ||___|   ||. __  |&lt;br /&gt;
      :/    |______/   :/    :/       :/ |. ||______/|___|    |___| :/ |. |&lt;br /&gt;
      :                      :        :   :/                        :   :/ &lt;br /&gt;
                                          :                             : &lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   sudo mesh v0.2 (fledgling.extender)&lt;br /&gt;
                                based on OpenWRT 15.05 (Chaos Calmer)&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   &amp;quot;When your rage is choking you, it is best to say nothing.&amp;quot; &lt;br /&gt;
                                              - Octavia E. Butler, Fledgling&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
  &lt;br /&gt;
  root@sudomesh-node:/#&lt;/div&gt;</summary>
		<author><name>Redconfetti</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10162</id>
		<title>Mesh/Flashing extender nodes</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10162"/>
		<updated>2016-05-08T07:56:31Z</updated>

		<summary type="html">&lt;p&gt;Redconfetti: /* Extender Detection */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Download the Image File For a Extender Node ==&lt;br /&gt;
&lt;br /&gt;
The extender nodes that we currently support are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Model No. !! OpenWRT Doc !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M5 || NSM5 || [https://wiki.openwrt.org/toh/ubiquiti/nanostationm5 OpenWRT Docs] || firmware: [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin pre 2015] or [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin 2015-2016]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M2 || NSM2 || [https://wiki.openwrt.org/toh/ubiquiti/nanostationm2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-om2p-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation 2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostation2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ath25.extender-node/openwrt-ath25-ubnt2-pico2-squashfs.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation M2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostationm2 OpenWRT Docs] || &lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobeam M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/nanobeam OpenWRT Docs] || &lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Bullet M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/bullet OpenWRT Docs] || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Flash the Extender Node ==&lt;br /&gt;
&lt;br /&gt;
* Configure your wired internet settings to use Manual IPv4 settings with IP: 192.168.1.10, subnet: 255.255.255.0, gateway: 0.0.0.0&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Plug another Ethernet cable into your antenna on one end and into the &amp;quot;POE&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Push a pin into the reset hole and hold it.&lt;br /&gt;
* With the pin held down, plug in the power to the power-over-ethernet power supply.&lt;br /&gt;
* Watch the lights on the antenna - they will all flash together a few times, then they will flash up and down.&lt;br /&gt;
* Once the lights on the antenna are flashing up and down, you can let go of the pin.&lt;br /&gt;
&lt;br /&gt;
You should be able to ping the extender at 192.168.1.20.&lt;br /&gt;
&lt;br /&gt;
  $ ping 192.168.1.20&lt;br /&gt;
  PING 192.168.1.20 (192.168.1.20) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=1 ttl=64 time=1.54 ms&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=2 ttl=64 time=0.826 ms&lt;br /&gt;
&lt;br /&gt;
In your Linux terminal, type:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/ubi-flasher&lt;br /&gt;
  cd ubi-flasher&lt;br /&gt;
  npm install&lt;br /&gt;
  ./flasher.js '&amp;lt;path to firmware&amp;gt;'&lt;br /&gt;
&lt;br /&gt;
The terminal will tell you &amp;quot;The firmware has been successfully sent to the router. In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up). This means that the router is flashing itself with the new firmware. Once the router goes back to having only the power LED lit, the router has been successfully flashed.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Wait until the antenna has only the power LED lit and you're done.&lt;br /&gt;
&lt;br /&gt;
Reconfigure your machine with the following static network configuration.&lt;br /&gt;
&lt;br /&gt;
* IP Address: 172.22.0.10&lt;br /&gt;
* Subnet mask:  255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0&lt;br /&gt;
&lt;br /&gt;
See Network Configuration Guides: [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20Linux Linux] [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20MacOS%20X Mac]&lt;br /&gt;
&lt;br /&gt;
If you ping the extender node on 172.22.0.2 and it responds, it should be ready to connect to your home node on the appropriate wired Ethernet port.&lt;br /&gt;
&lt;br /&gt;
  $ ping 172.22.0.2&lt;br /&gt;
  PING 172.22.0.2 (172.22.0.2) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=1 ttl=64 time=0.617 ms&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=2 ttl=64 time=0.316 ms&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=3 ttl=64 time=0.398 ms&lt;br /&gt;
&lt;br /&gt;
== Nanostation M2 ==&lt;br /&gt;
&lt;br /&gt;
=== Firmware check failure ===&lt;br /&gt;
&lt;br /&gt;
Flashing the Nanostation M2 (FCC ID: SWX-M2N) using the TFTP rescue mode will result in a Firmware check failure error.&lt;br /&gt;
&lt;br /&gt;
  $ tftp 192.168.1.20&lt;br /&gt;
  tftp&amp;gt; bin&lt;br /&gt;
  tftp&amp;gt; put openwrt-ar71xx-generic-om2p-squashfs-factory.bin&lt;br /&gt;
  Error code 2: Firmware check failed&lt;br /&gt;
  Sent 4609024 bytes in 12.6 seconds&lt;br /&gt;
&lt;br /&gt;
You can boot up the M2 with a serial connection similar to the instructions below concerning the Nanostation M5.&lt;br /&gt;
&lt;br /&gt;
  Board: Ubiquiti Networks XM board (rev 1.0 e012)&lt;br /&gt;
  DRAM:  32 MB&lt;br /&gt;
  Flash:  8 MB&lt;br /&gt;
  PCIe WLAN Module found (#1).&lt;br /&gt;
  Net:   eth0, eth1&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: |&lt;br /&gt;
  Receiving file from 192.168.1.10:35456&lt;br /&gt;
  Received 4609501 bytes&lt;br /&gt;
  Firmware check failed! (-2)&lt;br /&gt;
&lt;br /&gt;
The method outlined for the Nanostation M5 below doesn't work with the M2.&lt;br /&gt;
&lt;br /&gt;
Update the firmware to [http://dl.ubnt.com/firmwares/XN-fw/v5.6.4/XM.v5.6.4.28924.160331.1253.bin airOS for XM board firmware v5.6.4].&lt;br /&gt;
&lt;br /&gt;
Serial Connection:&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
&lt;br /&gt;
Terminal:&lt;br /&gt;
&lt;br /&gt;
  $ tftp 192.168.1.20&lt;br /&gt;
  tftp&amp;gt; bin&lt;br /&gt;
  tftp&amp;gt; put XM.v5.6.4.28924.160331.1253.bin&lt;br /&gt;
  Sent 7537129 bytes in 20.8 seconds&lt;br /&gt;
&lt;br /&gt;
Serial Connection:&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:55113&lt;br /&gt;
  Received 7537129 bytes&lt;br /&gt;
  Firmware Version: XM.ar7240.v5.6.4.28924.160331.1253&lt;br /&gt;
  Setting U-Boot environment variables&lt;br /&gt;
  Un-Protected 1 sectors&lt;br /&gt;
  Erasing Flash.... done&lt;br /&gt;
  Erased 1 sectors&lt;br /&gt;
  Writing to Flash... done&lt;br /&gt;
  Protected 1 sectors&lt;br /&gt;
  Will not overwrite u-boot partition! Skipped.&lt;br /&gt;
  Copying partition 'kernel' to flash memory:&lt;br /&gt;
          erasing range 0x9F050000..0x9F14FFFF: ................ done&lt;br /&gt;
  Erased 16 sectors&lt;br /&gt;
          writing to address 0x9f050000, length 0x00100000 ...&lt;br /&gt;
  Copying partition 'rootfs' to flash memory:&lt;br /&gt;
          erasing range 0x9F150000..0x9F74FFFF: .............................................................................................e&lt;br /&gt;
  Erased 96 sectors&lt;br /&gt;
          writing to address 0x9f150000, length 0x00600000 ...&lt;br /&gt;
  &lt;br /&gt;
  Firmware update complete.&lt;br /&gt;
  &lt;br /&gt;
  Resetting...&lt;br /&gt;
  &lt;br /&gt;
  U-Boot 1.1.4.2-s594 (Dec  5 2012 - 15:23:07)&lt;br /&gt;
  &lt;br /&gt;
  Board: Ubiquiti Networks XM board (rev 1.0 e012)&lt;br /&gt;
&lt;br /&gt;
Attempting to run the same process after performing an official firmware update doesn't resolve the issue.&lt;br /&gt;
&lt;br /&gt;
== Nanostation M5 ==&lt;br /&gt;
&lt;br /&gt;
=== Firmware check failure ===&lt;br /&gt;
&lt;br /&gt;
Flashing the Nanostation M5 (FCC ID: SWX-NSM5D) using the TFTP rescue mode will result in a Firmware check failure error.&lt;br /&gt;
&lt;br /&gt;
If you attempt to flash the extender and receive a 'Firmware check failed' error, then you have a version of the NSM5 that is protected from being flashed via the default TFTP method. You will need to obtain a serial to USB interface (USB to UART TTL Module Serial Converter, 5 pin) and use it to flash the firmware.&lt;br /&gt;
&lt;br /&gt;
   $ ./flasher.js openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin&lt;br /&gt;
   Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
   Connection timed out&lt;br /&gt;
   Sending openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
   [Error: (Server) Firmware check failed]&lt;br /&gt;
&lt;br /&gt;
When connected to the NSM5 via a serial connection, a similar error is displayed when attempting to load the SudoWRT firmware image.&lt;br /&gt;
&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Will reset device configuration (Reset button active after 10 seconds).&lt;br /&gt;
  Erasing sector 123..126&lt;br /&gt;
  &lt;br /&gt;
  First 0x7b last 0x7e sector size 0x10000&lt;br /&gt;
  .... done&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
  Receiving file from 192.168.1.10:49763&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware check failed! (1)&lt;br /&gt;
&lt;br /&gt;
==== NSM5 Official Firmware ====&lt;br /&gt;
&lt;br /&gt;
Official firmware from Ubiquity Nanostation M5 (NSM5)&lt;br /&gt;
&lt;br /&gt;
* [https://www.ubnt.com/download/airmax-m/nanostationm/default/airos-xw-board-firmware-v564 airOS for XW board firmware v5.6.4]&lt;br /&gt;
* [http://dl.ubnt.com/firmwares/XW-fw/v5.6.3/XW.v5.6.3.28591.151130.1735.bin airOS for XW board firmware v5.6.3]&lt;br /&gt;
&lt;br /&gt;
=== USB to Serial Connection ===&lt;br /&gt;
&lt;br /&gt;
The following notes describe steps to interface with a Nanostation M5 (NSM5) via the serial interface. This may be necessary to manually load firmware onto the device if the web interface or TFTP methods of flashing the firmware become unavailable due to [http://www.networkworld.com/article/3038722/mobile-wireless/manufacturers-start-to-lock-down-wi-fi-router-firmware-thanks-fcc.html manufacturers disabling these methods] of firmware flashing.&lt;br /&gt;
&lt;br /&gt;
==== Order a USB to Serial Converter ====&lt;br /&gt;
&lt;br /&gt;
USB to serial converter devices exist at a cost of $4 - $8 online, with much lower pricing and longer delivery times if ordered from China. Search for &amp;quot;USB to UART TTL&amp;quot;, including &amp;quot;5 pin&amp;quot; in the search. Make sure the specifications do not mention anything other than 3.3 volts.&lt;br /&gt;
&lt;br /&gt;
==== Connecting to Serial ====&lt;br /&gt;
&lt;br /&gt;
You will need to connect the following pins from the converter to the pins on the device.&lt;br /&gt;
&lt;br /&gt;
* Ground (GND)&lt;br /&gt;
* Serial Out (Transmit / TX)&lt;br /&gt;
* Serial In (Receive / RX)&lt;br /&gt;
&lt;br /&gt;
Begin by connecting the Ground of the converter to the Ground of the device. Next connect the Transmit/TX of the converter to the Receive/RX of the device, then connect the Receive/RX of the converter to the Transmit/TX of the device.&lt;br /&gt;
&lt;br /&gt;
[[File:CP2102-usb-to-serial-converter.jpg|400px|KEDSUMÂ® CP2102 Module STC Download Cable USB 2.0 to TTL 6PIN Serial Converter For STC]]&lt;br /&gt;
&lt;br /&gt;
[[File:Ubiquity-NSM5-serial-connectors.jpg|400px|Ubiquiti Nanostation NSM5 - Serial pins with connections]]&lt;br /&gt;
&lt;br /&gt;
==== Serial Communications Program ====&lt;br /&gt;
&lt;br /&gt;
You need to install a serial communication program. Linux users can use Minicom.&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get install minicom&lt;br /&gt;
&lt;br /&gt;
By default the Minicom program will attempt to use /dev/tty8, and will also attempt to initialize the device (expecting a modem) by default.&lt;br /&gt;
&lt;br /&gt;
  $ minicom&lt;br /&gt;
  minicom: cannot open /dev/tty8: Permission denied&lt;br /&gt;
&lt;br /&gt;
Run the program so that it starts the program on the USB converter that is connected by adding &amp;lt;tt&amp;gt;-D /dev/ttyUSB0&amp;lt;/tt&amp;gt;, and specify that it should skip initialization by adding &amp;lt;tt&amp;gt;-o&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You can also specify from the command line that it use the baud rate and '8N1' settings specified below by including &amp;lt;tt&amp;gt;-b 115200 -8&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
  sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
&lt;br /&gt;
In Minicom, CTRL-A to get settings, then Press O, to access settings&lt;br /&gt;
&lt;br /&gt;
Go to Serial Port Setup, use these settings:&lt;br /&gt;
&lt;br /&gt;
* Set the serial device (should be /dev/tty/USB0)&lt;br /&gt;
* Baud Rate (Bits Per Second): 115200&lt;br /&gt;
* Settings '8N1' (short hand for 8 bits, no parity, 1 stop bit)&lt;br /&gt;
* Turn off hardware and software flow control&lt;br /&gt;
&lt;br /&gt;
Reboot the device, and it will let you drop into a command line. You will then have to figure out how to enable the network from the boot loader (Uboot or Redboot) and transfer the firmware to the device to flash it.&lt;br /&gt;
&lt;br /&gt;
==== Interupting Boot ====&lt;br /&gt;
&lt;br /&gt;
The device will not detect the key you press unless Minicom is configured properly.&lt;br /&gt;
&lt;br /&gt;
* To access the Help screen, Press CTRL-A, then press Z.&lt;br /&gt;
* To access the configuration/settings, press CTRL-A, then press O.&lt;br /&gt;
&lt;br /&gt;
From the configuration window, select to view the 'Serial port setup'&lt;br /&gt;
&lt;br /&gt;
  $ sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
  Welcome to minicom 2.7&lt;br /&gt;
  &lt;br /&gt;
  OPTIONS: I18n &lt;br /&gt;
  Compiled on Jan  1 2014, 17:13:19.&lt;br /&gt;
  Port /dev/ttyUSB0, 21:47:56&lt;br /&gt;
  &lt;br /&gt;
  Press CTRL-A Z for help on special keys&lt;br /&gt;
  &lt;br /&gt;
              +-----[configuration]------+&lt;br /&gt;
              | Filenames and paths      |&lt;br /&gt;
              | File transfer protocols  |&lt;br /&gt;
              | Serial port setup        |&lt;br /&gt;
              | Modem and dialing        |&lt;br /&gt;
              | Screen and keyboard      |&lt;br /&gt;
              | Save setup as dfl        |&lt;br /&gt;
              | Save setup as..          |&lt;br /&gt;
              | Exit                     |&lt;br /&gt;
              +--------------------------+&lt;br /&gt;
  &lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
  | A -    Serial Device      : /dev/ttyUSB0                              |&lt;br /&gt;
  | B - Lockfile Location     : /var/lock                                 |&lt;br /&gt;
  | C -   Callin Program      :                                           |&lt;br /&gt;
  | D -  Callout Program      :                                           |&lt;br /&gt;
  | E -    Bps/Par/Bits       : 115200 8N1                                |&lt;br /&gt;
  | F - Hardware Flow Control : Yes                                       |&lt;br /&gt;
  | G - Software Flow Control : No                                        |&lt;br /&gt;
  |                                                                       |&lt;br /&gt;
  |    Change which setting?                                              |&lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
&lt;br /&gt;
By default the Hardware Flow Control will be enabled. Press 'F' to disable Hardware Flow Control. Press ENTER to exit the Serial port setup window, and then select EXIT to go back to the program.&lt;br /&gt;
&lt;br /&gt;
At this point plug in the Ethernet cable to the 'Main' Ethernet port, with the other end connected to the 'POE' port on the Power Over Ethernet adapter that came with the device. As the device boots up, you'll see output similar to the following.&lt;br /&gt;
&lt;br /&gt;
You'll need to make sure to press a key before it boots the default image.&lt;br /&gt;
&lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ar7240&amp;gt; &lt;br /&gt;
&lt;br /&gt;
This will cause the [https://wiki.openwrt.org/doc/techref/bootloader/uboot U-Boot] bootloader to drop into a command line.&lt;br /&gt;
&lt;br /&gt;
==== Running TFTPd ====&lt;br /&gt;
&lt;br /&gt;
Although U-Boot can support two protocols for transfering files, kermit or y-modem, the bootloader does not support the &amp;lt;tt&amp;gt;loadb&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;loady&amp;lt;/tt&amp;gt;. Minicom only supports y-modem protocol.&lt;br /&gt;
&lt;br /&gt;
We do not have to resort to a direct serial file transfer however. The 'mtdparts' command that is used to define flash memory partitions can be used to reset the partition table to the defaults before running 'urescue' to start the TFTP server.&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; help mtdparts&lt;br /&gt;
  mtdparts &lt;br /&gt;
      - list partition table&lt;br /&gt;
  mtdparts delall&lt;br /&gt;
      - delete all partitions&lt;br /&gt;
  mtdparts del part-id&lt;br /&gt;
      - delete partition (e.g. part-id = nand0,1)&lt;br /&gt;
  mtdparts add &amp;lt;mtd-dev&amp;gt; &amp;lt;size&amp;gt;[@&amp;lt;offset&amp;gt;] [&amp;lt;name&amp;gt;] [ro]&lt;br /&gt;
      - add partition&lt;br /&gt;
  mtdparts default&lt;br /&gt;
      - reset partition table to defaults&lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
&lt;br /&gt;
In your other terminal window, run the ubi-flasher script.&lt;br /&gt;
&lt;br /&gt;
  $ ./flasher.js /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin&lt;br /&gt;
  Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
  Connection timed out&lt;br /&gt;
  Sending /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
  Firmware flashing begun!&lt;br /&gt;
  The firmware has been successfully sent to the router.&lt;br /&gt;
  In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up).&lt;br /&gt;
  This means that the router is flashing itself with the new firmware.&lt;br /&gt;
  Once the router goes back to having only the power LED lit, the router has been successfully flashed.&lt;br /&gt;
&lt;br /&gt;
In the terminal running Minicom you should see the firmware successfully flashing.&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:52289&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware Version: XW.ar934x.v6.0.0-OpenWrt-r47662&lt;br /&gt;
  Setting U-Boot environment variables&lt;br /&gt;
  Un-Protected 1 sectors&lt;br /&gt;
  Erasing Flash.... done&lt;br /&gt;
  Erased 1 sectors&lt;br /&gt;
  Writing to Flash... write addr: 9f040000&lt;br /&gt;
  done&lt;br /&gt;
  Protected 1 sectors&lt;br /&gt;
  Copying partition 'kernel' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x5 last 0x14 sector size 0x10000&lt;br /&gt;
  ................ done&lt;br /&gt;
  write addr: 9f050000&lt;br /&gt;
  Copying partition 'rootfs' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x15 last 0x6e sector size 0x10000&lt;br /&gt;
  .......................................................................................... done&lt;br /&gt;
  write addr: 9f150000&lt;br /&gt;
  &lt;br /&gt;
  Firmware update complete.&lt;br /&gt;
  &lt;br /&gt;
  Resetting...&lt;br /&gt;
  &lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ## Booting image at 9f050000 ...&lt;br /&gt;
     Image Name:   MIPS OpenWrt Linux-3.18.23&lt;br /&gt;
     Created:      2015-12-01   0:03:51 UTC&lt;br /&gt;
     Image Type:   MIPS Linux Kernel Image (lzma compressed)&lt;br /&gt;
     Data Size:    1135619 Bytes =  1.1 MB&lt;br /&gt;
     Load Address: 80060000&lt;br /&gt;
     Entry Point:  80060000&lt;br /&gt;
     Verifying Checksum at 0x9f050040 ...OK&lt;br /&gt;
     Uncompressing Kernel Image ... OK&lt;br /&gt;
  &lt;br /&gt;
  Starting kernel ...&lt;br /&gt;
  &lt;br /&gt;
  [    0.000000] Linux version 3.18.23 (sudowrt-builder@build-test2) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.04 r47662) ) #2 Mon Nov 5&lt;br /&gt;
&lt;br /&gt;
After it reboots if you see the first line mention 'sudowrt-builder', the device is booting the SudoWRT firmware build.&lt;br /&gt;
&lt;br /&gt;
You can press ENTER once it is finished, and it should drop into the command line for the SudoWRT system.&lt;br /&gt;
&lt;br /&gt;
  [   25.650000] jffs2: Newly-erased block contained word 0xdeadc0de at offset 0x00000000&lt;br /&gt;
  [   25.660000] done.&lt;br /&gt;
  [   25.660000] jffs2: notice: (993) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and.&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  BusyBox v1.23.2 (2015-11-30 18:48:50 EST) built-in shell (ash)&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
    ._______.___    ._______.______  ._____  .___    .___ .______  ._____  &lt;br /&gt;
    :_ ____/|   |   : .____/:_ _   \ :_ ___\ |   |   : __|:      \ :_ ___\ &lt;br /&gt;
    |   _/  |   |   | : _/\ |   |   ||   |___|   |   | : ||       ||   |___&lt;br /&gt;
    |   |   |   |/\ |   /  \| . |   ||   /  ||   |/\ |   ||   |   ||   /  |&lt;br /&gt;
    |_. |   |   /  \|_.: __/|. ____/ |. __  ||   /  \|   ||___|   ||. __  |&lt;br /&gt;
      :/    |______/   :/    :/       :/ |. ||______/|___|    |___| :/ |. |&lt;br /&gt;
      :                      :        :   :/                        :   :/ &lt;br /&gt;
                                          :                             : &lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   sudo mesh v0.2 (fledgling.extender)&lt;br /&gt;
                                based on OpenWRT 15.05 (Chaos Calmer)&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   &amp;quot;When your rage is choking you, it is best to say nothing.&amp;quot; &lt;br /&gt;
                                              - Octavia E. Butler, Fledgling&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
  &lt;br /&gt;
  root@sudomesh-node:/#&lt;br /&gt;
&lt;br /&gt;
== Picostation M2HP ==&lt;br /&gt;
&lt;br /&gt;
Insightful post on [https://www.strugglingcoder.info/index.php/tag/ubnt/ loading FreeBSD image] with help from serial communications. Could be useful with troubleshooting other models.&lt;br /&gt;
&lt;br /&gt;
== Extender Detection ==&lt;br /&gt;
&lt;br /&gt;
Log into your home node via SSH, and tail &amp;lt;tt&amp;gt;/var/log/messages&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver: eth0.3: Physical disconnect detected&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver: Listening on interface eth0.3:&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver:   client IP: 100.64.37.3&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver:   client netmask 26&lt;br /&gt;
  Sun May  8 00:51:12 2016 daemon.debug notdhcpserver: eth0.3: Recieved HEARTBEAT for interface that hadn't been ACKed.&lt;br /&gt;
  ...&lt;br /&gt;
  Sun May  8 00:54:00 2016 daemon.debug notdhcpserver: eth0.3: Recieved HEARTBEAT for interface that hadn't been ACKed.&lt;br /&gt;
  Sun May  8 00:54:00 2016 daemon.info hostapd: priv5: STA 80:e6:50:0e:fe:6e WPA: group key handshake completed (RSN)&lt;br /&gt;
  Sun May  8 00:54:04 2016 daemon.debug notdhcpserver: eth0.2: Received lease request&lt;br /&gt;
  Sun May  8 00:54:04 2016 daemon.debug notdhcpserver: eth0.3: sending response (with ssl certificate)&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received ACK&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Running up hook script&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received redundant ACK&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received redundant ACK&lt;br /&gt;
&lt;br /&gt;
There should be a debug message in the log from notdhcpserver concerning the extender node.&lt;/div&gt;</summary>
		<author><name>Redconfetti</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10161</id>
		<title>Mesh/Flashing extender nodes</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10161"/>
		<updated>2016-05-08T07:55:17Z</updated>

		<summary type="html">&lt;p&gt;Redconfetti: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Download the Image File For a Extender Node ==&lt;br /&gt;
&lt;br /&gt;
The extender nodes that we currently support are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Model No. !! OpenWRT Doc !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M5 || NSM5 || [https://wiki.openwrt.org/toh/ubiquiti/nanostationm5 OpenWRT Docs] || firmware: [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin pre 2015] or [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin 2015-2016]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M2 || NSM2 || [https://wiki.openwrt.org/toh/ubiquiti/nanostationm2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-om2p-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation 2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostation2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ath25.extender-node/openwrt-ath25-ubnt2-pico2-squashfs.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation M2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostationm2 OpenWRT Docs] || &lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobeam M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/nanobeam OpenWRT Docs] || &lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Bullet M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/bullet OpenWRT Docs] || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Flash the Extender Node ==&lt;br /&gt;
&lt;br /&gt;
* Configure your wired internet settings to use Manual IPv4 settings with IP: 192.168.1.10, subnet: 255.255.255.0, gateway: 0.0.0.0&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Plug another Ethernet cable into your antenna on one end and into the &amp;quot;POE&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Push a pin into the reset hole and hold it.&lt;br /&gt;
* With the pin held down, plug in the power to the power-over-ethernet power supply.&lt;br /&gt;
* Watch the lights on the antenna - they will all flash together a few times, then they will flash up and down.&lt;br /&gt;
* Once the lights on the antenna are flashing up and down, you can let go of the pin.&lt;br /&gt;
&lt;br /&gt;
You should be able to ping the extender at 192.168.1.20.&lt;br /&gt;
&lt;br /&gt;
  $ ping 192.168.1.20&lt;br /&gt;
  PING 192.168.1.20 (192.168.1.20) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=1 ttl=64 time=1.54 ms&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=2 ttl=64 time=0.826 ms&lt;br /&gt;
&lt;br /&gt;
In your Linux terminal, type:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/ubi-flasher&lt;br /&gt;
  cd ubi-flasher&lt;br /&gt;
  npm install&lt;br /&gt;
  ./flasher.js '&amp;lt;path to firmware&amp;gt;'&lt;br /&gt;
&lt;br /&gt;
The terminal will tell you &amp;quot;The firmware has been successfully sent to the router. In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up). This means that the router is flashing itself with the new firmware. Once the router goes back to having only the power LED lit, the router has been successfully flashed.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Wait until the antenna has only the power LED lit and you're done.&lt;br /&gt;
&lt;br /&gt;
Reconfigure your machine with the following static network configuration.&lt;br /&gt;
&lt;br /&gt;
* IP Address: 172.22.0.10&lt;br /&gt;
* Subnet mask:  255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0&lt;br /&gt;
&lt;br /&gt;
See Network Configuration Guides: [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20Linux Linux] [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20MacOS%20X Mac]&lt;br /&gt;
&lt;br /&gt;
If you ping the extender node on 172.22.0.2 and it responds, it should be ready to connect to your home node on the appropriate wired Ethernet port.&lt;br /&gt;
&lt;br /&gt;
  $ ping 172.22.0.2&lt;br /&gt;
  PING 172.22.0.2 (172.22.0.2) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=1 ttl=64 time=0.617 ms&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=2 ttl=64 time=0.316 ms&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=3 ttl=64 time=0.398 ms&lt;br /&gt;
&lt;br /&gt;
== Nanostation M2 ==&lt;br /&gt;
&lt;br /&gt;
=== Firmware check failure ===&lt;br /&gt;
&lt;br /&gt;
Flashing the Nanostation M2 (FCC ID: SWX-M2N) using the TFTP rescue mode will result in a Firmware check failure error.&lt;br /&gt;
&lt;br /&gt;
  $ tftp 192.168.1.20&lt;br /&gt;
  tftp&amp;gt; bin&lt;br /&gt;
  tftp&amp;gt; put openwrt-ar71xx-generic-om2p-squashfs-factory.bin&lt;br /&gt;
  Error code 2: Firmware check failed&lt;br /&gt;
  Sent 4609024 bytes in 12.6 seconds&lt;br /&gt;
&lt;br /&gt;
You can boot up the M2 with a serial connection similar to the instructions below concerning the Nanostation M5.&lt;br /&gt;
&lt;br /&gt;
  Board: Ubiquiti Networks XM board (rev 1.0 e012)&lt;br /&gt;
  DRAM:  32 MB&lt;br /&gt;
  Flash:  8 MB&lt;br /&gt;
  PCIe WLAN Module found (#1).&lt;br /&gt;
  Net:   eth0, eth1&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: |&lt;br /&gt;
  Receiving file from 192.168.1.10:35456&lt;br /&gt;
  Received 4609501 bytes&lt;br /&gt;
  Firmware check failed! (-2)&lt;br /&gt;
&lt;br /&gt;
The method outlined for the Nanostation M5 below doesn't work with the M2.&lt;br /&gt;
&lt;br /&gt;
Update the firmware to [http://dl.ubnt.com/firmwares/XN-fw/v5.6.4/XM.v5.6.4.28924.160331.1253.bin airOS for XM board firmware v5.6.4].&lt;br /&gt;
&lt;br /&gt;
Serial Connection:&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
&lt;br /&gt;
Terminal:&lt;br /&gt;
&lt;br /&gt;
  $ tftp 192.168.1.20&lt;br /&gt;
  tftp&amp;gt; bin&lt;br /&gt;
  tftp&amp;gt; put XM.v5.6.4.28924.160331.1253.bin&lt;br /&gt;
  Sent 7537129 bytes in 20.8 seconds&lt;br /&gt;
&lt;br /&gt;
Serial Connection:&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:55113&lt;br /&gt;
  Received 7537129 bytes&lt;br /&gt;
  Firmware Version: XM.ar7240.v5.6.4.28924.160331.1253&lt;br /&gt;
  Setting U-Boot environment variables&lt;br /&gt;
  Un-Protected 1 sectors&lt;br /&gt;
  Erasing Flash.... done&lt;br /&gt;
  Erased 1 sectors&lt;br /&gt;
  Writing to Flash... done&lt;br /&gt;
  Protected 1 sectors&lt;br /&gt;
  Will not overwrite u-boot partition! Skipped.&lt;br /&gt;
  Copying partition 'kernel' to flash memory:&lt;br /&gt;
          erasing range 0x9F050000..0x9F14FFFF: ................ done&lt;br /&gt;
  Erased 16 sectors&lt;br /&gt;
          writing to address 0x9f050000, length 0x00100000 ...&lt;br /&gt;
  Copying partition 'rootfs' to flash memory:&lt;br /&gt;
          erasing range 0x9F150000..0x9F74FFFF: .............................................................................................e&lt;br /&gt;
  Erased 96 sectors&lt;br /&gt;
          writing to address 0x9f150000, length 0x00600000 ...&lt;br /&gt;
  &lt;br /&gt;
  Firmware update complete.&lt;br /&gt;
  &lt;br /&gt;
  Resetting...&lt;br /&gt;
  &lt;br /&gt;
  U-Boot 1.1.4.2-s594 (Dec  5 2012 - 15:23:07)&lt;br /&gt;
  &lt;br /&gt;
  Board: Ubiquiti Networks XM board (rev 1.0 e012)&lt;br /&gt;
&lt;br /&gt;
Attempting to run the same process after performing an official firmware update doesn't resolve the issue.&lt;br /&gt;
&lt;br /&gt;
== Nanostation M5 ==&lt;br /&gt;
&lt;br /&gt;
=== Firmware check failure ===&lt;br /&gt;
&lt;br /&gt;
Flashing the Nanostation M5 (FCC ID: SWX-NSM5D) using the TFTP rescue mode will result in a Firmware check failure error.&lt;br /&gt;
&lt;br /&gt;
If you attempt to flash the extender and receive a 'Firmware check failed' error, then you have a version of the NSM5 that is protected from being flashed via the default TFTP method. You will need to obtain a serial to USB interface (USB to UART TTL Module Serial Converter, 5 pin) and use it to flash the firmware.&lt;br /&gt;
&lt;br /&gt;
   $ ./flasher.js openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin&lt;br /&gt;
   Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
   Connection timed out&lt;br /&gt;
   Sending openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
   [Error: (Server) Firmware check failed]&lt;br /&gt;
&lt;br /&gt;
When connected to the NSM5 via a serial connection, a similar error is displayed when attempting to load the SudoWRT firmware image.&lt;br /&gt;
&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Will reset device configuration (Reset button active after 10 seconds).&lt;br /&gt;
  Erasing sector 123..126&lt;br /&gt;
  &lt;br /&gt;
  First 0x7b last 0x7e sector size 0x10000&lt;br /&gt;
  .... done&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
  Receiving file from 192.168.1.10:49763&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware check failed! (1)&lt;br /&gt;
&lt;br /&gt;
==== NSM5 Official Firmware ====&lt;br /&gt;
&lt;br /&gt;
Official firmware from Ubiquity Nanostation M5 (NSM5)&lt;br /&gt;
&lt;br /&gt;
* [https://www.ubnt.com/download/airmax-m/nanostationm/default/airos-xw-board-firmware-v564 airOS for XW board firmware v5.6.4]&lt;br /&gt;
* [http://dl.ubnt.com/firmwares/XW-fw/v5.6.3/XW.v5.6.3.28591.151130.1735.bin airOS for XW board firmware v5.6.3]&lt;br /&gt;
&lt;br /&gt;
=== USB to Serial Connection ===&lt;br /&gt;
&lt;br /&gt;
The following notes describe steps to interface with a Nanostation M5 (NSM5) via the serial interface. This may be necessary to manually load firmware onto the device if the web interface or TFTP methods of flashing the firmware become unavailable due to [http://www.networkworld.com/article/3038722/mobile-wireless/manufacturers-start-to-lock-down-wi-fi-router-firmware-thanks-fcc.html manufacturers disabling these methods] of firmware flashing.&lt;br /&gt;
&lt;br /&gt;
==== Order a USB to Serial Converter ====&lt;br /&gt;
&lt;br /&gt;
USB to serial converter devices exist at a cost of $4 - $8 online, with much lower pricing and longer delivery times if ordered from China. Search for &amp;quot;USB to UART TTL&amp;quot;, including &amp;quot;5 pin&amp;quot; in the search. Make sure the specifications do not mention anything other than 3.3 volts.&lt;br /&gt;
&lt;br /&gt;
==== Connecting to Serial ====&lt;br /&gt;
&lt;br /&gt;
You will need to connect the following pins from the converter to the pins on the device.&lt;br /&gt;
&lt;br /&gt;
* Ground (GND)&lt;br /&gt;
* Serial Out (Transmit / TX)&lt;br /&gt;
* Serial In (Receive / RX)&lt;br /&gt;
&lt;br /&gt;
Begin by connecting the Ground of the converter to the Ground of the device. Next connect the Transmit/TX of the converter to the Receive/RX of the device, then connect the Receive/RX of the converter to the Transmit/TX of the device.&lt;br /&gt;
&lt;br /&gt;
[[File:CP2102-usb-to-serial-converter.jpg|400px|KEDSUMÂ® CP2102 Module STC Download Cable USB 2.0 to TTL 6PIN Serial Converter For STC]]&lt;br /&gt;
&lt;br /&gt;
[[File:Ubiquity-NSM5-serial-connectors.jpg|400px|Ubiquiti Nanostation NSM5 - Serial pins with connections]]&lt;br /&gt;
&lt;br /&gt;
==== Serial Communications Program ====&lt;br /&gt;
&lt;br /&gt;
You need to install a serial communication program. Linux users can use Minicom.&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get install minicom&lt;br /&gt;
&lt;br /&gt;
By default the Minicom program will attempt to use /dev/tty8, and will also attempt to initialize the device (expecting a modem) by default.&lt;br /&gt;
&lt;br /&gt;
  $ minicom&lt;br /&gt;
  minicom: cannot open /dev/tty8: Permission denied&lt;br /&gt;
&lt;br /&gt;
Run the program so that it starts the program on the USB converter that is connected by adding &amp;lt;tt&amp;gt;-D /dev/ttyUSB0&amp;lt;/tt&amp;gt;, and specify that it should skip initialization by adding &amp;lt;tt&amp;gt;-o&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You can also specify from the command line that it use the baud rate and '8N1' settings specified below by including &amp;lt;tt&amp;gt;-b 115200 -8&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
  sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
&lt;br /&gt;
In Minicom, CTRL-A to get settings, then Press O, to access settings&lt;br /&gt;
&lt;br /&gt;
Go to Serial Port Setup, use these settings:&lt;br /&gt;
&lt;br /&gt;
* Set the serial device (should be /dev/tty/USB0)&lt;br /&gt;
* Baud Rate (Bits Per Second): 115200&lt;br /&gt;
* Settings '8N1' (short hand for 8 bits, no parity, 1 stop bit)&lt;br /&gt;
* Turn off hardware and software flow control&lt;br /&gt;
&lt;br /&gt;
Reboot the device, and it will let you drop into a command line. You will then have to figure out how to enable the network from the boot loader (Uboot or Redboot) and transfer the firmware to the device to flash it.&lt;br /&gt;
&lt;br /&gt;
==== Interupting Boot ====&lt;br /&gt;
&lt;br /&gt;
The device will not detect the key you press unless Minicom is configured properly.&lt;br /&gt;
&lt;br /&gt;
* To access the Help screen, Press CTRL-A, then press Z.&lt;br /&gt;
* To access the configuration/settings, press CTRL-A, then press O.&lt;br /&gt;
&lt;br /&gt;
From the configuration window, select to view the 'Serial port setup'&lt;br /&gt;
&lt;br /&gt;
  $ sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
  Welcome to minicom 2.7&lt;br /&gt;
  &lt;br /&gt;
  OPTIONS: I18n &lt;br /&gt;
  Compiled on Jan  1 2014, 17:13:19.&lt;br /&gt;
  Port /dev/ttyUSB0, 21:47:56&lt;br /&gt;
  &lt;br /&gt;
  Press CTRL-A Z for help on special keys&lt;br /&gt;
  &lt;br /&gt;
              +-----[configuration]------+&lt;br /&gt;
              | Filenames and paths      |&lt;br /&gt;
              | File transfer protocols  |&lt;br /&gt;
              | Serial port setup        |&lt;br /&gt;
              | Modem and dialing        |&lt;br /&gt;
              | Screen and keyboard      |&lt;br /&gt;
              | Save setup as dfl        |&lt;br /&gt;
              | Save setup as..          |&lt;br /&gt;
              | Exit                     |&lt;br /&gt;
              +--------------------------+&lt;br /&gt;
  &lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
  | A -    Serial Device      : /dev/ttyUSB0                              |&lt;br /&gt;
  | B - Lockfile Location     : /var/lock                                 |&lt;br /&gt;
  | C -   Callin Program      :                                           |&lt;br /&gt;
  | D -  Callout Program      :                                           |&lt;br /&gt;
  | E -    Bps/Par/Bits       : 115200 8N1                                |&lt;br /&gt;
  | F - Hardware Flow Control : Yes                                       |&lt;br /&gt;
  | G - Software Flow Control : No                                        |&lt;br /&gt;
  |                                                                       |&lt;br /&gt;
  |    Change which setting?                                              |&lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
&lt;br /&gt;
By default the Hardware Flow Control will be enabled. Press 'F' to disable Hardware Flow Control. Press ENTER to exit the Serial port setup window, and then select EXIT to go back to the program.&lt;br /&gt;
&lt;br /&gt;
At this point plug in the Ethernet cable to the 'Main' Ethernet port, with the other end connected to the 'POE' port on the Power Over Ethernet adapter that came with the device. As the device boots up, you'll see output similar to the following.&lt;br /&gt;
&lt;br /&gt;
You'll need to make sure to press a key before it boots the default image.&lt;br /&gt;
&lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ar7240&amp;gt; &lt;br /&gt;
&lt;br /&gt;
This will cause the [https://wiki.openwrt.org/doc/techref/bootloader/uboot U-Boot] bootloader to drop into a command line.&lt;br /&gt;
&lt;br /&gt;
==== Running TFTPd ====&lt;br /&gt;
&lt;br /&gt;
Although U-Boot can support two protocols for transfering files, kermit or y-modem, the bootloader does not support the &amp;lt;tt&amp;gt;loadb&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;loady&amp;lt;/tt&amp;gt;. Minicom only supports y-modem protocol.&lt;br /&gt;
&lt;br /&gt;
We do not have to resort to a direct serial file transfer however. The 'mtdparts' command that is used to define flash memory partitions can be used to reset the partition table to the defaults before running 'urescue' to start the TFTP server.&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; help mtdparts&lt;br /&gt;
  mtdparts &lt;br /&gt;
      - list partition table&lt;br /&gt;
  mtdparts delall&lt;br /&gt;
      - delete all partitions&lt;br /&gt;
  mtdparts del part-id&lt;br /&gt;
      - delete partition (e.g. part-id = nand0,1)&lt;br /&gt;
  mtdparts add &amp;lt;mtd-dev&amp;gt; &amp;lt;size&amp;gt;[@&amp;lt;offset&amp;gt;] [&amp;lt;name&amp;gt;] [ro]&lt;br /&gt;
      - add partition&lt;br /&gt;
  mtdparts default&lt;br /&gt;
      - reset partition table to defaults&lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
&lt;br /&gt;
In your other terminal window, run the ubi-flasher script.&lt;br /&gt;
&lt;br /&gt;
  $ ./flasher.js /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin&lt;br /&gt;
  Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
  Connection timed out&lt;br /&gt;
  Sending /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
  Firmware flashing begun!&lt;br /&gt;
  The firmware has been successfully sent to the router.&lt;br /&gt;
  In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up).&lt;br /&gt;
  This means that the router is flashing itself with the new firmware.&lt;br /&gt;
  Once the router goes back to having only the power LED lit, the router has been successfully flashed.&lt;br /&gt;
&lt;br /&gt;
In the terminal running Minicom you should see the firmware successfully flashing.&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:52289&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware Version: XW.ar934x.v6.0.0-OpenWrt-r47662&lt;br /&gt;
  Setting U-Boot environment variables&lt;br /&gt;
  Un-Protected 1 sectors&lt;br /&gt;
  Erasing Flash.... done&lt;br /&gt;
  Erased 1 sectors&lt;br /&gt;
  Writing to Flash... write addr: 9f040000&lt;br /&gt;
  done&lt;br /&gt;
  Protected 1 sectors&lt;br /&gt;
  Copying partition 'kernel' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x5 last 0x14 sector size 0x10000&lt;br /&gt;
  ................ done&lt;br /&gt;
  write addr: 9f050000&lt;br /&gt;
  Copying partition 'rootfs' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x15 last 0x6e sector size 0x10000&lt;br /&gt;
  .......................................................................................... done&lt;br /&gt;
  write addr: 9f150000&lt;br /&gt;
  &lt;br /&gt;
  Firmware update complete.&lt;br /&gt;
  &lt;br /&gt;
  Resetting...&lt;br /&gt;
  &lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ## Booting image at 9f050000 ...&lt;br /&gt;
     Image Name:   MIPS OpenWrt Linux-3.18.23&lt;br /&gt;
     Created:      2015-12-01   0:03:51 UTC&lt;br /&gt;
     Image Type:   MIPS Linux Kernel Image (lzma compressed)&lt;br /&gt;
     Data Size:    1135619 Bytes =  1.1 MB&lt;br /&gt;
     Load Address: 80060000&lt;br /&gt;
     Entry Point:  80060000&lt;br /&gt;
     Verifying Checksum at 0x9f050040 ...OK&lt;br /&gt;
     Uncompressing Kernel Image ... OK&lt;br /&gt;
  &lt;br /&gt;
  Starting kernel ...&lt;br /&gt;
  &lt;br /&gt;
  [    0.000000] Linux version 3.18.23 (sudowrt-builder@build-test2) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.04 r47662) ) #2 Mon Nov 5&lt;br /&gt;
&lt;br /&gt;
After it reboots if you see the first line mention 'sudowrt-builder', the device is booting the SudoWRT firmware build.&lt;br /&gt;
&lt;br /&gt;
You can press ENTER once it is finished, and it should drop into the command line for the SudoWRT system.&lt;br /&gt;
&lt;br /&gt;
  [   25.650000] jffs2: Newly-erased block contained word 0xdeadc0de at offset 0x00000000&lt;br /&gt;
  [   25.660000] done.&lt;br /&gt;
  [   25.660000] jffs2: notice: (993) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and.&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  BusyBox v1.23.2 (2015-11-30 18:48:50 EST) built-in shell (ash)&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
    ._______.___    ._______.______  ._____  .___    .___ .______  ._____  &lt;br /&gt;
    :_ ____/|   |   : .____/:_ _   \ :_ ___\ |   |   : __|:      \ :_ ___\ &lt;br /&gt;
    |   _/  |   |   | : _/\ |   |   ||   |___|   |   | : ||       ||   |___&lt;br /&gt;
    |   |   |   |/\ |   /  \| . |   ||   /  ||   |/\ |   ||   |   ||   /  |&lt;br /&gt;
    |_. |   |   /  \|_.: __/|. ____/ |. __  ||   /  \|   ||___|   ||. __  |&lt;br /&gt;
      :/    |______/   :/    :/       :/ |. ||______/|___|    |___| :/ |. |&lt;br /&gt;
      :                      :        :   :/                        :   :/ &lt;br /&gt;
                                          :                             : &lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   sudo mesh v0.2 (fledgling.extender)&lt;br /&gt;
                                based on OpenWRT 15.05 (Chaos Calmer)&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   &amp;quot;When your rage is choking you, it is best to say nothing.&amp;quot; &lt;br /&gt;
                                              - Octavia E. Butler, Fledgling&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
  &lt;br /&gt;
  root@sudomesh-node:/#&lt;br /&gt;
&lt;br /&gt;
== Picostation M2HP ==&lt;br /&gt;
&lt;br /&gt;
Insightful post on [https://www.strugglingcoder.info/index.php/tag/ubnt/ loading FreeBSD image] with help from serial communications. Could be useful with troubleshooting other models.&lt;br /&gt;
&lt;br /&gt;
== Extender Detection ==&lt;br /&gt;
&lt;br /&gt;
Log into your home node via SSH, and tail &amp;lt;tt&amp;gt;/var/log/messages&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver: eth0.3: Physical disconnect detected&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver: Listening on interface eth0.3:&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver:   client IP: 100.64.37.3&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver:   client netmask 26&lt;br /&gt;
  Sun May  8 00:51:12 2016 daemon.debug notdhcpserver: eth0.3: Recieved HEARTBEAT for interface that hadn't been ACKed.&lt;br /&gt;
&lt;br /&gt;
There should be a debug message in the log from notdhcpserver concerning the extender node.&lt;/div&gt;</summary>
		<author><name>Redconfetti</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10160</id>
		<title>Mesh/Flashing extender nodes</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10160"/>
		<updated>2016-05-08T06:37:00Z</updated>

		<summary type="html">&lt;p&gt;Redconfetti: /* Nanostation M2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Download the Image File For a Extender Node ==&lt;br /&gt;
&lt;br /&gt;
The extender nodes that we currently support are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Model No. !! OpenWRT Doc !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M5 || NSM5 || [https://wiki.openwrt.org/toh/ubiquiti/nanostationm5 OpenWRT Docs] || firmware: [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin pre 2015] or [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin 2015-2016]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M2 || NSM2 || [https://wiki.openwrt.org/toh/ubiquiti/nanostationm2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-om2p-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation 2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostation2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ath25.extender-node/openwrt-ath25-ubnt2-pico2-squashfs.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation M2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostationm2 OpenWRT Docs] || &lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobeam M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/nanobeam OpenWRT Docs] || &lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Bullet M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/bullet OpenWRT Docs] || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Flash the Extender Node ==&lt;br /&gt;
&lt;br /&gt;
* Configure your wired internet settings to use Manual IPv4 settings with IP: 192.168.1.10, subnet: 255.255.255.0, gateway: 0.0.0.0&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Plug another Ethernet cable into your antenna on one end and into the &amp;quot;POE&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Push a pin into the reset hole and hold it.&lt;br /&gt;
* With the pin held down, plug in the power to the power-over-ethernet power supply.&lt;br /&gt;
* Watch the lights on the antenna - they will all flash together a few times, then they will flash up and down.&lt;br /&gt;
* Once the lights on the antenna are flashing up and down, you can let go of the pin.&lt;br /&gt;
&lt;br /&gt;
You should be able to ping the extender at 192.168.1.20.&lt;br /&gt;
&lt;br /&gt;
  $ ping 192.168.1.20&lt;br /&gt;
  PING 192.168.1.20 (192.168.1.20) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=1 ttl=64 time=1.54 ms&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=2 ttl=64 time=0.826 ms&lt;br /&gt;
&lt;br /&gt;
In your Linux terminal, type:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/ubi-flasher&lt;br /&gt;
  cd ubi-flasher&lt;br /&gt;
  npm install&lt;br /&gt;
  ./flasher.js '&amp;lt;path to firmware&amp;gt;'&lt;br /&gt;
&lt;br /&gt;
The terminal will tell you &amp;quot;The firmware has been successfully sent to the router. In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up). This means that the router is flashing itself with the new firmware. Once the router goes back to having only the power LED lit, the router has been successfully flashed.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Wait until the antenna has only the power LED lit and you're done.&lt;br /&gt;
&lt;br /&gt;
Reconfigure your machine with the following static network configuration.&lt;br /&gt;
&lt;br /&gt;
* IP Address: 172.22.0.10&lt;br /&gt;
* Subnet mask:  255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0&lt;br /&gt;
&lt;br /&gt;
See Network Configuration Guides: [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20Linux Linux] [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20MacOS%20X Mac]&lt;br /&gt;
&lt;br /&gt;
If you ping the extender node on 172.22.0.2 and it responds, it should be ready to connect to your home node on the appropriate wired Ethernet port.&lt;br /&gt;
&lt;br /&gt;
  $ ping 172.22.0.2&lt;br /&gt;
  PING 172.22.0.2 (172.22.0.2) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=1 ttl=64 time=0.617 ms&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=2 ttl=64 time=0.316 ms&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=3 ttl=64 time=0.398 ms&lt;br /&gt;
&lt;br /&gt;
== Nanostation M2 ==&lt;br /&gt;
&lt;br /&gt;
=== Firmware check failure ===&lt;br /&gt;
&lt;br /&gt;
Flashing the Nanostation M2 (FCC ID: SWX-M2N) using the TFTP rescue mode will result in a Firmware check failure error.&lt;br /&gt;
&lt;br /&gt;
  $ tftp 192.168.1.20&lt;br /&gt;
  tftp&amp;gt; bin&lt;br /&gt;
  tftp&amp;gt; put openwrt-ar71xx-generic-om2p-squashfs-factory.bin&lt;br /&gt;
  Error code 2: Firmware check failed&lt;br /&gt;
  Sent 4609024 bytes in 12.6 seconds&lt;br /&gt;
&lt;br /&gt;
You can boot up the M2 with a serial connection similar to the instructions below concerning the Nanostation M5.&lt;br /&gt;
&lt;br /&gt;
  Board: Ubiquiti Networks XM board (rev 1.0 e012)&lt;br /&gt;
  DRAM:  32 MB&lt;br /&gt;
  Flash:  8 MB&lt;br /&gt;
  PCIe WLAN Module found (#1).&lt;br /&gt;
  Net:   eth0, eth1&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: |&lt;br /&gt;
  Receiving file from 192.168.1.10:35456&lt;br /&gt;
  Received 4609501 bytes&lt;br /&gt;
  Firmware check failed! (-2)&lt;br /&gt;
&lt;br /&gt;
The method outlined for the Nanostation M5 below doesn't work with the M2.&lt;br /&gt;
&lt;br /&gt;
Update the firmware to [http://dl.ubnt.com/firmwares/XN-fw/v5.6.4/XM.v5.6.4.28924.160331.1253.bin airOS for XM board firmware v5.6.4].&lt;br /&gt;
&lt;br /&gt;
Serial Connection:&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
&lt;br /&gt;
Terminal:&lt;br /&gt;
&lt;br /&gt;
  $ tftp 192.168.1.20&lt;br /&gt;
  tftp&amp;gt; bin&lt;br /&gt;
  tftp&amp;gt; put XM.v5.6.4.28924.160331.1253.bin&lt;br /&gt;
  Sent 7537129 bytes in 20.8 seconds&lt;br /&gt;
&lt;br /&gt;
Serial Connection:&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:55113&lt;br /&gt;
  Received 7537129 bytes&lt;br /&gt;
  Firmware Version: XM.ar7240.v5.6.4.28924.160331.1253&lt;br /&gt;
  Setting U-Boot environment variables&lt;br /&gt;
  Un-Protected 1 sectors&lt;br /&gt;
  Erasing Flash.... done&lt;br /&gt;
  Erased 1 sectors&lt;br /&gt;
  Writing to Flash... done&lt;br /&gt;
  Protected 1 sectors&lt;br /&gt;
  Will not overwrite u-boot partition! Skipped.&lt;br /&gt;
  Copying partition 'kernel' to flash memory:&lt;br /&gt;
          erasing range 0x9F050000..0x9F14FFFF: ................ done&lt;br /&gt;
  Erased 16 sectors&lt;br /&gt;
          writing to address 0x9f050000, length 0x00100000 ...&lt;br /&gt;
  Copying partition 'rootfs' to flash memory:&lt;br /&gt;
          erasing range 0x9F150000..0x9F74FFFF: .............................................................................................e&lt;br /&gt;
  Erased 96 sectors&lt;br /&gt;
          writing to address 0x9f150000, length 0x00600000 ...&lt;br /&gt;
  &lt;br /&gt;
  Firmware update complete.&lt;br /&gt;
  &lt;br /&gt;
  Resetting...&lt;br /&gt;
  &lt;br /&gt;
  U-Boot 1.1.4.2-s594 (Dec  5 2012 - 15:23:07)&lt;br /&gt;
  &lt;br /&gt;
  Board: Ubiquiti Networks XM board (rev 1.0 e012)&lt;br /&gt;
&lt;br /&gt;
Attempting to run the same process after performing an official firmware update doesn't resolve the issue.&lt;br /&gt;
&lt;br /&gt;
== Nanostation M5 ==&lt;br /&gt;
&lt;br /&gt;
=== Firmware check failure ===&lt;br /&gt;
&lt;br /&gt;
Flashing the Nanostation M5 (FCC ID: SWX-NSM5D) using the TFTP rescue mode will result in a Firmware check failure error.&lt;br /&gt;
&lt;br /&gt;
If you attempt to flash the extender and receive a 'Firmware check failed' error, then you have a version of the NSM5 that is protected from being flashed via the default TFTP method. You will need to obtain a serial to USB interface (USB to UART TTL Module Serial Converter, 5 pin) and use it to flash the firmware.&lt;br /&gt;
&lt;br /&gt;
   $ ./flasher.js openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin&lt;br /&gt;
   Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
   Connection timed out&lt;br /&gt;
   Sending openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
   [Error: (Server) Firmware check failed]&lt;br /&gt;
&lt;br /&gt;
When connected to the NSM5 via a serial connection, a similar error is displayed when attempting to load the SudoWRT firmware image.&lt;br /&gt;
&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Will reset device configuration (Reset button active after 10 seconds).&lt;br /&gt;
  Erasing sector 123..126&lt;br /&gt;
  &lt;br /&gt;
  First 0x7b last 0x7e sector size 0x10000&lt;br /&gt;
  .... done&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
  Receiving file from 192.168.1.10:49763&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware check failed! (1)&lt;br /&gt;
&lt;br /&gt;
==== NSM5 Official Firmware ====&lt;br /&gt;
&lt;br /&gt;
Official firmware from Ubiquity Nanostation M5 (NSM5)&lt;br /&gt;
&lt;br /&gt;
* [https://www.ubnt.com/download/airmax-m/nanostationm/default/airos-xw-board-firmware-v564 airOS for XW board firmware v5.6.4]&lt;br /&gt;
* [http://dl.ubnt.com/firmwares/XW-fw/v5.6.3/XW.v5.6.3.28591.151130.1735.bin airOS for XW board firmware v5.6.3]&lt;br /&gt;
&lt;br /&gt;
=== USB to Serial Connection ===&lt;br /&gt;
&lt;br /&gt;
The following notes describe steps to interface with a Nanostation M5 (NSM5) via the serial interface. This may be necessary to manually load firmware onto the device if the web interface or TFTP methods of flashing the firmware become unavailable due to [http://www.networkworld.com/article/3038722/mobile-wireless/manufacturers-start-to-lock-down-wi-fi-router-firmware-thanks-fcc.html manufacturers disabling these methods] of firmware flashing.&lt;br /&gt;
&lt;br /&gt;
==== Order a USB to Serial Converter ====&lt;br /&gt;
&lt;br /&gt;
USB to serial converter devices exist at a cost of $4 - $8 online, with much lower pricing and longer delivery times if ordered from China. Search for &amp;quot;USB to UART TTL&amp;quot;, including &amp;quot;5 pin&amp;quot; in the search. Make sure the specifications do not mention anything other than 3.3 volts.&lt;br /&gt;
&lt;br /&gt;
==== Connecting to Serial ====&lt;br /&gt;
&lt;br /&gt;
You will need to connect the following pins from the converter to the pins on the device.&lt;br /&gt;
&lt;br /&gt;
* Ground (GND)&lt;br /&gt;
* Serial Out (Transmit / TX)&lt;br /&gt;
* Serial In (Receive / RX)&lt;br /&gt;
&lt;br /&gt;
Begin by connecting the Ground of the converter to the Ground of the device. Next connect the Transmit/TX of the converter to the Receive/RX of the device, then connect the Receive/RX of the converter to the Transmit/TX of the device.&lt;br /&gt;
&lt;br /&gt;
[[File:CP2102-usb-to-serial-converter.jpg|400px|KEDSUMÂ® CP2102 Module STC Download Cable USB 2.0 to TTL 6PIN Serial Converter For STC]]&lt;br /&gt;
&lt;br /&gt;
[[File:Ubiquity-NSM5-serial-connectors.jpg|400px|Ubiquiti Nanostation NSM5 - Serial pins with connections]]&lt;br /&gt;
&lt;br /&gt;
==== Serial Communications Program ====&lt;br /&gt;
&lt;br /&gt;
You need to install a serial communication program. Linux users can use Minicom.&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get install minicom&lt;br /&gt;
&lt;br /&gt;
By default the Minicom program will attempt to use /dev/tty8, and will also attempt to initialize the device (expecting a modem) by default.&lt;br /&gt;
&lt;br /&gt;
  $ minicom&lt;br /&gt;
  minicom: cannot open /dev/tty8: Permission denied&lt;br /&gt;
&lt;br /&gt;
Run the program so that it starts the program on the USB converter that is connected by adding &amp;lt;tt&amp;gt;-D /dev/ttyUSB0&amp;lt;/tt&amp;gt;, and specify that it should skip initialization by adding &amp;lt;tt&amp;gt;-o&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You can also specify from the command line that it use the baud rate and '8N1' settings specified below by including &amp;lt;tt&amp;gt;-b 115200 -8&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
  sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
&lt;br /&gt;
In Minicom, CTRL-A to get settings, then Press O, to access settings&lt;br /&gt;
&lt;br /&gt;
Go to Serial Port Setup, use these settings:&lt;br /&gt;
&lt;br /&gt;
* Set the serial device (should be /dev/tty/USB0)&lt;br /&gt;
* Baud Rate (Bits Per Second): 115200&lt;br /&gt;
* Settings '8N1' (short hand for 8 bits, no parity, 1 stop bit)&lt;br /&gt;
* Turn off hardware and software flow control&lt;br /&gt;
&lt;br /&gt;
Reboot the device, and it will let you drop into a command line. You will then have to figure out how to enable the network from the boot loader (Uboot or Redboot) and transfer the firmware to the device to flash it.&lt;br /&gt;
&lt;br /&gt;
==== Interupting Boot ====&lt;br /&gt;
&lt;br /&gt;
The device will not detect the key you press unless Minicom is configured properly.&lt;br /&gt;
&lt;br /&gt;
* To access the Help screen, Press CTRL-A, then press Z.&lt;br /&gt;
* To access the configuration/settings, press CTRL-A, then press O.&lt;br /&gt;
&lt;br /&gt;
From the configuration window, select to view the 'Serial port setup'&lt;br /&gt;
&lt;br /&gt;
  $ sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
  Welcome to minicom 2.7&lt;br /&gt;
  &lt;br /&gt;
  OPTIONS: I18n &lt;br /&gt;
  Compiled on Jan  1 2014, 17:13:19.&lt;br /&gt;
  Port /dev/ttyUSB0, 21:47:56&lt;br /&gt;
  &lt;br /&gt;
  Press CTRL-A Z for help on special keys&lt;br /&gt;
  &lt;br /&gt;
              +-----[configuration]------+&lt;br /&gt;
              | Filenames and paths      |&lt;br /&gt;
              | File transfer protocols  |&lt;br /&gt;
              | Serial port setup        |&lt;br /&gt;
              | Modem and dialing        |&lt;br /&gt;
              | Screen and keyboard      |&lt;br /&gt;
              | Save setup as dfl        |&lt;br /&gt;
              | Save setup as..          |&lt;br /&gt;
              | Exit                     |&lt;br /&gt;
              +--------------------------+&lt;br /&gt;
  &lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
  | A -    Serial Device      : /dev/ttyUSB0                              |&lt;br /&gt;
  | B - Lockfile Location     : /var/lock                                 |&lt;br /&gt;
  | C -   Callin Program      :                                           |&lt;br /&gt;
  | D -  Callout Program      :                                           |&lt;br /&gt;
  | E -    Bps/Par/Bits       : 115200 8N1                                |&lt;br /&gt;
  | F - Hardware Flow Control : Yes                                       |&lt;br /&gt;
  | G - Software Flow Control : No                                        |&lt;br /&gt;
  |                                                                       |&lt;br /&gt;
  |    Change which setting?                                              |&lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
&lt;br /&gt;
By default the Hardware Flow Control will be enabled. Press 'F' to disable Hardware Flow Control. Press ENTER to exit the Serial port setup window, and then select EXIT to go back to the program.&lt;br /&gt;
&lt;br /&gt;
At this point plug in the Ethernet cable to the 'Main' Ethernet port, with the other end connected to the 'POE' port on the Power Over Ethernet adapter that came with the device. As the device boots up, you'll see output similar to the following.&lt;br /&gt;
&lt;br /&gt;
You'll need to make sure to press a key before it boots the default image.&lt;br /&gt;
&lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ar7240&amp;gt; &lt;br /&gt;
&lt;br /&gt;
This will cause the [https://wiki.openwrt.org/doc/techref/bootloader/uboot U-Boot] bootloader to drop into a command line.&lt;br /&gt;
&lt;br /&gt;
==== Running TFTPd ====&lt;br /&gt;
&lt;br /&gt;
Although U-Boot can support two protocols for transfering files, kermit or y-modem, the bootloader does not support the &amp;lt;tt&amp;gt;loadb&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;loady&amp;lt;/tt&amp;gt;. Minicom only supports y-modem protocol.&lt;br /&gt;
&lt;br /&gt;
We do not have to resort to a direct serial file transfer however. The 'mtdparts' command that is used to define flash memory partitions can be used to reset the partition table to the defaults before running 'urescue' to start the TFTP server.&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; help mtdparts&lt;br /&gt;
  mtdparts &lt;br /&gt;
      - list partition table&lt;br /&gt;
  mtdparts delall&lt;br /&gt;
      - delete all partitions&lt;br /&gt;
  mtdparts del part-id&lt;br /&gt;
      - delete partition (e.g. part-id = nand0,1)&lt;br /&gt;
  mtdparts add &amp;lt;mtd-dev&amp;gt; &amp;lt;size&amp;gt;[@&amp;lt;offset&amp;gt;] [&amp;lt;name&amp;gt;] [ro]&lt;br /&gt;
      - add partition&lt;br /&gt;
  mtdparts default&lt;br /&gt;
      - reset partition table to defaults&lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
&lt;br /&gt;
In your other terminal window, run the ubi-flasher script.&lt;br /&gt;
&lt;br /&gt;
  $ ./flasher.js /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin&lt;br /&gt;
  Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
  Connection timed out&lt;br /&gt;
  Sending /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
  Firmware flashing begun!&lt;br /&gt;
  The firmware has been successfully sent to the router.&lt;br /&gt;
  In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up).&lt;br /&gt;
  This means that the router is flashing itself with the new firmware.&lt;br /&gt;
  Once the router goes back to having only the power LED lit, the router has been successfully flashed.&lt;br /&gt;
&lt;br /&gt;
In the terminal running Minicom you should see the firmware successfully flashing.&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:52289&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware Version: XW.ar934x.v6.0.0-OpenWrt-r47662&lt;br /&gt;
  Setting U-Boot environment variables&lt;br /&gt;
  Un-Protected 1 sectors&lt;br /&gt;
  Erasing Flash.... done&lt;br /&gt;
  Erased 1 sectors&lt;br /&gt;
  Writing to Flash... write addr: 9f040000&lt;br /&gt;
  done&lt;br /&gt;
  Protected 1 sectors&lt;br /&gt;
  Copying partition 'kernel' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x5 last 0x14 sector size 0x10000&lt;br /&gt;
  ................ done&lt;br /&gt;
  write addr: 9f050000&lt;br /&gt;
  Copying partition 'rootfs' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x15 last 0x6e sector size 0x10000&lt;br /&gt;
  .......................................................................................... done&lt;br /&gt;
  write addr: 9f150000&lt;br /&gt;
  &lt;br /&gt;
  Firmware update complete.&lt;br /&gt;
  &lt;br /&gt;
  Resetting...&lt;br /&gt;
  &lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ## Booting image at 9f050000 ...&lt;br /&gt;
     Image Name:   MIPS OpenWrt Linux-3.18.23&lt;br /&gt;
     Created:      2015-12-01   0:03:51 UTC&lt;br /&gt;
     Image Type:   MIPS Linux Kernel Image (lzma compressed)&lt;br /&gt;
     Data Size:    1135619 Bytes =  1.1 MB&lt;br /&gt;
     Load Address: 80060000&lt;br /&gt;
     Entry Point:  80060000&lt;br /&gt;
     Verifying Checksum at 0x9f050040 ...OK&lt;br /&gt;
     Uncompressing Kernel Image ... OK&lt;br /&gt;
  &lt;br /&gt;
  Starting kernel ...&lt;br /&gt;
  &lt;br /&gt;
  [    0.000000] Linux version 3.18.23 (sudowrt-builder@build-test2) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.04 r47662) ) #2 Mon Nov 5&lt;br /&gt;
&lt;br /&gt;
After it reboots if you see the first line mention 'sudowrt-builder', the device is booting the SudoWRT firmware build.&lt;br /&gt;
&lt;br /&gt;
You can press ENTER once it is finished, and it should drop into the command line for the SudoWRT system.&lt;br /&gt;
&lt;br /&gt;
  [   25.650000] jffs2: Newly-erased block contained word 0xdeadc0de at offset 0x00000000&lt;br /&gt;
  [   25.660000] done.&lt;br /&gt;
  [   25.660000] jffs2: notice: (993) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and.&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  BusyBox v1.23.2 (2015-11-30 18:48:50 EST) built-in shell (ash)&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
    ._______.___    ._______.______  ._____  .___    .___ .______  ._____  &lt;br /&gt;
    :_ ____/|   |   : .____/:_ _   \ :_ ___\ |   |   : __|:      \ :_ ___\ &lt;br /&gt;
    |   _/  |   |   | : _/\ |   |   ||   |___|   |   | : ||       ||   |___&lt;br /&gt;
    |   |   |   |/\ |   /  \| . |   ||   /  ||   |/\ |   ||   |   ||   /  |&lt;br /&gt;
    |_. |   |   /  \|_.: __/|. ____/ |. __  ||   /  \|   ||___|   ||. __  |&lt;br /&gt;
      :/    |______/   :/    :/       :/ |. ||______/|___|    |___| :/ |. |&lt;br /&gt;
      :                      :        :   :/                        :   :/ &lt;br /&gt;
                                          :                             : &lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   sudo mesh v0.2 (fledgling.extender)&lt;br /&gt;
                                based on OpenWRT 15.05 (Chaos Calmer)&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   &amp;quot;When your rage is choking you, it is best to say nothing.&amp;quot; &lt;br /&gt;
                                              - Octavia E. Butler, Fledgling&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
  &lt;br /&gt;
  root@sudomesh-node:/#&lt;br /&gt;
&lt;br /&gt;
== Picostation M2HP ==&lt;br /&gt;
&lt;br /&gt;
Insightful post on [https://www.strugglingcoder.info/index.php/tag/ubnt/ loading FreeBSD image] with help from serial communications. Could be useful with troubleshooting other models.&lt;/div&gt;</summary>
		<author><name>Redconfetti</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10159</id>
		<title>Mesh/Flashing extender nodes</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10159"/>
		<updated>2016-05-08T06:14:06Z</updated>

		<summary type="html">&lt;p&gt;Redconfetti: adding notes concerning Nanostation M2&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Download the Image File For a Extender Node ==&lt;br /&gt;
&lt;br /&gt;
The extender nodes that we currently support are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Model No. !! OpenWRT Doc !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M5 || NSM5 || [https://wiki.openwrt.org/toh/ubiquiti/nanostationm5 OpenWRT Docs] || firmware: [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin pre 2015] or [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin 2015-2016]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M2 || NSM2 || [https://wiki.openwrt.org/toh/ubiquiti/nanostationm2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-om2p-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation 2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostation2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ath25.extender-node/openwrt-ath25-ubnt2-pico2-squashfs.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation M2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostationm2 OpenWRT Docs] || &lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobeam M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/nanobeam OpenWRT Docs] || &lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Bullet M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/bullet OpenWRT Docs] || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Flash the Extender Node ==&lt;br /&gt;
&lt;br /&gt;
* Configure your wired internet settings to use Manual IPv4 settings with IP: 192.168.1.10, subnet: 255.255.255.0, gateway: 0.0.0.0&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Plug another Ethernet cable into your antenna on one end and into the &amp;quot;POE&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Push a pin into the reset hole and hold it.&lt;br /&gt;
* With the pin held down, plug in the power to the power-over-ethernet power supply.&lt;br /&gt;
* Watch the lights on the antenna - they will all flash together a few times, then they will flash up and down.&lt;br /&gt;
* Once the lights on the antenna are flashing up and down, you can let go of the pin.&lt;br /&gt;
&lt;br /&gt;
You should be able to ping the extender at 192.168.1.20.&lt;br /&gt;
&lt;br /&gt;
  $ ping 192.168.1.20&lt;br /&gt;
  PING 192.168.1.20 (192.168.1.20) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=1 ttl=64 time=1.54 ms&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=2 ttl=64 time=0.826 ms&lt;br /&gt;
&lt;br /&gt;
In your Linux terminal, type:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/ubi-flasher&lt;br /&gt;
  cd ubi-flasher&lt;br /&gt;
  npm install&lt;br /&gt;
  ./flasher.js '&amp;lt;path to firmware&amp;gt;'&lt;br /&gt;
&lt;br /&gt;
The terminal will tell you &amp;quot;The firmware has been successfully sent to the router. In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up). This means that the router is flashing itself with the new firmware. Once the router goes back to having only the power LED lit, the router has been successfully flashed.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Wait until the antenna has only the power LED lit and you're done.&lt;br /&gt;
&lt;br /&gt;
Reconfigure your machine with the following static network configuration.&lt;br /&gt;
&lt;br /&gt;
* IP Address: 172.22.0.10&lt;br /&gt;
* Subnet mask:  255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0&lt;br /&gt;
&lt;br /&gt;
See Network Configuration Guides: [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20Linux Linux] [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20MacOS%20X Mac]&lt;br /&gt;
&lt;br /&gt;
If you ping the extender node on 172.22.0.2 and it responds, it should be ready to connect to your home node on the appropriate wired Ethernet port.&lt;br /&gt;
&lt;br /&gt;
  $ ping 172.22.0.2&lt;br /&gt;
  PING 172.22.0.2 (172.22.0.2) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=1 ttl=64 time=0.617 ms&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=2 ttl=64 time=0.316 ms&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=3 ttl=64 time=0.398 ms&lt;br /&gt;
&lt;br /&gt;
== Nanostation M2 ==&lt;br /&gt;
&lt;br /&gt;
=== Firmware check failure ===&lt;br /&gt;
&lt;br /&gt;
Flashing the Nanostation M2 (FCC ID: SWX-M2N) using the TFTP rescue mode will result in a Firmware check failure error.&lt;br /&gt;
&lt;br /&gt;
  $ tftp 192.168.1.20&lt;br /&gt;
  tftp&amp;gt; bin&lt;br /&gt;
  tftp&amp;gt; put openwrt-ar71xx-generic-om2p-squashfs-factory.bin&lt;br /&gt;
  Error code 2: Firmware check failed&lt;br /&gt;
  Sent 4609024 bytes in 12.6 seconds&lt;br /&gt;
&lt;br /&gt;
You can boot up the M2 with a serial connection similar to the instructions below concerning the Nanostation M5.&lt;br /&gt;
&lt;br /&gt;
  Board: Ubiquiti Networks XM board (rev 1.0 e012)&lt;br /&gt;
  DRAM:  32 MB&lt;br /&gt;
  Flash:  8 MB&lt;br /&gt;
  PCIe WLAN Module found (#1).&lt;br /&gt;
  Net:   eth0, eth1&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: |&lt;br /&gt;
  Receiving file from 192.168.1.10:35456&lt;br /&gt;
  Received 4609501 bytes&lt;br /&gt;
  Firmware check failed! (-2)&lt;br /&gt;
&lt;br /&gt;
The method outlined for the Nanostation M5 below doesn't work with the M2.&lt;br /&gt;
&lt;br /&gt;
== Nanostation M5 ==&lt;br /&gt;
&lt;br /&gt;
=== Firmware check failure ===&lt;br /&gt;
&lt;br /&gt;
Flashing the Nanostation M5 (FCC ID: SWX-NSM5D) using the TFTP rescue mode will result in a Firmware check failure error.&lt;br /&gt;
&lt;br /&gt;
If you attempt to flash the extender and receive a 'Firmware check failed' error, then you have a version of the NSM5 that is protected from being flashed via the default TFTP method. You will need to obtain a serial to USB interface (USB to UART TTL Module Serial Converter, 5 pin) and use it to flash the firmware.&lt;br /&gt;
&lt;br /&gt;
   $ ./flasher.js openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin&lt;br /&gt;
   Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
   Connection timed out&lt;br /&gt;
   Sending openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
   [Error: (Server) Firmware check failed]&lt;br /&gt;
&lt;br /&gt;
When connected to the NSM5 via a serial connection, a similar error is displayed when attempting to load the SudoWRT firmware image.&lt;br /&gt;
&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Will reset device configuration (Reset button active after 10 seconds).&lt;br /&gt;
  Erasing sector 123..126&lt;br /&gt;
  &lt;br /&gt;
  First 0x7b last 0x7e sector size 0x10000&lt;br /&gt;
  .... done&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
  Receiving file from 192.168.1.10:49763&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware check failed! (1)&lt;br /&gt;
&lt;br /&gt;
==== NSM5 Official Firmware ====&lt;br /&gt;
&lt;br /&gt;
Official firmware from Ubiquity Nanostation M5 (NSM5)&lt;br /&gt;
&lt;br /&gt;
* [https://www.ubnt.com/download/airmax-m/nanostationm/default/airos-xw-board-firmware-v564 airOS for XW board firmware v5.6.4]&lt;br /&gt;
* [http://dl.ubnt.com/firmwares/XW-fw/v5.6.3/XW.v5.6.3.28591.151130.1735.bin airOS for XW board firmware v5.6.3]&lt;br /&gt;
&lt;br /&gt;
=== USB to Serial Connection ===&lt;br /&gt;
&lt;br /&gt;
The following notes describe steps to interface with a Nanostation M5 (NSM5) via the serial interface. This may be necessary to manually load firmware onto the device if the web interface or TFTP methods of flashing the firmware become unavailable due to [http://www.networkworld.com/article/3038722/mobile-wireless/manufacturers-start-to-lock-down-wi-fi-router-firmware-thanks-fcc.html manufacturers disabling these methods] of firmware flashing.&lt;br /&gt;
&lt;br /&gt;
==== Order a USB to Serial Converter ====&lt;br /&gt;
&lt;br /&gt;
USB to serial converter devices exist at a cost of $4 - $8 online, with much lower pricing and longer delivery times if ordered from China. Search for &amp;quot;USB to UART TTL&amp;quot;, including &amp;quot;5 pin&amp;quot; in the search. Make sure the specifications do not mention anything other than 3.3 volts.&lt;br /&gt;
&lt;br /&gt;
==== Connecting to Serial ====&lt;br /&gt;
&lt;br /&gt;
You will need to connect the following pins from the converter to the pins on the device.&lt;br /&gt;
&lt;br /&gt;
* Ground (GND)&lt;br /&gt;
* Serial Out (Transmit / TX)&lt;br /&gt;
* Serial In (Receive / RX)&lt;br /&gt;
&lt;br /&gt;
Begin by connecting the Ground of the converter to the Ground of the device. Next connect the Transmit/TX of the converter to the Receive/RX of the device, then connect the Receive/RX of the converter to the Transmit/TX of the device.&lt;br /&gt;
&lt;br /&gt;
[[File:CP2102-usb-to-serial-converter.jpg|400px|KEDSUMÂ® CP2102 Module STC Download Cable USB 2.0 to TTL 6PIN Serial Converter For STC]]&lt;br /&gt;
&lt;br /&gt;
[[File:Ubiquity-NSM5-serial-connectors.jpg|400px|Ubiquiti Nanostation NSM5 - Serial pins with connections]]&lt;br /&gt;
&lt;br /&gt;
==== Serial Communications Program ====&lt;br /&gt;
&lt;br /&gt;
You need to install a serial communication program. Linux users can use Minicom.&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get install minicom&lt;br /&gt;
&lt;br /&gt;
By default the Minicom program will attempt to use /dev/tty8, and will also attempt to initialize the device (expecting a modem) by default.&lt;br /&gt;
&lt;br /&gt;
  $ minicom&lt;br /&gt;
  minicom: cannot open /dev/tty8: Permission denied&lt;br /&gt;
&lt;br /&gt;
Run the program so that it starts the program on the USB converter that is connected by adding &amp;lt;tt&amp;gt;-D /dev/ttyUSB0&amp;lt;/tt&amp;gt;, and specify that it should skip initialization by adding &amp;lt;tt&amp;gt;-o&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You can also specify from the command line that it use the baud rate and '8N1' settings specified below by including &amp;lt;tt&amp;gt;-b 115200 -8&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
  sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
&lt;br /&gt;
In Minicom, CTRL-A to get settings, then Press O, to access settings&lt;br /&gt;
&lt;br /&gt;
Go to Serial Port Setup, use these settings:&lt;br /&gt;
&lt;br /&gt;
* Set the serial device (should be /dev/tty/USB0)&lt;br /&gt;
* Baud Rate (Bits Per Second): 115200&lt;br /&gt;
* Settings '8N1' (short hand for 8 bits, no parity, 1 stop bit)&lt;br /&gt;
* Turn off hardware and software flow control&lt;br /&gt;
&lt;br /&gt;
Reboot the device, and it will let you drop into a command line. You will then have to figure out how to enable the network from the boot loader (Uboot or Redboot) and transfer the firmware to the device to flash it.&lt;br /&gt;
&lt;br /&gt;
==== Interupting Boot ====&lt;br /&gt;
&lt;br /&gt;
The device will not detect the key you press unless Minicom is configured properly.&lt;br /&gt;
&lt;br /&gt;
* To access the Help screen, Press CTRL-A, then press Z.&lt;br /&gt;
* To access the configuration/settings, press CTRL-A, then press O.&lt;br /&gt;
&lt;br /&gt;
From the configuration window, select to view the 'Serial port setup'&lt;br /&gt;
&lt;br /&gt;
  $ sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
  Welcome to minicom 2.7&lt;br /&gt;
  &lt;br /&gt;
  OPTIONS: I18n &lt;br /&gt;
  Compiled on Jan  1 2014, 17:13:19.&lt;br /&gt;
  Port /dev/ttyUSB0, 21:47:56&lt;br /&gt;
  &lt;br /&gt;
  Press CTRL-A Z for help on special keys&lt;br /&gt;
  &lt;br /&gt;
              +-----[configuration]------+&lt;br /&gt;
              | Filenames and paths      |&lt;br /&gt;
              | File transfer protocols  |&lt;br /&gt;
              | Serial port setup        |&lt;br /&gt;
              | Modem and dialing        |&lt;br /&gt;
              | Screen and keyboard      |&lt;br /&gt;
              | Save setup as dfl        |&lt;br /&gt;
              | Save setup as..          |&lt;br /&gt;
              | Exit                     |&lt;br /&gt;
              +--------------------------+&lt;br /&gt;
  &lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
  | A -    Serial Device      : /dev/ttyUSB0                              |&lt;br /&gt;
  | B - Lockfile Location     : /var/lock                                 |&lt;br /&gt;
  | C -   Callin Program      :                                           |&lt;br /&gt;
  | D -  Callout Program      :                                           |&lt;br /&gt;
  | E -    Bps/Par/Bits       : 115200 8N1                                |&lt;br /&gt;
  | F - Hardware Flow Control : Yes                                       |&lt;br /&gt;
  | G - Software Flow Control : No                                        |&lt;br /&gt;
  |                                                                       |&lt;br /&gt;
  |    Change which setting?                                              |&lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
&lt;br /&gt;
By default the Hardware Flow Control will be enabled. Press 'F' to disable Hardware Flow Control. Press ENTER to exit the Serial port setup window, and then select EXIT to go back to the program.&lt;br /&gt;
&lt;br /&gt;
At this point plug in the Ethernet cable to the 'Main' Ethernet port, with the other end connected to the 'POE' port on the Power Over Ethernet adapter that came with the device. As the device boots up, you'll see output similar to the following.&lt;br /&gt;
&lt;br /&gt;
You'll need to make sure to press a key before it boots the default image.&lt;br /&gt;
&lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ar7240&amp;gt; &lt;br /&gt;
&lt;br /&gt;
This will cause the [https://wiki.openwrt.org/doc/techref/bootloader/uboot U-Boot] bootloader to drop into a command line.&lt;br /&gt;
&lt;br /&gt;
==== Running TFTPd ====&lt;br /&gt;
&lt;br /&gt;
Although U-Boot can support two protocols for transfering files, kermit or y-modem, the bootloader does not support the &amp;lt;tt&amp;gt;loadb&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;loady&amp;lt;/tt&amp;gt;. Minicom only supports y-modem protocol.&lt;br /&gt;
&lt;br /&gt;
We do not have to resort to a direct serial file transfer however. The 'mtdparts' command that is used to define flash memory partitions can be used to reset the partition table to the defaults before running 'urescue' to start the TFTP server.&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; help mtdparts&lt;br /&gt;
  mtdparts &lt;br /&gt;
      - list partition table&lt;br /&gt;
  mtdparts delall&lt;br /&gt;
      - delete all partitions&lt;br /&gt;
  mtdparts del part-id&lt;br /&gt;
      - delete partition (e.g. part-id = nand0,1)&lt;br /&gt;
  mtdparts add &amp;lt;mtd-dev&amp;gt; &amp;lt;size&amp;gt;[@&amp;lt;offset&amp;gt;] [&amp;lt;name&amp;gt;] [ro]&lt;br /&gt;
      - add partition&lt;br /&gt;
  mtdparts default&lt;br /&gt;
      - reset partition table to defaults&lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
&lt;br /&gt;
In your other terminal window, run the ubi-flasher script.&lt;br /&gt;
&lt;br /&gt;
  $ ./flasher.js /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin&lt;br /&gt;
  Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
  Connection timed out&lt;br /&gt;
  Sending /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
  Firmware flashing begun!&lt;br /&gt;
  The firmware has been successfully sent to the router.&lt;br /&gt;
  In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up).&lt;br /&gt;
  This means that the router is flashing itself with the new firmware.&lt;br /&gt;
  Once the router goes back to having only the power LED lit, the router has been successfully flashed.&lt;br /&gt;
&lt;br /&gt;
In the terminal running Minicom you should see the firmware successfully flashing.&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:52289&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware Version: XW.ar934x.v6.0.0-OpenWrt-r47662&lt;br /&gt;
  Setting U-Boot environment variables&lt;br /&gt;
  Un-Protected 1 sectors&lt;br /&gt;
  Erasing Flash.... done&lt;br /&gt;
  Erased 1 sectors&lt;br /&gt;
  Writing to Flash... write addr: 9f040000&lt;br /&gt;
  done&lt;br /&gt;
  Protected 1 sectors&lt;br /&gt;
  Copying partition 'kernel' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x5 last 0x14 sector size 0x10000&lt;br /&gt;
  ................ done&lt;br /&gt;
  write addr: 9f050000&lt;br /&gt;
  Copying partition 'rootfs' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x15 last 0x6e sector size 0x10000&lt;br /&gt;
  .......................................................................................... done&lt;br /&gt;
  write addr: 9f150000&lt;br /&gt;
  &lt;br /&gt;
  Firmware update complete.&lt;br /&gt;
  &lt;br /&gt;
  Resetting...&lt;br /&gt;
  &lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ## Booting image at 9f050000 ...&lt;br /&gt;
     Image Name:   MIPS OpenWrt Linux-3.18.23&lt;br /&gt;
     Created:      2015-12-01   0:03:51 UTC&lt;br /&gt;
     Image Type:   MIPS Linux Kernel Image (lzma compressed)&lt;br /&gt;
     Data Size:    1135619 Bytes =  1.1 MB&lt;br /&gt;
     Load Address: 80060000&lt;br /&gt;
     Entry Point:  80060000&lt;br /&gt;
     Verifying Checksum at 0x9f050040 ...OK&lt;br /&gt;
     Uncompressing Kernel Image ... OK&lt;br /&gt;
  &lt;br /&gt;
  Starting kernel ...&lt;br /&gt;
  &lt;br /&gt;
  [    0.000000] Linux version 3.18.23 (sudowrt-builder@build-test2) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.04 r47662) ) #2 Mon Nov 5&lt;br /&gt;
&lt;br /&gt;
After it reboots if you see the first line mention 'sudowrt-builder', the device is booting the SudoWRT firmware build.&lt;br /&gt;
&lt;br /&gt;
You can press ENTER once it is finished, and it should drop into the command line for the SudoWRT system.&lt;br /&gt;
&lt;br /&gt;
  [   25.650000] jffs2: Newly-erased block contained word 0xdeadc0de at offset 0x00000000&lt;br /&gt;
  [   25.660000] done.&lt;br /&gt;
  [   25.660000] jffs2: notice: (993) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and.&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  BusyBox v1.23.2 (2015-11-30 18:48:50 EST) built-in shell (ash)&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
    ._______.___    ._______.______  ._____  .___    .___ .______  ._____  &lt;br /&gt;
    :_ ____/|   |   : .____/:_ _   \ :_ ___\ |   |   : __|:      \ :_ ___\ &lt;br /&gt;
    |   _/  |   |   | : _/\ |   |   ||   |___|   |   | : ||       ||   |___&lt;br /&gt;
    |   |   |   |/\ |   /  \| . |   ||   /  ||   |/\ |   ||   |   ||   /  |&lt;br /&gt;
    |_. |   |   /  \|_.: __/|. ____/ |. __  ||   /  \|   ||___|   ||. __  |&lt;br /&gt;
      :/    |______/   :/    :/       :/ |. ||______/|___|    |___| :/ |. |&lt;br /&gt;
      :                      :        :   :/                        :   :/ &lt;br /&gt;
                                          :                             : &lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   sudo mesh v0.2 (fledgling.extender)&lt;br /&gt;
                                based on OpenWRT 15.05 (Chaos Calmer)&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   &amp;quot;When your rage is choking you, it is best to say nothing.&amp;quot; &lt;br /&gt;
                                              - Octavia E. Butler, Fledgling&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
  &lt;br /&gt;
  root@sudomesh-node:/#&lt;br /&gt;
&lt;br /&gt;
== Picostation M2HP ==&lt;br /&gt;
&lt;br /&gt;
Insightful post on [https://www.strugglingcoder.info/index.php/tag/ubnt/ loading FreeBSD image] with help from serial communications. Could be useful with troubleshooting other models.&lt;/div&gt;</summary>
		<author><name>Redconfetti</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10158</id>
		<title>Mesh/Flashing extender nodes</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10158"/>
		<updated>2016-05-08T05:52:37Z</updated>

		<summary type="html">&lt;p&gt;Redconfetti: adding link to article involving Picostation M2HP&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Download the Image File For a Extender Node ==&lt;br /&gt;
&lt;br /&gt;
The extender nodes that we currently support are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Model No. !! OpenWRT Doc !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M5 || NSM5 || [https://wiki.openwrt.org/toh/ubiquiti/nanostationm5 OpenWRT Docs] || firmware: [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin pre 2015] or [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin 2015-2016]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M2 || NSM2 || [https://wiki.openwrt.org/toh/ubiquiti/nanostationm2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-om2p-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation 2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostation2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ath25.extender-node/openwrt-ath25-ubnt2-pico2-squashfs.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation M2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostationm2 OpenWRT Docs] || &lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobeam M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/nanobeam OpenWRT Docs] || &lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Bullet M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/bullet OpenWRT Docs] || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Flash the Extender Node ==&lt;br /&gt;
&lt;br /&gt;
* Configure your wired internet settings to use Manual IPv4 settings with IP: 192.168.1.10, subnet: 255.255.255.0, gateway: 0.0.0.0&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Plug another Ethernet cable into your antenna on one end and into the &amp;quot;POE&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Push a pin into the reset hole and hold it.&lt;br /&gt;
* With the pin held down, plug in the power to the power-over-ethernet power supply.&lt;br /&gt;
* Watch the lights on the antenna - they will all flash together a few times, then they will flash up and down.&lt;br /&gt;
* Once the lights on the antenna are flashing up and down, you can let go of the pin.&lt;br /&gt;
&lt;br /&gt;
You should be able to ping the extender at 192.168.1.20.&lt;br /&gt;
&lt;br /&gt;
  $ ping 192.168.1.20&lt;br /&gt;
  PING 192.168.1.20 (192.168.1.20) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=1 ttl=64 time=1.54 ms&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=2 ttl=64 time=0.826 ms&lt;br /&gt;
&lt;br /&gt;
In your Linux terminal, type:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/ubi-flasher&lt;br /&gt;
  cd ubi-flasher&lt;br /&gt;
  npm install&lt;br /&gt;
  ./flasher.js '&amp;lt;path to firmware&amp;gt;'&lt;br /&gt;
&lt;br /&gt;
The terminal will tell you &amp;quot;The firmware has been successfully sent to the router. In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up). This means that the router is flashing itself with the new firmware. Once the router goes back to having only the power LED lit, the router has been successfully flashed.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Wait until the antenna has only the power LED lit and you're done.&lt;br /&gt;
&lt;br /&gt;
Reconfigure your machine with the following static network configuration.&lt;br /&gt;
&lt;br /&gt;
* IP Address: 172.22.0.10&lt;br /&gt;
* Subnet mask:  255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0&lt;br /&gt;
&lt;br /&gt;
See Network Configuration Guides: [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20Linux Linux] [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20MacOS%20X Mac]&lt;br /&gt;
&lt;br /&gt;
If you ping the extender node on 172.22.0.2 and it responds, it should be ready to connect to your home node on the appropriate wired Ethernet port.&lt;br /&gt;
&lt;br /&gt;
  $ ping 172.22.0.2&lt;br /&gt;
  PING 172.22.0.2 (172.22.0.2) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=1 ttl=64 time=0.617 ms&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=2 ttl=64 time=0.316 ms&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=3 ttl=64 time=0.398 ms&lt;br /&gt;
&lt;br /&gt;
== Nanostation M5 ==&lt;br /&gt;
&lt;br /&gt;
=== Firmware check failure ===&lt;br /&gt;
&lt;br /&gt;
If you attempt to flash the extender and receive a 'Firmware check failed' error, then you have a version of the NSM5 that is protected from being flashed via the default TFTP method. You will need to obtain a serial to USB interface (USB to UART TTL Module Serial Converter, 5 pin) and use it to flash the firmware.&lt;br /&gt;
&lt;br /&gt;
   $ ./flasher.js openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin&lt;br /&gt;
   Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
   Connection timed out&lt;br /&gt;
   Sending openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
   [Error: (Server) Firmware check failed]&lt;br /&gt;
&lt;br /&gt;
When connected to the NSM5 via a serial connection, a similar error is displayed when attempting to load the SudoWRT firmware image.&lt;br /&gt;
&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Will reset device configuration (Reset button active after 10 seconds).&lt;br /&gt;
  Erasing sector 123..126&lt;br /&gt;
  &lt;br /&gt;
  First 0x7b last 0x7e sector size 0x10000&lt;br /&gt;
  .... done&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
  Receiving file from 192.168.1.10:49763&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware check failed! (1)&lt;br /&gt;
&lt;br /&gt;
==== NSM5 Official Firmware ====&lt;br /&gt;
&lt;br /&gt;
Official firmware from Ubiquity Nanostation M5 (NSM5)&lt;br /&gt;
&lt;br /&gt;
* [https://www.ubnt.com/download/airmax-m/nanostationm/default/airos-xw-board-firmware-v564 airOS for XW board firmware v5.6.4]&lt;br /&gt;
* [http://dl.ubnt.com/firmwares/XW-fw/v5.6.3/XW.v5.6.3.28591.151130.1735.bin airOS for XW board firmware v5.6.3]&lt;br /&gt;
&lt;br /&gt;
=== USB to Serial Connection ===&lt;br /&gt;
&lt;br /&gt;
The following notes describe steps to interface with a Nanostation M5 (NSM5) via the serial interface. This may be necessary to manually load firmware onto the device if the web interface or TFTP methods of flashing the firmware become unavailable due to [http://www.networkworld.com/article/3038722/mobile-wireless/manufacturers-start-to-lock-down-wi-fi-router-firmware-thanks-fcc.html manufacturers disabling these methods] of firmware flashing.&lt;br /&gt;
&lt;br /&gt;
==== Order a USB to Serial Converter ====&lt;br /&gt;
&lt;br /&gt;
USB to serial converter devices exist at a cost of $4 - $8 online, with much lower pricing and longer delivery times if ordered from China. Search for &amp;quot;USB to UART TTL&amp;quot;, including &amp;quot;5 pin&amp;quot; in the search. Make sure the specifications do not mention anything other than 3.3 volts.&lt;br /&gt;
&lt;br /&gt;
==== Connecting to Serial ====&lt;br /&gt;
&lt;br /&gt;
You will need to connect the following pins from the converter to the pins on the device.&lt;br /&gt;
&lt;br /&gt;
* Ground (GND)&lt;br /&gt;
* Serial Out (Transmit / TX)&lt;br /&gt;
* Serial In (Receive / RX)&lt;br /&gt;
&lt;br /&gt;
Begin by connecting the Ground of the converter to the Ground of the device. Next connect the Transmit/TX of the converter to the Receive/RX of the device, then connect the Receive/RX of the converter to the Transmit/TX of the device.&lt;br /&gt;
&lt;br /&gt;
[[File:CP2102-usb-to-serial-converter.jpg|400px|KEDSUMÂ® CP2102 Module STC Download Cable USB 2.0 to TTL 6PIN Serial Converter For STC]]&lt;br /&gt;
&lt;br /&gt;
[[File:Ubiquity-NSM5-serial-connectors.jpg|400px|Ubiquiti Nanostation NSM5 - Serial pins with connections]]&lt;br /&gt;
&lt;br /&gt;
==== Serial Communications Program ====&lt;br /&gt;
&lt;br /&gt;
You need to install a serial communication program. Linux users can use Minicom.&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get install minicom&lt;br /&gt;
&lt;br /&gt;
By default the Minicom program will attempt to use /dev/tty8, and will also attempt to initialize the device (expecting a modem) by default.&lt;br /&gt;
&lt;br /&gt;
  $ minicom&lt;br /&gt;
  minicom: cannot open /dev/tty8: Permission denied&lt;br /&gt;
&lt;br /&gt;
Run the program so that it starts the program on the USB converter that is connected by adding `-D /dev/ttyUSB0`, and specify that it should skip initialization by adding `-o`.&lt;br /&gt;
&lt;br /&gt;
You can also specify from the command line that it use the baud rate and '8N1' settings specified below by including `-b 115200 -8`. &lt;br /&gt;
&lt;br /&gt;
  sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
&lt;br /&gt;
In Minicom, CTRL-A to get settings, then Press O, to access settings&lt;br /&gt;
&lt;br /&gt;
Go to Serial Port Setup, use these settings:&lt;br /&gt;
&lt;br /&gt;
* Set the serial device (should be /dev/tty/USB0)&lt;br /&gt;
* Baud Rate (Bits Per Second): 115200&lt;br /&gt;
* Settings '8N1' (short hand for 8 bits, no parity, 1 stop bit)&lt;br /&gt;
* Turn off hardware and software flow control&lt;br /&gt;
&lt;br /&gt;
Reboot the device, and it will let you drop into a command line. You will then have to figure out how to enable the network from the boot loader (Uboot or Redboot) and transfer the firmware to the device to flash it.&lt;br /&gt;
&lt;br /&gt;
==== Interupting Boot ====&lt;br /&gt;
&lt;br /&gt;
The device will not detect the key you press unless Minicom is configured properly.&lt;br /&gt;
&lt;br /&gt;
* To access the Help screen, Press CTRL-A, then press Z.&lt;br /&gt;
* To access the configuration/settings, press CTRL-A, then press O.&lt;br /&gt;
&lt;br /&gt;
From the configuration window, select to view the 'Serial port setup'&lt;br /&gt;
&lt;br /&gt;
  $ sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
  Welcome to minicom 2.7&lt;br /&gt;
  &lt;br /&gt;
  OPTIONS: I18n &lt;br /&gt;
  Compiled on Jan  1 2014, 17:13:19.&lt;br /&gt;
  Port /dev/ttyUSB0, 21:47:56&lt;br /&gt;
  &lt;br /&gt;
  Press CTRL-A Z for help on special keys&lt;br /&gt;
  &lt;br /&gt;
              +-----[configuration]------+&lt;br /&gt;
              | Filenames and paths      |&lt;br /&gt;
              | File transfer protocols  |&lt;br /&gt;
              | Serial port setup        |&lt;br /&gt;
              | Modem and dialing        |&lt;br /&gt;
              | Screen and keyboard      |&lt;br /&gt;
              | Save setup as dfl        |&lt;br /&gt;
              | Save setup as..          |&lt;br /&gt;
              | Exit                     |&lt;br /&gt;
              +--------------------------+&lt;br /&gt;
  &lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
  | A -    Serial Device      : /dev/ttyUSB0                              |&lt;br /&gt;
  | B - Lockfile Location     : /var/lock                                 |&lt;br /&gt;
  | C -   Callin Program      :                                           |&lt;br /&gt;
  | D -  Callout Program      :                                           |&lt;br /&gt;
  | E -    Bps/Par/Bits       : 115200 8N1                                |&lt;br /&gt;
  | F - Hardware Flow Control : Yes                                       |&lt;br /&gt;
  | G - Software Flow Control : No                                        |&lt;br /&gt;
  |                                                                       |&lt;br /&gt;
  |    Change which setting?                                              |&lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
&lt;br /&gt;
By default the Hardware Flow Control will be enabled. Press 'F' to disable Hardware Flow Control. Press ENTER to exit the Serial port setup window, and then select EXIT to go back to the program.&lt;br /&gt;
&lt;br /&gt;
At this point plug in the Ethernet cable to the 'Main' Ethernet port, with the other end connected to the 'POE' port on the Power Over Ethernet adapter that came with the device. As the device boots up, you'll see output similar to the following.&lt;br /&gt;
&lt;br /&gt;
You'll need to make sure to press a key before it boots the default image.&lt;br /&gt;
&lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ar7240&amp;gt; &lt;br /&gt;
&lt;br /&gt;
This will cause the [https://wiki.openwrt.org/doc/techref/bootloader/uboot U-Boot] bootloader to drop into a command line.&lt;br /&gt;
&lt;br /&gt;
==== Running TFTPd ====&lt;br /&gt;
&lt;br /&gt;
Although U-Boot can support two protocols for transfering files, kermit or y-modem, the bootloader does not support the &amp;lt;tt&amp;gt;loadb&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;loady&amp;lt;/tt&amp;gt;. Minicom only supports y-modem protocol.&lt;br /&gt;
&lt;br /&gt;
We do not have to resort to a direct serial file transfer however. The 'mtdparts' command that is used to define flash memory partitions can be used to reset the partition table to the defaults before running 'urescue' to start the TFTP server.&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; help mtdparts&lt;br /&gt;
  mtdparts &lt;br /&gt;
      - list partition table&lt;br /&gt;
  mtdparts delall&lt;br /&gt;
      - delete all partitions&lt;br /&gt;
  mtdparts del part-id&lt;br /&gt;
      - delete partition (e.g. part-id = nand0,1)&lt;br /&gt;
  mtdparts add &amp;lt;mtd-dev&amp;gt; &amp;lt;size&amp;gt;[@&amp;lt;offset&amp;gt;] [&amp;lt;name&amp;gt;] [ro]&lt;br /&gt;
      - add partition&lt;br /&gt;
  mtdparts default&lt;br /&gt;
      - reset partition table to defaults&lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
&lt;br /&gt;
In your other terminal window, run the ubi-flasher script.&lt;br /&gt;
&lt;br /&gt;
  $ ./flasher.js /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin&lt;br /&gt;
  Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
  Connection timed out&lt;br /&gt;
  Sending /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
  Firmware flashing begun!&lt;br /&gt;
  The firmware has been successfully sent to the router.&lt;br /&gt;
  In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up).&lt;br /&gt;
  This means that the router is flashing itself with the new firmware.&lt;br /&gt;
  Once the router goes back to having only the power LED lit, the router has been successfully flashed.&lt;br /&gt;
&lt;br /&gt;
In the terminal running Minicom you should see the firmware successfully flashing.&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:52289&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware Version: XW.ar934x.v6.0.0-OpenWrt-r47662&lt;br /&gt;
  Setting U-Boot environment variables&lt;br /&gt;
  Un-Protected 1 sectors&lt;br /&gt;
  Erasing Flash.... done&lt;br /&gt;
  Erased 1 sectors&lt;br /&gt;
  Writing to Flash... write addr: 9f040000&lt;br /&gt;
  done&lt;br /&gt;
  Protected 1 sectors&lt;br /&gt;
  Copying partition 'kernel' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x5 last 0x14 sector size 0x10000&lt;br /&gt;
  ................ done&lt;br /&gt;
  write addr: 9f050000&lt;br /&gt;
  Copying partition 'rootfs' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x15 last 0x6e sector size 0x10000&lt;br /&gt;
  .......................................................................................... done&lt;br /&gt;
  write addr: 9f150000&lt;br /&gt;
  &lt;br /&gt;
  Firmware update complete.&lt;br /&gt;
  &lt;br /&gt;
  Resetting...&lt;br /&gt;
  &lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ## Booting image at 9f050000 ...&lt;br /&gt;
     Image Name:   MIPS OpenWrt Linux-3.18.23&lt;br /&gt;
     Created:      2015-12-01   0:03:51 UTC&lt;br /&gt;
     Image Type:   MIPS Linux Kernel Image (lzma compressed)&lt;br /&gt;
     Data Size:    1135619 Bytes =  1.1 MB&lt;br /&gt;
     Load Address: 80060000&lt;br /&gt;
     Entry Point:  80060000&lt;br /&gt;
     Verifying Checksum at 0x9f050040 ...OK&lt;br /&gt;
     Uncompressing Kernel Image ... OK&lt;br /&gt;
  &lt;br /&gt;
  Starting kernel ...&lt;br /&gt;
  &lt;br /&gt;
  [    0.000000] Linux version 3.18.23 (sudowrt-builder@build-test2) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.04 r47662) ) #2 Mon Nov 5&lt;br /&gt;
&lt;br /&gt;
After it reboots if you see the first line mention 'sudowrt-builder', the device is booting the SudoWRT firmware build.&lt;br /&gt;
&lt;br /&gt;
You can press ENTER once it is finished, and it should drop into the command line for the SudoWRT system.&lt;br /&gt;
&lt;br /&gt;
  [   25.650000] jffs2: Newly-erased block contained word 0xdeadc0de at offset 0x00000000&lt;br /&gt;
  [   25.660000] done.&lt;br /&gt;
  [   25.660000] jffs2: notice: (993) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and.&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  BusyBox v1.23.2 (2015-11-30 18:48:50 EST) built-in shell (ash)&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
    ._______.___    ._______.______  ._____  .___    .___ .______  ._____  &lt;br /&gt;
    :_ ____/|   |   : .____/:_ _   \ :_ ___\ |   |   : __|:      \ :_ ___\ &lt;br /&gt;
    |   _/  |   |   | : _/\ |   |   ||   |___|   |   | : ||       ||   |___&lt;br /&gt;
    |   |   |   |/\ |   /  \| . |   ||   /  ||   |/\ |   ||   |   ||   /  |&lt;br /&gt;
    |_. |   |   /  \|_.: __/|. ____/ |. __  ||   /  \|   ||___|   ||. __  |&lt;br /&gt;
      :/    |______/   :/    :/       :/ |. ||______/|___|    |___| :/ |. |&lt;br /&gt;
      :                      :        :   :/                        :   :/ &lt;br /&gt;
                                          :                             : &lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   sudo mesh v0.2 (fledgling.extender)&lt;br /&gt;
                                based on OpenWRT 15.05 (Chaos Calmer)&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   &amp;quot;When your rage is choking you, it is best to say nothing.&amp;quot; &lt;br /&gt;
                                              - Octavia E. Butler, Fledgling&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
  &lt;br /&gt;
  root@sudomesh-node:/#&lt;br /&gt;
&lt;br /&gt;
== Picostation M2HP ==&lt;br /&gt;
&lt;br /&gt;
Insightful post on [https://www.strugglingcoder.info/index.php/tag/ubnt/ loading FreeBSD image] with help from serial communications. Could be useful with troubleshooting other models.&lt;/div&gt;</summary>
		<author><name>Redconfetti</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10157</id>
		<title>Mesh/Flashing extender nodes</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10157"/>
		<updated>2016-05-08T04:57:24Z</updated>

		<summary type="html">&lt;p&gt;Redconfetti: /* Flash the Extender Node */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Download the Image File For a Extender Node ==&lt;br /&gt;
&lt;br /&gt;
The extender nodes that we currently support are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Model No. !! OpenWRT Doc !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M5 || NSM5 || [https://wiki.openwrt.org/toh/ubiquiti/nanostationm5 OpenWRT Docs] || firmware: [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin pre 2015] or [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin 2015-2016]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M2 || NSM2 || [https://wiki.openwrt.org/toh/ubiquiti/nanostationm2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-om2p-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation 2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostation2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ath25.extender-node/openwrt-ath25-ubnt2-pico2-squashfs.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation M2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostationm2 OpenWRT Docs] || &lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobeam M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/nanobeam OpenWRT Docs] || &lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Bullet M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/bullet OpenWRT Docs] || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Flash the Extender Node ==&lt;br /&gt;
&lt;br /&gt;
* Configure your wired internet settings to use Manual IPv4 settings with IP: 192.168.1.10, subnet: 255.255.255.0, gateway: 0.0.0.0&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Plug another Ethernet cable into your antenna on one end and into the &amp;quot;POE&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Push a pin into the reset hole and hold it.&lt;br /&gt;
* With the pin held down, plug in the power to the power-over-ethernet power supply.&lt;br /&gt;
* Watch the lights on the antenna - they will all flash together a few times, then they will flash up and down.&lt;br /&gt;
* Once the lights on the antenna are flashing up and down, you can let go of the pin.&lt;br /&gt;
&lt;br /&gt;
You should be able to ping the extender at 192.168.1.20.&lt;br /&gt;
&lt;br /&gt;
  $ ping 192.168.1.20&lt;br /&gt;
  PING 192.168.1.20 (192.168.1.20) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=1 ttl=64 time=1.54 ms&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=2 ttl=64 time=0.826 ms&lt;br /&gt;
&lt;br /&gt;
In your Linux terminal, type:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/ubi-flasher&lt;br /&gt;
  cd ubi-flasher&lt;br /&gt;
  npm install&lt;br /&gt;
  ./flasher.js '&amp;lt;path to firmware&amp;gt;'&lt;br /&gt;
&lt;br /&gt;
The terminal will tell you &amp;quot;The firmware has been successfully sent to the router. In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up). This means that the router is flashing itself with the new firmware. Once the router goes back to having only the power LED lit, the router has been successfully flashed.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Wait until the antenna has only the power LED lit and you're done.&lt;br /&gt;
&lt;br /&gt;
Reconfigure your machine with the following static network configuration.&lt;br /&gt;
&lt;br /&gt;
* IP Address: 172.22.0.10&lt;br /&gt;
* Subnet mask:  255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0&lt;br /&gt;
&lt;br /&gt;
See Network Configuration Guides: [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20Linux Linux] [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20MacOS%20X Mac]&lt;br /&gt;
&lt;br /&gt;
If you ping the extender node on 172.22.0.2 and it responds, it should be ready to connect to your home node on the appropriate wired Ethernet port.&lt;br /&gt;
&lt;br /&gt;
  $ ping 172.22.0.2&lt;br /&gt;
  PING 172.22.0.2 (172.22.0.2) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=1 ttl=64 time=0.617 ms&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=2 ttl=64 time=0.316 ms&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=3 ttl=64 time=0.398 ms&lt;br /&gt;
&lt;br /&gt;
== Nanostation M5 ==&lt;br /&gt;
&lt;br /&gt;
=== Firmware check failure ===&lt;br /&gt;
&lt;br /&gt;
If you attempt to flash the extender and receive a 'Firmware check failed' error, then you have a version of the NSM5 that is protected from being flashed via the default TFTP method. You will need to obtain a serial to USB interface (USB to UART TTL Module Serial Converter, 5 pin) and use it to flash the firmware.&lt;br /&gt;
&lt;br /&gt;
   $ ./flasher.js openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin&lt;br /&gt;
   Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
   Connection timed out&lt;br /&gt;
   Sending openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
   [Error: (Server) Firmware check failed]&lt;br /&gt;
&lt;br /&gt;
When connected to the NSM5 via a serial connection, a similar error is displayed when attempting to load the SudoWRT firmware image.&lt;br /&gt;
&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Will reset device configuration (Reset button active after 10 seconds).&lt;br /&gt;
  Erasing sector 123..126&lt;br /&gt;
  &lt;br /&gt;
  First 0x7b last 0x7e sector size 0x10000&lt;br /&gt;
  .... done&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
  Receiving file from 192.168.1.10:49763&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware check failed! (1)&lt;br /&gt;
&lt;br /&gt;
==== NSM5 Official Firmware ====&lt;br /&gt;
&lt;br /&gt;
Official firmware from Ubiquity Nanostation M5 (NSM5)&lt;br /&gt;
&lt;br /&gt;
* [https://www.ubnt.com/download/airmax-m/nanostationm/default/airos-xw-board-firmware-v564 airOS for XW board firmware v5.6.4]&lt;br /&gt;
* [http://dl.ubnt.com/firmwares/XW-fw/v5.6.3/XW.v5.6.3.28591.151130.1735.bin airOS for XW board firmware v5.6.3]&lt;br /&gt;
&lt;br /&gt;
=== USB to Serial Connection ===&lt;br /&gt;
&lt;br /&gt;
The following notes describe steps to interface with a Nanostation M5 (NSM5) via the serial interface. This may be necessary to manually load firmware onto the device if the web interface or TFTP methods of flashing the firmware become unavailable due to [http://www.networkworld.com/article/3038722/mobile-wireless/manufacturers-start-to-lock-down-wi-fi-router-firmware-thanks-fcc.html manufacturers disabling these methods] of firmware flashing.&lt;br /&gt;
&lt;br /&gt;
==== Order a USB to Serial Converter ====&lt;br /&gt;
&lt;br /&gt;
USB to serial converter devices exist at a cost of $4 - $8 online, with much lower pricing and longer delivery times if ordered from China. Search for &amp;quot;USB to UART TTL&amp;quot;, including &amp;quot;5 pin&amp;quot; in the search. Make sure the specifications do not mention anything other than 3.3 volts.&lt;br /&gt;
&lt;br /&gt;
==== Connecting to Serial ====&lt;br /&gt;
&lt;br /&gt;
You will need to connect the following pins from the converter to the pins on the device.&lt;br /&gt;
&lt;br /&gt;
* Ground (GND)&lt;br /&gt;
* Serial Out (Transmit / TX)&lt;br /&gt;
* Serial In (Receive / RX)&lt;br /&gt;
&lt;br /&gt;
Begin by connecting the Ground of the converter to the Ground of the device. Next connect the Transmit/TX of the converter to the Receive/RX of the device, then connect the Receive/RX of the converter to the Transmit/TX of the device.&lt;br /&gt;
&lt;br /&gt;
[[File:CP2102-usb-to-serial-converter.jpg|400px|KEDSUMÂ® CP2102 Module STC Download Cable USB 2.0 to TTL 6PIN Serial Converter For STC]]&lt;br /&gt;
&lt;br /&gt;
[[File:Ubiquity-NSM5-serial-connectors.jpg|400px|Ubiquiti Nanostation NSM5 - Serial pins with connections]]&lt;br /&gt;
&lt;br /&gt;
==== Serial Communications Program ====&lt;br /&gt;
&lt;br /&gt;
You need to install a serial communication program. Linux users can use Minicom.&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get install minicom&lt;br /&gt;
&lt;br /&gt;
By default the Minicom program will attempt to use /dev/tty8, and will also attempt to initialize the device (expecting a modem) by default.&lt;br /&gt;
&lt;br /&gt;
  $ minicom&lt;br /&gt;
  minicom: cannot open /dev/tty8: Permission denied&lt;br /&gt;
&lt;br /&gt;
Run the program so that it starts the program on the USB converter that is connected by adding `-D /dev/ttyUSB0`, and specify that it should skip initialization by adding `-o`.&lt;br /&gt;
&lt;br /&gt;
You can also specify from the command line that it use the baud rate and '8N1' settings specified below by including `-b 115200 -8`. &lt;br /&gt;
&lt;br /&gt;
  sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
&lt;br /&gt;
In Minicom, CTRL-A to get settings, then Press O, to access settings&lt;br /&gt;
&lt;br /&gt;
Go to Serial Port Setup, use these settings:&lt;br /&gt;
&lt;br /&gt;
* Set the serial device (should be /dev/tty/USB0)&lt;br /&gt;
* Baud Rate (Bits Per Second): 115200&lt;br /&gt;
* Settings '8N1' (short hand for 8 bits, no parity, 1 stop bit)&lt;br /&gt;
* Turn off hardware and software flow control&lt;br /&gt;
&lt;br /&gt;
Reboot the device, and it will let you drop into a command line. You will then have to figure out how to enable the network from the boot loader (Uboot or Redboot) and transfer the firmware to the device to flash it.&lt;br /&gt;
&lt;br /&gt;
==== Interupting Boot ====&lt;br /&gt;
&lt;br /&gt;
The device will not detect the key you press unless Minicom is configured properly.&lt;br /&gt;
&lt;br /&gt;
* To access the Help screen, Press CTRL-A, then press Z.&lt;br /&gt;
* To access the configuration/settings, press CTRL-A, then press O.&lt;br /&gt;
&lt;br /&gt;
From the configuration window, select to view the 'Serial port setup'&lt;br /&gt;
&lt;br /&gt;
  $ sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
  Welcome to minicom 2.7&lt;br /&gt;
  &lt;br /&gt;
  OPTIONS: I18n &lt;br /&gt;
  Compiled on Jan  1 2014, 17:13:19.&lt;br /&gt;
  Port /dev/ttyUSB0, 21:47:56&lt;br /&gt;
  &lt;br /&gt;
  Press CTRL-A Z for help on special keys&lt;br /&gt;
  &lt;br /&gt;
              +-----[configuration]------+&lt;br /&gt;
              | Filenames and paths      |&lt;br /&gt;
              | File transfer protocols  |&lt;br /&gt;
              | Serial port setup        |&lt;br /&gt;
              | Modem and dialing        |&lt;br /&gt;
              | Screen and keyboard      |&lt;br /&gt;
              | Save setup as dfl        |&lt;br /&gt;
              | Save setup as..          |&lt;br /&gt;
              | Exit                     |&lt;br /&gt;
              +--------------------------+&lt;br /&gt;
  &lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
  | A -    Serial Device      : /dev/ttyUSB0                              |&lt;br /&gt;
  | B - Lockfile Location     : /var/lock                                 |&lt;br /&gt;
  | C -   Callin Program      :                                           |&lt;br /&gt;
  | D -  Callout Program      :                                           |&lt;br /&gt;
  | E -    Bps/Par/Bits       : 115200 8N1                                |&lt;br /&gt;
  | F - Hardware Flow Control : Yes                                       |&lt;br /&gt;
  | G - Software Flow Control : No                                        |&lt;br /&gt;
  |                                                                       |&lt;br /&gt;
  |    Change which setting?                                              |&lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
&lt;br /&gt;
By default the Hardware Flow Control will be enabled. Press 'F' to disable Hardware Flow Control. Press ENTER to exit the Serial port setup window, and then select EXIT to go back to the program.&lt;br /&gt;
&lt;br /&gt;
At this point plug in the Ethernet cable to the 'Main' Ethernet port, with the other end connected to the 'POE' port on the Power Over Ethernet adapter that came with the device. As the device boots up, you'll see output similar to the following.&lt;br /&gt;
&lt;br /&gt;
You'll need to make sure to press a key before it boots the default image.&lt;br /&gt;
&lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ar7240&amp;gt; &lt;br /&gt;
&lt;br /&gt;
This will cause the [https://wiki.openwrt.org/doc/techref/bootloader/uboot U-Boot] bootloader to drop into a command line.&lt;br /&gt;
&lt;br /&gt;
==== Running TFTPd ====&lt;br /&gt;
&lt;br /&gt;
Although U-Boot can support two protocols for transfering files, kermit or y-modem, the bootloader does not support the &amp;lt;tt&amp;gt;loadb&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;loady&amp;lt;/tt&amp;gt;. Minicom only supports y-modem protocol.&lt;br /&gt;
&lt;br /&gt;
We do not have to resort to a direct serial file transfer however. The 'mtdparts' command that is used to define flash memory partitions can be used to reset the partition table to the defaults before running 'urescue' to start the TFTP server.&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; help mtdparts&lt;br /&gt;
  mtdparts &lt;br /&gt;
      - list partition table&lt;br /&gt;
  mtdparts delall&lt;br /&gt;
      - delete all partitions&lt;br /&gt;
  mtdparts del part-id&lt;br /&gt;
      - delete partition (e.g. part-id = nand0,1)&lt;br /&gt;
  mtdparts add &amp;lt;mtd-dev&amp;gt; &amp;lt;size&amp;gt;[@&amp;lt;offset&amp;gt;] [&amp;lt;name&amp;gt;] [ro]&lt;br /&gt;
      - add partition&lt;br /&gt;
  mtdparts default&lt;br /&gt;
      - reset partition table to defaults&lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
&lt;br /&gt;
In your other terminal window, run the ubi-flasher script.&lt;br /&gt;
&lt;br /&gt;
  $ ./flasher.js /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin&lt;br /&gt;
  Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
  Connection timed out&lt;br /&gt;
  Sending /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
  Firmware flashing begun!&lt;br /&gt;
  The firmware has been successfully sent to the router.&lt;br /&gt;
  In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up).&lt;br /&gt;
  This means that the router is flashing itself with the new firmware.&lt;br /&gt;
  Once the router goes back to having only the power LED lit, the router has been successfully flashed.&lt;br /&gt;
&lt;br /&gt;
In the terminal running Minicom you should see the firmware successfully flashing.&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:52289&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware Version: XW.ar934x.v6.0.0-OpenWrt-r47662&lt;br /&gt;
  Setting U-Boot environment variables&lt;br /&gt;
  Un-Protected 1 sectors&lt;br /&gt;
  Erasing Flash.... done&lt;br /&gt;
  Erased 1 sectors&lt;br /&gt;
  Writing to Flash... write addr: 9f040000&lt;br /&gt;
  done&lt;br /&gt;
  Protected 1 sectors&lt;br /&gt;
  Copying partition 'kernel' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x5 last 0x14 sector size 0x10000&lt;br /&gt;
  ................ done&lt;br /&gt;
  write addr: 9f050000&lt;br /&gt;
  Copying partition 'rootfs' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x15 last 0x6e sector size 0x10000&lt;br /&gt;
  .......................................................................................... done&lt;br /&gt;
  write addr: 9f150000&lt;br /&gt;
  &lt;br /&gt;
  Firmware update complete.&lt;br /&gt;
  &lt;br /&gt;
  Resetting...&lt;br /&gt;
  &lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ## Booting image at 9f050000 ...&lt;br /&gt;
     Image Name:   MIPS OpenWrt Linux-3.18.23&lt;br /&gt;
     Created:      2015-12-01   0:03:51 UTC&lt;br /&gt;
     Image Type:   MIPS Linux Kernel Image (lzma compressed)&lt;br /&gt;
     Data Size:    1135619 Bytes =  1.1 MB&lt;br /&gt;
     Load Address: 80060000&lt;br /&gt;
     Entry Point:  80060000&lt;br /&gt;
     Verifying Checksum at 0x9f050040 ...OK&lt;br /&gt;
     Uncompressing Kernel Image ... OK&lt;br /&gt;
  &lt;br /&gt;
  Starting kernel ...&lt;br /&gt;
  &lt;br /&gt;
  [    0.000000] Linux version 3.18.23 (sudowrt-builder@build-test2) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.04 r47662) ) #2 Mon Nov 5&lt;br /&gt;
&lt;br /&gt;
After it reboots if you see the first line mention 'sudowrt-builder', the device is booting the SudoWRT firmware build.&lt;br /&gt;
&lt;br /&gt;
You can press ENTER once it is finished, and it should drop into the command line for the SudoWRT system.&lt;br /&gt;
&lt;br /&gt;
  [   25.650000] jffs2: Newly-erased block contained word 0xdeadc0de at offset 0x00000000&lt;br /&gt;
  [   25.660000] done.&lt;br /&gt;
  [   25.660000] jffs2: notice: (993) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and.&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  BusyBox v1.23.2 (2015-11-30 18:48:50 EST) built-in shell (ash)&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
    ._______.___    ._______.______  ._____  .___    .___ .______  ._____  &lt;br /&gt;
    :_ ____/|   |   : .____/:_ _   \ :_ ___\ |   |   : __|:      \ :_ ___\ &lt;br /&gt;
    |   _/  |   |   | : _/\ |   |   ||   |___|   |   | : ||       ||   |___&lt;br /&gt;
    |   |   |   |/\ |   /  \| . |   ||   /  ||   |/\ |   ||   |   ||   /  |&lt;br /&gt;
    |_. |   |   /  \|_.: __/|. ____/ |. __  ||   /  \|   ||___|   ||. __  |&lt;br /&gt;
      :/    |______/   :/    :/       :/ |. ||______/|___|    |___| :/ |. |&lt;br /&gt;
      :                      :        :   :/                        :   :/ &lt;br /&gt;
                                          :                             : &lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   sudo mesh v0.2 (fledgling.extender)&lt;br /&gt;
                                based on OpenWRT 15.05 (Chaos Calmer)&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   &amp;quot;When your rage is choking you, it is best to say nothing.&amp;quot; &lt;br /&gt;
                                              - Octavia E. Butler, Fledgling&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
  &lt;br /&gt;
  root@sudomesh-node:/#&lt;/div&gt;</summary>
		<author><name>Redconfetti</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10156</id>
		<title>Mesh/Flashing extender nodes</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10156"/>
		<updated>2016-05-08T04:42:14Z</updated>

		<summary type="html">&lt;p&gt;Redconfetti: /* Running TFTPd */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Download the Image File For a Extender Node ==&lt;br /&gt;
&lt;br /&gt;
The extender nodes that we currently support are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Model No. !! OpenWRT Doc !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M5 || NSM5 || [https://wiki.openwrt.org/toh/ubiquiti/nanostationm5 OpenWRT Docs] || firmware: [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin pre 2015] or [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin 2015-2016]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M2 || NSM2 || [https://wiki.openwrt.org/toh/ubiquiti/nanostationm2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-om2p-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation 2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostation2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ath25.extender-node/openwrt-ath25-ubnt2-pico2-squashfs.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation M2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostationm2 OpenWRT Docs] || &lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobeam M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/nanobeam OpenWRT Docs] || &lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Bullet M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/bullet OpenWRT Docs] || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Flash the Extender Node ==&lt;br /&gt;
&lt;br /&gt;
* Configure your wired internet settings to use Manual IPv4 settings with IP: 192.168.1.10, subnet: 255.255.255.0, gateway: 0.0.0.0&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Plug another Ethernet cable into your antenna on one end and into the &amp;quot;POE&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Push a pin into the reset hole and hold it.&lt;br /&gt;
* With the pin held down, plug in the power to the power-over-ethernet power supply.&lt;br /&gt;
* Watch the lights on the antenna - they will all flash together a few times, then they will flash up and down.&lt;br /&gt;
* Once the lights on the antenna are flashing up and down, you can let go of the pin.&lt;br /&gt;
&lt;br /&gt;
You should be able to ping the extender at 192.168.1.20.&lt;br /&gt;
&lt;br /&gt;
  $ ping 192.168.1.20&lt;br /&gt;
  PING 192.168.1.20 (192.168.1.20) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=1 ttl=64 time=1.54 ms&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=2 ttl=64 time=0.826 ms&lt;br /&gt;
&lt;br /&gt;
In your Linux terminal, type:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/ubi-flasher&lt;br /&gt;
  cd ubi-flasher&lt;br /&gt;
  npm install&lt;br /&gt;
  ./flasher.js '&amp;lt;path to firmware&amp;gt;'&lt;br /&gt;
&lt;br /&gt;
The terminal will tell you &amp;quot;The firmware has been successfully sent to the router. In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up). This means that the router is flashing itself with the new firmware. Once the router goes back to having only the power LED lit, the router has been successfully flashed.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Wait until the antenna has only the power LED lit and you're done.&lt;br /&gt;
&lt;br /&gt;
== Nanostation M5 ==&lt;br /&gt;
&lt;br /&gt;
=== Firmware check failure ===&lt;br /&gt;
&lt;br /&gt;
If you attempt to flash the extender and receive a 'Firmware check failed' error, then you have a version of the NSM5 that is protected from being flashed via the default TFTP method. You will need to obtain a serial to USB interface (USB to UART TTL Module Serial Converter, 5 pin) and use it to flash the firmware.&lt;br /&gt;
&lt;br /&gt;
   $ ./flasher.js openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin&lt;br /&gt;
   Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
   Connection timed out&lt;br /&gt;
   Sending openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
   [Error: (Server) Firmware check failed]&lt;br /&gt;
&lt;br /&gt;
When connected to the NSM5 via a serial connection, a similar error is displayed when attempting to load the SudoWRT firmware image.&lt;br /&gt;
&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Will reset device configuration (Reset button active after 10 seconds).&lt;br /&gt;
  Erasing sector 123..126&lt;br /&gt;
  &lt;br /&gt;
  First 0x7b last 0x7e sector size 0x10000&lt;br /&gt;
  .... done&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
  Receiving file from 192.168.1.10:49763&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware check failed! (1)&lt;br /&gt;
&lt;br /&gt;
==== NSM5 Official Firmware ====&lt;br /&gt;
&lt;br /&gt;
Official firmware from Ubiquity Nanostation M5 (NSM5)&lt;br /&gt;
&lt;br /&gt;
* [https://www.ubnt.com/download/airmax-m/nanostationm/default/airos-xw-board-firmware-v564 airOS for XW board firmware v5.6.4]&lt;br /&gt;
* [http://dl.ubnt.com/firmwares/XW-fw/v5.6.3/XW.v5.6.3.28591.151130.1735.bin airOS for XW board firmware v5.6.3]&lt;br /&gt;
&lt;br /&gt;
=== USB to Serial Connection ===&lt;br /&gt;
&lt;br /&gt;
The following notes describe steps to interface with a Nanostation M5 (NSM5) via the serial interface. This may be necessary to manually load firmware onto the device if the web interface or TFTP methods of flashing the firmware become unavailable due to [http://www.networkworld.com/article/3038722/mobile-wireless/manufacturers-start-to-lock-down-wi-fi-router-firmware-thanks-fcc.html manufacturers disabling these methods] of firmware flashing.&lt;br /&gt;
&lt;br /&gt;
==== Order a USB to Serial Converter ====&lt;br /&gt;
&lt;br /&gt;
USB to serial converter devices exist at a cost of $4 - $8 online, with much lower pricing and longer delivery times if ordered from China. Search for &amp;quot;USB to UART TTL&amp;quot;, including &amp;quot;5 pin&amp;quot; in the search. Make sure the specifications do not mention anything other than 3.3 volts.&lt;br /&gt;
&lt;br /&gt;
==== Connecting to Serial ====&lt;br /&gt;
&lt;br /&gt;
You will need to connect the following pins from the converter to the pins on the device.&lt;br /&gt;
&lt;br /&gt;
* Ground (GND)&lt;br /&gt;
* Serial Out (Transmit / TX)&lt;br /&gt;
* Serial In (Receive / RX)&lt;br /&gt;
&lt;br /&gt;
Begin by connecting the Ground of the converter to the Ground of the device. Next connect the Transmit/TX of the converter to the Receive/RX of the device, then connect the Receive/RX of the converter to the Transmit/TX of the device.&lt;br /&gt;
&lt;br /&gt;
[[File:CP2102-usb-to-serial-converter.jpg|400px|KEDSUMÂ® CP2102 Module STC Download Cable USB 2.0 to TTL 6PIN Serial Converter For STC]]&lt;br /&gt;
&lt;br /&gt;
[[File:Ubiquity-NSM5-serial-connectors.jpg|400px|Ubiquiti Nanostation NSM5 - Serial pins with connections]]&lt;br /&gt;
&lt;br /&gt;
==== Serial Communications Program ====&lt;br /&gt;
&lt;br /&gt;
You need to install a serial communication program. Linux users can use Minicom.&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get install minicom&lt;br /&gt;
&lt;br /&gt;
By default the Minicom program will attempt to use /dev/tty8, and will also attempt to initialize the device (expecting a modem) by default.&lt;br /&gt;
&lt;br /&gt;
  $ minicom&lt;br /&gt;
  minicom: cannot open /dev/tty8: Permission denied&lt;br /&gt;
&lt;br /&gt;
Run the program so that it starts the program on the USB converter that is connected by adding `-D /dev/ttyUSB0`, and specify that it should skip initialization by adding `-o`.&lt;br /&gt;
&lt;br /&gt;
You can also specify from the command line that it use the baud rate and '8N1' settings specified below by including `-b 115200 -8`. &lt;br /&gt;
&lt;br /&gt;
  sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
&lt;br /&gt;
In Minicom, CTRL-A to get settings, then Press O, to access settings&lt;br /&gt;
&lt;br /&gt;
Go to Serial Port Setup, use these settings:&lt;br /&gt;
&lt;br /&gt;
* Set the serial device (should be /dev/tty/USB0)&lt;br /&gt;
* Baud Rate (Bits Per Second): 115200&lt;br /&gt;
* Settings '8N1' (short hand for 8 bits, no parity, 1 stop bit)&lt;br /&gt;
* Turn off hardware and software flow control&lt;br /&gt;
&lt;br /&gt;
Reboot the device, and it will let you drop into a command line. You will then have to figure out how to enable the network from the boot loader (Uboot or Redboot) and transfer the firmware to the device to flash it.&lt;br /&gt;
&lt;br /&gt;
==== Interupting Boot ====&lt;br /&gt;
&lt;br /&gt;
The device will not detect the key you press unless Minicom is configured properly.&lt;br /&gt;
&lt;br /&gt;
* To access the Help screen, Press CTRL-A, then press Z.&lt;br /&gt;
* To access the configuration/settings, press CTRL-A, then press O.&lt;br /&gt;
&lt;br /&gt;
From the configuration window, select to view the 'Serial port setup'&lt;br /&gt;
&lt;br /&gt;
  $ sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
  Welcome to minicom 2.7&lt;br /&gt;
  &lt;br /&gt;
  OPTIONS: I18n &lt;br /&gt;
  Compiled on Jan  1 2014, 17:13:19.&lt;br /&gt;
  Port /dev/ttyUSB0, 21:47:56&lt;br /&gt;
  &lt;br /&gt;
  Press CTRL-A Z for help on special keys&lt;br /&gt;
  &lt;br /&gt;
              +-----[configuration]------+&lt;br /&gt;
              | Filenames and paths      |&lt;br /&gt;
              | File transfer protocols  |&lt;br /&gt;
              | Serial port setup        |&lt;br /&gt;
              | Modem and dialing        |&lt;br /&gt;
              | Screen and keyboard      |&lt;br /&gt;
              | Save setup as dfl        |&lt;br /&gt;
              | Save setup as..          |&lt;br /&gt;
              | Exit                     |&lt;br /&gt;
              +--------------------------+&lt;br /&gt;
  &lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
  | A -    Serial Device      : /dev/ttyUSB0                              |&lt;br /&gt;
  | B - Lockfile Location     : /var/lock                                 |&lt;br /&gt;
  | C -   Callin Program      :                                           |&lt;br /&gt;
  | D -  Callout Program      :                                           |&lt;br /&gt;
  | E -    Bps/Par/Bits       : 115200 8N1                                |&lt;br /&gt;
  | F - Hardware Flow Control : Yes                                       |&lt;br /&gt;
  | G - Software Flow Control : No                                        |&lt;br /&gt;
  |                                                                       |&lt;br /&gt;
  |    Change which setting?                                              |&lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
&lt;br /&gt;
By default the Hardware Flow Control will be enabled. Press 'F' to disable Hardware Flow Control. Press ENTER to exit the Serial port setup window, and then select EXIT to go back to the program.&lt;br /&gt;
&lt;br /&gt;
At this point plug in the Ethernet cable to the 'Main' Ethernet port, with the other end connected to the 'POE' port on the Power Over Ethernet adapter that came with the device. As the device boots up, you'll see output similar to the following.&lt;br /&gt;
&lt;br /&gt;
You'll need to make sure to press a key before it boots the default image.&lt;br /&gt;
&lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ar7240&amp;gt; &lt;br /&gt;
&lt;br /&gt;
This will cause the [https://wiki.openwrt.org/doc/techref/bootloader/uboot U-Boot] bootloader to drop into a command line.&lt;br /&gt;
&lt;br /&gt;
==== Running TFTPd ====&lt;br /&gt;
&lt;br /&gt;
Although U-Boot can support two protocols for transfering files, kermit or y-modem, the bootloader does not support the &amp;lt;tt&amp;gt;loadb&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;loady&amp;lt;/tt&amp;gt;. Minicom only supports y-modem protocol.&lt;br /&gt;
&lt;br /&gt;
We do not have to resort to a direct serial file transfer however. The 'mtdparts' command that is used to define flash memory partitions can be used to reset the partition table to the defaults before running 'urescue' to start the TFTP server.&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; help mtdparts&lt;br /&gt;
  mtdparts &lt;br /&gt;
      - list partition table&lt;br /&gt;
  mtdparts delall&lt;br /&gt;
      - delete all partitions&lt;br /&gt;
  mtdparts del part-id&lt;br /&gt;
      - delete partition (e.g. part-id = nand0,1)&lt;br /&gt;
  mtdparts add &amp;lt;mtd-dev&amp;gt; &amp;lt;size&amp;gt;[@&amp;lt;offset&amp;gt;] [&amp;lt;name&amp;gt;] [ro]&lt;br /&gt;
      - add partition&lt;br /&gt;
  mtdparts default&lt;br /&gt;
      - reset partition table to defaults&lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
&lt;br /&gt;
In your other terminal window, run the ubi-flasher script.&lt;br /&gt;
&lt;br /&gt;
  $ ./flasher.js /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin&lt;br /&gt;
  Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
  Connection timed out&lt;br /&gt;
  Sending /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
  Firmware flashing begun!&lt;br /&gt;
  The firmware has been successfully sent to the router.&lt;br /&gt;
  In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up).&lt;br /&gt;
  This means that the router is flashing itself with the new firmware.&lt;br /&gt;
  Once the router goes back to having only the power LED lit, the router has been successfully flashed.&lt;br /&gt;
&lt;br /&gt;
In the terminal running Minicom you should see the firmware successfully flashing.&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:52289&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware Version: XW.ar934x.v6.0.0-OpenWrt-r47662&lt;br /&gt;
  Setting U-Boot environment variables&lt;br /&gt;
  Un-Protected 1 sectors&lt;br /&gt;
  Erasing Flash.... done&lt;br /&gt;
  Erased 1 sectors&lt;br /&gt;
  Writing to Flash... write addr: 9f040000&lt;br /&gt;
  done&lt;br /&gt;
  Protected 1 sectors&lt;br /&gt;
  Copying partition 'kernel' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x5 last 0x14 sector size 0x10000&lt;br /&gt;
  ................ done&lt;br /&gt;
  write addr: 9f050000&lt;br /&gt;
  Copying partition 'rootfs' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x15 last 0x6e sector size 0x10000&lt;br /&gt;
  .......................................................................................... done&lt;br /&gt;
  write addr: 9f150000&lt;br /&gt;
  &lt;br /&gt;
  Firmware update complete.&lt;br /&gt;
  &lt;br /&gt;
  Resetting...&lt;br /&gt;
  &lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ## Booting image at 9f050000 ...&lt;br /&gt;
     Image Name:   MIPS OpenWrt Linux-3.18.23&lt;br /&gt;
     Created:      2015-12-01   0:03:51 UTC&lt;br /&gt;
     Image Type:   MIPS Linux Kernel Image (lzma compressed)&lt;br /&gt;
     Data Size:    1135619 Bytes =  1.1 MB&lt;br /&gt;
     Load Address: 80060000&lt;br /&gt;
     Entry Point:  80060000&lt;br /&gt;
     Verifying Checksum at 0x9f050040 ...OK&lt;br /&gt;
     Uncompressing Kernel Image ... OK&lt;br /&gt;
  &lt;br /&gt;
  Starting kernel ...&lt;br /&gt;
  &lt;br /&gt;
  [    0.000000] Linux version 3.18.23 (sudowrt-builder@build-test2) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.04 r47662) ) #2 Mon Nov 5&lt;br /&gt;
&lt;br /&gt;
After it reboots if you see the first line mention 'sudowrt-builder', the device is booting the SudoWRT firmware build.&lt;br /&gt;
&lt;br /&gt;
You can press ENTER once it is finished, and it should drop into the command line for the SudoWRT system.&lt;br /&gt;
&lt;br /&gt;
  [   25.650000] jffs2: Newly-erased block contained word 0xdeadc0de at offset 0x00000000&lt;br /&gt;
  [   25.660000] done.&lt;br /&gt;
  [   25.660000] jffs2: notice: (993) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and.&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  BusyBox v1.23.2 (2015-11-30 18:48:50 EST) built-in shell (ash)&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
    ._______.___    ._______.______  ._____  .___    .___ .______  ._____  &lt;br /&gt;
    :_ ____/|   |   : .____/:_ _   \ :_ ___\ |   |   : __|:      \ :_ ___\ &lt;br /&gt;
    |   _/  |   |   | : _/\ |   |   ||   |___|   |   | : ||       ||   |___&lt;br /&gt;
    |   |   |   |/\ |   /  \| . |   ||   /  ||   |/\ |   ||   |   ||   /  |&lt;br /&gt;
    |_. |   |   /  \|_.: __/|. ____/ |. __  ||   /  \|   ||___|   ||. __  |&lt;br /&gt;
      :/    |______/   :/    :/       :/ |. ||______/|___|    |___| :/ |. |&lt;br /&gt;
      :                      :        :   :/                        :   :/ &lt;br /&gt;
                                          :                             : &lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   sudo mesh v0.2 (fledgling.extender)&lt;br /&gt;
                                based on OpenWRT 15.05 (Chaos Calmer)&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   &amp;quot;When your rage is choking you, it is best to say nothing.&amp;quot; &lt;br /&gt;
                                              - Octavia E. Butler, Fledgling&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
  &lt;br /&gt;
  root@sudomesh-node:/#&lt;/div&gt;</summary>
		<author><name>Redconfetti</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10155</id>
		<title>Mesh/Flashing extender nodes</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10155"/>
		<updated>2016-05-08T04:32:14Z</updated>

		<summary type="html">&lt;p&gt;Redconfetti: /* Firmware check failure */ minimizing serial output with firmware check failure, replacing official firmware flash with only links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Download the Image File For a Extender Node ==&lt;br /&gt;
&lt;br /&gt;
The extender nodes that we currently support are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Model No. !! OpenWRT Doc !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M5 || NSM5 || [https://wiki.openwrt.org/toh/ubiquiti/nanostationm5 OpenWRT Docs] || firmware: [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin pre 2015] or [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin 2015-2016]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M2 || NSM2 || [https://wiki.openwrt.org/toh/ubiquiti/nanostationm2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-om2p-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation 2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostation2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ath25.extender-node/openwrt-ath25-ubnt2-pico2-squashfs.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation M2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostationm2 OpenWRT Docs] || &lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobeam M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/nanobeam OpenWRT Docs] || &lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Bullet M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/bullet OpenWRT Docs] || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Flash the Extender Node ==&lt;br /&gt;
&lt;br /&gt;
* Configure your wired internet settings to use Manual IPv4 settings with IP: 192.168.1.10, subnet: 255.255.255.0, gateway: 0.0.0.0&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Plug another Ethernet cable into your antenna on one end and into the &amp;quot;POE&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Push a pin into the reset hole and hold it.&lt;br /&gt;
* With the pin held down, plug in the power to the power-over-ethernet power supply.&lt;br /&gt;
* Watch the lights on the antenna - they will all flash together a few times, then they will flash up and down.&lt;br /&gt;
* Once the lights on the antenna are flashing up and down, you can let go of the pin.&lt;br /&gt;
&lt;br /&gt;
You should be able to ping the extender at 192.168.1.20.&lt;br /&gt;
&lt;br /&gt;
  $ ping 192.168.1.20&lt;br /&gt;
  PING 192.168.1.20 (192.168.1.20) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=1 ttl=64 time=1.54 ms&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=2 ttl=64 time=0.826 ms&lt;br /&gt;
&lt;br /&gt;
In your Linux terminal, type:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/ubi-flasher&lt;br /&gt;
  cd ubi-flasher&lt;br /&gt;
  npm install&lt;br /&gt;
  ./flasher.js '&amp;lt;path to firmware&amp;gt;'&lt;br /&gt;
&lt;br /&gt;
The terminal will tell you &amp;quot;The firmware has been successfully sent to the router. In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up). This means that the router is flashing itself with the new firmware. Once the router goes back to having only the power LED lit, the router has been successfully flashed.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Wait until the antenna has only the power LED lit and you're done.&lt;br /&gt;
&lt;br /&gt;
== Nanostation M5 ==&lt;br /&gt;
&lt;br /&gt;
=== Firmware check failure ===&lt;br /&gt;
&lt;br /&gt;
If you attempt to flash the extender and receive a 'Firmware check failed' error, then you have a version of the NSM5 that is protected from being flashed via the default TFTP method. You will need to obtain a serial to USB interface (USB to UART TTL Module Serial Converter, 5 pin) and use it to flash the firmware.&lt;br /&gt;
&lt;br /&gt;
   $ ./flasher.js openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin&lt;br /&gt;
   Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
   Connection timed out&lt;br /&gt;
   Sending openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
   [Error: (Server) Firmware check failed]&lt;br /&gt;
&lt;br /&gt;
When connected to the NSM5 via a serial connection, a similar error is displayed when attempting to load the SudoWRT firmware image.&lt;br /&gt;
&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Will reset device configuration (Reset button active after 10 seconds).&lt;br /&gt;
  Erasing sector 123..126&lt;br /&gt;
  &lt;br /&gt;
  First 0x7b last 0x7e sector size 0x10000&lt;br /&gt;
  .... done&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
  Receiving file from 192.168.1.10:49763&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware check failed! (1)&lt;br /&gt;
&lt;br /&gt;
==== NSM5 Official Firmware ====&lt;br /&gt;
&lt;br /&gt;
Official firmware from Ubiquity Nanostation M5 (NSM5)&lt;br /&gt;
&lt;br /&gt;
* [https://www.ubnt.com/download/airmax-m/nanostationm/default/airos-xw-board-firmware-v564 airOS for XW board firmware v5.6.4]&lt;br /&gt;
* [http://dl.ubnt.com/firmwares/XW-fw/v5.6.3/XW.v5.6.3.28591.151130.1735.bin airOS for XW board firmware v5.6.3]&lt;br /&gt;
&lt;br /&gt;
=== USB to Serial Connection ===&lt;br /&gt;
&lt;br /&gt;
The following notes describe steps to interface with a Nanostation M5 (NSM5) via the serial interface. This may be necessary to manually load firmware onto the device if the web interface or TFTP methods of flashing the firmware become unavailable due to [http://www.networkworld.com/article/3038722/mobile-wireless/manufacturers-start-to-lock-down-wi-fi-router-firmware-thanks-fcc.html manufacturers disabling these methods] of firmware flashing.&lt;br /&gt;
&lt;br /&gt;
==== Order a USB to Serial Converter ====&lt;br /&gt;
&lt;br /&gt;
USB to serial converter devices exist at a cost of $4 - $8 online, with much lower pricing and longer delivery times if ordered from China. Search for &amp;quot;USB to UART TTL&amp;quot;, including &amp;quot;5 pin&amp;quot; in the search. Make sure the specifications do not mention anything other than 3.3 volts.&lt;br /&gt;
&lt;br /&gt;
==== Connecting to Serial ====&lt;br /&gt;
&lt;br /&gt;
You will need to connect the following pins from the converter to the pins on the device.&lt;br /&gt;
&lt;br /&gt;
* Ground (GND)&lt;br /&gt;
* Serial Out (Transmit / TX)&lt;br /&gt;
* Serial In (Receive / RX)&lt;br /&gt;
&lt;br /&gt;
Begin by connecting the Ground of the converter to the Ground of the device. Next connect the Transmit/TX of the converter to the Receive/RX of the device, then connect the Receive/RX of the converter to the Transmit/TX of the device.&lt;br /&gt;
&lt;br /&gt;
[[File:CP2102-usb-to-serial-converter.jpg|400px|KEDSUMÂ® CP2102 Module STC Download Cable USB 2.0 to TTL 6PIN Serial Converter For STC]]&lt;br /&gt;
&lt;br /&gt;
[[File:Ubiquity-NSM5-serial-connectors.jpg|400px|Ubiquiti Nanostation NSM5 - Serial pins with connections]]&lt;br /&gt;
&lt;br /&gt;
==== Serial Communications Program ====&lt;br /&gt;
&lt;br /&gt;
You need to install a serial communication program. Linux users can use Minicom.&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get install minicom&lt;br /&gt;
&lt;br /&gt;
By default the Minicom program will attempt to use /dev/tty8, and will also attempt to initialize the device (expecting a modem) by default.&lt;br /&gt;
&lt;br /&gt;
  $ minicom&lt;br /&gt;
  minicom: cannot open /dev/tty8: Permission denied&lt;br /&gt;
&lt;br /&gt;
Run the program so that it starts the program on the USB converter that is connected by adding `-D /dev/ttyUSB0`, and specify that it should skip initialization by adding `-o`.&lt;br /&gt;
&lt;br /&gt;
You can also specify from the command line that it use the baud rate and '8N1' settings specified below by including `-b 115200 -8`. &lt;br /&gt;
&lt;br /&gt;
  sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
&lt;br /&gt;
In Minicom, CTRL-A to get settings, then Press O, to access settings&lt;br /&gt;
&lt;br /&gt;
Go to Serial Port Setup, use these settings:&lt;br /&gt;
&lt;br /&gt;
* Set the serial device (should be /dev/tty/USB0)&lt;br /&gt;
* Baud Rate (Bits Per Second): 115200&lt;br /&gt;
* Settings '8N1' (short hand for 8 bits, no parity, 1 stop bit)&lt;br /&gt;
* Turn off hardware and software flow control&lt;br /&gt;
&lt;br /&gt;
Reboot the device, and it will let you drop into a command line. You will then have to figure out how to enable the network from the boot loader (Uboot or Redboot) and transfer the firmware to the device to flash it.&lt;br /&gt;
&lt;br /&gt;
==== Interupting Boot ====&lt;br /&gt;
&lt;br /&gt;
The device will not detect the key you press unless Minicom is configured properly.&lt;br /&gt;
&lt;br /&gt;
* To access the Help screen, Press CTRL-A, then press Z.&lt;br /&gt;
* To access the configuration/settings, press CTRL-A, then press O.&lt;br /&gt;
&lt;br /&gt;
From the configuration window, select to view the 'Serial port setup'&lt;br /&gt;
&lt;br /&gt;
  $ sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
  Welcome to minicom 2.7&lt;br /&gt;
  &lt;br /&gt;
  OPTIONS: I18n &lt;br /&gt;
  Compiled on Jan  1 2014, 17:13:19.&lt;br /&gt;
  Port /dev/ttyUSB0, 21:47:56&lt;br /&gt;
  &lt;br /&gt;
  Press CTRL-A Z for help on special keys&lt;br /&gt;
  &lt;br /&gt;
              +-----[configuration]------+&lt;br /&gt;
              | Filenames and paths      |&lt;br /&gt;
              | File transfer protocols  |&lt;br /&gt;
              | Serial port setup        |&lt;br /&gt;
              | Modem and dialing        |&lt;br /&gt;
              | Screen and keyboard      |&lt;br /&gt;
              | Save setup as dfl        |&lt;br /&gt;
              | Save setup as..          |&lt;br /&gt;
              | Exit                     |&lt;br /&gt;
              +--------------------------+&lt;br /&gt;
  &lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
  | A -    Serial Device      : /dev/ttyUSB0                              |&lt;br /&gt;
  | B - Lockfile Location     : /var/lock                                 |&lt;br /&gt;
  | C -   Callin Program      :                                           |&lt;br /&gt;
  | D -  Callout Program      :                                           |&lt;br /&gt;
  | E -    Bps/Par/Bits       : 115200 8N1                                |&lt;br /&gt;
  | F - Hardware Flow Control : Yes                                       |&lt;br /&gt;
  | G - Software Flow Control : No                                        |&lt;br /&gt;
  |                                                                       |&lt;br /&gt;
  |    Change which setting?                                              |&lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
&lt;br /&gt;
By default the Hardware Flow Control will be enabled. Press 'F' to disable Hardware Flow Control. Press ENTER to exit the Serial port setup window, and then select EXIT to go back to the program.&lt;br /&gt;
&lt;br /&gt;
At this point plug in the Ethernet cable to the 'Main' Ethernet port, with the other end connected to the 'POE' port on the Power Over Ethernet adapter that came with the device. As the device boots up, you'll see output similar to the following.&lt;br /&gt;
&lt;br /&gt;
You'll need to make sure to press a key before it boots the default image.&lt;br /&gt;
&lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ar7240&amp;gt; &lt;br /&gt;
&lt;br /&gt;
This will cause the [https://wiki.openwrt.org/doc/techref/bootloader/uboot U-Boot] bootloader to drop into a command line.&lt;br /&gt;
&lt;br /&gt;
==== Running TFTPd ====&lt;br /&gt;
&lt;br /&gt;
Although U-Boot can support two protocols for transfering files, kermit or y-modem, the bootloader does not support the &amp;lt;tt&amp;gt;loadb&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;loady&amp;lt;/tt&amp;gt;. Minicom only supports y-modem protocol.&lt;br /&gt;
&lt;br /&gt;
We do not have to resort to a direct serial file transfer however.&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
&lt;br /&gt;
In your other terminal window, run the ubi-flasher script.&lt;br /&gt;
&lt;br /&gt;
  $ ./flasher.js /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin&lt;br /&gt;
  Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
  Connection timed out&lt;br /&gt;
  Sending /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
  Firmware flashing begun!&lt;br /&gt;
  The firmware has been successfully sent to the router.&lt;br /&gt;
  In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up).&lt;br /&gt;
  This means that the router is flashing itself with the new firmware.&lt;br /&gt;
  Once the router goes back to having only the power LED lit, the router has been successfully flashed.&lt;br /&gt;
&lt;br /&gt;
In the terminal running Minicom you should see the firmware successfully flashing.&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:52289&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware Version: XW.ar934x.v6.0.0-OpenWrt-r47662&lt;br /&gt;
  Setting U-Boot environment variables&lt;br /&gt;
  Un-Protected 1 sectors&lt;br /&gt;
  Erasing Flash.... done&lt;br /&gt;
  Erased 1 sectors&lt;br /&gt;
  Writing to Flash... write addr: 9f040000&lt;br /&gt;
  done&lt;br /&gt;
  Protected 1 sectors&lt;br /&gt;
  Copying partition 'kernel' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x5 last 0x14 sector size 0x10000&lt;br /&gt;
  ................ done&lt;br /&gt;
  write addr: 9f050000&lt;br /&gt;
  Copying partition 'rootfs' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x15 last 0x6e sector size 0x10000&lt;br /&gt;
  .......................................................................................... done&lt;br /&gt;
  write addr: 9f150000&lt;br /&gt;
  &lt;br /&gt;
  Firmware update complete.&lt;br /&gt;
  &lt;br /&gt;
  Resetting...&lt;br /&gt;
  &lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ## Booting image at 9f050000 ...&lt;br /&gt;
     Image Name:   MIPS OpenWrt Linux-3.18.23&lt;br /&gt;
     Created:      2015-12-01   0:03:51 UTC&lt;br /&gt;
     Image Type:   MIPS Linux Kernel Image (lzma compressed)&lt;br /&gt;
     Data Size:    1135619 Bytes =  1.1 MB&lt;br /&gt;
     Load Address: 80060000&lt;br /&gt;
     Entry Point:  80060000&lt;br /&gt;
     Verifying Checksum at 0x9f050040 ...OK&lt;br /&gt;
     Uncompressing Kernel Image ... OK&lt;br /&gt;
  &lt;br /&gt;
  Starting kernel ...&lt;br /&gt;
  &lt;br /&gt;
  [    0.000000] Linux version 3.18.23 (sudowrt-builder@build-test2) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.04 r47662) ) #2 Mon Nov 5&lt;br /&gt;
&lt;br /&gt;
After it reboots if you see the first line mention 'sudowrt-builder', the device is booting the SudoWRT firmware build.&lt;br /&gt;
&lt;br /&gt;
You can press ENTER once it is finished, and it should drop into the command line for the SudoWRT system.&lt;br /&gt;
&lt;br /&gt;
  [   25.650000] jffs2: Newly-erased block contained word 0xdeadc0de at offset 0x00000000&lt;br /&gt;
  [   25.660000] done.&lt;br /&gt;
  [   25.660000] jffs2: notice: (993) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and.&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  BusyBox v1.23.2 (2015-11-30 18:48:50 EST) built-in shell (ash)&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
    ._______.___    ._______.______  ._____  .___    .___ .______  ._____  &lt;br /&gt;
    :_ ____/|   |   : .____/:_ _   \ :_ ___\ |   |   : __|:      \ :_ ___\ &lt;br /&gt;
    |   _/  |   |   | : _/\ |   |   ||   |___|   |   | : ||       ||   |___&lt;br /&gt;
    |   |   |   |/\ |   /  \| . |   ||   /  ||   |/\ |   ||   |   ||   /  |&lt;br /&gt;
    |_. |   |   /  \|_.: __/|. ____/ |. __  ||   /  \|   ||___|   ||. __  |&lt;br /&gt;
      :/    |______/   :/    :/       :/ |. ||______/|___|    |___| :/ |. |&lt;br /&gt;
      :                      :        :   :/                        :   :/ &lt;br /&gt;
                                          :                             : &lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   sudo mesh v0.2 (fledgling.extender)&lt;br /&gt;
                                based on OpenWRT 15.05 (Chaos Calmer)&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   &amp;quot;When your rage is choking you, it is best to say nothing.&amp;quot; &lt;br /&gt;
                                              - Octavia E. Butler, Fledgling&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
  &lt;br /&gt;
  root@sudomesh-node:/#&lt;/div&gt;</summary>
		<author><name>Redconfetti</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10154</id>
		<title>Mesh/Flashing extender nodes</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10154"/>
		<updated>2016-05-08T04:25:15Z</updated>

		<summary type="html">&lt;p&gt;Redconfetti: adding instructions for using serial to run tftp for successful flash of sudowrt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Download the Image File For a Extender Node ==&lt;br /&gt;
&lt;br /&gt;
The extender nodes that we currently support are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Model No. !! OpenWRT Doc !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M5 || NSM5 || [https://wiki.openwrt.org/toh/ubiquiti/nanostationm5 OpenWRT Docs] || firmware: [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin pre 2015] or [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin 2015-2016]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M2 || NSM2 || [https://wiki.openwrt.org/toh/ubiquiti/nanostationm2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-om2p-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation 2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostation2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ath25.extender-node/openwrt-ath25-ubnt2-pico2-squashfs.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation M2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostationm2 OpenWRT Docs] || &lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobeam M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/nanobeam OpenWRT Docs] || &lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Bullet M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/bullet OpenWRT Docs] || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Flash the Extender Node ==&lt;br /&gt;
&lt;br /&gt;
* Configure your wired internet settings to use Manual IPv4 settings with IP: 192.168.1.10, subnet: 255.255.255.0, gateway: 0.0.0.0&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Plug another Ethernet cable into your antenna on one end and into the &amp;quot;POE&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Push a pin into the reset hole and hold it.&lt;br /&gt;
* With the pin held down, plug in the power to the power-over-ethernet power supply.&lt;br /&gt;
* Watch the lights on the antenna - they will all flash together a few times, then they will flash up and down.&lt;br /&gt;
* Once the lights on the antenna are flashing up and down, you can let go of the pin.&lt;br /&gt;
&lt;br /&gt;
You should be able to ping the extender at 192.168.1.20.&lt;br /&gt;
&lt;br /&gt;
  $ ping 192.168.1.20&lt;br /&gt;
  PING 192.168.1.20 (192.168.1.20) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=1 ttl=64 time=1.54 ms&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=2 ttl=64 time=0.826 ms&lt;br /&gt;
&lt;br /&gt;
In your Linux terminal, type:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/ubi-flasher&lt;br /&gt;
  cd ubi-flasher&lt;br /&gt;
  npm install&lt;br /&gt;
  ./flasher.js '&amp;lt;path to firmware&amp;gt;'&lt;br /&gt;
&lt;br /&gt;
The terminal will tell you &amp;quot;The firmware has been successfully sent to the router. In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up). This means that the router is flashing itself with the new firmware. Once the router goes back to having only the power LED lit, the router has been successfully flashed.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Wait until the antenna has only the power LED lit and you're done.&lt;br /&gt;
&lt;br /&gt;
== Nanostation M5 ==&lt;br /&gt;
&lt;br /&gt;
=== Firmware check failure ===&lt;br /&gt;
&lt;br /&gt;
If you attempt to flash the extender and receive a 'Firmware check failed' error, then you have a version of the NSM5 that is protected from being flashed via the TFTP method. You will need to obtain a serial to USB interface (USB to UART TTL Module Serial Converter, 5 pin) and use it to flash the firmware.&lt;br /&gt;
&lt;br /&gt;
   $ ./flasher.js openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin&lt;br /&gt;
   Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
   Connection timed out&lt;br /&gt;
   Sending openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
   [Error: (Server) Firmware check failed]&lt;br /&gt;
&lt;br /&gt;
==== TFTP Serial Output ====&lt;br /&gt;
&lt;br /&gt;
When booting with the reset button held down on a Ubiquity NSM5, the following output is displayed.&lt;br /&gt;
&lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Will reset device configuration (Reset button active after 10 seconds).&lt;br /&gt;
  Erasing sector 123..126&lt;br /&gt;
  &lt;br /&gt;
  First 0x7b last 0x7e sector size 0x10000&lt;br /&gt;
  .... done&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
  Receiving file from 192.168.1.10:49763&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware check failed! (1)&lt;br /&gt;
&lt;br /&gt;
==== TFTP with Official Firmware ====&lt;br /&gt;
&lt;br /&gt;
You can download the official firmware image from Ubiquity - [https://www.ubnt.com/download/airmax-m/nanostationm/default/airos-xw-board-firmware-v564 airOS for XW board firmware v5.6.4] - [http://dl.ubnt.com/firmwares/XW-fw/v5.6.3/XW.v5.6.3.28591.151130.1735.bin airOS for XW board firmware v5.6.3]&lt;br /&gt;
&lt;br /&gt;
Then you can start the TFTP server&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: |&lt;br /&gt;
&lt;br /&gt;
From your machine, configured as 192.168.1.10, use TFTP to upload the official image&lt;br /&gt;
&lt;br /&gt;
  $ tftp 192.168.1.20&lt;br /&gt;
  tftp&amp;gt; put XW.v5.6.4.28924.160331.1238.bin&lt;br /&gt;
  Transfer timed out.&lt;br /&gt;
&lt;br /&gt;
The file uploads, and as expected the image does not result in a firmware check error.&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:56564&lt;br /&gt;
  Received 7296551 bytes&lt;br /&gt;
  Firmware Version: XW.ar934x.v5.6.4.28924.160331.1238&lt;br /&gt;
&lt;br /&gt;
This produces no change in the boot output. I try the v5.6.3 firmware.&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:36771&lt;br /&gt;
  Received 7293587 bytes&lt;br /&gt;
  Firmware Version: XW.ar934x.v5.6.3.28591.151130.1735&lt;br /&gt;
&lt;br /&gt;
The TFTP client times out, but I wait for the firmware message on the serial output to change. Nothing happens. Reboot the device. No changes in the image detected.&lt;br /&gt;
&lt;br /&gt;
  ## Booting image at 9f050000 ...&lt;br /&gt;
     Image Name:   MIPS Ubiquiti Linux-2.6.32.68&lt;br /&gt;
     Created:      2016-03-31   9:39:16 UTC&lt;br /&gt;
     Image Type:   MIPS Linux Kernel Image (lzma compressed)&lt;br /&gt;
     Data Size:    955842 Bytes = 933.4 kB&lt;br /&gt;
     Load Address: 80002000&lt;br /&gt;
     Entry Point:  80002000&lt;br /&gt;
     Verifying Checksum at 0x9f050040 ...OK&lt;br /&gt;
     Uncompressing Kernel Image ... OK&lt;br /&gt;
&lt;br /&gt;
  Starting kernel ...&lt;br /&gt;
  &lt;br /&gt;
  Booting Atheros AR934x&lt;br /&gt;
&lt;br /&gt;
=== USB to Serial Connection ===&lt;br /&gt;
&lt;br /&gt;
The following notes describe steps to interface with a Nanostation M5 (NSM5) via the serial interface. This may be necessary to manually load firmware onto the device if the web interface or TFTP methods of flashing the firmware become unavailable due to [http://www.networkworld.com/article/3038722/mobile-wireless/manufacturers-start-to-lock-down-wi-fi-router-firmware-thanks-fcc.html manufacturers disabling these methods] of firmware flashing.&lt;br /&gt;
&lt;br /&gt;
==== Order a USB to Serial Converter ====&lt;br /&gt;
&lt;br /&gt;
USB to serial converter devices exist at a cost of $4 - $8 online, with much lower pricing and longer delivery times if ordered from China. Search for &amp;quot;USB to UART TTL&amp;quot;, including &amp;quot;5 pin&amp;quot; in the search. Make sure the specifications do not mention anything other than 3.3 volts.&lt;br /&gt;
&lt;br /&gt;
==== Connecting to Serial ====&lt;br /&gt;
&lt;br /&gt;
You will need to connect the following pins from the converter to the pins on the device.&lt;br /&gt;
&lt;br /&gt;
* Ground (GND)&lt;br /&gt;
* Serial Out (Transmit / TX)&lt;br /&gt;
* Serial In (Receive / RX)&lt;br /&gt;
&lt;br /&gt;
Begin by connecting the Ground of the converter to the Ground of the device. Next connect the Transmit/TX of the converter to the Receive/RX of the device, then connect the Receive/RX of the converter to the Transmit/TX of the device.&lt;br /&gt;
&lt;br /&gt;
[[File:CP2102-usb-to-serial-converter.jpg|400px|KEDSUMÂ® CP2102 Module STC Download Cable USB 2.0 to TTL 6PIN Serial Converter For STC]]&lt;br /&gt;
&lt;br /&gt;
[[File:Ubiquity-NSM5-serial-connectors.jpg|400px|Ubiquiti Nanostation NSM5 - Serial pins with connections]]&lt;br /&gt;
&lt;br /&gt;
==== Serial Communications Program ====&lt;br /&gt;
&lt;br /&gt;
You need to install a serial communication program. Linux users can use Minicom.&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get install minicom&lt;br /&gt;
&lt;br /&gt;
By default the Minicom program will attempt to use /dev/tty8, and will also attempt to initialize the device (expecting a modem) by default.&lt;br /&gt;
&lt;br /&gt;
  $ minicom&lt;br /&gt;
  minicom: cannot open /dev/tty8: Permission denied&lt;br /&gt;
&lt;br /&gt;
Run the program so that it starts the program on the USB converter that is connected by adding `-D /dev/ttyUSB0`, and specify that it should skip initialization by adding `-o`.&lt;br /&gt;
&lt;br /&gt;
You can also specify from the command line that it use the baud rate and '8N1' settings specified below by including `-b 115200 -8`. &lt;br /&gt;
&lt;br /&gt;
  sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
&lt;br /&gt;
In Minicom, CTRL-A to get settings, then Press O, to access settings&lt;br /&gt;
&lt;br /&gt;
Go to Serial Port Setup, use these settings:&lt;br /&gt;
&lt;br /&gt;
* Set the serial device (should be /dev/tty/USB0)&lt;br /&gt;
* Baud Rate (Bits Per Second): 115200&lt;br /&gt;
* Settings '8N1' (short hand for 8 bits, no parity, 1 stop bit)&lt;br /&gt;
* Turn off hardware and software flow control&lt;br /&gt;
&lt;br /&gt;
Reboot the device, and it will let you drop into a command line. You will then have to figure out how to enable the network from the boot loader (Uboot or Redboot) and transfer the firmware to the device to flash it.&lt;br /&gt;
&lt;br /&gt;
==== Interupting Boot ====&lt;br /&gt;
&lt;br /&gt;
The device will not detect the key you press unless Minicom is configured properly.&lt;br /&gt;
&lt;br /&gt;
* To access the Help screen, Press CTRL-A, then press Z.&lt;br /&gt;
* To access the configuration/settings, press CTRL-A, then press O.&lt;br /&gt;
&lt;br /&gt;
From the configuration window, select to view the 'Serial port setup'&lt;br /&gt;
&lt;br /&gt;
  $ sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
  Welcome to minicom 2.7&lt;br /&gt;
  &lt;br /&gt;
  OPTIONS: I18n &lt;br /&gt;
  Compiled on Jan  1 2014, 17:13:19.&lt;br /&gt;
  Port /dev/ttyUSB0, 21:47:56&lt;br /&gt;
  &lt;br /&gt;
  Press CTRL-A Z for help on special keys&lt;br /&gt;
  &lt;br /&gt;
              +-----[configuration]------+&lt;br /&gt;
              | Filenames and paths      |&lt;br /&gt;
              | File transfer protocols  |&lt;br /&gt;
              | Serial port setup        |&lt;br /&gt;
              | Modem and dialing        |&lt;br /&gt;
              | Screen and keyboard      |&lt;br /&gt;
              | Save setup as dfl        |&lt;br /&gt;
              | Save setup as..          |&lt;br /&gt;
              | Exit                     |&lt;br /&gt;
              +--------------------------+&lt;br /&gt;
  &lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
  | A -    Serial Device      : /dev/ttyUSB0                              |&lt;br /&gt;
  | B - Lockfile Location     : /var/lock                                 |&lt;br /&gt;
  | C -   Callin Program      :                                           |&lt;br /&gt;
  | D -  Callout Program      :                                           |&lt;br /&gt;
  | E -    Bps/Par/Bits       : 115200 8N1                                |&lt;br /&gt;
  | F - Hardware Flow Control : Yes                                       |&lt;br /&gt;
  | G - Software Flow Control : No                                        |&lt;br /&gt;
  |                                                                       |&lt;br /&gt;
  |    Change which setting?                                              |&lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
&lt;br /&gt;
By default the Hardware Flow Control will be enabled. Press 'F' to disable Hardware Flow Control. Press ENTER to exit the Serial port setup window, and then select EXIT to go back to the program.&lt;br /&gt;
&lt;br /&gt;
At this point plug in the Ethernet cable to the 'Main' Ethernet port, with the other end connected to the 'POE' port on the Power Over Ethernet adapter that came with the device. As the device boots up, you'll see output similar to the following.&lt;br /&gt;
&lt;br /&gt;
You'll need to make sure to press a key before it boots the default image.&lt;br /&gt;
&lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ar7240&amp;gt; &lt;br /&gt;
&lt;br /&gt;
This will cause the [https://wiki.openwrt.org/doc/techref/bootloader/uboot U-Boot] bootloader to drop into a command line.&lt;br /&gt;
&lt;br /&gt;
==== Running TFTPd ====&lt;br /&gt;
&lt;br /&gt;
Although U-Boot can support two protocols for transfering files, kermit or y-modem, the bootloader does not support the &amp;lt;tt&amp;gt;loadb&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;loady&amp;lt;/tt&amp;gt;. Minicom only supports y-modem protocol.&lt;br /&gt;
&lt;br /&gt;
We do not have to resort to a direct serial file transfer however.&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
&lt;br /&gt;
In your other terminal window, run the ubi-flasher script.&lt;br /&gt;
&lt;br /&gt;
  $ ./flasher.js /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin&lt;br /&gt;
  Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
  Connection timed out&lt;br /&gt;
  Sending /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
  Firmware flashing begun!&lt;br /&gt;
  The firmware has been successfully sent to the router.&lt;br /&gt;
  In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up).&lt;br /&gt;
  This means that the router is flashing itself with the new firmware.&lt;br /&gt;
  Once the router goes back to having only the power LED lit, the router has been successfully flashed.&lt;br /&gt;
&lt;br /&gt;
In the terminal running Minicom you should see the firmware successfully flashing.&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:52289&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware Version: XW.ar934x.v6.0.0-OpenWrt-r47662&lt;br /&gt;
  Setting U-Boot environment variables&lt;br /&gt;
  Un-Protected 1 sectors&lt;br /&gt;
  Erasing Flash.... done&lt;br /&gt;
  Erased 1 sectors&lt;br /&gt;
  Writing to Flash... write addr: 9f040000&lt;br /&gt;
  done&lt;br /&gt;
  Protected 1 sectors&lt;br /&gt;
  Copying partition 'kernel' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x5 last 0x14 sector size 0x10000&lt;br /&gt;
  ................ done&lt;br /&gt;
  write addr: 9f050000&lt;br /&gt;
  Copying partition 'rootfs' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x15 last 0x6e sector size 0x10000&lt;br /&gt;
  .......................................................................................... done&lt;br /&gt;
  write addr: 9f150000&lt;br /&gt;
  &lt;br /&gt;
  Firmware update complete.&lt;br /&gt;
  &lt;br /&gt;
  Resetting...&lt;br /&gt;
  &lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ## Booting image at 9f050000 ...&lt;br /&gt;
     Image Name:   MIPS OpenWrt Linux-3.18.23&lt;br /&gt;
     Created:      2015-12-01   0:03:51 UTC&lt;br /&gt;
     Image Type:   MIPS Linux Kernel Image (lzma compressed)&lt;br /&gt;
     Data Size:    1135619 Bytes =  1.1 MB&lt;br /&gt;
     Load Address: 80060000&lt;br /&gt;
     Entry Point:  80060000&lt;br /&gt;
     Verifying Checksum at 0x9f050040 ...OK&lt;br /&gt;
     Uncompressing Kernel Image ... OK&lt;br /&gt;
  &lt;br /&gt;
  Starting kernel ...&lt;br /&gt;
  &lt;br /&gt;
  [    0.000000] Linux version 3.18.23 (sudowrt-builder@build-test2) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.04 r47662) ) #2 Mon Nov 5&lt;br /&gt;
&lt;br /&gt;
After it reboots if you see the first line mention 'sudowrt-builder', the device is booting the SudoWRT firmware build.&lt;br /&gt;
&lt;br /&gt;
You can press ENTER once it is finished, and it should drop into the command line for the SudoWRT system.&lt;br /&gt;
&lt;br /&gt;
  [   25.650000] jffs2: Newly-erased block contained word 0xdeadc0de at offset 0x00000000&lt;br /&gt;
  [   25.660000] done.&lt;br /&gt;
  [   25.660000] jffs2: notice: (993) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and.&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  BusyBox v1.23.2 (2015-11-30 18:48:50 EST) built-in shell (ash)&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
    ._______.___    ._______.______  ._____  .___    .___ .______  ._____  &lt;br /&gt;
    :_ ____/|   |   : .____/:_ _   \ :_ ___\ |   |   : __|:      \ :_ ___\ &lt;br /&gt;
    |   _/  |   |   | : _/\ |   |   ||   |___|   |   | : ||       ||   |___&lt;br /&gt;
    |   |   |   |/\ |   /  \| . |   ||   /  ||   |/\ |   ||   |   ||   /  |&lt;br /&gt;
    |_. |   |   /  \|_.: __/|. ____/ |. __  ||   /  \|   ||___|   ||. __  |&lt;br /&gt;
      :/    |______/   :/    :/       :/ |. ||______/|___|    |___| :/ |. |&lt;br /&gt;
      :                      :        :   :/                        :   :/ &lt;br /&gt;
                                          :                             : &lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   sudo mesh v0.2 (fledgling.extender)&lt;br /&gt;
                                based on OpenWRT 15.05 (Chaos Calmer)&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   &amp;quot;When your rage is choking you, it is best to say nothing.&amp;quot; &lt;br /&gt;
                                              - Octavia E. Butler, Fledgling&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
  &lt;br /&gt;
  root@sudomesh-node:/#&lt;/div&gt;</summary>
		<author><name>Redconfetti</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10153</id>
		<title>Mesh/Flashing extender nodes</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10153"/>
		<updated>2016-05-07T06:47:42Z</updated>

		<summary type="html">&lt;p&gt;Redconfetti: /* TFTP with Official Firmware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Download the Image File For a Extender Node ==&lt;br /&gt;
&lt;br /&gt;
The extender nodes that we currently support are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Model No. !! OpenWRT Doc !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M5 || NSM5 || [https://wiki.openwrt.org/toh/ubiquiti/nanostationm5 OpenWRT Docs] || firmware: [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin pre 2015] or [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin 2015-2016]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M2 || NSM2 || [https://wiki.openwrt.org/toh/ubiquiti/nanostationm2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-om2p-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation 2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostation2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ath25.extender-node/openwrt-ath25-ubnt2-pico2-squashfs.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation M2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostationm2 OpenWRT Docs] || &lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobeam M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/nanobeam OpenWRT Docs] || &lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Bullet M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/bullet OpenWRT Docs] || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Flash the Extender Node ==&lt;br /&gt;
&lt;br /&gt;
* Configure your wired internet settings to use Manual IPv4 settings with IP: 192.168.1.10, subnet: 255.255.255.0, gateway: 0.0.0.0&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Plug another Ethernet cable into your antenna on one end and into the &amp;quot;POE&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Push a pin into the reset hole and hold it.&lt;br /&gt;
* With the pin held down, plug in the power to the power-over-ethernet power supply.&lt;br /&gt;
* Watch the lights on the antenna - they will all flash together a few times, then they will flash up and down.&lt;br /&gt;
* Once the lights on the antenna are flashing up and down, you can let go of the pin.&lt;br /&gt;
&lt;br /&gt;
You should be able to ping the extender at 192.168.1.20.&lt;br /&gt;
&lt;br /&gt;
  $ ping 192.168.1.20&lt;br /&gt;
  PING 192.168.1.20 (192.168.1.20) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=1 ttl=64 time=1.54 ms&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=2 ttl=64 time=0.826 ms&lt;br /&gt;
&lt;br /&gt;
In your Linux terminal, type:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/ubi-flasher&lt;br /&gt;
  cd ubi-flasher&lt;br /&gt;
  npm install&lt;br /&gt;
  ./flasher.js '&amp;lt;path to firmware&amp;gt;'&lt;br /&gt;
&lt;br /&gt;
The terminal will tell you &amp;quot;The firmware has been successfully sent to the router. In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up). This means that the router is flashing itself with the new firmware. Once the router goes back to having only the power LED lit, the router has been successfully flashed.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Wait until the antenna has only the power LED lit and you're done.&lt;br /&gt;
&lt;br /&gt;
== Nanostation M5 ==&lt;br /&gt;
&lt;br /&gt;
=== Firmware check failure ===&lt;br /&gt;
&lt;br /&gt;
If you attempt to flash the extender and receive a 'Firmware check failed' error, then you have a version of the NSM5 that is protected from being flashed via the TFTP method. You will need to obtain a serial to USB interface (USB to UART TTL Module Serial Converter, 5 pin) and use it to flash the firmware.&lt;br /&gt;
&lt;br /&gt;
   $ ./flasher.js openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin&lt;br /&gt;
   Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
   Connection timed out&lt;br /&gt;
   Sending openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
   [Error: (Server) Firmware check failed]&lt;br /&gt;
&lt;br /&gt;
==== TFTP Serial Output ====&lt;br /&gt;
&lt;br /&gt;
When booting with the reset button held down on a Ubiquity NSM5, the following output is displayed.&lt;br /&gt;
&lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Will reset device configuration (Reset button active after 10 seconds).&lt;br /&gt;
  Erasing sector 123..126&lt;br /&gt;
  &lt;br /&gt;
  First 0x7b last 0x7e sector size 0x10000&lt;br /&gt;
  .... done&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
  Receiving file from 192.168.1.10:49763&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware check failed! (1)&lt;br /&gt;
&lt;br /&gt;
==== TFTP with Official Firmware ====&lt;br /&gt;
&lt;br /&gt;
You can download the official firmware image from Ubiquity - [https://www.ubnt.com/download/airmax-m/nanostationm/default/airos-xw-board-firmware-v564 airOS for XW board firmware v5.6.4] - [http://dl.ubnt.com/firmwares/XW-fw/v5.6.3/XW.v5.6.3.28591.151130.1735.bin airOS for XW board firmware v5.6.3]&lt;br /&gt;
&lt;br /&gt;
Then you can start the TFTP server&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: |&lt;br /&gt;
&lt;br /&gt;
From your machine, configured as 192.168.1.10, use TFTP to upload the official image&lt;br /&gt;
&lt;br /&gt;
  $ tftp 192.168.1.20&lt;br /&gt;
  tftp&amp;gt; put XW.v5.6.4.28924.160331.1238.bin&lt;br /&gt;
  Transfer timed out.&lt;br /&gt;
&lt;br /&gt;
The file uploads, and as expected the image does not result in a firmware check error.&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:56564&lt;br /&gt;
  Received 7296551 bytes&lt;br /&gt;
  Firmware Version: XW.ar934x.v5.6.4.28924.160331.1238&lt;br /&gt;
&lt;br /&gt;
This produces no change in the boot output. I try the v5.6.3 firmware.&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:36771&lt;br /&gt;
  Received 7293587 bytes&lt;br /&gt;
  Firmware Version: XW.ar934x.v5.6.3.28591.151130.1735&lt;br /&gt;
&lt;br /&gt;
The TFTP client times out, but I wait for the firmware message on the serial output to change. Nothing happens. Reboot the device. No changes in the image detected.&lt;br /&gt;
&lt;br /&gt;
  ## Booting image at 9f050000 ...&lt;br /&gt;
     Image Name:   MIPS Ubiquiti Linux-2.6.32.68&lt;br /&gt;
     Created:      2016-03-31   9:39:16 UTC&lt;br /&gt;
     Image Type:   MIPS Linux Kernel Image (lzma compressed)&lt;br /&gt;
     Data Size:    955842 Bytes = 933.4 kB&lt;br /&gt;
     Load Address: 80002000&lt;br /&gt;
     Entry Point:  80002000&lt;br /&gt;
     Verifying Checksum at 0x9f050040 ...OK&lt;br /&gt;
     Uncompressing Kernel Image ... OK&lt;br /&gt;
&lt;br /&gt;
  Starting kernel ...&lt;br /&gt;
  &lt;br /&gt;
  Booting Atheros AR934x&lt;br /&gt;
&lt;br /&gt;
=== USB to Serial Connection ===&lt;br /&gt;
&lt;br /&gt;
The following notes describe steps to interface with a Nanostation M5 (NSM5) via the serial interface. This may be necessary to manually load firmware onto the device if the web interface or TFTP methods of flashing the firmware become unavailable due to [http://www.networkworld.com/article/3038722/mobile-wireless/manufacturers-start-to-lock-down-wi-fi-router-firmware-thanks-fcc.html manufacturers disabling these methods] of firmware flashing.&lt;br /&gt;
&lt;br /&gt;
==== Order a USB to Serial Converter ====&lt;br /&gt;
&lt;br /&gt;
USB to serial converter devices exist at a cost of $4 - $8 online, with much lower pricing and longer delivery times if ordered from China. Search for &amp;quot;USB to UART TTL&amp;quot;, including &amp;quot;5 pin&amp;quot; in the search. Make sure the specifications do not mention anything other than 3.3 volts.&lt;br /&gt;
&lt;br /&gt;
==== Connecting to Serial ====&lt;br /&gt;
&lt;br /&gt;
You will need to connect the following pins from the converter to the pins on the device.&lt;br /&gt;
&lt;br /&gt;
* Ground (GND)&lt;br /&gt;
* Serial Out (Transmit / TX)&lt;br /&gt;
* Serial In (Receive / RX)&lt;br /&gt;
&lt;br /&gt;
Begin by connecting the Ground of the converter to the Ground of the device. Next connect the Transmit/TX of the converter to the Receive/RX of the device, then connect the Receive/RX of the converter to the Transmit/TX of the device.&lt;br /&gt;
&lt;br /&gt;
[[File:CP2102-usb-to-serial-converter.jpg|400px|KEDSUMÂ® CP2102 Module STC Download Cable USB 2.0 to TTL 6PIN Serial Converter For STC]]&lt;br /&gt;
&lt;br /&gt;
[[File:Ubiquity-NSM5-serial-connectors.jpg|400px|Ubiquiti Nanostation NSM5 - Serial pins with connections]]&lt;br /&gt;
&lt;br /&gt;
==== Serial Communications Program ====&lt;br /&gt;
&lt;br /&gt;
You need to install a serial communication program. Linux users can use Minicom.&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get install minicom&lt;br /&gt;
&lt;br /&gt;
By default the Minicom program will attempt to use /dev/tty8, and will also attempt to initialize the device (expecting a modem) by default.&lt;br /&gt;
&lt;br /&gt;
  $ minicom&lt;br /&gt;
  minicom: cannot open /dev/tty8: Permission denied&lt;br /&gt;
&lt;br /&gt;
Run the program so that it starts the program on the USB converter that is connected by adding `-D /dev/ttyUSB0`, and specify that it should skip initialization by adding `-o`.&lt;br /&gt;
&lt;br /&gt;
You can also specify from the command line that it use the baud rate and '8N1' settings specified below by including `-b 115200 -8`. &lt;br /&gt;
&lt;br /&gt;
  sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
&lt;br /&gt;
In Minicom, CTRL-A to get settings, then Press O, to access settings&lt;br /&gt;
&lt;br /&gt;
Go to Serial Port Setup, use these settings:&lt;br /&gt;
&lt;br /&gt;
* Set the serial device (should be /dev/tty/USB0)&lt;br /&gt;
* Baud Rate (Bits Per Second): 115200&lt;br /&gt;
* Settings '8N1' (short hand for 8 bits, no parity, 1 stop bit)&lt;br /&gt;
* Turn off hardware and software flow control&lt;br /&gt;
&lt;br /&gt;
Reboot the device, and it will let you drop into a command line. You will then have to figure out how to enable the network from the boot loader (Uboot or Redboot) and transfer the firmware to the device to flash it.&lt;br /&gt;
&lt;br /&gt;
==== Interupting Boot ====&lt;br /&gt;
&lt;br /&gt;
The device will not detect the key you press unless Minicom is configured properly.&lt;br /&gt;
&lt;br /&gt;
* To access the Help screen, Press CTRL-A, then press Z.&lt;br /&gt;
* To access the configuration/settings, press CTRL-A, then press O.&lt;br /&gt;
&lt;br /&gt;
From the configuration window, select to view the 'Serial port setup'&lt;br /&gt;
&lt;br /&gt;
  $ sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
  Welcome to minicom 2.7&lt;br /&gt;
  &lt;br /&gt;
  OPTIONS: I18n &lt;br /&gt;
  Compiled on Jan  1 2014, 17:13:19.&lt;br /&gt;
  Port /dev/ttyUSB0, 21:47:56&lt;br /&gt;
  &lt;br /&gt;
  Press CTRL-A Z for help on special keys&lt;br /&gt;
  &lt;br /&gt;
              +-----[configuration]------+&lt;br /&gt;
              | Filenames and paths      |&lt;br /&gt;
              | File transfer protocols  |&lt;br /&gt;
              | Serial port setup        |&lt;br /&gt;
              | Modem and dialing        |&lt;br /&gt;
              | Screen and keyboard      |&lt;br /&gt;
              | Save setup as dfl        |&lt;br /&gt;
              | Save setup as..          |&lt;br /&gt;
              | Exit                     |&lt;br /&gt;
              +--------------------------+&lt;br /&gt;
  &lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
  | A -    Serial Device      : /dev/ttyUSB0                              |&lt;br /&gt;
  | B - Lockfile Location     : /var/lock                                 |&lt;br /&gt;
  | C -   Callin Program      :                                           |&lt;br /&gt;
  | D -  Callout Program      :                                           |&lt;br /&gt;
  | E -    Bps/Par/Bits       : 115200 8N1                                |&lt;br /&gt;
  | F - Hardware Flow Control : Yes                                       |&lt;br /&gt;
  | G - Software Flow Control : No                                        |&lt;br /&gt;
  |                                                                       |&lt;br /&gt;
  |    Change which setting?                                              |&lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
&lt;br /&gt;
By default the Hardware Flow Control will be enabled. Press 'F' to disable Hardware Flow Control. Press ENTER to exit the Serial port setup window, and then select EXIT to go back to the program.&lt;br /&gt;
&lt;br /&gt;
At this point plug in the Ethernet cable to the 'Main' Ethernet port, with the other end connected to the 'POE' port on the Power Over Ethernet adapter that came with the device. As the device boots up, you'll see output similar to the following.&lt;br /&gt;
&lt;br /&gt;
You'll need to make sure to press a key before it boots the default image.&lt;br /&gt;
&lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ar7240&amp;gt; &lt;br /&gt;
&lt;br /&gt;
This will cause the [https://wiki.openwrt.org/doc/techref/bootloader/uboot U-Boot] bootloader to drop into a command line.&lt;br /&gt;
&lt;br /&gt;
==== Transfering file to U-Boot over Serial ====&lt;br /&gt;
&lt;br /&gt;
U-Boot supports two protocols for transfering files: kermit or y-modem. Minicom does not support the kermit protocol, however it does support the y-modem protocol.&lt;/div&gt;</summary>
		<author><name>Redconfetti</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10152</id>
		<title>Mesh/Flashing extender nodes</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10152"/>
		<updated>2016-05-07T06:37:34Z</updated>

		<summary type="html">&lt;p&gt;Redconfetti: /* TFTP Serial Output */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Download the Image File For a Extender Node ==&lt;br /&gt;
&lt;br /&gt;
The extender nodes that we currently support are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Model No. !! OpenWRT Doc !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M5 || NSM5 || [https://wiki.openwrt.org/toh/ubiquiti/nanostationm5 OpenWRT Docs] || firmware: [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin pre 2015] or [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin 2015-2016]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M2 || NSM2 || [https://wiki.openwrt.org/toh/ubiquiti/nanostationm2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-om2p-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation 2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostation2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ath25.extender-node/openwrt-ath25-ubnt2-pico2-squashfs.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation M2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostationm2 OpenWRT Docs] || &lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobeam M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/nanobeam OpenWRT Docs] || &lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Bullet M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/bullet OpenWRT Docs] || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Flash the Extender Node ==&lt;br /&gt;
&lt;br /&gt;
* Configure your wired internet settings to use Manual IPv4 settings with IP: 192.168.1.10, subnet: 255.255.255.0, gateway: 0.0.0.0&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Plug another Ethernet cable into your antenna on one end and into the &amp;quot;POE&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Push a pin into the reset hole and hold it.&lt;br /&gt;
* With the pin held down, plug in the power to the power-over-ethernet power supply.&lt;br /&gt;
* Watch the lights on the antenna - they will all flash together a few times, then they will flash up and down.&lt;br /&gt;
* Once the lights on the antenna are flashing up and down, you can let go of the pin.&lt;br /&gt;
&lt;br /&gt;
You should be able to ping the extender at 192.168.1.20.&lt;br /&gt;
&lt;br /&gt;
  $ ping 192.168.1.20&lt;br /&gt;
  PING 192.168.1.20 (192.168.1.20) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=1 ttl=64 time=1.54 ms&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=2 ttl=64 time=0.826 ms&lt;br /&gt;
&lt;br /&gt;
In your Linux terminal, type:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/ubi-flasher&lt;br /&gt;
  cd ubi-flasher&lt;br /&gt;
  npm install&lt;br /&gt;
  ./flasher.js '&amp;lt;path to firmware&amp;gt;'&lt;br /&gt;
&lt;br /&gt;
The terminal will tell you &amp;quot;The firmware has been successfully sent to the router. In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up). This means that the router is flashing itself with the new firmware. Once the router goes back to having only the power LED lit, the router has been successfully flashed.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Wait until the antenna has only the power LED lit and you're done.&lt;br /&gt;
&lt;br /&gt;
== Nanostation M5 ==&lt;br /&gt;
&lt;br /&gt;
=== Firmware check failure ===&lt;br /&gt;
&lt;br /&gt;
If you attempt to flash the extender and receive a 'Firmware check failed' error, then you have a version of the NSM5 that is protected from being flashed via the TFTP method. You will need to obtain a serial to USB interface (USB to UART TTL Module Serial Converter, 5 pin) and use it to flash the firmware.&lt;br /&gt;
&lt;br /&gt;
   $ ./flasher.js openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin&lt;br /&gt;
   Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
   Connection timed out&lt;br /&gt;
   Sending openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
   [Error: (Server) Firmware check failed]&lt;br /&gt;
&lt;br /&gt;
==== TFTP Serial Output ====&lt;br /&gt;
&lt;br /&gt;
When booting with the reset button held down on a Ubiquity NSM5, the following output is displayed.&lt;br /&gt;
&lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Will reset device configuration (Reset button active after 10 seconds).&lt;br /&gt;
  Erasing sector 123..126&lt;br /&gt;
  &lt;br /&gt;
  First 0x7b last 0x7e sector size 0x10000&lt;br /&gt;
  .... done&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
  Receiving file from 192.168.1.10:49763&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware check failed! (1)&lt;br /&gt;
&lt;br /&gt;
==== TFTP with Official Firmware ====&lt;br /&gt;
&lt;br /&gt;
You can download the official firmware image from Ubiquity - [https://www.ubnt.com/download/airmax-m/nanostationm/default/airos-xw-board-firmware-v564 airOS for XW board firmware v5.6.4]&lt;br /&gt;
&lt;br /&gt;
Then you can start the TFTP server&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: |&lt;br /&gt;
&lt;br /&gt;
From your machine, configured as 192.168.1.10, use TFTP to upload the official image&lt;br /&gt;
&lt;br /&gt;
  $ tftp 192.168.1.20&lt;br /&gt;
  tftp&amp;gt; put XW.v5.6.4.28924.160331.1238.bin&lt;br /&gt;
  Transfer timed out.&lt;br /&gt;
&lt;br /&gt;
The file uploads, and as expected the image does not result in a firmware check error.&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:56564&lt;br /&gt;
  Received 7296551 bytes&lt;br /&gt;
  Firmware Version: XW.ar934x.v5.6.4.28924.160331.1238&lt;br /&gt;
&lt;br /&gt;
The U-Boot version is now different&lt;br /&gt;
&lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0&lt;br /&gt;
  ## Booting image at 9f050000 ...&lt;br /&gt;
     Image Name:   MIPS Ubiquiti Linux-2.6.32.68&lt;br /&gt;
     Created:      2016-03-31   9:39:16 UTC&lt;br /&gt;
     Image Type:   MIPS Linux Kernel Image (lzma compressed)&lt;br /&gt;
     Data Size:    955842 Bytes = 933.4 kB&lt;br /&gt;
     Load Address: 80002000&lt;br /&gt;
     Entry Point:  80002000&lt;br /&gt;
     Verifying Checksum at 0x9f050040 ...OK&lt;br /&gt;
     Uncompressing Kernel Image ... OK&lt;br /&gt;
  &lt;br /&gt;
  Starting kernel ...&lt;br /&gt;
  &lt;br /&gt;
  Booting Atheros AR934x&lt;br /&gt;
&lt;br /&gt;
=== USB to Serial Connection ===&lt;br /&gt;
&lt;br /&gt;
The following notes describe steps to interface with a Nanostation M5 (NSM5) via the serial interface. This may be necessary to manually load firmware onto the device if the web interface or TFTP methods of flashing the firmware become unavailable due to [http://www.networkworld.com/article/3038722/mobile-wireless/manufacturers-start-to-lock-down-wi-fi-router-firmware-thanks-fcc.html manufacturers disabling these methods] of firmware flashing.&lt;br /&gt;
&lt;br /&gt;
==== Order a USB to Serial Converter ====&lt;br /&gt;
&lt;br /&gt;
USB to serial converter devices exist at a cost of $4 - $8 online, with much lower pricing and longer delivery times if ordered from China. Search for &amp;quot;USB to UART TTL&amp;quot;, including &amp;quot;5 pin&amp;quot; in the search. Make sure the specifications do not mention anything other than 3.3 volts.&lt;br /&gt;
&lt;br /&gt;
==== Connecting to Serial ====&lt;br /&gt;
&lt;br /&gt;
You will need to connect the following pins from the converter to the pins on the device.&lt;br /&gt;
&lt;br /&gt;
* Ground (GND)&lt;br /&gt;
* Serial Out (Transmit / TX)&lt;br /&gt;
* Serial In (Receive / RX)&lt;br /&gt;
&lt;br /&gt;
Begin by connecting the Ground of the converter to the Ground of the device. Next connect the Transmit/TX of the converter to the Receive/RX of the device, then connect the Receive/RX of the converter to the Transmit/TX of the device.&lt;br /&gt;
&lt;br /&gt;
[[File:CP2102-usb-to-serial-converter.jpg|400px|KEDSUMÂ® CP2102 Module STC Download Cable USB 2.0 to TTL 6PIN Serial Converter For STC]]&lt;br /&gt;
&lt;br /&gt;
[[File:Ubiquity-NSM5-serial-connectors.jpg|400px|Ubiquiti Nanostation NSM5 - Serial pins with connections]]&lt;br /&gt;
&lt;br /&gt;
==== Serial Communications Program ====&lt;br /&gt;
&lt;br /&gt;
You need to install a serial communication program. Linux users can use Minicom.&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get install minicom&lt;br /&gt;
&lt;br /&gt;
By default the Minicom program will attempt to use /dev/tty8, and will also attempt to initialize the device (expecting a modem) by default.&lt;br /&gt;
&lt;br /&gt;
  $ minicom&lt;br /&gt;
  minicom: cannot open /dev/tty8: Permission denied&lt;br /&gt;
&lt;br /&gt;
Run the program so that it starts the program on the USB converter that is connected by adding `-D /dev/ttyUSB0`, and specify that it should skip initialization by adding `-o`.&lt;br /&gt;
&lt;br /&gt;
You can also specify from the command line that it use the baud rate and '8N1' settings specified below by including `-b 115200 -8`. &lt;br /&gt;
&lt;br /&gt;
  sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
&lt;br /&gt;
In Minicom, CTRL-A to get settings, then Press O, to access settings&lt;br /&gt;
&lt;br /&gt;
Go to Serial Port Setup, use these settings:&lt;br /&gt;
&lt;br /&gt;
* Set the serial device (should be /dev/tty/USB0)&lt;br /&gt;
* Baud Rate (Bits Per Second): 115200&lt;br /&gt;
* Settings '8N1' (short hand for 8 bits, no parity, 1 stop bit)&lt;br /&gt;
* Turn off hardware and software flow control&lt;br /&gt;
&lt;br /&gt;
Reboot the device, and it will let you drop into a command line. You will then have to figure out how to enable the network from the boot loader (Uboot or Redboot) and transfer the firmware to the device to flash it.&lt;br /&gt;
&lt;br /&gt;
==== Interupting Boot ====&lt;br /&gt;
&lt;br /&gt;
The device will not detect the key you press unless Minicom is configured properly.&lt;br /&gt;
&lt;br /&gt;
* To access the Help screen, Press CTRL-A, then press Z.&lt;br /&gt;
* To access the configuration/settings, press CTRL-A, then press O.&lt;br /&gt;
&lt;br /&gt;
From the configuration window, select to view the 'Serial port setup'&lt;br /&gt;
&lt;br /&gt;
  $ sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
  Welcome to minicom 2.7&lt;br /&gt;
  &lt;br /&gt;
  OPTIONS: I18n &lt;br /&gt;
  Compiled on Jan  1 2014, 17:13:19.&lt;br /&gt;
  Port /dev/ttyUSB0, 21:47:56&lt;br /&gt;
  &lt;br /&gt;
  Press CTRL-A Z for help on special keys&lt;br /&gt;
  &lt;br /&gt;
              +-----[configuration]------+&lt;br /&gt;
              | Filenames and paths      |&lt;br /&gt;
              | File transfer protocols  |&lt;br /&gt;
              | Serial port setup        |&lt;br /&gt;
              | Modem and dialing        |&lt;br /&gt;
              | Screen and keyboard      |&lt;br /&gt;
              | Save setup as dfl        |&lt;br /&gt;
              | Save setup as..          |&lt;br /&gt;
              | Exit                     |&lt;br /&gt;
              +--------------------------+&lt;br /&gt;
  &lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
  | A -    Serial Device      : /dev/ttyUSB0                              |&lt;br /&gt;
  | B - Lockfile Location     : /var/lock                                 |&lt;br /&gt;
  | C -   Callin Program      :                                           |&lt;br /&gt;
  | D -  Callout Program      :                                           |&lt;br /&gt;
  | E -    Bps/Par/Bits       : 115200 8N1                                |&lt;br /&gt;
  | F - Hardware Flow Control : Yes                                       |&lt;br /&gt;
  | G - Software Flow Control : No                                        |&lt;br /&gt;
  |                                                                       |&lt;br /&gt;
  |    Change which setting?                                              |&lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
&lt;br /&gt;
By default the Hardware Flow Control will be enabled. Press 'F' to disable Hardware Flow Control. Press ENTER to exit the Serial port setup window, and then select EXIT to go back to the program.&lt;br /&gt;
&lt;br /&gt;
At this point plug in the Ethernet cable to the 'Main' Ethernet port, with the other end connected to the 'POE' port on the Power Over Ethernet adapter that came with the device. As the device boots up, you'll see output similar to the following.&lt;br /&gt;
&lt;br /&gt;
You'll need to make sure to press a key before it boots the default image.&lt;br /&gt;
&lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ar7240&amp;gt; &lt;br /&gt;
&lt;br /&gt;
This will cause the [https://wiki.openwrt.org/doc/techref/bootloader/uboot U-Boot] bootloader to drop into a command line.&lt;br /&gt;
&lt;br /&gt;
==== Transfering file to U-Boot over Serial ====&lt;br /&gt;
&lt;br /&gt;
U-Boot supports two protocols for transfering files: kermit or y-modem. Minicom does not support the kermit protocol, however it does support the y-modem protocol.&lt;/div&gt;</summary>
		<author><name>Redconfetti</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10151</id>
		<title>Mesh/Flashing extender nodes</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10151"/>
		<updated>2016-05-07T05:38:45Z</updated>

		<summary type="html">&lt;p&gt;Redconfetti: /* Connecting to Serial */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Download the Image File For a Extender Node ==&lt;br /&gt;
&lt;br /&gt;
The extender nodes that we currently support are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Model No. !! OpenWRT Doc !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M5 || NSM5 || [https://wiki.openwrt.org/toh/ubiquiti/nanostationm5 OpenWRT Docs] || firmware: [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin pre 2015] or [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin 2015-2016]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M2 || NSM2 || [https://wiki.openwrt.org/toh/ubiquiti/nanostationm2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-om2p-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation 2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostation2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ath25.extender-node/openwrt-ath25-ubnt2-pico2-squashfs.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation M2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostationm2 OpenWRT Docs] || &lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobeam M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/nanobeam OpenWRT Docs] || &lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Bullet M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/bullet OpenWRT Docs] || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Flash the Extender Node ==&lt;br /&gt;
&lt;br /&gt;
* Configure your wired internet settings to use Manual IPv4 settings with IP: 192.168.1.10, subnet: 255.255.255.0, gateway: 0.0.0.0&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Plug another Ethernet cable into your antenna on one end and into the &amp;quot;POE&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Push a pin into the reset hole and hold it.&lt;br /&gt;
* With the pin held down, plug in the power to the power-over-ethernet power supply.&lt;br /&gt;
* Watch the lights on the antenna - they will all flash together a few times, then they will flash up and down.&lt;br /&gt;
* Once the lights on the antenna are flashing up and down, you can let go of the pin.&lt;br /&gt;
&lt;br /&gt;
You should be able to ping the extender at 192.168.1.20.&lt;br /&gt;
&lt;br /&gt;
  $ ping 192.168.1.20&lt;br /&gt;
  PING 192.168.1.20 (192.168.1.20) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=1 ttl=64 time=1.54 ms&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=2 ttl=64 time=0.826 ms&lt;br /&gt;
&lt;br /&gt;
In your Linux terminal, type:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/ubi-flasher&lt;br /&gt;
  cd ubi-flasher&lt;br /&gt;
  npm install&lt;br /&gt;
  ./flasher.js '&amp;lt;path to firmware&amp;gt;'&lt;br /&gt;
&lt;br /&gt;
The terminal will tell you &amp;quot;The firmware has been successfully sent to the router. In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up). This means that the router is flashing itself with the new firmware. Once the router goes back to having only the power LED lit, the router has been successfully flashed.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Wait until the antenna has only the power LED lit and you're done.&lt;br /&gt;
&lt;br /&gt;
== Nanostation M5 ==&lt;br /&gt;
&lt;br /&gt;
=== Firmware check failure ===&lt;br /&gt;
&lt;br /&gt;
If you attempt to flash the extender and receive a 'Firmware check failed' error, then you have a version of the NSM5 that is protected from being flashed via the TFTP method. You will need to obtain a serial to USB interface (USB to UART TTL Module Serial Converter, 5 pin) and use it to flash the firmware.&lt;br /&gt;
&lt;br /&gt;
   $ ./flasher.js openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin&lt;br /&gt;
   Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
   Connection timed out&lt;br /&gt;
   Sending openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
   [Error: (Server) Firmware check failed]&lt;br /&gt;
&lt;br /&gt;
==== TFTP Serial Output ====&lt;br /&gt;
&lt;br /&gt;
When booting with the reset button held down on a Ubiquity NSM5, the following output is displayed.&lt;br /&gt;
&lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)                                                                                       &lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB                                                                                                                     &lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)                                                                                                  &lt;br /&gt;
  Net:   AR8236                                                                                                                    &lt;br /&gt;
  eth0, eth1                                                                                                                       &lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)                                                                     &lt;br /&gt;
  Radio: 0777:e855                                                                                                                 &lt;br /&gt;
  Reset: Normal                                                                                                                    &lt;br /&gt;
  Hit any key to stop autoboot:  0                                                                                                 &lt;br /&gt;
  Setting default IP 192.168.1.20                                                                                                  &lt;br /&gt;
  Starting TFTP server...                                                                                                          &lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000                                                                                   &lt;br /&gt;
  Will reset device configuration (Reset button active after 10 seconds).                                                          &lt;br /&gt;
  Erasing sector 123..126                                                                                                          &lt;br /&gt;
  &lt;br /&gt;
  First 0x7b last 0x7e sector size 0x10000                                                                                         &lt;br /&gt;
  .... done&lt;br /&gt;
  Waiting for connection: \                                                                                                        &lt;br /&gt;
  Receiving file from 192.168.1.10:49763                                                                                           &lt;br /&gt;
  Received 4325788 bytes                                                                                                           &lt;br /&gt;
  Firmware check failed! (1)&lt;br /&gt;
&lt;br /&gt;
=== USB to Serial Connection ===&lt;br /&gt;
&lt;br /&gt;
The following notes describe steps to interface with a Nanostation M5 (NSM5) via the serial interface. This may be necessary to manually load firmware onto the device if the web interface or TFTP methods of flashing the firmware become unavailable due to [http://www.networkworld.com/article/3038722/mobile-wireless/manufacturers-start-to-lock-down-wi-fi-router-firmware-thanks-fcc.html manufacturers disabling these methods] of firmware flashing.&lt;br /&gt;
&lt;br /&gt;
==== Order a USB to Serial Converter ====&lt;br /&gt;
&lt;br /&gt;
USB to serial converter devices exist at a cost of $4 - $8 online, with much lower pricing and longer delivery times if ordered from China. Search for &amp;quot;USB to UART TTL&amp;quot;, including &amp;quot;5 pin&amp;quot; in the search. Make sure the specifications do not mention anything other than 3.3 volts.&lt;br /&gt;
&lt;br /&gt;
==== Connecting to Serial ====&lt;br /&gt;
&lt;br /&gt;
You will need to connect the following pins from the converter to the pins on the device.&lt;br /&gt;
&lt;br /&gt;
* Ground (GND)&lt;br /&gt;
* Serial Out (Transmit / TX)&lt;br /&gt;
* Serial In (Receive / RX)&lt;br /&gt;
&lt;br /&gt;
Begin by connecting the Ground of the converter to the Ground of the device. Next connect the Transmit/TX of the converter to the Receive/RX of the device, then connect the Receive/RX of the converter to the Transmit/TX of the device.&lt;br /&gt;
&lt;br /&gt;
[[File:CP2102-usb-to-serial-converter.jpg|400px|KEDSUMÂ® CP2102 Module STC Download Cable USB 2.0 to TTL 6PIN Serial Converter For STC]]&lt;br /&gt;
&lt;br /&gt;
[[File:Ubiquity-NSM5-serial-connectors.jpg|400px|Ubiquiti Nanostation NSM5 - Serial pins with connections]]&lt;br /&gt;
&lt;br /&gt;
==== Serial Communications Program ====&lt;br /&gt;
&lt;br /&gt;
You need to install a serial communication program. Linux users can use Minicom.&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get install minicom&lt;br /&gt;
&lt;br /&gt;
By default the Minicom program will attempt to use /dev/tty8, and will also attempt to initialize the device (expecting a modem) by default.&lt;br /&gt;
&lt;br /&gt;
  $ minicom&lt;br /&gt;
  minicom: cannot open /dev/tty8: Permission denied&lt;br /&gt;
&lt;br /&gt;
Run the program so that it starts the program on the USB converter that is connected by adding `-D /dev/ttyUSB0`, and specify that it should skip initialization by adding `-o`.&lt;br /&gt;
&lt;br /&gt;
You can also specify from the command line that it use the baud rate and '8N1' settings specified below by including `-b 115200 -8`. &lt;br /&gt;
&lt;br /&gt;
  sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
&lt;br /&gt;
In Minicom, CTRL-A to get settings, then Press O, to access settings&lt;br /&gt;
&lt;br /&gt;
Go to Serial Port Setup, use these settings:&lt;br /&gt;
&lt;br /&gt;
* Set the serial device (should be /dev/tty/USB0)&lt;br /&gt;
* Baud Rate (Bits Per Second): 115200&lt;br /&gt;
* Settings '8N1' (short hand for 8 bits, no parity, 1 stop bit)&lt;br /&gt;
* Turn off hardware and software flow control&lt;br /&gt;
&lt;br /&gt;
Reboot the device, and it will let you drop into a command line. You will then have to figure out how to enable the network from the boot loader (Uboot or Redboot) and transfer the firmware to the device to flash it.&lt;br /&gt;
&lt;br /&gt;
==== Interupting Boot ====&lt;br /&gt;
&lt;br /&gt;
The device will not detect the key you press unless Minicom is configured properly.&lt;br /&gt;
&lt;br /&gt;
* To access the Help screen, Press CTRL-A, then press Z.&lt;br /&gt;
* To access the configuration/settings, press CTRL-A, then press O.&lt;br /&gt;
&lt;br /&gt;
From the configuration window, select to view the 'Serial port setup'&lt;br /&gt;
&lt;br /&gt;
  $ sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
  Welcome to minicom 2.7&lt;br /&gt;
  &lt;br /&gt;
  OPTIONS: I18n &lt;br /&gt;
  Compiled on Jan  1 2014, 17:13:19.&lt;br /&gt;
  Port /dev/ttyUSB0, 21:47:56&lt;br /&gt;
  &lt;br /&gt;
  Press CTRL-A Z for help on special keys&lt;br /&gt;
  &lt;br /&gt;
              +-----[configuration]------+&lt;br /&gt;
              | Filenames and paths      |&lt;br /&gt;
              | File transfer protocols  |&lt;br /&gt;
              | Serial port setup        |&lt;br /&gt;
              | Modem and dialing        |&lt;br /&gt;
              | Screen and keyboard      |&lt;br /&gt;
              | Save setup as dfl        |&lt;br /&gt;
              | Save setup as..          |&lt;br /&gt;
              | Exit                     |&lt;br /&gt;
              +--------------------------+&lt;br /&gt;
  &lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
  | A -    Serial Device      : /dev/ttyUSB0                              |&lt;br /&gt;
  | B - Lockfile Location     : /var/lock                                 |&lt;br /&gt;
  | C -   Callin Program      :                                           |&lt;br /&gt;
  | D -  Callout Program      :                                           |&lt;br /&gt;
  | E -    Bps/Par/Bits       : 115200 8N1                                |&lt;br /&gt;
  | F - Hardware Flow Control : Yes                                       |&lt;br /&gt;
  | G - Software Flow Control : No                                        |&lt;br /&gt;
  |                                                                       |&lt;br /&gt;
  |    Change which setting?                                              |&lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
&lt;br /&gt;
By default the Hardware Flow Control will be enabled. Press 'F' to disable Hardware Flow Control. Press ENTER to exit the Serial port setup window, and then select EXIT to go back to the program.&lt;br /&gt;
&lt;br /&gt;
At this point plug in the Ethernet cable to the 'Main' Ethernet port, with the other end connected to the 'POE' port on the Power Over Ethernet adapter that came with the device. As the device boots up, you'll see output similar to the following.&lt;br /&gt;
&lt;br /&gt;
You'll need to make sure to press a key before it boots the default image.&lt;br /&gt;
&lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ar7240&amp;gt; &lt;br /&gt;
&lt;br /&gt;
This will cause the [https://wiki.openwrt.org/doc/techref/bootloader/uboot U-Boot] bootloader to drop into a command line.&lt;br /&gt;
&lt;br /&gt;
==== Transfering file to U-Boot over Serial ====&lt;br /&gt;
&lt;br /&gt;
U-Boot supports two protocols for transfering files: kermit or y-modem. Minicom does not support the kermit protocol, however it does support the y-modem protocol.&lt;/div&gt;</summary>
		<author><name>Redconfetti</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10150</id>
		<title>Mesh/Flashing extender nodes</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10150"/>
		<updated>2016-05-07T05:38:00Z</updated>

		<summary type="html">&lt;p&gt;Redconfetti: /* Connecting to Serial */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Download the Image File For a Extender Node ==&lt;br /&gt;
&lt;br /&gt;
The extender nodes that we currently support are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Model No. !! OpenWRT Doc !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M5 || NSM5 || [https://wiki.openwrt.org/toh/ubiquiti/nanostationm5 OpenWRT Docs] || firmware: [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin pre 2015] or [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin 2015-2016]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M2 || NSM2 || [https://wiki.openwrt.org/toh/ubiquiti/nanostationm2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-om2p-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation 2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostation2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ath25.extender-node/openwrt-ath25-ubnt2-pico2-squashfs.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation M2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostationm2 OpenWRT Docs] || &lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobeam M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/nanobeam OpenWRT Docs] || &lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Bullet M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/bullet OpenWRT Docs] || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Flash the Extender Node ==&lt;br /&gt;
&lt;br /&gt;
* Configure your wired internet settings to use Manual IPv4 settings with IP: 192.168.1.10, subnet: 255.255.255.0, gateway: 0.0.0.0&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Plug another Ethernet cable into your antenna on one end and into the &amp;quot;POE&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Push a pin into the reset hole and hold it.&lt;br /&gt;
* With the pin held down, plug in the power to the power-over-ethernet power supply.&lt;br /&gt;
* Watch the lights on the antenna - they will all flash together a few times, then they will flash up and down.&lt;br /&gt;
* Once the lights on the antenna are flashing up and down, you can let go of the pin.&lt;br /&gt;
&lt;br /&gt;
You should be able to ping the extender at 192.168.1.20.&lt;br /&gt;
&lt;br /&gt;
  $ ping 192.168.1.20&lt;br /&gt;
  PING 192.168.1.20 (192.168.1.20) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=1 ttl=64 time=1.54 ms&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=2 ttl=64 time=0.826 ms&lt;br /&gt;
&lt;br /&gt;
In your Linux terminal, type:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/ubi-flasher&lt;br /&gt;
  cd ubi-flasher&lt;br /&gt;
  npm install&lt;br /&gt;
  ./flasher.js '&amp;lt;path to firmware&amp;gt;'&lt;br /&gt;
&lt;br /&gt;
The terminal will tell you &amp;quot;The firmware has been successfully sent to the router. In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up). This means that the router is flashing itself with the new firmware. Once the router goes back to having only the power LED lit, the router has been successfully flashed.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Wait until the antenna has only the power LED lit and you're done.&lt;br /&gt;
&lt;br /&gt;
== Nanostation M5 ==&lt;br /&gt;
&lt;br /&gt;
=== Firmware check failure ===&lt;br /&gt;
&lt;br /&gt;
If you attempt to flash the extender and receive a 'Firmware check failed' error, then you have a version of the NSM5 that is protected from being flashed via the TFTP method. You will need to obtain a serial to USB interface (USB to UART TTL Module Serial Converter, 5 pin) and use it to flash the firmware.&lt;br /&gt;
&lt;br /&gt;
   $ ./flasher.js openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin&lt;br /&gt;
   Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
   Connection timed out&lt;br /&gt;
   Sending openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
   [Error: (Server) Firmware check failed]&lt;br /&gt;
&lt;br /&gt;
==== TFTP Serial Output ====&lt;br /&gt;
&lt;br /&gt;
When booting with the reset button held down on a Ubiquity NSM5, the following output is displayed.&lt;br /&gt;
&lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)                                                                                       &lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB                                                                                                                     &lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)                                                                                                  &lt;br /&gt;
  Net:   AR8236                                                                                                                    &lt;br /&gt;
  eth0, eth1                                                                                                                       &lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)                                                                     &lt;br /&gt;
  Radio: 0777:e855                                                                                                                 &lt;br /&gt;
  Reset: Normal                                                                                                                    &lt;br /&gt;
  Hit any key to stop autoboot:  0                                                                                                 &lt;br /&gt;
  Setting default IP 192.168.1.20                                                                                                  &lt;br /&gt;
  Starting TFTP server...                                                                                                          &lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000                                                                                   &lt;br /&gt;
  Will reset device configuration (Reset button active after 10 seconds).                                                          &lt;br /&gt;
  Erasing sector 123..126                                                                                                          &lt;br /&gt;
  &lt;br /&gt;
  First 0x7b last 0x7e sector size 0x10000                                                                                         &lt;br /&gt;
  .... done&lt;br /&gt;
  Waiting for connection: \                                                                                                        &lt;br /&gt;
  Receiving file from 192.168.1.10:49763                                                                                           &lt;br /&gt;
  Received 4325788 bytes                                                                                                           &lt;br /&gt;
  Firmware check failed! (1)&lt;br /&gt;
&lt;br /&gt;
=== USB to Serial Connection ===&lt;br /&gt;
&lt;br /&gt;
The following notes describe steps to interface with a Nanostation M5 (NSM5) via the serial interface. This may be necessary to manually load firmware onto the device if the web interface or TFTP methods of flashing the firmware become unavailable due to [http://www.networkworld.com/article/3038722/mobile-wireless/manufacturers-start-to-lock-down-wi-fi-router-firmware-thanks-fcc.html manufacturers disabling these methods] of firmware flashing.&lt;br /&gt;
&lt;br /&gt;
==== Order a USB to Serial Converter ====&lt;br /&gt;
&lt;br /&gt;
USB to serial converter devices exist at a cost of $4 - $8 online, with much lower pricing and longer delivery times if ordered from China. Search for &amp;quot;USB to UART TTL&amp;quot;, including &amp;quot;5 pin&amp;quot; in the search. Make sure the specifications do not mention anything other than 3.3 volts.&lt;br /&gt;
&lt;br /&gt;
==== Connecting to Serial ====&lt;br /&gt;
&lt;br /&gt;
You will need to connect the following pins from the converter to the pins on the device.&lt;br /&gt;
&lt;br /&gt;
* Ground (GND)&lt;br /&gt;
* Serial Out (Transmit / TX)&lt;br /&gt;
* Serial In (Receive / RX)&lt;br /&gt;
&lt;br /&gt;
Begin by connecting the Ground of the converter to the Ground of the device. Next connect the Transmit/TX of the converter to the Receive/RX of the device, then connect the Receive/RX of the converter to the Transmit/TX of the device.&lt;br /&gt;
&lt;br /&gt;
[[File:CP2102-usb-to-serial-converter.jpg|KEDSUMÂ® CP2102 Module STC Download Cable USB 2.0 to TTL 6PIN Serial Converter For STC]]&lt;br /&gt;
&lt;br /&gt;
[[File:Ubiquity-NSM5-serial-connectors.jpg|Ubiquiti Nanostation NSM5 - Serial pins with connections]]&lt;br /&gt;
&lt;br /&gt;
==== Serial Communications Program ====&lt;br /&gt;
&lt;br /&gt;
You need to install a serial communication program. Linux users can use Minicom.&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get install minicom&lt;br /&gt;
&lt;br /&gt;
By default the Minicom program will attempt to use /dev/tty8, and will also attempt to initialize the device (expecting a modem) by default.&lt;br /&gt;
&lt;br /&gt;
  $ minicom&lt;br /&gt;
  minicom: cannot open /dev/tty8: Permission denied&lt;br /&gt;
&lt;br /&gt;
Run the program so that it starts the program on the USB converter that is connected by adding `-D /dev/ttyUSB0`, and specify that it should skip initialization by adding `-o`.&lt;br /&gt;
&lt;br /&gt;
You can also specify from the command line that it use the baud rate and '8N1' settings specified below by including `-b 115200 -8`. &lt;br /&gt;
&lt;br /&gt;
  sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
&lt;br /&gt;
In Minicom, CTRL-A to get settings, then Press O, to access settings&lt;br /&gt;
&lt;br /&gt;
Go to Serial Port Setup, use these settings:&lt;br /&gt;
&lt;br /&gt;
* Set the serial device (should be /dev/tty/USB0)&lt;br /&gt;
* Baud Rate (Bits Per Second): 115200&lt;br /&gt;
* Settings '8N1' (short hand for 8 bits, no parity, 1 stop bit)&lt;br /&gt;
* Turn off hardware and software flow control&lt;br /&gt;
&lt;br /&gt;
Reboot the device, and it will let you drop into a command line. You will then have to figure out how to enable the network from the boot loader (Uboot or Redboot) and transfer the firmware to the device to flash it.&lt;br /&gt;
&lt;br /&gt;
==== Interupting Boot ====&lt;br /&gt;
&lt;br /&gt;
The device will not detect the key you press unless Minicom is configured properly.&lt;br /&gt;
&lt;br /&gt;
* To access the Help screen, Press CTRL-A, then press Z.&lt;br /&gt;
* To access the configuration/settings, press CTRL-A, then press O.&lt;br /&gt;
&lt;br /&gt;
From the configuration window, select to view the 'Serial port setup'&lt;br /&gt;
&lt;br /&gt;
  $ sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
  Welcome to minicom 2.7&lt;br /&gt;
  &lt;br /&gt;
  OPTIONS: I18n &lt;br /&gt;
  Compiled on Jan  1 2014, 17:13:19.&lt;br /&gt;
  Port /dev/ttyUSB0, 21:47:56&lt;br /&gt;
  &lt;br /&gt;
  Press CTRL-A Z for help on special keys&lt;br /&gt;
  &lt;br /&gt;
              +-----[configuration]------+&lt;br /&gt;
              | Filenames and paths      |&lt;br /&gt;
              | File transfer protocols  |&lt;br /&gt;
              | Serial port setup        |&lt;br /&gt;
              | Modem and dialing        |&lt;br /&gt;
              | Screen and keyboard      |&lt;br /&gt;
              | Save setup as dfl        |&lt;br /&gt;
              | Save setup as..          |&lt;br /&gt;
              | Exit                     |&lt;br /&gt;
              +--------------------------+&lt;br /&gt;
  &lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
  | A -    Serial Device      : /dev/ttyUSB0                              |&lt;br /&gt;
  | B - Lockfile Location     : /var/lock                                 |&lt;br /&gt;
  | C -   Callin Program      :                                           |&lt;br /&gt;
  | D -  Callout Program      :                                           |&lt;br /&gt;
  | E -    Bps/Par/Bits       : 115200 8N1                                |&lt;br /&gt;
  | F - Hardware Flow Control : Yes                                       |&lt;br /&gt;
  | G - Software Flow Control : No                                        |&lt;br /&gt;
  |                                                                       |&lt;br /&gt;
  |    Change which setting?                                              |&lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
&lt;br /&gt;
By default the Hardware Flow Control will be enabled. Press 'F' to disable Hardware Flow Control. Press ENTER to exit the Serial port setup window, and then select EXIT to go back to the program.&lt;br /&gt;
&lt;br /&gt;
At this point plug in the Ethernet cable to the 'Main' Ethernet port, with the other end connected to the 'POE' port on the Power Over Ethernet adapter that came with the device. As the device boots up, you'll see output similar to the following.&lt;br /&gt;
&lt;br /&gt;
You'll need to make sure to press a key before it boots the default image.&lt;br /&gt;
&lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ar7240&amp;gt; &lt;br /&gt;
&lt;br /&gt;
This will cause the [https://wiki.openwrt.org/doc/techref/bootloader/uboot U-Boot] bootloader to drop into a command line.&lt;br /&gt;
&lt;br /&gt;
==== Transfering file to U-Boot over Serial ====&lt;br /&gt;
&lt;br /&gt;
U-Boot supports two protocols for transfering files: kermit or y-modem. Minicom does not support the kermit protocol, however it does support the y-modem protocol.&lt;/div&gt;</summary>
		<author><name>Redconfetti</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=File:Ubiquity-NSM5-serial-connectors.jpg&amp;diff=10149</id>
		<title>File:Ubiquity-NSM5-serial-connectors.jpg</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=File:Ubiquity-NSM5-serial-connectors.jpg&amp;diff=10149"/>
		<updated>2016-05-07T05:37:03Z</updated>

		<summary type="html">&lt;p&gt;Redconfetti: Ubiquiti Nanostation NSM5 - Serial pins with connections&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ubiquiti Nanostation NSM5 - Serial pins with connections&lt;/div&gt;</summary>
		<author><name>Redconfetti</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=File:CP2102-usb-to-serial-converter.jpg&amp;diff=10148</id>
		<title>File:CP2102-usb-to-serial-converter.jpg</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=File:CP2102-usb-to-serial-converter.jpg&amp;diff=10148"/>
		<updated>2016-05-07T05:33:38Z</updated>

		<summary type="html">&lt;p&gt;Redconfetti: KEDSUMÂ® CP2102 Module STC Download Cable USB 2.0 to TTL 6PIN Serial Converter For STC&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KEDSUMÂ® CP2102 Module STC Download Cable USB 2.0 to TTL 6PIN Serial Converter For STC&lt;/div&gt;</summary>
		<author><name>Redconfetti</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10147</id>
		<title>Mesh/Flashing extender nodes</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10147"/>
		<updated>2016-05-07T05:27:26Z</updated>

		<summary type="html">&lt;p&gt;Redconfetti: /* Nanostation M5 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Download the Image File For a Extender Node ==&lt;br /&gt;
&lt;br /&gt;
The extender nodes that we currently support are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Model No. !! OpenWRT Doc !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M5 || NSM5 || [https://wiki.openwrt.org/toh/ubiquiti/nanostationm5 OpenWRT Docs] || firmware: [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin pre 2015] or [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin 2015-2016]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M2 || NSM2 || [https://wiki.openwrt.org/toh/ubiquiti/nanostationm2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-om2p-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation 2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostation2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ath25.extender-node/openwrt-ath25-ubnt2-pico2-squashfs.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation M2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostationm2 OpenWRT Docs] || &lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobeam M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/nanobeam OpenWRT Docs] || &lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Bullet M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/bullet OpenWRT Docs] || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Flash the Extender Node ==&lt;br /&gt;
&lt;br /&gt;
* Configure your wired internet settings to use Manual IPv4 settings with IP: 192.168.1.10, subnet: 255.255.255.0, gateway: 0.0.0.0&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Plug another Ethernet cable into your antenna on one end and into the &amp;quot;POE&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Push a pin into the reset hole and hold it.&lt;br /&gt;
* With the pin held down, plug in the power to the power-over-ethernet power supply.&lt;br /&gt;
* Watch the lights on the antenna - they will all flash together a few times, then they will flash up and down.&lt;br /&gt;
* Once the lights on the antenna are flashing up and down, you can let go of the pin.&lt;br /&gt;
&lt;br /&gt;
You should be able to ping the extender at 192.168.1.20.&lt;br /&gt;
&lt;br /&gt;
  $ ping 192.168.1.20&lt;br /&gt;
  PING 192.168.1.20 (192.168.1.20) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=1 ttl=64 time=1.54 ms&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=2 ttl=64 time=0.826 ms&lt;br /&gt;
&lt;br /&gt;
In your Linux terminal, type:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/ubi-flasher&lt;br /&gt;
  cd ubi-flasher&lt;br /&gt;
  npm install&lt;br /&gt;
  ./flasher.js '&amp;lt;path to firmware&amp;gt;'&lt;br /&gt;
&lt;br /&gt;
The terminal will tell you &amp;quot;The firmware has been successfully sent to the router. In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up). This means that the router is flashing itself with the new firmware. Once the router goes back to having only the power LED lit, the router has been successfully flashed.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Wait until the antenna has only the power LED lit and you're done.&lt;br /&gt;
&lt;br /&gt;
== Nanostation M5 ==&lt;br /&gt;
&lt;br /&gt;
=== Firmware check failure ===&lt;br /&gt;
&lt;br /&gt;
If you attempt to flash the extender and receive a 'Firmware check failed' error, then you have a version of the NSM5 that is protected from being flashed via the TFTP method. You will need to obtain a serial to USB interface (USB to UART TTL Module Serial Converter, 5 pin) and use it to flash the firmware.&lt;br /&gt;
&lt;br /&gt;
   $ ./flasher.js openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin&lt;br /&gt;
   Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
   Connection timed out&lt;br /&gt;
   Sending openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
   [Error: (Server) Firmware check failed]&lt;br /&gt;
&lt;br /&gt;
==== TFTP Serial Output ====&lt;br /&gt;
&lt;br /&gt;
When booting with the reset button held down on a Ubiquity NSM5, the following output is displayed.&lt;br /&gt;
&lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)                                                                                       &lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB                                                                                                                     &lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)                                                                                                  &lt;br /&gt;
  Net:   AR8236                                                                                                                    &lt;br /&gt;
  eth0, eth1                                                                                                                       &lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)                                                                     &lt;br /&gt;
  Radio: 0777:e855                                                                                                                 &lt;br /&gt;
  Reset: Normal                                                                                                                    &lt;br /&gt;
  Hit any key to stop autoboot:  0                                                                                                 &lt;br /&gt;
  Setting default IP 192.168.1.20                                                                                                  &lt;br /&gt;
  Starting TFTP server...                                                                                                          &lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000                                                                                   &lt;br /&gt;
  Will reset device configuration (Reset button active after 10 seconds).                                                          &lt;br /&gt;
  Erasing sector 123..126                                                                                                          &lt;br /&gt;
  &lt;br /&gt;
  First 0x7b last 0x7e sector size 0x10000                                                                                         &lt;br /&gt;
  .... done&lt;br /&gt;
  Waiting for connection: \                                                                                                        &lt;br /&gt;
  Receiving file from 192.168.1.10:49763                                                                                           &lt;br /&gt;
  Received 4325788 bytes                                                                                                           &lt;br /&gt;
  Firmware check failed! (1)&lt;br /&gt;
&lt;br /&gt;
=== USB to Serial Connection ===&lt;br /&gt;
&lt;br /&gt;
The following notes describe steps to interface with a Nanostation M5 (NSM5) via the serial interface. This may be necessary to manually load firmware onto the device if the web interface or TFTP methods of flashing the firmware become unavailable due to [http://www.networkworld.com/article/3038722/mobile-wireless/manufacturers-start-to-lock-down-wi-fi-router-firmware-thanks-fcc.html manufacturers disabling these methods] of firmware flashing.&lt;br /&gt;
&lt;br /&gt;
==== Order a USB to Serial Converter ====&lt;br /&gt;
&lt;br /&gt;
USB to serial converter devices exist at a cost of $4 - $8 online, with much lower pricing and longer delivery times if ordered from China. Search for &amp;quot;USB to UART TTL&amp;quot;, including &amp;quot;5 pin&amp;quot; in the search. Make sure the specifications do not mention anything other than 3.3 volts.&lt;br /&gt;
&lt;br /&gt;
==== Connecting to Serial ====&lt;br /&gt;
&lt;br /&gt;
You will need to connect the following pins from the converter to the pins on the device.&lt;br /&gt;
&lt;br /&gt;
* Ground (GND)&lt;br /&gt;
* Serial Out (Transmit / TX)&lt;br /&gt;
* Serial In (Receive / RX)&lt;br /&gt;
&lt;br /&gt;
Begin by connecting the Ground of the converter to the Ground of the device. Next connect the Transmit/TX of the converter to the Receive/RX of the device, then connect the Receive/RX of the converter to the Transmit/TX of the device.&lt;br /&gt;
&lt;br /&gt;
==== Serial Communications Program ====&lt;br /&gt;
&lt;br /&gt;
You need to install a serial communication program. Linux users can use Minicom.&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get install minicom&lt;br /&gt;
&lt;br /&gt;
By default the Minicom program will attempt to use /dev/tty8, and will also attempt to initialize the device (expecting a modem) by default.&lt;br /&gt;
&lt;br /&gt;
  $ minicom&lt;br /&gt;
  minicom: cannot open /dev/tty8: Permission denied&lt;br /&gt;
&lt;br /&gt;
Run the program so that it starts the program on the USB converter that is connected by adding `-D /dev/ttyUSB0`, and specify that it should skip initialization by adding `-o`.&lt;br /&gt;
&lt;br /&gt;
You can also specify from the command line that it use the baud rate and '8N1' settings specified below by including `-b 115200 -8`. &lt;br /&gt;
&lt;br /&gt;
  sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
&lt;br /&gt;
In Minicom, CTRL-A to get settings, then Press O, to access settings&lt;br /&gt;
&lt;br /&gt;
Go to Serial Port Setup, use these settings:&lt;br /&gt;
&lt;br /&gt;
* Set the serial device (should be /dev/tty/USB0)&lt;br /&gt;
* Baud Rate (Bits Per Second): 115200&lt;br /&gt;
* Settings '8N1' (short hand for 8 bits, no parity, 1 stop bit)&lt;br /&gt;
* Turn off hardware and software flow control&lt;br /&gt;
&lt;br /&gt;
Reboot the device, and it will let you drop into a command line. You will then have to figure out how to enable the network from the boot loader (Uboot or Redboot) and transfer the firmware to the device to flash it.&lt;br /&gt;
&lt;br /&gt;
==== Interupting Boot ====&lt;br /&gt;
&lt;br /&gt;
The device will not detect the key you press unless Minicom is configured properly.&lt;br /&gt;
&lt;br /&gt;
* To access the Help screen, Press CTRL-A, then press Z.&lt;br /&gt;
* To access the configuration/settings, press CTRL-A, then press O.&lt;br /&gt;
&lt;br /&gt;
From the configuration window, select to view the 'Serial port setup'&lt;br /&gt;
&lt;br /&gt;
  $ sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
  Welcome to minicom 2.7&lt;br /&gt;
  &lt;br /&gt;
  OPTIONS: I18n &lt;br /&gt;
  Compiled on Jan  1 2014, 17:13:19.&lt;br /&gt;
  Port /dev/ttyUSB0, 21:47:56&lt;br /&gt;
  &lt;br /&gt;
  Press CTRL-A Z for help on special keys&lt;br /&gt;
  &lt;br /&gt;
              +-----[configuration]------+&lt;br /&gt;
              | Filenames and paths      |&lt;br /&gt;
              | File transfer protocols  |&lt;br /&gt;
              | Serial port setup        |&lt;br /&gt;
              | Modem and dialing        |&lt;br /&gt;
              | Screen and keyboard      |&lt;br /&gt;
              | Save setup as dfl        |&lt;br /&gt;
              | Save setup as..          |&lt;br /&gt;
              | Exit                     |&lt;br /&gt;
              +--------------------------+&lt;br /&gt;
  &lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
  | A -    Serial Device      : /dev/ttyUSB0                              |&lt;br /&gt;
  | B - Lockfile Location     : /var/lock                                 |&lt;br /&gt;
  | C -   Callin Program      :                                           |&lt;br /&gt;
  | D -  Callout Program      :                                           |&lt;br /&gt;
  | E -    Bps/Par/Bits       : 115200 8N1                                |&lt;br /&gt;
  | F - Hardware Flow Control : Yes                                       |&lt;br /&gt;
  | G - Software Flow Control : No                                        |&lt;br /&gt;
  |                                                                       |&lt;br /&gt;
  |    Change which setting?                                              |&lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
&lt;br /&gt;
By default the Hardware Flow Control will be enabled. Press 'F' to disable Hardware Flow Control. Press ENTER to exit the Serial port setup window, and then select EXIT to go back to the program.&lt;br /&gt;
&lt;br /&gt;
At this point plug in the Ethernet cable to the 'Main' Ethernet port, with the other end connected to the 'POE' port on the Power Over Ethernet adapter that came with the device. As the device boots up, you'll see output similar to the following.&lt;br /&gt;
&lt;br /&gt;
You'll need to make sure to press a key before it boots the default image.&lt;br /&gt;
&lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ar7240&amp;gt; &lt;br /&gt;
&lt;br /&gt;
This will cause the [https://wiki.openwrt.org/doc/techref/bootloader/uboot U-Boot] bootloader to drop into a command line.&lt;br /&gt;
&lt;br /&gt;
==== Transfering file to U-Boot over Serial ====&lt;br /&gt;
&lt;br /&gt;
U-Boot supports two protocols for transfering files: kermit or y-modem. Minicom does not support the kermit protocol, however it does support the y-modem protocol.&lt;/div&gt;</summary>
		<author><name>Redconfetti</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10146</id>
		<title>Mesh/Flashing extender nodes</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10146"/>
		<updated>2016-05-07T05:26:27Z</updated>

		<summary type="html">&lt;p&gt;Redconfetti: /* TFTP Serial Output */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Download the Image File For a Extender Node ==&lt;br /&gt;
&lt;br /&gt;
The extender nodes that we currently support are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Model No. !! OpenWRT Doc !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M5 || NSM5 || [https://wiki.openwrt.org/toh/ubiquiti/nanostationm5 OpenWRT Docs] || firmware: [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin pre 2015] or [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin 2015-2016]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M2 || NSM2 || [https://wiki.openwrt.org/toh/ubiquiti/nanostationm2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-om2p-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation 2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostation2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ath25.extender-node/openwrt-ath25-ubnt2-pico2-squashfs.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation M2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostationm2 OpenWRT Docs] || &lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobeam M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/nanobeam OpenWRT Docs] || &lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Bullet M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/bullet OpenWRT Docs] || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Flash the Extender Node ==&lt;br /&gt;
&lt;br /&gt;
* Configure your wired internet settings to use Manual IPv4 settings with IP: 192.168.1.10, subnet: 255.255.255.0, gateway: 0.0.0.0&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Plug another Ethernet cable into your antenna on one end and into the &amp;quot;POE&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Push a pin into the reset hole and hold it.&lt;br /&gt;
* With the pin held down, plug in the power to the power-over-ethernet power supply.&lt;br /&gt;
* Watch the lights on the antenna - they will all flash together a few times, then they will flash up and down.&lt;br /&gt;
* Once the lights on the antenna are flashing up and down, you can let go of the pin.&lt;br /&gt;
&lt;br /&gt;
You should be able to ping the extender at 192.168.1.20.&lt;br /&gt;
&lt;br /&gt;
  $ ping 192.168.1.20&lt;br /&gt;
  PING 192.168.1.20 (192.168.1.20) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=1 ttl=64 time=1.54 ms&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=2 ttl=64 time=0.826 ms&lt;br /&gt;
&lt;br /&gt;
In your Linux terminal, type:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/ubi-flasher&lt;br /&gt;
  cd ubi-flasher&lt;br /&gt;
  npm install&lt;br /&gt;
  ./flasher.js '&amp;lt;path to firmware&amp;gt;'&lt;br /&gt;
&lt;br /&gt;
The terminal will tell you &amp;quot;The firmware has been successfully sent to the router. In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up). This means that the router is flashing itself with the new firmware. Once the router goes back to having only the power LED lit, the router has been successfully flashed.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Wait until the antenna has only the power LED lit and you're done.&lt;br /&gt;
&lt;br /&gt;
== Nanostation M5 ==&lt;br /&gt;
&lt;br /&gt;
If you attempt to flash the extender and receive a 'Firmware check failed' error, then you have a version of the NSM5 that is protected from being flashed via the TFTP method. You will need to obtain a serial to USB interface (USB to UART TTL Module Serial Converter, 5 pin) and use it to flash the firmware.&lt;br /&gt;
&lt;br /&gt;
   $ ./flasher.js openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin&lt;br /&gt;
   Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
   Connection timed out&lt;br /&gt;
   Sending openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
   [Error: (Server) Firmware check failed]&lt;br /&gt;
&lt;br /&gt;
=== USB to Serial Connection ===&lt;br /&gt;
&lt;br /&gt;
The following notes describe steps to interface with a Nanostation M5 (NSM5) via the serial interface. This may be necessary to manually load firmware onto the device if the web interface or TFTP methods of flashing the firmware become unavailable due to [http://www.networkworld.com/article/3038722/mobile-wireless/manufacturers-start-to-lock-down-wi-fi-router-firmware-thanks-fcc.html manufacturers disabling these methods] of firmware flashing.&lt;br /&gt;
&lt;br /&gt;
==== Order a USB to Serial Converter ====&lt;br /&gt;
&lt;br /&gt;
USB to serial converter devices exist at a cost of $4 - $8 online, with much lower pricing and longer delivery times if ordered from China. Search for &amp;quot;USB to UART TTL&amp;quot;, including &amp;quot;5 pin&amp;quot; in the search. Make sure the specifications do not mention anything other than 3.3 volts.&lt;br /&gt;
&lt;br /&gt;
==== Connecting to Serial ====&lt;br /&gt;
&lt;br /&gt;
You will need to connect the following pins from the converter to the pins on the device.&lt;br /&gt;
&lt;br /&gt;
* Ground (GND)&lt;br /&gt;
* Serial Out (Transmit / TX)&lt;br /&gt;
* Serial In (Receive / RX)&lt;br /&gt;
&lt;br /&gt;
Begin by connecting the Ground of the converter to the Ground of the device. Next connect the Transmit/TX of the converter to the Receive/RX of the device, then connect the Receive/RX of the converter to the Transmit/TX of the device.&lt;br /&gt;
&lt;br /&gt;
==== Serial Communications Program ====&lt;br /&gt;
&lt;br /&gt;
You need to install a serial communication program. Linux users can use Minicom.&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get install minicom&lt;br /&gt;
&lt;br /&gt;
By default the Minicom program will attempt to use /dev/tty8, and will also attempt to initialize the device (expecting a modem) by default.&lt;br /&gt;
&lt;br /&gt;
  $ minicom&lt;br /&gt;
  minicom: cannot open /dev/tty8: Permission denied&lt;br /&gt;
&lt;br /&gt;
Run the program so that it starts the program on the USB converter that is connected by adding `-D /dev/ttyUSB0`, and specify that it should skip initialization by adding `-o`.&lt;br /&gt;
&lt;br /&gt;
You can also specify from the command line that it use the baud rate and '8N1' settings specified below by including `-b 115200 -8`. &lt;br /&gt;
&lt;br /&gt;
  sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
&lt;br /&gt;
In Minicom, CTRL-A to get settings, then Press O, to access settings&lt;br /&gt;
&lt;br /&gt;
Go to Serial Port Setup, use these settings:&lt;br /&gt;
&lt;br /&gt;
* Set the serial device (should be /dev/tty/USB0)&lt;br /&gt;
* Baud Rate (Bits Per Second): 115200&lt;br /&gt;
* Settings '8N1' (short hand for 8 bits, no parity, 1 stop bit)&lt;br /&gt;
* Turn off hardware and software flow control&lt;br /&gt;
&lt;br /&gt;
Reboot the device, and it will let you drop into a command line. You will then have to figure out how to enable the network from the boot loader (Uboot or Redboot) and transfer the firmware to the device to flash it.&lt;br /&gt;
&lt;br /&gt;
==== Interupting Boot ====&lt;br /&gt;
&lt;br /&gt;
The device will not detect the key you press unless Minicom is configured properly.&lt;br /&gt;
&lt;br /&gt;
* To access the Help screen, Press CTRL-A, then press Z.&lt;br /&gt;
* To access the configuration/settings, press CTRL-A, then press O.&lt;br /&gt;
&lt;br /&gt;
From the configuration window, select to view the 'Serial port setup'&lt;br /&gt;
&lt;br /&gt;
  $ sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
  Welcome to minicom 2.7&lt;br /&gt;
  &lt;br /&gt;
  OPTIONS: I18n &lt;br /&gt;
  Compiled on Jan  1 2014, 17:13:19.&lt;br /&gt;
  Port /dev/ttyUSB0, 21:47:56&lt;br /&gt;
  &lt;br /&gt;
  Press CTRL-A Z for help on special keys&lt;br /&gt;
  &lt;br /&gt;
              +-----[configuration]------+&lt;br /&gt;
              | Filenames and paths      |&lt;br /&gt;
              | File transfer protocols  |&lt;br /&gt;
              | Serial port setup        |&lt;br /&gt;
              | Modem and dialing        |&lt;br /&gt;
              | Screen and keyboard      |&lt;br /&gt;
              | Save setup as dfl        |&lt;br /&gt;
              | Save setup as..          |&lt;br /&gt;
              | Exit                     |&lt;br /&gt;
              +--------------------------+&lt;br /&gt;
  &lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
  | A -    Serial Device      : /dev/ttyUSB0                              |&lt;br /&gt;
  | B - Lockfile Location     : /var/lock                                 |&lt;br /&gt;
  | C -   Callin Program      :                                           |&lt;br /&gt;
  | D -  Callout Program      :                                           |&lt;br /&gt;
  | E -    Bps/Par/Bits       : 115200 8N1                                |&lt;br /&gt;
  | F - Hardware Flow Control : Yes                                       |&lt;br /&gt;
  | G - Software Flow Control : No                                        |&lt;br /&gt;
  |                                                                       |&lt;br /&gt;
  |    Change which setting?                                              |&lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
&lt;br /&gt;
By default the Hardware Flow Control will be enabled. Press 'F' to disable Hardware Flow Control. Press ENTER to exit the Serial port setup window, and then select EXIT to go back to the program.&lt;br /&gt;
&lt;br /&gt;
At this point plug in the Ethernet cable to the 'Main' Ethernet port, with the other end connected to the 'POE' port on the Power Over Ethernet adapter that came with the device. As the device boots up, you'll see output similar to the following.&lt;br /&gt;
&lt;br /&gt;
You'll need to make sure to press a key before it boots the default image.&lt;br /&gt;
&lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ar7240&amp;gt; &lt;br /&gt;
&lt;br /&gt;
This will cause the [https://wiki.openwrt.org/doc/techref/bootloader/uboot U-Boot] bootloader to drop into a command line.&lt;br /&gt;
&lt;br /&gt;
==== Transfering file to U-Boot over Serial ====&lt;br /&gt;
&lt;br /&gt;
U-Boot supports two protocols for transfering files: kermit or y-modem. Minicom does not support the kermit protocol, however it does support the y-modem protocol.&lt;/div&gt;</summary>
		<author><name>Redconfetti</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10145</id>
		<title>Mesh/Flashing extender nodes</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10145"/>
		<updated>2016-05-07T05:21:31Z</updated>

		<summary type="html">&lt;p&gt;Redconfetti: /* Interupting Boot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Download the Image File For a Extender Node ==&lt;br /&gt;
&lt;br /&gt;
The extender nodes that we currently support are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Model No. !! OpenWRT Doc !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M5 || NSM5 || [https://wiki.openwrt.org/toh/ubiquiti/nanostationm5 OpenWRT Docs] || firmware: [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin pre 2015] or [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin 2015-2016]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M2 || NSM2 || [https://wiki.openwrt.org/toh/ubiquiti/nanostationm2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-om2p-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation 2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostation2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ath25.extender-node/openwrt-ath25-ubnt2-pico2-squashfs.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation M2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostationm2 OpenWRT Docs] || &lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobeam M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/nanobeam OpenWRT Docs] || &lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Bullet M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/bullet OpenWRT Docs] || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Flash the Extender Node ==&lt;br /&gt;
&lt;br /&gt;
* Configure your wired internet settings to use Manual IPv4 settings with IP: 192.168.1.10, subnet: 255.255.255.0, gateway: 0.0.0.0&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Plug another Ethernet cable into your antenna on one end and into the &amp;quot;POE&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Push a pin into the reset hole and hold it.&lt;br /&gt;
* With the pin held down, plug in the power to the power-over-ethernet power supply.&lt;br /&gt;
* Watch the lights on the antenna - they will all flash together a few times, then they will flash up and down.&lt;br /&gt;
* Once the lights on the antenna are flashing up and down, you can let go of the pin.&lt;br /&gt;
&lt;br /&gt;
You should be able to ping the extender at 192.168.1.20.&lt;br /&gt;
&lt;br /&gt;
  $ ping 192.168.1.20&lt;br /&gt;
  PING 192.168.1.20 (192.168.1.20) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=1 ttl=64 time=1.54 ms&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=2 ttl=64 time=0.826 ms&lt;br /&gt;
&lt;br /&gt;
In your Linux terminal, type:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/ubi-flasher&lt;br /&gt;
  cd ubi-flasher&lt;br /&gt;
  npm install&lt;br /&gt;
  ./flasher.js '&amp;lt;path to firmware&amp;gt;'&lt;br /&gt;
&lt;br /&gt;
The terminal will tell you &amp;quot;The firmware has been successfully sent to the router. In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up). This means that the router is flashing itself with the new firmware. Once the router goes back to having only the power LED lit, the router has been successfully flashed.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Wait until the antenna has only the power LED lit and you're done.&lt;br /&gt;
&lt;br /&gt;
== Nanostation M5 ==&lt;br /&gt;
&lt;br /&gt;
If you attempt to flash the extender and receive a 'Firmware check failed' error, then you have a version of the NSM5 that is protected from being flashed via the TFTP method. You will need to obtain a serial to USB interface (USB to UART TTL Module Serial Converter, 5 pin) and use it to flash the firmware.&lt;br /&gt;
&lt;br /&gt;
   $ ./flasher.js openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin&lt;br /&gt;
   Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
   Connection timed out&lt;br /&gt;
   Sending openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
   [Error: (Server) Firmware check failed]&lt;br /&gt;
&lt;br /&gt;
=== USB to Serial Connection ===&lt;br /&gt;
&lt;br /&gt;
The following notes describe steps to interface with a Nanostation M5 (NSM5) via the serial interface. This may be necessary to manually load firmware onto the device if the web interface or TFTP methods of flashing the firmware become unavailable due to [http://www.networkworld.com/article/3038722/mobile-wireless/manufacturers-start-to-lock-down-wi-fi-router-firmware-thanks-fcc.html manufacturers disabling these methods] of firmware flashing.&lt;br /&gt;
&lt;br /&gt;
==== Order a USB to Serial Converter ====&lt;br /&gt;
&lt;br /&gt;
USB to serial converter devices exist at a cost of $4 - $8 online, with much lower pricing and longer delivery times if ordered from China. Search for &amp;quot;USB to UART TTL&amp;quot;, including &amp;quot;5 pin&amp;quot; in the search. Make sure the specifications do not mention anything other than 3.3 volts.&lt;br /&gt;
&lt;br /&gt;
==== Connecting to Serial ====&lt;br /&gt;
&lt;br /&gt;
You will need to connect the following pins from the converter to the pins on the device.&lt;br /&gt;
&lt;br /&gt;
* Ground (GND)&lt;br /&gt;
* Serial Out (Transmit / TX)&lt;br /&gt;
* Serial In (Receive / RX)&lt;br /&gt;
&lt;br /&gt;
Begin by connecting the Ground of the converter to the Ground of the device. Next connect the Transmit/TX of the converter to the Receive/RX of the device, then connect the Receive/RX of the converter to the Transmit/TX of the device.&lt;br /&gt;
&lt;br /&gt;
==== Serial Communications Program ====&lt;br /&gt;
&lt;br /&gt;
You need to install a serial communication program. Linux users can use Minicom.&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get install minicom&lt;br /&gt;
&lt;br /&gt;
By default the Minicom program will attempt to use /dev/tty8, and will also attempt to initialize the device (expecting a modem) by default.&lt;br /&gt;
&lt;br /&gt;
  $ minicom&lt;br /&gt;
  minicom: cannot open /dev/tty8: Permission denied&lt;br /&gt;
&lt;br /&gt;
Run the program so that it starts the program on the USB converter that is connected by adding `-D /dev/ttyUSB0`, and specify that it should skip initialization by adding `-o`.&lt;br /&gt;
&lt;br /&gt;
You can also specify from the command line that it use the baud rate and '8N1' settings specified below by including `-b 115200 -8`. &lt;br /&gt;
&lt;br /&gt;
  sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
&lt;br /&gt;
In Minicom, CTRL-A to get settings, then Press O, to access settings&lt;br /&gt;
&lt;br /&gt;
Go to Serial Port Setup, use these settings:&lt;br /&gt;
&lt;br /&gt;
* Set the serial device (should be /dev/tty/USB0)&lt;br /&gt;
* Baud Rate (Bits Per Second): 115200&lt;br /&gt;
* Settings '8N1' (short hand for 8 bits, no parity, 1 stop bit)&lt;br /&gt;
* Turn off hardware and software flow control&lt;br /&gt;
&lt;br /&gt;
Reboot the device, and it will let you drop into a command line. You will then have to figure out how to enable the network from the boot loader (Uboot or Redboot) and transfer the firmware to the device to flash it.&lt;br /&gt;
&lt;br /&gt;
==== Interupting Boot ====&lt;br /&gt;
&lt;br /&gt;
The device will not detect the key you press unless Minicom is configured properly.&lt;br /&gt;
&lt;br /&gt;
* To access the Help screen, Press CTRL-A, then press Z.&lt;br /&gt;
* To access the configuration/settings, press CTRL-A, then press O.&lt;br /&gt;
&lt;br /&gt;
From the configuration window, select to view the 'Serial port setup'&lt;br /&gt;
&lt;br /&gt;
  $ sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
  Welcome to minicom 2.7&lt;br /&gt;
  &lt;br /&gt;
  OPTIONS: I18n &lt;br /&gt;
  Compiled on Jan  1 2014, 17:13:19.&lt;br /&gt;
  Port /dev/ttyUSB0, 21:47:56&lt;br /&gt;
  &lt;br /&gt;
  Press CTRL-A Z for help on special keys&lt;br /&gt;
  &lt;br /&gt;
              +-----[configuration]------+&lt;br /&gt;
              | Filenames and paths      |&lt;br /&gt;
              | File transfer protocols  |&lt;br /&gt;
              | Serial port setup        |&lt;br /&gt;
              | Modem and dialing        |&lt;br /&gt;
              | Screen and keyboard      |&lt;br /&gt;
              | Save setup as dfl        |&lt;br /&gt;
              | Save setup as..          |&lt;br /&gt;
              | Exit                     |&lt;br /&gt;
              +--------------------------+&lt;br /&gt;
  &lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
  | A -    Serial Device      : /dev/ttyUSB0                              |&lt;br /&gt;
  | B - Lockfile Location     : /var/lock                                 |&lt;br /&gt;
  | C -   Callin Program      :                                           |&lt;br /&gt;
  | D -  Callout Program      :                                           |&lt;br /&gt;
  | E -    Bps/Par/Bits       : 115200 8N1                                |&lt;br /&gt;
  | F - Hardware Flow Control : Yes                                       |&lt;br /&gt;
  | G - Software Flow Control : No                                        |&lt;br /&gt;
  |                                                                       |&lt;br /&gt;
  |    Change which setting?                                              |&lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
&lt;br /&gt;
By default the Hardware Flow Control will be enabled. Press 'F' to disable Hardware Flow Control. Press ENTER to exit the Serial port setup window, and then select EXIT to go back to the program.&lt;br /&gt;
&lt;br /&gt;
At this point plug in the Ethernet cable to the 'Main' Ethernet port, with the other end connected to the 'POE' port on the Power Over Ethernet adapter that came with the device. As the device boots up, you'll see output similar to the following.&lt;br /&gt;
&lt;br /&gt;
You'll need to make sure to press a key before it boots the default image.&lt;br /&gt;
&lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ar7240&amp;gt; &lt;br /&gt;
&lt;br /&gt;
This will cause the [https://wiki.openwrt.org/doc/techref/bootloader/uboot U-Boot] bootloader to drop into a command line.&lt;br /&gt;
&lt;br /&gt;
==== TFTP Serial Output ====&lt;br /&gt;
&lt;br /&gt;
When booting with the reset button held down on a Ubiquity NSM5, the following output is displayed.&lt;br /&gt;
&lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)                                                                                       &lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB                                                                                                                     &lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)                                                                                                  &lt;br /&gt;
  Net:   AR8236                                                                                                                    &lt;br /&gt;
  eth0, eth1                                                                                                                       &lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)                                                                     &lt;br /&gt;
  Radio: 0777:e855                                                                                                                 &lt;br /&gt;
  Reset: Normal                                                                                                                    &lt;br /&gt;
  Hit any key to stop autoboot:  0                                                                                                 &lt;br /&gt;
  Setting default IP 192.168.1.20                                                                                                  &lt;br /&gt;
  Starting TFTP server...                                                                                                          &lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000                                                                                   &lt;br /&gt;
  Will reset device configuration (Reset button active after 10 seconds).                                                          &lt;br /&gt;
  Erasing sector 123..126                                                                                                          &lt;br /&gt;
  &lt;br /&gt;
  First 0x7b last 0x7e sector size 0x10000                                                                                         &lt;br /&gt;
  .... done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Transfering file to U-Boot over Serial ====&lt;br /&gt;
&lt;br /&gt;
U-Boot supports two protocols for transfering files: kermit or y-modem. Minicom does not support the kermit protocol, however it does support the y-modem protocol.&lt;/div&gt;</summary>
		<author><name>Redconfetti</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10144</id>
		<title>Mesh/Flashing extender nodes</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10144"/>
		<updated>2016-05-07T05:00:49Z</updated>

		<summary type="html">&lt;p&gt;Redconfetti: /* Interupting Boot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Download the Image File For a Extender Node ==&lt;br /&gt;
&lt;br /&gt;
The extender nodes that we currently support are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Model No. !! OpenWRT Doc !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M5 || NSM5 || [https://wiki.openwrt.org/toh/ubiquiti/nanostationm5 OpenWRT Docs] || firmware: [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin pre 2015] or [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin 2015-2016]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M2 || NSM2 || [https://wiki.openwrt.org/toh/ubiquiti/nanostationm2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-om2p-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation 2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostation2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ath25.extender-node/openwrt-ath25-ubnt2-pico2-squashfs.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation M2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostationm2 OpenWRT Docs] || &lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobeam M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/nanobeam OpenWRT Docs] || &lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Bullet M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/bullet OpenWRT Docs] || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Flash the Extender Node ==&lt;br /&gt;
&lt;br /&gt;
* Configure your wired internet settings to use Manual IPv4 settings with IP: 192.168.1.10, subnet: 255.255.255.0, gateway: 0.0.0.0&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Plug another Ethernet cable into your antenna on one end and into the &amp;quot;POE&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Push a pin into the reset hole and hold it.&lt;br /&gt;
* With the pin held down, plug in the power to the power-over-ethernet power supply.&lt;br /&gt;
* Watch the lights on the antenna - they will all flash together a few times, then they will flash up and down.&lt;br /&gt;
* Once the lights on the antenna are flashing up and down, you can let go of the pin.&lt;br /&gt;
&lt;br /&gt;
You should be able to ping the extender at 192.168.1.20.&lt;br /&gt;
&lt;br /&gt;
  $ ping 192.168.1.20&lt;br /&gt;
  PING 192.168.1.20 (192.168.1.20) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=1 ttl=64 time=1.54 ms&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=2 ttl=64 time=0.826 ms&lt;br /&gt;
&lt;br /&gt;
In your Linux terminal, type:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/ubi-flasher&lt;br /&gt;
  cd ubi-flasher&lt;br /&gt;
  npm install&lt;br /&gt;
  ./flasher.js '&amp;lt;path to firmware&amp;gt;'&lt;br /&gt;
&lt;br /&gt;
The terminal will tell you &amp;quot;The firmware has been successfully sent to the router. In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up). This means that the router is flashing itself with the new firmware. Once the router goes back to having only the power LED lit, the router has been successfully flashed.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Wait until the antenna has only the power LED lit and you're done.&lt;br /&gt;
&lt;br /&gt;
== Nanostation M5 ==&lt;br /&gt;
&lt;br /&gt;
If you attempt to flash the extender and receive a 'Firmware check failed' error, then you have a version of the NSM5 that is protected from being flashed via the TFTP method. You will need to obtain a serial to USB interface (USB to UART TTL Module Serial Converter, 5 pin) and use it to flash the firmware.&lt;br /&gt;
&lt;br /&gt;
   $ ./flasher.js openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin&lt;br /&gt;
   Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
   Connection timed out&lt;br /&gt;
   Sending openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
   [Error: (Server) Firmware check failed]&lt;br /&gt;
&lt;br /&gt;
=== USB to Serial Connection ===&lt;br /&gt;
&lt;br /&gt;
The following notes describe steps to interface with a Nanostation M5 (NSM5) via the serial interface. This may be necessary to manually load firmware onto the device if the web interface or TFTP methods of flashing the firmware become unavailable due to [http://www.networkworld.com/article/3038722/mobile-wireless/manufacturers-start-to-lock-down-wi-fi-router-firmware-thanks-fcc.html manufacturers disabling these methods] of firmware flashing.&lt;br /&gt;
&lt;br /&gt;
==== Order a USB to Serial Converter ====&lt;br /&gt;
&lt;br /&gt;
USB to serial converter devices exist at a cost of $4 - $8 online, with much lower pricing and longer delivery times if ordered from China. Search for &amp;quot;USB to UART TTL&amp;quot;, including &amp;quot;5 pin&amp;quot; in the search. Make sure the specifications do not mention anything other than 3.3 volts.&lt;br /&gt;
&lt;br /&gt;
==== Connecting to Serial ====&lt;br /&gt;
&lt;br /&gt;
You will need to connect the following pins from the converter to the pins on the device.&lt;br /&gt;
&lt;br /&gt;
* Ground (GND)&lt;br /&gt;
* Serial Out (Transmit / TX)&lt;br /&gt;
* Serial In (Receive / RX)&lt;br /&gt;
&lt;br /&gt;
Begin by connecting the Ground of the converter to the Ground of the device. Next connect the Transmit/TX of the converter to the Receive/RX of the device, then connect the Receive/RX of the converter to the Transmit/TX of the device.&lt;br /&gt;
&lt;br /&gt;
==== Serial Communications Program ====&lt;br /&gt;
&lt;br /&gt;
You need to install a serial communication program. Linux users can use Minicom.&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get install minicom&lt;br /&gt;
&lt;br /&gt;
By default the Minicom program will attempt to use /dev/tty8, and will also attempt to initialize the device (expecting a modem) by default.&lt;br /&gt;
&lt;br /&gt;
  $ minicom&lt;br /&gt;
  minicom: cannot open /dev/tty8: Permission denied&lt;br /&gt;
&lt;br /&gt;
Run the program so that it starts the program on the USB converter that is connected by adding `-D /dev/ttyUSB0`, and specify that it should skip initialization by adding `-o`.&lt;br /&gt;
&lt;br /&gt;
You can also specify from the command line that it use the baud rate and '8N1' settings specified below by including `-b 115200 -8`. &lt;br /&gt;
&lt;br /&gt;
  sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
&lt;br /&gt;
In Minicom, CTRL-A to get settings, then Press O, to access settings&lt;br /&gt;
&lt;br /&gt;
Go to Serial Port Setup, use these settings:&lt;br /&gt;
&lt;br /&gt;
* Set the serial device (should be /dev/tty/USB0)&lt;br /&gt;
* Baud Rate (Bits Per Second): 115200&lt;br /&gt;
* Settings '8N1' (short hand for 8 bits, no parity, 1 stop bit)&lt;br /&gt;
* Turn off hardware and software flow control&lt;br /&gt;
&lt;br /&gt;
Reboot the device, and it will let you drop into a command line. You will then have to figure out how to enable the network from the boot loader (Uboot or Redboot) and transfer the firmware to the device to flash it.&lt;br /&gt;
&lt;br /&gt;
==== Interupting Boot ====&lt;br /&gt;
&lt;br /&gt;
The device will not detect the key you press unless Minicom is configured properly.&lt;br /&gt;
&lt;br /&gt;
* To access the Help screen, Press CTRL-A, then press Z.&lt;br /&gt;
* To access the configuration/settings, press CTRL-A, then press O.&lt;br /&gt;
&lt;br /&gt;
From the configuration window, select to view the 'Serial port setup'&lt;br /&gt;
&lt;br /&gt;
  $ sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
  Welcome to minicom 2.7&lt;br /&gt;
  &lt;br /&gt;
  OPTIONS: I18n &lt;br /&gt;
  Compiled on Jan  1 2014, 17:13:19.&lt;br /&gt;
  Port /dev/ttyUSB0, 21:47:56&lt;br /&gt;
  &lt;br /&gt;
  Press CTRL-A Z for help on special keys&lt;br /&gt;
  &lt;br /&gt;
              +-----[configuration]------+&lt;br /&gt;
              | Filenames and paths      |&lt;br /&gt;
              | File transfer protocols  |&lt;br /&gt;
              | Serial port setup        |&lt;br /&gt;
              | Modem and dialing        |&lt;br /&gt;
              | Screen and keyboard      |&lt;br /&gt;
              | Save setup as dfl        |&lt;br /&gt;
              | Save setup as..          |&lt;br /&gt;
              | Exit                     |&lt;br /&gt;
              +--------------------------+&lt;br /&gt;
  &lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
  | A -    Serial Device      : /dev/ttyUSB0                              |&lt;br /&gt;
  | B - Lockfile Location     : /var/lock                                 |&lt;br /&gt;
  | C -   Callin Program      :                                           |&lt;br /&gt;
  | D -  Callout Program      :                                           |&lt;br /&gt;
  | E -    Bps/Par/Bits       : 115200 8N1                                |&lt;br /&gt;
  | F - Hardware Flow Control : Yes                                       |&lt;br /&gt;
  | G - Software Flow Control : No                                        |&lt;br /&gt;
  |                                                                       |&lt;br /&gt;
  |    Change which setting?                                              |&lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
&lt;br /&gt;
By default the Hardware Flow Control will be enabled. Press 'F' to disable Hardware Flow Control. Press ENTER to exit the Serial port setup window, and then select EXIT to go back to the program.&lt;br /&gt;
&lt;br /&gt;
At this point plug in the Ethernet cable to the 'Main' Ethernet port, with the other end connected to the 'POE' port on the Power Over Ethernet adapter that came with the device. As the device boots up, you'll see output similar to the following.&lt;br /&gt;
&lt;br /&gt;
You'll need to make sure to press a key before it boots the default image.&lt;br /&gt;
&lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0&lt;br /&gt;
&lt;br /&gt;
This will cause the [https://wiki.openwrt.org/doc/techref/bootloader/uboot U-Boot] bootloader to drop into a command line.&lt;/div&gt;</summary>
		<author><name>Redconfetti</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10143</id>
		<title>Mesh/Flashing extender nodes</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10143"/>
		<updated>2016-05-07T05:00:10Z</updated>

		<summary type="html">&lt;p&gt;Redconfetti: /* Interupting Boot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Download the Image File For a Extender Node ==&lt;br /&gt;
&lt;br /&gt;
The extender nodes that we currently support are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Model No. !! OpenWRT Doc !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M5 || NSM5 || [https://wiki.openwrt.org/toh/ubiquiti/nanostationm5 OpenWRT Docs] || firmware: [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin pre 2015] or [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin 2015-2016]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M2 || NSM2 || [https://wiki.openwrt.org/toh/ubiquiti/nanostationm2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-om2p-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation 2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostation2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ath25.extender-node/openwrt-ath25-ubnt2-pico2-squashfs.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation M2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostationm2 OpenWRT Docs] || &lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobeam M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/nanobeam OpenWRT Docs] || &lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Bullet M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/bullet OpenWRT Docs] || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Flash the Extender Node ==&lt;br /&gt;
&lt;br /&gt;
* Configure your wired internet settings to use Manual IPv4 settings with IP: 192.168.1.10, subnet: 255.255.255.0, gateway: 0.0.0.0&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Plug another Ethernet cable into your antenna on one end and into the &amp;quot;POE&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Push a pin into the reset hole and hold it.&lt;br /&gt;
* With the pin held down, plug in the power to the power-over-ethernet power supply.&lt;br /&gt;
* Watch the lights on the antenna - they will all flash together a few times, then they will flash up and down.&lt;br /&gt;
* Once the lights on the antenna are flashing up and down, you can let go of the pin.&lt;br /&gt;
&lt;br /&gt;
You should be able to ping the extender at 192.168.1.20.&lt;br /&gt;
&lt;br /&gt;
  $ ping 192.168.1.20&lt;br /&gt;
  PING 192.168.1.20 (192.168.1.20) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=1 ttl=64 time=1.54 ms&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=2 ttl=64 time=0.826 ms&lt;br /&gt;
&lt;br /&gt;
In your Linux terminal, type:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/ubi-flasher&lt;br /&gt;
  cd ubi-flasher&lt;br /&gt;
  npm install&lt;br /&gt;
  ./flasher.js '&amp;lt;path to firmware&amp;gt;'&lt;br /&gt;
&lt;br /&gt;
The terminal will tell you &amp;quot;The firmware has been successfully sent to the router. In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up). This means that the router is flashing itself with the new firmware. Once the router goes back to having only the power LED lit, the router has been successfully flashed.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Wait until the antenna has only the power LED lit and you're done.&lt;br /&gt;
&lt;br /&gt;
== Nanostation M5 ==&lt;br /&gt;
&lt;br /&gt;
If you attempt to flash the extender and receive a 'Firmware check failed' error, then you have a version of the NSM5 that is protected from being flashed via the TFTP method. You will need to obtain a serial to USB interface (USB to UART TTL Module Serial Converter, 5 pin) and use it to flash the firmware.&lt;br /&gt;
&lt;br /&gt;
   $ ./flasher.js openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin&lt;br /&gt;
   Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
   Connection timed out&lt;br /&gt;
   Sending openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
   [Error: (Server) Firmware check failed]&lt;br /&gt;
&lt;br /&gt;
=== USB to Serial Connection ===&lt;br /&gt;
&lt;br /&gt;
The following notes describe steps to interface with a Nanostation M5 (NSM5) via the serial interface. This may be necessary to manually load firmware onto the device if the web interface or TFTP methods of flashing the firmware become unavailable due to [http://www.networkworld.com/article/3038722/mobile-wireless/manufacturers-start-to-lock-down-wi-fi-router-firmware-thanks-fcc.html manufacturers disabling these methods] of firmware flashing.&lt;br /&gt;
&lt;br /&gt;
==== Order a USB to Serial Converter ====&lt;br /&gt;
&lt;br /&gt;
USB to serial converter devices exist at a cost of $4 - $8 online, with much lower pricing and longer delivery times if ordered from China. Search for &amp;quot;USB to UART TTL&amp;quot;, including &amp;quot;5 pin&amp;quot; in the search. Make sure the specifications do not mention anything other than 3.3 volts.&lt;br /&gt;
&lt;br /&gt;
==== Connecting to Serial ====&lt;br /&gt;
&lt;br /&gt;
You will need to connect the following pins from the converter to the pins on the device.&lt;br /&gt;
&lt;br /&gt;
* Ground (GND)&lt;br /&gt;
* Serial Out (Transmit / TX)&lt;br /&gt;
* Serial In (Receive / RX)&lt;br /&gt;
&lt;br /&gt;
Begin by connecting the Ground of the converter to the Ground of the device. Next connect the Transmit/TX of the converter to the Receive/RX of the device, then connect the Receive/RX of the converter to the Transmit/TX of the device.&lt;br /&gt;
&lt;br /&gt;
==== Serial Communications Program ====&lt;br /&gt;
&lt;br /&gt;
You need to install a serial communication program. Linux users can use Minicom.&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get install minicom&lt;br /&gt;
&lt;br /&gt;
By default the Minicom program will attempt to use /dev/tty8, and will also attempt to initialize the device (expecting a modem) by default.&lt;br /&gt;
&lt;br /&gt;
  $ minicom&lt;br /&gt;
  minicom: cannot open /dev/tty8: Permission denied&lt;br /&gt;
&lt;br /&gt;
Run the program so that it starts the program on the USB converter that is connected by adding `-D /dev/ttyUSB0`, and specify that it should skip initialization by adding `-o`.&lt;br /&gt;
&lt;br /&gt;
You can also specify from the command line that it use the baud rate and '8N1' settings specified below by including `-b 115200 -8`. &lt;br /&gt;
&lt;br /&gt;
  sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
&lt;br /&gt;
In Minicom, CTRL-A to get settings, then Press O, to access settings&lt;br /&gt;
&lt;br /&gt;
Go to Serial Port Setup, use these settings:&lt;br /&gt;
&lt;br /&gt;
* Set the serial device (should be /dev/tty/USB0)&lt;br /&gt;
* Baud Rate (Bits Per Second): 115200&lt;br /&gt;
* Settings '8N1' (short hand for 8 bits, no parity, 1 stop bit)&lt;br /&gt;
* Turn off hardware and software flow control&lt;br /&gt;
&lt;br /&gt;
Reboot the device, and it will let you drop into a command line. You will then have to figure out how to enable the network from the boot loader (Uboot or Redboot) and transfer the firmware to the device to flash it.&lt;br /&gt;
&lt;br /&gt;
==== Interupting Boot ====&lt;br /&gt;
&lt;br /&gt;
The device will not detect the key you press unless Minicom is configured properly.&lt;br /&gt;
&lt;br /&gt;
* To access the Help screen, Press CTRL-A, then press Z.&lt;br /&gt;
* To access the configuration/settings, press CTRL-A, then press O.&lt;br /&gt;
&lt;br /&gt;
From the configuration window, select to view the 'Serial port setup'&lt;br /&gt;
&lt;br /&gt;
  $ sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
  Welcome to minicom 2.7&lt;br /&gt;
  &lt;br /&gt;
  OPTIONS: I18n &lt;br /&gt;
  Compiled on Jan  1 2014, 17:13:19.&lt;br /&gt;
  Port /dev/ttyUSB0, 21:47:56&lt;br /&gt;
&lt;br /&gt;
  Press CTRL-A Z for help on special keys&lt;br /&gt;
&lt;br /&gt;
              +-----[configuration]------+&lt;br /&gt;
              | Filenames and paths      |&lt;br /&gt;
              | File transfer protocols  |&lt;br /&gt;
              | Serial port setup        |&lt;br /&gt;
              | Modem and dialing        |&lt;br /&gt;
              | Screen and keyboard      |&lt;br /&gt;
              | Save setup as dfl        |&lt;br /&gt;
              | Save setup as..          |&lt;br /&gt;
              | Exit                     |&lt;br /&gt;
              +--------------------------+&lt;br /&gt;
  &lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
  | A -    Serial Device      : /dev/ttyUSB0                              |&lt;br /&gt;
  | B - Lockfile Location     : /var/lock                                 |&lt;br /&gt;
  | C -   Callin Program      :                                           |&lt;br /&gt;
  | D -  Callout Program      :                                           |&lt;br /&gt;
  | E -    Bps/Par/Bits       : 115200 8N1                                |&lt;br /&gt;
  | F - Hardware Flow Control : Yes                                       |&lt;br /&gt;
  | G - Software Flow Control : No                                        |&lt;br /&gt;
  |                                                                       |&lt;br /&gt;
  |    Change which setting?                                              |&lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
&lt;br /&gt;
By default the Hardware Flow Control will be enabled. Press 'F' to disable Hardware Flow Control. Press ENTER to exit the Serial port setup window, and then select EXIT to go back to the program.&lt;br /&gt;
&lt;br /&gt;
At this point plug in the Ethernet cable to the 'Main' Ethernet port, with the other end connected to the 'POE' port on the Power Over Ethernet adapter that came with the device. As the device boots up, you'll see output similar to the following.&lt;br /&gt;
&lt;br /&gt;
You'll need to make sure to press a key before it boots the default image.&lt;br /&gt;
&lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0&lt;br /&gt;
&lt;br /&gt;
This will cause the [https://wiki.openwrt.org/doc/techref/bootloader/uboot U-Boot] bootloader to drop into a command line.&lt;/div&gt;</summary>
		<author><name>Redconfetti</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10142</id>
		<title>Mesh/Flashing extender nodes</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10142"/>
		<updated>2016-05-07T04:37:54Z</updated>

		<summary type="html">&lt;p&gt;Redconfetti: /* Interupting Boot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Download the Image File For a Extender Node ==&lt;br /&gt;
&lt;br /&gt;
The extender nodes that we currently support are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Model No. !! OpenWRT Doc !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M5 || NSM5 || [https://wiki.openwrt.org/toh/ubiquiti/nanostationm5 OpenWRT Docs] || firmware: [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin pre 2015] or [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin 2015-2016]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M2 || NSM2 || [https://wiki.openwrt.org/toh/ubiquiti/nanostationm2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-om2p-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation 2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostation2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ath25.extender-node/openwrt-ath25-ubnt2-pico2-squashfs.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation M2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostationm2 OpenWRT Docs] || &lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobeam M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/nanobeam OpenWRT Docs] || &lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Bullet M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/bullet OpenWRT Docs] || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Flash the Extender Node ==&lt;br /&gt;
&lt;br /&gt;
* Configure your wired internet settings to use Manual IPv4 settings with IP: 192.168.1.10, subnet: 255.255.255.0, gateway: 0.0.0.0&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Plug another Ethernet cable into your antenna on one end and into the &amp;quot;POE&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Push a pin into the reset hole and hold it.&lt;br /&gt;
* With the pin held down, plug in the power to the power-over-ethernet power supply.&lt;br /&gt;
* Watch the lights on the antenna - they will all flash together a few times, then they will flash up and down.&lt;br /&gt;
* Once the lights on the antenna are flashing up and down, you can let go of the pin.&lt;br /&gt;
&lt;br /&gt;
You should be able to ping the extender at 192.168.1.20.&lt;br /&gt;
&lt;br /&gt;
  $ ping 192.168.1.20&lt;br /&gt;
  PING 192.168.1.20 (192.168.1.20) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=1 ttl=64 time=1.54 ms&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=2 ttl=64 time=0.826 ms&lt;br /&gt;
&lt;br /&gt;
In your Linux terminal, type:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/ubi-flasher&lt;br /&gt;
  cd ubi-flasher&lt;br /&gt;
  npm install&lt;br /&gt;
  ./flasher.js '&amp;lt;path to firmware&amp;gt;'&lt;br /&gt;
&lt;br /&gt;
The terminal will tell you &amp;quot;The firmware has been successfully sent to the router. In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up). This means that the router is flashing itself with the new firmware. Once the router goes back to having only the power LED lit, the router has been successfully flashed.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Wait until the antenna has only the power LED lit and you're done.&lt;br /&gt;
&lt;br /&gt;
== Nanostation M5 ==&lt;br /&gt;
&lt;br /&gt;
If you attempt to flash the extender and receive a 'Firmware check failed' error, then you have a version of the NSM5 that is protected from being flashed via the TFTP method. You will need to obtain a serial to USB interface (USB to UART TTL Module Serial Converter, 5 pin) and use it to flash the firmware.&lt;br /&gt;
&lt;br /&gt;
   $ ./flasher.js openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin&lt;br /&gt;
   Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
   Connection timed out&lt;br /&gt;
   Sending openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
   [Error: (Server) Firmware check failed]&lt;br /&gt;
&lt;br /&gt;
=== USB to Serial Connection ===&lt;br /&gt;
&lt;br /&gt;
The following notes describe steps to interface with a Nanostation M5 (NSM5) via the serial interface. This may be necessary to manually load firmware onto the device if the web interface or TFTP methods of flashing the firmware become unavailable due to [http://www.networkworld.com/article/3038722/mobile-wireless/manufacturers-start-to-lock-down-wi-fi-router-firmware-thanks-fcc.html manufacturers disabling these methods] of firmware flashing.&lt;br /&gt;
&lt;br /&gt;
==== Order a USB to Serial Converter ====&lt;br /&gt;
&lt;br /&gt;
USB to serial converter devices exist at a cost of $4 - $8 online, with much lower pricing and longer delivery times if ordered from China. Search for &amp;quot;USB to UART TTL&amp;quot;, including &amp;quot;5 pin&amp;quot; in the search. Make sure the specifications do not mention anything other than 3.3 volts.&lt;br /&gt;
&lt;br /&gt;
==== Connecting to Serial ====&lt;br /&gt;
&lt;br /&gt;
You will need to connect the following pins from the converter to the pins on the device.&lt;br /&gt;
&lt;br /&gt;
* Ground (GND)&lt;br /&gt;
* Serial Out (Transmit / TX)&lt;br /&gt;
* Serial In (Receive / RX)&lt;br /&gt;
&lt;br /&gt;
Begin by connecting the Ground of the converter to the Ground of the device. Next connect the Transmit/TX of the converter to the Receive/RX of the device, then connect the Receive/RX of the converter to the Transmit/TX of the device.&lt;br /&gt;
&lt;br /&gt;
==== Serial Communications Program ====&lt;br /&gt;
&lt;br /&gt;
You need to install a serial communication program. Linux users can use Minicom.&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get install minicom&lt;br /&gt;
&lt;br /&gt;
By default the Minicom program will attempt to use /dev/tty8, and will also attempt to initialize the device (expecting a modem) by default.&lt;br /&gt;
&lt;br /&gt;
  $ minicom&lt;br /&gt;
  minicom: cannot open /dev/tty8: Permission denied&lt;br /&gt;
&lt;br /&gt;
Run the program so that it starts the program on the USB converter that is connected by adding `-D /dev/ttyUSB0`, and specify that it should skip initialization by adding `-o`.&lt;br /&gt;
&lt;br /&gt;
You can also specify from the command line that it use the baud rate and '8N1' settings specified below by including `-b 115200 -8`. &lt;br /&gt;
&lt;br /&gt;
  sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
&lt;br /&gt;
In Minicom, CTRL-A to get settings, then Press O, to access settings&lt;br /&gt;
&lt;br /&gt;
Go to Serial Port Setup, use these settings:&lt;br /&gt;
&lt;br /&gt;
* Set the serial device (should be /dev/tty/USB0)&lt;br /&gt;
* Baud Rate (Bits Per Second): 115200&lt;br /&gt;
* Settings '8N1' (short hand for 8 bits, no parity, 1 stop bit)&lt;br /&gt;
* Turn off hardware and software flow control&lt;br /&gt;
&lt;br /&gt;
Reboot the device, and it will let you drop into a command line. You will then have to figure out how to enable the network from the boot loader (Uboot or Redboot) and transfer the firmware to the device to flash it.&lt;br /&gt;
&lt;br /&gt;
==== Interupting Boot ====&lt;br /&gt;
&lt;br /&gt;
You'll need to make sure to press a key before it boots the default image.&lt;br /&gt;
&lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0&lt;br /&gt;
&lt;br /&gt;
As you can see the device identifies itself as using U-Boot v1.1.4. [https://wiki.openwrt.org/doc/techref/bootloader/uboot U-Boot]&lt;/div&gt;</summary>
		<author><name>Redconfetti</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10141</id>
		<title>Mesh/Flashing extender nodes</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10141"/>
		<updated>2016-05-07T04:08:01Z</updated>

		<summary type="html">&lt;p&gt;Redconfetti: /* Serial Communications Program */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Download the Image File For a Extender Node ==&lt;br /&gt;
&lt;br /&gt;
The extender nodes that we currently support are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Model No. !! OpenWRT Doc !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M5 || NSM5 || [https://wiki.openwrt.org/toh/ubiquiti/nanostationm5 OpenWRT Docs] || firmware: [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin pre 2015] or [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin 2015-2016]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M2 || NSM2 || [https://wiki.openwrt.org/toh/ubiquiti/nanostationm2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-om2p-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation 2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostation2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ath25.extender-node/openwrt-ath25-ubnt2-pico2-squashfs.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation M2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostationm2 OpenWRT Docs] || &lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobeam M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/nanobeam OpenWRT Docs] || &lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Bullet M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/bullet OpenWRT Docs] || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Flash the Extender Node ==&lt;br /&gt;
&lt;br /&gt;
* Configure your wired internet settings to use Manual IPv4 settings with IP: 192.168.1.10, subnet: 255.255.255.0, gateway: 0.0.0.0&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Plug another Ethernet cable into your antenna on one end and into the &amp;quot;POE&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Push a pin into the reset hole and hold it.&lt;br /&gt;
* With the pin held down, plug in the power to the power-over-ethernet power supply.&lt;br /&gt;
* Watch the lights on the antenna - they will all flash together a few times, then they will flash up and down.&lt;br /&gt;
* Once the lights on the antenna are flashing up and down, you can let go of the pin.&lt;br /&gt;
&lt;br /&gt;
You should be able to ping the extender at 192.168.1.20.&lt;br /&gt;
&lt;br /&gt;
  $ ping 192.168.1.20&lt;br /&gt;
  PING 192.168.1.20 (192.168.1.20) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=1 ttl=64 time=1.54 ms&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=2 ttl=64 time=0.826 ms&lt;br /&gt;
&lt;br /&gt;
In your Linux terminal, type:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/ubi-flasher&lt;br /&gt;
  cd ubi-flasher&lt;br /&gt;
  npm install&lt;br /&gt;
  ./flasher.js '&amp;lt;path to firmware&amp;gt;'&lt;br /&gt;
&lt;br /&gt;
The terminal will tell you &amp;quot;The firmware has been successfully sent to the router. In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up). This means that the router is flashing itself with the new firmware. Once the router goes back to having only the power LED lit, the router has been successfully flashed.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Wait until the antenna has only the power LED lit and you're done.&lt;br /&gt;
&lt;br /&gt;
== Nanostation M5 ==&lt;br /&gt;
&lt;br /&gt;
If you attempt to flash the extender and receive a 'Firmware check failed' error, then you have a version of the NSM5 that is protected from being flashed via the TFTP method. You will need to obtain a serial to USB interface (USB to UART TTL Module Serial Converter, 5 pin) and use it to flash the firmware.&lt;br /&gt;
&lt;br /&gt;
   $ ./flasher.js openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin&lt;br /&gt;
   Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
   Connection timed out&lt;br /&gt;
   Sending openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
   [Error: (Server) Firmware check failed]&lt;br /&gt;
&lt;br /&gt;
=== USB to Serial Connection ===&lt;br /&gt;
&lt;br /&gt;
The following notes describe steps to interface with a Nanostation M5 (NSM5) via the serial interface. This may be necessary to manually load firmware onto the device if the web interface or TFTP methods of flashing the firmware become unavailable due to [http://www.networkworld.com/article/3038722/mobile-wireless/manufacturers-start-to-lock-down-wi-fi-router-firmware-thanks-fcc.html manufacturers disabling these methods] of firmware flashing.&lt;br /&gt;
&lt;br /&gt;
==== Order a USB to Serial Converter ====&lt;br /&gt;
&lt;br /&gt;
USB to serial converter devices exist at a cost of $4 - $8 online, with much lower pricing and longer delivery times if ordered from China. Search for &amp;quot;USB to UART TTL&amp;quot;, including &amp;quot;5 pin&amp;quot; in the search. Make sure the specifications do not mention anything other than 3.3 volts.&lt;br /&gt;
&lt;br /&gt;
==== Connecting to Serial ====&lt;br /&gt;
&lt;br /&gt;
You will need to connect the following pins from the converter to the pins on the device.&lt;br /&gt;
&lt;br /&gt;
* Ground (GND)&lt;br /&gt;
* Serial Out (Transmit / TX)&lt;br /&gt;
* Serial In (Receive / RX)&lt;br /&gt;
&lt;br /&gt;
Begin by connecting the Ground of the converter to the Ground of the device. Next connect the Transmit/TX of the converter to the Receive/RX of the device, then connect the Receive/RX of the converter to the Transmit/TX of the device.&lt;br /&gt;
&lt;br /&gt;
==== Serial Communications Program ====&lt;br /&gt;
&lt;br /&gt;
You need to install a serial communication program. Linux users can use Minicom.&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get install minicom&lt;br /&gt;
&lt;br /&gt;
By default the Minicom program will attempt to use /dev/tty8, and will also attempt to initialize the device (expecting a modem) by default.&lt;br /&gt;
&lt;br /&gt;
  $ minicom&lt;br /&gt;
  minicom: cannot open /dev/tty8: Permission denied&lt;br /&gt;
&lt;br /&gt;
Run the program so that it starts the program on the USB converter that is connected by adding `-D /dev/ttyUSB0`, and specify that it should skip initialization by adding `-o`.&lt;br /&gt;
&lt;br /&gt;
You can also specify from the command line that it use the baud rate and '8N1' settings specified below by including `-b 115200 -8`. &lt;br /&gt;
&lt;br /&gt;
  sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
&lt;br /&gt;
In Minicom, CTRL-A to get settings, then Press O, to access settings&lt;br /&gt;
&lt;br /&gt;
Go to Serial Port Setup, use these settings:&lt;br /&gt;
&lt;br /&gt;
* Set the serial device (should be /dev/tty/USB0)&lt;br /&gt;
* Baud Rate (Bits Per Second): 115200&lt;br /&gt;
* Settings '8N1' (short hand for 8 bits, no parity, 1 stop bit)&lt;br /&gt;
* Turn off hardware and software flow control&lt;br /&gt;
&lt;br /&gt;
Reboot the device, and it will let you drop into a command line. You will then have to figure out how to enable the network from the boot loader (Uboot or Redboot) and transfer the firmware to the device to flash it.&lt;br /&gt;
&lt;br /&gt;
==== Interupting Boot ====&lt;br /&gt;
&lt;br /&gt;
You'll need to make sure to press a key before it boots the default image.&lt;br /&gt;
&lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
&lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0&lt;/div&gt;</summary>
		<author><name>Redconfetti</name></author>
	</entry>
</feed>