<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://anrg.usc.edu/contiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kwame</id>
		<title>Contiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://anrg.usc.edu/contiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kwame"/>
		<link rel="alternate" type="text/html" href="http://anrg.usc.edu/contiki/index.php/Special:Contributions/Kwame"/>
		<updated>2026-10-08T11:08:23Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.26.2</generator>

	<entry>
		<id>http://anrg.usc.edu/contiki/index.php?title=Interfacing_with_Python&amp;diff=1682</id>
		<title>Interfacing with Python</title>
		<link rel="alternate" type="text/html" href="http://anrg.usc.edu/contiki/index.php?title=Interfacing_with_Python&amp;diff=1682"/>
				<updated>2016-04-03T23:28:17Z</updated>
		
		<summary type="html">&lt;p&gt;Kwame: Syntax highlighting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Contiki_tutorials | Back to Contiki Tutorials]]&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
In this tutorial you will learn how to programmatically communicate with the Tmote Sky using the Python programming language. This will enable you to do such things as process data from your mote in real-time. In addition, you can send commands or data back to the mote to impact its operation. The possibilities are endless.&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
This tutorial was written and tested using the following:&lt;br /&gt;
* Contiki 2.7&lt;br /&gt;
* Python 2.7.3 (and [http://pyserial.sourceforge.net/ pySerial])&lt;br /&gt;
* Ubuntu 12.04&lt;br /&gt;
* Tmote Sky&lt;br /&gt;
&lt;br /&gt;
Connect the Tmote Sky to your computer using a USB cable and install the Sky Shell example. See the @Sky Shell@ tutorial for instructions on how to do this. We use this example so that we’ll have data to ensure that we are correctly reading and writing to the mote.&lt;br /&gt;
&lt;br /&gt;
=== Step 1 ===&lt;br /&gt;
&lt;br /&gt;
Create a Python file called serial.py containing the following code:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
import serial&lt;br /&gt;
ser = serial.Serial(&lt;br /&gt;
   port=&amp;#039;/dev/ttyUSB0&amp;#039;,\&lt;br /&gt;
   baudrate=115200,\&lt;br /&gt;
   parity=serial.PARITY_NONE,\&lt;br /&gt;
   stopbits=serial.STOPBITS_ONE,\&lt;br /&gt;
   bytesize=serial.EIGHTBITS,\&lt;br /&gt;
   timeout=0)&lt;br /&gt;
print(&amp;quot;connected to: &amp;quot; + ser.portstr)&lt;br /&gt;
ser.write(&amp;quot;help\n&amp;quot;);&lt;br /&gt;
while True:&lt;br /&gt;
	line = ser.readline();&lt;br /&gt;
	if line:&lt;br /&gt;
		print(line),&lt;br /&gt;
ser.close()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: &lt;br /&gt;
This code assumes the mote you are using for this tutorial is connected to &amp;#039;&amp;#039;/dev/ttyUSB0&amp;#039;&amp;#039;. Please check this using the &amp;#039;&amp;#039;make motelist&amp;#039;&amp;#039; command as shown in the figure below. If the mote you are using is connected to a different device file, please modify the Python code accordingly.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Motelist.jpg|center|Sample output of &amp;#039;&amp;#039;make motelist&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
=== Step 2 ===&lt;br /&gt;
&lt;br /&gt;
Run the Python code using the command:&lt;br /&gt;
&lt;br /&gt;
 python serial.py&lt;br /&gt;
&lt;br /&gt;
You should see output similar to the following:&lt;br /&gt;
 connected to: /dev/ttyUSB0&lt;br /&gt;
 Available commands:&lt;br /&gt;
 ?: shows this help&lt;br /&gt;
 binprint: print binary data in decimal format&lt;br /&gt;
 blink [num]: blink LEDs ([num] times)&lt;br /&gt;
 collect: collect data from the network&lt;br /&gt;
 collect-view-data: sensor data, power consumption, network stats&lt;br /&gt;
 echo &amp;lt;text&amp;gt;: print &amp;lt;text&amp;gt;&lt;br /&gt;
 energy: print energy profile&lt;br /&gt;
 exit: exit shell&lt;br /&gt;
 hd: print binary data in hexadecimal format&lt;br /&gt;
 help: shows this help&lt;br /&gt;
 kill &amp;lt;command&amp;gt;: stop a specific command&lt;br /&gt;
 killall: stop all running commands&lt;br /&gt;
 mac &amp;lt;onoroff&amp;gt;: turn MAC protocol on (1) or off (0)&lt;br /&gt;
 netcmd &amp;lt;command&amp;gt;: run a command on all nodes in the network&lt;br /&gt;
 nodeid: set node ID&lt;br /&gt;
 null: discard input&lt;br /&gt;
 packetize: put data into one packet&lt;br /&gt;
 power: print power profile&lt;br /&gt;
 powerconv: convert power profile to human readable output&lt;br /&gt;
 powertrace [interval]: turn powertracing on or off, with reporting interval &amp;lt;interval&amp;gt;&lt;br /&gt;
 quit: exit shell&lt;br /&gt;
 randwait &amp;lt;maxtime&amp;gt; &amp;lt;command&amp;gt;: wait for a random time before running a command&lt;br /&gt;
 reboot: reboot the system&lt;br /&gt;
 repeat &amp;lt;num&amp;gt; &amp;lt;time&amp;gt; &amp;lt;command&amp;gt;: run a command every &amp;lt;time&amp;gt; seconds&lt;br /&gt;
 rfchannel &amp;lt;channel&amp;gt;: change CC2420 radio channel (11 - 26)&lt;br /&gt;
 routes: dump route list in binary format&lt;br /&gt;
 send &amp;lt;rexmits&amp;gt;: send data to the collector node, with rexmits hop-by-hop retransmissions&lt;br /&gt;
 sense: print out sensor data&lt;br /&gt;
 senseconv: convert &amp;#039;sense&amp;#039; data to human readable format&lt;br /&gt;
 size: print the size of the input&lt;br /&gt;
 time [seconds]: output time in binary format, or set time in seconds since 1970&lt;br /&gt;
 timestamp: prepend a timestamp to data&lt;br /&gt;
 txpower &amp;lt;power&amp;gt;: change CC2420 transmission power (0 - 31)&lt;br /&gt;
 5.0: Contiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Understanding the Code ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
 import serial&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first line will include the module for the serial port API. This API is provided by pySerial.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
ser = serial.Serial(&lt;br /&gt;
    port=&amp;#039;/dev/ttyUSB0&amp;#039;,\&lt;br /&gt;
    baudrate=115200,\&lt;br /&gt;
    parity=serial.PARITY_NONE,\&lt;br /&gt;
    stopbits=serial.STOPBITS_ONE,\&lt;br /&gt;
    bytesize=serial.EIGHTBITS,\&lt;br /&gt;
    timeout=0)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This next line instantiates an object with the appropriate serial port configuration for communication with the Sky mote. The necessary settings are shown in the table below.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin: auto;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|Serial Configuration&lt;br /&gt;
|-&lt;br /&gt;
| Baud rate || 115200&lt;br /&gt;
|-&lt;br /&gt;
| Data bits || 8&lt;br /&gt;
|-&lt;br /&gt;
| Parity || None&lt;br /&gt;
|-&lt;br /&gt;
| Stop bits || 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
 print(&amp;quot;connected to: &amp;quot; + ser.portstr)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The print statement is simply a sanity check. It just reminds us which port we are connected to.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
 ser.write(&amp;quot;help\n&amp;quot;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This line demonstrates how data can be written to the serial port. In this example we send the command &amp;quot;help&amp;quot; to the Sky Shell so that it will send back the list of shell commands it supports.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
while True:&lt;br /&gt;
     line = ser.readline();&lt;br /&gt;
     if line:&lt;br /&gt;
	print(line)&lt;br /&gt;
&amp;lt;/syntaxhighlight &amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here, we read data from the serial port indefinitely and print it out, one line at a time. Note that in this case, &amp;#039;&amp;#039;line&amp;#039;&amp;#039; will typically end with a newline.&lt;br /&gt;
&lt;br /&gt;
To terminate the program, you can use Ctrl + C to send an interrupt signal.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
 ser.close()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This last line never actually gets executed but it shows how the serial resource can be freed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Contiki_tutorials | Back to Contiki Tutorials]]&lt;/div&gt;</summary>
		<author><name>Kwame</name></author>	</entry>

	<entry>
		<id>http://anrg.usc.edu/contiki/index.php?title=Contiki_tutorials&amp;diff=1681</id>
		<title>Contiki tutorials</title>
		<link rel="alternate" type="text/html" href="http://anrg.usc.edu/contiki/index.php?title=Contiki_tutorials&amp;diff=1681"/>
				<updated>2016-02-23T21:11:47Z</updated>
		
		<summary type="html">&lt;p&gt;Kwame: /* List of Tutorials */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main_Page | Back to Main Page]]&lt;br /&gt;
&lt;br /&gt;
== List of Tutorials ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;lt;pre style=&amp;quot;color: red&amp;quot;&amp;gt;Disclaimer: Please note that the following tutorials are a work in progress. Use at your own risk.&amp;lt;/pre&amp;gt;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Completed&lt;br /&gt;
# [[Installation]]&lt;br /&gt;
# [[Hello World]]&lt;br /&gt;
# [[Broadcast Example]]&lt;br /&gt;
# [[Collect View]]&lt;br /&gt;
# [[Contiki build system]]&lt;br /&gt;
# [[Interfacing with Python]]&lt;br /&gt;
# [[Sensor acquisition]] (light, temperature, humidity)&lt;br /&gt;
&lt;br /&gt;
Need review&lt;br /&gt;
# [[Timers]] Tim, Leo&lt;br /&gt;
# [[CFS-Coffee]] Kevin&lt;br /&gt;
&lt;br /&gt;
Starting&lt;br /&gt;
# [[Tutornet]] Pedro, Kwame&lt;br /&gt;
# [[Cooja Simulator]] (Getting started, debugging) Pedro&lt;br /&gt;
# [[Network Stack]] Yash&lt;br /&gt;
# [[CSMA]] Tim, Leo&lt;br /&gt;
# [[RSS measurement]] Nitin&lt;br /&gt;
# [[RPL objective function &amp;amp; simulation using DGRM model in cooja  ]] Ashwini Telang&lt;br /&gt;
# [[RPL UDP]] Jiahao Liang&lt;br /&gt;
# [[MAC protocols in ContikiOS]] Pedro&lt;br /&gt;
# [[RPL Border Router]] Chhavi&lt;br /&gt;
# [[REST example running on Cooja and Sky motes]] Mrunal Muni &lt;br /&gt;
# [[Trickle library]] Subhashini Sundaresan&lt;br /&gt;
# [[Packetbuffer Basics]] Pradipta&lt;br /&gt;
# [[Antelope(Database Management System) - Contiki]] Gopi Krishna&lt;br /&gt;
# [[Mobility of Nodes in Cooja]] Pratyush Deshpande&lt;br /&gt;
# [[Contiki Shell]] Abhilash Nagaraj Hegde&lt;br /&gt;
# [[Contiki Coffee File System]] Zhikun Liu&lt;br /&gt;
# [[Contiki Programming Guide]] Haimo Bai&lt;br /&gt;
# [[Analyse of a real 6LoWPAN network using a Contiki-based sniffer module]] Yash Goyal&lt;br /&gt;
# [[Build your own application in Contiki]] Nitin&lt;br /&gt;
&amp;lt;!--[[Processes]] Yash --&amp;gt;&lt;br /&gt;
&amp;lt;!--[[RPL objective function modification and simulation in cooja]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--# [[Collect-view Code Details]] Pradipta --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: red&amp;quot;&amp;gt;Be sure to include references in your tutorials, especially if you quote material from other sites!&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kwame</name></author>	</entry>

	<entry>
		<id>http://anrg.usc.edu/contiki/index.php?title=Troubleshooting&amp;diff=1674</id>
		<title>Troubleshooting</title>
		<link rel="alternate" type="text/html" href="http://anrg.usc.edu/contiki/index.php?title=Troubleshooting&amp;diff=1674"/>
				<updated>2015-03-21T23:49:53Z</updated>
		
		<summary type="html">&lt;p&gt;Kwame: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main_Page | Back to Main Page]]&lt;br /&gt;
&lt;br /&gt;
===== Permission denied =====&lt;br /&gt;
If you try to connect to a mote and receive a permission error, you may need to add yourself to the dialout group. The error may look something like the following:&lt;br /&gt;
&lt;br /&gt;
 /home/user/contiki/tools/sky/serialdump-linux -b115200 /dev/ttyUSB0&lt;br /&gt;
 connecting to /dev/ttyUSB0 (115200)&lt;br /&gt;
 /dev/ttyUSB0: Permission denied&lt;br /&gt;
 make: *** [login] Error 255&lt;br /&gt;
&lt;br /&gt;
Use the following command (replace &amp;lt;username&amp;gt; with your account):&lt;br /&gt;
&lt;br /&gt;
 sudo adduser &amp;lt;username&amp;gt; dialout&lt;br /&gt;
&lt;br /&gt;
-OR-&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -a -G dialout &amp;lt;username&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These two commands are equivalent. They both will add username to the dialout group. &amp;#039;&amp;#039;&amp;#039;You will then have to re-login to or reboot your computer for the changes to take effect.&amp;#039;&amp;#039;&amp;#039; You should now have read/write permissions to your USB serial devices. It is not necessary to remove any packages.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Trying the following command which should give  the desired output&lt;br /&gt;
&lt;br /&gt;
  make TARGET=sky sky-motelist &lt;br /&gt;
&lt;br /&gt;
(sky can be replaced by the mote which is being used e.g z1)&lt;br /&gt;
&lt;br /&gt;
The desired output&lt;br /&gt;
&lt;br /&gt;
  ../../tools/sky/motelist-linux &lt;br /&gt;
  Reference  Device           Description &lt;br /&gt;
  ---------- ---------------- --------------------------------------------- &lt;br /&gt;
  M4A7J5HF   /dev/ttyUSB0     Moteiv tmote sky &lt;br /&gt;
&lt;br /&gt;
This means it is a common serial port connection problem with Ubuntu 12.04 LTS.&lt;br /&gt;
&lt;br /&gt;
To resolve the issue do the following.&lt;br /&gt;
 &lt;br /&gt;
  sudo apt-get remove modemmanager&lt;br /&gt;
  sudo adduser $USER dialout (or)&lt;br /&gt;
  sudo usermod -a -G dialout $USER // adds the user to the dialout&lt;br /&gt;
  // replace $USER by the username&lt;br /&gt;
  sudo reboot&lt;br /&gt;
  id -Gn&lt;br /&gt;
&lt;br /&gt;
And check now if the device is attached to the dialout user group.&lt;br /&gt;
&lt;br /&gt;
  ls -l /dev/ttyUSB0&lt;br /&gt;
  crw-rw---- 1 root dialout 188, 0 Mar  5 19:58 /dev/ttyUSB0 &lt;br /&gt;
&lt;br /&gt;
There is no need to mess with dev rules or permissions. &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Issue with make login =====&lt;br /&gt;
If you are trying to execute the serial-dump application (contiki/tools/sky/serialdump-linux) and see the message: &amp;quot;No such file or directory&amp;quot; or &amp;quot;Command not found&amp;quot;, it means that you are running in a 64-bit operating system that does not have proper 32-bit libraries installed. Since serialdump-linux is a pre-compiled 32-bit tool you need to execute the following command to install the necessary libraries:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;sudo apt-get install ia32-libs&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On newer versions of Ubuntu, try:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;sudo apt-get install libc6-i386&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the above does not work &lt;br /&gt;
&lt;br /&gt;
Then, try few commands like:&lt;br /&gt;
&lt;br /&gt;
  ldd serialdump-linux&lt;br /&gt;
&lt;br /&gt;
The output look similar to the following:&lt;br /&gt;
&lt;br /&gt;
  ldd serialdump-linux&lt;br /&gt;
        linux-gate.so.1 =&amp;gt;  (0xf772d000)&lt;br /&gt;
        libc.so.6 =&amp;gt; /lib32/libc.so.6 (0xf75b4000)&lt;br /&gt;
        /lib/ld-linux.so.2 (0xf772e000)&lt;br /&gt;
&lt;br /&gt;
Then it means that you have to install 32-bit packages. &lt;br /&gt;
Remember to add i386 architecture or you won&amp;#039;t be able to install 32-bit packages:&lt;br /&gt;
  sudo dpkg --add-architecture i386&lt;br /&gt;
  sudo apt-get update&lt;br /&gt;
  sudo apt-get install ia32-libs&lt;br /&gt;
&lt;br /&gt;
===== Problem running Cooja =====&lt;br /&gt;
If you have a problem regarding using the correct version of Java, please check that your default Java compiler is set correctly. You can use the following command:&lt;br /&gt;
&lt;br /&gt;
  sudo update-alternatives --config java&lt;br /&gt;
&lt;br /&gt;
===== Problem with compling in Cooja =====&lt;br /&gt;
If you get an error in the linking there may be 2 possible places u need to check to correct them.&lt;br /&gt;
&lt;br /&gt;
            LD        example-netflood.sky&lt;br /&gt;
            /usr/lib/gcc/msp430/4.6.3/../../../../msp430/lib/mmpy-16/libc.a(rand.o):(.debug_info+0xd3): &lt;br /&gt;
            relocation truncated to fit: R_MSP430_16_BYTE against `no symbol&amp;#039;&lt;br /&gt;
            collect2: ld returned 1 exit status&lt;br /&gt;
            make: *** [example-netflood.sky] Error 1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
First, check the line near 132 in file : contiki/cpu/msp430/Makefile.msp430&lt;br /&gt;
&lt;br /&gt;
which looks like the following&lt;br /&gt;
&lt;br /&gt;
         CFLAGSNO = -Wall -mmcu=$(CC_MCU) -g $(CFLAGSWERROR)&lt;br /&gt;
&lt;br /&gt;
and delete the option “-g”.&lt;br /&gt;
&lt;br /&gt;
The line should look like :&lt;br /&gt;
&lt;br /&gt;
        CFLAGSNO = -Wall -mmcu=$(CC_MCU) $(CFLAGSWERROR)&lt;br /&gt;
&lt;br /&gt;
Use the second one if the first doesnot work.&lt;br /&gt;
&lt;br /&gt;
Second one is go to the Makefile of the currently compling program and remove the line which looks similar to the following.&lt;br /&gt;
&lt;br /&gt;
        CFLAGS += -g&lt;/div&gt;</summary>
		<author><name>Kwame</name></author>	</entry>

	<entry>
		<id>http://anrg.usc.edu/contiki/index.php?title=Troubleshooting&amp;diff=1673</id>
		<title>Troubleshooting</title>
		<link rel="alternate" type="text/html" href="http://anrg.usc.edu/contiki/index.php?title=Troubleshooting&amp;diff=1673"/>
				<updated>2015-02-24T22:20:13Z</updated>
		
		<summary type="html">&lt;p&gt;Kwame: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main_Page | Back to Main Page]]&lt;br /&gt;
&lt;br /&gt;
===== Permission denied =====&lt;br /&gt;
If you try to connect to a mote and receive a permission error, you may need to add yourself to the dialout group. The error may look something like the following:&lt;br /&gt;
&lt;br /&gt;
 /home/user/contiki/tools/sky/serialdump-linux -b115200 /dev/ttyUSB0&lt;br /&gt;
 connecting to /dev/ttyUSB0 (115200)&lt;br /&gt;
 /dev/ttyUSB0: Permission denied&lt;br /&gt;
 make: *** [login] Error 255&lt;br /&gt;
&lt;br /&gt;
Use the following command (replace &amp;lt;username&amp;gt; with your account):&lt;br /&gt;
&lt;br /&gt;
 sudo adduser &amp;lt;username&amp;gt; dialout&lt;br /&gt;
&lt;br /&gt;
-OR-&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -a -G dialout &amp;lt;username&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These two commands are equivalent. They both will add username to the dialout group. &amp;#039;&amp;#039;&amp;#039;You will then have to re-login to or reboot your computer for the changes to take effect.&amp;#039;&amp;#039;&amp;#039; You should now have read/write permissions to your USB serial devices. It is not necessary to remove any packages.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Trying the following command which should give  the desired output&lt;br /&gt;
&lt;br /&gt;
  make TARGET=sky sky-motelist &lt;br /&gt;
&lt;br /&gt;
(sky can be replaced by the mote which is being used e.g z1)&lt;br /&gt;
&lt;br /&gt;
The desired output&lt;br /&gt;
&lt;br /&gt;
  ../../tools/sky/motelist-linux &lt;br /&gt;
  Reference  Device           Description &lt;br /&gt;
  ---------- ---------------- --------------------------------------------- &lt;br /&gt;
  M4A7J5HF   /dev/ttyUSB0     Moteiv tmote sky &lt;br /&gt;
&lt;br /&gt;
This means it is a common serial port connection problem with Ubuntu 12.04 LTS.&lt;br /&gt;
&lt;br /&gt;
To resolve the issue do the following.&lt;br /&gt;
 &lt;br /&gt;
  sudo apt-get remove modemmanager&lt;br /&gt;
  sudo adduser $USER dialout (or)&lt;br /&gt;
  sudo usermod -a -G dialout $USER // adds the user to the dialout&lt;br /&gt;
  // replace $USER by the username&lt;br /&gt;
  sudo reboot&lt;br /&gt;
  id -Gn&lt;br /&gt;
&lt;br /&gt;
And check now if the device is attached to the dialout user group.&lt;br /&gt;
&lt;br /&gt;
  ls -l /dev/ttyUSB0&lt;br /&gt;
  crw-rw---- 1 root dialout 188, 0 Mar  5 19:58 /dev/ttyUSB0 &lt;br /&gt;
&lt;br /&gt;
There is no need to mess with dev rules or permissions. &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Issue with make login =====&lt;br /&gt;
If you are trying to execute the serial-dump application (contiki/tools/sky/serialdump-linux) and see the message: &amp;quot;No such file or directory&amp;quot; or &amp;quot;Command not found&amp;quot;, it means that you are running in a 64-bit operating system that does not have proper 32-bit libraries installed. Since serialdump-linux is a pre-compiled 32-bit tool you need to execute the following command to install the necessary libraries:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;sudo apt-get install ia32-libs&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the above does not work &lt;br /&gt;
&lt;br /&gt;
Then, try few commands like:&lt;br /&gt;
&lt;br /&gt;
  ldd serialdump-linux&lt;br /&gt;
&lt;br /&gt;
The output look similar to the following:&lt;br /&gt;
&lt;br /&gt;
  ldd serialdump-linux&lt;br /&gt;
        linux-gate.so.1 =&amp;gt;  (0xf772d000)&lt;br /&gt;
        libc.so.6 =&amp;gt; /lib32/libc.so.6 (0xf75b4000)&lt;br /&gt;
        /lib/ld-linux.so.2 (0xf772e000)&lt;br /&gt;
&lt;br /&gt;
Then it means that you have to install 32-bit packages. &lt;br /&gt;
Remember to add i386 architecture or you won&amp;#039;t be able to install 32-bit packages:&lt;br /&gt;
  sudo dpkg --add-architecture i386&lt;br /&gt;
  sudo apt-get update&lt;br /&gt;
  sudo apt-get install ia32-libs&lt;br /&gt;
&lt;br /&gt;
===== Problem running Cooja =====&lt;br /&gt;
If you have a problem regarding using the correct version of Java, please check that your default Java compiler is set correctly. You can use the following command:&lt;br /&gt;
&lt;br /&gt;
  sudo update-alternatives --config java&lt;br /&gt;
&lt;br /&gt;
===== Problem with compling in Cooja =====&lt;br /&gt;
If you get an error in the linking there may be 2 possible places u need to check to correct them.&lt;br /&gt;
&lt;br /&gt;
            LD        example-netflood.sky&lt;br /&gt;
            /usr/lib/gcc/msp430/4.6.3/../../../../msp430/lib/mmpy-16/libc.a(rand.o):(.debug_info+0xd3): &lt;br /&gt;
            relocation truncated to fit: R_MSP430_16_BYTE against `no symbol&amp;#039;&lt;br /&gt;
            collect2: ld returned 1 exit status&lt;br /&gt;
            make: *** [example-netflood.sky] Error 1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
First, check the line near 132 in file : contiki/cpu/msp430/Makefile.msp430&lt;br /&gt;
&lt;br /&gt;
which looks like the following&lt;br /&gt;
&lt;br /&gt;
         CFLAGSNO = -Wall -mmcu=$(CC_MCU) -g $(CFLAGSWERROR)&lt;br /&gt;
&lt;br /&gt;
and delete the option “-g”.&lt;br /&gt;
&lt;br /&gt;
The line should look like :&lt;br /&gt;
&lt;br /&gt;
        CFLAGSNO = -Wall -mmcu=$(CC_MCU) $(CFLAGSWERROR)&lt;br /&gt;
&lt;br /&gt;
Use the second one if the first doesnot work.&lt;br /&gt;
&lt;br /&gt;
Second one is go to the Makefile of the currently compling program and remove the line which looks similar to the following.&lt;br /&gt;
&lt;br /&gt;
        CFLAGS += -g&lt;/div&gt;</summary>
		<author><name>Kwame</name></author>	</entry>

	<entry>
		<id>http://anrg.usc.edu/contiki/index.php?title=Contiki_tutorials&amp;diff=439</id>
		<title>Contiki tutorials</title>
		<link rel="alternate" type="text/html" href="http://anrg.usc.edu/contiki/index.php?title=Contiki_tutorials&amp;diff=439"/>
				<updated>2014-08-07T18:18:02Z</updated>
		
		<summary type="html">&lt;p&gt;Kwame: /* List of Tutorials */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main_Page | Back to Main Page]]&lt;br /&gt;
&lt;br /&gt;
== List of Tutorials ==&lt;br /&gt;
&lt;br /&gt;
Completed&lt;br /&gt;
# [[Installation]]&lt;br /&gt;
# [[Hello World]]&lt;br /&gt;
# [[Broadcast Example]]&lt;br /&gt;
# [[Collect View]]&lt;br /&gt;
# [[Contiki build system]]&lt;br /&gt;
# [[Interfacing with Python]]&lt;br /&gt;
# [[Sensor acquisition]] (light, temperature, humidity)&lt;br /&gt;
&lt;br /&gt;
Need review&lt;br /&gt;
# [[Timers]] Tim, Leo&lt;br /&gt;
# [[CFS-Coffee]] Kevin&lt;br /&gt;
&lt;br /&gt;
Starting&lt;br /&gt;
# [[Tutornet]] Pedro, Kwame&lt;br /&gt;
# [[Cooja Simulator]] (Getting started, debugging) Pedro&lt;br /&gt;
# [[Protocols stack]]&lt;br /&gt;
# [[CSMA]] Tim, Leo&lt;br /&gt;
# [[RSS measurement]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--[[Processes]] Yash --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: red&amp;quot;&amp;gt;Be sure to include references in your tutorials, especially if you quote material from other sites!&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kwame</name></author>	</entry>

	<entry>
		<id>http://anrg.usc.edu/contiki/index.php?title=Troubleshooting&amp;diff=420</id>
		<title>Troubleshooting</title>
		<link rel="alternate" type="text/html" href="http://anrg.usc.edu/contiki/index.php?title=Troubleshooting&amp;diff=420"/>
				<updated>2014-07-24T22:33:12Z</updated>
		
		<summary type="html">&lt;p&gt;Kwame: /* Permission denied */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main_Page | Back to Main Page]]&lt;br /&gt;
&lt;br /&gt;
===== Permission denied =====&lt;br /&gt;
If you try to connect to a mote and receive a permission error, you may need to add yourself to the dialout group. The error may look something like the following:&lt;br /&gt;
&lt;br /&gt;
 /home/user/contiki/tools/sky/serialdump-linux -b115200 /dev/ttyUSB0&lt;br /&gt;
 connecting to /dev/ttyUSB0 (115200)&lt;br /&gt;
 /dev/ttyUSB0: Permission denied&lt;br /&gt;
 make: *** [login] Error 255&lt;br /&gt;
&lt;br /&gt;
Use the following command (replace &amp;lt;username&amp;gt; with your account):&lt;br /&gt;
&lt;br /&gt;
 sudo adduser &amp;lt;username&amp;gt; dialout&lt;br /&gt;
&lt;br /&gt;
-OR-&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -a -G dialout &amp;lt;username&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These two commands are equivalent. They both will add username to the dialout group. &amp;#039;&amp;#039;&amp;#039;You will then have to re-login to or reboot your computer for the changes to take effect.&amp;#039;&amp;#039;&amp;#039; You should now have read/write permissions to your USB serial devices. It is not necessary to remove any packages.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Trying the following command which should give  the desired output&lt;br /&gt;
&lt;br /&gt;
  make TARGET=sky sky-motelist &lt;br /&gt;
&lt;br /&gt;
(sky can be replaced by the mote which is being used e.g z1)&lt;br /&gt;
&lt;br /&gt;
The desired output&lt;br /&gt;
&lt;br /&gt;
  ../../tools/sky/motelist-linux &lt;br /&gt;
  Reference  Device           Description &lt;br /&gt;
  ---------- ---------------- --------------------------------------------- &lt;br /&gt;
  M4A7J5HF   /dev/ttyUSB0     Moteiv tmote sky &lt;br /&gt;
&lt;br /&gt;
This means it is a common serial port connection problem with Ubuntu 12.04 LTS.&lt;br /&gt;
&lt;br /&gt;
To resolve the issue do the following.&lt;br /&gt;
 &lt;br /&gt;
  sudo apt-get remove modemmanager&lt;br /&gt;
  sudo adduser $USER dialout (or)&lt;br /&gt;
  sudo usermod -a -G dialout $USER // adds the user to the dialout&lt;br /&gt;
  // replace $USER by the username&lt;br /&gt;
  sudo reboot&lt;br /&gt;
  id -Gn&lt;br /&gt;
&lt;br /&gt;
And check now if the device is attached to the dialout user group.&lt;br /&gt;
&lt;br /&gt;
  ls -l /dev/ttyUSB0&lt;br /&gt;
  crw-rw---- 1 root dialout 188, 0 Mar  5 19:58 /dev/ttyUSB0 &lt;br /&gt;
&lt;br /&gt;
There is no need to mess with dev rules or permissions. &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Issue with make login =====&lt;br /&gt;
If you are trying to execute the serial-dump application (contiki/tools/sky/serialdump-linux) and see the message: &amp;quot;No such file or directory&amp;quot; or &amp;quot;Command not found&amp;quot;, it means that you are running in a 64-bit operating system that does not have proper 32-bit libraries installed. Since serialdump-linux is a pre-compiled 32-bit tool you need to execute the following command to install the necessary libraries:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;sudo apt-get install ia32-libs&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the above does not work &lt;br /&gt;
&lt;br /&gt;
Then, try few commands like:&lt;br /&gt;
&lt;br /&gt;
  ldd serialdump-linux&lt;br /&gt;
&lt;br /&gt;
The output look similar to the following:&lt;br /&gt;
&lt;br /&gt;
  ldd serialdump-linux&lt;br /&gt;
        linux-gate.so.1 =&amp;gt;  (0xf772d000)&lt;br /&gt;
        libc.so.6 =&amp;gt; /lib32/libc.so.6 (0xf75b4000)&lt;br /&gt;
        /lib/ld-linux.so.2 (0xf772e000)&lt;br /&gt;
&lt;br /&gt;
Then it means that you have to install 32-bit packages. &lt;br /&gt;
Remember to add i386 architecture or you won&amp;#039;t be able to install 32-bit packages:&lt;br /&gt;
  sudo dpkg --add-architecture i386&lt;br /&gt;
  sudo apt-get update&lt;br /&gt;
  sudo apt-get install ia32-libs&lt;br /&gt;
&lt;br /&gt;
===== Problem with compling in Cooja =====&lt;br /&gt;
If you get an error in the linking there may be 2 possible places u need to check to correct them.&lt;br /&gt;
&lt;br /&gt;
            LD        example-netflood.sky&lt;br /&gt;
            /usr/lib/gcc/msp430/4.6.3/../../../../msp430/lib/mmpy-16/libc.a(rand.o):(.debug_info+0xd3): &lt;br /&gt;
            relocation truncated to fit: R_MSP430_16_BYTE against `no symbol&amp;#039;&lt;br /&gt;
            collect2: ld returned 1 exit status&lt;br /&gt;
            make: *** [example-netflood.sky] Error 1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
First, check the line near 132 in file : contiki/cpu/msp430/Makefile.msp430&lt;br /&gt;
&lt;br /&gt;
which looks like the following&lt;br /&gt;
&lt;br /&gt;
         CFLAGSNO = -Wall -mmcu=$(CC_MCU) -g $(CFLAGSWERROR)&lt;br /&gt;
&lt;br /&gt;
and delete the option “-g”.&lt;br /&gt;
&lt;br /&gt;
The line should look like :&lt;br /&gt;
&lt;br /&gt;
        CFLAGSNO = -Wall -mmcu=$(CC_MCU) $(CFLAGSWERROR)&lt;br /&gt;
&lt;br /&gt;
Use the second one if the first doesnot work.&lt;br /&gt;
&lt;br /&gt;
Second one is go to the Makefile of the currently compling program and remove the line which looks similar to the following.&lt;br /&gt;
&lt;br /&gt;
        CFLAGS += -g&lt;/div&gt;</summary>
		<author><name>Kwame</name></author>	</entry>

	<entry>
		<id>http://anrg.usc.edu/contiki/index.php?title=Team&amp;diff=419</id>
		<title>Team</title>
		<link rel="alternate" type="text/html" href="http://anrg.usc.edu/contiki/index.php?title=Team&amp;diff=419"/>
				<updated>2014-07-23T22:31:15Z</updated>
		
		<summary type="html">&lt;p&gt;Kwame: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Suvil Deora&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Timothy Ferrell&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Lakshmi Phani Gadde&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
[http://www-scf.usc.edu/~pdasilva/ &amp;#039;&amp;#039;&amp;#039;Pedro Henrique Gomes&amp;#039;&amp;#039;&amp;#039;] is a Ph.D. student at the University of Southern California.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Nitin Jain&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Leo Linsky&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rahul Madduluri&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Nikhil Narang&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Deepanker Parikh&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Bhavana Srinivas&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Jason Tran&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
[http://www-scf.usc.edu/~kwamelaw/ &amp;#039;&amp;#039;&amp;#039;Kwame Wright&amp;#039;&amp;#039;&amp;#039;] is a Ph.D. student in the Autonomous Networks Research Group at the University of Southern California.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Shanpei Zhou&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;</summary>
		<author><name>Kwame</name></author>	</entry>

	<entry>
		<id>http://anrg.usc.edu/contiki/index.php?title=Rime&amp;diff=418</id>
		<title>Rime</title>
		<link rel="alternate" type="text/html" href="http://anrg.usc.edu/contiki/index.php?title=Rime&amp;diff=418"/>
				<updated>2014-07-23T22:14:25Z</updated>
		
		<summary type="html">&lt;p&gt;Kwame: Created page with &amp;quot;&amp;#039;&amp;#039;&amp;#039;Here is an introduction to Rime&amp;#039;&amp;#039;&amp;#039;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Here is an introduction to Rime&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;</summary>
		<author><name>Kwame</name></author>	</entry>

	<entry>
		<id>http://anrg.usc.edu/contiki/index.php?title=Contiki_tutorials&amp;diff=412</id>
		<title>Contiki tutorials</title>
		<link rel="alternate" type="text/html" href="http://anrg.usc.edu/contiki/index.php?title=Contiki_tutorials&amp;diff=412"/>
				<updated>2014-05-01T23:12:08Z</updated>
		
		<summary type="html">&lt;p&gt;Kwame: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main_Page | Back to Main Page]]&lt;br /&gt;
&lt;br /&gt;
== List of Tutorials ==&lt;br /&gt;
&lt;br /&gt;
Completed&lt;br /&gt;
&lt;br /&gt;
# [[Installation]]&lt;br /&gt;
# [[Hello World]]&lt;br /&gt;
# [[Broadcast Example]]&lt;br /&gt;
# [[Collect View]]&lt;br /&gt;
# [[Contiki build system]]&lt;br /&gt;
&lt;br /&gt;
Need review&lt;br /&gt;
&lt;br /&gt;
# [[Interfacing with Python]]&lt;br /&gt;
# [[Timers]] Tim, Leo&lt;br /&gt;
# [[CFS-Coffee]] Kevin&lt;br /&gt;
&lt;br /&gt;
Starting&lt;br /&gt;
# [[Tutornet]] Pedro, Kwame&lt;br /&gt;
# [[Cooja Simulator]] (Getting started, debugging) Pedro&lt;br /&gt;
# [[Protocols stack]]&lt;br /&gt;
# [[CSMA]] Tim, Leo&lt;br /&gt;
# [[RSS measurement]]&lt;br /&gt;
# [[Sensor acquisition]] (light, temperature) Kwame&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--[[Processes]] Yash --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: red&amp;quot;&amp;gt;Be sure to include references in your tutorials, especially if you quote material from other sites!&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kwame</name></author>	</entry>

	<entry>
		<id>http://anrg.usc.edu/contiki/index.php?title=Meeting_Logs&amp;diff=411</id>
		<title>Meeting Logs</title>
		<link rel="alternate" type="text/html" href="http://anrg.usc.edu/contiki/index.php?title=Meeting_Logs&amp;diff=411"/>
				<updated>2014-04-30T18:53:39Z</updated>
		
		<summary type="html">&lt;p&gt;Kwame: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Feb/7 ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Secretary:&amp;#039;&amp;#039;&amp;#039; Kwame&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Meeting summary:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Professor Bhaskar gave us his wishlist. See a brief outline at [[Wishlist]].&lt;br /&gt;
&lt;br /&gt;
We got the Contiki oscilloscope up and running, and played around with it using two motes.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;For next week:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Suvil is going to investigate options for a mailing list and also get the issue with uploading images to the wiki fixed.&lt;br /&gt;
&lt;br /&gt;
Nikhil will set up a Google Drive share for us to use for prototyping our tutorials when appropriate. It would allow for us to collaboratively edit in real-time and provide us all the conveniences of a modern word processor (spell check, etc.) We should probably discuss this more next time.&lt;br /&gt;
&lt;br /&gt;
Yash will spend the time catching up and going through our existing tutorials.&lt;br /&gt;
&lt;br /&gt;
Lakshmi has graciously volunteered to present Cristian&amp;#039;s algorithm to us.&lt;br /&gt;
&lt;br /&gt;
Nikhil, Bhavana, Rahul, and Deepanker will start a new tutorial for using the Oscilloscope.&lt;br /&gt;
&lt;br /&gt;
Kevin will explore methods for on-board data storage on the sky mote, both volatile and non-volatile.&lt;br /&gt;
&lt;br /&gt;
Pedro, Suvil, and Kwame will work on running Contiki on the testbed and starting a tutorial. Also, thinking about how we can refactor some of our theoretical tutorials to be more activity oriented.&lt;br /&gt;
&lt;br /&gt;
Everyone should update their tutorials to include the primary contributors. Perhaps somewhere at the end.&lt;br /&gt;
&lt;br /&gt;
== Feb/14 ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Secretary:&amp;#039;&amp;#039;&amp;#039; Pedro&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Meeting summary:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Lakshmi presented the paper [[Probabilistic Clock Synchronization http://kom.aau.dk/~rlo/lectures/algoAndArchIII_2009/ChristiansAlgorithm.pdf]]. We had a very interesting discussion about the terms and concepts behind synchronization and clock in network nodes. We might in the future see how this algorithm can be implemented in a WSN or check whether its main ideas are already implemented in the &amp;quot;Implicit network time synchronization&amp;quot;, present in ContikiOS ([http://contiki.sourceforge.net/docs/2.6/a01741.html])&lt;br /&gt;
&lt;br /&gt;
Everyone gave an updated about what have been done during last week. We have some material for two tutorials: the &amp;#039;&amp;#039;Oscilloscope&amp;#039;&amp;#039; and &amp;#039;&amp;#039;Coffee File System&amp;#039;&amp;#039;. This material is yet in the Google Doc create for prototyping and should be posted in the Wiki soon.&lt;br /&gt;
&lt;br /&gt;
Kwame guided the group in the first 4 sessions of ContikiOS Crash Course [[File:Seniot09cccc-notes.pdf]]. We played with LEDs and push button. This example should give a new tutorial on how to use all the sensors/actuators (light, temperature, push button, etc.) on the motes.&lt;br /&gt;
&lt;br /&gt;
We decided that each week one person will be responsible for creating this meeting log, so everyone can keep track of what has been discussed every week. Below we have the expected date of our next meetings and a tentative assignment.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;For next week:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Kevin will give a brief talk about Coffee file system and show us the material he obtained and the tutorial he started to write.&lt;br /&gt;
&lt;br /&gt;
Yash will start to study and collect material about processes and protothreads. He may give a talk about these topics in two weeks.&lt;br /&gt;
&lt;br /&gt;
Nikhil, Bhavana, Rahul, and Deepanker will keep working on the Oscilloscope tutorial.&lt;br /&gt;
&lt;br /&gt;
Pedro and Kwame will start to work on the Tutornet testbed.&lt;br /&gt;
&lt;br /&gt;
Suvil will fix some issues we are facing in the Wiki with code formatting and help us with account creation/setup of the testbed.&lt;br /&gt;
&lt;br /&gt;
== Feb/21 ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Secretary:&amp;#039;&amp;#039;&amp;#039; Suvil&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Meeting summary:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Kevin gave a presentation about Coffee File System. He showed the main interface and functions that can be used by Tmote Sky. He also showed an example where a node was programmed to create and write 3 different files on Flash Memory and after reboot output the content of the files reading then from the memory. The presentation slides can be found here:[] and the example code can be found here:[]. He started to create a tutorial on Coffee on the shared Doc file and you may create a tutorial about this topic in our Wiki soon.&lt;br /&gt;
&lt;br /&gt;
We went through the example in: examples/rime/example-neighbors.c, suggested by Bhavana. Basically this example makes all node generate beacons and create a list of neighbors of each node. It prints out the list of neighbors with the corresponding RSSI value.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;For next week:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
We should continue to work on the tutorials, trying to polish and review them for final publication.&lt;br /&gt;
&lt;br /&gt;
== Feb/28 ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Secretary:&amp;#039;&amp;#039;&amp;#039; Leo&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Meeting summary:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Pedro gave a presentation of a few of the features available in the Cooja simulator. Some of what he covered, which will be put in the Cooja tutorial, includes how to build Cooja from the terminal and automatically start a simulation, locate source files for debugging, and use the single-step and breakpoint debugging tools available for debugging each node. Afterwards, we looked at examples-neighbors.c in more detail, noting the size of the data structures and the way certain values were calculated, such as RSSI. Lastly, we briefly looked over some of the Contiki OS files in the documentation and flipped through a comprehensive Contiki presentation here [http://www.ee.kth.se/~mikaelj/wsn_course/contiki-course-kth-9oct2008-draft.pdf].&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;For next week:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Several more tutorials should be done by our next meeting.&lt;br /&gt;
&lt;br /&gt;
== Mar/07 ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Secretary:&amp;#039;&amp;#039;&amp;#039; Nikhil&lt;br /&gt;
&lt;br /&gt;
== Mar/14 ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Secretary:&amp;#039;&amp;#039;&amp;#039; Kwame&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Meeting summary:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Yash gave a presentation on Processes and Protothreads. The group expressed interest in learning more about the hardware behind the Tmote Sky, such as the TI MSP430 microprocessor and the CC2420 radio. We&amp;#039;ll probably include some of those as the topic of future talks.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;For next week:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Enjoy Spring Break!&lt;br /&gt;
&lt;br /&gt;
== Mar/21 ==&lt;br /&gt;
&lt;br /&gt;
Spring Break, no meeting&lt;br /&gt;
&lt;br /&gt;
== Mar/28 ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Secretary:&amp;#039;&amp;#039;&amp;#039; Deepanker&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Meeting summary:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
We successfully programmed a multi-hop communication between 5 motes. We also discussed the ways in which motes can talk to each other, namely - unicast, multicast and reliable unicast - and discussed the pros and cons of each with respect to our application.&lt;br /&gt;
&lt;br /&gt;
We discussed a little bit about the connections on the mote, specifically the interaction of MSP430 with CC2420.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;For next week:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Yash will give an introduction to MSP430. Completion of tutorials on wiki and proofreading of the already completed will be done by the people who are assigned the task.&lt;br /&gt;
&lt;br /&gt;
== Apr/04 ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Secretary:&amp;#039;&amp;#039;&amp;#039; Kevin&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Meeting Summary:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Bhavana introduced us how to use Shell in a process. We went through some instructions and source code to understand how it works. Also, we ran an example on the Sky-Mote and tried the Blink instruction. Everything worked good.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;For next week:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Yash will give an introduction to MSP430.&lt;br /&gt;
&lt;br /&gt;
== Apr/11 ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Secretary:&amp;#039;&amp;#039;&amp;#039; Timothy&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Meeting Summary:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Yash presents the Radio Transceiver:&lt;br /&gt;
&lt;br /&gt;
Gave a brief overview of Tmote hardware&lt;br /&gt;
&lt;br /&gt;
Discussed the radio as main communication module&lt;br /&gt;
&lt;br /&gt;
Gave an overview of QPSK, and how Tmote uses OQPSK to modulate signal&lt;br /&gt;
&lt;br /&gt;
Went over frame format of transmission&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;For next week:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Pedro will present next week, and Kwame the week after. Assigned several new tutorials, agreed to write up Telephone Game as a tutorial.&lt;br /&gt;
&lt;br /&gt;
== Apr/18 ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Secretary:&amp;#039;&amp;#039;&amp;#039; Bhavana&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Meeting Summary:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Pedro presented the Implicit Network Time Synchronization protocol and showed an example of application that uses it. We could synchronize a network of 6 nodes and make then blink the LEDs synchronously. The presentation can be found [[File:Time_Synchronization.pdf]]. &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;For next week:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
We will change the Shell example and create a new command that starts and stops the network synchronization protocol.&lt;br /&gt;
&lt;br /&gt;
== Apr/25 ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Secretary:&amp;#039;&amp;#039;&amp;#039; Kwame&lt;br /&gt;
&lt;br /&gt;
Kwame presented an example of how to write a shell command. (Code for the example can be found on the Google Drive). After going through the example, we did some hands-on experimentation and adapted the code to transmit custom messages via unicast to other motes. We encountered an interesting problem with using the packet buffer, but realized we simply needed to make sure we checked the length of data in a received packet.&lt;br /&gt;
&lt;br /&gt;
== May/02 ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Secretary:&amp;#039;&amp;#039;&amp;#039; Pedro&lt;/div&gt;</summary>
		<author><name>Kwame</name></author>	</entry>

	<entry>
		<id>http://anrg.usc.edu/contiki/index.php?title=Main_Page&amp;diff=410</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://anrg.usc.edu/contiki/index.php?title=Main_Page&amp;diff=410"/>
				<updated>2014-04-30T18:34:31Z</updated>
		
		<summary type="html">&lt;p&gt;Kwame: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Contiki Development at [//http://anrg.usc.edu ANRG], [//http:www.usc.edu University of Southern California]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
[[Team]]&lt;br /&gt;
&lt;br /&gt;
== Getting started ==&lt;br /&gt;
* [http://anrg.usc.edu/contiki/index.php/Contiki_tutorials Contiki Tutorials]&lt;br /&gt;
* [http://anrg.usc.edu/contiki/index.php/Troubleshooting Troubleshooting]&lt;br /&gt;
&lt;br /&gt;
== Useful links ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.contiki-os.org/ Official Homepage]&lt;br /&gt;
* [https://github.com/contiki-os/contiki GitHub repository]&lt;br /&gt;
* [http://sourceforge.net/projects/contikiprojects/ Contiki Projects repository]&lt;br /&gt;
* [http://contiki-os.blogspot.com/ ContikiOS official blog]&lt;br /&gt;
* [http://www.contiki-os.org/support.html Resources page]&lt;br /&gt;
* [http://anrg.usc.edu/~ee652/readinglist.html Recommended reading]&lt;br /&gt;
&lt;br /&gt;
== To-Do ==&lt;br /&gt;
* Find out how to input code lists with syntax highlighting. Install SyntaxHighlight extension (http://www.mediawiki.org/wiki/Extension:SyntaxHighlight) or ASHighlight extension (http://www.mediawiki.org/wiki/Extension:ASHighlight)&lt;br /&gt;
* &amp;lt;strike&amp;gt;Fix error while uploading a file: Could not create directory &amp;quot;mwstore://local-backend/local-public/a/ae&amp;quot;.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Create a site map&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;See if it is possible to create some private pages&amp;lt;/strike&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kwame</name></author>	</entry>

	<entry>
		<id>http://anrg.usc.edu/contiki/index.php?title=Contiki_tutorials&amp;diff=375</id>
		<title>Contiki tutorials</title>
		<link rel="alternate" type="text/html" href="http://anrg.usc.edu/contiki/index.php?title=Contiki_tutorials&amp;diff=375"/>
				<updated>2014-03-28T21:46:33Z</updated>
		
		<summary type="html">&lt;p&gt;Kwame: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main_Page | Back to Main Page]]&lt;br /&gt;
&lt;br /&gt;
== List of Tutorials ==&lt;br /&gt;
&lt;br /&gt;
Completed&lt;br /&gt;
&lt;br /&gt;
# [[Installation]]&lt;br /&gt;
# [[Hello World]]&lt;br /&gt;
# [[Broadcast Example]]&lt;br /&gt;
# [[Collect View]]&lt;br /&gt;
&lt;br /&gt;
Need review&lt;br /&gt;
&lt;br /&gt;
# [[Interfacing with Python]]&lt;br /&gt;
&lt;br /&gt;
Starting&lt;br /&gt;
# [[Tutornet]] Pedro, Kwame&lt;br /&gt;
# [[Timers]] Tim, Leo&lt;br /&gt;
# [[Cooja Simulator]] (Getting started, debugging) Pedro&lt;br /&gt;
# [[Contiki build system]] Nikhil&lt;br /&gt;
# [[Protocols stack]]&lt;br /&gt;
# [[CFS-Coffee]] Kevin&lt;br /&gt;
# [[RSS measurement]]&lt;br /&gt;
# [[Sensor acquisition]] (light, temperature) Kwame&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--[[Processes]] Yash --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: red&amp;quot;&amp;gt;Be sure to include references in your tutorials, especially if you quote material from other sites!&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kwame</name></author>	</entry>

	<entry>
		<id>http://anrg.usc.edu/contiki/index.php?title=Meeting_Logs&amp;diff=335</id>
		<title>Meeting Logs</title>
		<link rel="alternate" type="text/html" href="http://anrg.usc.edu/contiki/index.php?title=Meeting_Logs&amp;diff=335"/>
				<updated>2014-03-22T20:38:53Z</updated>
		
		<summary type="html">&lt;p&gt;Kwame: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Feb/7 ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Secretary:&amp;#039;&amp;#039;&amp;#039; Kwame&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Meeting summary:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Professor Bhaskar gave us his wishlist. See a brief outline at [[Wishlist]].&lt;br /&gt;
&lt;br /&gt;
We got the Contiki oscilloscope up and running, and played around with it using two motes.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;For next week:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Suvil is going to investigate options for a mailing list and also get the issue with uploading images to the wiki fixed.&lt;br /&gt;
&lt;br /&gt;
Nikhil will set up a Google Drive share for us to use for prototyping our tutorials when appropriate. It would allow for us to collaboratively edit in real-time and provide us all the conveniences of a modern word processor (spell check, etc.) We should probably discuss this more next time.&lt;br /&gt;
&lt;br /&gt;
Yash will spend the time catching up and going through our existing tutorials.&lt;br /&gt;
&lt;br /&gt;
Lakshmi has graciously volunteered to present Cristian&amp;#039;s algorithm to us.&lt;br /&gt;
&lt;br /&gt;
Nikhil, Bhavana, Rahul, and Deepanker will start a new tutorial for using the Oscilloscope.&lt;br /&gt;
&lt;br /&gt;
Kevin will explore methods for on-board data storage on the sky mote, both volatile and non-volatile.&lt;br /&gt;
&lt;br /&gt;
Pedro, Suvil, and Kwame will work on running Contiki on the testbed and starting a tutorial. Also, thinking about how we can refactor some of our theoretical tutorials to be more activity oriented.&lt;br /&gt;
&lt;br /&gt;
Everyone should update their tutorials to include the primary contributors. Perhaps somewhere at the end.&lt;br /&gt;
&lt;br /&gt;
== Feb/14 ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Secretary:&amp;#039;&amp;#039;&amp;#039; Pedro&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Meeting summary:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Lakshmi presented the paper [[Probabilistic Clock Synchronization http://kom.aau.dk/~rlo/lectures/algoAndArchIII_2009/ChristiansAlgorithm.pdf]]. We had a very interesting discussion about the terms and concepts behind synchronization and clock in network nodes. We might in the future see how this algorithm can be implemented in a WSN or check whether its main ideas are already implemented in the &amp;quot;Implicit network time synchronization&amp;quot;, present in ContikiOS ([http://contiki.sourceforge.net/docs/2.6/a01741.html])&lt;br /&gt;
&lt;br /&gt;
Everyone gave an updated about what have been done during last week. We have some material for two tutorials: the &amp;#039;&amp;#039;Oscilloscope&amp;#039;&amp;#039; and &amp;#039;&amp;#039;Coffee File System&amp;#039;&amp;#039;. This material is yet in the Google Doc create for prototyping and should be posted in the Wiki soon.&lt;br /&gt;
&lt;br /&gt;
Kwame guided the group in the first 4 sessions of ContikiOS Crash Course [[File:Seniot09cccc-notes.pdf]]. We played with LEDs and push button. This example should give a new tutorial on how to use all the sensors/actuators (light, temperature, push button, etc.) on the motes.&lt;br /&gt;
&lt;br /&gt;
We decided that each week one person will be responsible for creating this meeting log, so everyone can keep track of what has been discussed every week. Below we have the expected date of our next meetings and a tentative assignment.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;For next week:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Kevin will give a brief talk about Coffee file system and show us the material he obtained and the tutorial he started to write.&lt;br /&gt;
&lt;br /&gt;
Yash will start to study and collect material about processes and protothreads. He may give a talk about these topics in two weeks.&lt;br /&gt;
&lt;br /&gt;
Nikhil, Bhavana, Rahul, and Deepanker will keep working on the Oscilloscope tutorial.&lt;br /&gt;
&lt;br /&gt;
Pedro and Kwame will start to work on the Tutornet testbed.&lt;br /&gt;
&lt;br /&gt;
Suvil will fix some issues we are facing in the Wiki with code formatting and help us with account creation/setup of the testbed.&lt;br /&gt;
&lt;br /&gt;
== Feb/21 ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Secretary:&amp;#039;&amp;#039;&amp;#039; Suvil&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Meeting summary:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Kevin gave a presentation about Coffee File System. He showed the main interface and functions that can be used by Tmote Sky. He also showed an example where a node was programmed to create and write 3 different files on Flash Memory and after reboot output the content of the files reading then from the memory. The presentation slides can be found here:[] and the example code can be found here:[]. He started to create a tutorial on Coffee on the shared Doc file and you may create a tutorial about this topic in our Wiki soon.&lt;br /&gt;
&lt;br /&gt;
We went through the example in: examples/rime/example-neighbors.c, suggested by Bhavana. Basically this example makes all node generate beacons and create a list of neighbors of each node. It prints out the list of neighbors with the corresponding RSSI value.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;For next week:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
We should continue to work on the tutorials, trying to polish and review them for final publication.&lt;br /&gt;
&lt;br /&gt;
== Feb/28 ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Secretary:&amp;#039;&amp;#039;&amp;#039; Leo&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Meeting summary:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Pedro gave a presentation of a few of the features available in the Cooja simulator. Some of what he covered, which will be put in the Cooja tutorial, includes how to build Cooja from the terminal and automatically start a simulation, locate source files for debugging, and use the single-step and breakpoint debugging tools available for debugging each node. Afterwards, we looked at examples-neighbors.c in more detail, noting the size of the data structures and the way certain values were calculated, such as RSSI. Lastly, we briefly looked over some of the Contiki OS files in the documentation and flipped through a comprehensive Contiki presentation here [http://www.ee.kth.se/~mikaelj/wsn_course/contiki-course-kth-9oct2008-draft.pdf].&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;For next week:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Several more tutorials should be done by our next meeting.&lt;br /&gt;
&lt;br /&gt;
== Mar/07 ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Secretary:&amp;#039;&amp;#039;&amp;#039; Nikhil&lt;br /&gt;
&lt;br /&gt;
== Mar/14 ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Secretary:&amp;#039;&amp;#039;&amp;#039; Kwame&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Meeting summary:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Yash gave a presentation on Processes and Protothreads. The group expressed interest in learning more about the hardware behind the Tmote Sky, such as the TI MSP430 microprocessor and the CC2420 radio. We&amp;#039;ll probably include some of those as the topic of future talks.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;For next week:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Enjoy Spring Break!&lt;br /&gt;
&lt;br /&gt;
== Mar/21 ==&lt;br /&gt;
&lt;br /&gt;
Spring Break, no meeting&lt;br /&gt;
&lt;br /&gt;
== Mar/28 ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Secretary:&amp;#039;&amp;#039;&amp;#039; Deepanker&lt;br /&gt;
&lt;br /&gt;
== Apr/04 ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Secretary:&amp;#039;&amp;#039;&amp;#039; Kevin&lt;br /&gt;
&lt;br /&gt;
== Apr/11 ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Secretary:&amp;#039;&amp;#039;&amp;#039; Timothy&lt;br /&gt;
&lt;br /&gt;
== Apr/18 ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Secretary:&amp;#039;&amp;#039;&amp;#039; Bhavana&lt;/div&gt;</summary>
		<author><name>Kwame</name></author>	</entry>

	<entry>
		<id>http://anrg.usc.edu/contiki/index.php?title=Contiki_tutorials&amp;diff=334</id>
		<title>Contiki tutorials</title>
		<link rel="alternate" type="text/html" href="http://anrg.usc.edu/contiki/index.php?title=Contiki_tutorials&amp;diff=334"/>
				<updated>2014-03-22T20:10:29Z</updated>
		
		<summary type="html">&lt;p&gt;Kwame: /* List of Tutorials */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main_Page | Back to Main Page]]&lt;br /&gt;
&lt;br /&gt;
== List of Tutorials ==&lt;br /&gt;
&lt;br /&gt;
Completed&lt;br /&gt;
&lt;br /&gt;
# [[Installation]]&lt;br /&gt;
# [[Broadcast Example]]&lt;br /&gt;
# [[Collect View]]&lt;br /&gt;
&lt;br /&gt;
Need review&lt;br /&gt;
&lt;br /&gt;
# [[Hello World]]&lt;br /&gt;
# [[Interfacing with Python]]&lt;br /&gt;
&lt;br /&gt;
Starting&lt;br /&gt;
# [[Tutornet]] Pedro, Kwame&lt;br /&gt;
# [[Timers]] Tim, Leo&lt;br /&gt;
# [[Cooja Simulator]] (Getting started, debugging) Pedro&lt;br /&gt;
# [[Contiki build system]] Nikhil&lt;br /&gt;
# [[Protocols stack]]&lt;br /&gt;
# [[CFS-Coffee]] Kevin&lt;br /&gt;
# [[RSS measurement]]&lt;br /&gt;
# [[Sensor acquisition]] (light, temperature) Kwame&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--[[Processes]] Yash --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: red&amp;quot;&amp;gt;Be sure to include references in your tutorials, especially if you quote material from other sites!&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kwame</name></author>	</entry>

	<entry>
		<id>http://anrg.usc.edu/contiki/index.php?title=Interfacing_with_Python&amp;diff=333</id>
		<title>Interfacing with Python</title>
		<link rel="alternate" type="text/html" href="http://anrg.usc.edu/contiki/index.php?title=Interfacing_with_Python&amp;diff=333"/>
				<updated>2014-03-22T20:08:41Z</updated>
		
		<summary type="html">&lt;p&gt;Kwame: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Contiki_tutorials | Back to Contiki Tutorials]]&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
In this tutorial you will learn how to programmatically communicate with the Tmote Sky using the Python programming language. This will enable you to do such things as process data from your mote in real-time. In addition, you can send commands or data back to the mote to impact its operation. The possibilities are endless.&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
This tutorial was written and tested using the following:&lt;br /&gt;
* Contiki 2.7&lt;br /&gt;
* Python 2.7.3 (and pySerial)&lt;br /&gt;
* Ubuntu 12.04&lt;br /&gt;
* Tmote Sky&lt;br /&gt;
&lt;br /&gt;
Connect the Tmote Sky to your computer using a USB cable and install the Sky Shell example. See the @Sky Shell@ tutorial for instructions on how to do this. We use this example so that we’ll have data to ensure that we are correctly reading and writing to the mote.&lt;br /&gt;
&lt;br /&gt;
== Step 1 ==&lt;br /&gt;
&lt;br /&gt;
Create a Python file called serial.py containing the following code:&lt;br /&gt;
 #!/usr/bin/python&lt;br /&gt;
 import serial&lt;br /&gt;
 ser = serial.Serial(&lt;br /&gt;
    port=&amp;#039;/dev/ttyUSB0&amp;#039;,\&lt;br /&gt;
    baudrate=115200,\&lt;br /&gt;
    parity=serial.PARITY_NONE,\&lt;br /&gt;
    stopbits=serial.STOPBITS_ONE,\&lt;br /&gt;
    bytesize=serial.EIGHTBITS,\&lt;br /&gt;
    timeout=0)&lt;br /&gt;
 print(&amp;quot;connected to: &amp;quot; + ser.portstr)&lt;br /&gt;
 ser.write(&amp;quot;help\n&amp;quot;);&lt;br /&gt;
 while True:&lt;br /&gt;
	line = ser.readline();&lt;br /&gt;
	if line:&lt;br /&gt;
		print(line),&lt;br /&gt;
 ser.close()&lt;br /&gt;
&lt;br /&gt;
Note: &lt;br /&gt;
This code assumes the mote you are using for this tutorial is connected to &amp;#039;&amp;#039;/dev/ttyUSB0&amp;#039;&amp;#039;. Please check this using the &amp;#039;&amp;#039;make motelist&amp;#039;&amp;#039; command as shown in the figure below. If the mote you are using is connected to a different device file, please modify the Python code accordingly.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Motelist.jpg|center|Sample output of &amp;#039;&amp;#039;make motelist&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
== Step 2 ==&lt;br /&gt;
&lt;br /&gt;
Run the Python code using the command:&lt;br /&gt;
&lt;br /&gt;
 python serial.py&lt;br /&gt;
&lt;br /&gt;
You should see output similar to the following:&lt;br /&gt;
 connected to: /dev/ttyUSB0&lt;br /&gt;
 Available commands:&lt;br /&gt;
 ?: shows this help&lt;br /&gt;
 binprint: print binary data in decimal format&lt;br /&gt;
 blink [num]: blink LEDs ([num] times)&lt;br /&gt;
 collect: collect data from the network&lt;br /&gt;
 collect-view-data: sensor data, power consumption, network stats&lt;br /&gt;
 echo &amp;lt;text&amp;gt;: print &amp;lt;text&amp;gt;&lt;br /&gt;
 energy: print energy profile&lt;br /&gt;
 exit: exit shell&lt;br /&gt;
 hd: print binary data in hexadecimal format&lt;br /&gt;
 help: shows this help&lt;br /&gt;
 kill &amp;lt;command&amp;gt;: stop a specific command&lt;br /&gt;
 killall: stop all running commands&lt;br /&gt;
 mac &amp;lt;onoroff&amp;gt;: turn MAC protocol on (1) or off (0)&lt;br /&gt;
 netcmd &amp;lt;command&amp;gt;: run a command on all nodes in the network&lt;br /&gt;
 nodeid: set node ID&lt;br /&gt;
 null: discard input&lt;br /&gt;
 packetize: put data into one packet&lt;br /&gt;
 power: print power profile&lt;br /&gt;
 powerconv: convert power profile to human readable output&lt;br /&gt;
 powertrace [interval]: turn powertracing on or off, with reporting interval &amp;lt;interval&amp;gt;&lt;br /&gt;
 quit: exit shell&lt;br /&gt;
 randwait &amp;lt;maxtime&amp;gt; &amp;lt;command&amp;gt;: wait for a random time before running a command&lt;br /&gt;
 reboot: reboot the system&lt;br /&gt;
 repeat &amp;lt;num&amp;gt; &amp;lt;time&amp;gt; &amp;lt;command&amp;gt;: run a command every &amp;lt;time&amp;gt; seconds&lt;br /&gt;
 rfchannel &amp;lt;channel&amp;gt;: change CC2420 radio channel (11 - 26)&lt;br /&gt;
 routes: dump route list in binary format&lt;br /&gt;
 send &amp;lt;rexmits&amp;gt;: send data to the collector node, with rexmits hop-by-hop retransmissions&lt;br /&gt;
 sense: print out sensor data&lt;br /&gt;
 senseconv: convert &amp;#039;sense&amp;#039; data to human readable format&lt;br /&gt;
 size: print the size of the input&lt;br /&gt;
 time [seconds]: output time in binary format, or set time in seconds since 1970&lt;br /&gt;
 timestamp: prepend a timestamp to data&lt;br /&gt;
 txpower &amp;lt;power&amp;gt;: change CC2420 transmission power (0 - 31)&lt;br /&gt;
 5.0: Contiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Understanding the Code ==&lt;br /&gt;
&lt;br /&gt;
 import serial&lt;br /&gt;
&lt;br /&gt;
The first line will include the module for the serial port API. This API is provided by pySerial.&lt;br /&gt;
&lt;br /&gt;
 ser = serial.Serial(&lt;br /&gt;
    port=&amp;#039;/dev/ttyUSB0&amp;#039;,\&lt;br /&gt;
    baudrate=115200,\&lt;br /&gt;
    parity=serial.PARITY_NONE,\&lt;br /&gt;
    stopbits=serial.STOPBITS_ONE,\&lt;br /&gt;
    bytesize=serial.EIGHTBITS,\&lt;br /&gt;
    timeout=0)&lt;br /&gt;
&lt;br /&gt;
This next line instantiates an object with the appropriate serial port configuration for communication with the Sky mote. The necessary settings are shown in the table below.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin: auto;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|Serial Configuration&lt;br /&gt;
|-&lt;br /&gt;
| Baud rate || 115200&lt;br /&gt;
|-&lt;br /&gt;
| Data bits || 8&lt;br /&gt;
|-&lt;br /&gt;
| Parity || None&lt;br /&gt;
|-&lt;br /&gt;
| Stop bits || 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 print(&amp;quot;connected to: &amp;quot; + ser.portstr)&lt;br /&gt;
&lt;br /&gt;
The print statement is simply a sanity check. It just reminds us which port we are connected to.&lt;br /&gt;
&lt;br /&gt;
 ser.write(&amp;quot;help\n&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
This line demonstrates how data can be written to the serial port. In this example we send the command &amp;quot;help&amp;quot; to the Sky Shell so that it will send back the list of shell commands it supports.&lt;br /&gt;
&lt;br /&gt;
 while True:&lt;br /&gt;
	line = ser.readline();&lt;br /&gt;
	if line:&lt;br /&gt;
		print(line),&lt;br /&gt;
&lt;br /&gt;
Here, we read data from the serial port indefinitely and print it out, one line at a time. Note that in this case, &amp;#039;&amp;#039;line&amp;#039;&amp;#039; will typically end with a newline.&lt;br /&gt;
&lt;br /&gt;
To terminate the program, you can use Ctrl + C to send an interrupt signal.&lt;br /&gt;
&lt;br /&gt;
 ser.close()&lt;br /&gt;
&lt;br /&gt;
This last line never actually gets executed but it shows how the serial resource can be freed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Contiki_tutorials | Back to Contiki Tutorials]]&lt;/div&gt;</summary>
		<author><name>Kwame</name></author>	</entry>

	<entry>
		<id>http://anrg.usc.edu/contiki/index.php?title=Interfacing_with_Python&amp;diff=332</id>
		<title>Interfacing with Python</title>
		<link rel="alternate" type="text/html" href="http://anrg.usc.edu/contiki/index.php?title=Interfacing_with_Python&amp;diff=332"/>
				<updated>2014-03-22T03:48:55Z</updated>
		
		<summary type="html">&lt;p&gt;Kwame: /* Step 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Contiki_tutorials | Back to Contiki Tutorials]]&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
In this tutorial you will learn how to programmatically communicate with the Tmote Sky using the Python programming language. This will enable you to do such things as process data from your mote in real-time. In addition, you can send commands or data back to the mote to impact its operation. The possibilities are endless.&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
This tutorial was written and tested using the following:&lt;br /&gt;
* Contiki 2.7&lt;br /&gt;
* Python 2.7.3 (and pySerial)&lt;br /&gt;
* Ubuntu 12.04&lt;br /&gt;
* Tmote Sky&lt;br /&gt;
&lt;br /&gt;
Connect the Tmote Sky to your computer using a USB cable and install the Sky Shell example. See the @Sky Shell@ tutorial for instructions on how to do this. We use this example so that we’ll have data to ensure that we are correctly reading and writing to the mote.&lt;br /&gt;
&lt;br /&gt;
== Step 1 ==&lt;br /&gt;
&lt;br /&gt;
Create a Python file called serial.py containing the following code:&lt;br /&gt;
 #!/usr/bin/python&lt;br /&gt;
 import serial&lt;br /&gt;
 ser = serial.Serial(&lt;br /&gt;
    port=&amp;#039;/dev/ttyUSB0&amp;#039;,\&lt;br /&gt;
    baudrate=115200,\&lt;br /&gt;
    parity=serial.PARITY_NONE,\&lt;br /&gt;
    stopbits=serial.STOPBITS_ONE,\&lt;br /&gt;
    bytesize=serial.EIGHTBITS,\&lt;br /&gt;
    timeout=0)&lt;br /&gt;
 print(&amp;quot;connected to: &amp;quot; + ser.portstr)&lt;br /&gt;
 ser.write(&amp;quot;help\n&amp;quot;);&lt;br /&gt;
 while True:&lt;br /&gt;
            line = ser.readline();&lt;br /&gt;
            if line:&lt;br /&gt;
              print(line),&lt;br /&gt;
 ser.close()&lt;br /&gt;
&lt;br /&gt;
Note: &lt;br /&gt;
This code assumes the mote you are using for this tutorial is connected to &amp;#039;&amp;#039;/dev/ttyUSB0&amp;#039;&amp;#039;. Please check this using the &amp;#039;&amp;#039;make motelist&amp;#039;&amp;#039; command as shown in the figure below. If the mote you are using is connected to a different device file, please modify the Python code accordingly.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Motelist.jpg|center|Sample output of &amp;#039;&amp;#039;make motelist&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
== Step 2 ==&lt;br /&gt;
&lt;br /&gt;
Run the Python code using the command:&lt;br /&gt;
&lt;br /&gt;
 python serial.py&lt;br /&gt;
&lt;br /&gt;
You should see output similar to the following:&lt;br /&gt;
 connected to: /dev/ttyUSB0&lt;br /&gt;
 Available commands:&lt;br /&gt;
 ?: shows this help&lt;br /&gt;
 binprint: print binary data in decimal format&lt;br /&gt;
 blink [num]: blink LEDs ([num] times)&lt;br /&gt;
 collect: collect data from the network&lt;br /&gt;
 collect-view-data: sensor data, power consumption, network stats&lt;br /&gt;
 echo &amp;lt;text&amp;gt;: print &amp;lt;text&amp;gt;&lt;br /&gt;
 energy: print energy profile&lt;br /&gt;
 exit: exit shell&lt;br /&gt;
 hd: print binary data in hexadecimal format&lt;br /&gt;
 help: shows this help&lt;br /&gt;
 kill &amp;lt;command&amp;gt;: stop a specific command&lt;br /&gt;
 killall: stop all running commands&lt;br /&gt;
 mac &amp;lt;onoroff&amp;gt;: turn MAC protocol on (1) or off (0)&lt;br /&gt;
 netcmd &amp;lt;command&amp;gt;: run a command on all nodes in the network&lt;br /&gt;
 nodeid: set node ID&lt;br /&gt;
 null: discard input&lt;br /&gt;
 packetize: put data into one packet&lt;br /&gt;
 power: print power profile&lt;br /&gt;
 powerconv: convert power profile to human readable output&lt;br /&gt;
 powertrace [interval]: turn powertracing on or off, with reporting interval &amp;lt;interval&amp;gt;&lt;br /&gt;
 quit: exit shell&lt;br /&gt;
 randwait &amp;lt;maxtime&amp;gt; &amp;lt;command&amp;gt;: wait for a random time before running a command&lt;br /&gt;
 reboot: reboot the system&lt;br /&gt;
 repeat &amp;lt;num&amp;gt; &amp;lt;time&amp;gt; &amp;lt;command&amp;gt;: run a command every &amp;lt;time&amp;gt; seconds&lt;br /&gt;
 rfchannel &amp;lt;channel&amp;gt;: change CC2420 radio channel (11 - 26)&lt;br /&gt;
 routes: dump route list in binary format&lt;br /&gt;
 send &amp;lt;rexmits&amp;gt;: send data to the collector node, with rexmits hop-by-hop retransmissions&lt;br /&gt;
 sense: print out sensor data&lt;br /&gt;
 senseconv: convert &amp;#039;sense&amp;#039; data to human readable format&lt;br /&gt;
 size: print the size of the input&lt;br /&gt;
 time [seconds]: output time in binary format, or set time in seconds since 1970&lt;br /&gt;
 timestamp: prepend a timestamp to data&lt;br /&gt;
 txpower &amp;lt;power&amp;gt;: change CC2420 transmission power (0 - 31)&lt;br /&gt;
 5.0: Contiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Understanding the Code ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Contiki_tutorials | Back to Contiki Tutorials]]&lt;/div&gt;</summary>
		<author><name>Kwame</name></author>	</entry>

	<entry>
		<id>http://anrg.usc.edu/contiki/index.php?title=File:Motelist.jpg&amp;diff=331</id>
		<title>File:Motelist.jpg</title>
		<link rel="alternate" type="text/html" href="http://anrg.usc.edu/contiki/index.php?title=File:Motelist.jpg&amp;diff=331"/>
				<updated>2014-03-22T03:45:50Z</updated>
		
		<summary type="html">&lt;p&gt;Kwame: make motelist&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;make motelist&lt;/div&gt;</summary>
		<author><name>Kwame</name></author>	</entry>

	<entry>
		<id>http://anrg.usc.edu/contiki/index.php?title=Interfacing_with_Python&amp;diff=330</id>
		<title>Interfacing with Python</title>
		<link rel="alternate" type="text/html" href="http://anrg.usc.edu/contiki/index.php?title=Interfacing_with_Python&amp;diff=330"/>
				<updated>2014-03-22T02:41:22Z</updated>
		
		<summary type="html">&lt;p&gt;Kwame: /* Step 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Contiki_tutorials | Back to Contiki Tutorials]]&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
In this tutorial you will learn how to programmatically communicate with the Tmote Sky using the Python programming language. This will enable you to do such things as process data from your mote in real-time. In addition, you can send commands or data back to the mote to impact its operation. The possibilities are endless.&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
This tutorial was written and tested using the following:&lt;br /&gt;
* Contiki 2.7&lt;br /&gt;
* Python 2.7.3 (and pySerial)&lt;br /&gt;
* Ubuntu 12.04&lt;br /&gt;
* Tmote Sky&lt;br /&gt;
&lt;br /&gt;
Connect the Tmote Sky to your computer using a USB cable and install the Sky Shell example. See the @Sky Shell@ tutorial for instructions on how to do this. We use this example so that we’ll have data to ensure that we are correctly reading and writing to the mote.&lt;br /&gt;
&lt;br /&gt;
== Step 1 ==&lt;br /&gt;
&lt;br /&gt;
Create a Python file called serial.py containing the following code:&lt;br /&gt;
 #!/usr/bin/python&lt;br /&gt;
 import serial&lt;br /&gt;
 ser = serial.Serial(&lt;br /&gt;
    port=&amp;#039;/dev/ttyUSB0&amp;#039;,\&lt;br /&gt;
    baudrate=115200,\&lt;br /&gt;
    parity=serial.PARITY_NONE,\&lt;br /&gt;
    stopbits=serial.STOPBITS_ONE,\&lt;br /&gt;
    bytesize=serial.EIGHTBITS,\&lt;br /&gt;
    timeout=0)&lt;br /&gt;
 print(&amp;quot;connected to: &amp;quot; + ser.portstr)&lt;br /&gt;
 ser.write(&amp;quot;help\n&amp;quot;);&lt;br /&gt;
 while True:&lt;br /&gt;
            line = ser.readline();&lt;br /&gt;
            if line:&lt;br /&gt;
              print(line),&lt;br /&gt;
 ser.close()&lt;br /&gt;
&lt;br /&gt;
Note: &lt;br /&gt;
This code assumes the mote you are using for this tutorial is connected to &amp;#039;&amp;#039;/dev/ttyUSB0&amp;#039;&amp;#039;. Please check this using the &amp;#039;&amp;#039;make motelist&amp;#039;&amp;#039; command as shown in the figure below. If the mote you are using is connected to a different device file, please modify the Python code accordingly.&lt;br /&gt;
&lt;br /&gt;
== Step 2 ==&lt;br /&gt;
&lt;br /&gt;
Run the Python code using the command:&lt;br /&gt;
&lt;br /&gt;
 python serial.py&lt;br /&gt;
&lt;br /&gt;
You should see output similar to the following:&lt;br /&gt;
 connected to: /dev/ttyUSB0&lt;br /&gt;
 Available commands:&lt;br /&gt;
 ?: shows this help&lt;br /&gt;
 binprint: print binary data in decimal format&lt;br /&gt;
 blink [num]: blink LEDs ([num] times)&lt;br /&gt;
 collect: collect data from the network&lt;br /&gt;
 collect-view-data: sensor data, power consumption, network stats&lt;br /&gt;
 echo &amp;lt;text&amp;gt;: print &amp;lt;text&amp;gt;&lt;br /&gt;
 energy: print energy profile&lt;br /&gt;
 exit: exit shell&lt;br /&gt;
 hd: print binary data in hexadecimal format&lt;br /&gt;
 help: shows this help&lt;br /&gt;
 kill &amp;lt;command&amp;gt;: stop a specific command&lt;br /&gt;
 killall: stop all running commands&lt;br /&gt;
 mac &amp;lt;onoroff&amp;gt;: turn MAC protocol on (1) or off (0)&lt;br /&gt;
 netcmd &amp;lt;command&amp;gt;: run a command on all nodes in the network&lt;br /&gt;
 nodeid: set node ID&lt;br /&gt;
 null: discard input&lt;br /&gt;
 packetize: put data into one packet&lt;br /&gt;
 power: print power profile&lt;br /&gt;
 powerconv: convert power profile to human readable output&lt;br /&gt;
 powertrace [interval]: turn powertracing on or off, with reporting interval &amp;lt;interval&amp;gt;&lt;br /&gt;
 quit: exit shell&lt;br /&gt;
 randwait &amp;lt;maxtime&amp;gt; &amp;lt;command&amp;gt;: wait for a random time before running a command&lt;br /&gt;
 reboot: reboot the system&lt;br /&gt;
 repeat &amp;lt;num&amp;gt; &amp;lt;time&amp;gt; &amp;lt;command&amp;gt;: run a command every &amp;lt;time&amp;gt; seconds&lt;br /&gt;
 rfchannel &amp;lt;channel&amp;gt;: change CC2420 radio channel (11 - 26)&lt;br /&gt;
 routes: dump route list in binary format&lt;br /&gt;
 send &amp;lt;rexmits&amp;gt;: send data to the collector node, with rexmits hop-by-hop retransmissions&lt;br /&gt;
 sense: print out sensor data&lt;br /&gt;
 senseconv: convert &amp;#039;sense&amp;#039; data to human readable format&lt;br /&gt;
 size: print the size of the input&lt;br /&gt;
 time [seconds]: output time in binary format, or set time in seconds since 1970&lt;br /&gt;
 timestamp: prepend a timestamp to data&lt;br /&gt;
 txpower &amp;lt;power&amp;gt;: change CC2420 transmission power (0 - 31)&lt;br /&gt;
 5.0: Contiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Understanding the Code ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Contiki_tutorials | Back to Contiki Tutorials]]&lt;/div&gt;</summary>
		<author><name>Kwame</name></author>	</entry>

	<entry>
		<id>http://anrg.usc.edu/contiki/index.php?title=Interfacing_with_Python&amp;diff=329</id>
		<title>Interfacing with Python</title>
		<link rel="alternate" type="text/html" href="http://anrg.usc.edu/contiki/index.php?title=Interfacing_with_Python&amp;diff=329"/>
				<updated>2014-03-22T02:40:15Z</updated>
		
		<summary type="html">&lt;p&gt;Kwame: Created page with &amp;quot; Back to Contiki Tutorials  __TOC__  == Introduction == In this tutorial you will learn how to programmatically communicate with the Tmote Sky using the...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Contiki_tutorials | Back to Contiki Tutorials]]&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
In this tutorial you will learn how to programmatically communicate with the Tmote Sky using the Python programming language. This will enable you to do such things as process data from your mote in real-time. In addition, you can send commands or data back to the mote to impact its operation. The possibilities are endless.&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
This tutorial was written and tested using the following:&lt;br /&gt;
* Contiki 2.7&lt;br /&gt;
* Python 2.7.3 (and pySerial)&lt;br /&gt;
* Ubuntu 12.04&lt;br /&gt;
* Tmote Sky&lt;br /&gt;
&lt;br /&gt;
Connect the Tmote Sky to your computer using a USB cable and install the Sky Shell example. See the @Sky Shell@ tutorial for instructions on how to do this. We use this example so that we’ll have data to ensure that we are correctly reading and writing to the mote.&lt;br /&gt;
&lt;br /&gt;
== Step 1 ==&lt;br /&gt;
&lt;br /&gt;
Create a Python file called serial.py containing the following code:&lt;br /&gt;
 #!/usr/bin/python&lt;br /&gt;
 import serial&lt;br /&gt;
 ser = serial.Serial(&lt;br /&gt;
    port=&amp;#039;/dev/ttyUSB0&amp;#039;,\&lt;br /&gt;
    baudrate=115200,\&lt;br /&gt;
    parity=serial.PARITY_NONE,\&lt;br /&gt;
    stopbits=serial.STOPBITS_ONE,\&lt;br /&gt;
    bytesize=serial.EIGHTBITS,\&lt;br /&gt;
    timeout=0)&lt;br /&gt;
 print(&amp;quot;connected to: &amp;quot; + ser.portstr)&lt;br /&gt;
 ser.write(&amp;quot;help\n&amp;quot;);&lt;br /&gt;
 while True:&lt;br /&gt;
            line = ser.readline();&lt;br /&gt;
            if line:&lt;br /&gt;
              print(line),&lt;br /&gt;
 ser.close()&lt;br /&gt;
&lt;br /&gt;
Note: &lt;br /&gt;
This code assumes the mote you are using for this tutorial is connected to ‘’/dev/ttyUSB0’’. Please check this using the ‘’make motelist’’ command as shown in the figure below. If the mote you are using is connected to a different device file, please modify the Python code accordingly.&lt;br /&gt;
&lt;br /&gt;
== Step 2 ==&lt;br /&gt;
&lt;br /&gt;
Run the Python code using the command:&lt;br /&gt;
&lt;br /&gt;
 python serial.py&lt;br /&gt;
&lt;br /&gt;
You should see output similar to the following:&lt;br /&gt;
 connected to: /dev/ttyUSB0&lt;br /&gt;
 Available commands:&lt;br /&gt;
 ?: shows this help&lt;br /&gt;
 binprint: print binary data in decimal format&lt;br /&gt;
 blink [num]: blink LEDs ([num] times)&lt;br /&gt;
 collect: collect data from the network&lt;br /&gt;
 collect-view-data: sensor data, power consumption, network stats&lt;br /&gt;
 echo &amp;lt;text&amp;gt;: print &amp;lt;text&amp;gt;&lt;br /&gt;
 energy: print energy profile&lt;br /&gt;
 exit: exit shell&lt;br /&gt;
 hd: print binary data in hexadecimal format&lt;br /&gt;
 help: shows this help&lt;br /&gt;
 kill &amp;lt;command&amp;gt;: stop a specific command&lt;br /&gt;
 killall: stop all running commands&lt;br /&gt;
 mac &amp;lt;onoroff&amp;gt;: turn MAC protocol on (1) or off (0)&lt;br /&gt;
 netcmd &amp;lt;command&amp;gt;: run a command on all nodes in the network&lt;br /&gt;
 nodeid: set node ID&lt;br /&gt;
 null: discard input&lt;br /&gt;
 packetize: put data into one packet&lt;br /&gt;
 power: print power profile&lt;br /&gt;
 powerconv: convert power profile to human readable output&lt;br /&gt;
 powertrace [interval]: turn powertracing on or off, with reporting interval &amp;lt;interval&amp;gt;&lt;br /&gt;
 quit: exit shell&lt;br /&gt;
 randwait &amp;lt;maxtime&amp;gt; &amp;lt;command&amp;gt;: wait for a random time before running a command&lt;br /&gt;
 reboot: reboot the system&lt;br /&gt;
 repeat &amp;lt;num&amp;gt; &amp;lt;time&amp;gt; &amp;lt;command&amp;gt;: run a command every &amp;lt;time&amp;gt; seconds&lt;br /&gt;
 rfchannel &amp;lt;channel&amp;gt;: change CC2420 radio channel (11 - 26)&lt;br /&gt;
 routes: dump route list in binary format&lt;br /&gt;
 send &amp;lt;rexmits&amp;gt;: send data to the collector node, with rexmits hop-by-hop retransmissions&lt;br /&gt;
 sense: print out sensor data&lt;br /&gt;
 senseconv: convert &amp;#039;sense&amp;#039; data to human readable format&lt;br /&gt;
 size: print the size of the input&lt;br /&gt;
 time [seconds]: output time in binary format, or set time in seconds since 1970&lt;br /&gt;
 timestamp: prepend a timestamp to data&lt;br /&gt;
 txpower &amp;lt;power&amp;gt;: change CC2420 transmission power (0 - 31)&lt;br /&gt;
 5.0: Contiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Understanding the Code ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Contiki_tutorials | Back to Contiki Tutorials]]&lt;/div&gt;</summary>
		<author><name>Kwame</name></author>	</entry>

	<entry>
		<id>http://anrg.usc.edu/contiki/index.php?title=Contiki_tutorials&amp;diff=328</id>
		<title>Contiki tutorials</title>
		<link rel="alternate" type="text/html" href="http://anrg.usc.edu/contiki/index.php?title=Contiki_tutorials&amp;diff=328"/>
				<updated>2014-03-22T01:38:16Z</updated>
		
		<summary type="html">&lt;p&gt;Kwame: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main_Page | Back to Main Page]]&lt;br /&gt;
&lt;br /&gt;
== List of Tutorials ==&lt;br /&gt;
&lt;br /&gt;
Completed&lt;br /&gt;
&lt;br /&gt;
# [[Installation]]&lt;br /&gt;
# [[Broadcast Example]]&lt;br /&gt;
# [[Collect View]]&lt;br /&gt;
&lt;br /&gt;
Need review&lt;br /&gt;
&lt;br /&gt;
# [[Hello World]]&lt;br /&gt;
&lt;br /&gt;
Starting&lt;br /&gt;
# [[Tutornet]] Pedro, Kwame&lt;br /&gt;
# [[Timers]] Tim, Leo&lt;br /&gt;
# [[Cooja Simulator]] (Getting started, debugging) Pedro&lt;br /&gt;
# [[Contiki build system]] Nikhil&lt;br /&gt;
# [[Protocols stack]]&lt;br /&gt;
# [[CFS-Coffee]] Kevin&lt;br /&gt;
# [[RSS measurement]]&lt;br /&gt;
# [[Sensor acquisition]] (light, temperature) Kwame&lt;br /&gt;
# [[Interfacing with Python]] Kwame&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--[[Processes]] Yash --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: red&amp;quot;&amp;gt;Be sure to include references in your tutorials, especially if you quote material from other sites!&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kwame</name></author>	</entry>

	<entry>
		<id>http://anrg.usc.edu/contiki/index.php?title=Troubleshooting&amp;diff=327</id>
		<title>Troubleshooting</title>
		<link rel="alternate" type="text/html" href="http://anrg.usc.edu/contiki/index.php?title=Troubleshooting&amp;diff=327"/>
				<updated>2014-03-08T00:14:18Z</updated>
		
		<summary type="html">&lt;p&gt;Kwame: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main_Page | Back to Main Page]]&lt;br /&gt;
&lt;br /&gt;
===== Permission denied =====&lt;br /&gt;
If you try to connect to a mote and receive a permission error, you may need to add yourself to the dialout group. The error may look something like the following:&lt;br /&gt;
&lt;br /&gt;
 /home/user/contiki/tools/sky/serialdump-linux -b115200 /dev/ttyUSB0&lt;br /&gt;
 connecting to /dev/ttyUSB0 (115200)&lt;br /&gt;
 /dev/ttyUSB0: Permission denied&lt;br /&gt;
 make: *** [login] Error 255&lt;br /&gt;
&lt;br /&gt;
Use the following command (replace &amp;lt;username&amp;gt; with your account):&lt;br /&gt;
&lt;br /&gt;
 sudo adduser &amp;lt;username&amp;gt; dialout&lt;br /&gt;
&lt;br /&gt;
-OR-&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -a -G dialout &amp;lt;username&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These two commands are equivalent. They both will add username to the dialout group. You will then have to re-login to or reboot your computer for the changes to take effect. You should now have read/write permissions to your USB serial devices. It is not necessary to remove any packages.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Trying the following command which should give  the desired output&lt;br /&gt;
&lt;br /&gt;
  make TARGET=sky sky-motelist &lt;br /&gt;
&lt;br /&gt;
(sky can be replaced by the mote which is being used e.g z1)&lt;br /&gt;
&lt;br /&gt;
The desired output&lt;br /&gt;
&lt;br /&gt;
  ../../tools/sky/motelist-linux &lt;br /&gt;
  Reference  Device           Description &lt;br /&gt;
  ---------- ---------------- --------------------------------------------- &lt;br /&gt;
  M4A7J5HF   /dev/ttyUSB0     Moteiv tmote sky &lt;br /&gt;
&lt;br /&gt;
This means it is a common serial port connection problem with Ubuntu 12.04 LTS.&lt;br /&gt;
&lt;br /&gt;
To resolve the issue do the following.&lt;br /&gt;
 &lt;br /&gt;
  sudo apt-get remove modemmanager&lt;br /&gt;
  sudo adduser $USER dialout (or)&lt;br /&gt;
  sudo usermod -a -G dialout $USER // adds the user to the dialout&lt;br /&gt;
  // replace $USER by the username&lt;br /&gt;
  sudo reboot&lt;br /&gt;
  id -Gn&lt;br /&gt;
&lt;br /&gt;
And check now if the device is attached to the dialout user group.&lt;br /&gt;
&lt;br /&gt;
  ls -l /dev/ttyUSB0&lt;br /&gt;
  crw-rw---- 1 root dialout 188, 0 Mar  5 19:58 /dev/ttyUSB0 &lt;br /&gt;
&lt;br /&gt;
There is no need to mess with dev rules or permissions. &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Issue with make login =====&lt;br /&gt;
If you are trying to execute the serial-dump application (contiki/tools/sky/serialdump-linux) and see the message: &amp;quot;No such file or directory&amp;quot; or &amp;quot;Command not found&amp;quot;, it means that you are running in a 64-bit operating system that does not have proper 32-bit libraries installed. Since serialdump-linux is a pre-compiled 32-bit tool you need to execute the following command to install the necessary libraries:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;sudo apt-get install ia32-libs&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the above does not work &lt;br /&gt;
&lt;br /&gt;
Then, try few commands like:&lt;br /&gt;
&lt;br /&gt;
  ldd serialdump-linux&lt;br /&gt;
&lt;br /&gt;
The output look similar to the following:&lt;br /&gt;
&lt;br /&gt;
  ldd serialdump-linux&lt;br /&gt;
        linux-gate.so.1 =&amp;gt;  (0xf772d000)&lt;br /&gt;
        libc.so.6 =&amp;gt; /lib32/libc.so.6 (0xf75b4000)&lt;br /&gt;
        /lib/ld-linux.so.2 (0xf772e000)&lt;br /&gt;
&lt;br /&gt;
Then it means that you have to install 32-bit packages. &lt;br /&gt;
Remember to add i386 architecture or you won&amp;#039;t be able to install 32-bit packages:&lt;br /&gt;
  sudo dpkg --add-architecture i386&lt;br /&gt;
  sudo apt-get update&lt;br /&gt;
  sudo apt-get install ia32-libs&lt;/div&gt;</summary>
		<author><name>Kwame</name></author>	</entry>

	<entry>
		<id>http://anrg.usc.edu/contiki/index.php?title=Troubleshooting&amp;diff=326</id>
		<title>Troubleshooting</title>
		<link rel="alternate" type="text/html" href="http://anrg.usc.edu/contiki/index.php?title=Troubleshooting&amp;diff=326"/>
				<updated>2014-03-08T00:10:24Z</updated>
		
		<summary type="html">&lt;p&gt;Kwame: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main_Page | Back to Main Page]]&lt;br /&gt;
&lt;br /&gt;
===== Permission denied =====&lt;br /&gt;
If you try to connect to a mote and receive a permission error, you may need to add yourself to the dialout group. The error may look something like the following:&lt;br /&gt;
&lt;br /&gt;
 /home/user/contiki/tools/sky/serialdump-linux -b115200 /dev/ttyUSB0&lt;br /&gt;
 connecting to /dev/ttyUSB0 (115200)&lt;br /&gt;
 /dev/ttyUSB0: Permission denied&lt;br /&gt;
 make: *** [login] Error 255&lt;br /&gt;
&lt;br /&gt;
Use the following command (replace &amp;lt;username&amp;gt; with your account):&lt;br /&gt;
&lt;br /&gt;
 sudo adduser &amp;lt;username&amp;gt; dialout&lt;br /&gt;
&lt;br /&gt;
You will then have to re-login to or reboot your computer for the changes to take effect. You should now have read/write permissions to your USB serial devices. It is not necessary to remove any packages.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Trying the following command which should give  the desired output&lt;br /&gt;
&lt;br /&gt;
  make TARGET=sky sky-motelist &lt;br /&gt;
&lt;br /&gt;
(sky can be replaced by the mote which is being used e.g z1)&lt;br /&gt;
&lt;br /&gt;
The desired output&lt;br /&gt;
&lt;br /&gt;
  ../../tools/sky/motelist-linux &lt;br /&gt;
  Reference  Device           Description &lt;br /&gt;
  ---------- ---------------- --------------------------------------------- &lt;br /&gt;
  M4A7J5HF   /dev/ttyUSB0     Moteiv tmote sky &lt;br /&gt;
&lt;br /&gt;
This means it is a common serial port connection problem with Ubuntu 12.04 LTS.&lt;br /&gt;
&lt;br /&gt;
To resolve the issue do the following.&lt;br /&gt;
 &lt;br /&gt;
  sudo apt-get remove modemmanager&lt;br /&gt;
  sudo adduser $USER dialout (or)&lt;br /&gt;
  sudo usermod -a -G dialout $USER // adds the user to the dialout&lt;br /&gt;
  // replace $USER by the username&lt;br /&gt;
  sudo reboot&lt;br /&gt;
  id -Gn&lt;br /&gt;
&lt;br /&gt;
And check now if the device is attached to the dialout user group.&lt;br /&gt;
&lt;br /&gt;
  ls -l /dev/ttyUSB0&lt;br /&gt;
  crw-rw---- 1 root dialout 188, 0 Mar  5 19:58 /dev/ttyUSB0 &lt;br /&gt;
&lt;br /&gt;
There is no need to mess with dev rules or permissions. &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Issue with make login =====&lt;br /&gt;
If you are trying to execute the serial-dump application (contiki/tools/sky/serialdump-linux) and see the message: &amp;quot;No such file or directory&amp;quot; or &amp;quot;Command not found&amp;quot;, it means that you are running in a 64-bit operating system that does not have proper 32-bit libraries installed. Since serialdump-linux is a pre-compiled 32-bit tool you need to execute the following command to install the necessary libraries:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;sudo apt-get install ia32-libs&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the above does not work &lt;br /&gt;
&lt;br /&gt;
Then, try few commands like:&lt;br /&gt;
&lt;br /&gt;
  ldd serialdump-linux&lt;br /&gt;
&lt;br /&gt;
The output look similar to the following:&lt;br /&gt;
&lt;br /&gt;
  ldd serialdump-linux&lt;br /&gt;
        linux-gate.so.1 =&amp;gt;  (0xf772d000)&lt;br /&gt;
        libc.so.6 =&amp;gt; /lib32/libc.so.6 (0xf75b4000)&lt;br /&gt;
        /lib/ld-linux.so.2 (0xf772e000)&lt;br /&gt;
&lt;br /&gt;
Then it means that you have to install 32-bit packages. &lt;br /&gt;
Remember to add i386 architecture or you won&amp;#039;t be able to install 32-bit packages:&lt;br /&gt;
  sudo dpkg --add-architecture i386&lt;br /&gt;
  sudo apt-get update&lt;br /&gt;
  sudo apt-get install ia32-libs&lt;/div&gt;</summary>
		<author><name>Kwame</name></author>	</entry>

	<entry>
		<id>http://anrg.usc.edu/contiki/index.php?title=Troubleshooting&amp;diff=325</id>
		<title>Troubleshooting</title>
		<link rel="alternate" type="text/html" href="http://anrg.usc.edu/contiki/index.php?title=Troubleshooting&amp;diff=325"/>
				<updated>2014-03-08T00:00:13Z</updated>
		
		<summary type="html">&lt;p&gt;Kwame: Undo revision 324 by Kwame (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main_Page | Back to Main Page]]&lt;br /&gt;
&lt;br /&gt;
===== Permission denied =====&lt;br /&gt;
If you try to connect to a mote and receive a permission error, you may need to add yourself to the dialout group. The error may look something like the following:&lt;br /&gt;
&lt;br /&gt;
 /home/user/contiki/tools/sky/serialdump-linux -b115200 /dev/ttyUSB0&lt;br /&gt;
 connecting to /dev/ttyUSB0 (115200)&lt;br /&gt;
 /dev/ttyUSB0: Permission denied&lt;br /&gt;
 make: *** [login] Error 255&lt;br /&gt;
&lt;br /&gt;
Trying the following command which should give  the desired output&lt;br /&gt;
&lt;br /&gt;
  make TARGET=sky sky-motelist &lt;br /&gt;
&lt;br /&gt;
(sky can be replaced by the mote which is being used e.g z1)&lt;br /&gt;
&lt;br /&gt;
The desired output&lt;br /&gt;
&lt;br /&gt;
  ../../tools/sky/motelist-linux &lt;br /&gt;
  Reference  Device           Description &lt;br /&gt;
  ---------- ---------------- --------------------------------------------- &lt;br /&gt;
  M4A7J5HF   /dev/ttyUSB0     Moteiv tmote sky &lt;br /&gt;
&lt;br /&gt;
This means it is a common serial port connection problem with Ubuntu 12.04 LTS.&lt;br /&gt;
&lt;br /&gt;
To resolve the issue do the following.&lt;br /&gt;
 &lt;br /&gt;
  sudo apt-get remove modemmanager&lt;br /&gt;
  sudo adduser $USER dialout (or)&lt;br /&gt;
  sudo usermod -a -G dialout $USER // adds the user to the dialout&lt;br /&gt;
  // replace $USER by the username&lt;br /&gt;
  sudo reboot&lt;br /&gt;
  id -Gn&lt;br /&gt;
&lt;br /&gt;
And check now if the device is attached to the dialout user group.&lt;br /&gt;
&lt;br /&gt;
  ls -l /dev/ttyUSB0&lt;br /&gt;
  crw-rw---- 1 root dialout 188, 0 Mar  5 19:58 /dev/ttyUSB0 &lt;br /&gt;
&lt;br /&gt;
There is no need to mess with dev rules or permissions. &lt;br /&gt;
&lt;br /&gt;
===== Issue with make login =====&lt;br /&gt;
If you are trying to execute the serial-dump application (contiki/tools/sky/serialdump-linux) and see the message: &amp;quot;No such file or directory&amp;quot; or &amp;quot;Command not found&amp;quot;, it means that you are running in a 64-bit operating system that does not have proper 32-bit libraries installed. Since serialdump-linux is a pre-compiled 32-bit tool you need to execute the following command to install the necessary libraries:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;sudo apt-get install ia32-libs&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the above does not work &lt;br /&gt;
&lt;br /&gt;
Then, try few commands like:&lt;br /&gt;
&lt;br /&gt;
  ldd serialdump-linux&lt;br /&gt;
&lt;br /&gt;
The output look similar to the following:&lt;br /&gt;
&lt;br /&gt;
  ldd serialdump-linux&lt;br /&gt;
        linux-gate.so.1 =&amp;gt;  (0xf772d000)&lt;br /&gt;
        libc.so.6 =&amp;gt; /lib32/libc.so.6 (0xf75b4000)&lt;br /&gt;
        /lib/ld-linux.so.2 (0xf772e000)&lt;br /&gt;
&lt;br /&gt;
Then it means that you have to install 32-bit packages. &lt;br /&gt;
Remember to add i386 architecture or you won&amp;#039;t be able to install 32-bit packages:&lt;br /&gt;
  sudo dpkg --add-architecture i386&lt;br /&gt;
  sudo apt-get update&lt;br /&gt;
  sudo apt-get install ia32-libs&lt;/div&gt;</summary>
		<author><name>Kwame</name></author>	</entry>

	<entry>
		<id>http://anrg.usc.edu/contiki/index.php?title=Troubleshooting&amp;diff=324</id>
		<title>Troubleshooting</title>
		<link rel="alternate" type="text/html" href="http://anrg.usc.edu/contiki/index.php?title=Troubleshooting&amp;diff=324"/>
				<updated>2014-03-07T23:59:29Z</updated>
		
		<summary type="html">&lt;p&gt;Kwame: Reverted edits by Pedro (talk) to last revision by Lgadde&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main_Page | Back to Main Page]]&lt;br /&gt;
&lt;br /&gt;
===== Permission denied =====&lt;br /&gt;
If you try to connect to a mote and receive a permission error, you may need to add yourself to the dialout group. The error may look something like the following:&lt;br /&gt;
&lt;br /&gt;
 /home/user/contiki/tools/sky/serialdump-linux -b115200 /dev/ttyUSB0&lt;br /&gt;
 connecting to /dev/ttyUSB0 (115200)&lt;br /&gt;
 /dev/ttyUSB0: Permission denied&lt;br /&gt;
 make: *** [login] Error 255&lt;br /&gt;
&lt;br /&gt;
Trying the following command which should give  the desired output&lt;br /&gt;
&lt;br /&gt;
  make TARGET=sky sky-motelist &lt;br /&gt;
&lt;br /&gt;
(sky can be replaced by the mote which is being used e.g z1)&lt;br /&gt;
&lt;br /&gt;
The desired output&lt;br /&gt;
&lt;br /&gt;
  ../../tools/sky/motelist-linux &lt;br /&gt;
  Reference  Device           Description &lt;br /&gt;
  ---------- ---------------- --------------------------------------------- &lt;br /&gt;
  M4A7J5HF   /dev/ttyUSB0     Moteiv tmote sky &lt;br /&gt;
&lt;br /&gt;
This means it is a common serial port connection problem with Ubuntu 12.04 LTS.&lt;br /&gt;
&lt;br /&gt;
To resolve the issue do the following.&lt;br /&gt;
 &lt;br /&gt;
  sudo apt-get remove modemmanager&lt;br /&gt;
  sudo adduser $USER dialout (or)&lt;br /&gt;
  sudo usermod -a -G dialout $USER // adds the user to the dialout&lt;br /&gt;
  // replace $USER by the username&lt;br /&gt;
  sudo reboot&lt;br /&gt;
  id -Gn&lt;br /&gt;
&lt;br /&gt;
And check now if the device is attached to the dialout user group.&lt;br /&gt;
&lt;br /&gt;
  ls -l /dev/ttyUSB0&lt;br /&gt;
  crw-rw---- 1 root dialout 188, 0 Mar  5 19:58 /dev/ttyUSB0 &lt;br /&gt;
&lt;br /&gt;
There is no need to mess with dev rules or permissions. &lt;br /&gt;
&lt;br /&gt;
===== Issue with make login =====&lt;br /&gt;
If you are trying to execute the serial-dump application (contiki/tools/sky/serialdump-linux) and see the message: &amp;quot;No such file or directory&amp;quot; or &amp;quot;Command not found&amp;quot;, it means that you are running in a 64-bit operating system that does not have proper 32-bit libraries installed. Since serialdump-linux is a pre-compiled 32-bit tool you need to execute the following command to install the necessary libraries:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;sudo apt-get install ia32-libs&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the above doesnot work &lt;br /&gt;
&lt;br /&gt;
Then, try few commands like:&lt;br /&gt;
&lt;br /&gt;
  ldd serialdump-linux&lt;br /&gt;
&lt;br /&gt;
The output look similar to the following:&lt;br /&gt;
&lt;br /&gt;
  ldd serialdump-linux&lt;br /&gt;
        linux-gate.so.1 =&amp;gt;  (0xf772d000)&lt;br /&gt;
        libc.so.6 =&amp;gt; /lib32/libc.so.6 (0xf75b4000)&lt;br /&gt;
        /lib/ld-linux.so.2 (0xf772e000)&lt;br /&gt;
&lt;br /&gt;
Then it means that you have to install 32-bit packages. &lt;br /&gt;
Remember to add i386 architecture or you won&amp;#039;t be able to install 32-bit packages:&lt;br /&gt;
  sudo dpkg --add-architecture i386&lt;br /&gt;
  sudo apt-get update&lt;br /&gt;
  sudo apt-get install ia32-libs&lt;/div&gt;</summary>
		<author><name>Kwame</name></author>	</entry>

	<entry>
		<id>http://anrg.usc.edu/contiki/index.php?title=Contiki_tutorials&amp;diff=278</id>
		<title>Contiki tutorials</title>
		<link rel="alternate" type="text/html" href="http://anrg.usc.edu/contiki/index.php?title=Contiki_tutorials&amp;diff=278"/>
				<updated>2014-03-01T03:24:55Z</updated>
		
		<summary type="html">&lt;p&gt;Kwame: /* List of Tutorials */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main_Page | Back to Main Page]]&lt;br /&gt;
&lt;br /&gt;
== List of Tutorials ==&lt;br /&gt;
&lt;br /&gt;
Completed&lt;br /&gt;
&lt;br /&gt;
# [[Installation]]&lt;br /&gt;
# [[Broadcast Example]]&lt;br /&gt;
# [[Collect View]]&lt;br /&gt;
&lt;br /&gt;
Need review&lt;br /&gt;
&lt;br /&gt;
# [[Hello World]]&lt;br /&gt;
&lt;br /&gt;
Starting&lt;br /&gt;
# [[Tutornet]] Pedro, Kwame&lt;br /&gt;
# [[Timers]] Tim, Leo&lt;br /&gt;
# [[Cooja Simulator]] (Getting started, debugging) Pedro&lt;br /&gt;
# [[Contiki build system]] Nikhil&lt;br /&gt;
# [[Protocols stack]]&lt;br /&gt;
# [[CFS-Coffee]] Kevin&lt;br /&gt;
# [[RSS measurement]]&lt;br /&gt;
# [[Sensor acquisition]] (light, temperature) Kwame&lt;br /&gt;
# [[Interfacing with Python/Matlab]] Kwame&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--[[Processes]] Yash --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: red&amp;quot;&amp;gt;Be sure to include references in your tutorials, especially if you quote material from other sites!&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kwame</name></author>	</entry>

	<entry>
		<id>http://anrg.usc.edu/contiki/index.php?title=Main_Page&amp;diff=277</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://anrg.usc.edu/contiki/index.php?title=Main_Page&amp;diff=277"/>
				<updated>2014-03-01T03:23:34Z</updated>
		
		<summary type="html">&lt;p&gt;Kwame: /* Useful links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Contiki Development at [//http://anrg.usc.edu ANRG], [//http:www.usc.edu University of Southern California]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
[[Team]]&lt;br /&gt;
&lt;br /&gt;
== Useful links ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.contiki-os.org/ Official Homepage]&lt;br /&gt;
* [https://github.com/contiki-os/contiki GitHub repository]&lt;br /&gt;
* [http://sourceforge.net/projects/contikiprojects/ Contiki Projects repository]&lt;br /&gt;
* [http://contiki-os.blogspot.com/ ContikiOS official blog]&lt;br /&gt;
* [http://www.contiki-os.org/support.html Resources page]&lt;br /&gt;
* [http://anrg.usc.edu/~ee652/readinglist.html Recommended reading]&lt;br /&gt;
&lt;br /&gt;
== Getting started ==&lt;br /&gt;
* [http://anrg.usc.edu/contiki/index.php/Contiki_tutorials Contiki Tutorials]&lt;br /&gt;
* [http://anrg.usc.edu/contiki/index.php/Troubleshooting Troubleshooting]&lt;br /&gt;
&lt;br /&gt;
== To-Do ==&lt;br /&gt;
* Find out how to input code lists with syntax highlighting. Install SyntaxHighlight extension (http://www.mediawiki.org/wiki/Extension:SyntaxHighlight) or ASHighlight extension (http://www.mediawiki.org/wiki/Extension:ASHighlight)&lt;br /&gt;
* &amp;lt;strike&amp;gt;Fix error while uploading a file: Could not create directory &amp;quot;mwstore://local-backend/local-public/a/ae&amp;quot;.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* Create a site map&lt;br /&gt;
* See if it is possible to create some private pages&lt;/div&gt;</summary>
		<author><name>Kwame</name></author>	</entry>

	<entry>
		<id>http://anrg.usc.edu/contiki/index.php?title=Contiki_tutorials&amp;diff=276</id>
		<title>Contiki tutorials</title>
		<link rel="alternate" type="text/html" href="http://anrg.usc.edu/contiki/index.php?title=Contiki_tutorials&amp;diff=276"/>
				<updated>2014-03-01T03:22:56Z</updated>
		
		<summary type="html">&lt;p&gt;Kwame: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main_Page | Back to Main Page]]&lt;br /&gt;
&lt;br /&gt;
== List of Tutorials ==&lt;br /&gt;
&lt;br /&gt;
Completed&lt;br /&gt;
&lt;br /&gt;
# [[Installation]]&lt;br /&gt;
# [[Broadcast Example]]&lt;br /&gt;
# [[Collect View]]&lt;br /&gt;
&lt;br /&gt;
Need review&lt;br /&gt;
&lt;br /&gt;
# [[Hello World]]&lt;br /&gt;
&lt;br /&gt;
Starting&lt;br /&gt;
# [[Tutornet]] Pedro, Kwame&lt;br /&gt;
# [[Timers]] Tim, Leo&lt;br /&gt;
# [[Cooja Simulator]] (Getting started, debugging) Pedro&lt;br /&gt;
# [[Contiki build system]] Nikhil&lt;br /&gt;
# [[Protocols stack]]&lt;br /&gt;
# [[CFS-Coffee]] Kevin&lt;br /&gt;
# [[RSS measurement]]&lt;br /&gt;
# [[Sensor acquisition]] (light, temperature) Kwame&lt;br /&gt;
# [[Interfacing with Python/Matlab]] Kwame&lt;br /&gt;
&lt;br /&gt;
//[[Processes]] Yash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: red&amp;quot;&amp;gt;Be sure to include references in your tutorials, especially if you quote material from other sites!&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kwame</name></author>	</entry>

	<entry>
		<id>http://anrg.usc.edu/contiki/index.php?title=Meeting_Logs&amp;diff=275</id>
		<title>Meeting Logs</title>
		<link rel="alternate" type="text/html" href="http://anrg.usc.edu/contiki/index.php?title=Meeting_Logs&amp;diff=275"/>
				<updated>2014-03-01T03:19:26Z</updated>
		
		<summary type="html">&lt;p&gt;Kwame: /* Feb/28 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Feb/7 ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Secretary:&amp;#039;&amp;#039;&amp;#039; Kwame&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Meeting summary:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Professor Bhaskar gave us his wishlist. See a brief outline at [[Wishlist]].&lt;br /&gt;
&lt;br /&gt;
We got the Contiki oscilloscope up and running, and played around with it using two motes.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;For next week:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Suvil is going to investigate options for a mailing list and also get the issue with uploading images to the wiki fixed.&lt;br /&gt;
&lt;br /&gt;
Nikhil will set up a Google Drive share for us to use for prototyping our tutorials when appropriate. It would allow for us to collaboratively edit in real-time and provide us all the conveniences of a modern word processor (spell check, etc.) We should probably discuss this more next time.&lt;br /&gt;
&lt;br /&gt;
Yash will spend the time catching up and going through our existing tutorials.&lt;br /&gt;
&lt;br /&gt;
Lakshmi has graciously volunteered to present Cristian&amp;#039;s algorithm to us.&lt;br /&gt;
&lt;br /&gt;
Nikhil, Bhavana, Rahul, and Deepanker will start a new tutorial for using the Oscilloscope.&lt;br /&gt;
&lt;br /&gt;
Kevin will explore methods for on-board data storage on the sky mote, both volatile and non-volatile.&lt;br /&gt;
&lt;br /&gt;
Pedro, Suvil, and Kwame will work on running Contiki on the testbed and starting a tutorial. Also, thinking about how we can refactor some of our theoretical tutorials to be more activity oriented.&lt;br /&gt;
&lt;br /&gt;
Everyone should update their tutorials to include the primary contributors. Perhaps somewhere at the end.&lt;br /&gt;
&lt;br /&gt;
== Feb/14 ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Secretary:&amp;#039;&amp;#039;&amp;#039; Pedro&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Meeting summary:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Lakshmi presented the paper [[Probabilistic Clock Synchronization http://kom.aau.dk/~rlo/lectures/algoAndArchIII_2009/ChristiansAlgorithm.pdf]]. We had a very interesting discussion about the terms and concepts behind synchronization and clock in network nodes. We might in the future see how this algorithm can be implemented in a WSN or check whether its main ideas are already implemented in the &amp;quot;Implicit network time synchronization&amp;quot;, present in ContikiOS ([http://contiki.sourceforge.net/docs/2.6/a01741.html])&lt;br /&gt;
&lt;br /&gt;
Everyone gave an updated about what have been done during last week. We have some material for two tutorials: the &amp;#039;&amp;#039;Oscilloscope&amp;#039;&amp;#039; and &amp;#039;&amp;#039;Coffee File System&amp;#039;&amp;#039;. This material is yet in the Google Doc create for prototyping and should be posted in the Wiki soon.&lt;br /&gt;
&lt;br /&gt;
Kwame guided the group in the first 4 sessions of ContikiOS Crash Course [[File:Seniot09cccc-notes.pdf]]. We played with LEDs and push button. This example should give a new tutorial on how to use all the sensors/actuators (light, temperature, push button, etc.) on the motes.&lt;br /&gt;
&lt;br /&gt;
We decided that each week one person will be responsible for creating this meeting log, so everyone can keep track of what has been discussed every week. Below we have the expected date of our next meetings and a tentative assignment.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;For next week:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Kevin will give a brief talk about Coffee file system and show us the material he obtained and the tutorial he started to write.&lt;br /&gt;
&lt;br /&gt;
Yash will start to study and collect material about processes and protothreads. He may give a talk about these topics in two weeks.&lt;br /&gt;
&lt;br /&gt;
Nikhil, Bhavana, Rahul, and Deepanker will keep working on the Oscilloscope tutorial.&lt;br /&gt;
&lt;br /&gt;
Pedro and Kwame will start to work on the Tutornet testbed.&lt;br /&gt;
&lt;br /&gt;
Suvil will fix some issues we are facing in the Wiki with code formatting and help us with account creation/setup of the testbed.&lt;br /&gt;
&lt;br /&gt;
== Feb/21 ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Secretary:&amp;#039;&amp;#039;&amp;#039; Suvil&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Meeting summary:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Kevin gave a presentation about Coffee File System. He showed the main interface and functions that can be used by Tmote Sky. He also showed an example where a node was programmed to create and write 3 different files on Flash Memory and after reboot output the content of the files reading then from the memory. The presentation slides can be found here:[] and the example code can be found here:[]. He started to create a tutorial on Coffee on the shared Doc file and you may create a tutorial about this topic in our Wiki soon.&lt;br /&gt;
&lt;br /&gt;
We went through the example in: examples/rime/example-neighbors.c, suggested by Bhavana. Basically this example makes all node generate beacons and create a list of neighbors of each node. It prints out the list of neighbors with the corresponding RSSI value.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;For next week:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
We should continue to work on the tutorials, trying to polish and review them for final publication.&lt;br /&gt;
&lt;br /&gt;
== Feb/28 ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Secretary:&amp;#039;&amp;#039;&amp;#039; Leo&lt;br /&gt;
&lt;br /&gt;
== Mar/07 ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Secretary:&amp;#039;&amp;#039;&amp;#039; Nikhil&lt;br /&gt;
&lt;br /&gt;
== Mar/14 ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Secretary:&amp;#039;&amp;#039;&amp;#039; Rahul&lt;br /&gt;
&lt;br /&gt;
== Mar/21 ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Secretary:&amp;#039;&amp;#039;&amp;#039; Yash&lt;br /&gt;
&lt;br /&gt;
== Mar/28 ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Secretary:&amp;#039;&amp;#039;&amp;#039; Deepanker&lt;br /&gt;
&lt;br /&gt;
== Apr/04 ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Secretary:&amp;#039;&amp;#039;&amp;#039; Kevin&lt;br /&gt;
&lt;br /&gt;
== Apr/11 ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Secretary:&amp;#039;&amp;#039;&amp;#039; Timothy&lt;br /&gt;
&lt;br /&gt;
== Apr/18 ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Secretary:&amp;#039;&amp;#039;&amp;#039; Leo&lt;/div&gt;</summary>
		<author><name>Kwame</name></author>	</entry>

	<entry>
		<id>http://anrg.usc.edu/contiki/index.php?title=Contiki_tutorials&amp;diff=270</id>
		<title>Contiki tutorials</title>
		<link rel="alternate" type="text/html" href="http://anrg.usc.edu/contiki/index.php?title=Contiki_tutorials&amp;diff=270"/>
				<updated>2014-02-28T22:35:16Z</updated>
		
		<summary type="html">&lt;p&gt;Kwame: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main_Page | Back to Main Page]]&lt;br /&gt;
&lt;br /&gt;
== List of Tutorials ==&lt;br /&gt;
&lt;br /&gt;
Completed&lt;br /&gt;
&lt;br /&gt;
# [[Installation]]&lt;br /&gt;
# [[Broadcast Example]]&lt;br /&gt;
# [[Collect View]]&lt;br /&gt;
&lt;br /&gt;
Need review&lt;br /&gt;
&lt;br /&gt;
# [[Hello World]]&lt;br /&gt;
&lt;br /&gt;
Starting&lt;br /&gt;
# [[Tutornet]]&lt;br /&gt;
# [[Timers]]&lt;br /&gt;
# [[Cooja Simulator]]&lt;br /&gt;
# [[Contiki build system]]&lt;br /&gt;
# [[Processes]]&lt;br /&gt;
# [[Protocols stack]]&lt;br /&gt;
# [[CFS-Coffee]]&lt;br /&gt;
# [[RSS measurement]]&lt;br /&gt;
# [[Sensor acquisition]]&lt;br /&gt;
# [[Interfacing with Python/Matlab]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: red&amp;quot;&amp;gt;Be sure to include references in your tutorials, especially if you quote material from other sites!&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kwame</name></author>	</entry>

	<entry>
		<id>http://anrg.usc.edu/contiki/index.php?title=Main_Page&amp;diff=269</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://anrg.usc.edu/contiki/index.php?title=Main_Page&amp;diff=269"/>
				<updated>2014-02-28T22:34:59Z</updated>
		
		<summary type="html">&lt;p&gt;Kwame: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Contiki Development at [//http://anrg.usc.edu ANRG], [//http:www.usc.edu University of Southern California]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
[[Team]]&lt;br /&gt;
&lt;br /&gt;
== Useful links ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.contiki-os.org/ Official Homepage]&lt;br /&gt;
* [https://github.com/contiki-os/contiki GitHub repository]&lt;br /&gt;
* [http://sourceforge.net/projects/contikiprojects/ Contiki Projects repository]&lt;br /&gt;
* [http://contiki-os.blogspot.com/ ContikiOS official blog]&lt;br /&gt;
* [http://www.contiki-os.org/support.html Resources page]&lt;br /&gt;
&lt;br /&gt;
== Getting started ==&lt;br /&gt;
* [http://anrg.usc.edu/contiki/index.php/Contiki_tutorials Contiki Tutorials]&lt;br /&gt;
* [http://anrg.usc.edu/contiki/index.php/Troubleshooting Troubleshooting]&lt;br /&gt;
&lt;br /&gt;
== To-Do ==&lt;br /&gt;
* Find out how to input code lists with syntax highlighting. Install SyntaxHighlight extension (http://www.mediawiki.org/wiki/Extension:SyntaxHighlight) or ASHighlight extension (http://www.mediawiki.org/wiki/Extension:ASHighlight)&lt;br /&gt;
* &amp;lt;strike&amp;gt;Fix error while uploading a file: Could not create directory &amp;quot;mwstore://local-backend/local-public/a/ae&amp;quot;.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* Create a site map&lt;br /&gt;
* See if it is possible to create some private pages&lt;/div&gt;</summary>
		<author><name>Kwame</name></author>	</entry>

	<entry>
		<id>http://anrg.usc.edu/contiki/index.php?title=Main_Page&amp;diff=268</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://anrg.usc.edu/contiki/index.php?title=Main_Page&amp;diff=268"/>
				<updated>2014-02-28T22:34:31Z</updated>
		
		<summary type="html">&lt;p&gt;Kwame: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Contiki Development at [//http://anrg.usc.edu ANRG], [//http:www.usc.edu University of Southern California]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
[[Team]]&lt;br /&gt;
&lt;br /&gt;
== Useful links ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.contiki-os.org/ Official Homepage]&lt;br /&gt;
* [https://github.com/contiki-os/contiki GitHub repository]&lt;br /&gt;
* [http://sourceforge.net/projects/contikiprojects/ Contiki Projects repository]&lt;br /&gt;
* [http://contiki-os.blogspot.com/ ContikiOS official blog]&lt;br /&gt;
* [http://www.contiki-os.org/support.html Resources page]&lt;br /&gt;
&lt;br /&gt;
== Getting started ==&lt;br /&gt;
* [http://anrg.usc.edu/contiki/index.php/Contiki_tutorials Contiki Tutorials]&lt;br /&gt;
* [http://anrg.usc.edu/contiki/index.php/Troubleshooting Troubleshooting]&lt;br /&gt;
&lt;br /&gt;
== To-Do ==&lt;br /&gt;
* Find out how to input code lists with syntax highlighting. Install SyntaxHighlight extension (http://www.mediawiki.org/wiki/Extension:SyntaxHighlight) or ASHighlight extension (http://www.mediawiki.org/wiki/Extension:ASHighlight)&lt;br /&gt;
* &amp;lt;strike&amp;gt;Fix error while uploading a file: Could not create directory &amp;quot;mwstore://local-backend/local-public/a/ae&amp;quot;.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* Create a site map&lt;br /&gt;
* See if it is possible to create some private pages&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: red&amp;quot;&amp;gt;Be sure to include references in your tutorials, especially if you quote material from other sites!&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kwame</name></author>	</entry>

	<entry>
		<id>http://anrg.usc.edu/contiki/index.php?title=Contiki_tutorials&amp;diff=267</id>
		<title>Contiki tutorials</title>
		<link rel="alternate" type="text/html" href="http://anrg.usc.edu/contiki/index.php?title=Contiki_tutorials&amp;diff=267"/>
				<updated>2014-02-28T22:31:20Z</updated>
		
		<summary type="html">&lt;p&gt;Kwame: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main_Page | Back to Main Page]]&lt;br /&gt;
&lt;br /&gt;
== List of Tutorials ==&lt;br /&gt;
&lt;br /&gt;
Completed&lt;br /&gt;
&lt;br /&gt;
# [[Installation]]&lt;br /&gt;
# [[Broadcast Example]]&lt;br /&gt;
# [[Collect View]]&lt;br /&gt;
&lt;br /&gt;
Need review&lt;br /&gt;
&lt;br /&gt;
# [[Hello World]]&lt;br /&gt;
&lt;br /&gt;
Starting&lt;br /&gt;
# [[Tutornet]]&lt;br /&gt;
# [[Timers]]&lt;br /&gt;
# [[Cooja Simulator]]&lt;br /&gt;
# [[Contiki build system]]&lt;br /&gt;
# [[Processes]]&lt;br /&gt;
# [[Protocols stack]]&lt;br /&gt;
# [[CFS-Coffee]]&lt;br /&gt;
# [[RSS measurement]]&lt;br /&gt;
# [[Sensor acquisition]]&lt;br /&gt;
# [[Interfacing with Python/Matlab]]&lt;/div&gt;</summary>
		<author><name>Kwame</name></author>	</entry>

	<entry>
		<id>http://anrg.usc.edu/contiki/index.php?title=Contiki_tutorials&amp;diff=266</id>
		<title>Contiki tutorials</title>
		<link rel="alternate" type="text/html" href="http://anrg.usc.edu/contiki/index.php?title=Contiki_tutorials&amp;diff=266"/>
				<updated>2014-02-28T22:31:02Z</updated>
		
		<summary type="html">&lt;p&gt;Kwame: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main_Page | Back to Main Page]]&lt;br /&gt;
&lt;br /&gt;
== List of Tutorials ==&lt;br /&gt;
&lt;br /&gt;
Completed&lt;br /&gt;
&lt;br /&gt;
# [[Installation]]&lt;br /&gt;
# [[Broadcast Example]]&lt;br /&gt;
# [[Collect View]]&lt;br /&gt;
&lt;br /&gt;
Need review&lt;br /&gt;
&lt;br /&gt;
# [[Hello World]]&lt;br /&gt;
&lt;br /&gt;
Starting&lt;br /&gt;
# [[Tutornet]]&lt;br /&gt;
# [[Timers]]&lt;br /&gt;
# [[Cooja Simulator]]&lt;br /&gt;
# [[Contiki build system]]&lt;br /&gt;
# [[Processes]]&lt;br /&gt;
# [[Protocols stack]]&lt;br /&gt;
# [[CFS-Coffee]]&lt;br /&gt;
&lt;br /&gt;
# [[RSS measurement]]&lt;br /&gt;
# [[Sensor acquisition]]&lt;br /&gt;
# [[Interfacing with Python/Matlab]]&lt;/div&gt;</summary>
		<author><name>Kwame</name></author>	</entry>

	<entry>
		<id>http://anrg.usc.edu/contiki/index.php?title=Broadcast_Example&amp;diff=265</id>
		<title>Broadcast Example</title>
		<link rel="alternate" type="text/html" href="http://anrg.usc.edu/contiki/index.php?title=Broadcast_Example&amp;diff=265"/>
				<updated>2014-02-28T22:17:03Z</updated>
		
		<summary type="html">&lt;p&gt;Kwame: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Contiki_tutorials | Back to Contiki Tutorials]]&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
This exercise is an introduction into programming the [http://www.capsil.org/capsilwiki/index.php/TELOSB/TMote_Sky Tmote Sky]. It uses the Rime stack to communicate with other Contiki nodes over the radio. You will run the broadcast example already found in the Contiki core folders to send your name from a base station via broadcast packets. The exercise sends broadcast packets at random intervals between 4 and 8 seconds such that all Tmote Sky boards nearby will receive the packet.&lt;br /&gt;
&lt;br /&gt;
== You will learn ==&lt;br /&gt;
&lt;br /&gt;
* How to program the Broadcast communication found within the Rime stack&lt;br /&gt;
* How to encapsulate data in packets&lt;br /&gt;
&lt;br /&gt;
== Connect the Tmote Sky ==&lt;br /&gt;
Before continuing with the tutorial, plug a Tmote Sky into the computer’s USB port. The LEDs on the skymote will start blinking to indicate that the mote is connected.&lt;br /&gt;
&lt;br /&gt;
=== Step 1 ===&lt;br /&gt;
&lt;br /&gt;
The first step is to change directories. At this point you should be familiar with the Contiki 2.7 core folders. The Rime stack is located within the examples folder, so type &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt; cd contiki-2.7/examples/rime &amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
directly into terminal. Once inside the rime folder, use the ls command to view all the files within it. We will be working specifically with example-broadcast.c.&lt;br /&gt;
&lt;br /&gt;
=== Step 2 ===&lt;br /&gt;
&lt;br /&gt;
Next, we will edit the data in the example-broadcast.c file. In order to do this, you will need to open the file with your text editor. In this exercise, we use gedit, but feel free to use whichever text editor you are most comfortable with. Type the following into the terminal:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt; gedit example-broadcast.c &amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will open your text editor, allowing you to edit the code inside the broadcast packet.&lt;br /&gt;
&lt;br /&gt;
=== Step 3 ===&lt;br /&gt;
&lt;br /&gt;
To edit the actual data that your Tmote Sky will broadcast, scroll down to the line that contains: &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt; packetbuf_copyfrom(“Hello”,  6) &amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change the character string to your name. Then change the number of characters accordingly. Remember to account for the null zero associated with character strings in C when changing the number of characters. The line should now read&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt; packetbuf_copyfrom(“yourName”,  9) &amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Save and exit the text editor. &lt;br /&gt;
&lt;br /&gt;
=== Step 4 ===&lt;br /&gt;
&lt;br /&gt;
In the next step we configure Tmote Sky. Connect your mote to your computer via USB. If you are using VirtualBox or Parallels, assure that the mote actually connects to your virtual machine and not the host computer. The LEDs on the mote will temporarily blink when connected to the laptop.  &lt;br /&gt;
&lt;br /&gt;
=== Step 5 ===&lt;br /&gt;
&lt;br /&gt;
In this step, we will compile and upload the Broadcast packet to your Tmote Sky. In the terminal window, type&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt; make TARGET=sky example-broadcast.upload login &amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will notice that instead of typing example-broadcast.sky, we use example-broadcast.upload. The .upload tells Contiki to install the binary onto the attached mote. Additionally, we add login to use the terminal to communicate with the mote over the serial interface referred to by /dev/ttyUSB0. Note that login can be specified later in another call to make, i.e. make login.&lt;br /&gt;
&lt;br /&gt;
This should compile and upload the example-broadcast.c packet such that your mote will be able to broadcast your name. After the compilation is complete, the text broadcast message sent...  should appear in terminal every 2 to 4 seconds, indicating that your name (which we added within the text editor) is being broadcast to all other motes in the area.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Congratulations! You have successfully programmed the Tmote Sky! &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Note:&amp;#039;&amp;#039;&amp;#039; If at any point, you would like to exit the compilation/broadcast stage, press CTRL-C&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Tip:&amp;#039;&amp;#039;&amp;#039; You can save the TARGET by typing make TARGET=sky savetarget into terminal to avoid compiling the target repeatedly.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Understanding the code ==&lt;br /&gt;
The purpose of this example is to test the broadcast layer in Rime. A glance at core/net/rime/broadcast.h and core/net/rime/broadcast.c helps in the understanding underlying concepts of this example.&lt;br /&gt;
In the code, a process called example_broadcast_process is  kicked off by AUTOSTART_PROCESSES.&lt;br /&gt;
&lt;br /&gt;
==== Macros and Structures ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt; PROCESS(name,strname) &amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every [http://anrg.usc.edu/contiki/index.php?title=Process process] should be defined via the PROCESS macro.&lt;br /&gt;
PROCESS has two arguments: the variable of the process structure, and a human readable string name, which is used when debugging.&lt;br /&gt;
&lt;br /&gt;
*name: The variable name of the process structure.&lt;br /&gt;
*strname: The string representation of the process name.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt; AUTOSTART_PROCESS(struct process &amp;amp;) &amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
AUTOSTART_PROCESSES automatically starts the process(es) given in the argument(s) when the module boots.&lt;br /&gt;
&lt;br /&gt;
*&amp;amp;name: Reference to the process name&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt; broadcast_recv(struct broadcast_conn *, const rimeaddr_t *) &amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This function parses an incoming packet and displays the message and the address of the sender.&lt;br /&gt;
By setting it as the broadcast&amp;#039;s designated callback function, broadcast_recv is automatically called when a packet is received.&lt;br /&gt;
&lt;br /&gt;
*broadcast_conn *:  This structure which has 2 structures : abc_conn, broadcast_callbacks *. The abc_conn is basic type of connection over which the broadcast connection is developed. And, the broadcast_callbacks point to recv and sent functions (in this example, just recv).&lt;br /&gt;
&lt;br /&gt;
*rimeaddr_t *: This is a union which has a character array u8[RIMEADDR_SIZE].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt; PROCESS_THREAD(name, process_event_t, process_data_t) &amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A process in Contiki consists of a single reference to a &amp;quot;[http://anrg.usc.edu/contiki/index.php?title=Protothreads protothread]&amp;quot;. This function is used to define the protothread of a process. The process is called whenever an event occurs in the system. &lt;br /&gt;
Each process in the module requires an event handler under the PROCESS_THREAD macro.&lt;br /&gt;
&lt;br /&gt;
*name: The variable name of the process structure.&lt;br /&gt;
*process_event_t: The variable of type character.If this variable is same as PROCESS_EVENT_EXIT then PROCESS_EXITHANDLER is invoked.&lt;br /&gt;
&lt;br /&gt;
Within the body of PROCESS_THREAD there are 3 major tasks:&lt;br /&gt;
* Initialization&lt;br /&gt;
** allocate resources&lt;br /&gt;
** define variables&lt;br /&gt;
** begin process&lt;br /&gt;
* Infinite Loop&lt;br /&gt;
** while(1) is used to create an infinite loop in which the actual event-handling response takes place&lt;br /&gt;
* Deallocation&lt;br /&gt;
** end process&lt;br /&gt;
** deallocate resources&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;PROCESS_EXITHANDLER(handler) &amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Specifies an action when a process exits.&lt;br /&gt;
NOTE: This declaration must come immediately before the PROCESS_BEGIN() macro.&lt;br /&gt;
&lt;br /&gt;
* handler: The action to be performed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;PROCESS_BEGIN() &amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This macro defines the beginning of a process, and must always appear in a PROCESS_THREAD() definition.This macro initiates PT_BEGIN(), which is declared at the starting point of a protothread. All C statements above the PT_BEGIN() invokation will be executed each time the protothread is scheduled.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;broadcast_close(struct broadcast_conn *) &amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This function closes a broadcast connection that has previously been opened with broadcast_open().This function typically is called as an exit handler.&lt;br /&gt;
&lt;br /&gt;
*broadcast_conn :  This is same as the variable from boradcast_recv().&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt; PROCESS_END() &amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This macro defines the end of a process. It must appear in a PROCESS_THREAD() definition and must always be included. The process exits when the PROCESS_END() macro is reached. This macro initiates PT_END().It must always be used together with a matching PT_BEGIN() macro.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt; broadcast_open(struct broadcast_conn *, uint16_t ,const struct broadcast_callbacks *) &amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sets up an identified best-effort broadcast connection. The caller will allocate the memory for the struct broadcast_conn, usually by declaring it as a static variable. The struct broadcast_callbacks pointer  points to a structure containing a pointer to a function that will be called when a packet arrives on the channel. This function opens a connection of type abc_conn and sets the callbacks to structure passed. Also, this points to channel_set_attributes() function.&lt;br /&gt;
&lt;br /&gt;
*broadcast_conn : A pointer to a struct broadcast_conn&lt;br /&gt;
*uint16_t:  The channel on which the connection will operate&lt;br /&gt;
*broadcast_callbacks :  A struct broadcast_callbacks with function pointers to functions that will be called when a packet has been received&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt; etimer_set(struct etimer *, clock_time_t) &amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This function is used to set an event timer for a time sometime in the future. When the event timer expires, the event PROCESS_EVENT_TIMER will be posted to the process that called the etimer_set() function.&lt;br /&gt;
&lt;br /&gt;
*etimer : A pointer to the event timer&lt;br /&gt;
*clock_time_t : The interval before the timer expires.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt; static struct broadcast_conn &amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The broadcast module sends a packet to all local area neighbors with a header that identifies the sender. It also adds a single-hop address as a packet attribute to out going packets. &lt;br /&gt;
broadcast_conn structure consists of two structures&lt;br /&gt;
*abc_conn struct: the abc(Anonymous best effort local area Broadcast) module sends packets to all local area neighbors. It uses one channel.&lt;br /&gt;
*broadcast_callbacks struct: this is called when a packet has been received by the broadcast module. The struct broadcast_callbacks pointer is used in broadcast_open to point  to a function that will be called when a packet arrives on the channel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Contiki_tutorials | Back to Contiki Tutorials]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Edited by: Rahul, Nikhil, Bhavana, Lakshmi&lt;/div&gt;</summary>
		<author><name>Kwame</name></author>	</entry>

	<entry>
		<id>http://anrg.usc.edu/contiki/index.php?title=Installation&amp;diff=264</id>
		<title>Installation</title>
		<link rel="alternate" type="text/html" href="http://anrg.usc.edu/contiki/index.php?title=Installation&amp;diff=264"/>
				<updated>2014-02-28T22:13:53Z</updated>
		
		<summary type="html">&lt;p&gt;Kwame: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Contiki_tutorials | Back to Contiki Tutorials]]&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
This guide covers the installation of ContikiOS 2.7.  You will need either a Linux-based operating system, or an operating system that supports [https://www.virtualbox.org/ VirtualBox] or [https://my.vmware.com/web/vmware/downloads VMWare Player].&lt;br /&gt;
&lt;br /&gt;
== You will learn ==&lt;br /&gt;
&lt;br /&gt;
This tutorial will take you through the steps for downloading and installing ContikiOS the following ways:&lt;br /&gt;
&lt;br /&gt;
* Download Instant Contiki [http://sourceforge.net/projects/contiki/files/Instant%20Contiki/]&lt;br /&gt;
* Download ContikiOS from Sourceforge repository [http://sourceforge.net/projects/contiki/files/latest/download]&lt;br /&gt;
* Clone ContikiOS from Github repository [https://github.com/contiki-os/contiki]&lt;br /&gt;
&lt;br /&gt;
=== Using Instant Contiki ===&lt;br /&gt;
&lt;br /&gt;
This is the easiest way of installing and using ContikiOS. You simply need to download Instant Contiki, which is a virtual machine created with all necessary toolchains and software for ContikiOS development.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Link to download Instant Contiki: [http://sourceforge.net/projects/contiki/files/Instant%20Contiki/]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
After downloading Instant Contiki you need also to download either VMWare Player or VirtualBox, if you are using Windows as your host OS. If you use MacOS X you should download VMWare Fusion, instead of VMWare Player.&lt;br /&gt;
&lt;br /&gt;
IMPORTANT: To login in to Instant Contiki: &amp;#039;&amp;#039;&amp;#039;username&amp;#039;&amp;#039;&amp;#039;: &amp;#039;&amp;#039;user&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;password&amp;#039;&amp;#039;&amp;#039;: &amp;#039;&amp;#039;user&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
=== Using Sourceforge repository ===&lt;br /&gt;
&lt;br /&gt;
This method requires an existing installation of a Linux-based operating system. The guide assumes you are using Ubuntu 12.04 but should still be useful for similar versions.&lt;br /&gt;
&lt;br /&gt;
Download contiki-2.7.zip from [http://downloads.sourceforge.net/project/contiki/Contiki/Contiki%202.7/contiki-2.7.zip http://downloads.sourceforge.net/project/contiki/Contiki/Contiki 2.7/contiki-2.7.zip]&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;wget http://downloads.sourceforge.net/project/contiki/Contiki/Contiki%202.7/contiki-2.7.zip&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unzip the file. For the purposes of this guide, it is assumed that the file is unzipped into /home/user/&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;unzip contiki-2.7.zip&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rename the folder from contiki-2.7 to contiki.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;mv contiki-2.7 contiki&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install all the required packages for compiling and running ContikiOS. &lt;br /&gt;
&lt;br /&gt;
If you are using a MSP430-based platform (such as Tmote) you only need the following packages: &amp;#039;&amp;#039;binutils-msp430&amp;#039;&amp;#039;, &amp;#039;&amp;#039;gcc-msp430&amp;#039;&amp;#039;, &amp;#039;&amp;#039;msp430-libc&amp;#039;&amp;#039;, &amp;#039;&amp;#039;msp430mcu&amp;#039;&amp;#039; and &amp;#039;&amp;#039;mspdebug&amp;#039;&amp;#039;. If you intend to code for multiple platforms, you should also install the following tool chains for other micro-controller: &amp;#039;&amp;#039;binutils-avr&amp;#039;&amp;#039;, &amp;#039;&amp;#039;gcc-avr&amp;#039;&amp;#039;, &amp;#039;&amp;#039;gdb-avr&amp;#039;&amp;#039;, &amp;#039;&amp;#039;avr-libc&amp;#039;&amp;#039; and &amp;#039;&amp;#039;avrdude&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
You can run the following command to install all packages for multiple platforms:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;sudo apt-get install build-essential binutils-msp430 gcc-msp430 msp430-libc msp430mcu &lt;br /&gt;
mspdebug binutils-avr gcc-avr gdb-avr avr-libc avrdude openjdk-7-jdk &lt;br /&gt;
openjdk-7-jre ant libncurses5-dev&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You are done! You can now try to compile and run any example, such as [[Hello_World | Hello World]].&lt;br /&gt;
&lt;br /&gt;
=== Using Github repository ===&lt;br /&gt;
&lt;br /&gt;
This method also requires an existing installation of a Linux-based operating system. It is very similar to the previous installation method, but instead of downloading the source code you are going to &amp;#039;&amp;#039;clone&amp;#039;&amp;#039; it from the official Github repository. &lt;br /&gt;
&lt;br /&gt;
This method eases the update of your ContikiOS to the new releases.&lt;br /&gt;
&lt;br /&gt;
You need to &amp;#039;&amp;#039;clone&amp;#039;&amp;#039; the repository using the following command:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;git clone git://github.com/contiki-os/contiki.git contiki&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After that you need to download all development tools as described in the previous installation method.&lt;br /&gt;
&lt;br /&gt;
[[Contiki_tutorials | Back to Contiki Tutorials]]&lt;br /&gt;
&lt;br /&gt;
Edited by: Kwame, Pedro&lt;/div&gt;</summary>
		<author><name>Kwame</name></author>	</entry>

	<entry>
		<id>http://anrg.usc.edu/contiki/index.php?title=Installation&amp;diff=263</id>
		<title>Installation</title>
		<link rel="alternate" type="text/html" href="http://anrg.usc.edu/contiki/index.php?title=Installation&amp;diff=263"/>
				<updated>2014-02-28T22:11:58Z</updated>
		
		<summary type="html">&lt;p&gt;Kwame: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Contiki_tutorials | Back to Contiki Tutorials]]&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
This guide covers the installation of ContikiOS 2.7.  You will need either a Linux-based operating system, or an operating system that supports [https://www.virtualbox.org/ VirtualBox] or [https://my.vmware.com/web/vmware/downloads VMWare Player].&lt;br /&gt;
&lt;br /&gt;
== You will learn ==&lt;br /&gt;
&lt;br /&gt;
This tutorial will take you through the steps for downloading and installing ContikiOS the following ways:&lt;br /&gt;
&lt;br /&gt;
* Download Instant Contiki [http://sourceforge.net/projects/contiki/files/Instant%20Contiki/]&lt;br /&gt;
* Download ContikiOS from Sourceforge repository [http://sourceforge.net/projects/contiki/files/latest/download]&lt;br /&gt;
* Clone ContikiOS from Github repository [https://github.com/contiki-os/contiki]&lt;br /&gt;
&lt;br /&gt;
=== Using Instant Contiki ===&lt;br /&gt;
&lt;br /&gt;
This is the easiest way of installing and using ContikiOS. You simply need to download Instant Contiki, which is a virtual machine created with all necessary toolchains and software for ContikiOS development.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Link to download Instant Contiki: [http://sourceforge.net/projects/contiki/files/Instant%20Contiki/]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
After downloading Instant Contiki you need also to download either VMWare Player or VirtualBox, if you are using Windows as your host OS. If you use MacOS X you should download VMWare Fusion, instead of VMWare Player.&lt;br /&gt;
&lt;br /&gt;
IMPORTANT: To login in to Instant Contiki: &amp;#039;&amp;#039;&amp;#039;username&amp;#039;&amp;#039;&amp;#039;: &amp;#039;&amp;#039;user&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;password&amp;#039;&amp;#039;&amp;#039;: &amp;#039;&amp;#039;user&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
=== Using Sourceforge repository ===&lt;br /&gt;
&lt;br /&gt;
This method requires an existing installation of a Linux-based operating system. The guide assumes you are using Ubuntu 12.04 but should still be useful for similar versions.&lt;br /&gt;
&lt;br /&gt;
Download contiki-2.7.zip from http://downloads.sourceforge.net/project/contiki/Contiki/Contiki%202.7/contiki-2.7.zip&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;wget http://downloads.sourceforge.net/project/contiki/Contiki/Contiki%202.7/contiki-2.7.zip&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unzip the file. For the purposes of this guide, it is assumed that the file is unzipped into /home/user/&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;unzip contiki-2.7.zip&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rename the folder from contiki-2.7 to contiki.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;mv contiki-2.7 contiki&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install all the required packages for compiling and running ContikiOS. &lt;br /&gt;
&lt;br /&gt;
If you are using a MSP430-based platform (such as Tmote) you only need the following packages: &amp;#039;&amp;#039;binutils-msp430&amp;#039;&amp;#039;, &amp;#039;&amp;#039;gcc-msp430&amp;#039;&amp;#039;, &amp;#039;&amp;#039;msp430-libc&amp;#039;&amp;#039;, &amp;#039;&amp;#039;msp430mcu&amp;#039;&amp;#039; and &amp;#039;&amp;#039;mspdebug&amp;#039;&amp;#039;. If you intend to code for multiple platforms, you should also install the following tool chains for other micro-controller: &amp;#039;&amp;#039;binutils-avr&amp;#039;&amp;#039;, &amp;#039;&amp;#039;gcc-avr&amp;#039;&amp;#039;, &amp;#039;&amp;#039;gdb-avr&amp;#039;&amp;#039;, &amp;#039;&amp;#039;avr-libc&amp;#039;&amp;#039; and &amp;#039;&amp;#039;avrdude&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
You can run the following command to install all packages for multiple platforms:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;sudo apt-get install build-essential binutils-msp430 gcc-msp430 msp430-libc msp430mcu &lt;br /&gt;
mspdebug binutils-avr gcc-avr gdb-avr avr-libc avrdude openjdk-7-jdk &lt;br /&gt;
openjdk-7-jre ant libncurses5-dev&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You are done! You can now try to compile and run any example, such as [[Hello_World | Hello World]].&lt;br /&gt;
&lt;br /&gt;
=== Using Github repository ===&lt;br /&gt;
&lt;br /&gt;
This method also requires an existing installation of a Linux-based operating system. It is very similar to the previous installation method, but instead of downloading the source code you are going to &amp;#039;&amp;#039;clone&amp;#039;&amp;#039; it from the official Github repository. &lt;br /&gt;
&lt;br /&gt;
This method eases the update of your ContikiOS to the new releases.&lt;br /&gt;
&lt;br /&gt;
You need to &amp;#039;&amp;#039;clone&amp;#039;&amp;#039; the repository using the following command:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;git clone git://github.com/contiki-os/contiki.git contiki&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After that you need to download all development tools as described in the previous installation method.&lt;br /&gt;
&lt;br /&gt;
[[Contiki_tutorials | Back to Contiki Tutorials]]&lt;br /&gt;
&lt;br /&gt;
Edited by: Kwame, Pedro&lt;/div&gt;</summary>
		<author><name>Kwame</name></author>	</entry>

	<entry>
		<id>http://anrg.usc.edu/contiki/index.php?title=Installation&amp;diff=262</id>
		<title>Installation</title>
		<link rel="alternate" type="text/html" href="http://anrg.usc.edu/contiki/index.php?title=Installation&amp;diff=262"/>
				<updated>2014-02-28T22:04:14Z</updated>
		
		<summary type="html">&lt;p&gt;Kwame: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Contiki_tutorials | Back to Contiki Tutorials]]&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
This guide covers the installation of ContikiOS 2.7.  You will need either a Linux-based operating system, or an operating system that supports [https://www.virtualbox.org/ VirtualBox] or [https://my.vmware.com/web/vmware/downloads VMWare Player].&lt;br /&gt;
&lt;br /&gt;
== You will learn ==&lt;br /&gt;
&lt;br /&gt;
This tutorial will take you through the steps for downloading and installing ContikiOS the following ways:&lt;br /&gt;
&lt;br /&gt;
* Download Instant Contiki [http://sourceforge.net/projects/contiki/files/Instant%20Contiki/]&lt;br /&gt;
* Download ContikiOS from Sourceforge repository [http://sourceforge.net/projects/contiki/files/latest/download]&lt;br /&gt;
* Clone ContikiOS from Github repository [https://github.com/contiki-os/contiki]&lt;br /&gt;
&lt;br /&gt;
=== Using Instant Contiki ===&lt;br /&gt;
&lt;br /&gt;
This is the easiest way of installing and using ContikiOS. You simply need to download Instant Contiki, which is a virtual machine created with all necessary toolchains and software for ContikiOS development.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Link to download Instant Contiki: [http://sourceforge.net/projects/contiki/files/Instant%20Contiki/]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
After downloading Instant Contiki you need also to download either VMWare Player or VirtualBox, if you are using Windows as your host OS. If you use MacOS X you should download VMWare Fusion, instead of VMWare Player.&lt;br /&gt;
&lt;br /&gt;
IMPORTANT: To login in to Instant Contiki: &amp;#039;&amp;#039;&amp;#039;username&amp;#039;&amp;#039;&amp;#039;: &amp;#039;&amp;#039;user&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;passwork&amp;#039;&amp;#039;&amp;#039;: &amp;#039;&amp;#039;user&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
=== Using Sourceforge repository ===&lt;br /&gt;
&lt;br /&gt;
This method requires an existing installation of a Linux-based operating system. The guide assumes you are using Ubuntu 12.04 but should still be useful for similar versions.&lt;br /&gt;
&lt;br /&gt;
Download contiki-2.7.zip from http://downloads.sourceforge.net/project/contiki/Contiki/Contiki%202.7/contiki-2.7.zip&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt; wget http://downloads.sourceforge.net/project/contiki/Contiki/Contiki%202.7/contiki-2.7.zip&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unzip the file. For the purposes of this guide, it is assumed that the file is unzipped into /home/user/&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;unzip contiki-2.7.zip&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rename the folder from contiki-2.7 to contiki.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;mv contiki-2.7 contiki&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install all the required packages for compiling and running ContikiOS. &lt;br /&gt;
&lt;br /&gt;
If you are using a MSP430-based platform (such as Tmote) you only need the following packages: &amp;#039;&amp;#039;binutils-msp430&amp;#039;&amp;#039;, &amp;#039;&amp;#039;gcc-msp430&amp;#039;&amp;#039;, &amp;#039;&amp;#039;msp430-libc&amp;#039;&amp;#039;, &amp;#039;&amp;#039;msp430mcu&amp;#039;&amp;#039; and &amp;#039;&amp;#039;mspdebug&amp;#039;&amp;#039;. If you intend to code for multiple platforms, you should also install the following tool chains for other micro-controller: &amp;#039;&amp;#039;binutils-avr&amp;#039;&amp;#039;, &amp;#039;&amp;#039;gcc-avr&amp;#039;&amp;#039;, &amp;#039;&amp;#039;gdb-avr&amp;#039;&amp;#039;, &amp;#039;&amp;#039;avr-libc&amp;#039;&amp;#039; and &amp;#039;&amp;#039;avrdude&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
You can run the following command to install all packages for multiple platforms:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;sudo apt-get install build-essential binutils-msp430 gcc-msp430 msp430-libc msp430mcu &lt;br /&gt;
mspdebug binutils-avr gcc-avr gdb-avr avr-libc avrdude openjdk-7-jdk &lt;br /&gt;
openjdk-7-jre ant libncurses5-dev&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You are done! You can now try to compile and run any example, such as [[Hello_World | Hello World]].&lt;br /&gt;
&lt;br /&gt;
=== Using Github repository ===&lt;br /&gt;
&lt;br /&gt;
This method also requires an existing installation of a Linux-based operating system. It is very similar to the previous one, but instead of downloading the source code you are going to &amp;#039;&amp;#039;clone&amp;#039;&amp;#039; it from the official Github repository. &lt;br /&gt;
&lt;br /&gt;
This method eases the update of your ContikiOS to the new releases.&lt;br /&gt;
&lt;br /&gt;
You need to &amp;#039;&amp;#039;clone&amp;#039;&amp;#039; the repository using the following command:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;git clone git://github.com/contiki-os/contiki.git contiki&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After that you need to download all development tools as described in the previous installation method.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Primary contributors:&amp;#039;&amp;#039;&amp;#039; Pedro, Kwame&lt;br /&gt;
&lt;br /&gt;
[[Contiki_tutorials | Back to Contiki Tutorials]]&lt;br /&gt;
&lt;br /&gt;
Edited by: Kwame, Pedro&lt;/div&gt;</summary>
		<author><name>Kwame</name></author>	</entry>

	<entry>
		<id>http://anrg.usc.edu/contiki/index.php?title=Installation&amp;diff=261</id>
		<title>Installation</title>
		<link rel="alternate" type="text/html" href="http://anrg.usc.edu/contiki/index.php?title=Installation&amp;diff=261"/>
				<updated>2014-02-28T20:33:40Z</updated>
		
		<summary type="html">&lt;p&gt;Kwame: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Contiki_tutorials | Back to Contiki Tutorials]]&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
This guide covers the installation of ContikiOS 2.7.&lt;br /&gt;
&lt;br /&gt;
== You will learn ==&lt;br /&gt;
&lt;br /&gt;
This tutorial will take you through the steps for downloading and installing ContikiOS the following ways:&lt;br /&gt;
&lt;br /&gt;
* Download Instant Contiki [http://sourceforge.net/projects/contiki/files/Instant%20Contiki/]&lt;br /&gt;
* Download ContikiOS from Sourceforge repository [http://sourceforge.net/projects/contiki/files/latest/download]&lt;br /&gt;
* Clone ContikiOS from Github repository [https://github.com/contiki-os/contiki]&lt;br /&gt;
&lt;br /&gt;
=== Using Instant Contiki ===&lt;br /&gt;
&lt;br /&gt;
This is the easiest way of installing and using ContikiOS. You simply need to download Instant Contiki, which is a virtual machine created with all necessary toolchains and software for ContikiOS development.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Link to download Instant Contiki: [http://sourceforge.net/projects/contiki/files/Instant%20Contiki/]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
After downloading Instant Contiki you need also to download either VMWare Player or VirtualBox, if you are using Windows as your host OS. If you use MacOS X you should download VMWare Fusion, instead of VMWare Player.&lt;br /&gt;
&lt;br /&gt;
IMPORTANT: To login in to Instant Contiki: &amp;#039;&amp;#039;&amp;#039;username&amp;#039;&amp;#039;&amp;#039;: &amp;#039;&amp;#039;user&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;passwork&amp;#039;&amp;#039;&amp;#039;: &amp;#039;&amp;#039;user&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
=== Using Sourceforge repository ===&lt;br /&gt;
&lt;br /&gt;
This method requires an existing installation of a Linux-based operating system. The guide assumes you are using Ubuntu 12.04 but should still be useful for similar versions.&lt;br /&gt;
&lt;br /&gt;
Download contiki-2.7.zip from http://downloads.sourceforge.net/project/contiki/Contiki/Contiki%202.7/contiki-2.7.zip&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt; wget http://downloads.sourceforge.net/project/contiki/Contiki/Contiki%202.7/contiki-2.7.zip&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unzip the file. For the purposes of this guide, it is assumed that the file is unzipped into /home/user/&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;unzip contiki-2.7.zip&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rename the folder from contiki-2.7 to contiki.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;mv contiki-2.7 contiki&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install all the required packages for compiling and running ContikiOS. &lt;br /&gt;
&lt;br /&gt;
If you are using a MSP430-based platform (such as Tmote) you only need the following packages: &amp;#039;&amp;#039;binutils-msp430&amp;#039;&amp;#039;, &amp;#039;&amp;#039;gcc-msp430&amp;#039;&amp;#039;, &amp;#039;&amp;#039;msp430-libc&amp;#039;&amp;#039;, &amp;#039;&amp;#039;msp430mcu&amp;#039;&amp;#039; and &amp;#039;&amp;#039;mspdebug&amp;#039;&amp;#039;. If you intend to code for multiple platforms, you should also install the following tool chains for other micro-controller: &amp;#039;&amp;#039;binutils-avr&amp;#039;&amp;#039;, &amp;#039;&amp;#039;gcc-avr&amp;#039;&amp;#039;, &amp;#039;&amp;#039;gdb-avr&amp;#039;&amp;#039;, &amp;#039;&amp;#039;avr-libc&amp;#039;&amp;#039; and &amp;#039;&amp;#039;avrdude&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
You can run the following command to install all packages for multiple platforms:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;sudo apt-get install build-essential binutils-msp430 gcc-msp430 msp430-libc msp430mcu &lt;br /&gt;
mspdebug binutils-avr gcc-avr gdb-avr avr-libc avrdude openjdk-7-jdk &lt;br /&gt;
openjdk-7-jre ant libncurses5-dev&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You are done! You can now try to compile and run any example, such as [[Hello_World | Hello World]].&lt;br /&gt;
&lt;br /&gt;
=== Using Github repository ===&lt;br /&gt;
&lt;br /&gt;
This method also requires an existing installation of a Linux-based operating system. It is very similar to the previous one, but instead of downloading the source code you are going to &amp;#039;&amp;#039;clone&amp;#039;&amp;#039; it from the official Github repository. &lt;br /&gt;
&lt;br /&gt;
This method eases the update of your ContikiOS to the new releases.&lt;br /&gt;
&lt;br /&gt;
You need to &amp;#039;&amp;#039;clone&amp;#039;&amp;#039; the repository using the following command:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;git clone git://github.com/contiki-os/contiki.git contiki&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After that you need to download all development tools as described in the previous installation method.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Primary contributors:&amp;#039;&amp;#039;&amp;#039; Pedro, Kwame&lt;br /&gt;
&lt;br /&gt;
[[Contiki_tutorials | Back to Contiki Tutorials]]&lt;br /&gt;
&lt;br /&gt;
Edited by: Kwame, Pedro&lt;/div&gt;</summary>
		<author><name>Kwame</name></author>	</entry>

	<entry>
		<id>http://anrg.usc.edu/contiki/index.php?title=Troubleshooting&amp;diff=260</id>
		<title>Troubleshooting</title>
		<link rel="alternate" type="text/html" href="http://anrg.usc.edu/contiki/index.php?title=Troubleshooting&amp;diff=260"/>
				<updated>2014-02-28T20:30:13Z</updated>
		
		<summary type="html">&lt;p&gt;Kwame: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main_Page | Back to Main Page]]&lt;br /&gt;
&lt;br /&gt;
===== Permission denied =====&lt;br /&gt;
If you try to connect to a mote and receive a permission error, you may need to add yourself to the dialout group. The error may look something like the following:&lt;br /&gt;
&lt;br /&gt;
 /home/user/contiki/tools/sky/serialdump-linux -b115200 /dev/ttyUSB0&lt;br /&gt;
 connecting to /dev/ttyUSB0 (115200)&lt;br /&gt;
 /dev/ttyUSB0: Permission denied&lt;br /&gt;
 make: *** [login] Error 255&lt;br /&gt;
&lt;br /&gt;
To resolve the issue, simply use the following command:&lt;br /&gt;
 sudo adduser &amp;lt;username&amp;gt; dialout&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Issue with make login =====&lt;br /&gt;
If you are trying to execute the serial-dump application (contiki/tools/sky/serialdump-linux) and see the message: &amp;quot;No such file or directory&amp;quot;, it means that you are running in a 64-bit operating system that does not have proper 32-bit libraries installed. Since serialdump-linux is a pre-compiled 32-bit tool you need to execute the following command to install the necessary libraries:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;sudo apt-get install ia32-libs&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kwame</name></author>	</entry>

	<entry>
		<id>http://anrg.usc.edu/contiki/index.php?title=Troubleshooting&amp;diff=259</id>
		<title>Troubleshooting</title>
		<link rel="alternate" type="text/html" href="http://anrg.usc.edu/contiki/index.php?title=Troubleshooting&amp;diff=259"/>
				<updated>2014-02-28T20:21:42Z</updated>
		
		<summary type="html">&lt;p&gt;Kwame: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main_Page | Back to Main Page]]&lt;br /&gt;
&lt;br /&gt;
Permission denied&lt;br /&gt;
If you try to connect to a mote and receive a permission error, you may need to add yourself to the dialout group. The error may look something like the following:&lt;br /&gt;
&lt;br /&gt;
 /home/user/contiki/tools/sky/serialdump-linux -b115200 /dev/ttyUSB0&lt;br /&gt;
 connecting to /dev/ttyUSB0 (115200)&lt;br /&gt;
 /dev/ttyUSB0: Permission denied&lt;br /&gt;
 make: *** [login] Error 255&lt;br /&gt;
&lt;br /&gt;
To resolve the issue, simply use this command:&lt;br /&gt;
 sudo adduser &amp;lt;username&amp;gt; dialout&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Issue with make login&lt;br /&gt;
* If you are trying to execute the serial-dump application (contiki/tools/sky/serialdump-linux) and see the message: &amp;quot;No such file or directory&amp;quot;, it means that you are running in a 64-bit operating system that does not have proper 32-bit libraries installed. Since serialdump-linux is a pre-compiled 32-bit tool you need to execute the following command to install the necessary libraries:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;sudo apt-get install ia32-libs&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kwame</name></author>	</entry>

	<entry>
		<id>http://anrg.usc.edu/contiki/index.php?title=Troubleshooting&amp;diff=258</id>
		<title>Troubleshooting</title>
		<link rel="alternate" type="text/html" href="http://anrg.usc.edu/contiki/index.php?title=Troubleshooting&amp;diff=258"/>
				<updated>2014-02-28T20:14:42Z</updated>
		
		<summary type="html">&lt;p&gt;Kwame: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main_Page | Back to Main Page]]&lt;br /&gt;
&lt;br /&gt;
Permission denied&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Issue with make login&lt;br /&gt;
* If you are trying to execute the serial-dump application (contiki/tools/sky/serialdump-linux) and see the message: &amp;quot;No such file or directory&amp;quot;, it means that you are running in a 64-bit operating system that does not have proper 32-bit libraries installed. Since serialdump-linux is a pre-compiled 32-bit tool you need to execute the following command to install the necessary libraries:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;sudo apt-get install ia32-libs&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kwame</name></author>	</entry>

	<entry>
		<id>http://anrg.usc.edu/contiki/index.php?title=Team&amp;diff=257</id>
		<title>Team</title>
		<link rel="alternate" type="text/html" href="http://anrg.usc.edu/contiki/index.php?title=Team&amp;diff=257"/>
				<updated>2014-02-28T07:14:18Z</updated>
		
		<summary type="html">&lt;p&gt;Kwame: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Suvil Deora&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Timothy Ferrell&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Lakshmi Phani Gadde&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
[http://www-scf.usc.edu/~pdasilva/ &amp;#039;&amp;#039;&amp;#039;Pedro Henrique Gomes&amp;#039;&amp;#039;&amp;#039;] is a Ph.D. student at the University of Southern California. He is from Brazil, but does not play soccer very well, and of course does not know how to dance Samba [http://en.wikipedia.org/wiki/Samba_%28Brazilian_dance%29] ;)&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Leo Linsky&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rahul Madduluri&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Nikhil Narang&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Deepanker Parikh&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Bhavana Srinivas&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
[http://www-scf.usc.edu/~kwamelaw/ &amp;#039;&amp;#039;&amp;#039;Kwame Wright&amp;#039;&amp;#039;&amp;#039;] is a Ph.D. student in the Autonomous Networks Research Group at the University of Southern California.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Shanpei Zhou&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;</summary>
		<author><name>Kwame</name></author>	</entry>

	<entry>
		<id>http://anrg.usc.edu/contiki/index.php?title=Main_Page&amp;diff=212</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://anrg.usc.edu/contiki/index.php?title=Main_Page&amp;diff=212"/>
				<updated>2014-02-15T03:05:33Z</updated>
		
		<summary type="html">&lt;p&gt;Kwame: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Contiki Development at [//http://anrg.usc.edu ANRG], [//http:www.usc.edu University of Southern California]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
[[Team]]&lt;br /&gt;
&lt;br /&gt;
== Useful links ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.contiki-os.org/ Official Homepage]&lt;br /&gt;
* [https://github.com/contiki-os/contiki GitHub repository]&lt;br /&gt;
* [http://sourceforge.net/projects/contikiprojects/ Contiki Projects repository]&lt;br /&gt;
* [http://contiki-os.blogspot.com/ ContikiOS official blog]&lt;br /&gt;
* [http://www.contiki-os.org/support.html Resources page]&lt;br /&gt;
&lt;br /&gt;
== Getting started ==&lt;br /&gt;
* [http://anrg.usc.edu/contiki/index.php/Contiki_tutorials Contiki Tutorials]&lt;br /&gt;
* [http://anrg.usc.edu/contiki/index.php/Troubleshooting Troubleshooting]&lt;br /&gt;
&lt;br /&gt;
== To-Do ==&lt;br /&gt;
* Find out how to input code lists with syntax highlighting. Install SyntaxHighlight extension (http://www.mediawiki.org/wiki/Extension:SyntaxHighlight) or ASHighlight extension (http://www.mediawiki.org/wiki/Extension:ASHighlight)&lt;br /&gt;
* &amp;lt;strike&amp;gt;Fix error while uploading a file: Could not create directory &amp;quot;mwstore://local-backend/local-public/a/ae&amp;quot;.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* Create a site map&lt;br /&gt;
* See if it is possible to create some private pages&lt;/div&gt;</summary>
		<author><name>Kwame</name></author>	</entry>

	<entry>
		<id>http://anrg.usc.edu/contiki/index.php?title=Team&amp;diff=211</id>
		<title>Team</title>
		<link rel="alternate" type="text/html" href="http://anrg.usc.edu/contiki/index.php?title=Team&amp;diff=211"/>
				<updated>2014-02-15T03:03:16Z</updated>
		
		<summary type="html">&lt;p&gt;Kwame: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Suvil Deora&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Lakshmi Phani Gadde&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Pedro Henrique Gomes&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rahul Madduluri&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Nikhil Narang&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Deepanker Parikh&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Bhavana Srinivas&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
[http://www-scf.usc.edu/~kwamelaw/ &amp;#039;&amp;#039;&amp;#039;Kwame Wright&amp;#039;&amp;#039;&amp;#039;] is a Ph.D. student in the Autonomous Networks Research Group at the University of Southern California.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Shanpei Zhou&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;</summary>
		<author><name>Kwame</name></author>	</entry>

	<entry>
		<id>http://anrg.usc.edu/contiki/index.php?title=Team&amp;diff=210</id>
		<title>Team</title>
		<link rel="alternate" type="text/html" href="http://anrg.usc.edu/contiki/index.php?title=Team&amp;diff=210"/>
				<updated>2014-02-15T03:02:57Z</updated>
		
		<summary type="html">&lt;p&gt;Kwame: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Suvil Deora&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Lakshmi Phani Gadde&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Pedro Henrique Gomes&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rahul Madduluri&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Nikhil Narang&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Deepanker Parikh&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Bhavana Srinivas&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
[http://www-scf.usc.edu/~kwamelaw/ |&amp;#039;&amp;#039;&amp;#039;Kwame Wright&amp;#039;&amp;#039;&amp;#039;] is a Ph.D. student in the Autonomous Networks Research Group at the University of Southern California.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Shanpei Zhou&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;</summary>
		<author><name>Kwame</name></author>	</entry>

	<entry>
		<id>http://anrg.usc.edu/contiki/index.php?title=Team&amp;diff=209</id>
		<title>Team</title>
		<link rel="alternate" type="text/html" href="http://anrg.usc.edu/contiki/index.php?title=Team&amp;diff=209"/>
				<updated>2014-02-15T00:43:35Z</updated>
		
		<summary type="html">&lt;p&gt;Kwame: Team Members&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Suvil Deora&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Lakshmi Phani Gadde&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Pedro Henrique Gomes&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rahul Madduluri&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Nikhil Narang&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Deepanker Parikh&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Bhavana Srinivas&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
[http://www-scf.usc.edu/~kwamelaw/|&amp;#039;&amp;#039;&amp;#039;Kwame Wright&amp;#039;&amp;#039;&amp;#039;] is a Ph.D. student in the Autonomous Networks Research Group at the University of Southern California.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Shanpei Zhou&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;</summary>
		<author><name>Kwame</name></author>	</entry>

	<entry>
		<id>http://anrg.usc.edu/contiki/index.php?title=Broadcast_Example&amp;diff=208</id>
		<title>Broadcast Example</title>
		<link rel="alternate" type="text/html" href="http://anrg.usc.edu/contiki/index.php?title=Broadcast_Example&amp;diff=208"/>
				<updated>2014-02-15T00:26:03Z</updated>
		
		<summary type="html">&lt;p&gt;Kwame: /* Step 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Contiki_tutorials | Back to Contiki Tutorials]]&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
=== Introduction ===&lt;br /&gt;
&lt;br /&gt;
This exercise is an introduction into programming the [http://www.capsil.org/capsilwiki/index.php/TELOSB/TMote_Sky Tmote Sky]. It uses the Rime stack to communicate with other Contiki nodes over the radio. You will run the broadcast example already found in the Contiki core folders to send your name from a base station via broadcast packets. The exercise sends broadcast packets at random intervals between 4 and 8 seconds such that all Tmote Sky boards nearby will receive the packet.&lt;br /&gt;
&lt;br /&gt;
=== You will learn ===&lt;br /&gt;
&lt;br /&gt;
* How to program the Broadcast communication found within the Rime stack&lt;br /&gt;
* How to encapsulate data in packets&lt;br /&gt;
&lt;br /&gt;
=== Connect the Tmote Sky ===&lt;br /&gt;
Before continuing with the tutorial, plug a Tmote Sky into the computer’s USB port. The LEDs on the skymote will start blinking to indicate that the mote is connected.&lt;br /&gt;
&lt;br /&gt;
=== Step 1 ===&lt;br /&gt;
&lt;br /&gt;
The first step is to change directories. At this point you should be familiar with the Contiki 2.7 core folders. The Rime stack is located within the examples folder, so type &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt; cd contiki-2.7/examples/rime &amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
directly into terminal. Once inside the rime folder, use the ls command to view all the files within it. We will be working specifically with example-broadcast.c.&lt;br /&gt;
&lt;br /&gt;
=== Step 2 ===&lt;br /&gt;
&lt;br /&gt;
Next, we will edit the data in the example-broadcast.c file. In order to do this, you will need to open the file with your text editor. In this exercise, we use gedit, but feel free to use whichever text editor you are most comfortable with. Type the following into the terminal:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt; gedit example-broadcast.c &amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will open your text editor, allowing you to edit the code inside the broadcast packet.&lt;br /&gt;
&lt;br /&gt;
=== Step 3 ===&lt;br /&gt;
&lt;br /&gt;
To edit the actual data that your Tmote Sky will broadcast, scroll down to the line that contains: &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt; packetbuf_copyfrom(“Hello”,  6) &amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change the character string to your name. Then change the number of characters accordingly. Remember to account for the null zero associated with character strings in C when changing the number of characters. The line should now read&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt; packetbuf_copyfrom(“yourName”,  9) &amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Save and exit the text editor. &lt;br /&gt;
&lt;br /&gt;
=== Step 4 ===&lt;br /&gt;
&lt;br /&gt;
In the next step we configure Tmote Sky. Connect your mote to your computer via USB. If you are using VirtualBox or Parallels, assure that the mote actually connects to your virtual machine (the LEDs on the mote will blink when connected to the laptop). &lt;br /&gt;
&lt;br /&gt;
Then in terminal, type &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt; sudo chown :user /dev/ttyUSB0 &amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will be prompted to enter the password for your user account. If you are running Instant Contiki, the password is user. The sudo [http://en.wikipedia.org/wiki/Chown chown] command is used to change the owner of the file in Unix-systems.&lt;br /&gt;
&lt;br /&gt;
Note: If you manually installed Contiki, you must type in your username instead of user. Then, when prompted to do so, enter your password. &lt;br /&gt;
&lt;br /&gt;
=== Step 5 ===&lt;br /&gt;
&lt;br /&gt;
In this step, we will compile and upload the Broadcast packet to your Tmote Sky. In the terminal window, type&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt; make TARGET=sky example-broadcast.upload login &amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will notice that instead of typing example-broadcast.sky, we use example-broadcast.upload. The .upload tells Contiki to install the binary onto the attached mote. Additionally, we add login to use the terminal to communicate with the mote over the serial interface referred to by /dev/ttyUSB0. Note that login can be specified later in another call to make, i.e. make login.&lt;br /&gt;
&lt;br /&gt;
This should compile and upload the example-broadcast.c packet such that your mote will be able to broadcast your name. After the compilation is complete, the text broadcast message sent...  should appear in terminal every 2 to 4 seconds, indicating that your name (which we added within the text editor) is being broadcast to all other motes in the area.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Congratulations! You have successfully programmed the Tmote Sky! &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Note:&amp;#039;&amp;#039;&amp;#039; If at any point, you would like to exit the compilation/broadcast stage, press CTRL-C&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Tip:&amp;#039;&amp;#039;&amp;#039; You can save the TARGET by typing make TARGET=sky savetarget into terminal to avoid compiling the target repeatedly.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Understanding the code ===&lt;br /&gt;
The purpose of this example is to test the broadcast layer in Rime. A glance at core/net/rime/broadcast.h and core/net/rime/broadcast.c helps in the understanding underlying concepts of this example.&lt;br /&gt;
In the code, a process called example_broadcast_process is  kicked off by AUTOSTART_PROCESSES.&lt;br /&gt;
&lt;br /&gt;
==== Macros and Structures ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt; PROCESS(name,strname) &amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every [http://anrg.usc.edu/contiki/index.php?title=Process process] should be defined via the PROCESS macro.&lt;br /&gt;
PROCESS has two arguments: the variable of the process structure, and a human readable string name, which is used when debugging.&lt;br /&gt;
&lt;br /&gt;
*name: The variable name of the process structure.&lt;br /&gt;
*strname: The string representation of the process name.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt; AUTOSTART_PROCESS(struct process &amp;amp;) &amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
AUTOSTART_PROCESSES automatically starts the process(es) given in the argument(s) when the module boots.&lt;br /&gt;
&lt;br /&gt;
*&amp;amp;name: Reference to the process name&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt; broadcast_recv(struct broadcast_conn *, const rimeaddr_t *) &amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This function parses an incoming packet and displays the message and the address of the sender.&lt;br /&gt;
By setting it as the broadcast&amp;#039;s designated callback function, broadcast_recv is automatically called when a packet is received.&lt;br /&gt;
&lt;br /&gt;
*broadcast_conn *:  This structure which has 2 structures : abc_conn, broadcast_callbacks *. The abc_conn is basic type of connection over which the broadcast connection is developed. And, the broadcast_callbacks point to recv and sent functions (in this example, just recv).&lt;br /&gt;
&lt;br /&gt;
*rimeaddr_t *: This is a union which has a character array u8[RIMEADDR_SIZE].&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt; PROCESS_THREAD(name, process_event_t, process_data_t) &amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A process in Contiki consists of a single reference to a &amp;quot;[http://anrg.usc.edu/contiki/index.php?title=Protothreads protothread]&amp;quot;. This function is used to define the protothread of a process. The process is called whenever an event occurs in the system. &lt;br /&gt;
Each process in the module requires an event handler under the PROCESS_THREAD macro.&lt;br /&gt;
&lt;br /&gt;
*name: The variable name of the process structure.&lt;br /&gt;
*process_event_t: The variable of type character.If this variable is same as PROCESS_EVENT_EXIT then PROCESS_EXITHANDLER is invoked.&lt;br /&gt;
&lt;br /&gt;
Within the body of PROCESS_THREAD there are 3 major tasks:&lt;br /&gt;
* Initialization&lt;br /&gt;
** allocate resources&lt;br /&gt;
** define variables&lt;br /&gt;
** begin process&lt;br /&gt;
* Infinite Loop&lt;br /&gt;
** while(1) is used to create an infinite loop in which the actual event-handling response takes place&lt;br /&gt;
* Deallocation&lt;br /&gt;
** end process&lt;br /&gt;
** deallocate resources&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;PROCESS_EXITHANDLER(handler) &amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Specifies an action when a process exits.&lt;br /&gt;
NOTE: This declaration must come immediately before the PROCESS_BEGIN() macro.&lt;br /&gt;
&lt;br /&gt;
* handler: The action to be performed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;PROCESS_BEGIN() &amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This macro defines the beginning of a process, and must always appear in a PROCESS_THREAD() definition.This macro initiates PT_BEGIN(), which is declared at the starting point of a protothread. All C statements above the PT_BEGIN() invokation will be executed each time the protothread is scheduled.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;broadcast_close(struct broadcast_conn *) &amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This function closes a broadcast connection that has previously been opened with broadcast_open().This function typically is called as an exit handler.&lt;br /&gt;
&lt;br /&gt;
*broadcast_conn :  This is same as the variable from boradcast_recv().&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt; PROCESS_END() &amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This macro defines the end of a process. It must appear in a PROCESS_THREAD() definition and must always be included. The process exits when the PROCESS_END() macro is reached. This macro initiates PT_END().It must always be used together with a matching PT_BEGIN() macro.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt; broadcast_open(struct broadcast_conn *, uint16_t ,const struct broadcast_callbacks *) &amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sets up an identified best-effort broadcast connection. The caller will allocate the memory for the struct broadcast_conn, usually by declaring it as a static variable. The struct broadcast_callbacks pointer  points to a structure containing a pointer to a function that will be called when a packet arrives on the channel. This function opens a connection of type abc_conn and sets the callbacks to structure passed. Also, this points to channel_set_attributes() function.&lt;br /&gt;
&lt;br /&gt;
*broadcast_conn : A pointer to a struct broadcast_conn&lt;br /&gt;
*uint16_t:  The channel on which the connection will operate&lt;br /&gt;
*broadcast_callbacks :  A struct broadcast_callbacks with function pointers to functions that will be called when a packet has been received&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt; etimer_set(struct etimer *, clock_time_t) &amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This function is used to set an event timer for a time sometime in the future. When the event timer expires, the event PROCESS_EVENT_TIMER will be posted to the process that called the etimer_set() function.&lt;br /&gt;
&lt;br /&gt;
*etimer : A pointer to the event timer&lt;br /&gt;
*clock_time_t : The interval before the timer expires.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt; static struct broadcast_conn &amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The broadcast module sends a packet to all local area neighbors with a header that identifies the sender. It also adds a single-hop address as a packet attribute to out going packets. &lt;br /&gt;
broadcast_conn structure consists of two structures&lt;br /&gt;
*abc_conn struct: the abc(Anonymous best effort local area Broadcast) module sends packets to all local area neighbors. It uses one channel.&lt;br /&gt;
*broadcast_callbacks struct: this is called when a packet has been received by the broadcast module. The struct broadcast_callbacks pointer is used in broadcast_open to point  to a function that will be called when a packet arrives on the channel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Contiki_tutorials | Back to Contiki Tutorials]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Edited by: Rahul, Nikhil, Bhavana, Lakshmi&lt;/div&gt;</summary>
		<author><name>Kwame</name></author>	</entry>

	<entry>
		<id>http://anrg.usc.edu/contiki/index.php?title=Broadcast_Example&amp;diff=207</id>
		<title>Broadcast Example</title>
		<link rel="alternate" type="text/html" href="http://anrg.usc.edu/contiki/index.php?title=Broadcast_Example&amp;diff=207"/>
				<updated>2014-02-15T00:24:37Z</updated>
		
		<summary type="html">&lt;p&gt;Kwame: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Contiki_tutorials | Back to Contiki Tutorials]]&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
=== Introduction ===&lt;br /&gt;
&lt;br /&gt;
This exercise is an introduction into programming the [http://www.capsil.org/capsilwiki/index.php/TELOSB/TMote_Sky Tmote Sky]. It uses the Rime stack to communicate with other Contiki nodes over the radio. You will run the broadcast example already found in the Contiki core folders to send your name from a base station via broadcast packets. The exercise sends broadcast packets at random intervals between 4 and 8 seconds such that all Tmote Sky boards nearby will receive the packet.&lt;br /&gt;
&lt;br /&gt;
=== You will learn ===&lt;br /&gt;
&lt;br /&gt;
* How to program the Broadcast communication found within the Rime stack&lt;br /&gt;
* How to encapsulate data in packets&lt;br /&gt;
&lt;br /&gt;
=== Connect the Tmote Sky ===&lt;br /&gt;
Before continuing with the tutorial, plug a Tmote Sky into the computer’s USB port. The LEDs on the skymote will start blinking to indicate that the mote is connected.&lt;br /&gt;
&lt;br /&gt;
=== Step 1 ===&lt;br /&gt;
&lt;br /&gt;
The first step is to change directories. At this point you should be familiar with the Contiki 2.7 core folders. The Rime stack is located within the examples folder, so type &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt; cd contiki-2.7/examples/rime &amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
directly into terminal. Once inside the rime folder, use the ls command to view all the files within it. We will be working specifically with example-broadcast.c.&lt;br /&gt;
&lt;br /&gt;
=== Step 2 ===&lt;br /&gt;
&lt;br /&gt;
Next, we will edit the data in the example-broadcast.c file. In order to do this, you will need to open the file with your text editor. In this exercise, we use gedit, but feel free to use whichever text editor you are most comfortable with. Type the following into the terminal:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt; gedit example-broadcast.c &amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 This will open your text editor, allowing you to edit the code inside the broadcast packet. &lt;br /&gt;
&lt;br /&gt;
=== Step 3 ===&lt;br /&gt;
&lt;br /&gt;
To edit the actual data that your Tmote Sky will broadcast, scroll down to the line that contains: &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt; packetbuf_copyfrom(“Hello”,  6) &amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change the character string to your name. Then change the number of characters accordingly. Remember to account for the null zero associated with character strings in C when changing the number of characters. The line should now read&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt; packetbuf_copyfrom(“yourName”,  9) &amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Save and exit the text editor. &lt;br /&gt;
&lt;br /&gt;
=== Step 4 ===&lt;br /&gt;
&lt;br /&gt;
In the next step we configure Tmote Sky. Connect your mote to your computer via USB. If you are using VirtualBox or Parallels, assure that the mote actually connects to your virtual machine (the LEDs on the mote will blink when connected to the laptop). &lt;br /&gt;
&lt;br /&gt;
Then in terminal, type &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt; sudo chown :user /dev/ttyUSB0 &amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will be prompted to enter the password for your user account. If you are running Instant Contiki, the password is user. The sudo [http://en.wikipedia.org/wiki/Chown chown] command is used to change the owner of the file in Unix-systems.&lt;br /&gt;
&lt;br /&gt;
Note: If you manually installed Contiki, you must type in your username instead of user. Then, when prompted to do so, enter your password. &lt;br /&gt;
&lt;br /&gt;
=== Step 5 ===&lt;br /&gt;
&lt;br /&gt;
In this step, we will compile and upload the Broadcast packet to your Tmote Sky. In the terminal window, type&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt; make TARGET=sky example-broadcast.upload login &amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will notice that instead of typing example-broadcast.sky, we use example-broadcast.upload. The .upload tells Contiki to install the binary onto the attached mote. Additionally, we add login to use the terminal to communicate with the mote over the serial interface referred to by /dev/ttyUSB0. Note that login can be specified later in another call to make, i.e. make login.&lt;br /&gt;
&lt;br /&gt;
This should compile and upload the example-broadcast.c packet such that your mote will be able to broadcast your name. After the compilation is complete, the text broadcast message sent...  should appear in terminal every 2 to 4 seconds, indicating that your name (which we added within the text editor) is being broadcast to all other motes in the area.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Congratulations! You have successfully programmed the Tmote Sky! &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Note:&amp;#039;&amp;#039;&amp;#039; If at any point, you would like to exit the compilation/broadcast stage, press CTRL-C&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Tip:&amp;#039;&amp;#039;&amp;#039; You can save the TARGET by typing make TARGET=sky savetarget into terminal to avoid compiling the target repeatedly.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Understanding the code ===&lt;br /&gt;
The purpose of this example is to test the broadcast layer in Rime. A glance at core/net/rime/broadcast.h and core/net/rime/broadcast.c helps in the understanding underlying concepts of this example.&lt;br /&gt;
In the code, a process called example_broadcast_process is  kicked off by AUTOSTART_PROCESSES.&lt;br /&gt;
&lt;br /&gt;
==== Macros and Structures ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt; PROCESS(name,strname) &amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every [http://anrg.usc.edu/contiki/index.php?title=Process process] should be defined via the PROCESS macro.&lt;br /&gt;
PROCESS has two arguments: the variable of the process structure, and a human readable string name, which is used when debugging.&lt;br /&gt;
&lt;br /&gt;
*name: The variable name of the process structure.&lt;br /&gt;
*strname: The string representation of the process name.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt; AUTOSTART_PROCESS(struct process &amp;amp;) &amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
AUTOSTART_PROCESSES automatically starts the process(es) given in the argument(s) when the module boots.&lt;br /&gt;
&lt;br /&gt;
*&amp;amp;name: Reference to the process name&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt; broadcast_recv(struct broadcast_conn *, const rimeaddr_t *) &amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This function parses an incoming packet and displays the message and the address of the sender.&lt;br /&gt;
By setting it as the broadcast&amp;#039;s designated callback function, broadcast_recv is automatically called when a packet is received.&lt;br /&gt;
&lt;br /&gt;
*broadcast_conn *:  This structure which has 2 structures : abc_conn, broadcast_callbacks *. The abc_conn is basic type of connection over which the broadcast connection is developed. And, the broadcast_callbacks point to recv and sent functions (in this example, just recv).&lt;br /&gt;
&lt;br /&gt;
*rimeaddr_t *: This is a union which has a character array u8[RIMEADDR_SIZE].&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt; PROCESS_THREAD(name, process_event_t, process_data_t) &amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A process in Contiki consists of a single reference to a &amp;quot;[http://anrg.usc.edu/contiki/index.php?title=Protothreads protothread]&amp;quot;. This function is used to define the protothread of a process. The process is called whenever an event occurs in the system. &lt;br /&gt;
Each process in the module requires an event handler under the PROCESS_THREAD macro.&lt;br /&gt;
&lt;br /&gt;
*name: The variable name of the process structure.&lt;br /&gt;
*process_event_t: The variable of type character.If this variable is same as PROCESS_EVENT_EXIT then PROCESS_EXITHANDLER is invoked.&lt;br /&gt;
&lt;br /&gt;
Within the body of PROCESS_THREAD there are 3 major tasks:&lt;br /&gt;
* Initialization&lt;br /&gt;
** allocate resources&lt;br /&gt;
** define variables&lt;br /&gt;
** begin process&lt;br /&gt;
* Infinite Loop&lt;br /&gt;
** while(1) is used to create an infinite loop in which the actual event-handling response takes place&lt;br /&gt;
* Deallocation&lt;br /&gt;
** end process&lt;br /&gt;
** deallocate resources&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;PROCESS_EXITHANDLER(handler) &amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Specifies an action when a process exits.&lt;br /&gt;
NOTE: This declaration must come immediately before the PROCESS_BEGIN() macro.&lt;br /&gt;
&lt;br /&gt;
* handler: The action to be performed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;PROCESS_BEGIN() &amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This macro defines the beginning of a process, and must always appear in a PROCESS_THREAD() definition.This macro initiates PT_BEGIN(), which is declared at the starting point of a protothread. All C statements above the PT_BEGIN() invokation will be executed each time the protothread is scheduled.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;broadcast_close(struct broadcast_conn *) &amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This function closes a broadcast connection that has previously been opened with broadcast_open().This function typically is called as an exit handler.&lt;br /&gt;
&lt;br /&gt;
*broadcast_conn :  This is same as the variable from boradcast_recv().&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt; PROCESS_END() &amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This macro defines the end of a process. It must appear in a PROCESS_THREAD() definition and must always be included. The process exits when the PROCESS_END() macro is reached. This macro initiates PT_END().It must always be used together with a matching PT_BEGIN() macro.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt; broadcast_open(struct broadcast_conn *, uint16_t ,const struct broadcast_callbacks *) &amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sets up an identified best-effort broadcast connection. The caller will allocate the memory for the struct broadcast_conn, usually by declaring it as a static variable. The struct broadcast_callbacks pointer  points to a structure containing a pointer to a function that will be called when a packet arrives on the channel. This function opens a connection of type abc_conn and sets the callbacks to structure passed. Also, this points to channel_set_attributes() function.&lt;br /&gt;
&lt;br /&gt;
*broadcast_conn : A pointer to a struct broadcast_conn&lt;br /&gt;
*uint16_t:  The channel on which the connection will operate&lt;br /&gt;
*broadcast_callbacks :  A struct broadcast_callbacks with function pointers to functions that will be called when a packet has been received&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt; etimer_set(struct etimer *, clock_time_t) &amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This function is used to set an event timer for a time sometime in the future. When the event timer expires, the event PROCESS_EVENT_TIMER will be posted to the process that called the etimer_set() function.&lt;br /&gt;
&lt;br /&gt;
*etimer : A pointer to the event timer&lt;br /&gt;
*clock_time_t : The interval before the timer expires.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt; static struct broadcast_conn &amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The broadcast module sends a packet to all local area neighbors with a header that identifies the sender. It also adds a single-hop address as a packet attribute to out going packets. &lt;br /&gt;
broadcast_conn structure consists of two structures&lt;br /&gt;
*abc_conn struct: the abc(Anonymous best effort local area Broadcast) module sends packets to all local area neighbors. It uses one channel.&lt;br /&gt;
*broadcast_callbacks struct: this is called when a packet has been received by the broadcast module. The struct broadcast_callbacks pointer is used in broadcast_open to point  to a function that will be called when a packet arrives on the channel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Contiki_tutorials | Back to Contiki Tutorials]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Edited by: Rahul, Nikhil, Bhavana, Lakshmi&lt;/div&gt;</summary>
		<author><name>Kwame</name></author>	</entry>

	<entry>
		<id>http://anrg.usc.edu/contiki/index.php?title=File:Seniot09cccc-notes.pdf&amp;diff=206</id>
		<title>File:Seniot09cccc-notes.pdf</title>
		<link rel="alternate" type="text/html" href="http://anrg.usc.edu/contiki/index.php?title=File:Seniot09cccc-notes.pdf&amp;diff=206"/>
				<updated>2014-02-15T00:21:56Z</updated>
		
		<summary type="html">&lt;p&gt;Kwame: Contiki COOJA Hands-on Crash Course: Session Notes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Contiki COOJA Hands-on Crash Course: Session Notes&lt;/div&gt;</summary>
		<author><name>Kwame</name></author>	</entry>

	<entry>
		<id>http://anrg.usc.edu/contiki/index.php?title=Installation&amp;diff=173</id>
		<title>Installation</title>
		<link rel="alternate" type="text/html" href="http://anrg.usc.edu/contiki/index.php?title=Installation&amp;diff=173"/>
				<updated>2014-02-10T23:24:31Z</updated>
		
		<summary type="html">&lt;p&gt;Kwame: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Contiki_tutorials | Back to Contiki Tutorials]]&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
This guide covers installation of ContikiOS 2.7. There are basically three way of installing ContikiOS:&lt;br /&gt;
&lt;br /&gt;
* Download Instant Contiki [http://sourceforge.net/projects/contiki/files/Instant%20Contiki/]&lt;br /&gt;
* Download ContikiOS from Sourceforge repository [http://sourceforge.net/projects/contiki/files/latest/download]&lt;br /&gt;
* Clone ContikiOS from Github repository [https://github.com/contiki-os/contiki]&lt;br /&gt;
&lt;br /&gt;
== Using Instant Contiki ==&lt;br /&gt;
&lt;br /&gt;
This is the easiest way of installing and using ContikiOS. You simply need to download Instant Contiki, which is a virtual machine created with all necessary toolchains and software for ContikiOS development.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Link to download Instant Contiki: [http://sourceforge.net/projects/contiki/files/Instant%20Contiki/]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
After downloading Instant Contiki you need also to download either VMWare Player or VirtualBox, if you are using Windows as your host OS. If you use MacOS X you should download VMWare Fusion, instead of VMWare Player.&lt;br /&gt;
&lt;br /&gt;
IMPORTANT: To login in to Instant Contiki: &amp;#039;&amp;#039;&amp;#039;username&amp;#039;&amp;#039;&amp;#039;: &amp;#039;&amp;#039;user&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;passwork&amp;#039;&amp;#039;&amp;#039;: &amp;#039;&amp;#039;user&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Using Sourceforge repository ==&lt;br /&gt;
&lt;br /&gt;
This method requires an existing installation of a Linux-based operating system. The guide assumes you are using Ubuntu 12.04 but should still be useful for similar versions.&lt;br /&gt;
&lt;br /&gt;
Download contiki-2.7.zip from http://downloads.sourceforge.net/project/contiki/Contiki/Contiki%202.7/contiki-2.7.zip&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt; wget http://downloads.sourceforge.net/project/contiki/Contiki/Contiki%202.7/contiki-2.7.zip&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unzip the file. For the purposes of this guide, it is assumed that the file is unzipped into /home/user/&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;unzip contiki-2.7.zip&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rename the folder from contiki-2.7 to contiki.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;mv contiki-2.7 contiki&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install all the required packages for compiling and running ContikiOS. &lt;br /&gt;
&lt;br /&gt;
If you are using a MSP430-based platform (such as Tmote) you only need the following packages: &amp;#039;&amp;#039;binutils-msp430&amp;#039;&amp;#039;, &amp;#039;&amp;#039;gcc-msp430&amp;#039;&amp;#039;, &amp;#039;&amp;#039;msp430-libc&amp;#039;&amp;#039;, &amp;#039;&amp;#039;msp430mcu&amp;#039;&amp;#039; and &amp;#039;&amp;#039;mspdebug&amp;#039;&amp;#039;. If you intend to code for multiple platforms, you should also install the following tool chains for other micro-controller: &amp;#039;&amp;#039;binutils-avr&amp;#039;&amp;#039;, &amp;#039;&amp;#039;gcc-avr&amp;#039;&amp;#039;, &amp;#039;&amp;#039;gdb-avr&amp;#039;&amp;#039;, &amp;#039;&amp;#039;avr-libc&amp;#039;&amp;#039; and &amp;#039;&amp;#039;avrdude&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
You can run the following command to install all packages for multiple platforms:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;sudo apt-get install build-essential binutils-msp430 gcc-msp430 msp430-libc msp430mcu &lt;br /&gt;
mspdebug binutils-avr gcc-avr gdb-avr avr-libc avrdude openjdk-7-jdk &lt;br /&gt;
openjdk-7-jre ant libncurses5-dev&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You are done! You can now try to compile and run any example, such as [[Hello_World | Hello World]].&lt;br /&gt;
&lt;br /&gt;
== Using Github repository ==&lt;br /&gt;
&lt;br /&gt;
This method also requires an existing installation of a Linux-based operating system. It is very similar to the previous one, but instead of downloading the source code you are going to &amp;#039;&amp;#039;clone&amp;#039;&amp;#039; it from the official Github repository. &lt;br /&gt;
&lt;br /&gt;
This method eases the update of your ContikiOS to the new releases.&lt;br /&gt;
&lt;br /&gt;
You need to &amp;#039;&amp;#039;clone&amp;#039;&amp;#039; the repository using the following command:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;git clone git://github.com/contiki-os/contiki.git contiki&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After that you need to download all development tools as described in the previous installation method.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Primary contributors:&amp;#039;&amp;#039;&amp;#039; Pedro, Kwame&lt;br /&gt;
&lt;br /&gt;
[[Contiki_tutorials | Back to Contiki Tutorials]]&lt;/div&gt;</summary>
		<author><name>Kwame</name></author>	</entry>

	</feed>