****************************************************************************************************************
****************************************************************************************************************
To create our Fab Isp Boards here in OpenDot, instead of using the classic milling process, we try to used the TROTEC SPEEDY 100 FLEXX laser cutter machine to engrave the pcb board.
The Trotec Speedy 100 have 2 different type of laser :
---> The first one is a CO2 Laser Source
---> The second one is a Fiber Laser.
The Fiber Laser have a natural physic frequence, that is not reflected by the metal, like the CO2 laser source.
So this source, give us the possibility to try to engrave the metal for doing our PCB.
For more details about this process, I invite you to look the development page of our classmate Enrico Bassi who is the developer of this process.
Software Trotec Settings
As you can see the process of creation of the board through laser engraving works rather well.
It's good but not perfect.
I want you all to note, that the text of my name is made with 2 pixels dimension lines
For the next set we will try to do 7 pass of Fiber Laser engraving
After download the FabISP Labeled Board, I followed the diagram for solder the components and place them on the board.
The first step that i do, is to use solder to covered all circuit traces of my board.
This process is for make the solder process more simple.
It's also a process that makes the circuit bright and similar to a jewel.
Subsequently I have proceeded to the assemblage of all the components, following the FabISP Labeled Board
For programming a Fab ISP we need:
Connect Arduino and FabISP following the diagram below:
| Signal | FabISP | ArduinoUNO |
| MISO | 1 | 12 |
| VCC | 2 | 5V |
| SCK | 3 | 13 |
| MOSI | 4 | 11 |
| RESET | 5 | 10 |
| GND | 6 | GND |
--> EDIT THE MAKEFILE
Once connected the two boards, we need edit the Makefile : once opened, like a text file, remove the "#" in the line with "usbtiny" and add a "#" in the line with the "avrisp2"
"..........
DEVICE = attiny44
#F_CPU = 12000000 # edit this line for crystal speed, in Hz
F_CPU = 20000000 # edit this line for crystal speed, in Hz
FUSE_L = 0xFF
FUSE_H = 0xDF
AVRDUDE = avrdude -c usbtiny -p $(DEVICE) # edit this line for your programmer
#AVRDUDE = avrdude -c avrisp2 -P usb -p $(DEVICE) # edit this line for your programmer
........."
--> MAKE CLEAN /// MAKE HEX // MAKE COMMAND // SUDO MAKE FUSE// SUDO MAKE COMMAND
Open the terminal and go to the directory where you put the firmware file : compile the firmware using the follow commands :
--> MAKE CLEAN
Pierluigi-MacBook-Pro:fabISP_mac.0.8.2_firmware Pierluigi$ 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
--> MAKE HEX
Pierluigi-MacBook-Pro:fabISP_mac.0.8.2_firmware Pierluigi$ make hex
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
Pierluigi-MacBook-Pro:fabISP_mac.0.8.2_firmware Pierluigi$ 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
main.c:88:13: warning: always_inline function might not be inlinable [-Wattributes]
static void delay ( void )
^
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 1988 0 1988 7c4 main.hex
--> SUDO MAKE FUSE
Pierluigi-MacBook-Pro:fabISP_mac.0.8.2_firmware pierluigi$ sudo make fuse
avrdude -c stk500v1 -P /dev/tty.usbmodem1421 -b19200 -p attiny44 -U hfuse:w:0xDF:m -U lfuse:w:0xFF:m
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.05s
avrdude: Device signature = 0x1e9207
avrdude: reading input file "0xDF"
avrdude: writing hfuse (1 bytes):
Writing | ################################################## | 100% 0.02s
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.02s
avrdude: verifying ...
avrdude: 1 bytes of hfuse verified
avrdude: reading input file "0xFF"
avrdude: writing lfuse (1 bytes):
Writing | ################################################## | 100% 0.02s
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.02s
avrdude: verifying ...
avrdude: 1 bytes of lfuse verified
avrdude: safemode: Fuses OK (E:FF, H:DF, L:FF)
avrdude done. Thank you.
--> SUDO MAKE PROGRAM
Pierluigi-MacBook-Pro:fabISP_mac.0.8.2_firmware pierluigi$ sudo make program
avrdude -c stk500v1 -P /dev/tty.usbmodem1421 -b19200 -p attiny44 -U flash:w:main.hex:i
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.05s
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 (1988 bytes):
Writing | ################################################## | 100% 3.41s
avrdude: 1988 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 1988 bytes
avrdude: reading on-chip flash data:
Reading | ################################################## | 100% 2.26s
avrdude: verifying ...
avrdude: 1988 bytes of flash verified
avrdude: safemode: Fuses OK (E:FF, H:DF, L:FF)
avrdude done. Thank you.
avrdude -c stk500v1 -P /dev/tty.usbmodem1421 -b19200 -p attiny44 -U hfuse:w:0xDF:m -U lfuse:w:0xFF:m
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.05s
avrdude: Device signature = 0x1e9207
avrdude: reading input file "0xDF"
avrdude: writing hfuse (1 bytes):
Writing | ################################################## | 100% 0.02s
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.02s
avrdude: verifying ...
avrdude: 1 bytes of hfuse verified
avrdude: reading input file "0xFF"
avrdude: writing lfuse (1 bytes):
Writing | ################################################## | 100% 0.02s
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.02s
avrdude: verifying ...
avrdude: 1 bytes of lfuse verified
avrdude: safemode: Fuses OK (E:FF, H:DF, L:FF)
avrdude done. Thank you.