The Pros and Cons of Microcontrollers for Boost Converters

It never fails — we post a somewhat simple project using a microcontroller and someone points out that it could have been accomplished better with a 555 timer or discrete transistors or even a couple of vacuum tubes. We welcome the critiques, of course; after all, thoughtful feedback is the point of the comment section. Sometimes the anti-Arduino crowd has a point, but as [Great Scott!] demonstrates with this microcontroller-less boost converter, other times it just makes sense to code your way out of a problem.

Built mainly as a comeback to naysayers on his original boost-converter circuit, which relied on an ATtiny85, [Great Scott!] had to go to considerable lengths to recreate what he did with ease using a microcontroller. He started with a quick demo using a MOSFET driver and a PWM signal from a function generator, which does the job of boosting the voltage, but lacks the feedback needed to control for varying loads.

Ironically relying on a block diagram for a commercial boost controller chip, which is probably the “right” tool for the job he put together the final circuit from a largish handful of components. Two op amps form the oscillator, another is used as a differential amp to monitor the output voltage, and the last one is a used as a comparator to create the PWM signal to control the MOSFET. It works, to be sure, but at the cost of a lot of effort, expense, and perf board real estate. What’s worse, there’s no simple path to adding functionality, like there would be for a microcontroller-based design.

Of course there are circuits where microcontrollers make no sense, but [Great Scott!] makes a good case for boost converters not being one of them if you insist on DIYing. If you’re behind on the basics of DC-DC converters, fear not — we’ve covered that before.

Continue reading “The Pros and Cons of Microcontrollers for Boost Converters”

Optocouplers: Defending Your Microcontroller, MIDI, and a Hot Tip for Speed

Deep in the heart of your latest project lies a little silicon brain. Much like the brain inside your own bone-plated noggin, your microcontroller needs protection from the outside world from time to time. When it comes to isolating your microcontroller’s sensitive little pins from high voltages, ground loops, or general noise, nothing beats an optocoupler. And while simple on-off control of a device through an optocoupler can be as simple as hooking up an LED, they are not perfect digital devices.

But first a step back. What is an optocoupler anyway? The prototype is an LED and a light-sensitive transistor stuck together in a lightproof case. But there are many choices for the receiver side: photodiodes, BJT phototransistors, MOSFETs, photo-triacs, photo-Darlingtons, and more.

So while implementation details vary, the crux is that your microcontroller turns on an LED, and it’s the light from that LED that activates the other side of the circuit. The only connection between the LED side and the transistor side is non-electrical — light across a small gap — and that provides the rock-solid, one-way isolation.

Continue reading “Optocouplers: Defending Your Microcontroller, MIDI, and a Hot Tip for Speed”

Morse Code Blinking Jewelry

With the size of electronic parts and batteries these days, very small items are obviously becoming more and more viable. [Yann Guidon] has made some awesome pieces of LED jewelry using a minimal number of surface mount parts and a small lithium-ion battery. To make the jewelry stand out a bit, other than just blinking on and off, these LEDs blink a short message in Morse code.

This is an update and open sourcing of some work that [Yann] did a few years ago, and the iterations have resulted in a smaller design. But the main part of the latest version is the addition of the Morse code blinking using a small microcontroller. The microcontroller [Yann] used is the SMD version of the PIC10F200, a small, 8 pin PIC microcontroller. This, a resistor and a metal clip are soldered to pads on a Luxeon Star LED.  The LEDs are undervolted so they’re not too bright, so the heat sink isn’t really needed, but it’s a good size for the components. Because the LEDs don’t generation much heat, the back of the aluminum frame that the LED is on is carved out a bit so that the small lithium-ion battery can go there.

The final component is the code itself, and [Yann] has released it as an assembly file. An associated text file contains the text of the message that you want the earrings to blink. The text file can contain up to 190 bytes. A shell script converts the text to a file that can be included in the asm file. After that script is run, assemble the code and flash it to the PIC and you’re done!

We’ve seen a couple of other LED jewelry projects done, including this LED engagement ring, and these tiny light-up earrings. You can see video of [Yann]’s project in the video below:
Continue reading “Morse Code Blinking Jewelry”

Teardown: LED Bulb Yields Tiny UPS

Occasionally you run across a product that you just know is simply too good to be true. You might not know why, but you’ve got a hunch that what the bombastic phrasing on the package is telling you just doesn’t quite align with reality. That’s the feeling I got recently when I spotted the “LED intellibulb Battery Backup” bulb by Feit Electric. For around $12 USD at Home Depot, the box promises the purchaser will “Never be in the dark again”, and that the bulb will continue to work normally for up to 3.5 hours when the power is out. If I could repurpose that to make a tiny UPS for a microcontroller project of my own, it could be even more useful.

Now an LED light bulb with a battery in the base isn’t exactly rocket science, we can understand the product conceptually at a glance. But as they say, the devil is in the details. The box claims the bulb consumes 8.5 watts, but a battery with enough capacity to run such a load for 3.5 hours would be far too large to fit inside of a light bulb. Obviously there’s more to the story.

On the side of the box, in the smallest font used on the whole package, we get our clue. The bulb drops down to 200 lumens when in battery backup mode, or roughly as bright as a cheap LED flashlight. Now things are starting to come together. Without even opening the device, we can be fairly sure it will contain two separate arrays of LEDs: one low set for battery, and a brighter set to run when the bulb has AC power.

Still, I tend to be of the opinion that anything less than $20 or so is worth cracking open to see what makes it tick. Even if the product itself is underwhelming, there’s a chance the internal components could be useful or interesting. With that in mind, let’s see what’s inside a battery backup light bulb, and what we might be able to do with it.

Continue reading “Teardown: LED Bulb Yields Tiny UPS”

Two-Cent Temperature Sensors

When they need to add temperature control to a project, many hackers reach for a K-type thermocouple for their high-temperature needs, or an integrated temperature-sensing IC when it doesn’t get that hot. The thermocouple relies on very small currents and extremely high gain, and you pretty much need a dedicated IC to read it, which can be expensive. The ICs aren’t as expensive, but they’re basically limited to boiling water. What do you do if you want to control a reflow oven?

There’s a cheaper way that spans a range between Antarctic winter and molten solder, and you’ve probably already got the parts on your shelf. Even if you don’t, it’s only going to run you an extra two cents, assuming that you’ve already got a microcontroller with an ADC in your project. The BOM: a plain-vanilla diode and a resistor.

I’ve been using diodes as temperature sensors in three projects over the last year: one is a coffee roaster that brings the beans up to 220 °C in hot air, another is a reflow hotplate that tops out around 210 °C, and the third is a toner-transfer iron that holds a very stable 130 °C. In all of these cases, I don’t really care about the actual numerical value of the temperature — all that matters is reproducibility — so I never bothered to calibrate anything. I thought I’d do it right for Hackaday, and try to push the humble diode to its limits for science.

What resulted was a PCB fire, test circuits desoldering themselves above 190 °C, temperature probes coming loose, and finally a broken ramekin and 200 °C peanut oil all over my desk. Fun times! On the other hand, I managed to get out enough data to calibrate some diodes, and the results are fantastic. The circuits under test included both best practices and the easiest thing that could possibly work, and the results are pretty close. This is definitely a technique that you want to have under your belt for most temperature ranges. The devil is in the details, of course, so read on!

Continue reading “Two-Cent Temperature Sensors”

Baremetal Rust On the Horizon

Rust Programming Langauge has grown by leaps and bounds since it was announced in 2010 by Mozilla. It has since become a very popular language owing to features such as memory safety and its ownership system. And now, news has arrived of an Embedded Devices Working Group for Rust aiming at improving support for microcontrollers.

Rust is quite similar to C++ in terms of syntax, however Rust does not allow for null or dangling pointers which makes for more reliable code in the hands of a newbie. With this new initiative, embedded development across different microcontroller architectures could see a more consistent and standardized experience which will result in code portability out of the box. The proposed improvements include IDE and CLI tools for development and setup code generation. There is also talk of RTOS implementations and protocol stack integration which would take community involvement to a whole new level.

This is something to be really excited about because Rust has the potential to be an alternative to C++ for embedded development as rust code runs with a very minimal runtime. Before Arduino many were afraid of the outcome of a simple piece of code but with rust, it would be possible to write memory-safe code without a significant performance hit. With a little community support, Rust could be a more efficient alternative. We have seen some Rust based efforts on ARM controllers and have covered the basics of Rust programming in the past if you want to get started. Good times ahead for hardware hackers.

Tiny Function Generator on the ATtiny85, Complete with OLED

It’s easy to have a soft spot for “mini” yet perfectly functional versions of electronic workbench tools, like [David Johnson-Davies]’s Tiny Function Generator which uses an ATtiny85 to generate different waveforms at up to 5 kHz. It’s complete with a small OLED display to show the waveform and frequency selected. One of the reasons projects like this are great is not only because they tend to show off some software, but because they are great examples of the kind of fantastic possibilities that are open to anyone who wants to develop an idea. For example, it wasn’t all that long ago that OLEDs were exotic beasts. Today, they’re available off the shelf with simple interfaces and sample code.

The Tiny Function Generator uses a method called DDS (Direct Digital Synthesis) on an ATtiny85 microcontroller, which [David] wrote up in an earlier post of his about waveform generation on an ATtiny85. With a few extra components like a rotary encoder and OLED display, the Tiny Function Generator fits on a small breadboard. He goes into detail regarding the waveform generation as well as making big text on the small OLED and reading the rotary encoder reliably. His schematic and source code are both available from his site.

Small but functional microcontroller-based electronic equipment are nifty projects, and other examples include the xprotolab and the AVR-based Transistor Tester (which as a project has evolved into a general purpose part identifier.)