Week 4: electronics production

FabISP fabrication

Files are downloaded from here.
At FabLab Sorbonne Université
In our Lab, we have a C.I.F. "Technodrill 2" mill. I followed the tutorial written by Antonyo, one of my former students. The only change we made is related to the Z positionning: the contact between the head and the PCB is detected using a multimeter that emit a sound when the circuit is closed.

Then, the head is lowered depending on the thickness of the copper layer on the PCB (in our case 350um).

At FabLab Digiscope
Under Mac OS X, open FabModules under Chrome rather than Safari. Would be intersting to test with Firefox... Choose input file (png), output format (rml). Note resolution and dimensions of the image: Process 1/64 Mills: 1/64 SE 2FL AlTiN Coated s/c micrograin, Carbi-Universal RoundSE)
  • 1/64 size in inches (tool size 0.397mm)
  • SE: square end
  • 2FL: ?
  • Al-Ti-N Titanium aluminium nitride
  • Choose Machine (to write on the machine itself !)
  • speed default: 4mm/s → keep
  • keep everything else : offset overlap: 50%
  • Calculate
  • Be carefull: the RML file obtained with cut-past from Safari is human readable, but wrong need to be checked again. Contour with 1/32 tool →. The board was suddenly detached from the table of the machine. I therefore had to finish the cutting with a saw and a cutter...

    Since the components finally arrived, I managed to finish the FabISP board (March 23rd)

    Here is the result:

    I checked carefully each line on the PCB before starting soldering. Then I checked each soldering point (when possible) while soldering the component, using systematcially conductivity with a multimeter. Although confident in the quality of the board, in the end, the mounted PCB was quickly reflowed (260°C for 2 min), to ensure perfectly homogeneous soldering. Temperature is limited in accordance with ATTiny datasheet. The connector used for SPI port is the most sensitive part: insulator is made of a plastic that start to melt (nothing visible but smells). Circuit is visually inspected with microscope (no picture, unfortunately).

    FabISP programmation

    Tools installed
  • Arduino IDE → done !
  • avr-gcc → done thanks Fink !
  • Atmel Visual Studio 7 → done in VirtualBox (runs only under Windows - just in case)
  • CrossPack and V-USB Seems finally useless.
  • During compilation stage, it appeared I needed some complements to avr-gcc; I also installed following Fink packages:
  • avr-libc avrdude
  • libsub libusb1 (not sure it is mandatory)
  • byacc, flex, bison (tell me why !)
  • readline6 readlines6-shlibs (otherwise, make flash will fail, because it expects libreadline)
  • Using ArduinoISP
    I was about to test it, when we had to leave FabLab Digiscope. As I managed to use fabISP_mac.0.8.2_firmware, I only have my own FabISP... and no other board to program it. Therefore I decided to follow explanations by Keith Tan, FabAcademy Class 2016 and those of Shawn. Other tutorials around this:
  • Nice tutorial on Meow
  • Arduino web site to build an Arduino
  • Using an Arduino as FTDI programmer
  • Other useful stuff: ISP pinout on Arduino UNO, from arduino forum.

    The FabISP SPI port is connected to the Arduino using "old fashioned" I/O (using D13-D10 instead the Arduino SPI port - I have to try this again later, although it should be exactly the same).

    I have mounted the LED 9/10/11 as recommended in the FabISP code to provide information about the ongoing programmation process: blue = heartbeat; yellow = programming ; red = error.

    After checking correct install of avrdude/avr-gcc, the direct use of the Makefile from the above links works like a charm. The only adaptation needed is the one regarding the usb port used, and the programer (generic arduino do not work; use stk500v1, which is the component used on the Arduino board). After burning, FabISP recognition by my Mac OS X (El Capitan 10.11.2) laptop is confirmed with something equivalent of lsub under Linux :

    simon@h:455:601$ioreg -p IOUSB -l -w 0|grep Fab
    +-o FabISP@14100000 "USB Product Name" = "FabISP"

    I have been playing a little bit with usbconfig.h to see how it affects the above line.

    Word of the week

    ISP can use SPI.

    Previous week
    Back to index
    Next week