Over the summer [ElectroSmash] put the finishing touches on the Arduino Audio Meter, a shield for the Arduino Uno that visualizes various aspects of an incoming audio signal on a set of four 8×8 LED dot matrices. Obsentisibly it’s for use on a guitar pedalboard, but thanks to the incredible documentation and collection of example code provided by the team, the project promises to be an excellent platform for all sorts of audio experimentation.
Incoming audio is amplified with an MCP6002 and fed into the Uno’s Analog to Digital Converter, where it’s processed via whatever Sketch the user has uploaded. User input is provided by a digital encoder with push-button. A set of four MAX7219 chips control the entire 256-pixel matrix with just three pins on the Arduino. The resolution of the display allows the Arduino Audio Meter to show more than just a simple VU meter, it can even do text and basic graphics.
[ElectroSmash] provides various Sketches for use with the Arduino Audio Meter that provide the expected repertoire of audio visualizations, but they also provide a number of interesting Sketches to expand the capabilities of the device in unexpected ways. Some of them could be useful for a stage musician, such a tool to tune your guitar, whereas others are fun uses of the hardware such as a game of “Snake”.
With the entire project released as open source, users are free to run wild with the Arduino Audio Meter. Writing your own custom software is an obvious first step to making the project your own, but adding additional hardware features and functions certainly aren’t out of the question either.
Our very own [Lewin Day] once walked us through the effort involved in building boutique guitar pedals, and while the Audio Audio Meter’s capabilities are somewhat limited as it doesn’t have the ability to change the audio going through it, we’re still interested in seeing what the community will come up with once they have an easy way to bring their ideas to life.
Continue reading “A Hard Rocking Arduino Visualization Shield”
When we recently discussed the skills that we might wish to impart upon a youngster, one of those discussed was the ability to speak more than one language. If any demonstration were required as to why that might be the case, it comes today in [Byfeel]’s Notif’Heure, an ESP8266-powered clock and display (French-language, Google Translate link). If we only watch for English-language projects, we miss much of the picture.
The project began life in April 2018 (Google Translate link) and has since speedily progressed through many software versions to the current v3.2. In hardware terms it’s pretty simple: an ESP8266 development board drives a set of LED matrix displays. In the software though it has the primary function of an NTP-synchronised clock, there is also support for notification display and integration with the Jeedom home automation package.
We’ve featured innumerable ESP8266 clocks over the years, but surprisingly this is the first one with Jeedom integration. With so many to choose from it’s difficult to pick examples to show you, so perhaps it’s time to go to the truly ridiculous with this twelve-ESP monster.
Merci beaucoup au [Erwin] pour le tip!
The archetypal “blink an LED” is a great starter project on any platform, but once the bug takes hold that quickly turns into an exploration of exactly how many LEDs a given microcontroller can drive. And that often leads to Charlieplexing. A quick search yields many copies of The Table describing how many LEDs can be driven by a given number of pins but that’s just the most rudimentary way to describe it. Way back in 2013 [M Rule] developed a clever trick to describe the number of LED matrices which can be driven by a Charlieplexed array of a given size that makes this process much more intuitive. The post may be old, but we promise the method is still fresh.
[M Rule] was specifically looking to drive those big, cheap single color LED matrices which are often used to make scrolling signs and the like. These parts are typically a matrix of LEDs with a row of common cathodes and one of common anodes. Internally they are completely dumb and can be driven by row/column scanning, or any other way a typical matrix can be controlled. The question is, given known matrix sizes, how many can be driven with a a number of Charlieplexed LED drive pins?
The first step is to visualize the 1D array of available pins as a 2D matrix, as seen to the right. Note each numbered pin is the same on the X and Y, thus the black exclusion zone of illegal drive pin combinations slicing across the graph (you can’t drive an LED connected to one pin twice). The trick, if one were to say it resides in a single place, would be titling the axis anode and cathode, representing two “orientations” the drive pins can be put in. With this diagram [M Rule] observed you can simply drop a matrix into the array. If it fits outside the exclusion zone, it can be driven by those pins!
To the left is what this looks like with two 8×8 matrices, one connected between pins 1-8 and 9-16, the other connected between 9-16 and 1-8. This isn’t terribly interesting, but the technique works just as well with single LEDs and any size matrix, including 7-segment displays. Plus as long as an element doesn’t overlap itself it can wrap around the edges leading to some wild visuals, like 14 RGB LEDs on seven pins to the right.
The most extreme examples are pretty exotic. Check out [M Rule]’s post for the crown jewel; 18 pins to drive six 5×7 modules, six 7-segment displays, 12 single LEDs, and 18 buttons!
If this color coded diagram seems familiar, you may be remembering [openmusiclabs]’ excellent diagram describing ways to scan many of buttons. Or our coverage of another trick of matrix topology by [M Rule] from a few weeks ago.
In the practical world we live in, PCBs are often rectangles (or rectangles with rectangles, it’s just rectangles all the way down). When a designer goes to schematic capture things are put down on nice neat grid intersections; and if there isn’t a particular demand during layout the components probably go on a grid too. Routing even the nastiest fractal web of traces is mostly a matter of layers and patience. But if the layout isn’t being done in a CAD tool and needs to be hand assembled free-form this isn’t always as simple. [M Rule] had this very problem and discovered a clever solution, turning things diagonal.
They changed the fitness criteria to the optimization problem that is controlling a lot of LEDs. Instead of minimum pins to drive the goal became “easiest assembly”, which meant avoiding wires snaking back and forth across the layout, a big source of frustration in a big Charlieplexed design. The observation was that if they turned the a rectilinear LED matrix by 45° and wrapped each connection around at the edges it formed what was essentially a large multiplexed matrix. The topology is pretty mind bending, so take a minute to study the illustration and build your mental model.
It looks a little strange, but this display works the same way a normal multiplexed display does but with the added benefit that each trace flows from one side to the other without turning back on itself at any point. To light any LED set the right row/column pair as source/sink and it turns on!
What if you actually need a rectangular display? Well that’s no problem, the matrix can be bent and smooshed as desired to change its shape. At the most extreme the possible display topologies get pretty wild! We’re sure to try thinking laterally next time we need to design an unusual display, maybe there is a more efficient matrix to be found.
[David Johnson-Davies] always wanted an illuminated button matrix for projects, but cost was never very friendly. That all changed when he discovered a cheap source of illuminated pushbuttons on Aliexpress, leading to this DIY 4×4 illuminated button matrix design which communicates over I2C. The button states can be read independently of setting the light pattern, and an optional interrupt signal gets pulled low whenever there is a change detected. Not bad for one PCB plus about $10-worth in components!
The device uses every single pin on an ATtiny88, and because each button gets its own pin the keypresses can be detected with pin-change interrupts. The state reporting of buttons over I2C is unambiguous, even when multiple buttons are pressed simultaneously. A simple protocol provides all the needed functionality, and all connections are brought to the board’s edge to allow for easily tiling multiple panels.
The GitHub repository contains the code and PCB files and [David] helpfully shared the board files to OSH Park and PCBWay for easy ordering. In addition, he provides two demos (Tacoyaki and Tacoyaki+) which are games related to the classic Lights Out to show off the matrix.
20,000 LEDs sounds like an amazing amount of blink. When we start to consider the process of putting together 20,000 of anything, and then controlling them all with a small piece of electronics the size of a postage stamp, we get a little bit dizzy. Continue reading “Lots Of Blinky! ESP32 Drives 20,000 WS2812 LEDs”
We’ve all seen the 3D printed replicas of classic game consoles which house a Raspberry Pi; in fact, there’s a pretty good chance some of the people reading this post have one of their own. They’re a great way to add some classic gaming emulation to your entertainment center, especially compared to the bare PCB chic of just having a Pi hanging off your TV’s HDMI port.
[Victor Heid] loved the look of these miniature consoles, but wanted to challenge himself to design something that was also multi-functional and unique. So he decided to create an NES-inspired case for the Raspberry Pi 3 A+ that doubles as a LED matrix clock with a decidedly retro feel. Frankly, even if it was just a clock we would have been impressed with the final product; but the fact that it’s also a fully functional RetroPie build really goes above and beyond.
It should be obvious just looking at the completed product that [Victor] put a lot of effort into sanding and finishing the 3D printed case. But we don’t have to imagine the process, since he was kind enough to thoroughly detail the steps and materials he used. As you might have guessed, the short version is a lot of filler and a lot of time; but it’s worth looking at the complete write-up if you’ve ever considered trying to make your own printed parts look less…printed. His method of applying the lettering on the front of case using a laser printer, some Mod Podge, and a healthy dose of patience is also something you might want to file away for a future project.
The electronics for this project are exceptionally simple, as [Victor] used the Pimoroni Scroll pHAT HD rather than trying to roll his own LED matrix in such a limited space. So it was just a matter of connecting up the wires to the Pi’s GPIO header and getting the various bits of software talking to each other, which he also details for anyone who might be interested.
It’s been a few months since the Raspberry Pi 3 A+ was unveiled, and we’re finally starting to see projects that make use of the new board’s reduced footprint. The ability of hardware like the A+, combined with the lackluster attempts by manufactures to produce official “mini” systems, seems to have set the stage for hackers to once again outshine commercial offerings. Not that we’re complaining, of course.