FabAcademy 2016Students WW labs Schedule Videos 2016Tutorials Historical Archive Kamakura member Asian network fabLab Kamakura

logo image

4.Electronics production

This week's assignment

Make an in-circuit programmer


This week I made fabISP.

I have used below tools and materials to complete this assignment.

  • Software:
  • -fabmodules(png->rml data)
  • -Illustrator(modify png data )
  • -ArduinoIDE(program Arduino as Arduino ISP)
  • -WinAVR(AVRdude,program ISP board)
  • -Firmware(program ISP board)
  • -USB driver(Win)(program ISP board)

  • Hardware:
  • Roland SRM-20(Milling machine)
  • Windows10 PC 64bit
  • Soldering Iron
  • Tweezers(Laser cutter)
  • Scraper
  • Digital Multimeter
  • Soldering Iron
  • Tweezers
  • Nipper
  • Arduino UNO (ISP programmer)
  • Heat gun
  • Magnifying glass

  • Materials:
  • PCB (FR-1) x 1
  • Attiny44 x 1
  • Resonator 20MHzx 1
  • Capacitor 1uf x 1
  • Resistor 0 ohm x 1,100 ohm x 2, 499 ohm x 1, 1K ohm x 1, 10k ohm x 1
  • Zener diode 3.3Vx 2
  • Mini USB Connector x 1
  • 6 Pin SMD Type Male Headers x 3
  • 6 Pin Sockets x 2
  • 6 Wire Ribbon Cable x 1
  • Mini USB Cable x 1
  • A-B USB Cable x 1
  • Desoldering Braid x 1
  • Solder x 1
  • Flux
  • Ethanol
  • Cotton bud
  • Double-sided tape
  • Mitsuwa Paper Cement Solvent

  • Procedures:
    1. Edit PNG file
    2. Milling board
    3. Soldering
    4. Make Cable
    5. Set Arduino as ArduinoISP
    6. Install WinAVR
    7. Programming
    8. Remove jumper


    Procedures:

    1.Edit PNG file

    This time I chose basic design. "hello.ISP.44.res" Which has resonator instead of crystal. As a first step I used illustrator to modify the Logo.

    Use fabmodules transfer PNG file to rml file.

    Trace data :image (.png)>Roland mill (.rml)>PCB traces (1/64) Machine:SRM-20 set xyz as 0 and cut depth0.2mm

    Interior data :image (.png)>Roland mill (.rml)>PCB traces (1/32) Machine:SRM-20 set xyz as 0 and cut depth0.6mm

    NG. some place are merged.

    OK.

    Set resolution appropriately. This time 1269ppi

    What I've learned

    First time when I added the logo, didn't well consider data resolution. After milling the PCB board, I have found resolution must be exactly same as original one. Otherwise it will influence for circuit design.


    2.Milling board

    Use Roland SRM-20 to milling PCB board via roland original software "VPanel for SRM-20".

    Finished. When you change the bit, need to be very carefully especially 1/64. It's fragile.

    After finishing milling, For the purpose of removing a surface dirt, washed PCB board with water and soap.

    What I've learned

    When using VPanel(SRM driversoft), data must be completely removed everytime. Otherwise machine will milling the data from top of the list. I didn't know this and wasted a PCB board.

    NG. I did't check the circuit design carefully, 3 places were connected.

    OK. no merged place.

    Error occured and stopped on the way. Possibly rml file has the problem, so I remake rml file again.

    Left one has stopped on the way.(maybe kind of data error)only milled twice. Right one has completed triple offset.


    3.Soldering

    Long time no soldering SMT parts. It's so small. First heat the PCB then put the solder. No need to put too much solder. Use flux just before soldering.

    What I've learned

    I forgot to solder USB connector's signal pins, some place seemed short and re-soldered. From small to big component. From center to out side. Test every point by using multimeter. So that have confidence to go next software step.


    4.Make Cable

    Use rainbow cable and 6pin sockets. No need to place signal cable one by one. Cut superfluous cables.


    5.Set Arduino as ArduinoISP

    This time used Arduino instead of ATAVRISP2 programmer.
    Summon "ArduinoISP" and compile, upload to Arduino board.

    What I've learned

    Arduino can do so many things. If don't know how to do it, just google. Using appropriate keyword to search.


    6.Install WinAVR

    I wanted to use AVR studio instead of WinAVR. However AVR studio+AruduinoISP's information was not so much. This time just follow tutorial.

    Before installing WinAVR. I was worried about WinAVR is too old and abondoned for 6years... So I back up relevant system registry before installing WinAVR.

    As expected WinAVR has overwrited Sytem path. Luckily I can restore from registry back up.

    What I've learned

    Using old software, there are so many useful information and stable. However sometime cause problem with new enviroment(OS). It's better to try new sofware and leave information on the web.


    7.Programming

    Download firmware and modify makefile avrdude setting

             AVRDUDE = avrdude -c stk500v1 -b19200 -P COM5 -p $(DEVICE)
             

    Connect Arduino and PCB board.(pins need to follow Arduino ISP)

    I had long & hard time in this part. Rootcause may be hardware, software, evrything.

    I cannot see any feedback, because of garbled characters. I changed encode setting.

    Borrowed tutor Mio's Mac. Succeeded easily.

    With Win10 enviroment, just go back and start from 1st step,finally succeeded!!!
    make clean>make hex>make fuse>make program (click picture to see log)

    What I've learned

    Check hardware first, using basic method, somtimes go back to 1st step. Error message is very useful to solve the problem.


    8.Remove jumper

    After complete programming and recognition by PC. remove solder jumper(2place).

    Files


    Appendix

    What I've learned

    • This week I spend a lot of time to solve the problem.
    • It's better to aware all kind of basic knowledge and procedure before I start working.
    • 1st check hardware, make sure harware is no problem then go to software
    • If spend lots of time and confused, it's better to refresh and start from the biggining
    • Basic method is the most important!
    • Though I plan to get Mac, I still want to try Win enviroment + AVR studio