Why You Can’t Use Resistors as a Voltage Regulator

People, all the time, use a simple resistor-based voltage divider to change 5v into 3.3v. You see it all over the place. For instance, when you want to get your 5V Arduino to communicate with a 3.3V ESP8266 – you use two resistors (10K and 22K say) to drop the 5V of the Arduino down to the 3.3V the ESP8266 expects.

And that is all fine and dandy.

However I all to often come across people attempting to do the same thing to power a 3.3V device off 5V. After all, if you can use it for changing 5V into 3.3V for the signals, surely the same thing works for the 5V power to 3.3V, right? I mean, it’s the same 5V isn’t it?

Well, no. You can’t. Absolutely not. And it’s all because of the current.

Continue reading

Dangers of Counterfeit Power Supplies

SamPlugI thought I would take a look inside a power supply that I suspected was a counterfeit. See just what is going on with it.  This Samsung power supply was making strange things happen with my phone while it was plugged in. Yes, it charged the phone fine, but it made the touch screen go all screwy, and I suspected it was a rather noisy switcher in it. I had bought it from eBay for next to nothing, so I am expecting it to be somewhat nasty inside.

Guess what? I was right.

Continue reading

eBay Volt/Amp LED Meters

s-l1600I thought the other day I would grab a couple of these cheap little LED volt & amp meters modules you see on eBay. 30V, 10A, red and blue LED displays. Funky little things. I felt I should take a look at them and see just what they are, what they do, how you use them, etc.

Now of course, true to form, the details on eBay are very sketchy about how to use them. This is all it has to say on the page I bought mine from about the wiring:

Red line thin: power supply+
Black line thin: power supply –
Red line (thick): PW+, measuring terminal voltage input positive
Yellow line (thick): IN+, current input
Black line thick: COM, common measuring

And that is more than most. So at least it gives me a few clues as to what might be what.

So s-l16001these come with two plugin cables – a two-pin with very thin wires, and a big chunky 3-pin. The two-pin I assumed, quite rightly, to be the power supply “Red line thin” and “B
lack line thin” from the listing. So far so good. Slap those onto a battery pack and see what happens.

Bingo. We have light.

Just showing all 0 though so far, which is fair enough. Now to try and measure something. Simplest thing is to try and measure the voltage of the batteries it’s connected to. According to the list on the eBay sale page “Red line (thick)” is the “measuring terminal voltage input positive”.  So touch that on the + of the battery pack. Result! 5.57V. Not bad.

Now we need to try and measure some current. So, “Yellow line (thick)” is “IN+, current input”. Right. Bit vague. So I try connecting that to the + of the battery as well.

Bad idea. Out go the lights.

So it’s not that. Ok – plan B. I was assuming it would be a “high side” current sensor (which would have been very nice) but it seems not. Maybe it’s a low-side one then. Let’s try connecting the black wire to battery- along with the power’s black wire.

Looking better – the lights are still on, still showing 5.57V, and 0.00A. Now for the final test – connect my trusty Ikea LED desk lamp up to the battery + and the yellow wire, see what that does.

Oh look… 0.52A and illumination! By George, I do believe I’ve got it.

As a side note, my batteries ran out part way through that, and I have had to switch to my bench power supply. That has allowed me to see how accurate it is, of course. And the voltage is within 0.01V of what my power supply is telling me it’s giving, which is not bad. The current with nothing connected as a load is 0.023A (23mA) which is pretty acceptable too. And when the lamp is connected the power supply is telling me the whole lot is drawing 0.545A. So with 22mA for the display, subtract that from the 0.545, and you get 0.523A, which is pretty damn close to the 0.52A the display shows if you ask me.

So all in all I am actually pretty impressed by this little unit. Ideal for a quick-and-dirty volt/amp meter to monitor your Arduino’s current consumption and supply voltage. And dirt cheap.

So to clarify the wiring for you:

  • Thin red wire: Display power supply + (4.5 to 30VDC)
  • Thin black wire: Display power supply –
  • Thick red wire: Monitored voltage +
  • Thick black wire: Monitored voltage and current –
  • Thick Yellow Wire: GND connection to whatever you are powering.

VADisp

And needless to say, the two batteries can be one battery by linking the red wires together and the black wires together, which nine times out of ten is what you will want.

VADisp2

Measuring Arduino Internal Pull-up Resistors

The Arduino (and many other boards) have a very useful time-and-cost saving feature ideal for when you are working with buttons and switches – namely internal pull-up resistors on the GPIO pins which can be enabled / disabled at will in software. This means you don’t have to clutter your board up with pull-up resistors of your own for all the buttons and things, and also means they can be turned off and on to give your design much more flexibility. Continue reading

Making your boards unique on Linux

I don’t know about you, but I have a huge pile of different Arduino-like boards here. (I have so many because I need to test UECIDE with them – or that’s what I tell the “bank manager”). Many is the time I will have more than one of them plugged in to my computer. Often times I have programmed one of them with some code only to find it’s not worked – and why hasn’t it worked? Because I have had the wrong serial port selected in the IDE.

All the development boards fall into three categories, and those categories define what the name of the serial port is. On Linux that name isn’t fixed – they’re allocated on a first-come-first-served basis, and often at boot up the names of boards already attached change order. A bit of a pain. Continue reading

Fast, Efficient Data Storage on an Arduino

Logging data on an Arduino is very much a trivial every-day task. Connect an SD card, open a file, and start printing data to it.

For many people that is good enough. It results in nice easily readable (by us humans) data.

But it’s not fast. It’s not efficient. It’s perfectly fine for things like logging temperature every hour, or barometric pressure every 5 minutes, etc. But when you have large amounts of data to store very rapidly you have to think a little differently. Continue reading