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

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