Mankind has always looked for ways to light up the night as they walk around. Fires are great for this, but they aren’t very safe or portable. Even kept safe in a lantern, an open flame is still dangerous – especially around cows. Enter the flashlight, or torch if you’re from the other side of the pond. Since its invention in 1899, the flashlight has become a vital tool in modern society. From patrolling the dark corners of the city, to reading a book under the covers, flashlights enable us to beat back the night. The last decade or so has seen the everyday flashlight change from incandescent bulbs to LEDs as a light source. Hackers and makers were some of the first people to try out LED flashlights, and they’re still tinkering and improving them today. This weeks Hacklet focuses on some of the best flashlight projects on Hackaday.io!
We start with [Norman], and the LED Flashlight V2. Norman built a flashlight around a 100 Watt LED. These LEDs used to be quite expensive, but thanks to mass production, they’ve gotten down to around $6 USD or so. Norman mounted his LED a custom aluminum case. At this power level, even LEDs get hot. An extruded aluminum heatsink and fan keeps things cool. Power is from a 6 cell LiPo battery, which powers the LED through a boost converter. It goes without saying that this flashing is incredibly bright. Even if the low-cost LEDs aren’t quite 100 Watts, they still put many automotive headlights to shame! Nice work, [Norman].
A tip of the fedora to [Terrence Kayne] and his Grain-Of-Light LED LIGHT. [Terrence] loves LED flashlights, be he wanted one that had a bit of old school elegance. Anyone familiar with LEDs knows CREE is one of the biggest names in the industry. [Terrence] used a CREE XM-L2 emitter for his flashlight. He coupled the LED to a reflector package from Carlco Optics. The power source is an 18650 Lithium cell, which powers a multi-mode LED driver. [Terrence] spent much of his time turning down the wooden shell and aluminum tube frame of the flashlight. His workmanship shows! Our only suggestion would be to go with a lower profile switch. The toggle [Terrence] used would have us constantly checking our pockets to make sure the flashlight hadn’t accidentally been activated.
Harbor Freight’s flashlights are a lot like their multimeters: They generally work, but you wouldn’t want to trust your life to them. That wasn’t a problem for [Steel_9] since he needed a strobe/party light. [Steel_9] hacked a $5 “27 LED” light into a stylish strobe light. He started by cutting the power traces running to the LED array. He then added in an adjustable oscillator circuit: two BJTs and a handful of discrete components make up an astable multivibrator. A third transistor switches the LEDs. Switching a load like this with a 2N3906 probably isn’t the most efficient way to do things, but it works, and the magic smoke is still safely inside the semiconductors. [Steel_9] built the circuit dead bug style, and was able to fit everything inside the original plastic case. Rave on, [Steel_9]!
If you want to see more flashlight projects, check out our new list on Hackaday.io! That’s about all the time we have for this week’s Hacklet. As always, see you next week. Same hack time, same hack channel, bringing you the best of Hackaday.io!
Some people would look at a massive 6’x4′ LED matrix hanging on the wall playing animations and be happy with the outcome. But [Ben] just isn’t one of those people. The original FLED (Fantastic LED thingy) was eight rows of twelve addressable LEDs for a total of 96 pixels. This spring he upped his game and retrofitted the display with 1768 LEDs.
It wasn’t simply an issue of restlessness, the original build suffered from LEDs dying. We actually featured it for that reason as a Fail of the Week. This is not strictly a hobby project, it’s hanging on the wall in the Supplyframe offices, so pulling it down frequently to fix broken parts is not ideal.
To make FLED more reliable [Ben] sourced strips of the new APA102 LEDs which we looked at back in December. They use an SPI bus instead of the bizarre timing scheme of the WS2812. At first glance you’d think this would mean easier assembly compared to soldering both sides of each of the original 96-pixels. These do come in strips, but laying out 52×34 still means soldering to the ends of each row.
A lot of love went into making sure those rows were laid out perfectly. A sheet of white foamed PVC serves as the substrate. There is grounding braid on either end of the rows, one is the voltage bus, the other is ground. It fits the original enclosure which is acrylic and does a great job of diffusing the light. I’ve seen it in person and it looks pretty much perfect!
It’s not just the physical layout of this many pixels that is a challenge. Pushing the data to all of them is much harder than it was with 96. [Ben] transitioned away from RaspberryPi. He considered using a Teensy 3.1 and ESP8266 but the WiFi of these cheap modules is far too slow to push frame information from a remote box. In the end it’s a BeagleBone Black that drives the reborn display. This is a great choice since there’s plenty of power under the hood and a traditional (and much faster) WiFi dongle can be used.
Don’t miss the animation demos found after the break.
Like just about everyone we know, [Luis] decided a gigantic RGB LED matrix would be a cool thing to build. Gigantic LED matrices are very hard to build, though: not only do you have to deal with large power requirements and the inevitable problems of overheating, you also need to drive a boat load of LEDs. This is not easy.
The microcontroler [Luis] is using only supports 1024 transfers per transfer set, equating to a maximum of 14 LEDs per transfer. This problem can be fixed by using the ping-pong mode in the DMA controller by switching between data structures for every DMA request. Basically, he’s extending the number of LEDs is just switching between two regions of memory and setting up the DMA transfer.
While [Drew] was in China for the Dangerous Prototypes Hacker Camp, he picked up some very bright, very shiny, and very cheap LED strips. They’re 5 meter “5050” 12V strips with 20 LEDs per meter for about $15 a spool. A good deal, you might think until you look at the datasheet for the controller. If you want an example of how not to document something, this is it.
A normal person would balk at the documentation, whereas [Drew] decided to play around with these strips. He figured out how to control them, and his efforts will surely help hundreds in search of bright, shiny, glowy things.
The datasheet for the LPD6803 controller in this strip – available from Adafruit here – is hilarious. The chip takes in clocked data in the order of Green, Red, and Blue. If anyone can explain why it’s not RGB, please do so. Choice phrasing includes, “VOUT is saturation voltage of the output polar to the grand” and “it is important to which later chip built-in PLL regernate circuit can work in gear.” Apparently the word ‘color’ means ‘gray’ in whatever dialect this datasheet was translated into.
Despite this Hackaday-quality grammar, [Drew] somehow figured out how to control this LED strip. He ended up driving it with an LPC1768 Mbed microcontroller and made a demo program with a few simple animations. You can see a video of that below.
The table includes a 32×12 grid of LEDs in the center of the table, with 10 pods for Solo cups at each end of the table. These pods have 20 RGB LEDs each and infrared sensors that react to a cup being placed on them. The outer edge of the table has 12 LED rings for spectators, giving this beer pong table 1122 total LEDs on 608 individual channels.
With that many LEDs, how to drive all of them becomes very important. There’s a very large custom board in this table with a PIC24 microcontroller, TLC5955 PWM drivers, and enough IDC headers to seriously reconsider using IDC headers.
Put enough LEDs on something and it’s bound to be cool, but [Jeff] is taking this several steps further with some interesting features. There’s a Bluetooth module for controlling the table with a phone, a VU meter to give the table some audio-based visualizations, and air baths for cleaning the balls; drop a ball down the ‘in’ hole, and it pops out the ‘out’ hole, good as new. If you’ve ever wondered how much effort can go into building a beer pong table, there you go. Video below.
Before soldering 58 SMD LEDs to a small rectangle of perfboard, [Esai] traced out each segment with a marker. Two LEDs make up each segment, and they’re all connected to a breadboard-friendly pin header with 30 gauge wire.
Each segment is connected as a single column in the LED matrix, and each digit is a row. It’s a simple design, but there aren’t any resistors on this board. Hopefully [Esai] will be using a proper LED driver with this display; you really don’t want LEDs to burn out twice a day at 1:11.
One of [Dooievriend]’s friends recently pressed him into service to write software for a 3d spectrum analyzer/VU that he made. The VU is a fairly complex build: it’s made up of 1280 LEDs in a 16x16x5 matrix controlled by a PIC32 clocked at 80MHz. [Dooievriend] wrote some firmware for the PIC that uses a variation on a discrete Fourier transform to create a 3D VU effect.
When [Dooievriend] set out to design the audio analyzing portion of the firmware, his mind jumped to the discrete Fourier transform. This transform calculates the amplitude in a series of frequency bins in the audio—seemingly perfect for a VU. However, after some more research, [Dooievriend] decided to implement a constant Q transform. This transform is very similar to a Fourier transform, but it takes into account the logarithmic way that the human ear interprets sound.
[Dooievriend] started implementing the constant Q transform using an interrupt-based sampler, but he quickly ran into issues with slow floating-point math on his PIC32 (which doesn’t have a hardware floating-point unit). Thankfully he rewrote his code using fixed-point math, and the transform runs nearly real-time. Check out the video after the break to see the VU in action, and a second video that gives some details on the hardware build.