GO BACK

WEEK FOUR: Electronic Production



Electronic Production

This week i am going to make "FAB ISP" i am using Roland Modela MDX 20



I have done fab isp using FTDI cable to connect to the pc for the pre-fab Academy , so i will be doing Valentins Board, Since in that design there is tricky idea to power the micro-controller durning the initial burning



The 0 OHM resistor is used to power the micro-controller for the first time it is designed such a way that we can braek of the resistor part after the initial burning of AtTiny 44A,This is the design



I have set the copper plate and since i was milling first choosed the 1/64 bit and adjusted the bit to the space i wanted to mill and brought to the right place and using allen keys made the bit touch the surface

then i did'nt got the right milling ,

since i found the depth is not enough for my board earlier i gave it "-0.1" and i have changed it to "-0.15" then it started milling correctly, After Completion of milling changed the bit to "1/32" and loaded the cut out image and got it correctly like this



Here goes my FabISP

I Just picked all the Components and kept it in the respective slot in the list that i made in my letter pad so that i can pick things easly while soldering,Now i wanted start soldering I was not a SMD Solder expert so need some time on exploring several methods and so as to choose one .that suits me,So i choosed to try all 3 methods i found and choosed one like dropping lead in the place i wanted to solder before then place the component and just heat the lead drop and solder directly the other side.

Finally my board goes here after soldering



Now i wanted to Program the ISP

Programming the ATtiny 44A

<-- Before using the FabISP, you need to program the ATtiny44 on it. To do this, I used another (programmed) FabISP. It's also possible to used Atmel ICE or Arduino to program the Attiny44.
We need Avrdude (for programming) and GCC (to compile C code). To get GCC and avrdude on Ubuntu, I used tutorials from fabacademy, How To Assemble and Program the FabISP.
Don't forget to power the FabISP Board by using the 6-pin programming header
Download and UnZip the firmware.zip file from the Fab Academy Electronics Production page and move into the newly created firmware directory. Open the firmware directory in terminal.
Make Clean
Make Hex
Now go to the make file generate in folder and open it with text editor. Edit the line in the make file for your programmer. I am using usbtiny to program my board, so I uncommented the below line:
AVRDUDE = avrdude -c usbtiny -P usb -p $(DEVICE)
Save the file and close,For the next lines the board had to be connected,Continue to enter these lines in folder opened in terminal.
make fuse
make program

Removing the solder jumper...!!

Highlight of this board is this feature that is we can remove the short connection after initial burning of the ATtiny44A



eRrOrS

#1

nadeem@codemonk [2] fabISP_mac.0.8.2_firmware % make program
avrdude -c usbtiny -p attiny44 -U flash:w:main.hex:i
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.

avrdude done. Thank you.

Makefile:122: recipe for target 'flash' failed
make: *** [flash] Error 1
nadeem@codemonk [2] fabISP_mac.0.8.2_firmware % make program
avrdude -c usbtiny -p attiny44 -U flash:w:main.hex:i
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.00s
avrdude: Device signature = 0x1e9207 (probably t44)
avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "main.hex"
avrdude: writing flash (2002 bytes):
Writing | ################################################## | 100% 2.01s

avrdude: 2002 bytes of flash written
avrdude: verifying flash memory against main.hex:
avrdude: load data flash data from input file main.hex:
avrdude: input file main.hex contains 2002 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 2.37s

avrdude: verifying ...
avrdude: 2002 bytes of flash verified

avrdude: safemode: Fuses OK (E:FF, H:DF, L:62)

avrdude done. Thank you.
avrdude -c usbtiny -p attiny44 -U hfuse:w:0xDF:m -U lfuse:w:0xFF:m

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e9207 (probably t44)
avrdude: reading input file "0xDF"
avrdude: writing hfuse (1 bytes):

Writing | ################################################## | 100% 0.00s

avrdude: 1 bytes of hfuse written
avrdude: verifying hfuse memory against 0xDF:
avrdude: load data hfuse data from input file 0xDF:
avrdude: input file 0xDF contains 1 bytes
avrdude: reading on-chip hfuse data:

Reading | ################################################## | 100% 0.00s

avrdude: verifying ...
avrdude: 1 bytes of hfuse verified
avrdude: reading input file "0xFF"
avrdude: writing lfuse (1 bytes):

Writing | ################################################## | 100% 0.00s

avrdude: 1 bytes of lfuse written
avrdude: verifying lfuse memory against 0xFF:
avrdude: load data lfuse data from input file 0xFF:
avrdude: input file 0xFF contains 1 bytes
avrdude: reading on-chip lfuse data:

Reading | ################################################## | 100% 0.00s

avrdude: verifying ...
avrdude: 1 bytes of lfuse verified

avrdude: safemode: Fuses OK (E:FF, H:DF, L:FF)
avrdude done. Thank you.
nadeem@codemonk fabISP_mac.0.8.2_firmware % make fuse
avrdude -c usbtiny -p attiny44 -U hfuse:w:0xDF:m -U lfuse:w:0xFF:m
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e9207 (probably t44)
avrdude: reading input file "0xDF"
avrdude: writing hfuse (1 bytes):
Writing | ################################################## | 100% 0.00s
avrdude: 1 bytes of hfuse written
avrdude: verifying hfuse memory against 0xDF:
avrdude: load data hfuse data from input file 0xDF:
avrdude: input file 0xDF contains 1 bytes
avrdude: reading on-chip hfuse data:

Reading | ################################################## | 100% 0.00s

avrdude: verifying ...
avrdude: 1 bytes of hfuse verified
avrdude: reading input file "0xFF"
avrdude: writing lfuse (1 bytes):

Writing | ################################################## | 100% 0.00s

avrdude: 1 bytes of lfuse written
avrdude: verifying lfuse memory against 0xFF:
avrdude: load data lfuse data from input file 0xFF:
avrdude: input file 0xFF contains 1 bytes
avrdude: reading on-chip lfuse data:

Reading | ################################################## | 100% 0.00s

avrdude: verifying ...
avrdude: 1 bytes of lfuse verified

avrdude: safemode: Fuses OK (E:FF, H:DF, L:FF)

avrdude done. Thank you.

nadeem@codemonk fabISP_mac.0.8.2_firmware %


This error ocuured when i connected my ISP to the system and in CLI checked the available ports by lsusb and tinyISP was not able to found,that was because some soldering issues in the ISP my microcontroller pins was not precisely soldered, i have corrected the issue by soldering it properly,there where another problem too.Problem was that a small piece was not properly milled so i had to manually remove it...it was just a small track

#2

nadeem@codemonk [1] emb % avrdude -P usb -b 19200 -c usbtiny -p m328p -v

avrdude: Version 6.3, compiled on Feb 21 2016 at 13:33:25
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg Wunsch

System wide configuration file is "/etc/avrdude.conf"
User configuration file is "/home/nadeem/.avrduderc"
User configuration file does not exist or is not a regular file, skipping

Using Port : usb
Using Programmer : usbtiny
Overriding Baud Rate : 19200
avrdude: usbdev_open(): Found USBtinyISP, bus:device: 001:052
avrdude: usbdev_open(): Found USBtinyISP, bus:device: 001:053
AVR Part : ATmega328P
Chip Erase delay : 9000 us
PAGEL : PD7
BS2 : PC2
RESET disposition : dedicated
RETRY pulse : SCK
serial program mode : yes
parallel program mode : yes
Timeout : 200
StabDelay : 100
CmdexeDelay : 25
SyncLoops : 32
ByteDelay : 0
PollIndex : 3
PollValue : 0x53
Memory Detail :

Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
eeprom 65 20 4 0 no 1024 4 0 3600 3600 0xff 0xff
flash 65 6 128 0 yes 32768 128 256 4500 4500 0xff 0xff
lfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
hfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
efuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
lock 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00
signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00

Programmer Type : USBtiny
Description : USBtiny simple USB programmer, http://www.ladyada.net/make/usbtinyisp/
avrdude: programmer operation not supported

avrdude: Using SCK period of 10 usec
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.

avrdude done. Thank you.

nadeem@codemonk [1] emb % lsusb
Bus 004 Device 002: ID 8087:8000 Intel Corp.
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 002: ID 8087:8008 Intel Corp.
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 002: ID 174c:1351 ASMedia Technology Inc.
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 413c:2107 Dell Computer Corp.
Bus 001 Device 052: ID 1781:0c9f Multiple Vendors USBtiny
Bus 001 Device 003: ID 046d:c077 Logitech, Inc. M105 Optical Mouse
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
nadeem@codemonk emb % avrdude -P usb -b 19200 -c usbtiny -p m328p -v

avrdude: Version 6.3, compiled on Feb 21 2016 at 13:33:25
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg Wunsch

System wide configuration file is "/etc/avrdude.conf"
User configuration file is "/home/nadeem/.avrduderc"
User configuration file does not exist or is not a regular file, skipping

Using Port : usb
Using Programmer : usbtiny
Overriding Baud Rate : 19200
avrdude: usbdev_open(): Found USBtinyISP, bus:device: 001:055
AVR Part : ATmega328P
Chip Erase delay : 9000 us
PAGEL : PD7
BS2 : PC2
RESET disposition : dedicated
RETRY pulse : SCK
serial program mode : yes
parallel program mode : yes
Timeout : 200
StabDelay : 100
CmdexeDelay : 25
SyncLoops : 32
ByteDelay : 0
PollIndex : 3
PollValue : 0x53
Memory Detail :

Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
eeprom 65 20 4 0 no 1024 4 0 3600 3600 0xff 0xff
flash 65 6 128 0 yes 32768 128 256 4500 4500 0xff 0xff
lfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
hfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
efuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
lock 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00
signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00
Programmer Type : USBtiny
Description : USBtiny simple USB programmer, http://www.ladyada.net/make/usbtinyisp/
avrdude: programmer operation not supported

avrdude: Using SCK period of 10 usec
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e950f (probably m328p)
avrdude: safemode: hfuse reads as DE
avrdude: safemode: efuse reads as FD

avrdude: safemode: hfuse reads as DE
avrdude: safemode: efuse reads as FD
avrdude: safemode: Fuses OK (E:FD, H:DE, L:FF)

avrdude done. Thank you.


Error again..!! No vcc is connected to my ATtiny44A,when solder jumper was removed in the valentin's ISP there is no vcc connection when i analysed the PCB so what to do,I have only one way thats to connect an external piece of wire


making an isp header(2x3)
here goes my "hero"

All set..! its working properly...but only on desktop pc's ,i was not able to use the same in the laptop.


You can download all my Design Files are here..!!


Back to top