Legacy Open Mesh: Open Mesh development information

Topic

This article provides development information for legacy Open Mesh products

Environment

  • Legacy Open Mesh

Description

Note: Much of this information is outdated, but may still be of use for some people. Keep in mind that our latest dual-band access point models do not allow you to flash custom firmware.

Overview

Open-Mesh is proud to support many open source projects including OpenWrt, B.A.T.M.A.N., ap51-flash, nodogsplash and the Linux Kernel.

This page contains information for developers on how to build customized firmware images for the Open-Mesh devices and how to install them. Also, you will find some useful hints about advanced debugging techniques in the 'serial console' section.

Building the firmware

Please note: it is not currently possible to build the full NG firmware as it uses some closed-source components that cannot be made freely available. It is still possible to build a mesh network (by using OpenWrt with B.A.T.M.A.N.), but it is not possible to create firmware that will integrate with the full Open-Mesh environment.

All our firmware builds are based on OpenWrt as it has a rich pool of packages and tools. First, you will need a fresh checkout of OpenWrt. If you wish to build packages for firmware-ng you should select the OpenWrt revision based on the firmware-ng version:

  • ng3xx => OpenWrt r29330
  • ng4xx => OpenWrt r31729
  • ng5xx => OpenWrt r36343

and replace the variable "$rev" below:

svn co -r $rev svn://svn.openwrt.org/openwrt/trunk openwrt-trunk

Then change into that newly created 'openwrt-trunk' folder and run

make menuconfig

to select the desired platform and the packages you are interested in:

OM1P:

Target System ->   Atheros AR231x/AR5312

OM2P:

Target System ->   Atheros AR71xx/AR7240/AR913x/AR934x

Target Profile ->   [[OpenMesh]] OM2P

Note: The OpenWrt developers included our patches for the OM2P support into the official repository in revision 29397. You can either manually apply the openwrt-om2p.patch to your OpenWrt folder or checkout the OpenWrt trunk in order to build a firmware for this device.

A successful build will produce a number of files; you'll want to use the 'openwrt-ar71xx-generic-om2p-squashfs-factory.bin' file for flashing an OM2P unit.

MR500:

Target System ->   Ralink RT288x/RT305x

Subtarget ->   RT305x based boards

Note: For the WiFi to work you will need to contact Ralink and sign an agreement to get access to their driver.

Installing the firmware

All our devices come with an open bootloader which easily allows you to install new firmware images. To further facilitate to installation Open-Mesh heavily contributes to the flash utility 'ap51-flash'. This tool is capable of automatically detecting a router and choosing the appropriate install method of the image onto the device.

To download the ap51-flash utility run:

git clone https://dev.cloudtrax.com/git/ap51-flash.git

After ap51-flash has been compiled for your platform you can flash all our routers with a simple command:

ap51-flash eth0 /path/to/your/firmware/image

Of course, you will have to replace 'eth0' with the interface your device is connected to.

Nodogsplash

To make nodogsplash better suit our needs we modified its source code. You can download our nodogsplash tarball from the patches section.

Coova-chilli

We also had to modify chilli to the extent of making it work in layer2 mesh networks and radius setups. Check our patches.

Serial console

Our devices also bring a serial connector which is useful for debugging during the early boot stages (when the network is not available yet) or can be used to connect the router to other devices like Arduino / external sensors / etc. All you need is to connect the serial cable to the right pins and configure a few settings on your PC.

OM1P:

baudrate is    : 9600
flowcontrol    : none
parity is      : none
databits are   : 8

With the ethernet jack in front of you, the pinout should look like this:

 +---+
 |GND|
 +---+
 |TXD|
 +---+
 |RXD|
 +---+
 |VCC|
 +---+
+-----+ +-----+     +---+
|Power| | LAN |     |Ant|

OM2P:

baudrate is    : 115200
flowcontrol    : none
parity is      : none
databits are   : 8

With the ethernet jacks in front of you, the pinout should look like this:

                    +---+
                    |RXD|
                    +---+
                    |TXD|
                    +---+
                    |GND|
                    +---+
                    |VCC|
                    +---+
+-----+ +----+----+ +---+
|Power| |LAN1|LAN2| |Ant|

MR500:

baudrate is    : 57600
flowcontrol    : none
parity is      : none
databits are   : 8

With the ethernet jacks in front of you, the pinout should look like this:

 +---+---+---+---+
 |VCC|GND|TXD|RXD|
 +---+---+---+---+

  +-----+ +----+----+----+----+----+
  |Power| |       LAN Switch       |