Electronic – Battery life with a CC3000 WiFi beacon

batteriesrfidwifi

We're experimenting with using a WiFi module as a battery driven beacon or RFID tag. The cheapest module out there with plenty of documentation (thank you Adafruit) is the Texas Instruments CC3000.

The big problem is the power consumption – 190mA on transmit is very high for a battery driven product – and the demand is for 1 year+ battery life transmitting maybe once every 10-15 minutes. The range is over 150m x 150m with only enough data sent to indicate presence – ie: a beacon.

My question is – how quickly can the CC3000 wake up, transmit and shutdown? The indications are that it takes 60ms to initialise from sleep. Connecting to the Access Point is generally a long drawn out process, at least it is on a Windows machine. I assume that once connected, you could send a broadcast rather than waiting 1000s of milliseconds for DHCP to finish but I don't know if the CC3000 gives you that control.

A posting on TI's forums suggested that it would take 6 seconds to connect to an AP. At 200mA, 4 times an hour you'd need an 11Ah battery for a year; which isn't what I'd call an RFID solution!

(My personal feeling is that this path isn't a reasonable one – if you have to be at 2.4Ghz then there are BLE modules (Nordic Semi) that are more suited but the boss likes WiFi and its range (+18dBm). Anyone have any experience with WiFi in this scenario?)

Best Answer

Wifi is probably hopeless for this application. You should use a sub-1GHz ISM band radio instead.

The Texas CC1101 and Nordic nRF905 are both quite good. The CC1101 has an edge on power consumption I think. Texas also have some newer parts, such as the CC1120, that are on-air compatible but a bit more sensitive.

In any case using sub-1GHz bands will give you much better range than 2.4GHz. Depending on where you live 433MHz, 868MHz or 915MHz should be available. Modules can be bought cheaply on eBay or Amazon.

As an example a pair of lithium AA cells can run a CC1101 and Atmel microcontroller transmitting every ~5 seconds for about 5 years. To get that kind of performance you need to do a bit of work optimizing your code and hardware. For example, run at the lowest voltage possible with an ultra low quiescent current LDO.

Data rate is important to get right too. If you only need to transmit once every few minutes then the lowest possible (1.2kbaud is reasonable for a CC1101) should be fine. Obviously the lower the bit rate the longer the radio has to stay powered up. You can avoid having to do listen-before-talk by simply randomizing the transmission time by say +/- 1 minute, since you will only be on air for a few tens or maybe hundreds of milliseconds maximum.

Then you need to make a receiver for your PC, or perhaps a bridge to wifi.