Difference between revisions of "Imote2"

From TinyOS Wiki
Jump to: navigation, search
m (Platform Features)
(TinyOS Support: removing more install directions. no, tinyos is no longer on cvs.)
 
(7 intermediate revisions by 3 users not shown)
Line 2: Line 2:
  
 
[[Image:iMote2.gif|thumb|250px|iMote2 mote.]]
 
[[Image:iMote2.gif|thumb|250px|iMote2 mote.]]
[[Image:iMote2-sensorboard.jpg|thumb|250px|iMote2 and basic sensor board.]]
 
  
The Imote2 is an advanced wireless sensor node platform. It is built around the low-power PXA271 XScale CPU and also integrates an 802.15.4 compliant radio. The design is modular and stackable with interface connectors for expansion boards on both the top and bottom sides, providing a standard set of I/O signals as well as additional high-speed interfaces for application specific I/O.
+
The Imote2 is an advanced wireless sensor node platform developed at Intel Research as part of Platform X <ref>[http://embedded.seattle.intel-research.net/wiki/index.php?title=Main_Page Platform X. Intel Research wiki.]</ref>. It is built around the low-power PXA271 XScale CPU and also integrates an [[IEEE 802.15.4]] compliant radio. The design is modular and stackable with interface connectors for expansion boards on both the top and bottom sides, providing a standard set of I/O signals as well as additional high-speed interfaces for application specific I/O.
  
  
<b>Links</b>
+
== Hardware Features ==
* [http://www.xbow.com/Products/productdetails.aspx?sid=253 xbow] (Commercial site of Crossbow Technology Inc.)
 
* [http://embedded.seattle.intel-research.net/wiki/index.php?title=Intel_Mote_2 intel] (Intel Research)
 
  
== Platform Features ==
+
* [[PXA271]] XScale Processor
 
+
** Core Frequency: 13/104/208/312/416 MHz
* 320/416/520MHz [[PXA271]] XScale Processor
+
** 256 KB SRAM
* 256kB SRAM, 32MB Flash, 32MB SDRAM on-board
+
** 32 MB SDRAM
* Mini-USB Client (slave), multiplexed with RS232 console over USB, power
+
** 32 MB Flash
 +
* [[Zigbee]] ([[IEEE 802.15.4]]) Radio (TI [[CC2420]])
 +
* Mini-USB Client (slave)
 +
** RS232 console over USB
 +
** power
 
* I-Mote2 Basic Sensor connector (31+ 21 pin connector)
 
* I-Mote2 Basic Sensor connector (31+ 21 pin connector)
* [[Zigbee]] ([[IEEE 802.15.4]]) Radio (ChipCon [[CC2420]])
 
 
* Indicators: Tri-color status LED; Power LED; battery charger LED, console LED
 
* Indicators: Tri-color status LED; Power LED; battery charger LED, console LED
 
* Switches: on/off slider, Hard reset, Soft reset, User programmable switch
 
* Switches: on/off slider, Hard reset, Soft reset, User programmable switch
  
<b>Availability</b>
+
[[Image:iMote2-sensorboard.jpg|thumb|250px|Basic Sensor Board.]]
* iMote2 is commercially available from [http://www.xbow.com/Products/productdetails.aspx?sid=253 xbow]
+
[[Image:iMote2-enalab.jpg|thumb|iMote2 with the enalab camera board.]]
 +
 
 +
=== Accessories ===
 +
There is a number of accessories to assist developers in their work. Sensor boards are meant to enable sensing capabilities. Interface boards can behave as gateways between computer and mote and, depending on the TinyOS version, can enable programming over USB ports. JTAG programmers are mainly used in TinyOS 2 for flashing (programming) motes and as gateways.
  
<b>Available extension boards:</b>
+
Users should be aware of the fact that hardware availability may not imply driver existence for every TinyOS version. Consequently, some sensor boards may not have available drivers to operate their functionalities either fully or partially.
  
* [http://www.xbow.com/Products/productdetails.aspx?sid=261 basic sensorboard] 3 axis accelerometer, temperature, humidity, light sensor
+
==== Sensor Boards ====
* [http://www.xbow.com/Products/productdetails.aspx?sid=262 interface board] jtag interface, dual usb ports
+
* Basic Sensor Board - ITS400: 3 axis accelerometer, temperature, humidity and light sensors and 12-bit analog input
 +
* Multimedia Sensor Board - IMB400: Video Camera Chip (OmniVision OV7670), Audio Capture (Wolfson WM8940), Miniature Speaker, Microphone, PIR Motion Sensor
 +
* Structural Health Monitoring Board - ISM400: 3-axis accelerometer, temperature, humidity and light sensors and single‐channel analog input to 16‐bit ADC
 
* [http://enaweb.eng.yale.edu/drupal/node/30 Enalab Camera board] OV7649 VGA imager chip
 
* [http://enaweb.eng.yale.edu/drupal/node/30 Enalab Camera board] OV7649 VGA imager chip
[[Image:iMote2-enalab.jpg|thumb|iMote2 with the enalab camera board.]]
 
  
<b>Available jtag programmers:</b>
+
==== Interface Board ====
 +
* Interface board - IIB2400: jtag interface, dual usb ports
 +
 
 +
==== JTAG Programmers ====
 +
The following programmers operate by means of OpenOCD:
 +
* Olimex [http://www.olimex.com/dev/arm-usb-tiny.html ARM-USB-TINY]
 +
* Olimex [http://www.olimex.com/dev/arm-usb-tiny-h.html ARM-USB-TINY-H]
 +
* Amontec JTAGKey
 +
* JTAG Wiggler
 +
 
 +
 
 +
== TinyOS Support ==
 +
There is TinyOS support for both tinyos-1.x and tinyos-2.x versions. The iMote2 platform is part of the core tinyos-2.x distribution. There have been contributions aiming at porting most of the features from T1 to T2<ref>[[T2_on_Imote2| TinyOS 2 on iMote2. Status of TinyOS 2 support for iMote2. TinyOS wiki.]]</ref>. Hereafter you can find instructions and documentation links regarding setting up the iMote2 development environment for T2. Compiler instructions may be used as well for T1 installations as long as you update the executable names of the compiler invokes since they might be different depending on the gcc installation method. Although this section is focused on T2, you may find links to iMote2-T1 in references <ref>[http://www.xbow.jp/imote2install.doc T1 for iMote2. Crossbow Inc.]</ref> <ref>[http://www.eecs.harvard.edu/~konrad/projects/imote2Camera/IMote2-Installation-Instructions.html| iMote2 installation instructions. Includes T1. Konrad Lorincz]</ref>.
 +
 
 +
Generally, any programmer will have to deal with three issues to have a fully operable TinyOS for a given platform: TinyOS tree installation, cross compiler installation for the platform processor and a programmer able to flash (program) motes and communicate with them. Unlike other platforms such as micaZ, iMote2 does not have such an easy-to-install development environment (as of Nov. 2010) since its manufacturer ([http://www.memsic.com Memsic]) does not provide a programming interface operable in T2 and its processor manufacturer ([http://www.marvell.com Marvell]) has not released a compiler which integrates easily with our environment. However, it is still possible to set up a complete development environment for iMote2-TinyOS 2. Next three subsections focus on every aforementioned topic in order to enhance what you find in the regular installation instructions <ref name="inst-TOS211">[[Installing_TinyOS_2.1.1| Installing TinyOS 2.1.1. TinyOS regular installation method. TinyOS wiki]]</ref> on this wiki.
 +
 
 +
 
 +
=== XScale Compiler  ===
 +
Since coding and compilation are performed on a separate system from iMote2 (another computer) a [http://en.wikipedia.org/wiki/Cross_compiler cross compiler] is required. There are currently many sources pointing out different methods to obtain a xcompiler ready to use, but generally they can be sorted into three groups:
 +
# Packaged compilers newer than GCC 4.x
 +
# Packaged compilers of GCC 3.4.3
 +
# Self-compiled compilers from source (usually of GCC 3.4.3)
 +
Such three methods are briefly described hereafter. If you wish further details on this topic see [[IMote2_Compiler|iMote2 Compiler]] on this wiki <ref>[[IMote2_Compiler| iMote2 Compiler. TinyOS wiki.]]</ref>.
 +
 
 +
==== Packaged compilers newer than GCC 4.x ====
 +
If you have a Debian-based system, this method is probably the easiest of three and may lead you to obtain better exec files. There are currently two available versions: one with elf output and another with eabi output. Both work fine and have been tested for some time at a WSN lab <ref>[http://www.gaps.ssr.upm.es/en/research/wsn/138-compiling-for-an-arm-architecture-imote2-tinyos Compiling for an ARM architecture: iMote2-TinyOS. Experiences at Consolider COMONSENS]</ref> , it is up to you which of the two to use. For further information you may read [http://oa.upm.es/3837/3/tech.rep-10-01_11.pdf Compiling for an ARM architecture: iMote2-TinyOS].
  
* [http://www.olimex.com/dev/arm-usb-tiny.html Olimex JTAG] (linux)
+
* [http://forja.rediris.es/frs/download.php/2004/arm-compiler-none-eabi-4.3.3-3.deb arm-compiler-none-eabi-4.3.3-3.deb]
  
= TinyOS Support =
+
* [http://forja.rediris.es/frs/download.php/1969/arm-compiler-elf_4.1.1-1.deb arm-compiler-elf_4.1.1-1.deb]
There is TinyOS support for both tinyos-1.x and tinyos-2.x versions.  iMote2 platform is part of the core tinyos-2.x distribution. The sections below describe how to install the iMote2 platform for T2 versions, we also provide link to tinyos-1.x installation instructions in references.
 
  
== TinyOS 2.x Support ==
+
As of Nov. 2010, a few minor changes in your TinyOS tree installation are required to use any of these two compilers. It is recommended to check section 7 of ''Compiling for an ARM architecture: iMote2-TinyOS'' <ref>[http://oa.upm.es/3837/3/tech.rep-10-01_11.pdf Compiling for an ARM architecture: iMote2-TinyOS. Technical Report.]</ref> for such changes and hints to optimize your compilation.
Tinyos provides detailed installation [http://docs.tinyos.net/index.php/Windows_Installation instructions] for both windows and linux, containing iMote2 specific instructions. [http://docs.tinyos.net/index.php/Xscale-elf_Debian Debian] specific and more detailed [http://docs.tinyos.net/index.php/Installing_and_Configuring_T2_for_iMote2_on_Windows_XP windows] installation instructions are available.
 
  
Instead of using tinyos-*.rpm (in Step 5 of tinyos instructions), we suggest to update the most current version of the main tinyos-2.x CVS tree.
+
==== Packaged compilers of GCC 3.4.3 ====
 +
TinyOS regular installation uses this method. If you are running Cygwin (Windows) or another Linux distribution (you do not have a Debian-based system) it is unlikely that you can install the previous packages. However, you can still use rpm files for your system. Now, you will need to download three files (newlib, binutils and gcc) instead of one as it happened before.
  
If you do have existing T2 CVS tree (usually in /opt/tinyos-2.x), simply go to the root and do a <tt>cvs update</tt>.
+
==== Self-compiled compilers from source ====
 +
In the event that you cannot use any of the aforementioned methods or you simply want to create from source your own compiler, you will have to download newlib, gcc, binutils and compile them. This option is the longest and most tedious. '''Mac OS users''' may find useful some [[Installing_XScale-ELF_cross_compiler_for_intelmote2_on_Mac_OS_X| particular instructions]] for their operating system <ref>[[Installing_XScale-ELF_cross_compiler_for_intelmote2_on_Mac_OS_X| Installing XScale-ELF cross compiler for intelmote2 on Mac OS X. TinyOS wiki.]]</ref>.
  
If you do not have existing T2 tree, type the following command in your shell prompt from /opt directory.
+
=== JTAG for iMote2 ===
<pre>
+
In order to flash any iMote2, you will need an interface board (IIB2400), a JTAG and a driver to transfer binary files (exe) to the mote over the JTAG cable. Besides Olimex JTAGs (ARM-USB-TINY and ARM-USB-TINY-H), two more cables have been reported work with iMote2: Amontec JTAGKey and JTAG Wiggler. The former can be purchased and the latter can be self-made. In addition, 'Intel(R) JTAG' was one of the first JTAGs utilized for iMote2.
cvs -z3 -d:pserver:anonymous@cvs.sf.net:/cvsroot/tinyos co tinyos-2.x
 
</pre>
 
  
=== Compiling ===
+
[http://openocd.berlios.de/web OpenOCD] is a driver able to operate with JTAG cables on Linux. As of version 0.4, ARM-USB-TINY, Amontec JTAG and JTAG Wiggler are supported. It is expected that ARM-USB-TINY-H will be in the future. Next links can help you installing and setting up OpenOCD for different JTAGs:
 +
* [[OpenOCD_for_IMote2| OpenOCD for iMote2]] - focuses on Olimex ARM-USB-TINY and Amontec JTAG <ref>[[OpenOCD_for_IMote2| OpenOCD for iMote. TinyOS wiki.]]</ref>
 +
* [http://www.cs.columbia.edu/~msz/wsn OpenOCD for ARM-USB-TINY on Ubuntu] - installation script on Ubuntu systems <ref>[http://www.cs.columbia.edu/~msz/wsn Installing TinyOS and IntelMote2 on Ubuntu. Marcin Szczodrak.]</ref>
 +
* [[OpenOCD_for_IMote2_Wiggler| OpenOCD for Wiggler]] - for JTAG Wiggler <ref>[[OpenOCD_for_IMote2_Wiggler| OpenOCD for Wiggler. TinyOS wiki.]]</ref>
  
After the checkout completes, you should be able to compile iMote2 applications just like with any standard platform. For example, to compile Blink, do the following:
+
If you work on Cygwin (Windows), you may use [[jflashmm| JFlahmm]] to flash your motes.
  
 +
== Development Environment Usage  ==
 +
Two steps are described in this section to provide users with a quick check of their development environment for iMote2- TinyOS 2.
 +
 +
=== Compiling an Application ===
 +
Once the TinyOS tree and the compiler are installed, you should be able to compile iMote2 applications just like with any other regular platform. This way, in order to compile Blink, do the following:
 
<pre>
 
<pre>
 
cd $TOSROOT/apps/Blink
 
cd $TOSROOT/apps/Blink
Line 59: Line 94:
 
</pre>
 
</pre>
  
=== Installing ===
+
=== Installing on iMote2 ===
 +
As you have your application executable file on your computer, next step is to transfer it to an iMote2, i.e. programming the mote.
  
Installing iMote2 applications is more complicated, because currently only JTAG interface is supported. You will need to purchase [http://www.xbow.com/Products/productdetails.aspx?sid=262 interface board] from Crossbow and a JTAG programmer (such as [http://www.olimex.com/dev/arm-usb-tiny.html Olimex JTAG]). You will also need special programs that upload binary code to flash using JTAG ([http://docs.tinyos.net/index.php/jflashmm jflashmm] for windows and [http://docs.tinyos.net/index.php/OpenOCD_for_IMote2 OpenOCD]  for linux).
+
If you work on Linux and have a programmer supported by OpenOCD, you can install Blink as follows:
 
 
If you work on Windows and have 'Intel(R) JTAG' programmer, you can install Blink application as follows:
 
  
 
<pre>
 
<pre>
 
cd $TOSROOT/apps/Blink
 
cd $TOSROOT/apps/Blink
make intelmote2 install jflashmm
+
make intelmote2 install openocd
 
</pre>
 
</pre>
  
If you work on Linux and have 'ARM-USB-TINY' programmer, you can install Blink application as follows:
+
If you work on Windows and have 'Intel(R) JTAG' programmer, you can install Blink as follows:
  
 
<pre>
 
<pre>
 
cd $TOSROOT/apps/Blink
 
cd $TOSROOT/apps/Blink
make intelmote2 install openocd
+
make intelmote2 install jflashmm
 
</pre>
 
</pre>
  
= Development =
 
  
There is an [http://docs.tinyos.net/index.php/T2_on_Imote2 ongoing effort] to port most of the features from T1 to [[T2 on Imote2|T2]].
+
== References ==
  
= References =
+
<references/>
  
<b>Documentations</b>
+
=== Other resources not cited ===
* [http://embedded.seattle.intel-research.net/wiki/index.php?title=Main_Page Intel Research PlatformX Wiki]
+
* [http://web.ics.purdue.edu/~paulshin/research_Imote2.html A thorough iMote2 installation on 32-bit systems (Ubuntu 10.04 + TinyOS 2.x + OpenOCD + Olimex ARM-USB-TINY-H JTAG Programmer). Includes a thorough compilation of installation tutorials.] Paul Shin.
* [http://tech.groups.yahoo.com/group/intel-mote2-community/files/ iMote2 datasheets, T1 installation instructions] (requires subscription)
+
* [http://tech.groups.yahoo.com/group/intel-mote2-community/files/ iMote2 files at Yahoo! group. Datasheets, Jflashmm and other resources.] (requires subscription)
* [http://www.xbow.com/Support/wSupportPortal.aspx Crossbow knowledge base] (search for imote2)
+
* [http://docs.tinyos.net/index.php/Imote2_yahoo_group%27s_email_pointers Pointers to useful messages sorted by topic from the Yahoo! group. TinyOS wiki.]
* [http://www.eecs.harvard.edu/~konrad/projects/imote2Camera/IMote2-Installation-Instructions.html T1 installation instructions]
 
* [http://docs.tinyos.net/index.php/T2_on_Imote2 active iMote2 T2 development]
 
* [http://www.cs.columbia.edu/~msz/wsn installing TinyOS and IntelMote2 on Ubuntu 9.10]
 
  
<b>Mailing Lists</b>
+
=== Mailing lists ===
 +
Besides the typical [http://webs.cs.berkeley.edu/tos/community.html TinyOS mailing lists], there are two lists that might be helpful:
 +
* [http://tech.groups.yahoo.com/group/intel-mote2-community/ iMote2 support list] (requires subscription)
 
* [http://enl.usc.edu/pipermail/t2-imote2/ iMote2 T2 support list]
 
* [http://enl.usc.edu/pipermail/t2-imote2/ iMote2 T2 support list]
* [http://tech.groups.yahoo.com/group/intel-mote2-community/ iMote2 support list] (requires subscription)
 
* [http://www.tinyos.net/search.html TinyOS]
 
 
== See also ==
 
*[[Mica2]]
 
  
 
[[Category:Motes]]
 
[[Category:Motes]]

Latest revision as of 14:07, 15 May 2013

IntelMote2 (iMote2) - High-performance Wireless Sensor Network Node

iMote2 mote.

The Imote2 is an advanced wireless sensor node platform developed at Intel Research as part of Platform X <ref>Platform X. Intel Research wiki.</ref>. It is built around the low-power PXA271 XScale CPU and also integrates an IEEE 802.15.4 compliant radio. The design is modular and stackable with interface connectors for expansion boards on both the top and bottom sides, providing a standard set of I/O signals as well as additional high-speed interfaces for application specific I/O.


Hardware Features

  • PXA271 XScale Processor
    • Core Frequency: 13/104/208/312/416 MHz
    • 256 KB SRAM
    • 32 MB SDRAM
    • 32 MB Flash
  • Zigbee (IEEE 802.15.4) Radio (TI CC2420)
  • Mini-USB Client (slave)
    • RS232 console over USB
    • power
  • I-Mote2 Basic Sensor connector (31+ 21 pin connector)
  • Indicators: Tri-color status LED; Power LED; battery charger LED, console LED
  • Switches: on/off slider, Hard reset, Soft reset, User programmable switch
Basic Sensor Board.
iMote2 with the enalab camera board.

Accessories

There is a number of accessories to assist developers in their work. Sensor boards are meant to enable sensing capabilities. Interface boards can behave as gateways between computer and mote and, depending on the TinyOS version, can enable programming over USB ports. JTAG programmers are mainly used in TinyOS 2 for flashing (programming) motes and as gateways.

Users should be aware of the fact that hardware availability may not imply driver existence for every TinyOS version. Consequently, some sensor boards may not have available drivers to operate their functionalities either fully or partially.

Sensor Boards

  • Basic Sensor Board - ITS400: 3 axis accelerometer, temperature, humidity and light sensors and 12-bit analog input
  • Multimedia Sensor Board - IMB400: Video Camera Chip (OmniVision OV7670), Audio Capture (Wolfson WM8940), Miniature Speaker, Microphone, PIR Motion Sensor
  • Structural Health Monitoring Board - ISM400: 3-axis accelerometer, temperature, humidity and light sensors and single‐channel analog input to 16‐bit ADC
  • Enalab Camera board OV7649 VGA imager chip

Interface Board

  • Interface board - IIB2400: jtag interface, dual usb ports

JTAG Programmers

The following programmers operate by means of OpenOCD:


TinyOS Support

There is TinyOS support for both tinyos-1.x and tinyos-2.x versions. The iMote2 platform is part of the core tinyos-2.x distribution. There have been contributions aiming at porting most of the features from T1 to T2<ref> TinyOS 2 on iMote2. Status of TinyOS 2 support for iMote2. TinyOS wiki.</ref>. Hereafter you can find instructions and documentation links regarding setting up the iMote2 development environment for T2. Compiler instructions may be used as well for T1 installations as long as you update the executable names of the compiler invokes since they might be different depending on the gcc installation method. Although this section is focused on T2, you may find links to iMote2-T1 in references <ref>T1 for iMote2. Crossbow Inc.</ref> <ref>iMote2 installation instructions. Includes T1. Konrad Lorincz</ref>.

Generally, any programmer will have to deal with three issues to have a fully operable TinyOS for a given platform: TinyOS tree installation, cross compiler installation for the platform processor and a programmer able to flash (program) motes and communicate with them. Unlike other platforms such as micaZ, iMote2 does not have such an easy-to-install development environment (as of Nov. 2010) since its manufacturer (Memsic) does not provide a programming interface operable in T2 and its processor manufacturer (Marvell) has not released a compiler which integrates easily with our environment. However, it is still possible to set up a complete development environment for iMote2-TinyOS 2. Next three subsections focus on every aforementioned topic in order to enhance what you find in the regular installation instructions <ref name="inst-TOS211"> Installing TinyOS 2.1.1. TinyOS regular installation method. TinyOS wiki</ref> on this wiki.


XScale Compiler

Since coding and compilation are performed on a separate system from iMote2 (another computer) a cross compiler is required. There are currently many sources pointing out different methods to obtain a xcompiler ready to use, but generally they can be sorted into three groups:

  1. Packaged compilers newer than GCC 4.x
  2. Packaged compilers of GCC 3.4.3
  3. Self-compiled compilers from source (usually of GCC 3.4.3)

Such three methods are briefly described hereafter. If you wish further details on this topic see iMote2 Compiler on this wiki <ref> iMote2 Compiler. TinyOS wiki.</ref>.

Packaged compilers newer than GCC 4.x

If you have a Debian-based system, this method is probably the easiest of three and may lead you to obtain better exec files. There are currently two available versions: one with elf output and another with eabi output. Both work fine and have been tested for some time at a WSN lab <ref>Compiling for an ARM architecture: iMote2-TinyOS. Experiences at Consolider COMONSENS</ref> , it is up to you which of the two to use. For further information you may read Compiling for an ARM architecture: iMote2-TinyOS.

As of Nov. 2010, a few minor changes in your TinyOS tree installation are required to use any of these two compilers. It is recommended to check section 7 of Compiling for an ARM architecture: iMote2-TinyOS <ref>Compiling for an ARM architecture: iMote2-TinyOS. Technical Report.</ref> for such changes and hints to optimize your compilation.

Packaged compilers of GCC 3.4.3

TinyOS regular installation uses this method. If you are running Cygwin (Windows) or another Linux distribution (you do not have a Debian-based system) it is unlikely that you can install the previous packages. However, you can still use rpm files for your system. Now, you will need to download three files (newlib, binutils and gcc) instead of one as it happened before.

Self-compiled compilers from source

In the event that you cannot use any of the aforementioned methods or you simply want to create from source your own compiler, you will have to download newlib, gcc, binutils and compile them. This option is the longest and most tedious. Mac OS users may find useful some particular instructions for their operating system <ref> Installing XScale-ELF cross compiler for intelmote2 on Mac OS X. TinyOS wiki.</ref>.

JTAG for iMote2

In order to flash any iMote2, you will need an interface board (IIB2400), a JTAG and a driver to transfer binary files (exe) to the mote over the JTAG cable. Besides Olimex JTAGs (ARM-USB-TINY and ARM-USB-TINY-H), two more cables have been reported work with iMote2: Amontec JTAGKey and JTAG Wiggler. The former can be purchased and the latter can be self-made. In addition, 'Intel(R) JTAG' was one of the first JTAGs utilized for iMote2.

OpenOCD is a driver able to operate with JTAG cables on Linux. As of version 0.4, ARM-USB-TINY, Amontec JTAG and JTAG Wiggler are supported. It is expected that ARM-USB-TINY-H will be in the future. Next links can help you installing and setting up OpenOCD for different JTAGs:

If you work on Cygwin (Windows), you may use JFlahmm to flash your motes.

Development Environment Usage

Two steps are described in this section to provide users with a quick check of their development environment for iMote2- TinyOS 2.

Compiling an Application

Once the TinyOS tree and the compiler are installed, you should be able to compile iMote2 applications just like with any other regular platform. This way, in order to compile Blink, do the following:

cd $TOSROOT/apps/Blink
make intelmote2

Installing on iMote2

As you have your application executable file on your computer, next step is to transfer it to an iMote2, i.e. programming the mote.

If you work on Linux and have a programmer supported by OpenOCD, you can install Blink as follows:

cd $TOSROOT/apps/Blink
make intelmote2 install openocd

If you work on Windows and have 'Intel(R) JTAG' programmer, you can install Blink as follows:

cd $TOSROOT/apps/Blink
make intelmote2 install jflashmm


References

<references/>

Other resources not cited

Mailing lists

Besides the typical TinyOS mailing lists, there are two lists that might be helpful: