Hi Spark Community,
@BDub inspired me to share some details of my project here, so let’s get this thing started!
I’m currently building my own WordClock, inspired by the awesome QLOCKTWO and powered by the Spark Core. To give you an idea what it’s about, here’s the original:
Just before we start… I have a solid background in software engineering, but this is my first real hardware project - I already did many mistakes and I’ll probably do another bunch of them, so improvements are always welcome.
I’m in the middle of the build process, so let me give you a quick overview of what has happened so far:
Case
The most difficult part has been getting a good front plate. I experimented a lot with different diffusors and LEDs, but then got very lucky by getting a complete plexiglas front plate (silk-screen printing, there’s still a protection layer on top):
If you’re from Germany, you can order one of these here. I didn’t found any other alternatives that really satisfied me, so I’d recommend buying a qlocktwo cover if you don’t live here. With 95€, they’re pretty expensive, but you probably want a really goodlooking clock after all. If that’s out of your budget, there’re a seemingly alternative I didn’t test here.
Next thing we need is a ~2cm layer that separarates the LEDs from the front cover for diffusion. Unfortunately I didn’t have the neccessary drilling equipment when I started the project, so I built a wooden frame and used a cut-out foam plate for separation. It looks pretty amateurish, but I’m really happy with the results - evenly illuminated text with no blending into other letters. For reference, that’s how the experts are doing it. Behind the foam, there’s a cardboard holding all LEDs in place. Next time, I’ll definitely use a stripboard… Finally, at the back, there’s a simple wooden cover that can be removed easily (picture included in the gallery).
The idea is to glue the front panel to the way smaller frame (2-k epoxid glue). This should create some kind of free-hanging effect of the front plate. However, the minute LEDs don’t fit into the frame because of that. LEGO for the rescue!
I drilled small hole into a 2x2 lego block and put the LED inside - works great.
Hardware
My first (non-spark core) revision was using an atmega328, paired with 4x shift registers (74HCT4094) and darlington transistor arrays (ULN2003A) to drive the LEDs. Power regulation was done using a LM1085 linear voltage regulator on the board.
What happend? Well, I crashed hardly, as I wasn’t aware of a concept called decoupling resistors . To my defense I must say that they didn’t appear in my Arduino tutorials :(. Well… I think I have learned my lessons:
- Read some electronics 101.
- Throw in decoupling capacitors whereever you can.
- Perfboards suck, use stripboards at least.
- The 74HCT4094 pin layout is super ugly, use 74HC595 instead.
So… here we go for revision 2:
- Spark Core for remote control (yay!)
- PCBs from OSH Park rather than perfboards/stripboards. It’s somewhat tiring with the long shipping to Germany, but way better than the old chaos.
- Voltage regulation from external source (less heat, simpler pcb, hopefully less noise?)
- Make it modular. My idea is to split the project into multiple PCBs:
<main pcb with spark core>
-> <breakout for shift register+transistors>
-> <breakout for shift register+transistors>
-> <breakout for shift register+transistors>
-> <breakout for shift register+transistors>
Here’s the chainable pcb for the shift register/transistors.
This is the first PCB board I ever designed and I think I’m pretty happy with it. If some of the more experienced Sparkers have some feedback for me, I’d love to hear it!
Currently I’m designing the board and schematics for the core. That’s how it looks right now:
Lots of fun to tinker with the Spark Core already. I’ll keep you guys updated with my progress. If you have any suggestions what could be improved, let me know - I’m still an absolute beginner! I hope you got some inspiration from my write-up.
Cheers,
Max