Eardrops ISP V2.0
Let's make some solid-state ear-bling... something eye catching and open; open design, open hardware, and open software.
Get the ball rolling at OSH Park with three PCBs for ~$8.
If you like, take a peek at the datasheet before you get started. Gerbers are included here as well if you want to produce your PCBs somewhere else.
Program It...
Programming can be had via standard ISP-6 pins, something fancy like TAG-Connect, or surface mount with pogo-pins.
Reducing pokey-bits sounds like the best route... pogo-pins will do nicely!
When you're ready, USBtinyISP is a great way to program AVR microcontrollers.
Digikey Dub Step
Bill of Materials (BoM) is pretty short...
No Body Knowles ...
Soldering small components by hand can be done - but I'm going to go the solder-paste route this time. Whatever you use, make sure that it's lead free (ROHS).
Knowling... is optional.
Paste Paste Baby
You won't need more than a dab of solder paste in your syringe - push the plunger up until all the air is gone and the paste peaks through the luer-lock. Add your dispensing needle, and you're ready to go!
Picked and Placed
Place paste on the pads with precision, parts presented (as pictured) are plainly polarized; pyre your plate for re-flow and take the plunge!
Propitious purchases via various purveyors abound - I found my plate on eBay for $10... it prances like a pony!
Rock, Blink, and Roll
Add a little height to the negative terminal, and install the positive battery retainer; that'll do it for assembly.
Setting-up the Arduino IDE for programming the ATtiny84 is easy as cake with the fabulous instructions provided by David A. Mellis. Set your board for ATtiny84 at 1MHz and use the following starter-sketch.
void setup() { pinMode(10, OUTPUT); pinMode(2, OUTPUT); pinMode(9, OUTPUT); pinMode(1, OUTPUT); } void loop() { digitalWrite(10, HIGH); delay(15); digitalWrite(10, LOW); delay(15); digitalWrite(2, HIGH); delay(15); digitalWrite(2, LOW); delay(15); digitalWrite(9, HIGH); delay(15); digitalWrite(9, LOW); delay(15); digitalWrite(1, HIGH); delay(15); digitalWrite(1, LOW); delay(15); delay(5500); }
With a standard CR2032 battery, you'll get at least 12-16 hours of continuous blinkage with the above sketch.
And... here is a sample of what they look like in action: