Difference between revisions of "Boomerang Delta Lifetime"

From TinyOS Wiki
Jump to: navigation, search
(New page: Delta is an application distributed with Boomerang that demonstrates a simple form of low power mesh networking. Delta is by default configured for fast response times in small networks, ...)
 
Line 7: Line 7:
 
The network is assumed to consist of standard Tmote Sky motes powered by two AA batteries.
 
The network is assumed to consist of standard Tmote Sky motes powered by two AA batteries.
  
<div style="margin-left:2em; margin-top:1em;">
+
'''HTML code is disabled in this wiki; the Tool is not available'''
<html>
 
<style type="text/css">
 
.title {
 
  font-size: 100%;
 
  text-align: left;
 
  padding-top: 1em;
 
}
 
.cat1 {
 
  padding-top: 1em;
 
  padding-left: 2em;
 
  text-align: right;
 
  vertical-align: bottom;
 
}
 
.cat2 {
 
  padding-left: 2em;
 
  text-align: right;
 
  vertical-align: bottom;
 
}
 
.data {
 
  vertical-align: bottom;
 
  padding-left: 0.5em;
 
}
 
.output {
 
  font-size: 120%;
 
}
 
</style>
 
 
 
<form id=input_form action="" onSubmit="docalc(); return false;">
 
<table>
 
<tr> <th class=title style="padding-top:0"> Input parameters <td>
 
 
 
<tr> <td class=cat2> Communication period: <td class=data> <input name=period_gateway type=text size=8 value=5> seconds between messages sent by a mote to its gateway
 
 
 
<tr> <td class=cat2> Total number of motes: <td class=data> <input name=num_motes type=text size=8 value=10> count
 
<tr> <td class=cat2> Total number of gateways: <td class=data> <input name=num_gateway type=text size=8 value=1> count
 
 
 
<tr> <th class=title> Network properties <td class=data> <input type=submit value="Calculate"> <input type=reset value="Reset">
 
 
 
<tr> <td class=cat1> Network lifetime: <td class=data> <span id=lifetime class=output>...</span> months
 
<tr> <td class=cat2> Required duty cycle: <td class=data> <span id=dutycycle class=output>...</span>%
 
 
 
</table>
 
</form>
 
 
 
<script type="text/javascript">
 
<!--
 
 
 
function get_input(d) {
 
  var f = document.getElementById('input_form');
 
  d.period_gateway = 1*f.period_gateway.value;
 
  d.num_motes = 1*f.num_motes.value;
 
  d.num_gateway = 1*f.num_gateway.value;
 
}
 
 
 
function set_output(d) {
 
 
 
  var f = [ 'lifetime', 'dutycycle' ];
 
  var s = [];
 
 
 
  s.lifetime = (d.lifetime).toFixed(2);
 
  s.dutycycle = (100*d.dutycycle_unbounded).toFixed(0);
 
  s.duty_app = (100*d.duty_app).toFixed(2);
 
  s.used_app = (100*d.used_app).toFixed(0);
 
  s.min_period = (d.min_period).toFixed(2);
 
  s.gateway_load = (d.gateway_load).toFixed(1);
 
 
 
  for (i=0; i<f.length; i++) {
 
    p = f[i];
 
    e = document.getElementById(p).innerHTML = s[p];
 
  }
 
}
 
 
 
function calculate(d) {
 
 
 
  d.ML = 1.0 / d.period_local;
 
  d.MG = 1.0 / d.period_gateway;
 
 
 
  d.NA = 1;
 
  d.NG = Math.max( d.num_motes / d.num_gateway, Math.min( d.num_hood, d.num_motes ) );
 
  d.NL = Math.min( d.NA+d.num_hood, d.NG );
 
  d.NH = Math.min( 4*d.NL, d.NG );
 
  d.NB = Math.max( d.NL - d.NA, 0 );
 
  d.NC = Math.max( d.NH - d.NL, 0 );
 
  d.ND = Math.max( d.NG - d.NH, 0 );
 
 
 
  d.message_load = d.ML*d.NL + d.MG*d.NB + 2*d.MG*d.NC + 3*d.MG*d.ND;
 
  d.duty_app = d.message_load / d.channel_capacity;
 
  d.dutycycle_unbounded = Math.max( d.duty_app, d.duty_min/100.0 )/d.max_network_usage;
 
  d.dutycycle_unbounded = Math.ceil( d.dutycycle_unbounded * 100 ) / 100;
 
  d.dutycycle = Math.min( d.dutycycle_unbounded, 1 );
 
  d.used_app = d.duty_app / d.dutycycle;
 
  d.avg_current = d.cur_active*d.dutycycle + d.cur_sleep*(1-d.dutycycle)/1000;
 
  d.lifetime = (d.energy / d.avg_current) / (24*365.25/12);
 
  d.min_period = 1.0/( d.dutycycle * d.channel_capacity );
 
  d.gateway_load = (d.ML*d.NL + d.MG*d.NG) * d.dutycycle / d.dutycycle_unbounded;
 
}
 
 
 
function docalc() {
 
  var d = [];
 
  d.channel_capacity = 100; //messages per second
 
  d.max_network_usage = 0.9; //maximum network usage, leave the rest for dropped packets, etc
 
  d.period_local = 15; //seconds between messages sent from each mote to its neighborhood
 
  d.num_hood = 8; //radio neighborhood size
 
  d.cur_active = 20; //active current, mA
 
  d.cur_sleep = 10; //sleep current, uA
 
  d.energy = 2600; //energy, mAh
 
  d.duty_min = 0; //minimum duty cycle
 
 
 
  get_input(d);
 
  calculate(d);
 
  set_output(d);
 
}
 
 
 
docalc();
 
 
 
-->
 
</script>
 
</html>
 
</div>
 

Revision as of 21:17, 22 October 2007

Delta is an application distributed with Boomerang that demonstrates a simple form of low power mesh networking. Delta is by default configured for fast response times in small networks, suitable for quick demonstrations.

Delta application lifetime estimation tool

This tools uses a mathematical communication model of the Delta application to help understand the impact of communication rate, network size, and number of gateways on the estimated lifetime and required duty cycle of a Delta network. A small set of parameters are exposed suitable for users wanting to change the report rate and duty cycle of the Delta application.

The network is assumed to consist of standard Tmote Sky motes powered by two AA batteries.

HTML code is disabled in this wiki; the Tool is not available