Hacklet 43 – Flashlight projects

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!

light1We 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].

light2A 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.

light3Harbor 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!

The Possibility Of Driving 16,000 RGB LEDs

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.

[Luis] found a solution to the problem of driving these LEDs with a new, fancy ARM Cortex M4 microcontroller. All Cortex M4 ARMs have DMA, making automatic memory transfers to peripherals and LED strips a breeze.

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.

The result is much better than [Luis]’ original circuit that was just a bunch of SPI lines. It also looks really good, judging by the video below. It’s not quite a gigantic LED matrix yet, but if you want to see what that would look like, check out the huge 6 by 4 foot matrix hanging in the Hackaday overlord office.

Continue reading “The Possibility Of Driving 16,000 RGB LEDs”

Documenting Poorly Documented LED Strips

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.

You are expected to tell the difference between 'GMODE', 'OMODE' and 'CMODE' in this pinout.
You are expected to tell the difference between ‘GMODE’, ‘OMODE’ and ‘CMODE’ in this pinout.

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.

Continue reading “Documenting Poorly Documented LED Strips”

Overengineering Beer Pong

If there’s one game that deserves to be overengineered with hundreds of LEDs, sensors, and electronic modules, it’s beer pong. [Jeff] has created the most ostentatious beer pong table we’ve ever seen. It’s just shy of playing beer pong on a single gigantic LED display, and boy, does it look good.

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.

Continue reading “Overengineering Beer Pong”

DIY Seven Segment Displays

[Esai] wanted to build an electronic clock from scratch. A noble quest, but ordinary seven-segment displays are just that – incredibly ordinary. Instead of a few displays that can be bought from the usual retailers for a dollar a piece, [Esai] made his own four digit, seven-segment display on some perfboard.

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.

Open Source Binary Wristwatch Is Professional Quality

If you want to proclaim to the world that you’re a geek, one good way to go about it is to wear a wristwatch that displays the time in binary. [Jordan] designs embedded systems, and he figured that by building this watch he could not only build up his geek cred but also learn a thing or two about working with PIC microcontrollers for low power applications. It seems he was able to accomplish both of these goals.

The wristwatch runs off of a PIC18F24J11 microcontroller. This chip seemed ideal because it included a built in real-time clock and calendar source. It also included enough pins to drive the LEDs without the need of a shift register. The icing on the cake was a deep sleep mode that would decrease the overall power consumption.

The watch contains three sets of LEDs to display the information. Two green LEDs get toggled back and forth to indicate to the user whether the time or date is being displayed. When the time is being displayed, the green LED toggles on or off each second. The top row of red LEDs displays either the current hour or month. The bottom row of blue LEDs displays the minutes or the day of the month. The PCB silk screen has labels that help the user identify what each LED is for.

The unit is controlled via two push buttons. The three primary modes are time, date, and seconds. “Seconds” mode changes the bottom row of LEDs so they update to show how many seconds have passed in the current minute. [Jordan] went so far as to include a sort of animation in between modes. Whenever the mode is changed, the LED values shift in from the left. Small things like that really take this project a step further than most.

The board includes a header to make it easy to reprogram the PIC. [Jordan] seized an opportunity to make extra use out of this header. By placing the header at the top of the board, and an extra header at the bottom, he was able to use a ribbon cable as the watch band. The cable is not used in normal operation, but it adds that extra bit of geekiness to an already geeky project.

[Jordan] got such a big response from the Internet community about this project that he started selling them online. The only problem is he sold out immediately. Luckily for us, he released all of the source code and schematics on GitHub so we can make our own.

Solar Panel System Monitoring Device Using Arduino

[Carl] recently upgraded his home with a solar panel system. This system compliments the electricity he gets from the grid by filling up a battery bank using free (as in beer) energy from the sun. The system came with a basic meter which really only shows the total amount of electricity the panels produce. [Carl] wanted to get more data out of his system. He managed to build his own monitor using an Arduino.

The trick of this build has to do with how the system works. The panel includes an LED light that blinks 1000 times for each kWh of electricity. [Carl] realized that if he could monitor the rate at which the LED is flashing, he could determine approximately how much energy is being generated at any given moment. We’ve seen similar projects in the past.

Like most people new to a technology, [Carl] built his project up by cobbling together other examples he found online. He started off by using a sketch that was originally designed to calculate the speed of a vehicle by measuring the time it took for the vehicle to pass between two points. [Carl] took this code and modified it to use a single photo resistor to detect the LED. He also built a sort of VU meter using several LEDs. The meter would increase and decrease proportionally to the reading on the electrical meter.

[Carl] continued improving on his system over time. He added an LCD panel so he could not only see the exact current measurement, but also the top measurement from the day. He put all of the electronics in a plastic tub and used a ribbon cable to move the LCD panel to a more convenient location. He also had his friend [Andy] clean up the Arduino code to make it easier for others to use as desired.