Posts with «arduino hacks» label

Arduino Cable Tracer Helps Diagnose Broken USB Cables

We’ve all found ourselves swimming amongst too many similar-looking USB cables over the years. Some have all the conductors and functionality, some are weird power-only oddballs, and some charge our phones quickly while others don’t. It’s a huge headache and one that [TechKiwiGadgets] hopes to solve with the Arduino Cable Tracer.

The tracer works with USB-A, Mini-USB, Micro-USB, and USB-C cables to determine whether connections are broken or not and also to identify wiring configurations. It’s built around the Arduino Mega 2560, which is ideal for providing a huge amount of GPIO pins that are perfect for such a purpose. Probing results are displayed upon the 2.8″ TFT LCD display that makes it easy to figure out which cables do what.

It’s a tidy build, and one that we could imagine would be very useful for getting a quick go/no-go status on any cables dug out of a junk box somewhere. Just remember to WIDLARIZE any bad cables you find so they never trouble you again. Video after the break.

Hack a Day 18 Jul 09:00

PNG Image Decoding Library Does it With Minimal RAM

Want to display a PNG file on a display attached to an Arduino or other microcontroller board? You’ll want to look at [Larry Bank]’s PNGdec, the Arduino-friendly PNG decoder library which makes it much easier to work with PNG files on your chosen microcontroller.

The PNG image format supports useful features like lossless compression, and was generally developed as an improved (and non-patented) alternative to GIF files. So far so great, but it turns out that decoding PNG files on a microcontroller is a challenge due to the limited amount of memory compared to desktop machines. When the PNG specification was developed in the 90s, computers easily had megabytes of memory to work with, but microcontrollers tend to have memory measured in kilobytes, and lack high-level memory management. [Larry]’s library addresses these issues.

PNGdec is self-contained and free from external dependencies, and also has some features to make converting pixel formats for different display types easy. It will run on any microcontroller that can spare at least 48 K of RAM, so if that sounds useful then check out the GitHub repository for code and examples.

We’ve seen [Larry]’s wonderful work before on optimizing GIF playback as well as rapid JPEG decoding, and these libraries have increasing relevance as hobbyists continue to see small LCD and OLED-based displays become ever more accessible and affordable.

[PNG logo: PNG Home Site]

DIY PECS Board Uses Pictures to Communicate

One way of communicating with autistic and non-verbal people is through the use of a Picture Exchange Communication System or PECS board, which they can use to point out what they need or want throughout the day. However, the commercial versions of these boards have their share of problems — they’re expensive, and they’re fairly rigid as far as the pictures go. [Alain Mauer] has created an open-source PECS board that is far more personalized, and has audio to boot.

The number one requisite here is sturdiness, as [Alain]’s son [Scott] has already smashed two smartphones and a tablet. [Alain] went with a laser-cut MDF enclosure that should last quite a while. Inside is an Arduino Pro Mini and a DF Player Mini that plays corresponding clips from a micro SD card whenever [Scott] presses a button on the 16-key copper foil capacitive keypad. This PECS board is smart, too — it will sound a turn-me-off reminder after a few minutes of inactivity, and issue audible low battery warnings.

So far, [Scott] is responding better to photographs of objects than to drawings. Watch him interact with the board after the break.

This is far from the first thing [Alain] has built to help [Scott]. Be sure to check out this Pi-based media player built to engage and not enrage.

Drink Water on Schedule or Else Flood Your Desk

How much water have you had to drink today? We would venture to guess that the answer is somewhere between ‘absolutely none’ and ‘not not nearly enough’. You can go ahead and blame poor work/life balance — that’s our plan, anyway — and just try to do better. All this working from home means the bathroom situation is now ideal, so why not drink as much water as you can?

But how? Well, you’re human, so you’ll need to make it as easy as possible to drink the water throughout the day. You could fill up one big jug and hoist it to your mouth all day long (or use a straw), but facing that amount of water all at once can be intimidating. The problem with using a regular-sized vessel is that you have to get up to refill it several times per day. When hyper-focus is winning the work/life tug-of-war, you can’t always just stop and go to the kitchen. What you need is an automatic water dispenser, and you need it right there on the desk.

[Javier Rengel]’s water pomodoro makes it as easy as setting your cup down in front of this machine and leaving it there between sips. As long as the IR sensor detects your cup, it will dispense water every hour. This means that if you don’t drink enough water throughout the day, you’re going to have it all over the desk at some point. [Javier] simply connected an Arduino UNO to a water pump and IR sensor pair and repurposed the milk dispenser from a coffee machine. Check it out in action after the break.

Of course, if you aren’t intimidated by the big jug approach, you could keep tabs on your intake with the right kind of straw.

The HackadayPrize2021 is Sponsored by:

Quick and Simple Morse Decoder

[Rostislav Persion] wrote a simple Morse Code decoder to run on his Arduino and display the text on an LCD shield. This is probably the simplest decoder possible, and thus its logic is pretty straightforward to follow. Simplicity comes at a price — changing the speed requires changing constants in the code. We would like to see this hooked up to a proper Morse code key, and see how fast [Rostislav] could drive it before it conks out.

In an earlier era of Morse code decoders, one tough part was dealing with the idiosyncrasies of each sender. Every operator’s style, or “fist”, has subtle variations in the timings of the dots, dashes, and the pauses between these elements, the letters, and the words. In fact, trained operators can recognize each other because of this, much like we can often recognize who is speaking on the phone just by hearing their voice. The other difficulty these decoders faced was detecting the signal in low signal-to-noise ratio environments — pulling the signal out of the noise.

A Morse decoder built today is more likely to be used to decode machine-generated signals, for example, debugging information or telemetry. This would more than likely be sent at fixed, known speeds over directly connected links with very high S/N ratios (a wire, perhaps). In these situations, a simple decoder like [Rostislav]’s is completely sufficient.

We wrote about a couple of Morse code algorithms back in 2014, the MorseDetector and the Magic Morse algorithm. While Morse code operators usually rank their skills by speed — the faster the better — this Morse code project for very low power transmitters turns that notion on its head by using speeds more suitably measured in minutes per word (77 MPW for that project). Have you used Morse code in any of your projects before? Let us know in the comments below.

Miata Sci-Fi Digital Dash

One of the hardest, but sometimes best, things you can do for a project is to walk away. [Jroobi] had spent hundreds of hours crafting the digital dash for his MX5 Miata (video, embedded below) and after spending far too long chasing down I2C bugs, he made the difficult decision to step away for a while. However, as of May 2021, [Jroobi] returned to the project and found a power supply was under-specified and was causing brownouts that resulted in crashes.

All in all, it’s an incredible work of engineering. Everything from the massive codebase that describes all the different states to the tasteful graphic design is masterfully done. The Star-Trek-inspired theme and attention to detail really show in the different modes on the tachometer. The dynamic soft RPM limit based on engine temperature is particularly ingenious.

Under the hood of this custom dash are two Ardunios running the show. The center media console offers more controls with a generous touch screen while the instrument cluster shows most of the data. They talk over I2C to each other and communicate with other parts in the car, such as the RGB cabin lighting and the TEIN electronic suspension dampeners. Fuel and temperature levels come in as voltage levels which can be read via an ADC. The gear position is calculated based on RPMs and speed given the wheel size and the transmission in the vehicle.

It is a phenomenal labor of love and if you’re inspired to further upgrade your Miata you might want to see how to put carbs on the engine or RGB light rings in the instruments.

Big Spinning Disk Makes a Small Color Video Display

Believe it or not, the Mickey Mouse clip used for this demonstration is actually in the public domain.

The earliest televisions used a spinning disk technology called the Nipkow disk, which is exactly what [Science ‘n’ Stuff] recreated with their Arduino-based mechanical color television (video link, also embedded below.) The device reads video and audio from an SD card, and displays the video using a precisely-timed RGB LED visible through a perforated spinning disk. The persistence of vision effect results in a video that is small, relative to the size of the disk, but perfectly watchable. A twist is that the video is in color!

A Nipkow disk is a fairly simple and electromechanical device that relies on timing; something a modern microcontroller and RGB LED is perfectly capable of delivering. In this device, the holes in the disk create 32 vertical scanlines with 96 “pixels” making up each of those lines. Spinning disk technology was always limited to being monochromatic, but in this implementation, each “pixel” is given its own unique color by adjusting the RGB LED accordingly.

The first video shows off the device and demonstrates it working; note that it may look like there are multiple little screens, but the center one can be thought of as the “true” display with the others essentially being artifacts due to light leakage. If you’re interested in the nuts and bolts of exactly how a Nipkow disk works, then the second video is what you’ll be more interested in, because it goes through all the details of exactly how everything functions.

Another neat thing about Nipkow disks is that image acquisition is really not much more complex than image display.

[via Arduino Blog]

 

Forget Smart Watch; Build a Smart Hat

Smart watches are pretty common today, but how many people do you know with a smart hat? [Oliver] built Wilson which he bills as “the IoT hat.” We wonder if the name was inspired by the Home Improvement character of the same name who only appeared as a hat above the fence line. You can see a video of the project, below.

The project is pretty straightforward for hardware. An LED strip, an Arduino, and a Bluetooth module. Oh. And a hat. The software, as you might expect, is a bit more complex. It allows you to display SMS messages to your hat.

As wearables go, your happiness with this project will depend on what’s important to you. If you want to read your text messages, you might like to stick with a watch since it is hard to see a hat while it is on your head. But if you want to show the world what’s on your mind — and your phone — this might be just the ticket.

Regardless of practicality, we thought it was a fun project and now that in person meetups are coming back, a great thing to wear at the next Supercon. It sure looks nicer than the heads up baseball cap, although you can read that one yourself. Oddly enough, most of the hat hacks we see involve baseball caps.

Arduino Nano Memory Upgrade with No Soldering

Ok, we’ll come clean. [Design Build Destroy] didn’t really add any memory to his Arduino Nano. But he did get about 1.5K more program space when compared to the stock setup. The trick? On some Nano boards and clones, the bootloader is set to use a large block of reserved memory, but Optiboot only requires a fraction of that reserved memory. By reprogramming the bootloader and changing the configuration fuses, you can reclaim that unused memory.

Of course, you can’t easily overwrite the bootloader and fuses over the serial port to prevent you from bricking your device. The video below shows how to connect another Arduino to do the programming. You could also use any dedicated AVR programmer you happen to have. Oddly, the Uno already uses Optiboot with the same processors, and is set correctly and the video shows the differences in the configuration between the two in their default state.

Of course, depending on where you get your Nano devices and their age, you may already have this set up at which point you won’t gain anything, but you should be able to easily tell if you need to go through the steps or not. The same trick will probably work with any older Arduino boards you have laying around if Optiboot supports them. What can you do with the extra memory? Maybe speech recognition?

Compact M&M Sorter Goes Anywhere

Let’s face it — eating different colored candy like M&Ms or Skittles is just a little more fun if you sort your pile by color first. The not-fun part is having to do it by hand. [Jackofalltrades_] decided to tackle this time-worn problem for engineering class because it’s awesome and it satisfies the project’s requirement for sensing, actuation, and autonomous sequencing. We’d venture to guess that it satisfies [Jackofalltrades_]’ need for chocolate, too.

Here’s how it works: one by one, M&Ms are selected, pulled into a dark chamber for color inspection, and then dispensed into the proper cubby based on the result. [Jackofalltrades_] lived up to their handle and built a color-detecting setup out of an RGB LED and light-dependent resistor. The RGB LED shines red, then, green, then blue at full brightness, and takes a voltage reading from the photocell to figure out the candy’s color. At the beginning, the machine needs one of each color to read in and store as references. Then it can sort the whole bag, comparing each M&M to the reference values and updating them with each new M&M to create a sort of rolling average.

We love the beautiful and compact design of this machine, which was built to maximize the 3D printer as one of the few available tools. The mechanical design is particularly elegant. It cleverly uses stepper-driven rotation and only needs one part to do most of the entire process of isolating each one, passing it into the darkness chamber for color inspection, and then dispensing it into the right section of the jar below. Be sure to check out the demo after the break.

Need a next-level sorter? Here’s one that locates and separates the holy grail of candy-coated chocolate — peanut M&Ms that didn’t get a peanut.