######################################################################

 		     NanoQplus OS 2 (Nano OS)
		    	   R E A D M E 

		  Last Modified : 2007. 08. 27.
   ETRI (Electronics and Telecommunications of Research Institute)
######################################################################

 Nano Qplus OS 2 (Shortly, Nano OS) is an operating system for sensor network applications. Nano OS is a new multi-threaded, light-weight and low power sensor network operating system integrated with a general-purpose single-board hardware platform to enable flexible and rapid prototyping of WSN.
 The key design goals of Nano OS are ease of use, i.e. a small learning curve that encourages novice programmers to rapidly prototype novel sensor network applications, as well as flexibility, so that expert reserachers can continue to adapt and extend the hardware/software system to apply the needs of their own advanced research.

 Currently, Nano OS supports the following chracteristics.
 - Development tool of Nano OS, 'Nano Esto'
 - Code optimization by reconfiguring modules
 - A variety of example codes for Nano OS modules
 - Easy-to-coding style in programming with 'C'

 To learn how to install and use Nano OS, please refer to the 'doc' directory. After installation, given below are short description of writing a sensor application and downloading the application image into a sensor node.

  (1) Prepare a directory for your application (e.g. mkdir blink)
  (2) Move to that directory (e.g. cd blink)
  (3) Link the '$NOS_HOME/Makefile.kconf' in your application directory to 'Makefile' (e.g. ln -s $NOS_HOME/Makefile.kconf Makefile)
  (4) Select Nano OS modules for your application by typing 'make menuconfig', which will create 'kconf.h' file (e.g. make menuconfig) 
  (5) Write your own application in C (e.g. vi blink.c)
      The format of Nano OS applications is given below.

	/* nos.h includes all required header files automatically for modules included */
	#include "nos.h" 

	void main()
	{
		/* nos_init() calls all required functions for initialization automatically for modules included */
		nos_init();  
		
		.........
		YOUR CODE HERE
		.........
	}

  (6) Compile & Link by typing 'make clean' and 'make', which creates a hexa-formated file (*.rom or *.hex).
 	- 'make clean' is made only once since an application directory is created. 
  (7) Download the hexa-formated file into a specific sensor board by typing 'make burn port=<port_class>', 
      where <port_class> is one of the following port class, [lpt1|usb|com1|com2|...|com20].

 Now, Nano OS supports the following sensor boards. The type of sensor board can be chosen in menu-configuration.
 - ETRI-SSN (ETRI);			MCU(Atmega128L CPU) + RF Chip (CC2420)
 - Nano-24 (Octacomm corp.);		MCU(Atmega128L CPU) + RF Chip (CC2420)
 - ZIGBEX (Hanback corp.);		MCU(Atmega128L CPU) + RF Chip (CC2420)
 - MICAz (Crossbow corp.);		MCU(Atmega128L CPU) + RF Chip (CC2420)
 - ISN-400N (ETRI);			MCU(MSP430f1611 CPU) + RF Chip (CC2420)
 - UBI-MSP (Hanback corp.);		MCU(MSP430f1611 CPU) + RF Chip (CC2420)
 - UBI-COIN (Hanback corp.);		MCU(MSP430f1611 CPU) + RF Chip (CC2420)
 - Hmote2420 (Hybus corp.);		MCU(MSP430f1611 CPU) + RF Chip (CC2420)
 - Tmote Sky (moteiv corp.);		MCU(MSP430f1611 CPU) + RF Chip (CC2420)
 - SKY-Z200 (Seyeon corp.);		MCU(Atmega128L CPU) + RF Chip (CC2420)
 
We have also ported Nano Qplus on CC2420 Chip (TI product).
If you're interested in Nano OS on CC2430, please contact on our team leader, Pyeongsoo Mah (pmah@etri.re.kr).
Anything else, please consult on the webpage, http://www.qplus.or.kr.

---------------------
 If you have any other questions, use the bulletin board for Nano OS (www.qplus.or.kr) or contact by email directly.
 Here are list of researchers that are responsible for Nano Qplus.
 - Sang-Cheol Kim (sheart@etri.re.kr)
 - Hae-Yong Kim (haekim@etri.re.kr)
 - Jun-Keun Song (jun361@etri.re.kr)
 - Mi-Sun Yu (msyu@etri.re.kr)

Thanks. :)
