To estimate the energy consumption. We can run on Cooja or with a real device
- Check the number of ticks per sencond for rtime (RTIMER_SECOND = 32768)
printf("Ticks per second: %u\n", RTIMER_SECOND);
- Include powertrace app in your project by adding it to your Makefile
APP += powertrace
(You also can use simpler version of powertrace at https://github.com/sonhan/contiki-sonhan/)
- Add to source file
#include "powertrace.h"
- Add to source file to print power profile every 10 seconds:
powertrace_start(CLOCK_SECOND * 10);
- Sample data
CPU LPM TX RX
512803 14227588 153188 195436
531519 14535272 158359 203847
549549 14844701 163409 211794
560341 15161365 165821 216534
575755 15473409 169844 223419
599333 15777318 178173 231767
610307 16093852 180704 236651
625674 16406020 184722 243660
649197 16710040 193402 252940
660144 17026626 195811 258453
670942 17343372 198221 263249
- Energy consumption (Power - mW):
Check datasheet for current and voltage, e.g., CPU = (531519 - 512803) * 0.33 * 3 / 32768 / 10
- Duty cycle (%):
E.g., TX duty cycle = (158359 - 153188) / (531519 - 512803 + 14535272 - 14227588)
- Sample output:
- Sample data and calculation:
https://github.com/sonhan/contiki/tree/master/apps/powertrace-sonhan/sample-data
Monday, April 6, 2015
Friday, February 13, 2015
Contiki and Z1
platform/z1/contiki-conf.h: change UIP_CONF_BUFFER_SIZE to 240 (from 140)
make z1-reset
make login
...to be continued
make z1-reset
make login
...to be continued
Quick Start: gnuplot - multiline graph
- Download and install gnuplot: http://www.gnuplot.info
- Creat a file data.txt:
Time TX RX Total
1 0.00% 0.95% 0.95%
2 0.00% 1.03% 1.03%
3 0.09% 0.83% 0.92%
4 0.09% 1.09% 1.17%
5 0.00% 0.69% 0.69%
6 0.09% 1.07% 1.16%
7 0.00% 1.02% 1.02%
8 0.09% 1.15% 1.25%
9 0.09% 0.85% 0.94%
10 0.00% 0.92% 0.92%
11 0.18% 0.98% 1.16%
12 0.18% 1.19% 1.37%
13 0.18% 1.36% 1.54%
14 0.23% 1.30% 1.52%
15 0.00% 0.89% 0.89%
16 0.09% 1.17% 1.26%
17 0.09% 1.26% 1.35%
18 0.00% 1.13% 1.13%
19 0.18% 1.28% 1.46%
20 0.09% 0.84% 0.93%
- Run in gnuplot>
set xlabel 'Time (s)'
set ylabel 'Duty Cycle (%)'
set yrange [0:2]
set xrange [1:20]
set key autotitle columnheader
plot "data.txt" u 1:2 w linespoints lt -1 pt 5 dt 5, '' u 1:3 w linespoints lt -1 pt 4 dt 2, '' u 1:4 w linespoints lt -1 pt 3
- Output
- Creat a file data.txt:
Time TX RX Total
1 0.00% 0.95% 0.95%
2 0.00% 1.03% 1.03%
3 0.09% 0.83% 0.92%
4 0.09% 1.09% 1.17%
5 0.00% 0.69% 0.69%
6 0.09% 1.07% 1.16%
7 0.00% 1.02% 1.02%
8 0.09% 1.15% 1.25%
9 0.09% 0.85% 0.94%
10 0.00% 0.92% 0.92%
11 0.18% 0.98% 1.16%
12 0.18% 1.19% 1.37%
13 0.18% 1.36% 1.54%
14 0.23% 1.30% 1.52%
15 0.00% 0.89% 0.89%
16 0.09% 1.17% 1.26%
17 0.09% 1.26% 1.35%
18 0.00% 1.13% 1.13%
19 0.18% 1.28% 1.46%
20 0.09% 0.84% 0.93%
- Run in gnuplot>
set xlabel 'Time (s)'
set ylabel 'Duty Cycle (%)'
set yrange [0:2]
set xrange [1:20]
set key autotitle columnheader
plot "data.txt" u 1:2 w linespoints lt -1 pt 5 dt 5, '' u 1:3 w linespoints lt -1 pt 4 dt 2, '' u 1:4 w linespoints lt -1 pt 3
- Output
Subscribe to:
Posts (Atom)