Skip to content

5. Electronics production

Introduction

This week I worked on PCB Fabrication and Assembling to build FabTinyISP whish is the a circuit programmer board.

Group assignment:

  • Characterize the design rules for your PCB production process: document feeds, speeds, plunge rate, depth of cut (traces and outline) and tooling. document your work (in a group or individually)

For the Group Work please check the Group Page for more details.

Individual assignment:

  • Make an in-circuit programmer by milling and stuffing the PCB, test it, then optionally try other PCB fabrication process.

For this assignment I’ll make FabTinyISP and following the instruction in this link: Building the FabTinyISP

Requirements for this project:

Tools:

Electronics Components :

  • 1x ATtiny85
  • 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

PCB Fabrication

  1. Download the below PNG files for the traces from here

  1. Download the below PNG files for the board outline from here

  1. Go to http://fabmodules.org to generate the cutting file for the machine.

Board Traces

  1. select image (.png) and upload the traces file

  1. Select Roland mill (.rml)

  1. Select PCB traces (1/64)

  1. Select machine “SRM-20” and set X0,y0 and z0 to 0

  1. click calculate

  1. Check the file and click save

Board Outline file

  1. select image (.png) and upload the board outline file

  1. Select Roland mill (.rml)

  1. Select PCB outline (1/32)

  1. Select machine “SRM-20” and set X0,y0 and z0 to 0

  1. click calculate

  1. Check the file and click save

Desktop Milling Machine

Use the Desktop Milling Machine Roland SRM-20 to cut the PCB

  1. For making PCB I used fr1 board

  1. Add double sided tape to the fr1 board and stick to the milling board.

  1. Before starting install mill bit (1/64) in the machine.

  1. Start Roland VPanel for SRM-20 software and move X,Y and Z to Home position and set Origin Point.

  1. Click Cut and upload the trace file (*.rml)
  2. Check the traces after finishing the milling

  3. Now Change the milling bit to (1/32) and move it to surface of the fr1 board and set Z origin to ZERO.

  1. Click Cut and upload the outline file (*.rml)
  2. Check the outline after finishing the cutting.

  1. Remove the PCB from the machine and check the traces

PCB Assembling

For the PCB Assembling you need the following components:

  • 1x ATtiny85
  • 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

  • Use A4 paper and double sided tape to stick the components.

  • Switch on solder iron and set temperature to 330 degree

  • For soldering I follow this nice SMD Soldering Tutorial
  • Start adding solder to one side of the component part

  • Solder one side of the component

  • Now solder the other side of the component

  • Repeat the same steps for other components

  • For the Attiny85 solder one leg first and then solder the other legs

  • Attiny85 is hard to solder and I have soldered two legs together because they are very close to each other. To fix this issue I used solder wick to remove the solder.

  • Use multimeter to check connectivity and if there any short circuit

  • Use Knife cutter to remover extra copper

  • Plug the USB Tinny board to USB port and check the power light

Programing with Arduino

For programing the FabTinyISP I used Arduino Uno as programmer and follow the instruction from the following tutorial Programming ATtiny85 with Arduino Uno.

  • I connect ISP header of FabTinyISP to Arduino Uno
Arduino UNO Pin # FabTinyISP ISP Port
12 1-MISO
5V 2-VCC
13 3-SCK
11 4-MOSI
10 5-RST
GND 6-GND

https://en.wikipedia.org/wiki/In-system_programming

  • Add ATtiny boards to Arduino IDE. Open File -> Preferences and in the Additional Boards Manager URLs give this url https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json

  • Go to Tools -> Board -> Board Manager, then search for “attiny” and click install

  • Go to Tools and chose the Board:”ATiny25/45/85”, Processor: “ATiny85, Clock:”Internal 8 MHz”:

  • Create new programing sketch in in Arduino IDE
void setup() {
  pinMode(2, OUTPUT);
}
void loop() {
  digitalWrite(2, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);                       // wait for a second
  digitalWrite(2, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);                       // wait for a second
}
  • Go to Sketch and clink on Upload Using Programmer

  • Wait for Done Uploading message and check the board

Programming the FabISP

To program the ISP board I follow this tutorial as guide and Meha documentation

  • Install Git for Window

  • Install Atmel GNU Toolchain for Windows

  • Install GNU Make
  • Download avrdude and extract to c:\Program File

  • Download avrdude-6.3-mingw32.zip and replace the files in “C:\Program Files\avrdude”

  • Download and install WinAVR

  • Update PATH

  • In order to program the attiny you need another USBtinySPI board and ISP cable

  • Download and lunch Zadig to install the driver

  • Download and extract the firmware to desktop

  • I’m using ATtiny85 for this board so I have to edit the MCU in the make file of the firmware and make sure it’s attiny85

  • Open Git bash and change the directory to firmware folder.

  • Run the following commands and check if there is no error.

Make -v

Avr-gcc –version

avrdude -c usbtiny -p t85

  • make

  • make flash

  • make fuse

  • make rstdisbl

  • Now plug the FabTinyISP and open Device Manager and you should find USBtinyISP

  • Open Arduino IDE, Go to Tools ==>Programmer==>USBtinyISP

  • Go to Sketch and clink on Upload Using Programmer

  • Wait for Done Uploading message and check the board

Last update: September 21, 2021