I recently designed a PCB (my first one) that has the components that are important to me.
TTN Arduino LowPower Solar Node
- Cheap (about 15 €)
- Small (88x21x32mm)
- Expandable (Arduino Pins)
- low energy consumption
- Long battery life (2 years without solar)
- even longer by solar
- rechargeable by microUSB
- Slot for BME280 and other I2C
- Voltage measurement of the battery
You can find a link list below!
- Arduino Pro mini 3.3V without LED, without regulator (5uA)
- RF95W (1.5uA)
- MCP1700-330 LDO (1.6uA, 250mAh max, 2.3-6V input)
- NCR18650B (3200mA LiPo 4.2V charge, 3.0V cut)
- TP4056 charger with protection for LiPo (4.2-7V input)
- Diode for solar module (TP4056 works very well with 5V / 6V solar cells)
- Resistors, capacitor for measuring the battery voltage at A0 and 1.1V reference
- Plug’n Play slot for BME280 (temperature, humidity, air pressure over I2C)
- SMA antenna connector or wire e.g. helical
Price for the components from aliexpress about 15€. PCBs from China cost approximately 1€/piece.
When it comes to calculating the battery life, it quickly gets complicated. So there are different ways to get to the term:
- One possibility would be to operate a battery of known capacity until it is empty
- Another possibility is to study the data sheets of all components and then add all the information
- The last option would be to measure consumption:
- Doing this could put a multimeter between source and consumer and measure mA / μA.
- Or you put a stunt between the battery and the load and measure the voltage drop across the resistor with an oscilloscope.
The easiest option is certainly to run the battery dead. The fastest way is to use the multimeter and the cleanest way is to use the oscilloscope as it gives us a nice curve in the consumption. If we then calculate the integral of this function, we have the consumption of a consignment. Very beautiful!
The battery I use is a 18650. This number does not describe the type of battery, but the shape. So a 14500 is in the same shape as an “AA”. A 18650 is thicker and longer, but also has significantly more capacity. I take a LiPo, it is charged to 4.2V and can discharge to 2.5V and it is well around 3.3V of the Arduino. A 14500 as LiPo has up to 900mAh. An 18650 already has 3200mAh. My PCB has about the hight and the length of a 18650, so I like to use the battery, which does not cost much space, but has about three times the capacity. Cost of such a cell is about 6 €. LiPo’s have 5% self-discharge. More on that later!
The Arduino consumes only 5uA without LED and regulator. The RF95W only 1.5uA, the regulator I’ve chosen consumes only 1.6uA. So we come to 8.1uA. The resistors for voltage measurement also consume a bit and the BME280 too. So I expect 10uA equals 0.01mA.
If we take only the capacity of the battery and not the self-discharge, then the bill is easy:
3200mA / 0.01mAh = 320.000h = 36 years!!
I think everyone knows that’s unrealistic. The reason is the self-discharge. We do not recalculate for each month, but go from 100% absolute, so the battery will empty in about 2 years. As you can see, the electronics are very economical and efficient.
How can we counteract as self-discharge?
Right, by charging: >5% per month. That should not be a problem for a small solar cell. The built-in charger can operate from 4V to 7V, which is why I would always use a 6V solar cell. There are very cheap with 0.5W. The calculation will follow later on this blog, so subscribe 😉
As many certainly noticed, I only calculated the deep sleep. Of course that is not possible. Unfortunately, because I have no resistors in the desired sizes, so that I can perform a clean measurement with the oscilloscope, I simply tested. One node has sent 6 bytes per minute. SF7 in ABP. After 48h, the voltage dropped from 4.15V to 4.07V. This waste corresponds to about 2%. At this time, the node sent 3,000 times. A simple calculation lets me come to 150,000 times of sending, nice.
You quickly realize that the standby consumption is not the problem. The sending, as well as the self-discharge is much more important.
If we want to measure the temperature every 3 hours, we get 8 per day. If we divide the theoretical 150,000 by 8 per day, we get 50 years. As we saw in the beginning, we come to 36 years of standby. So both no problem. But self-discharge. Two years are already very good, but for me not good enough.
I have already recognized a few errors after ordering the boards. However, only minor ones.
The recording for the battery holder has unfortunately no Blanken contacts, so that the soldering is not possible. Scraping the paint is too messy, so I put a bit of cable from + and – the battery to the input of the TP4056 on the back. As a result, everything must be glued anyway, I see no problem.
Furthermore, I forgot to put a line of the RF95W to the Arduino. Reset to the D9 of the Arduino. In my previous tests I did not need a reset function of the radio. However, he always has power through the battery and this gives problems when rebooting the Arduino.
And a little mistake while labeling. The values for the resistors are wrong. I wrote 1M and 4k7, but it has to be 2M and 470K.
- correct mistakes
- Instead of a fixed slot for the battery holder, I will put at several points solder points, so that even small batteries can be glued
- I will enlarge the board slightly. A few millimeters per side. So I could not design a suitable 3D housing, where I could have screwed the board
- screw connection for possible daughter boards
- and whatever else comes to mind, or you!
You quickly realize that the only enemy is the self-discharge, especially while extreme temperatures. Therefore, it should be sufficient to install a small 6V solar cell, so that the battery always remains full, or you just replace the battery every 1-2 years. Alternatively, 3xAA(A) pack can be connected, but it has only 30% of that much mAh!
I think that is a very good basis for a lot of DIY projects. I ordered 30 of these boards and will also provide 20 of them for others to test. The cost of the PCB, shipping and a few beers would be incurred for you. I think at 8€ for a board and 5€ for each further it is fair for all 😉
If you like, make a comment, like, share and subscribe this blog 😉
I look forward to your impressions!
If you order through any of the following AliExpress links, I get about 8% commission 😉
AliExpress.com Product – Arduino Pro mini 3.3V
AliExpress.com Product – RFM95
AliExpress.com Product – 10pcs MCP1700T-3302 SOT-23
AliExpress.com Product – NCR18650B
AliExpress.com Product – TP4056 Charging Board
AliExpress.com Product – 100PCS Diode 1N4148
AliExpress.com Product – 100pcs 2M Ohm
AliExpress.com Product – 100PCS 1/4W 470K Ohm
AliExpress.com Product – BME280
AliExpress.com Product – 10Pcs 1.6mm SMA Female Jack
AliExpress.com Product – Battery Holder