imec sensing engine in w-iLab.t Zwijnaarde testbed


There are 7 imec sensing engine deployed in wilab2 in total:

5 imec sensing engines with WARP frontend are attached to the zotac nodes: 12,19,37,44,51 2 imec sensing engines with scaldio frontend are attached to the zotac nodes: 30, 41

This is shown in the figure below:

imecse in wilab2


Each imec sensing engine has a unic spiderID and for scaldio frontend, it also has a frontend ID. The following table contains the configuration in w-iLab.t Zwijnaarde, to get more information see the SenisngEngineUserManual.pdf 

node  spider frontend
12 139 0
19 140 0
30 129 1
37 147 0
41 130 19
44 145 0
51 146 0

Use imec sensing engine within Emulab experiment


To use imec sensing engine, you need to have an emulab experiment swapped in with at least one of the nodes listed above. An example ns file with one wilab2 node is listed below:


set ns [new Simulator] 
source tb_compat.tcl
# Nodes 
set node12 [$ns node] 
tb-fix-node $node12 zotacC2
$ns run


The easiest way is to join the cognitiveradio project on emlab and after your experiment swap in, go to /proj/cognitiveradio/sensing/imecse folder


Content of the imecse folder under cognitiveradio project

1) and are the scripts to program imec sensing engine

2) environment.csh contains the environment varialbes that need to be set

3) hardware, ztex contains the first level firmware required by the or the

4) firmware and scaldio_files contains the firmware needed during run time by the sensing engine

5) includes, libaries contains the sensing engine header files and the compiled library for linux 2.6 64bit platform

6) apps contains an example application using the imec sensing engine

7) SensingEngineUserManual.pdf contains the detailed configuration of the sensing engine

8) oedl_example folder contains a simple example that uses OEDL script to control imec sensing engine

Configure imec sensing engine

To setup the sensing engine with WARP front end

1) source environment.csh

2) ./

To setup the sensing engine with scaldio frontend

1) source envrionment.csh

2) ./

Example applications 

 The example apps in apps folder contains: Makefile main.c MAIN when run ./MAIN spiderid frontend, the application uses imec sensing engine to scan the 14 802.11g channels and print it out on stdard out

To create your own imec sensing engine application

1) source environment.csh

2) Copy apps, includes, libraries to your own home folder

3) adapt the main.c file

4) make

5) hopefully you have your own binary now

Use imec sensing engine via OEDL script

We start from an existing imec sensing engine binary that scans over the 14 Wi-Fi channels in the 2.4 GHz IMS band, and output the result on the stdout, this binary is located in the oml_app/Output folder.
An application wrapper is created to parse input arguments, start the sensing engine application, and parse the raw outputc before collecting the result to the OML database, this is the imecse_app_wrap.rb located in the oml_app folder. 
A corresponding application definition is created so that the sensing engine can be recognized by the top level OEDL script. In the example, this is the imecse_app_def.rb file located in the oedl_example folder. The application definition must point to the application wrapper, and located in the same folder as the top OEDL script in order to run correctly.
Finally the top level OEDL script is written to control the experiment workflow, in our case this is the oedl_imecse.rb
In addition, an seperate OEDL script is used to program the sensing engine, this is the oedl_program_imecse.rb.  Users must specify the reserved sensing engine nodes (with either WARP frontend of scaldio frontend), adapt the nodes and experiment name before running the script.
More basic informtaiton of OMF can be found at here.