Flash Your Mesh Potato

In order to update or change the firmware of your Mesh Potato, a process known as ‘flashing’, you need to download the potato-flash utility to your Linux pc.  If you are not comfortable with Linux, you can use the FonFlash utility.

For Linux, start by creating a directory for the utility and the data files for the firmware.

mkdir mp_firmware

Change to that directory

cd mp_firmware

Download the potato-flash utility.  Currently the utility only works on Linux and has only been tested on Ubuntu/Debian systems.  You can download the 32-bit version at

http://download.villagetelco.org/utilities/potato-flash/potato-flash-32bit/potato-flash

or the 64-bit version at

http://download.villagetelco.org/utilities/potato-flash/potato-flash-64bit/potato-flash-x64

Make the potato-flash executable

chmod +x ./potato-flash*

Next you need to download the most recent firmware for your Mesh Potato.  Here you have a few choices.  Read the page on Choosing Your Firmware to help you decide.  All the firmwares can be found in one of the subdirectories at http://download.villagetelco.org. You will need two files, one ending in .squashfs and another ending in .lzma.  The files will have the form

openwrt-atheros-root-XXXX-YYYY.squashfs
openwrt-atheros-vmlinux-XXXX-YYYY.lzma

where XXXX is the type of firmware e.g. SECN or VT and YYYY is the version number of the firmware.  If there is more than one set of files available, you should pick the most recent version number.  Download the two files to the same directory.  You can do this by clicking on the files or using the wget command in the form. e.g.

wget http://download.villagetelco.org/mp/openwrt-atheros-root-VT-rv287.squashfs
wget http://download.villagetelco.org/mp/openwrt-atheros-vmlinux-VT-rv287.lzma

Now that you have the potato-flash utility and the firmware files downloaded, you are ready to start flashing your Mesh Potato.  Making sure the Mesh Potato is unplugged from the power, connect an ethernet cable from the ethernet port on your computer to the ethernet port on the Mesh Potato.  This must be a direct connection not via a switch or router.

The format for the potato-flash utility is

./potato-flash ethdevice openwrt-atheros-root-XXXX-YYYY.squashfs openwrt-atheros-vmlinux-XXXX-YYYY.lzma

where ethdevice is the name of your ethernet port (typically eth0 if you have only one) and XXXX is the type of firmware e.g. VT or SECN and YYYY is the version number.  Execute the potato-flash utility.  You’ll be prompted for the superuser passwd for your computer.  Before entering the passwd, plug in the Mesh Potato and then immediately enter the superuser passwd.  You should then see something like the following on your screen.

A flash size of 8mb was detected. Setting IP address. Initialising partitions...
Now uploading kernel. Sending kernel. 14XX blocks Flashing kernel.
Reading rootfs file openwrt-atheros-root-rv238.squashfs with 3801088 bytes ...
Reading kernel file openwrt-atheros-vmlinux-rv238.lzma with 720896 bytes ...
Note: The device has to be connected directly (not via switch/hub)
Device detection in progress.......................................................... 

<<< Turn the power to the MP device ON at this point >>>

……………………device detection: non-arp packet received..
Peer MAC: 00:09:45:58:1c:e7
Peer IP : 192.168.1.184
Your MAC: 00:ba:be:ca:ff:ee
Your IP : 192.168.1.0
Connecting to Redboot bootloader
WARNING: UNPLUGGING POWER WHILE FLASHING MIGHT DAMAGE THE BOOTLOADER HOWEVER: IF YOU SEE NOTHING SHOWING UP BENEATH THIS LINE FOR MORE THAN A MINUTE, START AGAIN…
A flash size of 8 MB was detected. rootfs(0x006a0000) + kernel(0×00100000) + nvram(0×00000000) sums up to 0x007a0000 bytes Setting IP address…
Initializing partitions…
Now uploading kernel…
Sending kernel, 1408 blocks…
Flashing kernel…
Loading rootfs…
Sending rootfs, 7424 blocks…
Flashing rootfs…
Flashing process completed…
Restarting device…

At this point you have successfully flashed the firmware of your Mesh Potato.   You will know the device has fully rebooted when you see the WiFi light flashing on the MP.