Week 5:

 Electronics Production

Task

I have this week worked with electronic production and completed the following:

  • Characterized our PCB production process.
  • Milled a PCB for an In-System Programmer.
  • Soldered components to the In-System Programmer.

The People Behind

I completed majority of my work this week by following the instructions on Brians page about the FabTinyISP.

I recognize that FabTinyISP i one in the row of many AVR ISP programmers/boards and that the entire development is based on efforts of many people. I will (as Brian does) refers to Zaerc's FabTinyStar page for further information about the contributors.

Mounting tool in the Roland SMR-20 milling maschine

PCB production process

Using FabModules to Convert PNG-file to RML-file

See GIF for the proces of using FabModules to use a PNG-file to create a Roland SMR-20 compatible milling path (RML-file).

The steps below explains the milling process using Roland SMR-20:

  1. Leveling the underlay of sacrificial material.
  2. Fixture of the FR1 board using double sided tape.
  3. Install bit (1/64’).
  4. Zeroing XY-axis at a suitable location.
  5. Lowering the bit to the top of the material.
  6. Zeroing Z-axis and then raise the Z-axis.
  7. Write Down Maschine Coordinates.
  8. Mill the PCB.
  9. Change bit (1/32’) and repeat step 5-8.

Lessons Learnt About Milling

  • Don't over thighten the lock-screw.
  • Draw a desired origin for easiers XY-zeroing.
  • Make sure that the material is sufficiently mounted.
  • Note the 'mashine position' after setting user origin.
  • Always raise Z-axis after zeroing it.
  • Be ready to pause if the milling does not look right.

Milling PCB for the FabTinyISP
Top: Newly milled PCB for the FapTinyISP
Bottom: Removing residual copper

Cleaning, Preparing and Checking PCB

The milled PCB needs some post processing before components can be soldered on.

I first dusted of all cut away material. I then washed the PCB in water and soap and ensured that all adhesive material was removed from the back.

Depending on the amount of offset selected while creating the RML-file there might be a need to manual remove residual copper from the front of the USB-tip. The copper was easily removed with a small knife.

I finally went through the PCB to check it for any unintentionally broken connections.

Soldering Components to the PCB

Preparing Components

Components

  • 1x ATtiny45
  • 2x 1kΩ resistors
  • 2x 499Ω resistors
  • 2x 49Ω resistors
  • 2x 3.3v zener diodes
  • 1x red LED
  • 1x green LED
  • 1x 100nF capacitor
  • 1x 2x3 pin header

Soldering Components

Programming the FabtinyISP

Required Software & Firmware

I followed Brians guide and completed the following on my Mac running High Sierra (OS 10.13.3):

Programming the ATtiny45

I then ran the following commands:
make
Opened the 'Makefile' and changed it to reflect that I am using the ATMEL ICE programmer.
PROGRAMMER ?= atmelice_isp
I plugged the board via a USB extension cable to a USB port and the red LED illuminated. Then I connected the ATMEL ICE programmer to the ISP header on my board (with the tap pointing towards the Attiny45). And ran the following command:
make flash
Everything until this point went exactly according to the guide. Instead of observing several progress bars while the ISP was programmed I received the following error message:
avrdude: usbdev_open(): did not find any USB device "usb"

Attempting to Program FabTinyISP
Adding ATMEL ICE to Extensions and Config File

Challenges Using ATMEL ICE on Mac

This lead to a weekend long investigation throught which I found several cahllenges, learned a lot but in the end unfortunately had to surrender.

I hope that the following highlights will contribute to the community (and that the community might reply with some answers):

programmer
id = "atmelice_isp";
desc = "Atmel-ICE (ARM/AVR) in ISP mode";
type = "jtagice3_isp";
connection_type = usb;
usbpid = 0x2141;
;

Closing Remarks and Conclusion

Messing around with Terminal, AVR software, programmer definitions, config and kext files has not just been a waste of time (though it at one point surely felt like it).

I have learned alot during this week and everything paid off the first day back in the FabLab. I confidently opened a Ubunto, installed software, downloaded firmware and ran commands according to the guide (but almost from memory).

Everything went smooth using the ATAVRISP2 programmer and I finally had a functioning FabTiny In-System Programmer.