Home 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Final Project About Satstep

Electronics Production

assignment: make an in-circuit programmer by milling the PCB.

FabISP

Microcontrollers come blank with no information as to what the chip should do. When we create a new board we need to flash basic information onto it so we can access it from a computer, this includes even being able to be accessed via USB. The FabISP (Fab in system programmer) allows us to program blank AVR microcontrollers with this basic information.

This weeks task involves creating a FabISP from it's component parts. Milling the boards, selecting and soldering the components and finally flashing the board with the basic info we need to use it via the 6-pin ISP header.

I took the original board traces found on the FabAcademy website and edited them. I finally made the effort to start using another program to personalise the board. On Inkscape, I removed the cba logo and populated my board with a Memphis inspired pattern.

I struggled with this so had a go with Photoshop instead. The work flow is as follows:

  • Open file in Photoshop (DO NOT DRAG AND DROP)
  • Crop the image size if necessary
  • Use the 'paint bucket' tool to colour the background in white
  • Create a new blank layer
  • go to 'image' -> 'canvas size' and increase the height and width of the canvas by 1mm
  • With the original layer active use the 'magic wand' tool to select the new border
  • Fill this with white also using the paintbucket and hide the original layer
  • Now switch to black and fill the border on the other layer
  • CTRL + D to deselect the area created by the magic wand and the centre white.
  • Go back to the original layer and click CTRL + I to invert the image (also possible to do in FabModules)
  • Finally SaveAs both images separately as .png files
  • we milled the board using a Roland SRM-20 machine. We first had to clean the mounting board to ensure it was as flat as possible. There was some double-sided tape residue left over from the previous person and when cutting to a depth of 0.1mm this can make a big difference to the cut.

    mill ds tape residue mounted

    Once the mounting board is clean using a mixture of physical and chemical (isoporpyl alcohol) force, the blank board is attached using plenty of double-sided tape to ensure it is secure.

    We created the gcode for the miller using a web interface called fabmodules. FabModules uses png files to create the code and it cuts the black area and leaves the white. It is very easy to use and you can even 'invert the image' at this stage incase you forgot the final step in photo shop. The two files I created earlier were used first for the interior of the board using the 1/64" bit to cut the traces and then the exterior using the larger 1/32" bit. It is possible to set the offset of the milling (aka how far clear the traces are with -1 completely clearing the board and 1+ indicating how many passes the bit goes from the black/white intersection. We went with 4 as this gave a good edge and clear traces for easier soldering, but we didn't have to wait for all the unused copper to be removed. Once we had zeroed the machine using the 1/64" bit we could send over the gcode and begin cutting.

    file milling start milling error/success

    It is a good idea to start with the bit moving slowly across the piece and check the initial cut. My first cut (on the left) did not go so well. It turned out the drill bit had been broken and was just chewing up the copper. With a new bit my piece looked much better and really showed my Memphis pattern.

    completei completeii

    After the initial detail is cut we swap over to a 1/32" bit to mill the outside and release the board. For some reason I had some scaling issues when using inkscape to create my Memphis board which meant the xy zero was in a different position. This meant I had to do it again, but at least I had a piece to test soldering out on.

    components
    Components:
    • ATtiny44 Microcontroller : A great microcontroller for running simple programs. Small, cheap and easy to use.
    • Capacitor : This component stores energy, commonly used in circuits for local energy storage, voltage spike suppression and complex signal filtering. In this circuit they .......
    • Resistor : Adds electrical resistance to a circuit.
    • 'Jumpers' 0 ohm resistors : The jumper allows us to complete our circuit in places where the circuit crosses. This creates our '2.5 D' circuit
    • 6-pin Header : To program the microcontroller with the initial information.
    • USB Connector : To program the FabISP once flashed with the basic info
    • Crystal 20MHz : An electronic oscillator circuit that uses a piezoelectric resonator. This provides a clock input into our microcontroller
    • Zener Diode : Allows current to flow in the opposite direction when the diodes "Zener voltage" is reached. Semiconductor diodes normally have zero resistance in one direction and very high resistance in the other.
    soldered programming

    The soldering was tough, but satisfying. I was succesful on my first attempt, but I certainly need more practice, especially on the smaller pins. We used a solder iron set to 350 and I found the magnifying lights incredibly helpful.

    Once complete we did a 'smoke test' which involved simply plugging into my computer to test for an error (this would suggest a short-circuit). Mine was OK/not OK, the computer kept changing its mind so I decided to try my luck and go onto the programming step.

    programming walkthrough

    The first attempt was not succesful, but so I went back and resoldered some of my joints. The smoke test was flawless and the programming was a success.

    soldered

    For 2018, I had left my FABISP back in Barcelona and I had also not touched electronics for over 6 months. I decided to do a bit more that just mill and solder so I used eagle to create my board from scratch and I included an LED to the VCC circuitry, just to confirm power is being received by the programmer.

    This year Eagle seems to have been updated and the process I used last year to create the files was not the same. This year I used Illustrator

    The other way to export via Eagle is to:

  • On the 'board' window, turn off all the layers except for 'Top'.
  • File >> Export >> Image and save as a .png using settings; monochrome and 1000dpi resolution.
  • Open the file in Illustrator
  • click on the artboard editor and resize to the size of the image using the corner tags.
  • In the top right make the height and width of the art board 2mm bigger than the values that are there.
  • Finish with the artboard and then create 2 new layers.
  • move the board layer (probably layer 1) to the top.
  • on the bottom layer create a black square that covers the whole artboard.
  • On the middle layer draw a white square that covers board only (use the anchor points at the corners of the image)
  • If this is complete you can then turn off the middle layer with the top and bottom layers active.
  • File >> ExportAs >> save as _traces.png >> and make sure you maintain 1000dpi.
  • This time we need the outline, so make sure the top layer is hidden and the bottom and middle layer are showing
  • File >> ExportAs >> save as _border.png >> and make sure you maintain 1000dpi.
  • All set! Merry Milling!
  • The instructions for using the amazing Modela MDX-50 here.

    soldered

    I soldered this up and used a mac again to program.

    Another export format was DXF so I created a grasshopper definition which turns the odd collection of lines, arcs and surfaces into vectors with parametric trace widths. With this it was very easy to move straight onto the Roland Vinyl cutter to cut flexible circuits using copper tape. The cutter worked great, however my soldering skills were not a match, so I will try again a bit further down the line.


    All the files for this week can be found here
    2017
    2018
    Home