An Epic Tale Of Thermistors: Tricks For Much Better Temperature Sensing

For years [Edward] has been building professional grade underwater sensing nodes at prices approachable for an interested individual without a government grant. An important component of these is temperature, and he has been on a quest to get the highest accuracy temperature readings from whatever parts hit that sweet optimum between cost and complexity. First there were traditional temperature sensor ICs, but after deploying numerous nodes [Edward] was running into the limit of their accuracy. Could he use clever code and circuitry to get better results? The short answer is yes, but the long answer is a many part series of posts starting in 2016 detailing [Edward]’s exploration to get there.

Orange is 12 bits, red is 24

The first step is a thermistor, a conceptually simple device: resistance varies with temperature (seriously, how much more simple can a sensor get?). You can measure them by tapping the center of a voltage divider the same way you’d measure any other resistance, but [Edward] had discarded this idea because the naive approach combined with his Arduino’s 10 bit ADC yielded resolution too poor to be worthwhile for his needs. But by using the right analog reference voltage and adjusting the voltage divider he could get a 20x improvement in resolution, down to 0.05°C in the relevant temperature range. This and more is the subject of the first post.

What comes next? Oversampling. Apparently fueled by a project featured on Hackaday back in 2015 [Edward] embarked on a journey to applying it to his thermistor problem. To quote [Edward] directly, to get “n extra bits of resolution, you need to read the ADC four to the power of n times”. Three bits gives about an order of magnitude better resolution. This effectively lets you resolve signals smaller than a single sample but only if there is some jitter in the signal you’re measuring. Reading the same analog line with no perturbation gives no benefit. The rest of the post deals with the process of artificially perturbing the signal, which turns out to be significantly complex, but the result is roughly 16 bit accuracy from a 10 bit ADC!

What’s the upside? High quality sensor readings from a few passives and a cheap Arduino. If that’s your jam check out this excellent series when designing your next sensing project!

A Multi-Layered Spin On Persistence Of Vision

By taking advantage of persistence in human vision, we can use modest bits of hardware to create an illusion of a far larger display. We’ve featured many POV projects here, but they are almost always an exploration in two dimensions. [Jamal-Ra-Davis] extends that into the third dimension with his Volumetric POV Display.

Having already built a 6x6x6 LED cube, [Jamal] wanted to make it bigger, but was not a fan of the amount of work it would take to grow the size of a three-dimensional array. To sidestep the exponential increase in effort required, he switched to using persistence of vision by spinning the light source and thereby multiplying its effect.

The current version has six arms stacked vertically, each of which presents eight individually addressable APA102 LEDs. When spinning, those 48 LEDs create a 3D display with an effective resolution of 60x8x6.

We saw an earlier iteration of this project a little over a year ago at Bay Area Maker Faire 2018. (A demo video from that evening can be found below.) It was set aside for a while but has now returned to active development as an entry to Hackaday Prize 2019. [Jamal-Ra-Davis] would like to evolve his prototype into something that can be sold as a kit, and all information has been made public so others can build upon this work.

We’ve seen two-dimensional spinning POV LED display in a toy top, and we’ve also seen some POV projects taking steps into the third dimension. We like where this trend is going.

Continue reading “A Multi-Layered Spin On Persistence Of Vision”

Use A Digital Key To Deter Lockpicking

Spending an hour or two around any consumer-level padlock or house deadbolt lock with a simple lockpicking kit will typically instill a good amount of panic and concern about security. While it’s true that any lock can be defeated, it’s almost comically easy to pick basic locks like this. So, if you’re looking for a level of security that can’t be defeated in two minutes with a tiny piece of metal, you might want to try something a little more advanced.

This project stemmed from an idea to use a YubiKey, a USB hardware token typically used for two-factor authentication, for physical locks instead. The prototype was built around an Arduino UNO, and all of the code and build instructions are available on the project’s site. The creator, [rprinz08], does not have one built inside of a secure enclosure so that would remain an exercise for the reader, but the proof-of-concept is interesting and certainly useful.

While digital keys like this can have their own set of problems (as all locks do), this would be a great solution for anyone needing to lock up anything where physical keys are a liability or a nuisance, where logging is important, or where many people need access to the same lock. The open source code and well-known platform make it easy for anyone to build, too.

The Arduboy, Ported To Desktop And Back Again

A neat little hacker project that’s flying off the workbenches recently is the Arduboy. This tiny game console looks like a miniaturized version of the O.G. Game Boy, but it is explicitly designed to be hacked. It’s basically an Arduino board with a display and a few buttons, anyway.

[rv6502] got their hands on an Arduboy and realized that while there were some 3D games, there was nothing that had filled polygons, or really anything resembling a modern 3D engine. This had to be rectified, and the result is pretty close to Star Fox on a microcontroller.

This project began with a simple test on the Arduboy to see if it would be even possible to render 3D objects at any reasonable speed. This test was just a rotating cube, and everything looked good. Then began a long process of figuring out how fast the engine could go, what kind of display would suit the OLED best, and how to interact in a 3D world with limited controls.

Considering this is a fairly significant engineering project, the fastest way to produce code isn’t to debug code on a microcontroller. This project demanded a native PC port, so all the testing could happen on the PC without having to program the Flash every time. That allowed [rv] to throw out the Arduino IDE and USB library; if you’re writing everything on a PC and only uploading a hex file to a microcontroller at the end, you simply don’t need it.

One of the significant advances of the graphics capability of the Arduboy comes from exploring the addressing modes of the OLED. By default, the display is in a ‘horizontal mode’ which works for 2D blitting, but not for rasterizing polygons. The ‘vertical addressing mode’, on the other hand, allows for a block of memory, 8 x 128 bytes, that maps directly to the display. Shove those bytes over, and there’s no math necessary to display an image.

This is, simply, one of the best software development builds we’ve seen. It’s full of clever tricks (like simply not doing math if you’ll never need the result) and stuffing animations into far fewer bytes than you would expect. You can check out the demo video below.

Continue reading “The Arduboy, Ported To Desktop And Back Again”

Lessons Learned From An Art Installation Build

Art installations are an interesting business, which more and more often tend to include electronic or mechanical aspects to their creation. Compared to more mainstream engineering, things in this space are often done quite a bit differently. [Jan Enning-Kleinejan] worked on an installation called Prendre la parole, and shared the lessons learned from the experience.

The installation consisted of a series of individual statues, each with an LED light fitted. Additionally, each statue was fitted with a module that was to play a sound when it detected visitors in proximity. Initial designs used mains power, however for this particular install battery power would be required.

Arduinos, USB power banks and ultrasonic rangefinders were all thrown into the mix to get the job done. DFplayer modules were used to run sound, and Grove System parts were used to enable everything to be hooked up quickly and easily. While this would be a strange choice for a production design, it is common for art projects to lean heavily on rapid prototyping tools. They enable inexperienced users to quickly and effectively whip up a project that works well and at low cost.

[Jan] does a great job of explaining some of the pitfalls faced in the project, as well as reporting that the installation functioned near-flawlessly for 6 months, running 8 hours a day. We love to see a good art piece around these parts, and we’ve likely got something to your tastes – whether you’re into harmonicas, fungus, or Markov chains.

Unique Clock Keeps Time The Fibonacci Way

You say your binary clock no longer has the obfuscation level needed to earn the proper nerd street cred? Feel like you need something a little more mathematically challenging to make sure only the cool kids can tell the time? Then this Fibonacci clock might be just the thing to build.

Granted, [TecnoProfesor]’s clock is a somewhat simplified version of an earlier version that was nigh impossible to decode. But with its color coding and [Piet Mondrian]-esque grids, it’s still satisfyingly difficult to get the time from a quick glance. The area of the blocks represents the Fibonacci sequence 1, 1, 2, 3, 5, and adding up which blocks are illuminated by the RGB LEDs behind the frosted front panel. That lets you tally up to 12 intervals; for the minutes and seconds, there are indicators for the powers multiples of 12 up to 48. Put it all together and you’ve got a unique and attractive graphical time display that’s sure to start interesting conversations when the mathematically disinclined try to use it. Check out the video below as the clock goes from 12:28:01 to 12:28:46. We think.

If this doesn’t scratch your itch for obfuscated clocks, we’ve got plenty of them. From random four-letter words to an analog digital clock to an epic epoch clock, we’ve got them all.

Continue reading “Unique Clock Keeps Time The Fibonacci Way”

Safely Measuring Single And Three-Phase Power

There are many reasons why one would want to measure voltage and current in a project, some applications requiring one to measure mains and even three-phase voltage to analyze the characteristics of a device under test, or in a production environment. This led [Michael Klopfer] at the University of California, Irvine along with a group of students to develop a fully isolated board to analyze both single and three-phase mains systems.

Each of these boards consists out of two sections: one is the high-voltage side, with the single phase board using the Analog Devices ADE7953 and the three-phase board the ADE9708. The other side is the low-voltage, isolated side to which the microcontroller or equivalent connects to using either SPI or I2C. Each board type comes in either SPI or I2C flavor.

Each board can be used to measure line voltage and current, and the Analog Devices IC calculates active, reactive, and apparent energy, as well as instantaneous RMS voltage and current. All of this data can then be read out using the provided software for the Arduino platform.

The goal of this project is to make it easy for anyone to reproduce their efforts, with board schematics (in Eagle format) and the aforementioned software libraries provided. Here it is somewhat unfortunate that the documentation can be somewhat incomplete, with basic information such as input and measurement ranges missing. Hopefully this will improve over the coming months as it does seem like a genuinely useful project for the community.

We’ve covered the work coming out of [Michael]’s lab before, including this great rundown on Lattice FPGAs. They’re doing machine vision, work on RISC-Vchips, and more. A stroll through the lab’s GitHub is worth your time.