5. Electronics production

This week I worked on building my Fabisp programmer.

Code Example

This is the complete programming process documented to prove that the Fabisp programmer was programmed following the recommended steps in the tutorial…

Last login: Tue Feb 19 15:03:13 on ttys000

MacBook-de-Calendula:~ calendula$ cd desktop

MacBook-de-Calendula:desktop calendula$ cd fabISP_mac.0.8.2_firmware

MacBook-de-Calendula:fabISP_mac.0.8.2_firmware calendula$ make clean

rm -f main.hex main.lst main.obj main.cof main.list main.map main.eep.hex main.elf *.o usbdrv/*.o main.s usbdrv/oddebug.s usbdrv/usbdrv.s

MacBook-de-Calendula:fabISP_mac.0.8.2_firmware calendula$ make hex

avr-gcc -Wall -Os -DF_CPU=20000000   -Iusbdrv -I. -DDEBUG_LEVEL=0 -mmcu=attiny44 -c usbdrv/usbdrv.c -o usbdrv/usbdrv.o

avr-gcc -Wall -Os -DF_CPU=20000000   -Iusbdrv -I. -DDEBUG_LEVEL=0 -mmcu=attiny44 -x assembler-with-cpp -c usbdrv/usbdrvasm.S -o usbdrv/usbdrvasm.o

avr-gcc -Wall -Os -DF_CPU=20000000   -Iusbdrv -I. -DDEBUG_LEVEL=0 -mmcu=attiny44 -c usbdrv/oddebug.c -o usbdrv/oddebug.o

avr-gcc -Wall -Os -DF_CPU=20000000   -Iusbdrv -I. -DDEBUG_LEVEL=0 -mmcu=attiny44 -c main.c -o main.o

avr-gcc -Wall -Os -DF_CPU=20000000   -Iusbdrv -I. -DDEBUG_LEVEL=0 -mmcu=attiny44 -o main.elf usbdrv/usbdrv.o usbdrv/usbdrvasm.o usbdrv/oddebug.o main.o

rm -f main.hex main.eep.hex

avr-objcopy -j .text -j .data -O ihex main.elf main.hex

avr-size main.hex

   text    data     bss     dec     hex filename

      0    2100       0    2100     834 main.hex

MacBook-de-Calendula:fabISP_mac.0.8.2_firmware calendula$ 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

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 (H:FF, E:DF, L:FF)



avrdude done.  Thank you.



MacBook-de-Calendula:fabISP_mac.0.8.2_firmware calendula$ 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

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 (2100 bytes):



Writing | ################################################## | 100% 1.39s



avrdude: 2100 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 2100 bytes

avrdude: reading on-chip flash data:



Reading | ################################################## | 100% 2.21s



avrdude: verifying ...

avrdude: 2100 bytes of flash verified



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



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

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 (H:FF, E:DF, L:FF)



avrdude done.  Thank you.

Using MODS to prepare the PCB

Milling the PCB

Once the milling process finished…

The final result of the group assignment

Soldering the SMC on my PCB

And here is my final Fabisp

From Youtube

At my Regretfully, the programmer was not recognized by the computer after being correctly programmed…

I made a second PCB on Friday February 22nd. This one was programmed and recognized at the first trial…