Week 04: Electronics Production

1.-Introduction:

This week I have worked with the choice of a circuit for a programmer. I have chosen the FabISP model. I have used the milling technique to fabricate the circuit board. I have practiced soldering, to put the electronic components. Then I have programmed the FabISP

My week journal:

2.-Characterize the design rules:

If you want to know the group assessment of this week, click on the image of SediCupCt.

3.-My first FabISP

to work in this week, I selected an In-System Proramer (ISP). In this case I selected the Neil's model FabISP.
https://fabacademy.org/2019/docs/FabAcademy-Tutorials/week04_electronic_production/fabisp.html

I dowload the circuit board traces, and the outline in png to work with this in the software to milling.

I also download the labeling diagram board, to know where I should solder the different components that I need.

The list of components is:
x1 ATTiny 44 microcontroller
x1 Capacitor 1uF
x2 Capacitor 10 pF
x2 Resistor 100 ohm
x1 Resistor 499 ohm
x1 Resistor 1K ohm
x1 Resistor 10K
x1 6 pin header
x1 USB connector
x2 jumpers - 0 ohm resistors
x1 Crystal 20MHz
x2 Zener Diode 3.3 V
x1 usb mini cable
x1 ribbon cable
x2 6 pin connectors

To mill the ISP I use a 1.57mm thick PCB and to generate the g code I use the Cut 2D software. I will need a 0.4mm bit to make the tracks and a 0.8mm bit to cut the copper board.

I generate the code for the milling of the ISP cut.

Then I take the code to the software that controls the milling machine. So I put the copper plate in the area for milling, I put the milling bit, the origin of the milling and I run.

With the plate milled, now I take all the components that I am going to solder.

4.-Soldering the FabISP

5.-FABISP Programing

I connect my FabISP to the computer with the mini usb connector, and it appears in the device manager, but the FabISP is unknown because I need to program the microcontroller. At the moment, this is normal.


I need to get and install avrdude.
“WinAVR (tm) is a suite of executable, open source software development tools for the Atmel AVR series of RISC microprocessors hosted on the Windows platform. Includes the GNU GCC compiler for C and C++.”

For help and reference: WinARV User Manual: help manual
Later, I use guide to install the drivers, follow the steps: https://learn.adafruit.com/usbtinyisp/drivers
To Driver Download: Adafruit

Now I download the FabISP drivers.

** Before installing drivers, I connect a USBtiny board that is already programmed and install the drivers so that it detects it. I connect a UBBTiny and see that it detects it.

To continue, I rely on the following guide: http://fab.cba.mit.edu/classes/863.16/doc/projects/ftsmin/windows_avr.html

1. Unzip the ARV Toolchain in the desktop: avr8-gnu-toolchain-win32_x86 2. I install GNU 3. I install AVRdude: in program files 4. Set environment variables

After this steps, I install Zadig: https://zadig.akeo.ie/

6.- Git Bash:

Now is the time to use the console, in this case with Git Bash, to program the microcontroller.

*** In the makefile file change the line "AVRDUDE", by my programmer, in this case I activate the usbtiny and deactivate the avrisp2.

Connect the two programmers with the 6-pin cable

From git, activate the location of the firmware folder and run the commands:

cd Desktop/firmware
(cd Desktop/fabISP_mac.0.8.2_firmware)
make clean

make hex

make fuse

make program

Disconnect the programmer used to program our board and to verify, we only connect our board to see that it has been properly programmed. It should appear in device manager.

if it is detected by the computer, the jumpers can already be unsoldered (R = 0)


6.- I've had some issues:

1.- It was not very clear, if you have to use a "mother" programmer to program our board. In some tutorials, it seems that it is not necessary. First of all, I started without a programmer and I didn't get anything until I read correctly that you had to use another programmer to program the board.

*** The solution was to use another programmer connected by 6 pin connector to program my FabISP.Remember to configure the "makefile" with the microcontroller that is being used (in my case it was the Atiny44).

2.- When I programmed my board, I had no errors programming with Git Bash, all steps were 100% complete and error-free. But in device manager my board was not recognized, I took a morning to find out why. It was a USB pin, which gave continuity with the multimeter, but the solder lacked more tin to fix it better.

*** Although it was 100% well programmed, the solution was to review the solder of the pin indicated in the image, and the computer detected it.

7.- My experience and conclusions from WEEK4:

Until this week I think that no electronic board had been milled. It was a bit fun preparing it for me. During the race I had used OrCad, but only to draw circuits, not to get results. As OrCad is not free, I used Eagle and it is really fine once I got used to it.

To solder the plate it was regular. I say regular because I had not welded for years and when programming I had problems. The solution was to check the solder and it worked.

I have never made my own programming circuit so I learned quite a bit this week.

“What went wrong”: A USB pin from the programmer, which gave continuity to the multimeter, gave problems. The solder was missing more tin to fix it better.

“What went well”: When fixing the solder, I work first time. When programming it gave no problem.

“What will you do differently next time”: I would try some programmer for SAM microcontrollers and other welding technique.

SEE YOU NEXT WEEK!