****************************************************************************************************************
****************************************************************************************************************
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.