Full Arduino Mini LoraWAN below 1uA Sleep Mode

(Amedee) #242

The Adafruit breakboard for the TPL5110 has a trimpot. I find quite difficult to adjust it to get the required delay, at the end soldering a resistor is easier - at least more predictable…

The way the TPL5510 is used in this design is just to wake-up the AVR from deep sleep like you would do with an RTC; it does not cut the power. When in deep sleep the ATmega328P retains its state, so it is not a problem to loop on the sleep…

(Wijnand) #243

My iot_sandwiches: Left the fat_sandwich with the GY-GPS6MV2 module and powered with 2xAAA. Right the thin_sandwich with the BME280 and DS18B20, powered with a CR2032.


Both are using the TPS61291, TPL5111 and/or TPS22860 combination, Let’s consuming the whole system only 35nA (yes, nanoAmps, in sleep/dead mode).

A second version (same formfactor) with the BQ25570 harvester (for all kind of energy harvesting) is in the design fase.

See: ALF4all and IoT Usergroup DE.

(Sk Lora) #245

This board’s work on class C node?


of course not

(Sk Lora) #247

sorry, but I’m still new to LoRa subject, rfm95w accepts to work in c class mode, so would not it just be software modifications? or rfm95 does not accept class c? ignore the question of power and battery


this specific arduino mini with a ‘tuned’ bootloader works for lorawan class A.
TTN doesn’t offer class C (always ON nodes) at this moment, that changes when V3 is operational.

there are only a few class C modules/nodes available yet … this will change soon

(Wijnand) #249

First I thought, what class is supported, depends on the gateway and/or server. You can program your node/device in that way that it’s support all tree classes. But class C: “is many times more energy consuming than Class A devices”.

If you don’t use the DONE signal to the system-timer TPL5111 in my node/device, it stays always powered on and can handle class C. So “Of cource not” is not the case.


only partly through… the LoRaWAN stack IN the the device determs what classes.
this topic is about Charles CH2i design of a lowpower node… not your node/device

(Wijnand) #251

OK, stacks in devices are not always accessible to the user (could also be hardware and/or firmware), but is Charle’s consept also not build with the ATmega328P and RFM95W?

(Basse) #252

C2 seem to be out of stock @ digikey. Could someone kindly link a replacement, if there’s a viable option?


(Phang Moh) #253

That’s not the best possible decoupling capacitor. Can substitute with those of NP0, X7R or X5R ones that are better in terms of tolerance across operating temperature range which are plenty to choose from like these.

(Basse) #254


Back again with more stupid(?) questions…

  1. I have a bunch of NCR18650B panasonic batteries. I’m having a hard time understanding the datasheets and characteristic of these batteries, it says 3.6V “nominal voltage” but then theres a lot of talk about 4.2V everywhere? Will they be fine or toast the lorachip?
  2. Can I swap the BME280 for DS18B20?



fuly chardged they give 4.2 V (and could toast your 3V3 module)
to use a 3v3 module safely with a lipo you’l need a buck-boost converter.

(Tony Smith) #256

They are not directly interchangeable but both can be made to work. The BME280 connects via I2C and the DS18B20 is a 1-Wire technology. You will require different software libraries and the wiring to the pins will also change. I2C has 4 wires, +ve, 0V, Clock and Data with pull-up resistors on the Clock and Data lines. 1-Wire is a 3 wire system with a pull-up resistor on the data line.

(Basse) #257

Ok, I have been using both BME280 and DS18B20 on r-pi & nodemcu, but maybe the arduino isn’t as configurable as these two?

I was hoping one of the SDA/SCL pins could be used for 1-wire data line?

Is it possible to use one of the led-pins for the data wire? D5/D6/D9? (Of course then not using the led).
That would be even better, ultimate solution would be both BME280 + 1wire/DS18B20 at the same time, but then maybe the flash wont be enough for both libraries at the same time?

Just following this example, but changing pin 3 for 5,6 or 9?

(Indy465) #259

I noticed a BOD flag set to 1.8V. I don’t think the 328 can run safely at 1.8V and 8Mhz. At 1.8V it’s 4Mhz.

(Mat89) #260

BME280, DS18B20 and LMIC should fit an 328p.
Sketch uses 30402 bytes (98%) of program storage space. Maximum is 30720 bytes.

I’m using D9 of the arduino pro mini without any issues for the DS18B20 data line.

(LoRaTracker) #261

Yes, if left at BOD 2.7V, switching on and powering up some devices can trigger a processor brown out.

(Basse) #262

Hello again. I got stuck on the 5110.

Does anyone have a small example of just how to handle the sleep with 5110, I’m confused after reading code examples here. A lot of them seem to use “internal” watchdog with 8sec-stuff?

Question 1: Why does people use internal watchdog when we have the 5110?

Question 2:
I thought that the 5110 would completely shut down everything as in the adafruit example, but it seems like Hallard did it a bit different.
Why doesn’t we just cut the power entirely and wake up doing a full setup() + loop()? I don’t say its wrong, I’m just curious about the benefit doing it this way instead…

Question 3:
As I understand it I need to do something like:

  1. Setup: Tell arduino to wake up when signalled on A2
  2. End of loop: Signal 5110 done and tell arduino to sleep

Are you guys using this code? Or something like it?
I guess I need to modify the loop() to also signal 5110 done pin?

Sorry for the “basic” questions, but if you don’t ask, you don’t learn :slight_smile:

(LoRaTracker) #263

The internal watchdog is ‘internal’ to ATmega processors, its included, its free, needs no additional components.

If you remove the power from the ATmega, you loose all the varaibles and status. A processor woken from sleep can be running where it left off in a few mS, whereas with a fresh restart every time it can take 1.5 seconds or so of full running, more if you need to run through the join process again. This can use a lot of power.