loading

This Instructable page is the result of a workshop that took place during the 2016 edition of PIF camp in Slovenia.

The main objective was to introduce how to design, make and program an electronic circuit.

Other projects can be found on Ljudmila's wiki.

Step 1: Design

To allow a collaborative design, we used an online PCB* tool such as circuits.io or upverter.com.

The circuit is rather simple, it uses a small Arduino compatible microcontroller called AtTiny, an LED, a resistor to protect it, and a coin cell battery holder hidden on the back.

If you want to modify or download it, the design can be found online, enjoy!

Once you're happy with the design, you can convert the gerber to a png file using gerbv for example.

*PCB: Printed Circuit Board

Step 2: Etching

Once the Design is done, the best is to print it on a transparent film.

If the pads and traces are fairly thick (more than 1mm), normal paper can be used but it's not the ideal. If you try this hack, remember to invert the image before printing, and put the printed side directly on the PCB to get the best precision (the paper thickness would diffuse UV light otherwise).

In our case we exposed the PCB to the UV for 1min 30sec, and move it (hidden from light) to a developing bath for 1min 30sec too (it's good to shake it a bit).

The last step is a bit longer, the "boiling" acid* bath took about 20 min but it depends on a lot of factors so just check it every 5 minutes, the pictures should give a good idea of what to expect.

More detail can be found here for example:

quinndunki.com/blondihacks/?p=835

*Edit: by "boiling" acid I indeed meant a bubble bath with an aerator, thanks to PhilS43 for the precision ;)

Step 3: Assembly

If your PCB has through hole parts, a bench drill can help but most of the time you can just bend the pins and solder the components on the surface.

To cut the PCB outline, the most reliable was a metal saw, but it was long and fastidious (don't forget to drill before cutting though).

As we have a single side PCB, a little gap under the components was needed to allow soldering on the same side.

Step 4: Programming

To avoid using a socket for all the AtTiny chips, we directly soldered them on the PCB but used a socket to program them by connecting from the top. You can notice on the 1st picture, a bit of white tack was added to keep the connection reliable.

On the software side, you 1st need an Atmel programmer, or you can make one with an Arduino, here is how:

Programming an ATtiny w/ Arduino

Arduino board as ATtiny programmer

The firmware we made was very simple, just a heart beat (see attached file to download it):

// to progran the ATtiny: http://highlowtech.org/?p=1695

int led = 2; int blinkTime = 30 * 8; // 30ms (*8 because 1MHz instead of 8MHz)

void setup() { pinMode(led, OUTPUT); }

void loop() { digitalWrite(led, HIGH); delay(blinkTime); digitalWrite(led, LOW);

delay(blinkTime);

digitalWrite(led, HIGH); delay(blinkTime); digitalWrite(led, LOW);

delay(3*blinkTime); }

Step 5: Extra

This workshop was just an introduction so every step was kept as simple as possible.

A lot can be improved, modified, hacked.

A simple Light Dependent Resistor can replace the normal resistor to adapt to ambiant luminosity and allow more brightness in the day to see the blinking, but decrease it in the night to save power (see 1st pic).

Another participant wanted to go further and used an RGB LED with a potentiometer to control it (see 2nd pic). This is documented here:

http://wiki.ljudmila.org/PIFcamp_log_2016#RGB_hear...

<p>Hi! This is an amazing project and I'm thinking of doing one for someone special, could you please provide me with a way to learn to program the AtTiny? I was thinking to make the LED morse code &quot;I Love U&quot;.</p>
<p>Nice idea!</p><p>The AtTiny programming procedure is very well explained here:</p><p><a href="http://highlowtech.org/?p=1695" rel="nofollow">http://highlowtech.org/?p=1695</a></p><p>I hope it helps ;)</p>
<p>Great Project. Made it with 5 Different LED's though with different blinking rate to show heart beat. Just utilize all pins as output pins. Thought the aesthetic value is...</p>
<p>Haha, I miss colors, good point, thanks for sharing !</p>
<p>&quot;Boiling acid&quot; - I hope not. Iguess you mean a bubble bath with an aerator.</p><p>A bit of warmth definitely helps speed up things, but if ferric chloride or hydrocloric acid is involved, lay off the boiling otherwise you and most of the metal items around are going to suffer.</p><p>Otherwise, a nice little demo of using a bare AtTiny. A socket is generally a good idea though, unless you are certain that this is the final version. Even an 8-pin device can be a pain to remove.</p>
Haha, yes, I meant a bubble bath with an aerator ;)<br> <br> About the AtTiny sockets, it was done on the 1st boards, then to save some we just soldered them directly, but if you look at the pics in the&nbsp;<a href="https://www.instructables.com/id/Collaborative-PCB-Intro/#step4" rel="nofollow">step 4</a>, you'll see how we used a socket as &quot;<a href="https://www.instructables.com/file/F8KX7OXIRO1GC78" rel="nofollow">in system programmer</a>&quot;.<br> It's not perfect but the&nbsp;<a href="https://www.instructables.com/file/FPY7D98IRO1GC9S" rel="nofollow">white tack</a>&nbsp;white tack makes it pretty stable actually !<br> Thanks for your comments ;)
<p>Why does everyone remove all of the copper not needed for the circuit?</p><p>Isn't hat hard (wasteful) on the etching solution?</p>
I also thought it could be hard (wasteful) on the etching solution but apparently no, it's reusable a lot of times ;)<br>Now this particular design was absolutely not optimal, it was a really quick intro do PCB so there are a lot of things that could have been better.<br>Thanks for the questions !
<p>Because it looks nicer?</p>
<p>Yup.</p>
Great work! Although it would not work for our library program because of the safety issues. We may try to design a board and have it printed by a PCB board shop. Thanks for sharing.
Thanks!<br>You can make PCB with CNC mill, otherwise, OSH park or seeed studio might be interesting solutions.
what program did you use to design the PCB? I usely use expressPCB
In this case, the idea was to let everyone participate in real time so we used an online PCB design tool (circuits.io and upverter.com allow this).

About This Instructable

20,569views

241favorites

License:

Bio: Interhacktivity, Arts and Embedded Systems
More by CedHon:Arty IoT !? Collaborative PCB Intro 
Add instructable to: