/** \addtogroup esb
@{ */
/**
\defgroup slipintro Introduction to Over The Air Reprogramming under Windows
\author Joakim Eriksson, Niclas Finne
@{

\section slipintro-intro Introduction

This is a brief introduction how to program ESB sensor nodes over
radio under Windows. It is assumed that you already have the
environment setup for programming ESB sensor nodes using JTAG cable.

\section slipintro-configuring Configuring SLIP under Windows XP

This section describes how to setup a SLIP connection under Windows. A
SLIP connection forwards TCP/IP traffic to/from the sensor nodes and
lets you communicate with them using standard network tools such as
\c ping.


-# Click start button and choose 'My Computer'. Right-click 'My
Network Places' and choose 'Properties'.
<img src="img/esb/slip01.jpg" align="center">
-# Click 'Create a new connection'.
<img src="img/esb/slip02.jpg" align="center">
-# Select 'Set up an advanced connection'.
<img src="img/esb/slip03.jpg" align="center">
-# Select 'Connect directly to another computer'.
<img src="img/esb/slip04.jpg" align="center">
-# Select 'Guest'.
<img src="img/esb/slip05.jpg" align="center">
-# Select a name for the slip connection (for example 'ESB').
<img src="img/esb/slip06.jpg" align="center">
-# Select the serial port to use when communicating with the sensor
node.
<img src="img/esb/slip07.jpg" align="center">
-# Add the connection by clicking 'Finish'.
<img src="img/esb/slip08.jpg" align="center">
-# A connection window will open. Choose 'Properties'.
<img src="img/esb/slip09.jpg" align="center">
<img src="img/esb/slip10.jpg" align="center">
-# Click on 'Configure...' and deselect all selected
buttons. Choose the speed 57600 bps.
<img src="img/esb/slip11.jpg" align="center">
-# Close the modem configuration window, and go to the 'Options'
tab in the ESB properties. Deselect all except 'Display
progress...'.
<img src="img/esb/slip12.jpg" align="center">
-# Go to the 'Networking' tab. Change to 'SLIP: Unix Connection'
and deselect all except the first two items in the connection item
list.
<img src="img/esb/slip13.jpg" align="center">
-# Select 'Internet Protocol (TCP/IP)' and click
'Properties'. Enter the IP address '172.16.0.1'.
<img src="img/esb/slip14b.jpg" align="center">
-# Click 'Advanced' and deselect all checkboxes in the 'Advanced
TCP/IP Settings'. Go to the 'WINS' tab and deselect 'Enable LMHOSTS
lookup' if it is selected. Also select 'Disable NetBIOS over
TCP/IP'.
<img src="img/esb/slip15.jpg" align="center">
<img src="img/esb/slip16.jpg" align="center">


\section slipintro-setup Setup ESB for over the air programming

-# Make sure you have the latest version of contiki (older versions of
   contiki might not work with SLIP under Windows)
-# Install the contiki kernel by running
\code
make core.u
\endcode
-# Attach the ESB node to the serial port and make sure it is
turned on. Select your ESB SLIP connection in your 'Network
Connections' and choose 'Connect' (or double click on it). If
everything works Windows should say that you have a new connection.
-# Set the IP address for the node by pinging it (it will claim the
IP address of the first ping it hears). Note that the slip interface
has IP address 172.16.0.1 but the node will have the IP address
172.16.1.1.
\code
ping 172.16.1.1
\endcode

If everything works the node should click and reply to the pings.

\section slipintro-send Send programs over the air

Contiki applications to be installed via radio are compiled somewhat
different compared to normal applications.

Each node needs an IP address for OTA to work. A node id can be
specified when you upload the contiki kernel to a node and this is
used to construct an IP address for the node. If you specify 2 as
node id, the node will have the IP address 172.16.1.2. Each node
should have its own unique node id.

You need to compile a core and upload it onto the nodes. All nodes
must run the same core. Move to the directory
'<tt>contiki-2.x/platform/esb</tt>' and run

\code
make
make core.u nodeid=X
\endcode

to upload the core to your nodes. Use the number 1, 2, 3, etc,
as the node id (\c X) for the nodes. This will give the nodes the IP
addresses 172.16.1.1, 172.16.1.2, etc.

Then you need a program to send the application to connected
nodes. Compile it by running

\code
make send
\endcode

Make sure you have a node with IP address 172.16.1.1 connected to your
serial port and have SLIP activated. Then compile and send a
testprogram by running

\code
make beeper.ce
./send 172.16.1.1 beeper.ce
\endcode

*/
/** @} */
/** @} */
