High Precision Analog IO With Digital Pins

Reading the temperature of your environment is pretty easy right? A quick search suggests the utterly ubiquitous DHT11, which speaks a well documented protocol and has libraries for every conceivable microcontroller and platform. Plug that into your Arduino and boom, temperature (and humidity!) readings. But the simple solution doesn’t hit every need, sometimes things need to get more esoteric.

The technique summarized by an image from Microchip Appnote AN685

For years we’ve been watching [Edward]’s heroic efforts to build accessible underwater sensing hardware. When we last heard from him he was working on improving the accuracy of his Arduino’s measurements of the humble NTC thermistor. Now the goal is the same but he has an even more surprising plan, throw the ADC out entirely and sample an analog thermistor using digital IO. It’s actually a pretty simple trick based on an intuitive observation, that microcontrollers are better at measuring time than voltage. 

The basic circuit

The circuit has a minimum of four components: a reference resistor, the thermistor, and a small capacitor with discharge resistor. To sense you configure a timer to count, and an edge interrupt to capture the value in the timer when its input toggles. One sensing cycle consists of discharging the cap through the discharge resistor, enabling the timer and interrupt, then charging it through the value to measure. The value captured from the timer will be correlated to how long it took the cap to charge above the logic-high threshold when the interrupt triggers. By comparing the time to charge through the reference against the time to charge through the thermistor you can calculate their relative resistance. And by performing a few calibration cycles at different temperatures ([Edward] suggests at least 10 degrees apart) you can anchor the measurement system to real temperature.

For all the gory details, including tips for how to save every last joule of energy, check out [Edward]’s post and the Microchip appnote AN685 he references. Besides this series [Edward]’s Cave Pearl Project has already yielded an impressive number of Hackday posts. For more great hardware writeups check out a general hardware build for a single sensing node, or the “temperature sensor” [Edward] made with no external parts at all!

Low-Level Analog Measurement Hack Chat

Join us on Wednesday 17 July 2019 at noon Pacific for the Low-Level Analog Measurement Hack Chat with Chris Gammell!

A lot of electronics enthusiasts gravitate to the digital side of the hobby, at least at first. It’s understandable – an Arduino, a few jumpers, and a bit of code can accomplish a lot. But in the final analysis, digital circuits are just analog circuits with the mystery abstracted away, and understanding the analog side opens up a fascinating window on the world of electronics.

Chris Gammell is well-known around hacker circles thanks to his Amp Hour Podcast with Dave Jones, his KiCad tutorials, and his general hacker chops. He’s also got a thing for the analog world, and wants to share some of the tips and tricks he’s developed over his two decades as an electrical engineer. In the next Hack Chat, we’ll be joining Chris down in the weeds to learn the ins and outs of low-level analog measurements. Join us with your questions and insights, or just come along to peel back some of the mysteries of the analog world.

join-hack-chatOur Hack Chats are live community events in the Hackaday.io Hack Chat group messaging. This week we’ll be sitting down on Wednesday July 17 at 12:00 PM Pacific time. If time zones have got you down, we have a handy time zone converter.

Click that speech bubble to the right, and you’ll be taken directly to the Hack Chat group on Hackaday.io. You don’t have to wait until Wednesday; join whenever you want and you can see what the community is talking about.

ESP32 Video Tricks Hack Chat With Bitluni

Join us Wednesday at noon Pacific time for the ESP32 Video Tricks Hack Chat!

The projects that bitluni works on have made quite a few appearances on these pages over the last couple of years. Aside from what may or may not have been a street legal electric scooter, most of them have centered around making ESP32s do interesting tricks in the analog world. He’s leveraged the DACs on the chip to create an AM radio transmitter, turned an oscilloscope into a video monitor, and output composite video. That last one was handy for turning a Sony Watchman into a retro game console. He’s also found ways for the ESP32 to output VGA signals. Looks like there’s no end to what he can make the versatile microcontroller do.

Although the conversation could (and probably will) go anywhere, we’ll start with video tricks for the ESP32 and see where it goes from there. Possible topics include:

  • Tricks for pushing the ESP32 DACs to their limits;
  • When to use an external DAC;
  • Optimizing ESP32 code by running on separate cores; and
  • What about HDMI on the ESP32?

You are, of course, encouraged to add your own questions to the discussion. You can do that by leaving a comment on the ESP32 Video Tricks Hack Chat and we’ll put that in the queue for the Hack Chat discussion.

join-hack-chatOur Hack Chats are live community events on the Hackaday.io Hack Chat group messaging. This week we’ll be sitting down on Wednesday, March 27, at noon, Pacific time. If time zones have got you down, we have a handy time zone converter.

Click that speech bubble to the right, and you’ll be taken directly to the Hack Chat group on Hackaday.io. You don’t have to wait until Wednesday; join whenever you want and you can see what the community is talking about.

Simple Timer Evolves Into Custom Kid’s Watch

Sporting a new wristwatch to school for the first time is a great moment in a kid’s life. When it’s a custom digital-analog watch made by your dad, it’s another thing altogether.

As [Chris O’Riley] relates, the watch he built for his son [Vlad] started out as a simple timer for daily toothbrushing, a chore to which any busy lad pays short shrift unless given the proper incentive. That morphed into an idea for a general purpose analog timepiece with LEDs taking the place of hands. [Chris] decided that five-minute resolution was enough for a nine-year-old, which greatly reduced the number of LEDs needed. An ATtiny841 tells a 28-channel I2C driver which LEDs to light up, and an RTC chip keeps [Vlad] on schedule. The beautiful PCB lives inside a CNC machined aluminum case; we actually commented to [Chris] that the acrylic prototype looked great by itself, but [Vlad] wanted metal. The watch has no external buttons; rather, the slightly flexible polycarbonate crystal bears against a PCB-mounted pushbutton to control functions.

With a snappy wristband, [Vlad] will be rolling fancy on the schoolyard. It’s a great looking piece that needed a wide range of skills to execute, as all watches do. Check out some other watch builds, like this lovely pure analog, another digital-analog hybrid, or this pocket watch that packs an Enigma machine inside.

Continue reading “Simple Timer Evolves Into Custom Kid’s Watch”

FPGA Makes Digital Analog Computer

When you think of analog computing, it’s possible you don’t typically think of FPGAs. Sure, a few FPGAs will have specialized analog blocks, but usually they are digital devices. [Bruce Land] — a name well-known to Hackaday — has a post about building a digital differential analyzer using an FPGA and it is essentially an analog computer simulated on the digital fabric of an FPGA.

Whereas traditional analog computers use operational amplifiers to do mathematical integration, on the FPGA [Land] uses digital summers The devices simulate a system of differential equations, which can be nonlinear.

Continue reading “FPGA Makes Digital Analog Computer”

Continuous Computing The Analog Way

When your only tool is a hammer, everything starts to look like a nail. That’s an old saying and perhaps somewhat obvious, but our tools do color our solutions and sometimes in very subtle ways. For example, using a computer causes our solutions to take a certain shape, especially related to numbers. A digital computer deals with numbers as integers and anything that isn’t is actually some representation with some limit. Sure, an IEEE floating point number has a wide range, but there’s still some discrete step between one and the next nearest that you can’t reduce. Even if you treat numbers as arbitrary text strings or fractions, the digital nature of computers will color your solution. But there are other ways to do computing, and they affect your outcome differently. That’s why [Bill Schweber’s] analog computation series caught our eye.

One great example of analog vs digital methods is reading an arbitrary analog quantity, say a voltage, a temperature, or a shaft position. In the digital domain, there’s some converter that has a certain number of bits. You can get that number of bits to something ridiculous, of course, but it isn’t easy. The fewer bits, the less you can understand the real-world quantity.

For example, you could consider a single comparator to be a one-bit analog to digital converter, but all you can tell then is if the number is above or below a certain value. A two-bit converter would let you break a 0-3V signal into 1V steps. But a cheap and simple potentiometer can divide a 0-3V signal into a virtually infinite number of smaller voltages. Sure there’s some physical limit to the pot, and we suppose at some level many physical values are quantized due to the physics, but those are infinitesimal compared to a dozen or so bits of a converter. On top of that, sampled signals are measured at discrete time points which changes certain things and leads to effects like aliasing, for example.

Continue reading “Continuous Computing The Analog Way”

Old Wattmeter Uses Magnetics To Do The Math

Measuring power transfer through a circuit seems a simple task. Measure the current and voltage, do a little math courtesy of [Joule] and [Ohm], and you’ve got your answer. But what if you want to design an instrument that does the math automatically? And what if you had to do this strictly electromechanically?

That’s the question [Shahriar] tackles in his teardown of an old lab-grade wattmeter. The video is somewhat of a departure for him, honestly; we’re used to seeing instruments come across his bench that would punch a seven-figure hole in one’s wallet if acquired new. These wattmeters are from Weston Instruments and are beautiful examples of sturdy, mid-century industrial design, and seem to have been in service until at least 2013. The heavy bakelite cases and sturdy binding posts for current and voltage inputs make it seem like the meters could laugh off a tumble to the floor.

But as [Shahriar] discovers upon teardown of a sacrificial meter, the electromechanical movement behind the instrument is quite delicate. The wattmeter uses a moving coil meter much like any other panel meter, but replaces the permanent magnet stator with a pair of coils. The voltage binding posts are connected to the fine wire of the moving coil through a series resistance, while the current is passed through the heavier windings of the stator coils. The two magnetic fields act together, multiplying the voltage by the current, and deflect a needle against a spring preload to indicate the power. It’s quite clever, and the inner workings are a joy to behold.

We just love looking inside old electronics, and moving coil meters especially. They’re great gadgets, and fun to repurpose, too.

Continue reading “Old Wattmeter Uses Magnetics To Do The Math”