Monday, November 7, 2011

EPOS Mote

During the last months we've received some nice gifts by our friends from the south. Professor Fröhlich from the Lisha (Software and Hardware Integrated Lab, Laboratório Integrado de Software e HArdware in portuguese) laboratory at UFSC sent us three Epos-Motes version 2.

The EPOS (Embedded Parallel Operating System) is an Object-Oriented OS focused on the development of sensors and other specialist software/hardware applications. It follows a ADESD (Application-Driven Embedded System Design) approach, which focus on a better way to build such applications. The OS can be used in a wide variety of platforms and processors.

The documentation present on the EPOS Wiki has many information about how to develop using EPOS, what you don't find there you can ask in the discussion list, which is very active in helping new users.

The EPOS-Mote version 2 we've received are equiped with a ARM-7 processor with 96 MB RAM and 128 MB Flash. It has a 802.15.4 RF TX/RX and a YYYY. The Start Kit comes with a USB/UART for embedding applications (and serial communication) along with a Thermometer, Accelerometer, LEDs and a Button. 

Installing the EPOS environment is just as described in the documentation.
Before everything you'll have to register to the EPOS website and agree with their license
For installing the development environment at a Linux SO follwo these steps:

1: Install the arm cross compiler:
Download it from the the site onto the /usr/local/arm/gcc folder.

sudo mkdir /usr/local/arm 
cd /usr/local/arm/ 
sudo wget http://www.lisha.ufsc.br/~arliones/arm-gcc-4.4.4.tgz 
sudo tar xzfv arm-gcc-4.4.4.tgz 
sudo ln -s /usr/local/arm/gcc gcc-4.4.4 gcc 
sudo rm arm-gcc-4.4.4.tgz 

2: Install g++:
sudo apt-get install g++
3: Install EPOS Environment: 
Download the latest version of the OpenEPOS source code and Unzip it on a folder of your choice.

sudo mkdir /opt/EPOS 
sudo chown <user> /opt/EPOS/ 
mv ~/Donwload/OpenEPOS-1.1RC.tgz /opt/EPOS/ 
cd /opt/EPOS 
tar xzfv OpenEPOS-1.1RC.tgz 
rm OpenEPOS-1.1RC.tgz

Set the EPOS variable to the OpenEPOS folder.
export EPOS=/opt/EPOS/OpenEPOS-1.1RC/
Add EPOS tools and arm-gcc to the PATH

export PATH=$PATH:$EPOS/bin 
export PATH=$PATH:/usr/local/arm/gcc/bin
For testing your environment run a make veryclean all.

Configuration:

The EPOS environment comes already set to the EPOS-Mote-2 but any changes on the architecture used can be modified at the makedefs file and choosing the option that best suits you.

HelloWorld:

For testing the environment compile the following code.

#include <utility/ostream.h> 
__USING_SYS 
int main() { 
OStream cout; 
while (true) 
cout << "Hi EPOS\n"; 
return 0; 
}

Save it to a helloworld.cc file in the app folder.
The run make APPLICATION=helloworld.
To embed the application in the mote you must convert the image file to an arm binary and then transpit it to the mote using the USB/UART cable using the followinf commands.
arm-objcopy -I elf32-little -O binary img/helloworld.img img/helloworld.bin 
python bin/red-bsl.py -t /dev/ttyUSB0 -f img/helloworld.bin 
To check your application running you can use a serial application like cutecom (or minicom). Set it to 9600 baud-rate and see your output on the screen.

That's it for now. More news about our use of the EPOS-Mote in a near future.

1 comment:

  1. This comment has been removed by a blog administrator.

    ReplyDelete