MoteIST


Project Goal: Build a main board for sensor network nodes

Project Description: The development of sensor networks applications is limited by the existing hardware. The existing commercial platforms don't have the necessary capabilities and are too expensive for the dense deployments we aim at. The acquiring of the know-how on building sensor networks platforms in order to minimize these problems is a key aspect on this field evolution. Therefore, in this project we aim to build a new hardware platform, with state-of-the-art sensor networks technology, while maintaining the compatibility with the previously developed software. These platforms are based on MSP430 low-power microprocessors, which are compatible with the standard operating systems for sensor networks (TinyOS, Contiki, FreeRTOS, etc). The modularity of the platforms has been increased from the sensor boards feature to the communication boards feature. These nodes can use any of the designed communication modules interchangeably.

Publications:

Existing Prototypes

  • moteist++s5 v1: first prototype, in-house fabrication and assembly, based on a MSP430F5438
  • moteist++s5 v1: second prototype, in-house fabrication and assembly, based on a MSP430F2419
  • moteist++s2 0710: third prototype, outsourced fabrication and in-house assembly, based on a MSP430F2619
  • moteist++s5 1011: fourth prototype, outsourced fabrication and assembly, based on a MSP430F5438A
  • moteist++s5 0413: fifth prototype, outsourced fabrication and assembly, based on a MSP430F5438A

Designed Communication Boards

  • ZigBee: for IEEE 802.15.4 compliant communication
  • USB: for programming and debugging
  • NarrowBand: for lower rates and low power consumption

Active Period: 2008-present

Project Funding: IT

GEMS team: José Catela (from 2008), Prof. Rui Rocha (from 2008), João Gonçalves (from 2010), Tiago Furtado (from 2013)

Current Status: design of new moteist++s5 prototypes

Hardware Development

moteist++s2 0710

moteist++s5 1011

Software Development Framework

Moteist++s5 1011 platform is shipped with an integrated development framework that monitors and manages the implementation of more complex applications. It controls the hardware monitoring, the deployment of the operating system and it can also be used for debug purposes. This framework is called Mote Resident Monitor (MRM) and is divided into two parts: MRM-mote and MRM-host. The first resides on the embedded platform, monitors the hardware and deploys the compiled programs received from the second.

MRM - mote

To accomodate MRM and the user application code in MSP430F5438a memory, it was necessary to reserve some of the microcontroller's code memory according to the following diagram.

MRM - host

MRM-host is a multi-platform application which can be used in all operating systems supported by Oracle Java.

  • MRM-host requires Java RXTX libraries, which are not part of the default JDK package but can be obtained here or installed in Ubuntu executing “sudo apt-get install librxtx-java”.
  • If you are using Mac OS X, copy the extracted “RXTXcomm.jar“ and “librxtxSerial.jnilib“ to /Library/Java/Extensions
  • If you are using Windows, copy the extracted “rxtxSerial.dll” to “C:\Program Files\Java\jre1.XXXX\bin\” and “RXTXcomm.jar” to “C:\Program Files\Java\jre1.XXXX\lib\ext\”

It is also necessary to install MSPGCC to compile the programs to be deployed to MoteIST.

  • There are two versions of MSPGCC:
    • The legacy mspgcc: Instructions on how to do it are available here
    • The Red Hat mspgcc: Which can be found in TI's website. Just download and install ' msp430-gcc-full-linux-installer-4.1.0.0.run ' available here
  • IMPORTANT: by default, MSPGCC uses all the available code memory, which colides with MRM-mote description. To comply with the diagram, you must replace the memory mapping file for MSP430F5438a with the one available in the Downloads section (after uncompressing). In Ubuntu, the memory mapping file is located in /usr/msp430/lib/ldscripts/msp430f5438a
    • In the legacy mspgcc: The memory map is called memory.x
    • In the Red Hat mspgcc: This memory map is called msp430f5438a.ld
  • Example files for MSPGCC tests are included in the Downloads section.
  • IMPORTANT: Please take notice that MRM1 and MRM2 do not support newer versions of mspgcc like the 'Red Hat mspgcc' because the Guest Application Program has a fixed entry point in older versions of MRM

Alternatively, we provide a virtual machine (Ubuntu guest) to use with VMWare Player where these configurations are already implemented. If you wish to access it, please ask the GEMS administration for permission.

Using MRM-host (MRM1):

  • command format: “java -jar MRM.jar <command> [file] <serial port>”, where <command> and <serial port> are mandatory and [file] is optional (only used in "program" command)
  • available commands: "connect", "program" and "run"
  • command "connect": test connection to MRM-mote (if successful, the mote's LEDs stop blinking)
  • command "program": downloads the indicated program to the microcontroller's code memory
  • command "run": executes the code downloaded with the command "program

Using MRM-host (MRM2):

  • command format: “java -jar MRM2.jar <command> --p=<serial port> --f=[file]”, where <command> and <serial port> are mandatory and [file] is optional (only used in "program" command)
  • available commands: "program" and "run"
  • command "program": program the target mote.
  • command "run": runs the pre-programmed code, if it exists.

Using MRM-host (MRM3):

  • command format: “java -jar MRM3.jar <command> --p=<serial port> --f=[file]”, where <command> and <serial port> are mandatory and [file] is optional (only used in "program" command)
  • available commands: "list", "program" and "run"
  • command "list": lists all connected USB ports.
  • command "program": program the target mote.
  • command "run": runs the pre-programmed code, if it exists.

Energia support for MoteIST++ and PepeOnBoard

Here one can find the link to the support environment for rapid software prototyping using Energia on the MoteIST++ and the PepeOnBoard platforms. This support is particular useful for testing specific parts of the code before integrating them into a concurrent programming environment.

Downloads

  • MRMv1 Includes MRM (PC) and Example Files.
  • MRMv2 Includes MRM (PC).
  • MRMv3_1 Includes MRM (PC) and Example Files for Red Hat new compiler VM.