Adafruit Data Logger Shield Fails Above 12VDC on Vin

Adafruit Ethernet, Motor, Proto, Wave, Datalogger, GPS Shields - etc!

Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.
Locked
User avatar
whoneyc
 
Posts: 9
Joined: Fri Jan 11, 2019 12:49 pm

Adafruit Data Logger Shield Fails Above 12VDC on Vin

Post by whoneyc »

I could not necro this old locked post, so I am making a new thread.

This thread is more of a "comment box" to the lovely LadyAda and her minions. This also serves as a touchstone to help guide other users attempting to build dataloggers for the field.

Problem Background

I noticed independently that my devices which use the Adafruit Data Logger Shield fail at input voltages above 12V. Per the comment from @adafruit_support_bill in the thread linked at the top of this post, it may be due to the limitations of the LDO. He suggests that at high input voltages, the LDO is working too hard to dissipate excess energy as heat.

My Devices

The devices I am working with are 6 node devices powered by a solar station. The solar station is a 15W continuous power supply with 100Ah capacity across a pair of 12V batteries and a 60W solar panel. Each node is an Arduino Uno, Data Logger Shield, custom sensor package, and air pump. Each node is pulling a peak of ~0.6A when everything is powered on. This means that the devices can run all night without issue during sunny periods. The solar unit is programmed to automatically shut down below a threshold voltage on consecutively cloudy days (I think it is Vbatt = 11.5V, but my memory is hazy on the precise value). The nodes are powered through the Vin pin through parallel connection to a fat power cable. For the purposes of heat dissipation, it is worth mentioning that the network is deployed in an Oklahoma summer with peak temperature measured by the instruments at ~50C/122F.

Prototyping

I prototyped the nodes at my the desk level using the USB in and 12V benchtop supply. The devices function correctly with both power inputs. This is noteworthy because it rules out wiring problems when powered by 12V at Vin.

Observations at Deployment

When I have checked on my sensors at the field site, I measured the battery voltage and voltage supplied to each instrument. The battery voltage ranged from 12.28V-14.24V based on hand measurement when I was at the site. This is biased for sunny days (who goes and pokes at electronics in the rain?). I had assumed that the devices were functioning correctly. However, when I look at the data, I see I am incorrect.

Image

In this figure, the red and blue points labeled as "Canyon" are the Adafruit Data Logger Shield nodes, while the "Roof" points are other equipment. Notice that the only times the nodes are active is during the two spurts near periods of low temperature. When I correlate these times to local weather data, it becomes apparent that these dates closely follow cold fronts moving through the region.

Why does this matter? Cold fronts bring clouds. Clouds reduce solar flux. Reduced solar flux reduces battery charge. Reduced battery charge (on this system) reduces the voltage supplied to devices. Simply: I have demonstrated that the devices only function during periods of lower voltage than the normal "battery full" charge of ~13V.

What Needs to Happen?
  1. I need to buy a 12V-9V Buck from Amazon to correct the problem. It's an easy hack fix, but it's a shame that no one sells them locally.
  2. The Adafruit team should update the learn.adafruit page for the Data Logging Shield. There are now at least n=2 users who wrongly assumed that the Vin of a build using this shield could tolerate voltages higher than 12V based on the 20V tolerance of the Arduino Vin. I'm a bit miffed that I lost a few weeks of prime data collection due to a problem that might have not occurred with more documentation.
  3. Consider a different LDO on future versions of this or similar boards.

User avatar
adafruit_support_bill
 
Posts: 88093
Joined: Sat Feb 07, 2009 10:11 am

Re: Adafruit Data Logger Shield Fails Above 12VDC on Vin

Post by adafruit_support_bill »

There are now at least n=2 users who wrongly assumed that the Vin of a build using this shield could tolerate voltages higher than 12V based on the 20V tolerance of the Arduino Vin
The problem is not with the shield. It is with the Arduino. The shield has no direct connection to VIN. The circuitry on the shield draws power from a 3.3v regulator which is in turn powered by the 5v regulator of the Arduino. It is the "20V tolerance of the Arduino Vin" rating that is unrealistic.

User avatar
whoneyc
 
Posts: 9
Joined: Fri Jan 11, 2019 12:49 pm

Re: Adafruit Data Logger Shield Fails Above 12VDC on Vin

Post by whoneyc »

Ok, this might impact my decision to go to 9V. That may not be enough. Let me walk you through my math:

The Uno clone I am running uses the AMS1117-5.0 LDO. Looking at the datasheet, we can see that the max temperature at the junction is 125C. The Arduino has plenty of copper to sink heat, so I will assume a 55C/W thermal resistance (R_th) based on Table 1 of the datasheet. Also from the datasheet, there are equations to calculate junction heat:

P_d = (Vin - Vout)(I_load)

T_j = T_a + P_d * R_th

Since I know that my peak temperature at the site (T_a) is about 50C, I can run some calculations. If I am only running an SD card write (max 0.1A) and the Arduino (I just measured max 0.05A), I can estimate the junction temperature. My latest battery supply voltage was 13.5V and the temperature today was 33C. I calculate the junction temperature to be 103C, below the 125C threshold. If I take a board out with just that simple program writing junk to an SD card, I should be able to power it under the same conditions as today, yes?

Here's where it impacts my 12V/9V Buck decision. If the hottest day at the site is 50C and my total load is 0.6A, I can calculate the max Vin based on the max T_j=125C. This means the max allowable Vin for my Arduino is 7.27V. Do I need to select a lower voltage to supply the Vin?

User avatar
adafruit_support_bill
 
Posts: 88093
Joined: Sat Feb 07, 2009 10:11 am

Re: Adafruit Data Logger Shield Fails Above 12VDC on Vin

Post by adafruit_support_bill »

The 100mA estimate for writing to the SD is not a continuous current draw. It only applies while actively writing a block to the card. Depending on your sample rate and how the code is written, the average current draw is probably much lower. That said, there is certainly no harm in using a conservative estimate. I've had plenty of experience with electronics misbehaving in the hot southwestern sun.

Linear regulators are inherently inefficient devices. A more efficient solution would be to bypass the on-board regulator entirely. You can use a 5v buck converter to supply regulated 5v power directly to your Arduino via the 5v pin - or the USB jack.

User avatar
whoneyc
 
Posts: 9
Joined: Fri Jan 11, 2019 12:49 pm

Re: Adafruit Data Logger Shield Fails Above 12VDC on Vin

Post by whoneyc »

Quick follow up:

I hooked up a 20A buck converter with heatsinks to my 12-13V battery output to step down the voltage to 8V. The nodes in my network started up immediately.
adafruit_support_bill wrote:The 100mA estimate for writing to the SD is not a continuous current draw. It only applies while actively writing a block to the card. Depending on your sample rate and how the code is written, the average current draw is probably much lower. That said, there is certainly no harm in using a conservative estimate.
Yes, my estimate was intended to be conservative. I want to ensure that I don't have to drive out to my field site unless I really need it. The 100mA card write max occurs at 1Hz in my system as a blocked call which includes high power to most other devices in the payload. I could program it to block SD write from the pump power, for example, but I'm not sure I care enough for this project.
adafruit_support_bill wrote:Linear regulators are inherently inefficient devices. A more efficient solution would be to bypass the on-board regulator entirely. You can use a 5v buck converter to supply regulated 5v power directly to your Arduino via the 5v pin - or the USB jack.
That would be an optimal solution, but it would involve enough soldering work that I would need to remove the units from the field. I can live with a drop-in solution that sacrifices power to heat loss with the 100Ah batteries. This method also means I don't need to tweak the PSU/Buck to reach exactly 5V for each unit, a big challenge when there are relatively long power lines connecting each device. I will keep this in mind for future attempts though.

User avatar
adafruit_support_bill
 
Posts: 88093
Joined: Sat Feb 07, 2009 10:11 am

Re: Adafruit Data Logger Shield Fails Above 12VDC on Vin

Post by adafruit_support_bill »

Thanks for the follow-up. Let us know how that works out over time.

Locked
Please be positive and constructive with your questions and comments.

Return to “Arduino Shields from Adafruit”