The big new feature for 2014 was a whole new set of hexagonal spots, along with brand new WS2812b smart LEDs, which of course necessitated a new driver board. The smart LEDs are a great benefit to the project - they're bright, they mix the colours beautifully, and they slash the amount of wiring and control circuitry. Using standard 5mm LEDs we had 5 controller boards networked to the main USB controller, each board having 4x40 pin PIC chips and two 64-way ribbon cables going out to all the little LED boards, each of which had 12 individual 5mm LEDs. Now everything is driven directly from the USB controller, no extra boards are required. The communication protocol is simple and efficient, although implementing 3 communication buses on a single 8-bit PIC at a decent framerate was a bit of a challenge. The new USB controller uses the same circuit board as the old one, thus saving some time and money. Minimal modifications were required to the hardware, I simply needed to cut and jumper a few traces around. This was helped by a design feature I requested when the circuit board was being designed: every I/O pin on the PIC chip has an empty hole next to it on the PCB. This means that if I want to re-route it, I only need to cut the trace and solder a jumper wire into the unused hole. The USB controller requires two PIC chips, as it's not possible to find one that has both a CAN and USB controller in a DIP package. I did have them communicating over a parallel bus, but for the rebuild I modified it to SPI. I rewrote all the firmware from scratch using the updated Microchip USB libraries. The physical connections to the board remain the same - CAN, USB, and LED data - making it more or less a drop-in replacement. Due to the modular nature of the software I wrote, it's even possible to have multiple boards connected at the same time, even mixing boards of different versions. This proved to be very useful, as we did not have time to replace all the LEDs in the head so that continued to use an old USB board and LED controller board. The one flaw with the LEDs is that they seem to be rather easy to blow up. The first panel of spots had been running in the house for a couple of weeks, but when we mounted it on to the giraffe it immediately fried, several of the LEDs blowing up. We investigated as best we could, and came to the conclusion that it was probably due to static electricity. To protect against this, we took several measures:
- We wrapped the LEDs in transparent heat-shrink tubing (only shrunk at the ends) to provide a physical barrier
- We added a grounding strap between the panel frame and the giraffe frame
- We added protection filters with a sacrificial LED at the start of each chain of LEDs
Capacitor C2 is simply to smooth out ripple on the power supply. Next comes a low pass filter made with R1 and C1, which should help to remove high frequency noise from the data line. Finally, the two diodes clamp the data line between the supply rails. I'm not specifying component values here because I would like to refine them further. Since making these changes, we haven't had any LEDs blow up. It's hard to say exactly which change was the one that solved the problem, but I'm going to guess that it was enclosing them in tubing to physically isolate them from any static zaps. There were a few small dramas prior to the show - notably the battery charger catching fire and Lindz almost losing an eye when a scalpel went flying past his face, but we managed to make it there with both us and the giraffe in one piece. Thanks to Lindz's new car (aka "the beast") the drive up there was more pleasant - no overheating engine and far fewer fuel stops. The traffic in LA and San Mateo cost us a couple of hours, but all in all it was pretty smooth. The show itself went pretty much without a hitch. There was much to see and much to do, the cat-herding of interviews being organized, the technical discussions and the general "ooh"s and "aah"s of the event.
I spoke to both Microchip and Texas Instruments - I want the next iteration of hardware to use 32-bit chips (which means finally taking the plunge into surface mount), and using PICs will require a new toolchain anyway as the ICD2 is not supported any more, so now is a good time to look at switching platform. It's hard to choose, at the moment - I'm not a big fan of the Arduino style boards that are so popular at the moment because although having a pre-made PCB is attractive, if you want to add extra hardware then you need to have a PCB printed for the shield anyway, so it doesn't seem to save you anything other than in the earliest stage of prototyping. A couple of highlights of the show were El Pulpo Mechanico, the giant flaming octopus; and the hydraulic snake, an enormous segmented hydraulic snake. The giraffe was also chosen as this year's "learn to solder" project!