Friday, 29 April 2016

remote AIS receiver/repater - part 3 - power management


[prev]     [first]     [next]
TL;DR
* 10W 12V solar panel
* 2x18650 LiPo
LT3652  based Solar LiPo charge contoller
* Teensy 3.1 microcontroller for power management.


I want about 5 days of solar redundancy to allow for Highlands weather.

Instead of having a transparent serial link whereby all AIS sentences are just packetised and transmitted over the LoRa, we waste a lot of energy on partially-full LoRa packets, redundant AIS sentences and possible brownout at night. We want to be able to control the LoRa radio state too by using sleep mode to minimise current draw (we don't need it to receive any messages over LoRa just yet)

If we control the LoRa transmissions and AIS reception with a microcontroller, we can optimise power usage by pre-filtering sentences and packaging up several AIS sentences in on LoRa data frame (max 258bytes - could get perhaps 3 AIS sentences in one LoRa packet ). We can also monitor the power and switch off the AIS receiver when the battery is low or rate limit packets as the input current allows. There is a tradeoff between the extra draw of a microcontroller and that saved by optimising packets. We don't have to receive any information back through the LoRa link (unless we want to at a later date), so we can put it to sleep outside transmissions.

I have a few Teensy 3.1 controllers knocking around which are more than overkill for the job,but they seem suitable because
* 3.3v power possible for low current
* underclock easy for low current
* Snooze library good for low power mode
* good HW serial support for buffering AIS sentences
* good number crunching abilities should we wish to add AIS decoding/prefiltering

Some fag packet calculations. I have made up some assumptions on AIS packet data rates. The LoRa parameters are critical for power consumption - different coding rates, spreading factors etc all vary the packet transmission duration significantly, so I have just made a guess here based on some mid-range figures from the Semtech LoRa calculator

Device On state Sleep State
LoRa 130 2 mA
Teensy 20 1 mA
Ais 20 mA
Teensy duty cycle 0.75
time per sentence 0.15 s
sentences per min 120
sentences per hour 7200
tx time per hour 1080 s
calculated lora duty cycle 0.3
LoRa mean current over 1 hour 40.4 mA
Average total current draw over 1 hour 75.4 mA
energy used in 1 day 1809.6 mAh
battery capacity 5500 mAh
battery duration (no solar input) 136.1 hours
5.67days
solar panel Current @Pmax 550 mA
sunshine per day 4 hours
solar input per day
2200 mAh
time to full charge @ max flux 10 hours



I happened to have a 12V 10W solar panel going spare, so used this. I have a stash of 18650 cells too. Two in parallel give me 5500mAh.

The solar charge controller - I would have liked this from Adafruit  https://www.adafruit.com/products/390 but it is not available locally and only handles a 6V panel

but it didn't handle the 12V (20V open circuit) from my existing solar panel, so I chose one based on the LT3652 charge controller chip

https://www.sparkfun.com/products/12885

out of the box it required a bit of tinkering to get going. The board is set for a 4 hour timer using a 1uf cap on pin 6 of the LT3652 . I bypassed this to allow full current to the board (connected in parallel with the battery) when the sun is shining. Battery charge is then current - rather than time - limited.
There are options on the board for current sense resistors, which I could use to rate-limit the AIS backhaul based on available current should I so desire at a later date



No comments:

Post a Comment