What new we have learned about NRF24L01
In recent weeks we did a lot tests to our tinyBrd. This was due to new Nettigo tinyBrd Core (integration with Arduino IDE). With v1.1b release we have lowered current consumption even more.
Now, in sleep mode tinyBrd with NRF24L01+ and DS18B20 takes only 4-5 µA (vs 9-10 µA on previous software). During sending data it takes 15 mA (vs 18 mA before).
Our test case is sending data (temperature) read from DS18B20 to RPi every 30 seconds and tinyBrd is powered by singe coin battery (CR2032). How does it work?
Even better than before. Our first revision was working is such setup 7-8 days. And DS18B20 is the reason it has stopped. In datasheet there are 3.0V as minimal power supply for DS18B20, however we have tested many different sensors and they are working OK with Vcc as low as 2.5V. So before, draining CR2032 from 3.1V to 2.5V took 7-8 days. Now, we have started test with a bit used battery which had 2.8V output voltage at start. After 5 and half days voltage at CR2032 has dropped to 2.75V. So it looks as better result :)
What we have learned about NRF24L01?
Many times we have wondered why NRF24L01 datasheet says it works with Vcc lower than 3.6V. Many times, due to misconfiguration we have powered NRF with Vcc 5V. Most time, when USBASP had enabled Vcc jumper, then tinyBrd gets power from USBASP, and this is 5V. But, despite what is in datasheet NRF keep working. It was sending and receiving data. Now we know that is not exactly the case.
With new revision of tinyBrd Core software we got some problems. Function
sleep seemed not to put tinyBrd in low power mode. Current consumption was lower, but not as advertised. We have spent several hours debugging software, but reason was somewhere else.
It looks like NRF24L01 powered with too much voltage tends to lost it’s power save modes. Most time it sends and receives data as usual, but it can not be placed in low power mode. So, we have replaced all our NRF24L01 in lab and now w pay attention not to power them with more than 3.6V.
Do not power NRF24L01 with Vcc more than 3.6V. It will probably send and receive data still, but no more low power modes in most cases.
What next? We are excited working on new Nettigo tinyBrd Core. This type with Pin Change interrupts support. That will allow to wake up tinyBrd via some external event (like button pressing). First test are very promising… Stay tuned :)