Showing posts with label LightDial. Show all posts
Showing posts with label LightDial. Show all posts

Monday, December 5, 2011

LightDial: Done!

I cooked up a quick Solidworks model of the clock. Protip: don't set your parts' appearances to transparent plastic until you're done. Basically working in wireframe the entire time.

The clock is planned to have a five inch diameter face, with two buttons and an RPG (rotary pulse generator) to adjust the time.

Using the Invention Studio's laser cutter, the pieces were cut out without hiccups. Holes were also cut out in the pieces for the LED leads. The LEDs were slotted in and wired together with a common cathode. This is when the true hairiness of 36 individual wires came into play, and we realized what we were getting ourselves into.

A digression: Through a random experiment, we discovered that a backlit clock face looks better than a frontlit clock face. Thus, we reversed the order of the clock rings, so instead of two LED rings and a face, it was a face and then two LED rings. This is why the actual build doesn't look like the Solidworks model.

Populating the board was easy enough. Until I realized the wire I have doesn't fit inside the connector, and the Molex connector crimper I can use is too big for the 1.25 mm pitch connectors I have. Begrudgingly, my lab partner and I decide in the interest of time to solder the LED wires directly onto the board. This we did.
The horror! The horror!
Then I found out the LED drivers (the ones underneath all the wires) were soldered on backwards. Desolder and resolder all the wires!

There was a good thing that came out of all the soldering. In code, the lights were ordered B7G7R7B6G6R6...B0G0R0. In circuitry, the green and red channels were swapped, as in B7R7G7. Headaches were had all around, but they were wired in order to simplify programming.

After that, the major hardships were over.


First light!
Wiring done, all that was left was a matter of coding. Using the SPI peripheral was a matter of setting registers. Time was kept by counting program cycles. I did add a watch crystal to the board, but due to time, I didn't bother enabling it, so the timekeeping accuracy is only good enough for short term use.

In terms of human interface, I used two buttons and a rotary pulse generator. Holding down one button and turning the RPG adjusts minutes, the other hours.

Hour lights
And so, putting it all together,
Hours and minutes. Woohoo!
Rats nest

Blue LEDs look funny on camera
Appendix
Source Code: 
Eagle Design Files:  
Solidworks Models:  

Monday, November 21, 2011

Lightdial Update

The PCBs are in!
Mostly populated.
After wrangling with 0402 package SMD components, soldering these 1206 package components is such a relief.

Sunday, November 6, 2011

LightDial: A Bulbdial Cousin

For the final project for Georgia Tech's ECE 4175, by teammate and I decided to make a Bulbdial-like clock. It can be called an "artificial sundial" of sorts. Lights around a center post shine onto it, and the shadow of the post makes the hands of the clock. The original bulbdial does something smart, and uses charlieplexing to handle the large number of LEDs (for n pins, they can have n(n-1) LEDs running on them).

However, we have project requirements to fulfill. We have to use an SPI device as part of the design. So we thought might as well go all in and drive each channel independently with a massive shift register. We decided on Texas Instruments' 24 channel LED driver, the TLC5951. Two of them, so we can have 24 minute hand positions and 12 hour hand positions for a total of 36 independently driven LEDs. Sorry, no second hand, or we will go crazy laying out and wiring them all together.

The benefit of this design is that all LEDs can be lit at full power, for alarm clock functionality or something. The downside is that there are a lot of wires.

After some layout wrangling, its a board! The EAGLE files can be found in the links below.

And, that's about as far as I have gotten. Soon, once I check some things with my professor, I will send the board to fab.

Appendix

Design files: https://github.com/aaronbot3000/lightdial