In the wireless communication field are several ways of referring to the energy or power used to transmit and receive.
On one hand we have the energy (watts) which is used by he transceiver to generate the wave pulses. This energy is normally measured in mW.
On the other hand we have the value measured in dBm which depends on both the emisor and the receptor, due to it is a relative value which is described in terms of gain and loss. It is the logarithmic representation of the energy signal previously described, a value much more understandable when talking about low energy values.
The are are connected through this simple formula:
dBm = log(mW) * 10
The IEEE 802.15.4 standard sets the minimum amount of energy needed to transmit in -3dBm, (0'5 mW) and the minimum sensibility in the receiver is -92dBm (6'3 * e-10 mW).
Waspmote and X-Tick radio module has a variable transmission power strength of 0dBm (1mW) in XBee and 20dBm (100mW) in the XBee-Pro, both values are higher than the minimums set in the 802.15.4 standard. Regarding the reception sensibility , the XBee shows -92Bm (6'3 * e-10 mW) and -100dBm (1 * 1e-10mW) the XBee-Pro flavor. This means we will detect any packet which reach us with a energy of as low as 0'000000000063mW for the XBee and 0'00000000001mW for the XBee-Pro.
As you can see in the graphic above the amount of energy which is required to start generating signal is very low, however as we start moving above 0 dBm each time we have to use more and more amount of energy in the emisor to get an improvement in the receptor.
With this information in mind we are going to see what parameters we can control to create our own indoor location application.
To calculate the indoor location using triangulation we need to use the Received Signal Strength Indicator (RSSI) parameter.
Using the DB command in Waspmote we can retrieve the signal in dBm of the last packet received successfully.
Possible reception values are:
To send periodically broadcast packets ("hello I am here!") we have created a special hack X-Tick which can be programmed to send periodically (each x seconds) a message with its MAC address as identificator. We can also control the energy used when transmitting packets. This feature is controlled by the Power Level (PL) command. The possible transmission power values are:
Let's see some possible values:
Obviously we can set the power we want depending on how we create the network.
We can also program the internal Joystick to create events when someone move it. This way we can specify our location just when we press the button.
More information in the X-Tick manual.