The StatusLight is a USB-driven RGB LED for cubicle dwellers to indicate their status – if they’re not to be disturbed, available, away, working remotely, etc. I developed it to solve the problem of people “closing their door” at work and not being able to indicate that since they had no actual door.
- Cost – Funded out of my own pocket, it had to come in under $10 each.
- Look good with minimal effort – So as not to make the place look like a pigsty, it had to have a decent enclosure that transmitted the light well.
- Ease of Manufacturing – I had to make 20 myself, so they had to be as easy to assemble as possible.
- Ease of Use – The software-hardware combo had to be pretty bulletproof – I had no intention of doing tons of support on this project. This meant, amongst other things, a somewhat sensible UI, and using USB HID to eliminate driver concerns.
- Concept. A few guys at work and I came up with the overall concept.
- Parts Selection. I chose a USB microcontroller – the venerable PIC18F14K50 – with some 5050-size SMD RGB LEDs. All surface mount parts, all but 3 of them on the component side of the board, so it was as easy as possible to assemble. I used a tap light from the dollar store to get a pre-made enclosure with a built-in diffuser.
- Physical Construction. I built all 20 units in the first two runs.
- Programming. Both firmware and VB.NET software to couple the user’s Skype status with the colour on the unit.
- Sourcing – The first ten enclosures I bought at a local dollar store that never got them in again. I scoured local dollar stores and various Chinese vendor sites trying to find a similar unit. I eventually found them again, but it was stressful. Finding a medium- or large-volume source next time would be a better idea.
- Datasheets – I used the RESET line of the PIC as an input. Apparently it has less input protection than other I/O pins, and ESD events in the area can accidentally trigger it just through induced noise. I noticed this when people would touch my cubicle wall and the unit would drop from USB, only to immediately reattach. Further reading of the datasheet (or maybe it was an appnote) showed an RC network that should’ve been used on that input to prevent that. The first batch of boards had to be modified to include the fix – not fun, lifting a pin and airwiring in a few parts. The second batch had the fix baked in.