- Download and mill the electronic boards.
- Weld the electronic components on the boards.
- Configure an electronic board.
- Program the ATtiny45.
1. Download the png files for paths and the schematics of the electronic boards.
2. Go to the terminal
3. In the terminal use the command sudo bash
4. Use the command fab.
5. Now select the image
6. Now choose the machine: Roland Modela MDX - 20
7. Now click on make_png_rml
8. On defaults you have to select the milling tool you will use. It usually is 1/64" (0.4mm). After that select the file to load, clicking load.png.
9. It will show a window where you have to click on make.path and configure the parameters or the milling. (Every time you modify a parameter you need to click on make path)
10. Place the board on the Modela. Fix it to the base.
Calibrate the x and y points.
Calibrate the z axis manually, using the Up and Down buttons. Finally click no make.rml and Send it
Important: Do not remove the plastic guard from the machine. It has a metalic piece detected by a sensor on the machine. If you remove it the machine wont move.
The milling tools allows you to mechanize metal like cooper, from 0.09 to 6 mm in depth. We use Altin coated micrograin.
Too much depth cut and milling tool broke
The right cut depth is 0.1mm. Configure it that way
You need the board components:
1x ATtiny45 or ATtiny85
2x 1kΩ resistors
2x 499Ω resistors
2x 49Ω resistors
2x 3.3v zener diodes
1x red LED
1x green LED
1x 100nF capacitor
1x 2x3 pin header
Here we use a soldier property: Capilarity. It occurs when two componets are close to each other. When you melt the tin on one of them, the other one also gets covered.
Doing the continuity test
Trying to hold the component
Finished board
1. Heat the elements to solder.
2. Apply tin
3. Keep the joint hot until tin spreads
Verify the soldering and the components position
Equipment: Laptop
Equipment: AVR - ATMEL
Software: Terminal.
- Verify the components position and the right welding of the electronic board.
- Program the board using the AVR
1. Open the terminal and use the next command
2 Make the AVR - board connections.
Installation for the corresponding burn
root@FABLAB:~/Escritorio/fab# lsusb
Bus 004 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 004: ID 1bcf:2883 Sunplus Innovation Technology Inc.
Bus 003 Device 005: ID 8087:07da Intel Corp.
Bus 003 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 116: ID 045e:0737 Microsoft Corp. Compact Optical Mouse 500
Bus 001 Device 059: ID 1781:0c9f Multiple Vendors USBtiny
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
root@FABLAB:~/Escritorio/fab# make flash
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
avrdude -p attiny45 -c usbtiny -P usb -e \
-U flash:w:fts_firmware.hex
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.
avrdude done. Thank you.
root@FABLAB:~/Escritorio/fab# 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.00s
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 (2488 bytes):
Writing | ################################################## | 100% 2.43s
avrdude: 2488 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 2488 bytes
avrdude: reading on-chip flash data:
Reading | ################################################## | 100% 2.89s
avrdude: verifying ...
avrdude: 2488 bytes of flash verified
avrdude: safemode: Fuses OK (E:FF, H:DF, L:62)
avrdude done. Thank you.
root@FABLAB:~/Escritorio/fab# 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.00s
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.00s
avrdude: verifying ...
avrdude: 1 bytes of lfuse verified
avrdude: reading input file "0xDD"
avrdude: writing hfuse (1 bytes):
Writing | ################################################## | 100% 0.01s
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 (E:FF, H:DD, L:E1)
avrdude done. Thank you.
Verify the right position of electronic components befor soldering
Program the Fab Isp