Metis Programmer Sample Code and Application

Overview


Metis Programmer is a simple application for downloading firmware using the Metis command mode. (The companion Metis Programmer uses the bootloader mode.)

The Metis Programmer folder is included in the
Metis disk image, and includes a code signed application. You must set your security permission level to run signed applications (see Firewalls instruction.)

The program uses
MetisDiscovery to find the Metis device, and obtains the Metis device's IP address, host IP and the host port used during discovery from the Metis object that was created by MetisDiscovery.

The addresses are then used to initialize a MetisProgrammer object.



Usage


When launched, the Metis Programmer application looks for a Metis device (Hermes, Angelia, or a stand-alone Metis board) on all the Ethernet interfaces that are connected to the computer. For this reason, it is safest to power down all Metis devices that you do not intend to upgrade firmware.

If no command mode Metis is found, the following alert will appear.

noMetisIP

When using Metis Programmer, the bootloader jumper must
not be installed. Metis will not appear as an IP device on the network if the bootloader jumper is present. The jumper header is labeled JP12 on a Hermes board, JP17 on an Angelia board, and JP1 on a stand-alone Metis board.


Allow 10 to 15 seconds after powering up the device before trying to reach it. This gives time for the device to lease an IP address from the network router. If there is no router on the network, give the device some extra time to abort from its search for a router and present itself on the network using an APIPA address.

If the Metis device is found, you will see the Metis Programmer window:

ProgrammerWindow

Clicking on
Download Firmware brings up a file open dialog which you use to navigate to the file that you wish to download to Metis. Programming starts immediately after a file (with .rbf file extension) is selected. The application goes through an Erase cycle, followed by a Write cycle. Erase could take more than 10 seconds, so be patient.

ProgrammerErase

If everything works properly, the final window will appear:

ProgrammerDone