How to Make [Almost] Anything | Life + Times Of v.2020

Cody Paige | Ph.D. Candidate
MIT | Aeronautics and Astronautics

 

 

 

 

 

 

Projects

[05 In-Circuit Programmer]

Setting up Clank

So let me be clear, the title of this week is a little deceptive. The majority of my time this week was spent setting up Clank. Let me introduce you. Clank is an at-home circuit mill that Jake, our fantastic TA, so kindly put together for us. It's basically a giant lego set that we were given videos on how to put it together. It took me nearly 7 hours to get this beauty built. Here are all the parts ready to be assembled hanging out on my sewing desk:

The lego kit.

The videos were great walk-throughs. Only recommendation I would have is for someone to watch a step right to the end, then go back and do that step. Since Jake was figuring this out too, sometimes he'd find he had to adjust an instruction slightly and if I'd paused to finish it before watching the full thing I'd have to go back, take that step apart and re-do it.

 

Trying out Clank

Next up I went through Jake's how-to video on using Clank. I managed to get the controls set-up and running, albeit with some issues from being a Mac user. One troublesome aspect I ran into was controlling the z-axis. To do this on a Mac keyboard, you press the Z key and then can use the up/down arrows. For the controls, the amount of movement for each key stroke can be changed in an x/y/z box in mm/key stroke. I had the x/y movements sent to 10 mm/keystroke since I was moving to position quickly. I had the z movement set to 0.1 mm. Unfortunately when I pressed z, although it did in fact move in the z-direction, it used the y inputs instead of the z inputs. This meant far too big of a downward z-movement, and, you guess it, a broken bit! Luckily it wasn't one of the expensive 1/64th bits but all the same, a bit of a disaster for a first move!

The incorrect z-parameter. Broken bit.

Characterizing Clank

Once the controls were sorted, I needed to characterize clank - how close can my traces be and still have good seperation, how thin can my traces be? I used the provided .pngs for a gauge shown here.

.png of the gauge interior. .png of the gauge outline.

I then used mods to make the g-code that Clank uses to run these. The settings I used were for a 1/64" tool (although I used this for the engraving tool as well). I used a 0.0156" tool diameter, 0.003" cut depth (0.003" max depth) and 4 offsets. For the outline I used a 1/32" tool diameter (0.0312"), 0.024" cut depth and a 0.065" max depth.

The gauges - top engraving, bottom, 1/64 inch.

The engraving bit was much cleaner (top in image) at cutting so I'll be using this bit for my circuits. I also found out that my base is very slightly slanted (notice it stopped cutting at the right hand side of the 1/64" board) so I'll add a few extra layers of double sided tape on the right side when placing my pcb to offset this.

Making Cicuits!

Here are some basic instructions for creating circuit boards using clank:

  1. Make or select a circuit board to print and save it as a png.
  2. Make G-code for both the traces and the exterior of the board (two seperate files). I used mods to make my g-code for milling.
  3. Set clank's zeroes on your pcb using the controls with the engraving tip - don't forget to 'unclick' the controls before you set the zeroes
  4. Load the g-code for the traces and hit run!
  5. Change to the 1/32" tool and reset your z-zero only - do this by setting the bit onto the pcb, hit 'get pos' and then change the z to 0.00. Hit 'set pos' and you're good!
  6. Load the g-code for the outter edge and hit run (this part is loud...)
  7. Done! Now go stuff your board.

I ended up making 3 circuit boards. From the first one was the USB-FT230 board.

USB-FT230XS traces.

I realizedd that when creating the g-code of the outline, you need to invert (have the black on the inside). I found this out since the USB section didn't actually fit into the USB slot! I didn't end up stuffing this board since the micro-controller was not included in our kit (and the USB wouldn't have fit anyway).

Next I made the TinyFab.

TinyFab traces.

This turned out great! I stuffed this board despite the fact that I also didn't have the micro-controller for this board (the ATtiny45). I needed to practice my soldering. Here are the two first boards

First two boards.

Finally, I made the hello.t412.blink board for the ATtiny412. I included the parts that I'll be stuffing as well, and a USB just for size reference.

hello.t412 traces. hello.t412 circuit board

hello.t412 traces - mods settings. hello.t412 outline - mods settings

Stuffing!

No, not the turkey variety. This was my first time soldering a circuit board, and I gotta tell you, if you have shaky hands or less than superhuman eyesight, this game is not for you! The average part is around 2mm x 1mm and they do NOT want to stay put. Here are a few things that I learned from stuffing my boards:

  • 'Glue' the part down first by putting a small bit of solder onto the pad where one side of your part is going. Lay the part on top of this and hold it down with your very fine tip tweezers. Then, heat up the top of the part with your soldering iron until the 'glue' you set down melts and then quicklly let go... hopefully it has stuck in the right spot!
  • Heat up the part, not the solder - use your solder like a glue stick applying it to your part and board while heating the part from the other side (yes, the other side of the sub-1mm part). It doesn't work to put the solder on the iron, it just crawls up the iron and doesn't stick to your part.
  • Hopefully I'll add to this list as I figure out how to solder better myself!

    Here's the final stuffed board! (Look at that poor sad capacitor... so crooked)

    Stuffed ATtiny412.

    Source code

  • Gauge Traces
  • Gauge Outline
  • TinyFab Traces
  • TinyFab Outline
  • Attiny412 Traces
  • Attiny412 Outline
  •