Electronics Production

I'm entirely new to electronics and circuitboards. I don't know how they work and I have no idea what each component does. Though I do find it very interesting as I have a lot of projects that could benefit from some lights, sounds and/or moving parts. My classmate Lambert and I thought that it would save us some time to mill out two PCB's at once. We wrote down the start and end points (in mm) and started milling. Because milling just .1mm of copper the dust is minimal and the dustbuster was not nescessary all the time. Though we wanted to see what the machine was doing.

  • So we downloaded a rondom usb tiny circuit based on ATtiny44 i tried to understand how the circuit works with that attiny lower speed micro controllers and finaly i buid my circuit
  • I downloaded the isp png images From this link The Circuit design Inspecting the circuit Inserting the png into fabmodules to produce the traces and outlines Setting the Roland Milling Machine The SRM20 Miller

    Now to solder all the components in their places. I'm not new to soldering but I am new to electronics soldering. This I thought would take some practice. On the other hand I am used to working with miniatures. I started out with collecting all the parts from the parts cabinet and arranging them the best I could so I could work from left to right. Afterwards this showed completely unnescessary.

    Componets used
  • 1x ic - microcontroller Atmel AT-Tiny44A - IC1
  • 1x crystal - 20 Mhz version - XTAL1
  • 2x zener diodes - D1,D2
  • 2x resistors 49.9 ohm - R1,R2
  • 1x resistor 499 ohm - R6
  • 1x resistor 1 kohm - R3
  • 1x resistor 100 ohm
  • 1x resistor 10 kohm - R4
  • 1x resistor 0 ohm (bridge) - R5
  • 1x capacitor 1 µF - C3
  • 1x capacitor 0,1 µF - C4
  • 2x capacitor 8/10 pF - C1,C2
  • While soldering Soldering the PCB

    After the PCB was complete there was one more step to complete and that is to make the thing programmable. First I checked all the connections for electric shorts but it was all okay. My Friend Lambert had already programmed his and I copied his file to my Laptop to be able to use it. With two PCB's connected it was a matter of using the right commands in terminal to copy the already programmed PCB to the blank one.

    For

    ISP Programming

    i used our lab computer to program this fabisp because LUNIX is recommended for this work otherwise Windowns required some complex configurations that why i decide to use Our FabLab Computer which are dual boot (i used UBUNTU 16.02) here the are some comand i used to program with refence to my collegue Lambert and i used his fabISP to program mine
    nano Makefile 
    i used this command to change the programmer i want to use on my side i used Lambert' ISP
  • make clean
  • make hex
  • make fuse
  • make program
  • below there is all command and their feedback
  • make hex
  • After typing this command this is what i seen
    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	   2002	      0	   2002	    7d2	main.hex 
    
    i have to setup fuse setting by typing
  • make fuse
  • and press enter, this is the result.
    avrdude -c stk500v1 -b19200 -P /dev/ttyACM0  -p attiny44 -U hfuse:w:0xDF:m -U lfuse:w:0xFF:m 
    
    avrdude: AVR device initialized and ready to accept instructions 
    
    Reading | ################################################## | 100% 0.02s 
    
    avrdude: Device signature = 0x1e9207 
    avrdude: reading input file "0xDF" 
    avrdude: writing hfuse (1 bytes): 
    
    Writing | ################################################## | 100% 0.01s 
    
    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.01s 
    
    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.01s 
    
    avrdude: verifying ... 
    avrdude: 1 bytes of lfuse verified 
    
    avrdude: safemode: Fuses OK (E:FF, H:DF, L:FF) 
    
    avrdude done.  Thank you. 
    

    type
  • make program
  • then this is the result of make program
    avrdude -c stk500v1 -b19200 -P /dev/ttyACM0  -p attiny44 -U flash:w:main.hex:i 
    
    avrdude: AVR device initialized and ready to accept instructions 
    
    Reading | ################################################## | 100% 0.02s 
    
    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 (2002 bytes): 
    
    Writing | ################################################## | 100% 2.88s 
    
    avrdude: 2002 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 2002 bytes 
    avrdude: reading on-chip flash data: 
    
    Reading | ################################################## | 100% 1.44s 
    
    avrdude: verifying ... 
    avrdude: 2002 bytes of flash verified 
    
    avrdude: safemode: Fuses OK (E:FF, H:DF, L:FF) 
    
    avrdude done.  Thank you. 
    
    avrdude -c stk500v1 -b19200 -P /dev/ttyACM0  -p attiny44 -U hfuse:w:0xDF:m -U lfuse:w:0xFF:m 
    
    avrdude: AVR device initialized and ready to accept instructions 
    
    Reading | ################################################## | 100% 0.02s 
    
    avrdude: Device signature = 0x1e9207 
    avrdude: reading input file "0xDF" 
    avrdude: writing hfuse (1 bytes): 
    
    Writing | ################################################## | 100% 0.01s 
    
    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.01s 
    
    avrdude: verifying ... 
    avrdude: 1 bytes of hfuse verified 
    avrdude: reading input file "0xFF" 
    avrdude: writing lfuse (1 bytes): 
    
    Writing | ################################################## | 100% 0.01s 
    
    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.01s 
    
    avrdude: verifying ... 
    avrdude: 1 bytes of lfuse verified 
    
    avrdude: safemode: Fuses OK (E:FF, H:DF, L:FF) 
    
    avrdude done.  Thank you. 
    
    now am done with programing then i have to check if my isp is being seen by my computer by typing
  • lsusb
  • i program a Comercial arduino Uno board using blink schetck with my fabISP is it is working nice

    Download traces and outline here