Fab class/lab/book hello-world page

Inventory

CAD/CAM
   cad.py
   cad.cfg
   cad shell script
   light.png
   alien.cad
   gik.cad
   function.cad
   tippy.cad
   hello.svg, hello.png
   pcb.cad
   MTA.cad
   stl2png.py

2D vector
   inkscape
   oodraw
   QCad

2D raster
   GIMP

3D
   Blender
      cad.blend
   Art of Illusion

programming
   Python
   pySerial
   Tkinter
   Numpy
   Matplotlib
   PIL
   PyOpenGL
   Pygame

version control, distributed development
   git, msysgit, gitk, git-gui
   siteserver

schematic, PCB
   Eagle
   library
   gerb274x_mill

circuit modeling
   Ngspice

microcontrollers
   Atmel AVR data sheets

milling machine
   Modela 
   stty 9600 raw -echo crtscts move x y
   cat out.rml > /dev/ttyS0

vinyl cutter
   CAMM-1
   cat out.camm > /dev/parport0

lasercutter
   Epilog
   cat out.epi > /dev/parport0

gavrasm assembler
   gavrasm hello.asm

gcc avr-libc compiler

AVR Studio

rx.py host serial receive, DTR power
   python rx.py port speed
term.py host serial transmit/receive, DTR power
   python term.py port speed

avrdude in-circuit programmer
   tiny45 load hex file, bsd cable: avrdude -p t45 -c bsd -U flash:w:file.hex
   tiny45 load hex file, dasa cable: avrdude -p t45 -P /dev/ttyUSB0 -c dasa -U flash:w:file.hex
   tiny45 load hex file, dragon: avrdude -p t45 -P usb -c dragon_isp -U flash:w:file.hex 
   tiny44 load hex file: avrdude -p t44 -c bsd -U flash:w:file.hex
   tiny44 use 20 MHz xtal: avrdude -p t44 -c bsd -U lfuse:w:0x7E:m
   mega88 load hex file: avrdude -p m88 -c bsd -U flash:w:file.hex
   mega88 use 20 MHz xtal: avrdude -p m88 -c bsd -U lfuse:w:0x76:m
   mega644 load hex file: avrdude -p m644 -c bsd -U flash:w:file.hex
   mega644 use 20 MHz xtal: avrdude -p m644 -c bsd -U lfuse:w:0x76:m

in-circuit programming header plug <-> DB25M parallel (bsd) cable (wire side view):
     
       plug                 DB25
    MISO (1)   ------------- 10
       V   (2) ------------- no connection
 --  SCK (3)   --- cable --- 8
 -- MOSI   (4) - direction - 9
   RESET (5)   ------------- 7
     GND   (6) ------------- 18

   plug               1   4   3   5     6
   DB25  13  12  11  10   9   8   7   6   5   4   3   2   1
   DB25    25  24  23  22  21  20  19  18  17  16  15  14

in-circuit programming header plug <-> DB9F serial (dasa) cable (wire side view):

       plug                 DB9
    MISO (1)   ------------- 8
       V   (2) ------------- no connection
 --  SCK (3)   --- cable --- 4
 -- MOSI   (4) - direction - 3
   RESET (5)   ------------- 7
     GND   (6) ------------- 5

   plug         5 4 1 3   6        
         DCD  Rx  Tx DTR GND
           DSR RTS CTS  RI
   DB9    1   2   3   4   5
   DB9      6   7   8   9

   serial programming voltage limiter: dasa.cad

serial header plug <-> DB9F cable (wire side view):

      plug                 DB9
    GND (1)   ------------- 5
 -- DTR   (2) --- cable --- 4
 --  Tx (3)   - direction - 3
     Rx   (4) ------------- 2

   plug      4   3   2   1
        DCD  Rx  Tx DTR GND
          DSR RTS CTS  RI
   DB9   1   2   3   4   5
   DB9     6   7   8   9

hello-world circuits:

serial output:
   hello.serial.45.cad
   hello.serial.45.asm
   hello.serial.45.hex
   hello.serial.45.c
   makefile
serial echo:
   hello.echo.44.cad
   hello.echo.44.asm
   hello.echo.44.c
   makefile
button:
   hello.button.45.cad
   hello.button.45.asm
light:
   hello.light.45.cad
   hello.light.45.asm
   hello.light.45.py
temperature:
   hello.temp.45.cad
   hello.temp.45.asm
   hello.temp.45.py
step response (resistance, capacitance, inductance, position, proximity, tilt):
   hello.step.45.cad
   hello.step.45.asm
   hello.step.45.py
microphone:
   hello.mic.44.cad
   hello.mic.44.asm
   hello.mic.44.py
   hello.mic.44.op_amp.cad
RGB LED:
   hello.RGB.45.cad
   hello.RGB.45.asm
LED array:
   hello.array.44.cad 
   hello.array.44.asm 
   hello.array.44.2.cad (2 layer vinylcutter)
LCD:
   hello.LCD.44.cad 
   hello.LCD.44.asm 
video:
   hello.video.44.cad 
   hello.video.44.asm 
speaker:
   hello.speaker.45.cad 
   hello.speaker.45.pwm.asm 
   hello.speaker.45.wave.asm 
DC motor:
   hello.H-bridge.44.cad 
   hello.H-bridge.44.asm 
stepper motor:
   hello.stepper.44.cad 
   hello.stepper.44.full.asm 
   hello.stepper.44.wave.asm 
   hello.stepper.44.half.asm 

old hello-worlds:

ATtiny45 programming cable:
           7 - reset - 1 8 -
                     - 2 7 - SCK - 8
                     - 3 6 - MISO - 10
            18 - GND - 4 5 - MOSI - 9

                 4   1  7  5   6          clip
   1  2  3  4  5  6  7  8  9  10 11 12 13 DB25
    14 15 16 17 18 19 20 21 22 23 24 25   DB25

in-circuit programming AMP MTA plug <-> DB25M parallel (bsd) cable (wire side view):

         9        18        10
   | MOSI (3)  GND (2)  MISO (1) |
      -RESET (4)  SCK (5)
            7        8
                  | cable direction
                  v

   plug               1   3   5   4     2
   DB25  13  12  11  10   9   8   7   6   5   4   3   2   1
   DB25    25  24  23  22  21  20  19  18  17  16  15  14

in-circuit programming AMP MTA plug <-> DB9F serial (dasa) cable (wire side view):

                  ^
                  | cable direction
         3        5         8
   | MOSI (3)  GND (2)  MISO (1) |
      -RESET (4)  SCK (5)
            7        4

   plug         4 3 1 5   2        
         DCD  Rx  Tx DTR GND
           DSR RTS CTS  RI
   DB9    1   2   3   4   5
   DB9      6   7   8   9

   serial programming voltage limiter: dasa.MTA.cad

serial AMP MTA plug <-> DB9F cable (wire side view):

      Tx GND
   |  2   1 |
    3   4
    Rx DTR
       | cable direction
       v

   plug      3   2   4   1
        DCD  Rx  Tx DTR GND
          DSR RTS CTS  RI
   DB9   1   2   3   4   5
   DB9     6   7   8   9

Molex serial PCB connector:
   1   2   3   4
   Rx  Tx  DTR Gnd

Molex serial cable:
   4   3   2   1
   Gnd DTR Tx  Rx DCD
    RI  CTS RTS DSR
   5   4   3   2  1
    9   8   7   6

   PIN   PURPOSE              SIGNAL NAME  HEADER
   Pin 1 Data Carrier Detect  DCD
   Pin 2 Received Data        RxData       1
   Pin 3 Transmitted Data     TxData       2
   Pin 4 Data Terminal Ready  DTR          3
   Pin 5 Signal Ground        Gnd          4
   Pin 6 Data Set Ready       DSR
   Pin 7 Request To Send      RTS
   Pin 8 Clear To Send        CTS
   Pin 9 Ring Indicator%09      RI

hello.serial.45.MTA.cad
hello.echo.44.MTA.cad
hello.echo.44.MTA.asm
hello.button.45.MTA.cad
hello.light.45.MTA.cad
hello.temp.45.MTA.cad
hello.step.45.MTA.cad
hello.mic.45.MTA.cad
hello.RGB.45.MTA.cad
hello.RGB.45.MTA.asm
hello.array.44.MTA.cad 
hello.array.44.2.MTA.cad
hello.LCD.44.MTA.cad 
hello.LCD.44.MTA.asm 
hello.video.44.MTA.cad 
hello.speaker.45.MTA.cad 
hello.H-bridge.44.MTA.cad 
hello.stepper.44.MTA.cad 

serial output, programming clip (hello)
   schematic: hello.sch
   PCB: hello.brd
   Gerber: hello.cmp hello.vinyl.cmp
   assembly code: hello.asm
   hex file: hello.hex

serial output, programming header (hello0)

serial I/O, programming clip (hello1)
   schematic
   PCB
   Gerber
   serial output
   serial echo

output: LED (hello2)
   schematic
   PCB
   serial output
   blink LED with serial output

input: step-response (hello3)
   schematic
   PCB
   serial output
   measure and send step-response curve
   receive and plot step-response curve

Efe: button+LED
   schematic
   PCB
   serial output
   blink the LED
   measure charging
   plot charging

A/D: light/sound/temperature (hello4)
   schematic
   PCB
   serial output
   measure A/D
   measure temperature
   plot readings

D/A: speaker (hello5)
   schematic
   PCB
   PWM
   wavetable synthesis

display: LCD (hello7)
   schematic
   PCB
   display hello world: master slave processor

video: RS170 (hello8)
   schematic
   PCB
   display hello world
   RS170

motion: stepper (hello9)
   schematic
   PCB
   Gerber
   stepper

multiplexing: LED array (hello10)
   schematic
   PCB
   multiplexing

cam.py toolpath generation
   cam shell script