Travels in low-power-land - Part 1
At Cologne, we’re evaluating some nice wireless hardware stuff. Here are some first insights.
Part 1 - Get in touch
Currently, we’re evaluating wireless technologies for building small, coin cell-driven modules that carry serveral useful sensors like:
- Brightness / RGB
- Capacitive touch
They are going be produced in small amounts and can be configured and used instantly to create small user interactions for several media exhibits.
- Phygital (Physical + Digital) devices like the Phygital Magazine and Book
- Things that interact with exhibits when moved, rotated, tilted
- Hidden mechanical or capacitive touch buttons
In standby mode, batteries should last several months. Since they will be used only a few times a day, wake-up duration will probably be less than one minute per day. They should be as small as possible. Data rate is no concern since only small amounts of status data will be transferred.
We evaluated two wireless technolgies:
RFM69HCW (left) and ESP8266 ESP-12-E (right)
Esp8266 is a tiny SoC with 2,4 Ghz Wifi and several GPIO-Pins. It’s available on a couple of breakout boards, starting at about 2 € per piece. Many of them are made by AiThinker or Espressif There is a gcc-compiler available and the Arduino community supports the tiny module pretty well. It has only one analogue input and just a few GPIO pins. We tested a ESP8266 ESP12E Module. They have a printed antenna on the pcb itself.
- Very fast Wifi connection speed. After waking up from deepsleep, it connects to WPA2-Wifi with a static IP and publishes the first message in about 200ms
- Low deep sleep current of 22 uA
- Waking up from deepsleep resets RAM. Program starts from the beginning. The only way to store values between deepsleep periods is the real time clock memory.
- Very high peak current of 380mA while transmitting
- No USB interface - USB-to-Serial adapter needed for programming
- Over the air updates are possible, even via a tiny embedded webserver: https://github.com/esp8266/Arduino/blob/master/doc/ota_updates/
- Bootstrapping and configuration might be done through tiny embedded webserver directly
- Many modules have 1-4MB flash memory on board with a complete file system implementation that can be used for persisting data
Hope RF RFM69HCW + AtMega
RFM69HCW is a 433Mhz transmitter with integrated protocol and acknowledge handling. It can be combined with any microcontroller with SPI interface. We’ll propably going to take a AtMega 32u4 that has an integrated USB stack for easy deployment and debugging. Deep sleep current is mainly dependent on the current consumption of the microcontroller itself. The RFM module’s standby current is negligible. There are ready-made Arduino modules called Moteino with RFM69HCW as well that might be worth trying.
- Good range throughout the whole area with 17cm wire antenna
- Adjustable power output
- Maximum current when transmitting ca. 75mA
- Fast transmission without noitceable delay
- Very reliable transmission
- RSSI output for debugging and range estimation
- Adjustable transmitting power
- Additional reciever/bridge to the location’s network needed
Current draw of different transmit power settings
To confirm the data sheets of the manufacturers, we did some own power measurements. The current was measured with a INA129 I2C current sensor and a small Arduino sketch to read out the values. The sensor is much faster than a multimeter which isn’t suitable for measuring such short peaks.
The ESP8266 has been sent to deepsleep - and awakes every 3 seconds. Every 8 times, Wifi is switched on and it publishes some status data via MQTT, the other times, it remains off.
The RFM69HCW sends a short string message every 10 seconds with 2 retries at full transmission power.
Current draw comparison
Powering that stuff
Especially the current peaks are interesting to choose the battery type. Typical lithium coin cells can’t handle high current draws of several hundred milli-amperes. For higher currents, coin cell shaped Li-Ion batteries are available which have only about half of the capacity of lithium cells. The LIR2450 is much larger than the CR2032, but has less capacitiy (210mAh vs. 120mAh). The ESP8266 can only be powered through a Li-Ion-cell, while the RFM69HCW might be powered through a CR2032 when it’s not transmitting at full power. A capacitor to smooth out the highest peaks might be another solution to work with CR2032 coin cells. Thus a sensor with the RFM69HCW will very likely have longer standby time while being smaller because in can be powered through a battery type with a much higher energy density.
Size comparsion of CR2032 and LIR2450 cells
In the next part, we’ll build two prototypes for testing and comparison and we’ll see how they will behave in real life. Stay in touch.
…to be continued.