23 March 2015

Breadboard power supply module destructive failure

If you have been shopping for DIY electronics lately, you have probably met the small board pictured here. It fits on the solderless breadboard and provides both 5V and 3.3V regulated output from a 6-12 Vdc input. My two specimens are marked "YwRobot Power MB V2 545043" and probably came from two online sources given that silkscreens look different.

/* If you are in a hurry, you can fast-forward to my conclusions right after the second picture. */

I used this one in my Arduino solar energy monitor and I noticed that AMS1117 regulators were getting pretty hot to touch. A Nano clone, an idle SD card adapter and an HD44780 display shouldn't drain that much current, and if they did they would be warm to touch too. [edit: the whole circuit draws about 50 mA except, I think, for those short moments it writes to the SD card once a minute.]

So I wanted to measure the input current, since that's the easiest point to insert an ammeter. I disconnected the positive lead from the 12 V PSU and inserted there my DVM ... the power adapter switched on but Arduino was behaving erratically. I did a power cycle and nothing happened anymore, no reassuring LEDs saying hello, not even on the YwRobot board.

The DVM internal fuse could have blown, so I restored the original 12 V positive lead and powered everything up.

Arduino LEDs were blinking awkwardly, or not blinking at all. Another wiring check confirmed that nothing had moved or shorted.

Just to be sure I measured if 5 V were still there and ... SURPRISE! I measured 12 V where I was expecting 5 V!

Since I was feeding 5 V directly to the Arduino board, it was fried (the FT232 USB-to-serial adapter survived, though!). The SD card adapter uses its own 3v3 regulator, so it was not damaged either.

I removed the power supply module and verified:
  • 5V output is now few hundred mV below input voltage, that's 12V or so
  • 3.3V output is not present anymore

What the heck is going on here? I decided to sacrifice my second power adapter module, that was equally heating up in my final application circuit.

This time I played it safer and removed the YwRobot adapter board from the solderless breadboard.

First of all, I wanted to know the idle current of the power adapter board alone. I removed it from the breadboard, added my DVM on the positive lead, fed 13V and the current drawn settled to ~20mA, which is fine according to AMS1117 datasheet (10 mA minimum load to keep regulating, and the board mounts two in series). After 5 seconds the board emitted the typical crackling sound of pine wood in the fireplace. And the unpleasant smell of burned electronics.

This time the DVM fuse didn't blow (10 A ;) ) and no other electronics were harmed.

The two broken adapters. Notice silkscreen differences... that don't make a difference!


Post-mortem analysis revealed that:
  • the AMS1117-5 (5V regulator) shows a resistance of 14 ohm between input and output pins
  • it passes through the input voltage
  • the first board's AMS1117-3.3 blew up, the second is still fine
I suspect that those YwRobot MB V2 boards go crazy if input lead lengths differ (I added about 100 cm of wire on the +V): both of them failed this way. What worries me is that failure breaks regulation and passes input voltage to the output pin instead of opening the circuit.

In both cases 220V AC to 12V DC was provided with a solid-state 5A PSU that mounts two 78M12 in parallel.

Curiously enough I find no mention elsewhere of this kind of failure. I do not own other YwRobot adapters and I do not plan to buy any more. Please let me know your thoughts in the comments.

22 March 2015

Sun illumination logger with Arduino - summing it up

The 2015/03/20 Solar eclipse is gone and it is time to summarize my short project about it.

It all started one day at work during lunch break, when a colleague expressed his worries for an electric blackout because of the eclipse and the large amount of photovoltaic sources in Europe suddenly reducing their production capacity during peak hour. That was about one month before the event.

I had a PV cellphone battery charger that laying around. Since its performance had not impressed me at all, the solar panel was donated to a new project: measure incident solar power during the Eclipse.

A very simple circuit was assembled, using Arduino A/D converter to measure the PV panel open loop output voltage once a minute.

PV output voltage without a load.
I was WRONG. The unloaded panel voltage is almost maximum even in full shade (about 6 V), but we all know that the available PV power is much less than in direct sunlight.
The 100x55 mm solar panel.
Curiously it reminds of 100mA x 5.5V.

So one sunny day I measured the short circuit current of the panel, a bit more than 100 mA. The Arduino A/D converter accepts 5 V max and a resistor is the simplest form of I/V converter.  This meant passing the current through a R = V / I = 5 / 0.1 = 50 ohm. Easy, but it dissipates P = V * I = 5 * 0.1 = 0.5 W. Heatsink required on the resistor.

A few firmware adjustments later I could finally get meaningful readings of the PV power coming out of my little panel. The graph clearly shows when the Sun rises on the panel (10 am or so), clouds passing by, sunset. 9 days left to the Eclipse for collecting samples

Few more days into the project and we got two rainy days. The available instant power drops from almost 500 mW to an amount variable between 1 and 50 mW. 6 days left to the Eclipse.

Then, worried by the heat produced in the 12-5 V voltage regulator, I wanted to measure the total input current. This operation fried both the regulator and the Arduino of my project. (This accident that I turned into an experiment will be described in another blog post.) The circuit had to be offline for a couple of days until I replaced the voltage regulator to the solderless breadboard.

The 3 days left to the eclipse were sunny and provided good readings. The only heat produced in the circuit was now in the I/V converter resistor. So far so good.

Finally the Eclipse day came. We were expecting about 70% coverage maximum at 10:30 am. This is how the sky looked like all day long:

Thick clouds and not even an idea of wind. The Sun is behind there, I know.


Back home at night I downloaded the logger data and produced the usual graph, ready for the total failure of the experiment:


The thicker yellow line laying on the X axis represents data collected on March 20th. Sun radiation was too weak to produce enough current for a side-by-side comparison with other days. But, wait a moment! Let's have a second look at the last graph. I can add a second Y-axis on the right, that has a different scale than left Y-axis. Ta-da!!


Almost magically the March 20th yellow line sparks to life. Power readings are not meaningful (and certainly not useful as an energy source), but the trend in between clouds is interesting. Look at the smooth dip in the morning, with a low at 10:30 am. Even if the sky was totally cloudy, the simple instrument could detect the whole eclipse. My eyes did notice it as well, but not so carefully.

So, after wrong type of measurement, hardware failures and cloudy days, how would you consider this experiment? Success or failure?

13 March 2015

Sun illumination logger with Arduino - 4 days worth of data

My photovoltaic data collection is still producing data. This is the comparison of four days:


Yesterday the sky was not 100% clear, so the green line is correctly lower. I wonder what happened at 12:30 that the produced energy has dropped to a very low level for about 10 minutes.


10 March 2015

Sun illumination logger with Arduino - take #2

Following my previous post I revised my circuit to measure the short-circuit current generated by my small panel. I will not take twin measurements of voltage and current.

First in full sunlight I measured an open-circuit voltage of 6.5 V and a short-circuit current of almost 105 mA on a 50 ohm load. That's more than 500 mWpk, free.

Once my circuit has been adjusted to allow reading a 5 V maximum value, I measured two consecutive sunny days.

First day is shown in blue. The steep increment at 11:00 occurred when direct sunlight hit the panel. Unfortunately I do not have a full E-S-W view of the sky.
On the second day the panel was moved a bit further out in the balcony so that it would reach full input exposition at 10:00 (red line). March 10th was a bit more cloudy than 9th.

I will continue to take readings every minute until the partial eclipse that will take place in 10 days. The plan is to keep the whole setup stable until then.

06 March 2015

Sun illumination logger with Arduino - first data

I let the Sun illumination logger run for one day. It was a success, since it worked notwithstanding the wind that could have carried away the small solar panel. Basically I read the voltage across the solar panel that had a 4k7 shunt resistor.

These are the samples in graphical form:


Something doesn't look right: the steep edge both at "sunrise" and "sunset" on the solar panel. It's too fast, especially at sunset when the voltage dropped in barely two minutes. I suspect there is some heavy non-linearity within the solar panel.

The new strategy now is to measure both open-circuit voltage and quasi-short-circuit current at each sample. This process involves some form of switching (relay or MOSFET) and two ADC readings. But first of all I must do these measurements by hand with known illumination conditions. Upcoming Sunday is a good candidate day.

04 March 2015

Sun illumination logger with Arduino - eclipse oriented

Last week I found out that a good part of Europe will see a Solar eclipse during the morning of March 20th, 2015. In my location the Sun will be covered at about 72%, peaking at 10:30 local time.

So, why not build something to measure and log the decrease in solar radiation? If any, of course!

Ingredients:
  • an Arduino board of your choice
  • an SD card adapter (and an SD card itself)
  • a solar panel (or other light-sensitive component)
Concept:
A solar panel produces an amount of current that is proportional to the incident light. With a shunt resistor that current is transformed into a voltage and measured by the Arduino analog-to-digital converter. Read data is saved to an SD card for further analysis.

To calibrate the I/V conversion the solar panel must be exposed to the maximum sunlight (~ Noon) with an orthogonal (90°) incident angle. Then the generated current is measured and an appropriate resistor is calculated so that a bit less than 5 Volts are produced.

That's it. Leave the acquisition system run for a few days in the chosen operating position (facing South or the Sun position at eclipse peak time, with enough tilt to achieve 90° angle of incidence.

An RTC (real-time clock) module would be advisable, so that each reading could be timestamped. Unfortunately I never bought one and nobody in my circles has a spare one to lend.

I need to calibrate the little solar panel. Then pictures and Arduino code will be posted (in due time before the Eclipse, in case you want to reproduce this experiment at home).

06 February 2015

Cheap assorted resistors kits: a *real* bargain?

Not long ago I bought a pack of assorted resistors: 56 values at 1% 1/4W, 20 pieces each. The item name was something like "1120Pz 1/4W 1% Metal Film Assorted Resistors kit Set 56 Values (1 ohm~10M ohm)".

The whole batch would be a good companion for building my BITX20, but I lost 15 minutes looking for the 120kR strip. I gave up and luckily I found one 120kR in my junk box, but what?

I went back to the item description and cross checked what I actually bought:

1R, 2.2R, 4.7R, 5.6R, 7.5R, 8.2R, 10R, 15R, 22R, 27R, 33R, 39R, 47R, 56R, 68R, 75R, 82R, 100R, 120R, 150R, 180R, 220R, 270R, 330R, 390R, 470R, 510R, 680R, 820R, 1K, 1.5K, 2.2K, 3K, 3.9K, 4.7K, 5.6K, 6,8K, 7.5K, 8.2K, 10K, 15K, 22K, 33K, 39K , 47K, 56K, 68K, 75K, 82K, 1M, 1.5M, 2M, 3.3M, 4.7M, 5.6M, 10M.
Look at the "hole" in the series: the whole 100k to 820k batch is missing!!

Sure enough those values can be combined by summing other resistors, but it is very inconvenient!

My mistake. I did not read all the values before shelling out 4 USD@2014. Probably other sets for sale do include the 100kR serie. Pay attention, so you will not end up with a lifelong supply of sub-10R and above-1MR resistors.