Matrix Nametag

The Project

An LED Matrix nametag for students attending the Venture camp. It was capable of displaying animations on an 8×24 grid of LEDs, consisting of 3 8×8 LED matrices. It was run from 3 AAA batteries and could be reprogrammed over USB using animation sofware written in VB.Net with up to 512 frames of animation.

Design Constraints

  • Cost – As with all Venture projects, this had to cost as little as possible.
  • Ease of construction – Parts count had to be kept low, as the kids would need a lot of time in the lab to do their animations.
  • Simplicity of implementation – Between the hardware, firmware and host software, there was a lot that had to get done in not a lot of time.
  • Fun – The final product had to be worth the effort for the kids.

My Role

  • Parts Selection. For this project, the PIC18F14K50 was ready, which saved a good deal of cost. I was able to source some inexpensive 8×8 Red LED modules, which made the project possible in the first place. Using 74HC595s in SOIC packaging – which we used a lot of that year, giving us some economy of scale – saved on I/O (making the MCU requirement smaller) as well as allowed quick pre-assembly so the kids had less to do. Using a 24LC256 EEPROM for storage meant existing code could be easily used, and that we could get a discount on that part as well through our contacts.
  • Circuit Board Layout. The board had to be as small as possible, with as little for the kids to assemble as possible while still giving them a sense of accomplishment. In addition, the counsellors who did assembly hadn’t done much surface mount before (if any) so the size of those parts couldn’t be too tiny.
  • Programming. Coordination between the firmware and the host software had to be nailed down, by establishing a communications protocol early on (and revising it as required).
  • Documentation. The setup had to be documented well enough for counsellors to lead kids in building them successfully.

Lessons Learned

  • USB drivers – The project used Microchip’s USB CDC library to emulate a serial port over USB. This proved to be a problem on newer computers, as the INF file for the driver was unsigned, leading to a very complex process for setup under Windows Vista and Windows 7. This vastly complicated what should have been an easy project for the students. I really should’ve gone with HID, but I didn’t know how to use that with VB.Net, and didn’t really have time to figure that out.
  • Parts selection – The LED Matrix modules vastly simplified the build, but required careful instructor attention when soldering. If they went in upside down – which was VERY easy to do, especially with inexperienced builders – they were nearly impossible to remove, and wouldn’t work in that orientation. If we could have found a unit with a polarized footprint, that would have helped a great deal. This didn’t turn out to be as much of an issue as I feared it might, thankfully.