24" Wall Clock
Who wants to set the real time when we've got GPS to set it for us?! :) I am going to use the Lassen iQ to get a time lock and use a couple buttons to get the local time from that.
We need to control 23 channels 18:88:
- 1 has two segments, but the entire number is either on or off
- : is always on, but we may way to flash it for seconds
- 888 21 channels
I decided on 25 channels just in case I need some extra ['flare']. Perhaps an alarm of sorts. 'Beer Time' alarm at 4:30pm? We've got to keep our options open...
The need for 25 I/O pushed me towards the PIC 16F877A:
- Easy to program (I've got a big code base)
- Has enough I/O
- It can be bootloaded!
- It's got an RTC (when you add an external 32.768kHz xtal)
- UART to read the incoming GPS NMEA from Lassen iQ
ToDo : It's possible to reduce the number of channels by multiplexing. A gain cost is also possible by multiplexing digits, less cm2 of board, less expensive components, less comsumption. 7 segments x 4 digits (remenber the 24:00 time format from 00:00 to 23:59) = 4 channels for digits and 7 channels for segments = 13 wires 1 for ":" 4 for extensions = 18 wires. Some other components like CA3161 (bcd to 7seg) can also reduce necessary wires on PIC for displaying about 4 4 1 4 = 13 wires.
Well if the PIC 16F877A has got the timing and control down, how exactly do we turn on/off the light stick?
Since the sticks only pull 60mA, we can use cheap BJT transistors. Let's go solid state! Many itty-bitty SOT-23 SMD BJTs can handle up to 1A with a max input of 40V. The maximum power output is 350mW though. Luckily, when forward biased, the MMBT2222 has around 0.5V drop.
So 60mA with 0.5V drop, we are looking at 30mW dissapation. That's atleast in theory. I'll believe it when I see it of course. For the time being, I'm going to assume this will work...
All I need is an NPN BJT for each channel:
While this should work, it's going to leave a bunch of connections with one pin 'hot'. A better design would probably utilize a PNP connected to RAW. Ehh - no big deal.
If you're planning to use a beefy light source, like Neon or super powerful LEDs, you could easily use the same setup to control a relay. Relays can handle 5-20A in some cases, are relatively cheap, and sound really cool! The only problem is they are big. And for this project, we wanted a relatively small control board. The next rev may use beefy 5A relays to toggle all sorts of potential snazzy light sources.
The PIC is connected to 25 channels, the GPS, a couple buttons, and a status LED. Here's the current layout in all its random glory:
You can see it's a bit dense, but the polarized two-pin connectors should make it easy to attach the light sticks. Everything was SMD to ease the assembly as much as possible. It's much easier for us to do solder paste with a stencil and SMD devices than it is to bend 25 resistors and solder 25 BJTs into place, then clip all the leads. PTH is actually pretty time consuming. I digress...
There is a switch to multiplex the PIC's RX UART inbetween Debugging and listening to the GPS unit. Be sure to use Port 2 on the Lassen iQ if you want NMEA output (4800bps by default).
Things to Improve
Nothing at the moment. We have to wait for all the parts to come in. Should be about 4 weeks.
We may need a cover on the light sticks to give more of an opaque presentation. TBD.
SFE Footprint Library
FP Name: All sorts of FPs used.