LED Driver Board Could Be Your Ticket To FPGA Development

Microcontrollers are a great way to learn about developing for embedded systems. However, once you outgrow their capabilities, FPGAs bring muscle that’s hard for even the fastest-clocked micros to match. If you’re doing anything with high-speed signals, loads of RAM, or something that requires lots of parallel calculation, you can’t go past FPGAs. Dev boards can be expensive, but there are alternatives. There’s a nifty project on Github trying to repurpose commodity hardware into a useful FPGA development platform.

Chubby75 is a project to reverse engineer the RV901T LED “Receiver Card”. This device is used to receive signals over Ethernet, and clock data out to large LED displays. This sort of work is highly processor intensive for microcontrollers, but a cinch for FPGAs to manage. The board packs a user-reprogrammable Spartan 6 FPGA, along with twin Gigabit Ethernet ports and 64MB of SDRAM. Thanks to the fact that its firmware is not locked down, it has the potential to be repurposed into all manner of other projects. The boards are available for under $30 USD, making them a prime target for thrifty hackers.

Thus far, the team have begun poring through the hardware documentation and are looking to develop a toolchain to allow the boards to be easily reprogrammed. With the right tools, these boards could be the next thing in cheap FPGAs, taking over when the Pano Logic thin clients become thin on the ground.

[Thanks to KAN for the tip!]

Visualizing LEDs For More Efficient Pin Packing

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.

Make Your Own Old School LED Displays

We live in an era in which all manner of displays are cheap and readily available. A few dollars spent online can net you a two-line alphanumeric LCD, a graphical OLED screen, or all manner of other options. Years ago however, people made do with little monolithic LED devices. [sjm4306] wanted to recreate something similar, and got down to work (Youtube link, embedded below).

The resulting device uses 0603 sized SMD LEDs, soldered onto a tiny PCB. 20 LEDs are used per digit, which can display numbers 0-9 and letters A-F. The LEDs are laid out in a pattern similar to Hewlett-Packard designs from years past. This layout gives the numerals a more pleasant appearance compared to a more-classic 7-segment design. Several tricks are used to make the devices as compact as possible, such as putting vias in the LED pads. This is normally a poor design technique, but it helps save valuable space.

[sjm4306] has developed a breadboard model, and a more advanced version that has a pad on the rear to mount a PIC16F88 microcontroller directly. We look forward to seeing these modules developed further, and can imagine they’d prove useful in a variety of projects.

For reference, check out these Soviet-era 7-segment displays. Video after the break.

Continue reading “Make Your Own Old School LED Displays”

Lateral Thinking For An Easier Charlieplex

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.

A Perfectly Orderly Way To Manage Your Time

[Paul Gallagher] has spent years separating his tasks into carefully measured out blocks, a method of time management known as the Pomodoro Technique. If that’s not enough proof that he’s considerably more organized and structured than the average hacker, you only need to take a look at this gorgeous Pomodoro Timer he’s entered into the Circuit Sculpture Contest. Just don’t be surprised if you suddenly feel like your own time management skills aren’t cutting it.

While [Paul] has traditionally just kept mental note of the hour-long blocks of time he breaks his work into, he thought it was about time he put together a dedicated timer to make sure he’s running on schedule. Of course he could have used a commercially available timer or an application on his phone, but he wanted to make something that was simple and didn’t cause any distractions. A timer that was easy to start, reliable, and didn’t do anything extraneous. We’re not sure if looking like the product of a more advanced civilization was part of his official list of goals, but he managed to achieve it in any event.

The timer is broken up into two principle parts: the lower section which has the controls, USB port, a handful of passive components, and an ATmega328 microcontroller, and the top section which makes up the three digit LED display. The two sections are connected by a header on the rear side which makes it easy for [Paul] to take the timer apart if he needs to get back into it for any reason. Notably absent in the design is a RTC; the relatively short duration of the timer (up to a maximum of 95 minutes) means the ATmega328 can be trusted to keep track of the elapsed time itself with an acceptable amount of drift.

The display side of the timer is really a sight to behold, with the legs of each LED soldered to a pair of carefully bent copper wires so they match the angle of the front panel. The associated resistors have been artfully snipped so that their bodies sit flat on the PCB while their leads reach out to the perfect length. It looks like a maintenance nightmare in there, but we love it anyway.

As we near the half-way mark of the Circuit Sculpture Contest, there’s still plenty of time to submit your own piece of functional art. If you’ve got a project that eschews the printed circuit board for a chance to bare it all, write it up on Hackaday.io and be sure to send it in before the January 8th, 2019 deadline.

Continue reading “A Perfectly Orderly Way To Manage Your Time”

One-byte binary LED display

See Binary On Your Breadboard

When you’re debugging a board which has an ESP32, Raspberry Pi, or Arduino, it’s easy to slap on a small LCD display or connect via WiFi to see what’s wrong. At least, that’s what the kids are doing. But what if you’re old-school or you don’t have one of those pimped-out, steroid-filled boards? A resistor and an LED will often suffice. Powering the LED means one thing and not powering it means another. And with seven more LEDs you can even display 0-255 in binary.

[Miguel] is clearly in the latter camp. To make debugging-with-LEDs easy, he’s come up with an 8-LED board complete with resistors. He’s even included the Gerber files needed for you to make your own. One row of pins are all connected together and the other row are not. So whether you’re using common cathode or common anode depends on how you orient the LEDs when you solder them in place. You might perhaps have one board of each type at the ready.

But who are we kidding? This is just plain fun to have on a breadboard. Show your prototype doohickey to a friend and you know they’ll be drawn to the little binary counter in the corner pulsing 42 or counting down until it starts flashing 255.

At risk of getting too feature-rich, you could then add two keys for a binary keyboard or add more LEDs to display 32-bit binary Unix Epoch time and see how long until your friends figure that one out.

Continue reading “See Binary On Your Breadboard”

Flood Damaged 386 Gets A Modern Rebuild

Until a flood claimed its life, the 386 tower [Tylinol] found on the side of the road served him well as a DOS gaming rig. In the aftermath of the flood, the machine was left with ruined internals and a rusted case; it ended up being tossed in storage where it was slowly rotting away. But a recent idea got him to drag this old dinosaur back out into the light of day and give it a new lease on life with some modern gear.

For our viewing pleasure [Tylinol] documented the restoration of the computer, dubbed SErEndIPITy, from start to finish. The rebuild starts with tearing the machine down to the steel frame and sanding all the rust off. Luckily it looks like no structural damage was done, and a coat of engine enamel got the frame looking more or less like new. The original motherboard mounting solution wouldn’t work for his modern board, so he ended up riveting a piece of sheet metal in and drilling new holes for standoffs to thread into.

A nice element of this rebuild is that [Tylinol] didn’t want to drastically change the outward appearance of the machine. The customary yellowed plastic was left alone, and wherever possible the original hardware was reused. Rather than blow a hole in the case, he took his Dremel to the decorative ribbed design of the front panel and turned it into a stock-looking vent.

The real star of this rebuild is the LED CPU “Speed” display on the front of the case. In its original form, this was a fake display that simply cycled through predefined digits when you pressed the “Turbo” button on the front panel. By grounding them one at a time, [Tylinol] figured out which lines on the PCB controlled each segment of the display and wired it up to a Teensy 3.5. He was then able to write a C# plugin for CoreTemp to display the temperature.

The rebuilt machine is packing an i5-6500 processor, GTX 970 video card, and 8 GB of DDR4 RAM. Not exactly a speed demon compared to some of the modern desktops out there, but it certainly beats the original hardware. Incidentally, so does the Teensy 3.5 controlling the front panel display. There’s a certain irony there…

Cramming modern hardware into the carcass of an outdated computer is nothing new, of course. But we especially like the builds that take the time to make it all look stock.

[via /r/DIY]