Thanks, this is what I'm using as the panel. The voltaic solar panel just barely doesn't fit on the covers flat spot (~3 mm narrow). But I have a CNC router, when I cut the hole in the cover for the wires, I also "square off" 1.5 mm of the edges on each side to provide an entire flat mounting surface. The PCB is shaped with holes to fit right inside so quick/easy assembly.
Yeah, of course! I started with just 1 node for the last ~3 months using this solar panel/enclosure with a separate/non-integrated Solar charging circuit (bq24074) charging a single cell 18650 like lipo. My original board didn't accommodate solar charging so had to add this separate component for initial testing. I just got back some boards that integrate the similar solar charging circuitry in a custom PCB this last week and now testing/finalizing that design. I hope to be testing 3-5 of the fully integrated PCB in a sleepy mesh config in the next few days/week with this new PCB.
As it pertains to testing in general, I started playing with 10 - Adafruit RFM95 featherwings year 1. Then moved on to 50+ custom PCB LoRa nodes out “in the wild” this last spring. At that time none of them were “mesh” but rather hub/spoke model but did have a sleepy hub at the time and kept in sync. This typically was a LoRa node awake for 1-2 seconds every 300 seconds.
In my solar LoRa node that I'm testing now:
Sleeping ~160 uA - Adding PCB updates to allow deep sleep by turning all power off except the AB1805 RTC which is used to awake it up/end deep sleep. That should get me down to <10-20 uA sleeping current. Likely will only use that mode of sleeping for along duration (i.e. 2 hours+) since it takes more power when waking up.
Awake/Listening/Servicing the mesh/waiting for a response today: ~21 mA today but could likely reduce this to ~10 mA by entering sleep and use an interrupt to wake up the MCU when a Lora Message is received. I tested this, it's functional/working, I just didn't update my state machine yet yet. I.e. like this:
//Keep radio on when sleeping the MCU. Still wakes up with LoRa Msg Received ~10 mA
rf95.setModeRx();
LowPower.deepSleep(slpTimems);
//Can successfully wakes up from Sleep using interrupts
vs:
//Turn the radio off during this sleep mode. All messages ignored: ~160 uA
rf95.sleep();
LowPower.deepSleep(slpTimems);
I've also attempted CAD sleep but haven't been successful in getting it working:
//Set the LoRa radio into Channel Activity Detection mode. ~2 mA
rf95.setModeIdle();
rf95.isChannelActive();
LowPower.deepSleep(slpTimems);
//Haven't been able to figure out how to get it to wake up the MCU in this mode as CAD doesn't produce an interrupt
Here is what power consumption looks like today: (no to scale ). I think this matches up with the Adafruit Feather M0 stated power consumption as well Power Management | Adafruit Feather M0 Radio with LoRa Radio Module | Adafruit Learning System
Transmit: 130mA for ~100ms
I need to likely do a better job in calculating and keeping track of my power consumption and be a bit more scientific. However, similar to RF, I found real world field tests being much more telling than an excel sheet in how long the battery will last. It was hard to determine what actual power I'd get out of the Solar PanelSolar Power Calculator/Map. In my testing, I deliberately made it poor solar conditions (under a large tree almost all shade with the panel pointing north) so very little if any direct sunlight. In the ~3 month timeframe since I started the single 18650 battery is at about 90% charge remaining. In comparison, the non solar are just about dead right now. If I faced it south, I'd think it would keep it topped off/charged fully. That was with 5-8 nodes with a configuration using 3 seconds per node or total "awake time" being 24 seconds ~ 20 mA for a Sleeping Node that services the mesh with the remaining 276 seconds sleeping (~160 uA).
The awake time is the lions share of the power consumption for a LoRa node that services the mesh. This whole effort of wanting sub second RTC synronization would be instead of my 3 seconds I use today, what if I got it down to say 1.5 seconds. Can I cut my awake time in half. Or said differently, I am "marginal" at 10 Lora nodes as even with a solar panel it is slightly draining the battery, if I can cut the awake time in half, then I could double the number of Lora nodes that can be serviced.