My Slim 2AA Battery Node
-
Hello m26872,
your project is great, and i will order tomorrow a set of PCBs.
I've done a breadboard setup with the SI7021 according to your schematic and your sketch, which works flawlessly.
(ATmega328P / SI7021 / NRF24L01 / 2xAA Battery / your 1Mhz bootloader / your Fuse Settings)Unfortunately I do not get the current consumption below 2mA.
What to do to get the power consumption below 10uA and to increase the battery life on a couple of years ?
Any help is appreciated...@sensorchecker A power consumption of 2mA is way out of range. Is your sensor entering sleep? Or an ftdi adapter still connected?
-
No FTDI Adapter, no LED and nothing else is connected.
I build the node like the schematic in the first post.
When i start the sensor node, power consumption is about 16mA.
After a few seconds (4-5sec) the current goes down to 2mACan you please tell me, how to find out, that the node is in sleep mode
I have really no idea how to fix that.. but i have to, because i ordered the PCBs today!Thanks for your help
-
No FTDI Adapter, no LED and nothing else is connected.
I build the node like the schematic in the first post.
When i start the sensor node, power consumption is about 16mA.
After a few seconds (4-5sec) the current goes down to 2mACan you please tell me, how to find out, that the node is in sleep mode
I have really no idea how to fix that.. but i have to, because i ordered the PCBs today!Thanks for your help
@sensorchecker I think you should start with a simple example like the "reed switch sensor" and by looking at the other sketches you should be able to add some debug prints yourself. You only need a high ohm resitor 1M-10M and two pieces of wire to simulate a button or switch.
-
can i run it on 5V without any problem.
For the RF433 interface i need 5V so i would like to make one that is powerd by an usb charger.
-
@m26872
I have already tested the "reed switch sensor" and it works fine for me- but with a power consumption of 2mA ...:-(
Is it possible that i have a problem with the bootloader or the fuses ?
How can i check that ?
Usually i use USBASP and avrdude for programming the processors on breadboards.
Is it also possible to do the whole programming with the arduino IDE ? -
@m26872
I have already tested the "reed switch sensor" and it works fine for me- but with a power consumption of 2mA ...:-(
Is it possible that i have a problem with the bootloader or the fuses ?
How can i check that ?
Usually i use USBASP and avrdude for programming the processors on breadboards.
Is it also possible to do the whole programming with the arduino IDE ?@sensorchecker did you try changing your nrf ?
-
@sensorchecker and @m26872 changing the NRF module did work for me as well.
I was struggling a lot getting the power consumption down using all the trick and tips as described on the mysensors forum but nothing worked for by battery powered nodes (i have a couple these ).
I was not able to bring the power consumption down below 2.4 mA (with the NFR mounted) finally i just, for an differnt experiment, i took a "fresh"NRF and just for the fun i measured the current and it was down to 0.05 mA for no reason. They came from the same batch.
My theory now is that i broke the first radio module during programming of the node, although the FTDI serial module is in 3.3v mode it still measures around 4.5 volt. So the voltage might has damaged my NRF radio a bit (it still communicates).
-
@ahmedadelhosni and @BartE and @m26872 you made my day...!
Changing the NRF module was the solution, now my power consumption is about 8uA.
Now waiting for the PCBs and parts to build 10- 15 nodesThank you so much for your help
-
There is no crystal?
I haven't used Atmega328P as standalone but I have read that you need a crystal.
@flopp There's an internal 8MHz xtal in the uC. Infact often default set to be used by factory "fuse" settings. It's not as ambient condition stable and accurate as an external crystal, but quite good enough for our application.
-
@flopp There's an internal 8MHz xtal in the uC. Infact often default set to be used by factory "fuse" settings. It's not as ambient condition stable and accurate as an external crystal, but quite good enough for our application.
-
What about these pF caps, why not use SMD tantalum instead of Solid electrolyte with legs?
Or can I use ATmega without caps, since I dont have an external crystal?
@flopp I doubt there are any electrolytes in the pF range seen here. If you mean the pF caps in the example pictures, they are not part of the Slim Node base concept and just a random choice I did for myself. If you mean all the 100nF caps in the base concept, it's a matter of the "smd free" design criteria I apply from time to time.
-
What about these pF caps, why not use SMD tantalum instead of Solid electrolyte with legs?
Or can I use ATmega without caps, since I dont have an external crystal?
-
@flopp I doubt there are any electrolytes in the pF range seen here. If you mean the pF caps in the example pictures, they are not part of the Slim Node base concept and just a random choice I did for myself. If you mean all the 100nF caps in the base concept, it's a matter of the "smd free" design criteria I apply from time to time.
@m26872 said:
@flopp I doubt there are any electrolytes in the pF range seen here. If you mean the pF caps in the example pictures, they are not part of the Slim Node base concept and just a random choice I did for myself. If you mean all the 100nF caps in the base concept, it's a matter of the "smd free" design criteria I apply from time to time.
OK. Yes, I saw that there was cap in pictures.
-
@flopp ... or if you refer to the standard pair of 22pF caps used when there is an external crystal - no, you wont need them.
-
Hi together,
as first i have to say, its a nice node, that you build.
So i tried to build one. I ordered an atmega 328p. Flashed the bootloader from the forum. This is the boards.txt:atmega328_1mhz_4800baud.name=ATmega328 on a breadboard 1MHz internal clock, fast start, 1.8V BOD, 4800baud upload atmega328_1mhz_4800baud.upload.protocol=arduino atmega328_1mhz_4800baud.upload.maximum_size=32256 atmega328_1mhz_4800baud.upload.speed=4800 atmega328_1mhz_4800baud.bootloader.low_fuses=0x42 atmega328_1mhz_4800baud.bootloader.high_fuses=0xDE atmega328_1mhz_4800baud.bootloader.extended_fuses=0x06 atmega328_1mhz_4800baud.bootloader.file=atmega/atmega328_1b.hex atmega328_1mhz_4800baud.bootloader.unlock_bits=0x3F atmega328_1mhz_4800baud.bootloader.lock_bits=0x2F atmega328_1mhz_4800baud.build.mcu=atmega328p atmega328_1mhz_4800baud.build.f_cpu=1000000L atmega328_1mhz_4800baud.build.core=arduino:arduino atmega328_1mhz_4800baud.build.variant=arduino:standard atmega328_1mhz_4800baud.bootloader.tool=arduino:avrdude atmega328_1mhz_4800baud.upload.tool=arduino:avrdudeNow i have measured the current draw, and the arduino alone draws 6.8mA (without crystal, nrf ...)
I tried some sketches, (binaryswitchsleepsensor) but the current is not really gone down.
The only sketch is this:// **** INCLUDES ***** #include "LowPower.h" void setup() { // No setup is required for this library } void loop() { // Enter power down state for 8 s with ADC and BOD module disabled LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF); // Do something here // Example: Read sensor, data logging, data transmission. }With this sketch is the current 0.02mA
OK, 0.02mA is not bad, but when i read that some of you have few µa, i dont understand why the current on my atmega is so "high"
Can somebody tell me what bootloader is good, wich fuses are good. And maybe what i have to do to get the current so small as possble
Thank you very much
Greets Eddie -
Hi together,
as first i have to say, its a nice node, that you build.
So i tried to build one. I ordered an atmega 328p. Flashed the bootloader from the forum. This is the boards.txt:atmega328_1mhz_4800baud.name=ATmega328 on a breadboard 1MHz internal clock, fast start, 1.8V BOD, 4800baud upload atmega328_1mhz_4800baud.upload.protocol=arduino atmega328_1mhz_4800baud.upload.maximum_size=32256 atmega328_1mhz_4800baud.upload.speed=4800 atmega328_1mhz_4800baud.bootloader.low_fuses=0x42 atmega328_1mhz_4800baud.bootloader.high_fuses=0xDE atmega328_1mhz_4800baud.bootloader.extended_fuses=0x06 atmega328_1mhz_4800baud.bootloader.file=atmega/atmega328_1b.hex atmega328_1mhz_4800baud.bootloader.unlock_bits=0x3F atmega328_1mhz_4800baud.bootloader.lock_bits=0x2F atmega328_1mhz_4800baud.build.mcu=atmega328p atmega328_1mhz_4800baud.build.f_cpu=1000000L atmega328_1mhz_4800baud.build.core=arduino:arduino atmega328_1mhz_4800baud.build.variant=arduino:standard atmega328_1mhz_4800baud.bootloader.tool=arduino:avrdude atmega328_1mhz_4800baud.upload.tool=arduino:avrdudeNow i have measured the current draw, and the arduino alone draws 6.8mA (without crystal, nrf ...)
I tried some sketches, (binaryswitchsleepsensor) but the current is not really gone down.
The only sketch is this:// **** INCLUDES ***** #include "LowPower.h" void setup() { // No setup is required for this library } void loop() { // Enter power down state for 8 s with ADC and BOD module disabled LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF); // Do something here // Example: Read sensor, data logging, data transmission. }With this sketch is the current 0.02mA
OK, 0.02mA is not bad, but when i read that some of you have few µa, i dont understand why the current on my atmega is so "high"
Can somebody tell me what bootloader is good, wich fuses are good. And maybe what i have to do to get the current so small as possble
Thank you very much
Greets Eddie@meddie I don't really get what you've ruled out in your troubleshooting. Do you "test the arduino alone" using MySensors lib and example sketches? Using Lowpower lib directly works ok as it seems. Next step would be to connect the nRF24L01+ and run some MySensors lib example.
Ext fuses 0x07 (BOD disabled) instead of 0x06 (BOD 1.8V) could save you a few uA.