The other parts for a Colorhug already arrived, and we got the missing color sensor TCS3200D, from Mouser last week.
Please don't laugh at my SMD soldering
I made a first PCB using the original pcb-layout from the git repo, but the combination of a printer driver that produced a fuzzy mask and less than perfect etching skills didn't produce a satisfactory result. I then re-drew the GND copper-fill and some other traces on the PCB for bigger clearances and easier etching. Printed from adobe acrobat on windows the mask also has much better resolution than when printing from Document Viewer/Ubuntu.
Here are my modified masks in PDF format: hardware_etched_2011dec04 (note that the board outline is enlarged)
The PCB is clearly made for commercial production. There are vias under the microcontroller, which you can see from the pictures I have filed down after soldering so that the chip will fit on top. This isn't an issue with a commercially produced PCB where the vias are plated. Also, I noticed while starting to assemble the board that the large pad on the 3.3V regulator in the upper right corner will short out the trace drawn under it. Thus the silicone tape as insulation in the following picture. This is also not an issue with a commercial PCB since it will have an insulating soldermask.
Then on to programming. From the servodrive adventure I have an ICD2 programmer/debugger. However using it was challenging. I first tried 64-bit Windows 7. The latest Microchip MPLAB IDE does ship with 64-bit drivers, but they are hidden away in a special place, and require manual installation. No luck here, from device-manager/update-driver I couldn't get Win7 to recognize a valid driver using the instructions supplied.
I then tried 64-bit Ubuntu11.10. They have a Java version of MPLAB, called MPLAB X. It installs and runs nicely, but when I started digging in the documentation it turns out that product only supports the newer ICD3 programmer/debugger, not my older ICD2! (there might be ICD2 support in some old beta-version of MPLAB X, but I didn't search).
Oh well, it's nice we keep those old 32-bit Windows XP machines around in the lab! So I repeat for the third time the whole download and installation process on an old XP machine. That seems to work. The C-compiler which I vaguely remember being free previously now has a 60-day trial period after which Micrchip proudly proclaims it will stop producing nice binaries and start producing crap binaries. Strange. There's both a bootloader and a firmware project in the colorhug firmware repo. My guess is I only need to build and deploy the bootloader, and the firmware can be flashed from any machine after that. The bootloader requires a USB-library, which I didn't manage to find before I had to quit for the day... To be continued.
Note to self: future projects should use ATMEL or other microcontroller which (a) has a free/open-source toolchain for building the firmware, and (b) can be programmed directly over USB. The 6-pin ICSP connector is just big and ugly on a cute little board like this.
6 thoughts on “Colorhug build”
Here's a nice page which shows the schematic and the PCB
Hey! It's great you tried to build this. Send me an email if you have any comments about the new PCB design in git. You'll also need to calibrate the sensor, as the size and height of the aperture will also affect the calibration of the ColorHug. Be sure to also get a glass IR filter for the sensor as the TCS part is IR uncut. You'll also need to isolate the top of the board with some kind of neoprene isolating tape otherwise IR will leak into the *back* of the sensor.
If you really want to measure and calibrate colors, you'll need sensor that has spectral response similar to eye cells. Such as:
Or a spectrometer.