420 likes | 544 Vues
Bart Jooris Friday May 15th 2009 aka IBCN-dag. How to put applications on wilab. Is Wilab something for you?. Running applications on Wilab. Available Real-time applications without login visualisation of the temperature on a map Select [w-iLab_t]_Visual_Temperature
E N D
Bart Jooris Friday May 15th 2009 aka IBCN-dag How to put applications on wilab
Running applications on Wilab • Available Real-time applications without login • visualisation of the temperature on a map • Select [w-iLab_t]_Visual_Temperature • Click on the button ”start visualiser” • Use keyboard arrows to zoom • Enter A to add and R to remove the time slider
Running applications on Wilab • Available real-time applications without login • Temperature graph of one node • Still in the toolbox • Select [w-iLab_t]_Analyse_Temperature • Click on the button ”start analyser” • Double-click to store the graph in your home directory
What is above our heads iNode: Embedded PC WLAN sensor EE WLAN DUT
User, LAN and WiFi activity leds • Toggle the user led on a specific location • Click on the status menu • Click on the button ”toggle user led” WiFi 1 WiFi 2 LAN
Components PoE Switches = 2 x HP2600-8-PWR (8p) + 10 HP2626-PWR (24p) Cat 6 UTP Atlas VLAN Wilab D-Link DWL-P50 Power 12V max 1A 100Mb Ethernet iNode = Alix3c3 • 1GB CF • 2 x Compex SAG54-23 • 2 x dual band antenne Wilab.test • SW RAID1 • LAMP Wilabfs.test • HW RAID5 • User directories • Backup server USB + audio DUT = TMote Sky USB EE EE bus (IDC 10 + 6)
Benchmark E2E test • When nobody is running an application on the inode • Kyoto protocol • Cycle 5 min • Inode → EE → DUT (Power for 10s) • DUT runs default firmware • Transmits over USB a packet with temperature,… • Inode forwards the packet to wilab.test • Wilab.test adds extra info • Location • timestamp
Remote access to wilab • OpenVPN • Runs on windows, linux, mac • NAT friendly • Runs even over HTTP proxy (TCP port 443) • Account: email brecht.vermeulen@ibbt.be
Where will your applications run? Ethernet + power iNode USB Fixed interface: RS232, USB, … Environment Emulator DUT Power DUT can be a sensor, but also an actuator! PWR SI I(O) Current DAC/ADC, I2C, … GP(I)O
Block Diagram and specifications of the DUT Tmote Sky: Radio; CC2420 (2.4GHz band, channels 11-26, 250kbps) uC; msp4301611 (4MHz, 48K Program Flash, 10K RAM) Bus; SPI with DMA (500kbps) I/O; (8 ADC (6 +2), 2 DAC, 13 GPIO) Interface; USB (program and data) Sensors; enf, 2 x t, h, 2 x l Antenna; onboard pcb Sensors uC Radio Antenna Int BUS IO
iNode specifications iNode = PC-Engines ALIX 3c3 alix3c3 = 1 LAN / 2 miniPCI / LX800 / 256 MB / USB / VGA / audio SpecCPU: 500 MHz AMD Geode LX800 Processing powerPIII 800 MHz DRAM: 256 MB DDR DRAM Storage: CompactFlash socket Power: DC jack or passive POE, min. 7V to max. 20V Three LEDs Expansion: 2 miniPCI slots, LPC bus Connectivity: 1 Ethernet channel (Via VT6105M 10/100) I/O: DB9 serial port, dual USB, VGA, audio headphone out/mic in RTC battery Board size: 100 x 160 mm Firmware: Award BIOS
iNode specifications iNode is equipped with: 1 x Compact Flash 1GB 2 x Compex WLM54SAG 200mW AR5006XS 802.11a/b/g 54/108 Mbps miniPCI wireless card (only main connector is used) 2 x Pigtail cable I-PEX -> reverse SMA 2 x dual band antenna’s Electrical Properties of antenna Frequency Range 2.42.5, 5.15 and 5.9GHz Impedance 50 Ohm nominal VSWR 2.0 Gain 2.45GHz = 5dBi 5.25GHz = 5dBi Radiation Omni Polarization Vertical Electrical Wave λ/4 Dipole Connector SMA Plug REVERSE
How did we get there ? Assembly days iNodes EEs
Demo features • Inode • Toggle user led • Connect to screen or beamer • EE • 7seg display can scroll a “text” • Tmote • 3 leds • Tmote invent • Motion sensors • Mic + speaker • 3 leds
Software Sensornode : Tinyos • Why tinyos • Big community, support for many platforms, huge implementation resource,... • one IBBT team = one development environment • General description on en.wikipedia.org • Tutorials on http://docs.tinyos.net/index.php/ • IBBT Subversion https://svn.atlantis.ugent.be/svn/wsn/ • IDRA framework (contact Eli De Poorter) • Network and cross layer architecture
iNode OS and software • Debian 5.0 (Lenny) Voyage distro 0.6.1 • Patched kernel 2.6.24.7 for click • Click modular router 1.6.0 with all elements available in user level and as kernel module • JRE 1.6.0_12 • Time synchronization via ptpd IEEE 1588 standard • wilab.test • synchronized with ntp.atlantis.ugent.be • ptp master clock • Convergence (offset from master) • < 100 us after ca. 8 min • < 10 us after ca. 13 min
Preparing Software for the iNode • Best practice: • prepared VM (http://wilab.test/data/wilabuser) • Desktop iNode • Apt-get install’s are not recommended • Copy binaries instead (check with file arch <=i586) • Locate the libs you need with ldd • Execute with: • LD_LIBRARY_PATH=~/iPlatform/libs click
An account on wilab • New accounts: • Account features: • Quota in minutes per half floor (smallest zone) • Database (remote access + phpmyadmin) • Ssh account on wilabfs (shared 1.5TB) • Ssh account on the iNodes • Personal IP is used in dynamic firewall • More info, changing password or IP on:
Zones on wilab SB 3A 3B 2B 2A 1B 1A
Wilab policy and sandbox • No WiFi experiments between 06:00 and 22:00 • Enforcement • Experiments can always be scheduled • Wireless interfaces are continously monitored and killed • When killed, message is written to the log files • Sandbox • No enforcement p. 30
Registering messages TinyOS tool MIG enum { AM_TEMPHUMLIGHTMSG = C }; typedef nx_struct { nx_uint16_t temperature; nx_uint16_t humidity; nx_uint16_t light; } TempHumLightMsg; TempHumLightMsg.java javac TempHumLightMsg.class Add java class to job A Schedule ID = B Automatically a table A_B_C will be created with the same fields + locationID + timestamp
Events • Events: • ConfigEvents → EventReports • Config7Seg • SetGpioPinStatus • SetGpioTris • ConfigSampler → SamplerReports • ConfigStreamer • Coulombs law ( Q = I . t = C . V →V = f (I, t, C) ) • Virtual capacity (Cv) • Energy harvesting (Ieh) • Simple battery depletion emulation Ieh I load Cv
Job Job contains: Tinyos firmware images Registered messages Scenarios Execute events on predefined relative times (or RT) iPlatform = wilabfs.test/home/user/iPlatform/iNodeProfile Contains bins, scripts, libs, config Start_mount_script will be started after boot Specific kernel /tmp/log is mounted to ./log/ScheduleID/NodeID/ Schedule a Job in a wilab zone in a free time slot Analyze your messages in the db RT or offline with easy to configure via xml (some examples on the server) wilab-visualiser wilab-analyser
Sample sensor experiment • Example research application: RadioPerf (IBCN devel.) • Configurable packet generator • Radio (txPower, channel) • Packet generator (#, size, IPDelay,…) • MAC properties (backoff, retries,…) • LPL properties (duty cycle,…) • Reports (IRDelay, …) • Dumps reports every IRDelay • Enf, #Tx, #Rec, RSSI, LQI,…
Experiment iPlatform (dist. ca 30m) Max throughput on Turbo Channel without tweaking the Qos parameters using 1 wireless interface per iNode: Tweaking QoS WiFi parameter can give a profit of 10% ^AP / Wireless terminal -> Unicast UDP: Ca. 65 Mbits guaranteed On channel 50 (a band)
Wilab statistics since May 1st 2008 • 35 registered users • 1199 hours total active time • 5482 total number of experiments • 463 hours top user Jono • 17min 52sec average time of an experiment • 30.6 numbers of nodes used per job • 119 jobs in the sandbox • 41min avg time of a sandbox experiment • 10 number of children born