OpenMesh development information

OpenMesh is proud to support many OpenSource 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 OpenMesh 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

All our firmware builds are based on  OpenWrt as it has a rich pool of packages and tools. The latest testing build uses a snapshot from November 2011 (rev: 29330) but you can use any version you like as long as it brings the hardware support for our devices.

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.

First, you will need a fresh checkout of OpenWrt:

svn co -r 29330 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 to install new firmware images. To further facilitate to installation OpenMesh heavily contributes to the flash utility 'ap51-flash'. This tool is capable of automatically detecting a router and choosing the appropriate install method to the the image into the device.

To download the ap51-flash utility run:

svn co http://dev.cloudtrax.com/downloads/svn/ap51-flash/trunk/ ap51-flash

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 extend 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       |