# PCB art

Work in progress on how to create artistic PCBs using the "four" colors available from the bare board, copper, silkscreen and soldermask, inspired by the creative PCBs of Boldport and the "Bencoff Nickel"]..

## Artwork

 + =

I posted to twitter that I was seeking an artist to do an Art Nouveau style design and Shaenon Garrity was recommended. I sent her my rough pencil sketch of a stick figure holding a soldering iron and Alfons Mucha's "Les Fruit" to with the guidelines of "four colors and vector art", and she turned it into the very fun art piece.

Using Inkscape I was able to trace the bitmap to separate it into color layers. There was quite a bit of hand cleanup to make it usable for the PCB. This process needs more documentation - the goal is to have a white silk screen layer, a purple soldermask layer, a copper layer and the raw PCB outline.

The schematic is a variant of the 12 Charlieplexed LED Helen board, updated to fix the USB pinout issue and to add a single-cell LiPo charger. It is designed to hang as a pendant or a brooch.

## Version 1

The silkscreen worked out better this time, although the small areas are not very defined -- her lips and dress straps are very faint. The white-skin and white-background blend together too much; replacing the area behind the chip with normal purple soldermask would make for more contrast.

Assembly notes:

• The bootloader flashed via avrdude works, but when flashed from the pre-programmed teensy jig it fails on the fuse setting.
• The bootloader needs to have the Reset disable fuse set so that all six IO pins can be used. This limits the charlieplexed matrix to six LEDs (the ones shown above).
• There is still something weird with the charlieplexing -- driving the LEDs from a for() loop makes the dim, but setting the PORTB and DDRB registers directly makes them very bright.
• The LEDs are 0805, but the passives are 0603 and quite small.
• Battery charger has not been tested.

## Version 0

The gebers were submitted to oshpark on 2017-05-03 and came back in about a week. Lessons learned:

• Silkscreen must be atop soldermask, otherwise the PCB and traces are left bare. That's why the figure has no skin tone and her hair decoration isn't white.
• There are cutouts in the soldermask *inbetween* LED pads, which makes it easy to short. This should be fixed in the artwork.
• It is *very* difficult to remove all the art from the PCB in Eagle; hand editing the XML is the easiest way.
• 0603 is really too small to do by hand for beginners; should redo it with 0805 LEDs.
• Something is wrong with the charlieplexing; the pink ones are flickery and the purple ones barely light (with 68 Ohm resistors). They should be much brighter.
• Something is wrong with the board and it resets often. Maybe the fuses are wrong?

Past me was a dork and didn't write down how to program the bootloader and set the fuses to allow the reset pin to be disabled. It seems that the ATtiny85 won't program on board (which makes me suspect the charlieplexing circuit), but I was able to program one in free space. Unfortunately I lifted a pin so this first one is probably toast.

You'll need to build an adapter from the AVRISP 6-pin connector to the 8-SOIC chip. Note that the AVRisp MKII does not provide 5V -- you must use an external power supply to boot the chip. You might be able to use the USB port since the USB data lines are not shared with the ISP, although I haven't tested it yet (and there seems to be a problem programming on the board right now).

       ATtiny85 20 MHz                  AVRISP
+--------+                     +----+
/RES ---|1  \/  8|--- 5V       MISO ---|1  2|--- 5V (from external supply)
---|2      7|--- SCK       SCK --||3  4|--- MOSI
---|3      6|--- MISO     /RES ---|5  6|--- GND
GND ---|4      5|--- MOSI             +----+
+--------+


Checkout my modified bootloader, github/https://github.com/osresearch/gemma-bootloader and update the ARDUINO_PATH variable to point to your Arduino install. Then run:

sudo make flash_lv


If it works, you should be able to disconnect the programmer and plug it into the USB port and it will enumerate as an Adadfruit Trinket/Gemma. You can then flash it with helen.ino from github/osresearch/pendant. Select Tools - Board Type - Gemma and Tools - Programmer - USBtinyISP. Powercycle the board and hit "Upload".