week 5
ASSIGNMENTDue to a misunderstanding of our University administration,
we didn't receive the pcb milling machine on time.
For this week, I decided to document the technique that we used to make the fab ISP before the course.
This technique uses simple machines, devices, materials, and products.
It is more close to the way I want to finalize my final project.
To complete the process, you need: a laser printer, glossy paper, an iron and chemical products for etching.
I also learned to weld, to read the circuit, understood part of it and recognized the components .
The new machine came today, so we decided with Denis, my instructor to mil another fab ISP in the coming weeks.
For this assignment, I used of the "iron technique"(see explanation below),.
A few words about what needs to be done for evacuating the 2 dangerous products involved.
For the disposal of chemical waste, Nicolas who showed me this technique of PCB manufacturing uses the services of Proxy chimik mobile.
He labels the products with a sticker so that the treatment is adequate to the product.
And that's what he did when evacuating ferric chloride and hydrochloric acid.
Back to production of the pcb ...
I downloaded the png files.
One for the contour of the fab ISP,one for the circuit, from this website.
Those files are coming from a
tutorial to make a fab ISP


I had to invert the circuit to have the path from white to black.
I did it on Inskape, using the fill tool after transforming the png in vector(see process on week 3: Vinyl cutting)






I had to put some permanent marker on a part of the electronic circuit.
Because a small parts of the circuits was away

I put the board in a solution of ferric chloride and hydrochloric acid
It took 15 minutes to take away the copper, not protected by the laser ink.



After putting some flux on the circuit
I put welding on the circuit to protect it

To cut the fab ISP, I first traced the cut contour on a piece of cardboard.
By transparency I could place the circuit to be cut.










/ usr / bin / ruby -e "$ (curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
cd /users/victorlevy/documents/fab ISP_0.8.2_firmware
MCU = attiny45
PROGRAMMER ?= arduino$ make
On the terminal:
iMac-de-Victor:documents victorlevy$ cd /users/victorlevy/documents/fts_firmware_bdm_v1
iMac-de-Victor:fts_firmware_bdm_v1 victorlevy$ pwd
/users/victorlevy/documents/fts_firmware_bdm_v1
iMac-de-Victor:fts_firmware_bdm_v1 victorlevy$ make clean
rm -f usbdrv/*.o
rm -f *.hex *.elf *.o
iMac-de-Victor:fts_firmware_bdm_v1 victorlevy$ make
avr-gcc -mmcu=attiny45 -Wall -DF_CPU=16500000UL -I. -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Os -Iusbdrv -c main.c -o main.o
main.c:109:13: warning: always_inline function might not be inlinable [-Wattributes]
static void delay ( void )
^
avr-gcc -mmcu=attiny45 -Wall -DF_CPU=16500000UL -I. -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Os -Iusbdrv -c usbdrv/usbdrv.c -o usbdrv/usbdrv.o
avr-gcc -mmcu=attiny45 -Wall -DF_CPU=16500000UL -I. -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Os -Iusbdrv -c usbdrv/oddebug.c -o usbdrv/oddebug.o
avr-gcc -x assembler-with-cpp -mmcu=attiny45 -Wall -DF_CPU=16500000UL -I. -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Os -Iusbdrv -c usbdrv/usbdrvasm.S -o usbdrv/usbdrvasm.o
avr-gcc -mmcu=attiny45 -o fts_firmware.elf main.o usbdrv/usbdrv.o usbdrv/oddebug.o usbdrv/usbdrvasm.o
avr-size -C --mcu=attiny45 fts_firmware.elf
AVR Memory Usage
----------------
Device: attiny45
Program: 2488 bytes (60.7% Full)
(.text + .data + .bootloader)
Data: 75 bytes (29.3% Full)
(.data + .bss + .noinit)
avr-objcopy -j .text -j .data -O ihex fts_firmware.elf fts_firmware.hex
iMac-de-Victor:fts_firmware_bdm_v1 victorlevy$ make flash
avrdude -p attiny45 -c arduino -P usb e \
-U /dev/cu.usbmodem1421
avrdude: ser_open(): can't open device "usb": No such file or directory
ioctl("TIOCMGET"): Inappropriate ioctl for device
avrdude done. Thank you.
make: * [flash] Error 1
iMac-de-Victor:fts_firmware_bdm_v1 victorlevy$ make clean
rm -f usbdrv/*.o
rm -f *.hex *.elf *.o
iMac-de-Victor:fts_firmware_bdm_v1 victorlevy$ make
avr-gcc -mmcu=attiny45 -Wall -DF_CPU=16500000UL -I. -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Os -Iusbdrv -c main.c -o main.o
main.c:109:13: warning: always_inline function might not be inlinable [-Wattributes]
static void delay ( void )
^
avr-gcc -mmcu=attiny45 -Wall -DF_CPU=16500000UL -I. -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Os -Iusbdrv -c usbdrv/usbdrv.c -o usbdrv/usbdrv.o
avr-gcc -mmcu=attiny45 -Wall -DF_CPU=16500000UL -I. -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Os -Iusbdrv -c usbdrv/oddebug.c -o usbdrv/oddebug.o
avr-gcc -x assembler-with-cpp -mmcu=attiny45 -Wall -DF_CPU=16500000UL -I. -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Os -Iusbdrv -c usbdrv/usbdrvasm.S -o usbdrv/usbdrvasm.o
avr-gcc -mmcu=attiny45 -o fts_firmware.elf main.o usbdrv/usbdrv.o usbdrv/oddebug.o usbdrv/usbdrvasm.o
avr-size -C --mcu=attiny45 fts_firmware.elf
AVR Memory Usage
----------------
Device: attiny45
Program: 2488 bytes (60.7% Full)
(.text + .data + .bootloader)
Data: 75 bytes (29.3% Full)
(.data + .bss + .noinit)
$ make flash
iMac-de-Victor:fts_firmware_bdm_v1 victorlevy$ make flash
avrdude -p attiny45 -c arduino -P usb e \
-U /dev/cu.usbmodem1421
avrdude: ser_open(): can't open device "usb": No such file or directory
ioctl("TIOCMGET"): Inappropriate ioctl for device
avrdude done. Thank you.
make: * [flash] Error 1
iMac-de-Victor:fts_firmware_bdm_v1 victorlevy$ make clean
rm -f usbdrv/*.o
rm -f *.hex *.elf *.o
iMac-de-Victor:fts_firmware_bdm_v1 victorlevy$ make flash
avrdude -p attiny45 -c arduino -P usb e \
-U
avrdude: ser_open(): can't open device "usb": No such file or directory
ioctl("TIOCMGET"): Inappropriate ioctl for device
avrdude done. Thank you.
make: * [flash] Error 1
iMac-de-Victor:fts_firmware_bdm_v1 victorlevy$
# 'make' builds the .hex file.
# 'make flash' uses the programmer to load it onto the target chip.
# 'make fuses' programs the fuse bits on the target chip.
# 'make rstdisbl' blows the reset fuse.
C:\Users\Administrateur\Desktop\fts_firmware_bdm_v1>make hex make: *** No rule to make target `hex'. Stop. C:\Users\Administrateur\Desktop\fts_firmware_bdm_v1>make flash avrdude -p attiny45 -c usbtiny -P usb -e \ -U flash:w:fts_firmware.hex avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.01s avrdude: Device signature = 0x1e9206 avrdude: erasing chip avrdude: reading input file "fts_firmware.hex" avrdude: input file fts_firmware.hex auto detected as Intel Hex avrdude: writing flash (2534 bytes): Writing | ################################################## | 100% 4.62s avrdude: 2534 bytes of flash written avrdude: verifying flash memory against fts_firmware.hex: avrdude: load data flash data from input file fts_firmware.hex: avrdude: input file fts_firmware.hex auto detected as Intel Hex avrdude: input file fts_firmware.hex contains 2534 bytes avrdude: reading on-chip flash data: Reading | ################################################## | 100% 2.63s avrdude: verifying ... avrdude: 2534 bytes of flash verified avrdude: safemode: Fuses OK avrdude done. Thank you.
C:\Users\Administrateur\Desktop\fts_firmware_bdm_v1>make fuses
avrdude -p attiny45 -c usbtiny -P usb \
-U lfuse:w:0xE1:m -U hfuse:w:0xDD:m \
-U efuse:w:0xFF:m
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.02s
avrdude: Device signature = 0x1e9206
avrdude: reading input file "0xE1"
avrdude: writing lfuse (1 bytes):
Writing | ################################################## | 100% 0.03s
avrdude: 1 bytes of lfuse written
avrdude: verifying lfuse memory against 0xE1:
avrdude: load data lfuse data from input file 0xE1:
avrdude: input file 0xE1 contains 1 bytes
avrdude: reading on-chip lfuse data:
Reading | ################################################## | 100% 0.01s
avrdude: verifying ...
avrdude: 1 bytes of lfuse verified
avrdude: reading input file "0xDD"
avrdude: writing hfuse (1 bytes):
Writing | ################################################## | 100% 0.02s
avrdude: 1 bytes of hfuse written
avrdude: verifying hfuse memory against 0xDD:
avrdude: load data hfuse data from input file 0xDD:
avrdude: input file 0xDD 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 efuse (1 bytes):
Writing | ################################################## | 100% 0.00s
avrdude: 1 bytes of efuse written
avrdude: verifying efuse memory against 0xFF:
avrdude: load data efuse data from input file 0xFF:
avrdude: input file 0xFF contains 1 bytes
avrdude: reading on-chip efuse data:
Reading | ################################################## | 100% 0.00s
avrdude: verifying ...
avrdude: 1 bytes of efuse verified
avrdude: safemode: Fuses OK
avrdude done. Thank you.
C:\Users\Administrateur\Desktop\fts_firmware_bdm_v1>make rstdisbl
avrdude -p attiny45 -c usbtiny -P usb \
-U lfuse:w:0xE1:m -U hfuse:w:0x5D:m \
-U efuse:w:0xFF:m
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.02s
avrdude: Device signature = 0x1e9206
avrdude: reading input file "0xE1"
avrdude: writing lfuse (1 bytes):
Writing | ################################################## | 100% 0.01s
avrdude: 1 bytes of lfuse written
avrdude: verifying lfuse memory against 0xE1:
avrdude: load data lfuse data from input file 0xE1:
avrdude: input file 0xE1 contains 1 bytes
avrdude: reading on-chip lfuse data:
Reading | ################################################## | 100% 0.01s
avrdude: verifying ...
avrdude: 1 bytes of lfuse verified
avrdude: reading input file "0x5D"
avrdude: writing hfuse (1 bytes):
Writing | ################################################## | 100% 0.02s
avrdude: 1 bytes of hfuse written
avrdude: verifying hfuse memory against 0x5D:
avrdude: load data hfuse data from input file 0x5D:
avrdude: input file 0x5D 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 efuse (1 bytes):
Writing | ################################################## | 100% 0.01s
avrdude: 1 bytes of efuse written
avrdude: verifying efuse memory against 0xFF:
avrdude: load data efuse data from input file 0xFF:
avrdude: input file 0xFF contains 1 bytes
avrdude: reading on-chip efuse data:
Reading | ################################################## | 100% 0.01s
avrdude: verifying ...
avrdude: 1 bytes of efuse verified
avrdude: safemode: Fuses OK
avrdude done. Thank you.
C:\Users\Administrateur\Desktop\fts_firmware_bdm_v1>
