From 86b473e9bc54dcfb04a7ea9ab5bd54f7e8cda1bc Mon Sep 17 00:00:00 2001 From: "Jan \"Yenya\" Kasprzak" Date: Wed, 15 Jan 2014 09:53:56 +0100 Subject: [PATCH] Initial revision --- ATtiny25-1.sym | 112 ++++ HEADER2_1_PWR.fp | 12 + Makefile | 55 ++ SO8NM.fp | 49 ++ gafrc | 2 + header3_2_edge.fp | 23 + heater.pcb | 1161 +++++++++++++++++++++++++++++++++++++++ heater.prj | 3 + heater.sch | 220 ++++++++ heater2.pcb | 856 +++++++++++++++++++++++++++++ image.scm | 21 + microswitch.fp | 38 ++ mosfet-with-diode-2.sym | 68 +++ panel.pl | 126 +++++ panel2pcb | 99 ++++ pcb2panel | 101 ++++ 16 files changed, 2946 insertions(+) create mode 100644 ATtiny25-1.sym create mode 100644 HEADER2_1_PWR.fp create mode 100644 Makefile create mode 100644 SO8NM.fp create mode 100644 gafrc create mode 100644 header3_2_edge.fp create mode 100644 heater.pcb create mode 100644 heater.prj create mode 100644 heater.sch create mode 100644 heater2.pcb create mode 100644 image.scm create mode 100644 microswitch.fp create mode 100644 mosfet-with-diode-2.sym create mode 100644 panel.pl create mode 100755 panel2pcb create mode 100755 pcb2panel diff --git a/ATtiny25-1.sym b/ATtiny25-1.sym new file mode 100644 index 0000000..9eefe4b --- /dev/null +++ b/ATtiny25-1.sym @@ -0,0 +1,112 @@ +v 20110115 2 +T 100 100 0 1 0 0 0 0 1 +gedasymbols::url=http://www.gedasymbols.org/user/anton_dubniak/symbols/MCU/ATtiny25-1.sym +B 300 0 1000 1400 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +T 275 3450 5 10 0 0 0 0 1 +device=ATtiny25 +T 1100 1450 8 10 1 1 0 0 1 +refdes=U? +T 275 2650 5 10 0 0 0 0 1 +footprint=so8 +T 300 1450 9 10 1 0 0 0 1 +ATtiny25 +T 275 2050 5 10 0 0 0 0 1 +author=Anton Dubniak +T 275 2450 5 10 0 0 0 0 1 +numslots=0 +T 275 1850 5 10 0 0 0 0 1 +dist-license=GPL +T 275 1650 5 10 0 0 0 0 1 +use-license=unlimited +T 275 3250 5 10 0 0 0 0 1 +description=ATtiny25/45/85 - 8-bit AVR RISC microcontrollers with 2/4/8 kb of flash memory (Atmel) +T 275 3050 5 10 0 0 0 0 1 +documentation=http://www.atmel.com/dyn/resources/prod_documents/doc2586.pdf +P 0 1200 300 1200 1 0 0 +{ +T 205 1245 5 8 1 1 0 6 1 +pinnumber=5 +T 450 1375 5 8 0 1 0 8 1 +pinseq=5 +T 355 1195 9 8 1 1 0 0 1 +pinlabel=PB0/MOSI +T 500 1375 5 8 0 1 0 2 1 +pintype=io +} +P 0 1000 300 1000 1 0 0 +{ +T 205 1045 5 8 1 1 0 6 1 +pinnumber=6 +T 450 1175 5 8 0 1 0 8 1 +pinseq=6 +T 355 995 9 8 1 1 0 0 1 +pinlabel=PB1/MISO +T 500 1175 5 8 0 1 0 2 1 +pintype=io +} +P 0 800 300 800 1 0 0 +{ +T 205 845 5 8 1 1 0 6 1 +pinnumber=7 +T 450 975 5 8 0 1 0 8 1 +pinseq=7 +T 355 795 9 8 1 1 0 0 1 +pinlabel=PB2/SCK +T 500 975 5 8 0 1 0 2 1 +pintype=io +} +P 0 400 300 400 1 0 0 +{ +T 205 445 5 8 1 1 0 6 1 +pinnumber=3 +T 450 575 5 8 0 1 0 8 1 +pinseq=3 +T 355 395 9 8 1 1 0 0 1 +pinlabel=PB4 +T 500 575 5 8 0 1 0 2 1 +pintype=io +} +P 0 200 300 200 1 0 0 +{ +T 205 245 5 8 1 1 0 6 1 +pinnumber=1 +T 450 375 5 8 0 1 0 8 1 +pinseq=1 +T 355 195 9 8 1 1 0 0 1 +pinlabel=PB5/\_RESET\_ +T 500 375 5 8 0 1 0 2 1 +pintype=io +} +P 0 600 300 600 1 0 0 +{ +T 205 645 5 8 1 1 0 6 1 +pinnumber=2 +T 450 775 5 8 0 1 0 8 1 +pinseq=2 +T 355 595 9 8 1 1 0 0 1 +pinlabel=PB3 +T 500 775 5 8 0 1 0 2 1 +pintype=io +} +P 1600 400 1300 400 1 0 0 +{ +T 1395 445 5 8 1 1 0 0 1 +pinnumber=4 +T 1150 575 5 8 0 1 0 2 1 +pinseq=4 +T 1245 395 9 8 1 1 0 6 1 +pinlabel=GND +T 1100 575 5 8 0 1 0 8 1 +pintype=pwr +} +P 1600 600 1300 600 1 0 0 +{ +T 1395 645 5 8 1 1 0 0 1 +pinnumber=8 +T 1150 775 5 8 0 1 0 2 1 +pinseq=8 +T 1245 595 9 8 1 1 0 6 1 +pinlabel=VCC +T 1100 775 5 8 0 1 0 8 1 +pintype=pwr +} diff --git a/HEADER2_1_PWR.fp b/HEADER2_1_PWR.fp new file mode 100644 index 0000000..85d5055 --- /dev/null +++ b/HEADER2_1_PWR.fp @@ -0,0 +1,12 @@ +Element(0x00 "Header connector, DIP pin numbering" "" "HEADER2_1" 260 0 3 100 0x00) +( + Pin(50 50 70 50 "1" 0x101) + Pin(150 50 70 50 "2" 0x01) + ElementLine(0 0 0 100 10) + ElementLine(0 100 200 100 10) + ElementLine(200 100 200 0 10) + ElementLine(200 0 0 0 10) + ElementLine(0 100 100 100 10) + ElementLine(100 100 100 0 10) + Mark(50 50) +) diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..fa6e458 --- /dev/null +++ b/Makefile @@ -0,0 +1,55 @@ +WEB_DIR=/home/kas/html/heater/ +WEB_FILES=pcb-back.png pcb-front.png schematics.png +GERBER_FILES=\ + heater-panel.top.gbr \ + heater-panel.bottom.gbr \ + heater-panel.topmask.gbr \ + heater-panel.bottommask.gbr \ + heater-panel.topsilk.gbr \ + heater-panel.bottomsilk.gbr \ + heater-panel.plated-drill.cnc + +all: + @echo "Usage: make [clean|web|gerber|fab|heater.pcb]" + +clean: + rm -f heater.cmd heater.jpg heater.net heater.new.pcb heater.pcb- \ + heater.png heater.ps heater.sch~ pcb-back.png pcb-front.png \ + schematics.png *.gbr *.cnc + +web: $(WEB_FILES) + test -d $(WEB_DIR) && install -m 644 $(WEB_FILES) $(WEB_DIR) + +heater.pcb: heater.sch heater.prj + gsch2pcb heater.prj + +pcb-front.png: heater.pcb + pcb -x png --dpi 200 --photo-mode heater.pcb \ + && mv heater.png $@ + +pcb-back.png: heater.pcb + pcb -x png --dpi 200 --photo-mode --photo-flip-y heater.pcb \ + && mv heater.png $@ + +schematics.png: heater.sch + gschem -s image.scm heater.sch -o schematics.png + +gerber: $(GERBER_FILES) + +$(GERBER_FILES): heater-panel.pcb + pcb -x gerber heater-panel.pcb + +fab: $(GERBER_FILES) + @sh -c 'D=heater-`date +\%Y\%m\%d-\%H\%M` && mkdir $$D && \ + cp heater-panel.top.gbr $$D/heater.gtl && \ + cp heater-panel.bottom.gbr $$D/heater.gbl && \ + cp heater-panel.topmask.gbr $$D/heater.gts && \ + cp heater-panel.bottommask.gbr $$D/heater.gbs && \ + cp heater-panel.topsilk.gbr $$D/heater.gto && \ + cp heater-panel.bottomsilk.gbr $$D/heater.gbo && \ + cp heater-panel.plated-drill.cnc $$D/heater.txt && \ + zip -r $$D.zip $$D && \ + echo "Done. Output in $$D.zip."; \ + echo "You may also want to do git tag gerber-fab-$$D" ' + +.PHONY: gerber diff --git a/SO8NM.fp b/SO8NM.fp new file mode 100644 index 0000000..30dfee6 --- /dev/null +++ b/SO8NM.fp @@ -0,0 +1,49 @@ + # number of pads + # pad width in 1/1000 mil + # pad length in 1/1000 mil + # pad pitch 1/1000 mil + # seperation between pads on opposite sides 1/1000 mil + # X coordinates for the right hand column of pads (1/100 mils) + # pad clearance to plane layer in 1/100 mil + # pad soldermask width in 1/100 mil + # silk screen width (1/100 mils) + # figure out if we have an even or odd number of pins per side + # silk bounding box is -XMAX,-YMAX, XMAX,YMAX (1/100 mils) +# element_flags, description, pcb-name, value, mark_x, mark_y, +# text_x, text_y, text_direction, text_scale, text_flags +Element[0x00000000 "Small outline package, narrow or medium (150 or 200mil)" "" "SO8NM" 0 0 -2000 -6000 0 100 0x00000000] +( +# +# Pad[x1, y1, x2, y2, thickness, clearance, mask, name , pad number, flags] + Pad[ -16000 -7500 + -7000 -7500 + 2000 1000 3000 "1" "1" 0x00000100] + Pad[ -16000 -2500 + -7000 -2500 + 2000 1000 3000 "2" "2" 0x00000100] + Pad[ -16000 2500 + -7000 2500 + 2000 1000 3000 "3" "3" 0x00000100] + Pad[ -16000 7500 + -7000 7500 + 2000 1000 3000 "4" "4" 0x00000100] + Pad[ 16000 7500 + 7000 7500 + 2000 1000 3000 "5" "5" 0x00000100] + Pad[ 16000 2500 + 7000 2500 + 2000 1000 3000 "6" "6" 0x00000100] + Pad[ 16000 -2500 + 7000 -2500 + 2000 1000 3000 "7" "7" 0x00000100] + Pad[ 16000 -7500 + 7000 -7500 + 2000 1000 3000 "8" "8" 0x00000100] + ElementLine[-18000 -9500 -18000 9500 1000] + ElementLine[-18000 9500 18000 9500 1000] + ElementLine[ 18000 9500 18000 -9500 1000] + ElementLine[-18000 -9500 -2500 -9500 1000] + ElementLine[ 18000 -9500 2500 -9500 1000] + # punt on the arc on small parts as it can cover the pads + ElementArc[0 -9500 2500 2500 0 180 1000] +) diff --git a/gafrc b/gafrc new file mode 100644 index 0000000..22acb85 --- /dev/null +++ b/gafrc @@ -0,0 +1,2 @@ +(component-library ".") +(source-library ".") diff --git a/header3_2_edge.fp b/header3_2_edge.fp new file mode 100644 index 0000000..9989cac --- /dev/null +++ b/header3_2_edge.fp @@ -0,0 +1,23 @@ +Element["Header 3x2, 2.54mm, edge-mounted" "header3_2_edge" "X?" "" 0 0 -12500 5000 0 100 ""] +( + Pad[ 0 -7500 0 7500 5000 2000 6000 "1" "1" "square" ] + Pad[ 0 -7500 0 7500 5000 2000 6000 "2" "2" "square,onsolder" ] + + Pad[ 10000 -7500 10000 7500 5000 2000 6000 "3" "3" "square" ] + Pad[ 10000 -7500 10000 7500 5000 2000 6000 "4" "4" "square,onsolder" ] + + Pad[ 20000 -7500 20000 7500 5000 2000 6000 "5" "5" "square" ] + Pad[ 20000 -7500 20000 7500 5000 2000 6000 "6" "6" "square,onsolder" ] + + ElementLine[ -5000 -8500 -5000 11000 1000 ] + ElementLine[ 25000 -8500 25000 11000 1000 ] + ElementLine[ -5000 11000 25000 11000 1000 ] + + ElementLine[ -3750 0 -5000 0 1000 ] + ElementLine[ -3750 0 -3750 11000 1000 ] + Attribute("author" "Jan Yenya Kasprzak, http://www.fi.muni.cz/~kas/") + Attribute("copyright" "Jan Yenya Kasprzak, http://www.fi.muni.cz/~kas/") + Attribute("use-license" "Unlimited") + Attribute("dist-license" "GPL 2.0") + Attribute("comment" "Thanks: Karl Hammar") +) diff --git a/heater.pcb b/heater.pcb new file mode 100644 index 0000000..1fd5d3a --- /dev/null +++ b/heater.pcb @@ -0,0 +1,1161 @@ +# release: pcb 20110918 + +# To read pcb files, the pcb version (or the git source date) must be >= the file version +FileVersion[20070407] + +PCB["" 140000 42000] + +Grid[1000.0 0 0 0] +Cursor[16000 35000 0.000000] +PolyArea[200000000.000000] +Thermal[0.500000] +DRC[1000 1000 1000 1000 1500 1000] +Flags("nameonpcb,uniquename") +Groups("1,c:2,s") +Styles["Signal,1000,4000,2000,1000:Power,2500,6000,3500,1000:Fat,8000,9000,3500,1000:Skinny,600,2402,1181,600"] + +Symbol[' ' 1800] +( +) +Symbol['!' 1200] +( + SymbolLine[0 4500 0 5000 800] + SymbolLine[0 1000 0 3500 800] +) +Symbol['"' 1200] +( + SymbolLine[0 1000 0 2000 800] + SymbolLine[1000 1000 1000 2000 800] +) +Symbol['#' 1200] +( + SymbolLine[0 3500 2000 3500 800] + SymbolLine[0 2500 2000 2500 800] + SymbolLine[1500 2000 1500 4000 800] + SymbolLine[500 2000 500 4000 800] +) +Symbol['$' 1200] +( + SymbolLine[1500 1500 2000 2000 800] + SymbolLine[500 1500 1500 1500 800] + SymbolLine[0 2000 500 1500 800] + SymbolLine[0 2000 0 2500 800] + SymbolLine[0 2500 500 3000 800] + SymbolLine[500 3000 1500 3000 800] + SymbolLine[1500 3000 2000 3500 800] + SymbolLine[2000 3500 2000 4000 800] + SymbolLine[1500 4500 2000 4000 800] + SymbolLine[500 4500 1500 4500 800] + SymbolLine[0 4000 500 4500 800] + SymbolLine[1000 1000 1000 5000 800] +) +Symbol['%' 1200] +( + SymbolLine[0 1500 0 2000 800] + SymbolLine[0 1500 500 1000 800] + SymbolLine[500 1000 1000 1000 800] + SymbolLine[1000 1000 1500 1500 800] + SymbolLine[1500 1500 1500 2000 800] + SymbolLine[1000 2500 1500 2000 800] + SymbolLine[500 2500 1000 2500 800] + SymbolLine[0 2000 500 2500 800] + SymbolLine[0 5000 4000 1000 800] + SymbolLine[3500 5000 4000 4500 800] + SymbolLine[4000 4000 4000 4500 800] + SymbolLine[3500 3500 4000 4000 800] + SymbolLine[3000 3500 3500 3500 800] + SymbolLine[2500 4000 3000 3500 800] + SymbolLine[2500 4000 2500 4500 800] + SymbolLine[2500 4500 3000 5000 800] + SymbolLine[3000 5000 3500 5000 800] +) +Symbol['&' 1200] +( + SymbolLine[0 4500 500 5000 800] + SymbolLine[0 1500 0 2500 800] + SymbolLine[0 1500 500 1000 800] + SymbolLine[0 3500 1500 2000 800] + SymbolLine[500 5000 1000 5000 800] + SymbolLine[1000 5000 2000 4000 800] + SymbolLine[0 2500 2500 5000 800] + SymbolLine[500 1000 1000 1000 800] + SymbolLine[1000 1000 1500 1500 800] + SymbolLine[1500 1500 1500 2000 800] + SymbolLine[0 3500 0 4500 800] +) +Symbol[''' 1200] +( + SymbolLine[0 2000 1000 1000 800] +) +Symbol['(' 1200] +( + SymbolLine[0 4500 500 5000 800] + SymbolLine[0 1500 500 1000 800] + SymbolLine[0 1500 0 4500 800] +) +Symbol[')' 1200] +( + SymbolLine[0 1000 500 1500 800] + SymbolLine[500 1500 500 4500 800] + SymbolLine[0 5000 500 4500 800] +) +Symbol['*' 1200] +( + SymbolLine[0 2000 2000 4000 800] + SymbolLine[0 4000 2000 2000 800] + SymbolLine[0 3000 2000 3000 800] + SymbolLine[1000 2000 1000 4000 800] +) +Symbol['+' 1200] +( + SymbolLine[0 3000 2000 3000 800] + SymbolLine[1000 2000 1000 4000 800] +) +Symbol[',' 1200] +( + SymbolLine[0 6000 1000 5000 800] +) +Symbol['-' 1200] +( + SymbolLine[0 3000 2000 3000 800] +) +Symbol['.' 1200] +( + SymbolLine[0 5000 500 5000 800] +) +Symbol['/' 1200] +( + SymbolLine[0 4500 3000 1500 800] +) +Symbol['0' 1200] +( + SymbolLine[0 4500 500 5000 800] + SymbolLine[0 1500 0 4500 800] + SymbolLine[0 1500 500 1000 800] + SymbolLine[500 1000 1500 1000 800] + SymbolLine[1500 1000 2000 1500 800] + SymbolLine[2000 1500 2000 4500 800] + SymbolLine[1500 5000 2000 4500 800] + SymbolLine[500 5000 1500 5000 800] + SymbolLine[0 4000 2000 2000 800] +) +Symbol['1' 1200] +( + SymbolLine[0 1800 800 1000 800] + SymbolLine[800 1000 800 5000 800] + SymbolLine[0 5000 1500 5000 800] +) +Symbol['2' 1200] +( + SymbolLine[0 1500 500 1000 800] + SymbolLine[500 1000 2000 1000 800] + SymbolLine[2000 1000 2500 1500 800] + SymbolLine[2500 1500 2500 2500 800] + SymbolLine[0 5000 2500 2500 800] + SymbolLine[0 5000 2500 5000 800] +) +Symbol['3' 1200] +( + SymbolLine[0 1500 500 1000 800] + SymbolLine[500 1000 1500 1000 800] + SymbolLine[1500 1000 2000 1500 800] + SymbolLine[1500 5000 2000 4500 800] + SymbolLine[500 5000 1500 5000 800] + SymbolLine[0 4500 500 5000 800] + SymbolLine[500 2800 1500 2800 800] + SymbolLine[2000 1500 2000 2300 800] + SymbolLine[2000 3300 2000 4500 800] + SymbolLine[2000 3300 1500 2800 800] + SymbolLine[2000 2300 1500 2800 800] +) +Symbol['4' 1200] +( + SymbolLine[0 3500 2000 1000 800] + SymbolLine[0 3500 2500 3500 800] + SymbolLine[2000 1000 2000 5000 800] +) +Symbol['5' 1200] +( + SymbolLine[0 1000 2000 1000 800] + SymbolLine[0 1000 0 3000 800] + SymbolLine[0 3000 500 2500 800] + SymbolLine[500 2500 1500 2500 800] + SymbolLine[1500 2500 2000 3000 800] + SymbolLine[2000 3000 2000 4500 800] + SymbolLine[1500 5000 2000 4500 800] + SymbolLine[500 5000 1500 5000 800] + SymbolLine[0 4500 500 5000 800] +) +Symbol['6' 1200] +( + SymbolLine[1500 1000 2000 1500 800] + SymbolLine[500 1000 1500 1000 800] + SymbolLine[0 1500 500 1000 800] + SymbolLine[0 1500 0 4500 800] + SymbolLine[0 4500 500 5000 800] + SymbolLine[1500 2800 2000 3300 800] + SymbolLine[0 2800 1500 2800 800] + SymbolLine[500 5000 1500 5000 800] + SymbolLine[1500 5000 2000 4500 800] + SymbolLine[2000 3300 2000 4500 800] +) +Symbol['7' 1200] +( + SymbolLine[500 5000 2500 1000 800] + SymbolLine[0 1000 2500 1000 800] +) +Symbol['8' 1200] +( + SymbolLine[0 4500 500 5000 800] + SymbolLine[0 3700 0 4500 800] + SymbolLine[0 3700 700 3000 800] + SymbolLine[700 3000 1300 3000 800] + SymbolLine[1300 3000 2000 3700 800] + SymbolLine[2000 3700 2000 4500 800] + SymbolLine[1500 5000 2000 4500 800] + SymbolLine[500 5000 1500 5000 800] + SymbolLine[0 2300 700 3000 800] + SymbolLine[0 1500 0 2300 800] + SymbolLine[0 1500 500 1000 800] + SymbolLine[500 1000 1500 1000 800] + SymbolLine[1500 1000 2000 1500 800] + SymbolLine[2000 1500 2000 2300 800] + SymbolLine[1300 3000 2000 2300 800] +) +Symbol['9' 1200] +( + SymbolLine[500 5000 2000 3000 800] + SymbolLine[2000 1500 2000 3000 800] + SymbolLine[1500 1000 2000 1500 800] + SymbolLine[500 1000 1500 1000 800] + SymbolLine[0 1500 500 1000 800] + SymbolLine[0 1500 0 2500 800] + SymbolLine[0 2500 500 3000 800] + SymbolLine[500 3000 2000 3000 800] +) +Symbol[':' 1200] +( + SymbolLine[0 2500 500 2500 800] + SymbolLine[0 3500 500 3500 800] +) +Symbol[';' 1200] +( + SymbolLine[0 5000 1000 4000 800] + SymbolLine[1000 2500 1000 3000 800] +) +Symbol['<' 1200] +( + SymbolLine[0 3000 1000 2000 800] + SymbolLine[0 3000 1000 4000 800] +) +Symbol['=' 1200] +( + SymbolLine[0 2500 2000 2500 800] + SymbolLine[0 3500 2000 3500 800] +) +Symbol['>' 1200] +( + SymbolLine[0 2000 1000 3000 800] + SymbolLine[0 4000 1000 3000 800] +) +Symbol['?' 1200] +( + SymbolLine[1000 3000 1000 3500 800] + SymbolLine[1000 4500 1000 5000 800] + SymbolLine[0 1500 0 2000 800] + SymbolLine[0 1500 500 1000 800] + SymbolLine[500 1000 1500 1000 800] + SymbolLine[1500 1000 2000 1500 800] + SymbolLine[2000 1500 2000 2000 800] + SymbolLine[1000 3000 2000 2000 800] +) +Symbol['@' 1200] +( + SymbolLine[0 1000 0 4000 800] + SymbolLine[0 4000 1000 5000 800] + SymbolLine[1000 5000 4000 5000 800] + SymbolLine[5000 3500 5000 1000 800] + SymbolLine[5000 1000 4000 0 800] + SymbolLine[4000 0 1000 0 800] + SymbolLine[1000 0 0 1000 800] + SymbolLine[1500 2000 1500 3000 800] + SymbolLine[1500 3000 2000 3500 800] + SymbolLine[2000 3500 3000 3500 800] + SymbolLine[3000 3500 3500 3000 800] + SymbolLine[3500 3000 4000 3500 800] + SymbolLine[3500 3000 3500 1500 800] + SymbolLine[3500 2000 3000 1500 800] + SymbolLine[2000 1500 3000 1500 800] + SymbolLine[2000 1500 1500 2000 800] + SymbolLine[4000 3500 5000 3500 800] +) +Symbol['A' 1200] +( + SymbolLine[0 2000 0 5000 800] + SymbolLine[0 2000 700 1000 800] + SymbolLine[700 1000 1800 1000 800] + SymbolLine[1800 1000 2500 2000 800] + SymbolLine[2500 2000 2500 5000 800] + SymbolLine[0 3000 2500 3000 800] +) +Symbol['B' 1200] +( + SymbolLine[0 5000 2000 5000 800] + SymbolLine[2000 5000 2500 4500 800] + SymbolLine[2500 3300 2500 4500 800] + SymbolLine[2000 2800 2500 3300 800] + SymbolLine[500 2800 2000 2800 800] + SymbolLine[500 1000 500 5000 800] + SymbolLine[0 1000 2000 1000 800] + SymbolLine[2000 1000 2500 1500 800] + SymbolLine[2500 1500 2500 2300 800] + SymbolLine[2000 2800 2500 2300 800] +) +Symbol['C' 1200] +( + SymbolLine[700 5000 2000 5000 800] + SymbolLine[0 4300 700 5000 800] + SymbolLine[0 1700 0 4300 800] + SymbolLine[0 1700 700 1000 800] + SymbolLine[700 1000 2000 1000 800] +) +Symbol['D' 1200] +( + SymbolLine[500 1000 500 5000 800] + SymbolLine[1800 1000 2500 1700 800] + SymbolLine[2500 1700 2500 4300 800] + SymbolLine[1800 5000 2500 4300 800] + SymbolLine[0 5000 1800 5000 800] + SymbolLine[0 1000 1800 1000 800] +) +Symbol['E' 1200] +( + SymbolLine[0 2800 1500 2800 800] + SymbolLine[0 5000 2000 5000 800] + SymbolLine[0 1000 0 5000 800] + SymbolLine[0 1000 2000 1000 800] +) +Symbol['F' 1200] +( + SymbolLine[0 1000 0 5000 800] + SymbolLine[0 1000 2000 1000 800] + SymbolLine[0 2800 1500 2800 800] +) +Symbol['G' 1200] +( + SymbolLine[2000 1000 2500 1500 800] + SymbolLine[500 1000 2000 1000 800] + SymbolLine[0 1500 500 1000 800] + SymbolLine[0 1500 0 4500 800] + SymbolLine[0 4500 500 5000 800] + SymbolLine[500 5000 2000 5000 800] + SymbolLine[2000 5000 2500 4500 800] + SymbolLine[2500 3500 2500 4500 800] + SymbolLine[2000 3000 2500 3500 800] + SymbolLine[1000 3000 2000 3000 800] +) +Symbol['H' 1200] +( + SymbolLine[0 1000 0 5000 800] + SymbolLine[2500 1000 2500 5000 800] + SymbolLine[0 3000 2500 3000 800] +) +Symbol['I' 1200] +( + SymbolLine[0 1000 1000 1000 800] + SymbolLine[500 1000 500 5000 800] + SymbolLine[0 5000 1000 5000 800] +) +Symbol['J' 1200] +( + SymbolLine[700 1000 1500 1000 800] + SymbolLine[1500 1000 1500 4500 800] + SymbolLine[1000 5000 1500 4500 800] + SymbolLine[500 5000 1000 5000 800] + SymbolLine[0 4500 500 5000 800] + SymbolLine[0 4500 0 4000 800] +) +Symbol['K' 1200] +( + SymbolLine[0 1000 0 5000 800] + SymbolLine[0 3000 2000 1000 800] + SymbolLine[0 3000 2000 5000 800] +) +Symbol['L' 1200] +( + SymbolLine[0 1000 0 5000 800] + SymbolLine[0 5000 2000 5000 800] +) +Symbol['M' 1200] +( + SymbolLine[0 1000 0 5000 800] + SymbolLine[0 1000 1500 3000 800] + SymbolLine[1500 3000 3000 1000 800] + SymbolLine[3000 1000 3000 5000 800] +) +Symbol['N' 1200] +( + SymbolLine[0 1000 0 5000 800] + SymbolLine[0 1000 2500 5000 800] + SymbolLine[2500 1000 2500 5000 800] +) +Symbol['O' 1200] +( + SymbolLine[0 1500 0 4500 800] + SymbolLine[0 1500 500 1000 800] + SymbolLine[500 1000 1500 1000 800] + SymbolLine[1500 1000 2000 1500 800] + SymbolLine[2000 1500 2000 4500 800] + SymbolLine[1500 5000 2000 4500 800] + SymbolLine[500 5000 1500 5000 800] + SymbolLine[0 4500 500 5000 800] +) +Symbol['P' 1200] +( + SymbolLine[500 1000 500 5000 800] + SymbolLine[0 1000 2000 1000 800] + SymbolLine[2000 1000 2500 1500 800] + SymbolLine[2500 1500 2500 2500 800] + SymbolLine[2000 3000 2500 2500 800] + SymbolLine[500 3000 2000 3000 800] +) +Symbol['Q' 1200] +( + SymbolLine[0 1500 0 4500 800] + SymbolLine[0 1500 500 1000 800] + SymbolLine[500 1000 1500 1000 800] + SymbolLine[1500 1000 2000 1500 800] + SymbolLine[2000 1500 2000 4000 800] + SymbolLine[1000 5000 2000 4000 800] + SymbolLine[500 5000 1000 5000 800] + SymbolLine[0 4500 500 5000 800] + SymbolLine[1000 3500 2000 5000 800] +) +Symbol['R' 1200] +( + SymbolLine[0 1000 2000 1000 800] + SymbolLine[2000 1000 2500 1500 800] + SymbolLine[2500 1500 2500 2500 800] + SymbolLine[2000 3000 2500 2500 800] + SymbolLine[500 3000 2000 3000 800] + SymbolLine[500 1000 500 5000 800] + SymbolLine[1300 3000 2500 5000 800] +) +Symbol['S' 1200] +( + SymbolLine[2000 1000 2500 1500 800] + SymbolLine[500 1000 2000 1000 800] + SymbolLine[0 1500 500 1000 800] + SymbolLine[0 1500 0 2500 800] + SymbolLine[0 2500 500 3000 800] + SymbolLine[500 3000 2000 3000 800] + SymbolLine[2000 3000 2500 3500 800] + SymbolLine[2500 3500 2500 4500 800] + SymbolLine[2000 5000 2500 4500 800] + SymbolLine[500 5000 2000 5000 800] + SymbolLine[0 4500 500 5000 800] +) +Symbol['T' 1200] +( + SymbolLine[0 1000 2000 1000 800] + SymbolLine[1000 1000 1000 5000 800] +) +Symbol['U' 1200] +( + SymbolLine[0 1000 0 4500 800] + SymbolLine[0 4500 500 5000 800] + SymbolLine[500 5000 1500 5000 800] + SymbolLine[1500 5000 2000 4500 800] + SymbolLine[2000 1000 2000 4500 800] +) +Symbol['V' 1200] +( + SymbolLine[0 1000 1000 5000 800] + SymbolLine[1000 5000 2000 1000 800] +) +Symbol['W' 1200] +( + SymbolLine[0 1000 0 3000 800] + SymbolLine[0 3000 500 5000 800] + SymbolLine[500 5000 1500 3000 800] + SymbolLine[1500 3000 2500 5000 800] + SymbolLine[2500 5000 3000 3000 800] + SymbolLine[3000 3000 3000 1000 800] +) +Symbol['X' 1200] +( + SymbolLine[0 5000 2500 1000 800] + SymbolLine[0 1000 2500 5000 800] +) +Symbol['Y' 1200] +( + SymbolLine[0 1000 1000 3000 800] + SymbolLine[1000 3000 2000 1000 800] + SymbolLine[1000 3000 1000 5000 800] +) +Symbol['Z' 1200] +( + SymbolLine[0 1000 2500 1000 800] + SymbolLine[0 5000 2500 1000 800] + SymbolLine[0 5000 2500 5000 800] +) +Symbol['[' 1200] +( + SymbolLine[0 1000 500 1000 800] + SymbolLine[0 1000 0 5000 800] + SymbolLine[0 5000 500 5000 800] +) +Symbol['\' 1200] +( + SymbolLine[0 1500 3000 4500 800] +) +Symbol[']' 1200] +( + SymbolLine[0 1000 500 1000 800] + SymbolLine[500 1000 500 5000 800] + SymbolLine[0 5000 500 5000 800] +) +Symbol['^' 1200] +( + SymbolLine[0 1500 500 1000 800] + SymbolLine[500 1000 1000 1500 800] +) +Symbol['_' 1200] +( + SymbolLine[0 5000 2000 5000 800] +) +Symbol['a' 1200] +( + SymbolLine[1500 3000 2000 3500 800] + SymbolLine[500 3000 1500 3000 800] + SymbolLine[0 3500 500 3000 800] + SymbolLine[0 3500 0 4500 800] + SymbolLine[0 4500 500 5000 800] + SymbolLine[2000 3000 2000 4500 800] + SymbolLine[2000 4500 2500 5000 800] + SymbolLine[500 5000 1500 5000 800] + SymbolLine[1500 5000 2000 4500 800] +) +Symbol['b' 1200] +( + SymbolLine[0 1000 0 5000 800] + SymbolLine[0 4500 500 5000 800] + SymbolLine[500 5000 1500 5000 800] + SymbolLine[1500 5000 2000 4500 800] + SymbolLine[2000 3500 2000 4500 800] + SymbolLine[1500 3000 2000 3500 800] + SymbolLine[500 3000 1500 3000 800] + SymbolLine[0 3500 500 3000 800] +) +Symbol['c' 1200] +( + SymbolLine[500 3000 2000 3000 800] + SymbolLine[0 3500 500 3000 800] + SymbolLine[0 3500 0 4500 800] + SymbolLine[0 4500 500 5000 800] + SymbolLine[500 5000 2000 5000 800] +) +Symbol['d' 1200] +( + SymbolLine[2000 1000 2000 5000 800] + SymbolLine[1500 5000 2000 4500 800] + SymbolLine[500 5000 1500 5000 800] + SymbolLine[0 4500 500 5000 800] + SymbolLine[0 3500 0 4500 800] + SymbolLine[0 3500 500 3000 800] + SymbolLine[500 3000 1500 3000 800] + SymbolLine[1500 3000 2000 3500 800] +) +Symbol['e' 1200] +( + SymbolLine[500 5000 2000 5000 800] + SymbolLine[0 4500 500 5000 800] + SymbolLine[0 3500 0 4500 800] + SymbolLine[0 3500 500 3000 800] + SymbolLine[500 3000 1500 3000 800] + SymbolLine[1500 3000 2000 3500 800] + SymbolLine[0 4000 2000 4000 800] + SymbolLine[2000 4000 2000 3500 800] +) +Symbol['f' 1000] +( + SymbolLine[500 1500 500 5000 800] + SymbolLine[500 1500 1000 1000 800] + SymbolLine[1000 1000 1500 1000 800] + SymbolLine[0 3000 1000 3000 800] +) +Symbol['g' 1200] +( + SymbolLine[1500 3000 2000 3500 800] + SymbolLine[500 3000 1500 3000 800] + SymbolLine[0 3500 500 3000 800] + SymbolLine[0 3500 0 4500 800] + SymbolLine[0 4500 500 5000 800] + SymbolLine[500 5000 1500 5000 800] + SymbolLine[1500 5000 2000 4500 800] + SymbolLine[0 6000 500 6500 800] + SymbolLine[500 6500 1500 6500 800] + SymbolLine[1500 6500 2000 6000 800] + SymbolLine[2000 3000 2000 6000 800] +) +Symbol['h' 1200] +( + SymbolLine[0 1000 0 5000 800] + SymbolLine[0 3500 500 3000 800] + SymbolLine[500 3000 1500 3000 800] + SymbolLine[1500 3000 2000 3500 800] + SymbolLine[2000 3500 2000 5000 800] +) +Symbol['i' 1000] +( + SymbolLine[0 2000 0 2100 1000] + SymbolLine[0 3500 0 5000 800] +) +Symbol['j' 1000] +( + SymbolLine[500 2000 500 2100 1000] + SymbolLine[500 3500 500 6000 800] + SymbolLine[0 6500 500 6000 800] +) +Symbol['k' 1200] +( + SymbolLine[0 1000 0 5000 800] + SymbolLine[0 3500 1500 5000 800] + SymbolLine[0 3500 1000 2500 800] +) +Symbol['l' 1000] +( + SymbolLine[0 1000 0 4500 800] + SymbolLine[0 4500 500 5000 800] +) +Symbol['m' 1200] +( + SymbolLine[500 3500 500 5000 800] + SymbolLine[500 3500 1000 3000 800] + SymbolLine[1000 3000 1500 3000 800] + SymbolLine[1500 3000 2000 3500 800] + SymbolLine[2000 3500 2000 5000 800] + SymbolLine[2000 3500 2500 3000 800] + SymbolLine[2500 3000 3000 3000 800] + SymbolLine[3000 3000 3500 3500 800] + SymbolLine[3500 3500 3500 5000 800] + SymbolLine[0 3000 500 3500 800] +) +Symbol['n' 1200] +( + SymbolLine[500 3500 500 5000 800] + SymbolLine[500 3500 1000 3000 800] + SymbolLine[1000 3000 1500 3000 800] + SymbolLine[1500 3000 2000 3500 800] + SymbolLine[2000 3500 2000 5000 800] + SymbolLine[0 3000 500 3500 800] +) +Symbol['o' 1200] +( + SymbolLine[0 3500 0 4500 800] + SymbolLine[0 3500 500 3000 800] + SymbolLine[500 3000 1500 3000 800] + SymbolLine[1500 3000 2000 3500 800] + SymbolLine[2000 3500 2000 4500 800] + SymbolLine[1500 5000 2000 4500 800] + SymbolLine[500 5000 1500 5000 800] + SymbolLine[0 4500 500 5000 800] +) +Symbol['p' 1200] +( + SymbolLine[500 3500 500 6500 800] + SymbolLine[0 3000 500 3500 800] + SymbolLine[500 3500 1000 3000 800] + SymbolLine[1000 3000 2000 3000 800] + SymbolLine[2000 3000 2500 3500 800] + SymbolLine[2500 3500 2500 4500 800] + SymbolLine[2000 5000 2500 4500 800] + SymbolLine[1000 5000 2000 5000 800] + SymbolLine[500 4500 1000 5000 800] +) +Symbol['q' 1200] +( + SymbolLine[2000 3500 2000 6500 800] + SymbolLine[1500 3000 2000 3500 800] + SymbolLine[500 3000 1500 3000 800] + SymbolLine[0 3500 500 3000 800] + SymbolLine[0 3500 0 4500 800] + SymbolLine[0 4500 500 5000 800] + SymbolLine[500 5000 1500 5000 800] + SymbolLine[1500 5000 2000 4500 800] +) +Symbol['r' 1200] +( + SymbolLine[500 3500 500 5000 800] + SymbolLine[500 3500 1000 3000 800] + SymbolLine[1000 3000 2000 3000 800] + SymbolLine[0 3000 500 3500 800] +) +Symbol['s' 1200] +( + SymbolLine[500 5000 2000 5000 800] + SymbolLine[2000 5000 2500 4500 800] + SymbolLine[2000 4000 2500 4500 800] + SymbolLine[500 4000 2000 4000 800] + SymbolLine[0 3500 500 4000 800] + SymbolLine[0 3500 500 3000 800] + SymbolLine[500 3000 2000 3000 800] + SymbolLine[2000 3000 2500 3500 800] + SymbolLine[0 4500 500 5000 800] +) +Symbol['t' 1000] +( + SymbolLine[500 1000 500 4500 800] + SymbolLine[500 4500 1000 5000 800] + SymbolLine[0 2500 1000 2500 800] +) +Symbol['u' 1200] +( + SymbolLine[0 3000 0 4500 800] + SymbolLine[0 4500 500 5000 800] + SymbolLine[500 5000 1500 5000 800] + SymbolLine[1500 5000 2000 4500 800] + SymbolLine[2000 3000 2000 4500 800] +) +Symbol['v' 1200] +( + SymbolLine[0 3000 1000 5000 800] + SymbolLine[2000 3000 1000 5000 800] +) +Symbol['w' 1200] +( + SymbolLine[0 3000 0 4500 800] + SymbolLine[0 4500 500 5000 800] + SymbolLine[500 5000 1000 5000 800] + SymbolLine[1000 5000 1500 4500 800] + SymbolLine[1500 3000 1500 4500 800] + SymbolLine[1500 4500 2000 5000 800] + SymbolLine[2000 5000 2500 5000 800] + SymbolLine[2500 5000 3000 4500 800] + SymbolLine[3000 3000 3000 4500 800] +) +Symbol['x' 1200] +( + SymbolLine[0 3000 2000 5000 800] + SymbolLine[0 5000 2000 3000 800] +) +Symbol['y' 1200] +( + SymbolLine[0 3000 0 4500 800] + SymbolLine[0 4500 500 5000 800] + SymbolLine[2000 3000 2000 6000 800] + SymbolLine[1500 6500 2000 6000 800] + SymbolLine[500 6500 1500 6500 800] + SymbolLine[0 6000 500 6500 800] + SymbolLine[500 5000 1500 5000 800] + SymbolLine[1500 5000 2000 4500 800] +) +Symbol['z' 1200] +( + SymbolLine[0 3000 2000 3000 800] + SymbolLine[0 5000 2000 3000 800] + SymbolLine[0 5000 2000 5000 800] +) +Symbol['{' 1200] +( + SymbolLine[500 1500 1000 1000 800] + SymbolLine[500 1500 500 2500 800] + SymbolLine[0 3000 500 2500 800] + SymbolLine[0 3000 500 3500 800] + SymbolLine[500 3500 500 4500 800] + SymbolLine[500 4500 1000 5000 800] +) +Symbol['|' 1200] +( + SymbolLine[0 1000 0 5000 800] +) +Symbol['}' 1200] +( + SymbolLine[0 1000 500 1500 800] + SymbolLine[500 1500 500 2500 800] + SymbolLine[500 2500 1000 3000 800] + SymbolLine[500 3500 1000 3000 800] + SymbolLine[500 3500 500 4500 800] + SymbolLine[0 5000 500 4500 800] +) +Symbol['~' 1200] +( + SymbolLine[0 3500 500 3000 800] + SymbolLine[500 3000 1000 3000 800] + SymbolLine[1000 3000 1500 3500 800] + SymbolLine[1500 3500 2000 3500 800] + SymbolLine[2000 3500 2500 3000 800] +) +Attribute("PCB::grid::unit" "mil") +Via[35000 4000 4000 2000 0 2000 "" ""] +Via[102000 14000 4000 2000 0 2000 "" ""] +Via[41000 11000 4000 2000 0 2000 "" ""] +Via[72000 10000 6000 2000 0 3500 "" ""] +Via[118000 37000 6000 2000 0 3500 "" ""] +Via[118000 16000 4000 2000 0 2000 "" ""] +Via[118000 26000 4000 2000 0 2000 "" ""] + +Element["" "microswitch" "S2" "unknown" 54000 21000 -3000 -3000 0 100 ""] +( + Attribute("author" "Alexander Kurz, Stefan Tauner") + Attribute("copyright" "2008 Alexander Kurz, 2010 Stefan Tauner") + Attribute("use-license" "Unlimited") + Attribute("dist-license" "CC-BY-SA-2.5") + Attribute("ref" "tycoelectronics.com document number 2-1437565-7 rev S1 2010-04-10") + Attribute("comment" "rev S1 of the document has an error: horizontal pad spacing implies 2*1,4 + 3,1 = 5,86. i used 5,9 instead.") + Pad[-7874 -15748 -7874 -8661 5512 1969 5906 "1" "1" "square"] + Pad[7874 -15748 7874 -8661 5512 1969 5906 "2" "2" "square"] + Pad[-7874 8661 -7874 15748 5512 1969 5906 "1" "1" "square,edge2"] + Pad[7874 8661 7874 15748 5512 1969 5906 "2" "2" "square,edge2"] + ElementLine [-12992 -12402 -12992 12402 1000] + ElementLine [-4331 -12402 4331 -12402 1000] + ElementLine [12992 -12402 12992 12402 1000] + ElementLine [-4331 12402 4331 12402 1000] + + ) + +Element["" "microswitch" "S1" "unknown" 104000 21000 -3000 -3000 0 100 ""] +( + Attribute("author" "Alexander Kurz, Stefan Tauner") + Attribute("copyright" "2008 Alexander Kurz, 2010 Stefan Tauner") + Attribute("use-license" "Unlimited") + Attribute("dist-license" "CC-BY-SA-2.5") + Attribute("ref" "tycoelectronics.com document number 2-1437565-7 rev S1 2010-04-10") + Attribute("comment" "rev S1 of the document has an error: horizontal pad spacing implies 2*1,4 + 3,1 = 5,86. i used 5,9 instead.") + Pad[-7874 -15748 -7874 -8661 5512 1969 5906 "1" "1" "square"] + Pad[7874 -15748 7874 -8661 5512 1969 5906 "2" "2" "square"] + Pad[-7874 8661 -7874 15748 5512 1969 5906 "1" "1" "square,edge2"] + Pad[7874 8661 7874 15748 5512 1969 5906 "2" "2" "square,edge2"] + ElementLine [-12992 -12402 -12992 12402 1000] + ElementLine [-4331 -12402 4331 -12402 1000] + ElementLine [12992 -12402 12992 12402 1000] + ElementLine [-4331 12402 4331 12402 1000] + + ) + +Element["" "HEADER2_1_PWR" "LOAD" "unknown" 6000 8000 17000 -5000 0 100 ""] +( + Pin[0 0 7000 3000 7600 5000 "1" "1" "square,edge2"] + Pin[10000 0 7000 3000 7600 5000 "2" "2" "edge2"] + ElementLine [-5000 -5000 -5000 5000 1000] + ElementLine [-5000 5000 15000 5000 1000] + ElementLine [15000 5000 15000 -5000 1000] + ElementLine [15000 -5000 -5000 -5000 1000] + ElementLine [-5000 5000 5000 5000 1000] + ElementLine [5000 5000 5000 -5000 1000] + + ) + +Element["" "HEADER2_1_PWR" "B1" "unknown" 6000 34000 29000 -1000 0 100 ""] +( + Pin[0 0 7000 3000 7600 5000 "1" "1" "square,edge2"] + Pin[10000 0 7000 3000 7600 5000 "2" "2" "edge2"] + ElementLine [-5000 -5000 -5000 5000 1000] + ElementLine [-5000 5000 15000 5000 1000] + ElementLine [15000 5000 15000 -5000 1000] + ElementLine [15000 -5000 -5000 -5000 1000] + ElementLine [-5000 5000 5000 5000 1000] + ElementLine [5000 5000 5000 -5000 1000] + + ) + +Element["onsolder" "1206" "R3" "1M5" 42000 11000 -3000 3000 0 100 "auto"] +( + Pad[-1181 -5905 1181 -5905 5118 2000 5718 "1" "1" "onsolder,square"] + Pad[-1181 5905 1181 5905 5118 2000 5718 "2" "2" "onsolder,square"] + ElementLine [-3740 -2362 -3740 2362 800] + ElementLine [3740 -2362 3740 2362 800] + + ) + +Element["onsolder" "1206" "R4" "300K" 42000 30000 -3150 3150 0 100 "auto"] +( + Pad[-1181 -5905 1181 -5905 5118 2000 5718 "1" "1" "onsolder,square"] + Pad[-1181 5905 1181 5905 5118 2000 5718 "2" "2" "onsolder,square"] + ElementLine [-3740 -2362 -3740 2362 800] + ElementLine [3740 -2362 3740 2362 800] + + ) + +Element["" "1206" "R2" "39R" 79000 35000 3000 -3000 3 100 ""] +( + Pad[5905 -1181 5905 1181 5118 2000 5718 "1" "1" "square"] + Pad[-5905 -1181 -5905 1181 5118 2000 5718 "2" "2" "square"] + ElementLine [-2362 3740 2362 3740 800] + ElementLine [-2362 -3740 2362 -3740 800] + + ) + +Element["onsolder" "SO8NM" "U1" "unknown" 59000 21000 -2000 3000 0 100 "auto"] +( + Pad[7500 7000 7500 16000 2000 1000 3000 "1" "1" "onsolder,square,edge2"] + Pad[2500 7000 2500 16000 2000 1000 3000 "2" "2" "onsolder,square,edge2"] + Pad[-2500 7000 -2500 16000 2000 1000 3000 "3" "3" "onsolder,square,edge2"] + Pad[-7500 7000 -7500 16000 2000 1000 3000 "4" "4" "onsolder,square,edge2"] + Pad[-7500 -16000 -7500 -7000 2000 1000 3000 "5" "5" "onsolder,square"] + Pad[-2500 -16000 -2500 -7000 2000 1000 3000 "6" "6" "onsolder,square"] + Pad[2500 -16000 2500 -7000 2000 1000 3000 "7" "7" "onsolder,square"] + Pad[7500 -16000 7500 -7000 2000 1000 3000 "8" "8" "onsolder,square"] + ElementLine [-9500 18000 9500 18000 1000] + ElementLine [-9500 -18000 -9500 18000 1000] + ElementLine [-9500 -18000 9500 -18000 1000] + ElementLine [9500 2500 9500 18000 1000] + ElementLine [9500 -18000 9500 -2500 1000] + ElementArc [9500 0 2500 2500 270 180 1000] + + ) + +Element["onsolder" "1206" "R5" "15K" 30000 30000 -3095 3000 0 100 "auto"] +( + Pad[-1181 -5905 1181 -5905 5118 2000 5718 "1" "1" "onsolder,square"] + Pad[-1181 5905 1181 5905 5118 2000 5718 "2" "2" "onsolder,square"] + ElementLine [-3740 -2362 -3740 2362 800] + ElementLine [3740 -2362 3740 2362 800] + + ) + +Element["" "SOD123" "D1" "unknown" 12000 22000 12000 -9000 0 100 ""] +( + Pad[-5500 -600 -5500 600 6900 2000 7500 "1" "1" "square"] + Pad[5500 -600 5500 600 6900 2000 7500 "2" "2" "square"] + ElementLine [-11000 -4000 -11000 4000 2000] + ElementLine [-11000 4000 -7600 5100 1000] + ElementLine [-7600 5100 10000 5100 1000] + ElementLine [10000 -5100 10000 5100 1000] + ElementLine [-7600 -5100 10000 -5100 1000] + ElementLine [-7600 -5100 -11000 -4000 1000] + + ) + +Element["" "1210" "C1" "unknown" 29000 28000 -2000 -3000 0 100 ""] +( + Pad[-2755 -5905 2755 -5905 5118 2000 5718 "1" "1" "square"] + Pad[-2755 5905 2755 5905 5118 2000 5718 "2" "2" "square"] + ElementLine [5314 -1968 5314 1968 800] + ElementLine [-5314 -1968 -5314 1968 800] + + ) + +Element["" "LED3" "D2" "unknown" 79000 21000 -2500 -15000 0 100 ""] +( + Pin[0 5000 6500 3000 7100 4300 "1" "1" "square"] + Pin[0 -5000 6500 3000 7100 4300 "2" "2" ""] + ElementArc [0 0 5900 5900 135 90 1000] + ElementArc [0 0 5900 5900 315 90 1000] + ElementArc [0 0 7900 7900 135 90 1000] + ElementArc [0 0 7900 7900 315 90 1000] + + ) + +Element["onsolder" "SOT23" "Q1" "unknown" 32000 17000 -17000 3000 0 100 "auto"] +( + Pad[0 -300 0 300 3400 3000 4000 "1" "1" "onsolder,square,edge2"] + Pad[-7800 -300 -7800 300 3400 3000 4000 "2" "2" "onsolder,square,edge2"] + Pad[-3900 -8500 -3900 -7900 3400 3000 4000 "3" "3" "onsolder,square"] + ElementLine [2500 -11000 2500 2900 1000] + ElementLine [-10300 2900 2500 2900 1000] + ElementLine [-10300 -11000 -10300 2900 1000] + ElementLine [-10300 -11000 2500 -11000 1000] + + ) + +Element["" "header3_2_edge" "PROG" "unknown" 130000 11000 -9000 -10000 0 100 ""] +( + Attribute("author" "Jan Yenya Kasprzak, http://www.fi.muni.cz/~kas/") + Attribute("copyright" "Jan Yenya Kasprzak, http://www.fi.muni.cz/~kas/") + Attribute("use-license" "Unlimited") + Attribute("dist-license" "GPL 2.0") + Attribute("comment" "Thanks: Karl Hammar") + Pad[-7500 0 7500 0 5000 2000 6000 "1" "1" "square,edge2"] + Pad[-7500 0 7500 0 5000 2000 6000 "2" "2" "onsolder,square,edge2"] + Pad[-7500 10000 7500 10000 5000 2000 6000 "3" "3" "square,edge2"] + Pad[-7500 10000 7500 10000 5000 2000 6000 "4" "4" "onsolder,square,edge2"] + Pad[-7500 20000 7500 20000 5000 2000 6000 "5" "5" "square,edge2"] + Pad[-7500 20000 7500 20000 5000 2000 6000 "6" "6" "onsolder,square,edge2"] + ElementLine [-11000 -5000 8500 -5000 1000] + ElementLine [-11000 25000 8500 25000 1000] + ElementLine [-11000 -5000 -11000 25000 1000] + ElementLine [0 -5000 0 -3750 1000] + ElementLine [-11000 -3750 0 -3750 1000] + + ) +Rat[55000 24000 0 61874 5252 0 ""] +Rat[105000 19000 0 111874 36748 0 ""] +Rat[89000 21000 1 96126 36748 0 ""] +Rat[62000 24000 1 46126 36748 0 ""] +Layer(1 "top") +( + Line[62000 4000 76000 4000 2500 2000 ""] + Line[41000 11000 46000 11000 1000 2000 ""] + Line[6000 15000 24000 15000 1000 2000 ""] + Line[102000 14000 95000 14000 1000 2000 ""] + Line[85000 22000 79000 16000 1000 2000 ""] + Line[127000 22000 85000 22000 1000 2000 ""] + Line[105000 19000 111000 13000 2500 2000 ""] + Line[91000 19000 105000 19000 2500 2000 ""] + Line[76000 4000 91000 19000 2500 2000 ""] + Line[79000 26000 86000 33000 1000 2000 ""] + Line[62000 36000 74000 36000 2500 2000 ""] + Line[72000 16000 72000 10000 2500 2000 ""] + Line[68000 20000 72000 16000 2500 2000 ""] + Line[27000 20000 68000 20000 2500 2000 ""] + Line[55000 24000 62000 31000 2500 2000 ""] + Line[41000 24000 55000 24000 2500 2000 ""] + Line[33000 32000 41000 24000 2500 2000 ""] + Line[33000 34000 33000 32000 2500 2000 ""] + Line[24000 15000 35000 4000 1000 2000 ""] + Line[18000 22000 26000 22000 8000 2000 ""] + Line[16000 34000 28000 34000 8000 2000 ""] + Line[6000 8000 6000 34000 8000 2000 ""] + Line[118000 16000 123000 11000 1000 2000 ""] + Line[118000 37000 112000 37000 2500 2000 ""] + Line[118000 26000 123000 31000 1000 2000 ""] +) +Layer(2 "bottom") +( + Line[41000 11000 51000 11000 1000 2000 ""] + Line[77000 5000 72000 10000 2500 2000 ""] + Line[117000 5000 77000 5000 2500 2000 ""] + Line[67000 10000 72000 10000 2500 2000 ""] + Line[35000 4000 41000 4000 1000 2000 ""] + Line[35000 29000 31000 25000 1000 2000 ""] + Line[47000 29000 35000 29000 1000 2000 ""] + Line[48000 28000 47000 29000 1000 2000 ""] + Line[48000 27000 48000 28000 1000 2000 ""] + Line[50000 25000 48000 27000 1000 2000 ""] + Line[16000 34000 51000 34000 2500 2000 ""] + Line[32000 23000 32000 17000 1000 2000 ""] + Line[16000 23000 21000 18000 8000 2000 ""] + Line[16000 34000 16000 23000 8000 2000 ""] + Line[16000 8000 26000 8000 8000 2000 ""] + Line[6000 34000 6000 8000 8000 2000 ""] + Line[62000 15000 65000 18000 1000 2000 ""] + Line[75000 32000 84000 32000 1000 2000 ""] + Line[72000 29000 75000 32000 1000 2000 ""] + Line[72000 27000 72000 29000 1000 2000 ""] + Line[69000 24000 72000 27000 1000 2000 ""] + Line[62000 24000 69000 24000 1000 2000 ""] + Line[52000 14000 62000 24000 1000 2000 ""] + Line[64000 21000 89000 21000 1000 2000 ""] + Line[57000 14000 64000 21000 1000 2000 ""] + Line[56000 22000 40000 22000 1000 2000 ""] + Line[62000 28000 56000 22000 1000 2000 ""] + Line[77000 18000 79000 16000 1000 2000 ""] + Line[65000 18000 77000 18000 1000 2000 ""] + Line[62000 14000 62000 15000 1000 2000 ""] + Line[42000 22000 42000 17000 1000 2000 ""] + Line[54000 25000 57000 28000 1000 2000 ""] + Line[50000 25000 54000 25000 1000 2000 ""] + Line[117000 5000 123000 11000 2500 2000 ""] + Line[118000 37000 119000 36000 2500 2000 ""] + Line[119000 36000 123000 32000 2500 2000 ""] + Line[84000 32000 94000 22000 1000 2000 ""] + Line[94000 22000 124000 22000 1000 2000 ""] + Line[116000 14000 118000 16000 1000 2000 ""] + Line[89000 21000 96000 14000 1000 2000 ""] + Line[116000 14000 96000 14000 1000 2000 ""] + Line[67000 36000 87000 36000 1000 2000 ""] + Line[87000 36000 97000 26000 1000 2000 ""] + Line[97000 26000 118000 26000 1000 2000 ""] +) +Layer(3 "silk") +( + Text[75000 11000 0 120 "yenya.net/htr" "clearline,onsolder"] + Text[5000 32000 0 120 "+" "clearline,onsolder"] + Text[125000 29000 0 80 "GND" "clearline,onsolder"] + Text[124000 19000 0 80 "MOSI" "clearline,onsolder"] + Text[125000 9000 0 80 "VCC" "clearline,onsolder"] +) +Layer(4 "silk") +( + Line[134000 0 6000 0 1000 2000 ""] + Line[0 6000 0 36000 1000 2000 ""] + Line[6000 42000 134000 42000 1000 2000 ""] + Line[140000 6000 140000 36000 1000 2000 ""] + Line[21000 38000 33000 38000 1000 2000 ""] + Arc[6000 36000 6000 6000 1000 2000 0 90 ""] + Arc[6000 6000 6000 6000 1000 2000 -90 90 ""] + Arc[134000 36000 6000 6000 1000 2000 90 90 ""] + Arc[134000 6000 6000 6000 1000 2000 -90 -90 ""] + Text[83000 9000 0 120 "+" "clearline"] + Text[13000 23000 0 120 "-" "clearline"] + Text[1000 23000 0 120 "+" "clearline"] + Text[126000 13000 0 80 "MISO" "clearline"] + Text[127000 23000 0 80 "SCK" "clearline"] + Text[124000 36000 0 80 "RESET" "clearline"] +) +NetList() +( + Net("GND" "(unknown)") + ( + Connect("B1-2") + Connect("C1-2") + Connect("PROG-6") + Connect("Q1-2") + Connect("R2-2") + Connect("R4-2") + Connect("R5-2") + Connect("S1-2") + Connect("S2-2") + Connect("U1-4") + ) + Net("MISO" "(unknown)") + ( + Connect("PROG-1") + Connect("S1-1") + Connect("U1-6") + ) + Net("MOSI" "(unknown)") + ( + Connect("PROG-4") + Connect("S2-1") + Connect("U1-5") + ) + Net("RESET" "(unknown)") + ( + Connect("PROG-5") + Connect("U1-1") + ) + Net("SCK" "(unknown)") + ( + Connect("D2-2") + Connect("PROG-3") + Connect("U1-7") + ) + Net("unnamed_net1" "(unknown)") + ( + Connect("Q1-1") + Connect("R5-1") + Connect("U1-3") + ) + Net("unnamed_net2" "(unknown)") + ( + Connect("R3-2") + Connect("R4-1") + Connect("U1-2") + ) + Net("unnamed_net3" "(unknown)") + ( + Connect("LOAD-2") + Connect("Q1-3") + ) + Net("unnamed_net4" "(unknown)") + ( + Connect("D2-1") + Connect("R2-1") + ) + Net("Vbat" "(unknown)") + ( + Connect("B1-1") + Connect("D1-1") + Connect("LOAD-1") + Connect("R3-1") + ) + Net("Vcc" "(unknown)") + ( + Connect("C1-1") + Connect("D1-2") + Connect("PROG-2") + Connect("U1-8") + ) +) diff --git a/heater.prj b/heater.prj new file mode 100644 index 0000000..c2cc6cb --- /dev/null +++ b/heater.prj @@ -0,0 +1,3 @@ +schematics heater.sch +elements-dir . +output-name heater diff --git a/heater.sch b/heater.sch new file mode 100644 index 0000000..8594e32 --- /dev/null +++ b/heater.sch @@ -0,0 +1,220 @@ +v 20130925 2 +C 40000 40000 0 0 0 title-B.sym +C 46500 46300 1 0 1 ATtiny25-1.sym +{ +T 46225 49750 5 10 0 0 0 6 1 +device=ATtiny25 +T 45400 47750 5 10 1 1 0 6 1 +refdes=U1 +T 46225 48950 5 10 0 0 0 6 1 +footprint=SO8NM +} +C 54200 47900 1 0 1 connector2-1.sym +{ +T 54000 48900 5 10 0 0 0 6 1 +device=CONNECTOR_2 +T 54200 48700 5 10 1 1 0 6 1 +refdes=LOAD +T 54200 47900 5 10 0 1 0 0 1 +footprint=HEADER2_1_PWR +} +N 42900 44300 42900 46600 4 +N 42900 44300 52500 44300 4 +{ +T 45400 44400 5 10 1 1 0 0 1 +netname=GND +} +N 42900 47300 42900 50200 4 +N 42900 50200 52500 50200 4 +{ +T 45400 50000 5 10 1 1 0 0 1 +netname=Vbat +} +N 52500 50200 52500 48400 4 +C 51500 46500 1 270 0 resistor-2.sym +{ +T 51850 46100 5 10 0 0 270 0 1 +device=RESISTOR +T 51800 46300 5 10 1 1 270 0 1 +refdes=R5 +T 51300 46300 5 10 1 1 270 0 1 +value=15K +T 51500 46500 5 10 0 1 0 0 1 +footprint=1206 +} +C 50500 48000 1 270 0 resistor-2.sym +{ +T 50850 47600 5 10 0 0 270 0 1 +device=RESISTOR +T 50800 47800 5 10 1 1 270 0 1 +refdes=R3 +T 50300 47800 5 10 1 1 270 0 1 +value=1M5 +T 50500 48000 5 10 0 1 0 0 1 +footprint=1206 +} +C 48100 45400 1 270 0 resistor-2.sym +{ +T 48450 45000 5 10 0 0 270 0 1 +device=RESISTOR +T 48400 45200 5 10 1 1 270 0 1 +refdes=R2 +T 47900 45200 5 10 1 1 270 0 1 +value=39R +T 48100 45400 5 10 0 1 0 0 1 +footprint=1206 +} +C 50500 46500 1 270 0 resistor-2.sym +{ +T 50850 46100 5 10 0 0 270 0 1 +device=RESISTOR +T 50800 46300 5 10 1 1 270 0 1 +refdes=R4 +T 50300 46300 5 10 1 1 270 0 1 +value=300K +T 50500 46500 5 10 0 1 0 0 1 +footprint=1206 +} +C 43800 48200 1 270 0 diode-1.sym +{ +T 44400 47800 5 10 0 0 270 0 1 +device=DIODE +T 44300 47900 5 10 1 1 270 0 1 +refdes=D1 +T 43800 48200 5 10 0 1 0 0 1 +footprint=SOD123 +} +C 43800 46500 1 270 0 capacitor-2.sym +{ +T 44500 46300 5 10 0 0 270 0 1 +device=POLARIZED_CAPACITOR +T 44300 46300 5 10 1 1 270 0 1 +refdes=C1 +T 44700 46300 5 10 0 0 270 0 1 +symversion=0.1 +T 43800 46500 5 10 0 1 0 0 1 +footprint=1210 +} +N 44000 50200 44000 48200 4 +N 44000 47300 44000 46500 4 +N 44000 45600 44000 44300 4 +N 52500 48100 52500 47200 4 +N 52500 46200 52500 44300 4 +N 46500 46700 51900 46700 4 +N 51600 45600 51600 44300 4 +N 44900 46700 44900 44300 4 +N 44900 46900 44000 46900 4 +C 48000 45600 1 270 1 led-3.sym +{ +T 48650 46550 5 10 0 0 90 2 1 +device=LED +T 48550 46450 5 10 1 1 270 2 1 +refdes=D2 +T 48000 45600 5 10 0 1 0 0 1 +footprint=LED3 +} +N 48200 45600 48200 45400 4 +C 48900 46500 1 270 0 switch-spst-1.sym +{ +T 49600 46100 5 10 0 0 270 0 1 +device=SPST +T 49200 46200 5 10 1 1 270 0 1 +refdes=S1 +T 48900 46500 5 10 0 1 0 0 1 +footprint=microswitch +} +N 50600 50200 50600 48000 4 +N 50600 47100 50600 46500 4 +N 50600 45600 50600 44300 4 +C 42700 47300 1 270 0 battery-1.sym +{ +T 43600 47000 5 10 0 0 270 0 1 +device=BATTERY +T 43200 47000 5 10 1 1 270 0 1 +refdes=B1 +T 44000 47000 5 10 0 0 270 0 1 +symversion=0.1 +T 42700 47300 5 10 0 1 0 0 1 +footprint=HEADER2_1_PWR +} +C 49200 47900 1 0 1 connector6-1.sym +{ +T 47400 49700 5 10 0 0 0 6 1 +device=CONNECTOR_6 +T 49100 49900 5 10 1 1 0 6 1 +refdes=PROG +T 49200 47900 5 10 0 1 0 0 1 +footprint=header3_2_edge +} +N 47500 49600 46700 49600 4 +{ +T 47200 49700 5 10 1 1 0 0 1 +netname=MISO +} +N 46700 49600 46700 47300 4 +N 46500 47300 48900 47300 4 +N 47500 49300 44600 49300 4 +{ +T 47200 49400 5 10 1 1 0 0 1 +netname=Vcc +} +N 44600 49300 44600 46900 4 +N 47500 49000 46900 49000 4 +{ +T 47200 49100 5 10 1 1 0 0 1 +netname=SCK +} +N 46900 49000 46900 47100 4 +N 46500 47100 48200 47100 4 +N 47500 48700 46500 48700 4 +{ +T 47200 48800 5 10 1 1 0 0 1 +netname=MOSI +} +N 46500 48700 46500 47500 4 +N 46500 46500 47100 46500 4 +N 47100 46500 47100 48400 4 +N 47100 48400 47500 48400 4 +{ +T 47200 48500 5 10 1 1 0 0 1 +netname=RESET +} +N 47500 48100 47300 48100 4 +{ +T 47200 48200 5 10 1 1 0 0 1 +netname=GND +} +N 47300 48100 47300 44300 4 +N 48200 47100 48200 46500 4 +N 48900 47300 48900 46500 4 +N 48900 45700 48900 44300 4 +N 48200 44500 48200 44300 4 +N 51600 46700 51600 46500 4 +N 46500 46900 50600 46900 4 +C 49600 46500 1 270 0 switch-spst-1.sym +{ +T 50300 46100 5 10 0 0 270 0 1 +device=SPST +T 49600 46500 5 10 0 1 0 0 1 +footprint=microswitch +T 49900 46200 5 10 1 1 270 0 1 +refdes=S2 +} +N 49600 47500 49600 46500 4 +N 49600 45700 49600 44300 4 +N 49600 47500 46500 47500 4 +C 51900 46200 1 0 0 mosfet-with-diode-2.sym +{ +T 52800 46700 5 10 0 0 0 0 1 +device=NPN_TRANSISTOR +T 52800 46700 5 10 1 1 0 0 1 +refdes=Q1 +T 51900 46200 5 10 0 0 0 0 1 +footprint=SOT23 +} +T 51200 41000 9 16 1 0 0 0 1 +http://www.fi.muni.cz/~kas/heater/ +T 54000 40200 9 16 1 0 0 0 1 +Jan "Yenya" Kasprzak +T 50400 40700 9 10 1 0 0 0 1 +Distributable under the terms of GNU General Public License, version 2 diff --git a/heater2.pcb b/heater2.pcb new file mode 100644 index 0000000..4355345 --- /dev/null +++ b/heater2.pcb @@ -0,0 +1,856 @@ +# release: pcb 20110918 + +# To read pcb files, the pcb version (or the git source date) must be >= the file version +FileVersion[20070407] + +PCB["" 200000 200000] + +Grid[5000.0 0 0 1] +Cursor[0 20000 0.000000] +PolyArea[3100.006200] +Thermal[0.500000] +DRC[799 799 800 100 1500 800] +Flags("nameonpcb,uniquename,clearnew") +Groups("1,c:2,s") +Styles["Signal,1000,3600,2000,1000:Power,2500,6000,3500,1000:Fat,4000,6000,3500,1000:Skinny,600,2402,1181,600"] + +Symbol[' ' 1800] +( +) +Symbol['!' 1200] +( + SymbolLine[0 4500 0 5000 800] + SymbolLine[0 1000 0 3500 800] +) +Symbol['"' 1200] +( + SymbolLine[0 1000 0 2000 800] + SymbolLine[1000 1000 1000 2000 800] +) +Symbol['#' 1200] +( + SymbolLine[0 3500 2000 3500 800] + SymbolLine[0 2500 2000 2500 800] + SymbolLine[1500 2000 1500 4000 800] + SymbolLine[500 2000 500 4000 800] +) +Symbol['$' 1200] +( + SymbolLine[1500 1500 2000 2000 800] + SymbolLine[500 1500 1500 1500 800] + SymbolLine[0 2000 500 1500 800] + SymbolLine[0 2000 0 2500 800] + SymbolLine[0 2500 500 3000 800] + SymbolLine[500 3000 1500 3000 800] + SymbolLine[1500 3000 2000 3500 800] + SymbolLine[2000 3500 2000 4000 800] + SymbolLine[1500 4500 2000 4000 800] + SymbolLine[500 4500 1500 4500 800] + SymbolLine[0 4000 500 4500 800] + SymbolLine[1000 1000 1000 5000 800] +) +Symbol['%' 1200] +( + SymbolLine[0 1500 0 2000 800] + SymbolLine[0 1500 500 1000 800] + SymbolLine[500 1000 1000 1000 800] + SymbolLine[1000 1000 1500 1500 800] + SymbolLine[1500 1500 1500 2000 800] + SymbolLine[1000 2500 1500 2000 800] + SymbolLine[500 2500 1000 2500 800] + SymbolLine[0 2000 500 2500 800] + SymbolLine[0 5000 4000 1000 800] + SymbolLine[3500 5000 4000 4500 800] + SymbolLine[4000 4000 4000 4500 800] + SymbolLine[3500 3500 4000 4000 800] + SymbolLine[3000 3500 3500 3500 800] + SymbolLine[2500 4000 3000 3500 800] + SymbolLine[2500 4000 2500 4500 800] + SymbolLine[2500 4500 3000 5000 800] + SymbolLine[3000 5000 3500 5000 800] +) +Symbol['&' 1200] +( + SymbolLine[0 4500 500 5000 800] + SymbolLine[0 1500 0 2500 800] + SymbolLine[0 1500 500 1000 800] + SymbolLine[0 3500 1500 2000 800] + SymbolLine[500 5000 1000 5000 800] + SymbolLine[1000 5000 2000 4000 800] + SymbolLine[0 2500 2500 5000 800] + SymbolLine[500 1000 1000 1000 800] + SymbolLine[1000 1000 1500 1500 800] + SymbolLine[1500 1500 1500 2000 800] + SymbolLine[0 3500 0 4500 800] +) +Symbol[''' 1200] +( + SymbolLine[0 2000 1000 1000 800] +) +Symbol['(' 1200] +( + SymbolLine[0 4500 500 5000 800] + SymbolLine[0 1500 500 1000 800] + SymbolLine[0 1500 0 4500 800] +) +Symbol[')' 1200] +( + SymbolLine[0 1000 500 1500 800] + SymbolLine[500 1500 500 4500 800] + SymbolLine[0 5000 500 4500 800] +) +Symbol['*' 1200] +( + SymbolLine[0 2000 2000 4000 800] + SymbolLine[0 4000 2000 2000 800] + SymbolLine[0 3000 2000 3000 800] + SymbolLine[1000 2000 1000 4000 800] +) +Symbol['+' 1200] +( + SymbolLine[0 3000 2000 3000 800] + SymbolLine[1000 2000 1000 4000 800] +) +Symbol[',' 1200] +( + SymbolLine[0 6000 1000 5000 800] +) +Symbol['-' 1200] +( + SymbolLine[0 3000 2000 3000 800] +) +Symbol['.' 1200] +( + SymbolLine[0 5000 500 5000 800] +) +Symbol['/' 1200] +( + SymbolLine[0 4500 3000 1500 800] +) +Symbol['0' 1200] +( + SymbolLine[0 4500 500 5000 800] + SymbolLine[0 1500 0 4500 800] + SymbolLine[0 1500 500 1000 800] + SymbolLine[500 1000 1500 1000 800] + SymbolLine[1500 1000 2000 1500 800] + SymbolLine[2000 1500 2000 4500 800] + SymbolLine[1500 5000 2000 4500 800] + SymbolLine[500 5000 1500 5000 800] + SymbolLine[0 4000 2000 2000 800] +) +Symbol['1' 1200] +( + SymbolLine[0 1800 800 1000 800] + SymbolLine[800 1000 800 5000 800] + SymbolLine[0 5000 1500 5000 800] +) +Symbol['2' 1200] +( + SymbolLine[0 1500 500 1000 800] + SymbolLine[500 1000 2000 1000 800] + SymbolLine[2000 1000 2500 1500 800] + SymbolLine[2500 1500 2500 2500 800] + SymbolLine[0 5000 2500 2500 800] + SymbolLine[0 5000 2500 5000 800] +) +Symbol['3' 1200] +( + SymbolLine[0 1500 500 1000 800] + SymbolLine[500 1000 1500 1000 800] + SymbolLine[1500 1000 2000 1500 800] + SymbolLine[1500 5000 2000 4500 800] + SymbolLine[500 5000 1500 5000 800] + SymbolLine[0 4500 500 5000 800] + SymbolLine[500 2800 1500 2800 800] + SymbolLine[2000 1500 2000 2300 800] + SymbolLine[2000 3300 2000 4500 800] + SymbolLine[2000 3300 1500 2800 800] + SymbolLine[2000 2300 1500 2800 800] +) +Symbol['4' 1200] +( + SymbolLine[0 3500 2000 1000 800] + SymbolLine[0 3500 2500 3500 800] + SymbolLine[2000 1000 2000 5000 800] +) +Symbol['5' 1200] +( + SymbolLine[0 1000 2000 1000 800] + SymbolLine[0 1000 0 3000 800] + SymbolLine[0 3000 500 2500 800] + SymbolLine[500 2500 1500 2500 800] + SymbolLine[1500 2500 2000 3000 800] + SymbolLine[2000 3000 2000 4500 800] + SymbolLine[1500 5000 2000 4500 800] + SymbolLine[500 5000 1500 5000 800] + SymbolLine[0 4500 500 5000 800] +) +Symbol['6' 1200] +( + SymbolLine[1500 1000 2000 1500 800] + SymbolLine[500 1000 1500 1000 800] + SymbolLine[0 1500 500 1000 800] + SymbolLine[0 1500 0 4500 800] + SymbolLine[0 4500 500 5000 800] + SymbolLine[1500 2800 2000 3300 800] + SymbolLine[0 2800 1500 2800 800] + SymbolLine[500 5000 1500 5000 800] + SymbolLine[1500 5000 2000 4500 800] + SymbolLine[2000 3300 2000 4500 800] +) +Symbol['7' 1200] +( + SymbolLine[500 5000 2500 1000 800] + SymbolLine[0 1000 2500 1000 800] +) +Symbol['8' 1200] +( + SymbolLine[0 4500 500 5000 800] + SymbolLine[0 3700 0 4500 800] + SymbolLine[0 3700 700 3000 800] + SymbolLine[700 3000 1300 3000 800] + SymbolLine[1300 3000 2000 3700 800] + SymbolLine[2000 3700 2000 4500 800] + SymbolLine[1500 5000 2000 4500 800] + SymbolLine[500 5000 1500 5000 800] + SymbolLine[0 2300 700 3000 800] + SymbolLine[0 1500 0 2300 800] + SymbolLine[0 1500 500 1000 800] + SymbolLine[500 1000 1500 1000 800] + SymbolLine[1500 1000 2000 1500 800] + SymbolLine[2000 1500 2000 2300 800] + SymbolLine[1300 3000 2000 2300 800] +) +Symbol['9' 1200] +( + SymbolLine[500 5000 2000 3000 800] + SymbolLine[2000 1500 2000 3000 800] + SymbolLine[1500 1000 2000 1500 800] + SymbolLine[500 1000 1500 1000 800] + SymbolLine[0 1500 500 1000 800] + SymbolLine[0 1500 0 2500 800] + SymbolLine[0 2500 500 3000 800] + SymbolLine[500 3000 2000 3000 800] +) +Symbol[':' 1200] +( + SymbolLine[0 2500 500 2500 800] + SymbolLine[0 3500 500 3500 800] +) +Symbol[';' 1200] +( + SymbolLine[0 5000 1000 4000 800] + SymbolLine[1000 2500 1000 3000 800] +) +Symbol['<' 1200] +( + SymbolLine[0 3000 1000 2000 800] + SymbolLine[0 3000 1000 4000 800] +) +Symbol['=' 1200] +( + SymbolLine[0 2500 2000 2500 800] + SymbolLine[0 3500 2000 3500 800] +) +Symbol['>' 1200] +( + SymbolLine[0 2000 1000 3000 800] + SymbolLine[0 4000 1000 3000 800] +) +Symbol['?' 1200] +( + SymbolLine[1000 3000 1000 3500 800] + SymbolLine[1000 4500 1000 5000 800] + SymbolLine[0 1500 0 2000 800] + SymbolLine[0 1500 500 1000 800] + SymbolLine[500 1000 1500 1000 800] + SymbolLine[1500 1000 2000 1500 800] + SymbolLine[2000 1500 2000 2000 800] + SymbolLine[1000 3000 2000 2000 800] +) +Symbol['@' 1200] +( + SymbolLine[0 1000 0 4000 800] + SymbolLine[0 4000 1000 5000 800] + SymbolLine[1000 5000 4000 5000 800] + SymbolLine[5000 3500 5000 1000 800] + SymbolLine[5000 1000 4000 0 800] + SymbolLine[4000 0 1000 0 800] + SymbolLine[1000 0 0 1000 800] + SymbolLine[1500 2000 1500 3000 800] + SymbolLine[1500 3000 2000 3500 800] + SymbolLine[2000 3500 3000 3500 800] + SymbolLine[3000 3500 3500 3000 800] + SymbolLine[3500 3000 4000 3500 800] + SymbolLine[3500 3000 3500 1500 800] + SymbolLine[3500 2000 3000 1500 800] + SymbolLine[2000 1500 3000 1500 800] + SymbolLine[2000 1500 1500 2000 800] + SymbolLine[4000 3500 5000 3500 800] +) +Symbol['A' 1200] +( + SymbolLine[0 2000 0 5000 800] + SymbolLine[0 2000 700 1000 800] + SymbolLine[700 1000 1800 1000 800] + SymbolLine[1800 1000 2500 2000 800] + SymbolLine[2500 2000 2500 5000 800] + SymbolLine[0 3000 2500 3000 800] +) +Symbol['B' 1200] +( + SymbolLine[0 5000 2000 5000 800] + SymbolLine[2000 5000 2500 4500 800] + SymbolLine[2500 3300 2500 4500 800] + SymbolLine[2000 2800 2500 3300 800] + SymbolLine[500 2800 2000 2800 800] + SymbolLine[500 1000 500 5000 800] + SymbolLine[0 1000 2000 1000 800] + SymbolLine[2000 1000 2500 1500 800] + SymbolLine[2500 1500 2500 2300 800] + SymbolLine[2000 2800 2500 2300 800] +) +Symbol['C' 1200] +( + SymbolLine[700 5000 2000 5000 800] + SymbolLine[0 4300 700 5000 800] + SymbolLine[0 1700 0 4300 800] + SymbolLine[0 1700 700 1000 800] + SymbolLine[700 1000 2000 1000 800] +) +Symbol['D' 1200] +( + SymbolLine[500 1000 500 5000 800] + SymbolLine[1800 1000 2500 1700 800] + SymbolLine[2500 1700 2500 4300 800] + SymbolLine[1800 5000 2500 4300 800] + SymbolLine[0 5000 1800 5000 800] + SymbolLine[0 1000 1800 1000 800] +) +Symbol['E' 1200] +( + SymbolLine[0 2800 1500 2800 800] + SymbolLine[0 5000 2000 5000 800] + SymbolLine[0 1000 0 5000 800] + SymbolLine[0 1000 2000 1000 800] +) +Symbol['F' 1200] +( + SymbolLine[0 1000 0 5000 800] + SymbolLine[0 1000 2000 1000 800] + SymbolLine[0 2800 1500 2800 800] +) +Symbol['G' 1200] +( + SymbolLine[2000 1000 2500 1500 800] + SymbolLine[500 1000 2000 1000 800] + SymbolLine[0 1500 500 1000 800] + SymbolLine[0 1500 0 4500 800] + SymbolLine[0 4500 500 5000 800] + SymbolLine[500 5000 2000 5000 800] + SymbolLine[2000 5000 2500 4500 800] + SymbolLine[2500 3500 2500 4500 800] + SymbolLine[2000 3000 2500 3500 800] + SymbolLine[1000 3000 2000 3000 800] +) +Symbol['H' 1200] +( + SymbolLine[0 1000 0 5000 800] + SymbolLine[2500 1000 2500 5000 800] + SymbolLine[0 3000 2500 3000 800] +) +Symbol['I' 1200] +( + SymbolLine[0 1000 1000 1000 800] + SymbolLine[500 1000 500 5000 800] + SymbolLine[0 5000 1000 5000 800] +) +Symbol['J' 1200] +( + SymbolLine[700 1000 1500 1000 800] + SymbolLine[1500 1000 1500 4500 800] + SymbolLine[1000 5000 1500 4500 800] + SymbolLine[500 5000 1000 5000 800] + SymbolLine[0 4500 500 5000 800] + SymbolLine[0 4500 0 4000 800] +) +Symbol['K' 1200] +( + SymbolLine[0 1000 0 5000 800] + SymbolLine[0 3000 2000 1000 800] + SymbolLine[0 3000 2000 5000 800] +) +Symbol['L' 1200] +( + SymbolLine[0 1000 0 5000 800] + SymbolLine[0 5000 2000 5000 800] +) +Symbol['M' 1200] +( + SymbolLine[0 1000 0 5000 800] + SymbolLine[0 1000 1500 3000 800] + SymbolLine[1500 3000 3000 1000 800] + SymbolLine[3000 1000 3000 5000 800] +) +Symbol['N' 1200] +( + SymbolLine[0 1000 0 5000 800] + SymbolLine[0 1000 2500 5000 800] + SymbolLine[2500 1000 2500 5000 800] +) +Symbol['O' 1200] +( + SymbolLine[0 1500 0 4500 800] + SymbolLine[0 1500 500 1000 800] + SymbolLine[500 1000 1500 1000 800] + SymbolLine[1500 1000 2000 1500 800] + SymbolLine[2000 1500 2000 4500 800] + SymbolLine[1500 5000 2000 4500 800] + SymbolLine[500 5000 1500 5000 800] + SymbolLine[0 4500 500 5000 800] +) +Symbol['P' 1200] +( + SymbolLine[500 1000 500 5000 800] + SymbolLine[0 1000 2000 1000 800] + SymbolLine[2000 1000 2500 1500 800] + SymbolLine[2500 1500 2500 2500 800] + SymbolLine[2000 3000 2500 2500 800] + SymbolLine[500 3000 2000 3000 800] +) +Symbol['Q' 1200] +( + SymbolLine[0 1500 0 4500 800] + SymbolLine[0 1500 500 1000 800] + SymbolLine[500 1000 1500 1000 800] + SymbolLine[1500 1000 2000 1500 800] + SymbolLine[2000 1500 2000 4000 800] + SymbolLine[1000 5000 2000 4000 800] + SymbolLine[500 5000 1000 5000 800] + SymbolLine[0 4500 500 5000 800] + SymbolLine[1000 3500 2000 5000 800] +) +Symbol['R' 1200] +( + SymbolLine[0 1000 2000 1000 800] + SymbolLine[2000 1000 2500 1500 800] + SymbolLine[2500 1500 2500 2500 800] + SymbolLine[2000 3000 2500 2500 800] + SymbolLine[500 3000 2000 3000 800] + SymbolLine[500 1000 500 5000 800] + SymbolLine[1300 3000 2500 5000 800] +) +Symbol['S' 1200] +( + SymbolLine[2000 1000 2500 1500 800] + SymbolLine[500 1000 2000 1000 800] + SymbolLine[0 1500 500 1000 800] + SymbolLine[0 1500 0 2500 800] + SymbolLine[0 2500 500 3000 800] + SymbolLine[500 3000 2000 3000 800] + SymbolLine[2000 3000 2500 3500 800] + SymbolLine[2500 3500 2500 4500 800] + SymbolLine[2000 5000 2500 4500 800] + SymbolLine[500 5000 2000 5000 800] + SymbolLine[0 4500 500 5000 800] +) +Symbol['T' 1200] +( + SymbolLine[0 1000 2000 1000 800] + SymbolLine[1000 1000 1000 5000 800] +) +Symbol['U' 1200] +( + SymbolLine[0 1000 0 4500 800] + SymbolLine[0 4500 500 5000 800] + SymbolLine[500 5000 1500 5000 800] + SymbolLine[1500 5000 2000 4500 800] + SymbolLine[2000 1000 2000 4500 800] +) +Symbol['V' 1200] +( + SymbolLine[0 1000 1000 5000 800] + SymbolLine[1000 5000 2000 1000 800] +) +Symbol['W' 1200] +( + SymbolLine[0 1000 0 3000 800] + SymbolLine[0 3000 500 5000 800] + SymbolLine[500 5000 1500 3000 800] + SymbolLine[1500 3000 2500 5000 800] + SymbolLine[2500 5000 3000 3000 800] + SymbolLine[3000 3000 3000 1000 800] +) +Symbol['X' 1200] +( + SymbolLine[0 5000 2500 1000 800] + SymbolLine[0 1000 2500 5000 800] +) +Symbol['Y' 1200] +( + SymbolLine[0 1000 1000 3000 800] + SymbolLine[1000 3000 2000 1000 800] + SymbolLine[1000 3000 1000 5000 800] +) +Symbol['Z' 1200] +( + SymbolLine[0 1000 2500 1000 800] + SymbolLine[0 5000 2500 1000 800] + SymbolLine[0 5000 2500 5000 800] +) +Symbol['[' 1200] +( + SymbolLine[0 1000 500 1000 800] + SymbolLine[0 1000 0 5000 800] + SymbolLine[0 5000 500 5000 800] +) +Symbol['\' 1200] +( + SymbolLine[0 1500 3000 4500 800] +) +Symbol[']' 1200] +( + SymbolLine[0 1000 500 1000 800] + SymbolLine[500 1000 500 5000 800] + SymbolLine[0 5000 500 5000 800] +) +Symbol['^' 1200] +( + SymbolLine[0 1500 500 1000 800] + SymbolLine[500 1000 1000 1500 800] +) +Symbol['_' 1200] +( + SymbolLine[0 5000 2000 5000 800] +) +Symbol['a' 1200] +( + SymbolLine[1500 3000 2000 3500 800] + SymbolLine[500 3000 1500 3000 800] + SymbolLine[0 3500 500 3000 800] + SymbolLine[0 3500 0 4500 800] + SymbolLine[0 4500 500 5000 800] + SymbolLine[2000 3000 2000 4500 800] + SymbolLine[2000 4500 2500 5000 800] + SymbolLine[500 5000 1500 5000 800] + SymbolLine[1500 5000 2000 4500 800] +) +Symbol['b' 1200] +( + SymbolLine[0 1000 0 5000 800] + SymbolLine[0 4500 500 5000 800] + SymbolLine[500 5000 1500 5000 800] + SymbolLine[1500 5000 2000 4500 800] + SymbolLine[2000 3500 2000 4500 800] + SymbolLine[1500 3000 2000 3500 800] + SymbolLine[500 3000 1500 3000 800] + SymbolLine[0 3500 500 3000 800] +) +Symbol['c' 1200] +( + SymbolLine[500 3000 2000 3000 800] + SymbolLine[0 3500 500 3000 800] + SymbolLine[0 3500 0 4500 800] + SymbolLine[0 4500 500 5000 800] + SymbolLine[500 5000 2000 5000 800] +) +Symbol['d' 1200] +( + SymbolLine[2000 1000 2000 5000 800] + SymbolLine[1500 5000 2000 4500 800] + SymbolLine[500 5000 1500 5000 800] + SymbolLine[0 4500 500 5000 800] + SymbolLine[0 3500 0 4500 800] + SymbolLine[0 3500 500 3000 800] + SymbolLine[500 3000 1500 3000 800] + SymbolLine[1500 3000 2000 3500 800] +) +Symbol['e' 1200] +( + SymbolLine[500 5000 2000 5000 800] + SymbolLine[0 4500 500 5000 800] + SymbolLine[0 3500 0 4500 800] + SymbolLine[0 3500 500 3000 800] + SymbolLine[500 3000 1500 3000 800] + SymbolLine[1500 3000 2000 3500 800] + SymbolLine[0 4000 2000 4000 800] + SymbolLine[2000 4000 2000 3500 800] +) +Symbol['f' 1000] +( + SymbolLine[500 1500 500 5000 800] + SymbolLine[500 1500 1000 1000 800] + SymbolLine[1000 1000 1500 1000 800] + SymbolLine[0 3000 1000 3000 800] +) +Symbol['g' 1200] +( + SymbolLine[1500 3000 2000 3500 800] + SymbolLine[500 3000 1500 3000 800] + SymbolLine[0 3500 500 3000 800] + SymbolLine[0 3500 0 4500 800] + SymbolLine[0 4500 500 5000 800] + SymbolLine[500 5000 1500 5000 800] + SymbolLine[1500 5000 2000 4500 800] + SymbolLine[0 6000 500 6500 800] + SymbolLine[500 6500 1500 6500 800] + SymbolLine[1500 6500 2000 6000 800] + SymbolLine[2000 3000 2000 6000 800] +) +Symbol['h' 1200] +( + SymbolLine[0 1000 0 5000 800] + SymbolLine[0 3500 500 3000 800] + SymbolLine[500 3000 1500 3000 800] + SymbolLine[1500 3000 2000 3500 800] + SymbolLine[2000 3500 2000 5000 800] +) +Symbol['i' 1000] +( + SymbolLine[0 2000 0 2100 1000] + SymbolLine[0 3500 0 5000 800] +) +Symbol['j' 1000] +( + SymbolLine[500 2000 500 2100 1000] + SymbolLine[500 3500 500 6000 800] + SymbolLine[0 6500 500 6000 800] +) +Symbol['k' 1200] +( + SymbolLine[0 1000 0 5000 800] + SymbolLine[0 3500 1500 5000 800] + SymbolLine[0 3500 1000 2500 800] +) +Symbol['l' 1000] +( + SymbolLine[0 1000 0 4500 800] + SymbolLine[0 4500 500 5000 800] +) +Symbol['m' 1200] +( + SymbolLine[500 3500 500 5000 800] + SymbolLine[500 3500 1000 3000 800] + SymbolLine[1000 3000 1500 3000 800] + SymbolLine[1500 3000 2000 3500 800] + SymbolLine[2000 3500 2000 5000 800] + SymbolLine[2000 3500 2500 3000 800] + SymbolLine[2500 3000 3000 3000 800] + SymbolLine[3000 3000 3500 3500 800] + SymbolLine[3500 3500 3500 5000 800] + SymbolLine[0 3000 500 3500 800] +) +Symbol['n' 1200] +( + SymbolLine[500 3500 500 5000 800] + SymbolLine[500 3500 1000 3000 800] + SymbolLine[1000 3000 1500 3000 800] + SymbolLine[1500 3000 2000 3500 800] + SymbolLine[2000 3500 2000 5000 800] + SymbolLine[0 3000 500 3500 800] +) +Symbol['o' 1200] +( + SymbolLine[0 3500 0 4500 800] + SymbolLine[0 3500 500 3000 800] + SymbolLine[500 3000 1500 3000 800] + SymbolLine[1500 3000 2000 3500 800] + SymbolLine[2000 3500 2000 4500 800] + SymbolLine[1500 5000 2000 4500 800] + SymbolLine[500 5000 1500 5000 800] + SymbolLine[0 4500 500 5000 800] +) +Symbol['p' 1200] +( + SymbolLine[500 3500 500 6500 800] + SymbolLine[0 3000 500 3500 800] + SymbolLine[500 3500 1000 3000 800] + SymbolLine[1000 3000 2000 3000 800] + SymbolLine[2000 3000 2500 3500 800] + SymbolLine[2500 3500 2500 4500 800] + SymbolLine[2000 5000 2500 4500 800] + SymbolLine[1000 5000 2000 5000 800] + SymbolLine[500 4500 1000 5000 800] +) +Symbol['q' 1200] +( + SymbolLine[2000 3500 2000 6500 800] + SymbolLine[1500 3000 2000 3500 800] + SymbolLine[500 3000 1500 3000 800] + SymbolLine[0 3500 500 3000 800] + SymbolLine[0 3500 0 4500 800] + SymbolLine[0 4500 500 5000 800] + SymbolLine[500 5000 1500 5000 800] + SymbolLine[1500 5000 2000 4500 800] +) +Symbol['r' 1200] +( + SymbolLine[500 3500 500 5000 800] + SymbolLine[500 3500 1000 3000 800] + SymbolLine[1000 3000 2000 3000 800] + SymbolLine[0 3000 500 3500 800] +) +Symbol['s' 1200] +( + SymbolLine[500 5000 2000 5000 800] + SymbolLine[2000 5000 2500 4500 800] + SymbolLine[2000 4000 2500 4500 800] + SymbolLine[500 4000 2000 4000 800] + SymbolLine[0 3500 500 4000 800] + SymbolLine[0 3500 500 3000 800] + SymbolLine[500 3000 2000 3000 800] + SymbolLine[2000 3000 2500 3500 800] + SymbolLine[0 4500 500 5000 800] +) +Symbol['t' 1000] +( + SymbolLine[500 1000 500 4500 800] + SymbolLine[500 4500 1000 5000 800] + SymbolLine[0 2500 1000 2500 800] +) +Symbol['u' 1200] +( + SymbolLine[0 3000 0 4500 800] + SymbolLine[0 4500 500 5000 800] + SymbolLine[500 5000 1500 5000 800] + SymbolLine[1500 5000 2000 4500 800] + SymbolLine[2000 3000 2000 4500 800] +) +Symbol['v' 1200] +( + SymbolLine[0 3000 1000 5000 800] + SymbolLine[2000 3000 1000 5000 800] +) +Symbol['w' 1200] +( + SymbolLine[0 3000 0 4500 800] + SymbolLine[0 4500 500 5000 800] + SymbolLine[500 5000 1000 5000 800] + SymbolLine[1000 5000 1500 4500 800] + SymbolLine[1500 3000 1500 4500 800] + SymbolLine[1500 4500 2000 5000 800] + SymbolLine[2000 5000 2500 5000 800] + SymbolLine[2500 5000 3000 4500 800] + SymbolLine[3000 3000 3000 4500 800] +) +Symbol['x' 1200] +( + SymbolLine[0 3000 2000 5000 800] + SymbolLine[0 5000 2000 3000 800] +) +Symbol['y' 1200] +( + SymbolLine[0 3000 0 4500 800] + SymbolLine[0 4500 500 5000 800] + SymbolLine[2000 3000 2000 6000 800] + SymbolLine[1500 6500 2000 6000 800] + SymbolLine[500 6500 1500 6500 800] + SymbolLine[0 6000 500 6500 800] + SymbolLine[500 5000 1500 5000 800] + SymbolLine[1500 5000 2000 4500 800] +) +Symbol['z' 1200] +( + SymbolLine[0 3000 2000 3000 800] + SymbolLine[0 5000 2000 3000 800] + SymbolLine[0 5000 2000 5000 800] +) +Symbol['{' 1200] +( + SymbolLine[500 1500 1000 1000 800] + SymbolLine[500 1500 500 2500 800] + SymbolLine[0 3000 500 2500 800] + SymbolLine[0 3000 500 3500 800] + SymbolLine[500 3500 500 4500 800] + SymbolLine[500 4500 1000 5000 800] +) +Symbol['|' 1200] +( + SymbolLine[0 1000 0 5000 800] +) +Symbol['}' 1200] +( + SymbolLine[0 1000 500 1500 800] + SymbolLine[500 1500 500 2500 800] + SymbolLine[500 2500 1000 3000 800] + SymbolLine[500 3500 1000 3000 800] + SymbolLine[500 3500 500 4500 800] + SymbolLine[0 5000 500 4500 800] +) +Symbol['~' 1200] +( + SymbolLine[0 3500 500 3000 800] + SymbolLine[500 3000 1000 3000 800] + SymbolLine[1000 3000 1500 3500 800] + SymbolLine[1500 3500 2000 3500 800] + SymbolLine[2000 3500 2500 3000 800] +) +Attribute("PCB::grid::unit" "mil") + +Element["" "heater.pcb" "heater" "140000 x 42000" 5000 5000 2000 2000 0 50 ""] +( + Pin[0 0 1000 0 0 400 "1" "1" "edge2"] + Pin[140000 0 1000 0 0 400 "2" "2" "edge2"] + ElementLine [0 0 140000 0 100] + ElementLine [0 0 0 42000 100] + ElementLine [140000 0 140000 42000 100] + ElementLine [0 42000 140000 42000 100] + + ) + +Element["" "heater.pcb" "heater" "140000 x 42000" 5000 155000 2000 2000 0 50 ""] +( + Pin[0 0 1000 0 0 400 "1" "1" "edge2"] + Pin[140000 0 1000 0 0 400 "2" "2" "edge2"] + ElementLine [0 0 140000 0 100] + ElementLine [0 0 0 42000 100] + ElementLine [140000 0 140000 42000 100] + ElementLine [0 42000 140000 42000 100] + + ) + +Element["" "heater.pcb" "heater" "140000 x 42000" 5000 55000 2000 2000 0 50 ""] +( + Pin[0 0 1000 0 0 400 "1" "1" "edge2"] + Pin[140000 0 1000 0 0 400 "2" "2" "edge2"] + ElementLine [0 0 140000 0 100] + ElementLine [0 0 0 42000 100] + ElementLine [140000 0 140000 42000 100] + ElementLine [0 42000 140000 42000 100] + + ) + +Element["" "heater.pcb" "heater" "140000 x 42000" 5000 105000 2000 2000 0 50 ""] +( + Pin[0 0 1000 0 0 400 "1" "1" "edge2"] + Pin[140000 0 1000 0 0 400 "2" "2" "edge2"] + ElementLine [0 0 140000 0 100] + ElementLine [0 0 0 42000 100] + ElementLine [140000 0 140000 42000 100] + ElementLine [0 42000 140000 42000 100] + + ) + +Element["" "heater.pcb" "heater" "140000 x 42000" 155000 145000 2000 -2000 1 50 ""] +( + Pin[0 0 1000 0 0 400 "1" "1" ""] + Pin[0 -140000 1000 0 0 400 "2" "2" ""] + ElementLine [0 -140000 0 0 100] + ElementLine [0 0 42000 0 100] + ElementLine [0 -140000 42000 -140000 100] + ElementLine [42000 -140000 42000 0 100] + + ) +Layer(1 "component") +( +) +Layer(2 "solder") +( +) +Layer(3 "silk") +( +) +Layer(4 "silk") +( +) diff --git a/image.scm b/image.scm new file mode 100644 index 0000000..e2bd3e0 --- /dev/null +++ b/image.scm @@ -0,0 +1,21 @@ +;; $Id$ +;; +;; This file may be used to produce png files from gschem schematics from the +;; command line. Typical usage is: +;; +;; gschem -p -o mysch.png -s /path/to/this/file/image.scm mysch.sch +;; +;; The schematic in "mysch.sch" will be exported to the file "mysch.png" + +(image-size 1024 768) +;(image-size 3200 2400) +(image-color "enabled") +;(image-color "disabled") + +; You need call this after you call any rc file function +(gschem-use-rc-values) + +; filename is specified on the command line +(gschem-image "dummyfilename") + +(gschem-exit) diff --git a/microswitch.fp b/microswitch.fp new file mode 100644 index 0000000..1c2fa2f --- /dev/null +++ b/microswitch.fp @@ -0,0 +1,38 @@ +Element[0x0 "Microswitch 6.3x6.3mm" "SW?" "microswitch63x63" 26575 15000 -5000 -2500 0 100 ""] +( + # signal pads +# Pad[rX1 rY1 rX2 rY2 Thickness Clearance Mask "Name" "Number" SFlags] + # Pad[ -2.3mm -4.9mm -2.3mm -4.2mm 1.4mm 0.5mm 4543 "3" "3" "square"] + # Pad[ +2.3mm -4.9mm +2.3mm -4.2mm 1.4mm 0.5mm 4543 "1" "1" "square"] + # Pad[ -2.3mm +4.9mm -2.3mm +4.2mm 1.4mm 0.5mm 4543 "4" "4" "square"] + # Pad[ +2.3mm +4.9mm +2.3mm +4.2mm 1.4mm 0.5mm 4543 "2" "2" "square"] + Pad[ -2.0mm -2.2mm -2.0mm -4.0mm 1.4mm 0.5mm 1.5mm "1" "1" "square"] + Pad[ 2.0mm -2.2mm 2.0mm -4.0mm 1.4mm 0.5mm 1.5mm "2" "2" "square"] + Pad[ -2.0mm 2.2mm -2.0mm 4.0mm 1.4mm 0.5mm 1.5mm "1" "1" "square"] + Pad[ 2.0mm 2.2mm 2.0mm 4.0mm 1.4mm 0.5mm 1.5mm "2" "2" "square"] + # the element box + ElementLine [-3.30mm -3.15mm -3.30mm 3.15mm 1000] + ElementLine [-1.10mm -3.15mm 1.10mm -3.15mm 1000] + ElementLine [ 3.30mm -3.15mm 3.30mm 3.15mm 1000] + ElementLine [-1.10mm 3.15mm 1.10mm 3.15mm 1000] + #ElementLine [-11800 -11800 -11800 11800 1000] + #ElementLine [11800 -11800 11800 11800 1000] + #ElementLine [-11800 -11800 11800 -11800 1000] + #ElementLine [-11800 11800 11800 11800 1000] + # the stylus + #ElementArc[0 0 6900 6900 0 0 1000] + #ElementArc[0 0 6900 6900 0 180 1000] + # two connected pins + #ElementLine [-8850 -10325 -8850 10325 1000] + #ElementLine [8850 -10325 8850 10325 1000] + #ElementLine [8850 -8850 2950 -8850 1000] + #ElementLine [-8850 -8850 -2950 -8850 1000] + #ElementLine [2950 -10325 -2950 -8850 1000] + + Attribute("author" "Alexander Kurz, Stefan Tauner") + Attribute("copyright" "2008 Alexander Kurz, 2010 Stefan Tauner") + Attribute("use-license" "Unlimited") + Attribute("dist-license" "CC-BY-SA-2.5") + Attribute("ref" "tycoelectronics.com document number 2-1437565-7 rev S1 2010-04-10") + Attribute("comment" "rev S1 of the document has an error: horizontal pad spacing implies 2*1,4 + 3,1 = 5,86. i used 5,9 instead.") +) diff --git a/mosfet-with-diode-2.sym b/mosfet-with-diode-2.sym new file mode 100644 index 0000000..bd29314 --- /dev/null +++ b/mosfet-with-diode-2.sym @@ -0,0 +1,68 @@ +v 20121123 2 +P 600 1000 600 800 1 0 0 +{ +T 500 850 5 6 1 1 0 0 1 +pinnumber=3 +T 500 850 5 6 0 0 0 0 1 +pinseq=3 +T 500 850 5 6 0 1 0 0 1 +pinlabel=D +T 500 850 5 6 0 1 0 0 1 +pintype=pas +} +P 600 200 600 0 1 0 1 +{ +T 500 50 5 6 1 1 0 0 1 +pinnumber=2 +T 500 50 5 6 0 0 0 0 1 +pinseq=2 +T 500 50 5 6 0 1 0 0 1 +pinlabel=S +T 500 50 5 6 0 1 0 0 1 +pintype=pas +} +V 500 501 316 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 +T 900 500 5 10 0 0 0 0 1 +device=NPN_TRANSISTOR +L 400 700 400 300 3 0 0 0 -1 -1 +P 0 500 184 500 1 0 0 +{ +T 100 550 5 6 1 1 0 0 1 +pinnumber=1 +T 100 550 5 6 0 0 0 0 1 +pinseq=1 +T 100 550 5 6 0 1 0 0 1 +pinlabel=G +T 100 550 5 6 0 1 0 0 1 +pintype=pas +} +L 400 500 184 500 3 0 0 0 -1 -1 +T 900 500 8 10 1 1 0 0 1 +refdes=Q? +L 600 800 600 640 3 0 0 0 -1 -1 +L 440 700 440 580 3 0 0 0 -1 -1 +L 440 300 440 420 3 0 0 0 -1 -1 +L 440 440 440 560 3 0 0 0 -1 -1 +L 440 640 600 640 3 0 0 0 -1 -1 +L 440 360 600 360 3 0 0 0 -1 -1 +L 600 200 600 360 3 0 0 0 -1 -1 +L 600 360 600 500 3 0 0 0 -1 -1 +L 440 500 480 520 3 0 0 0 -1 -1 +L 480 520 480 480 3 0 0 0 -1 -1 +L 480 480 440 500 3 0 0 0 -1 -1 +L 480 500 600 500 3 0 0 0 -1 -1 +L 600 700 680 700 3 0 0 0 -1 -1 +L 660 530 720 530 3 0 0 0 -1 -1 +L 680 700 690 700 3 0 0 0 -1 -1 +L 690 580 690 700 3 0 0 0 -1 -1 +L 640 510 660 530 3 0 0 0 -1 -1 +L 720 530 740 550 3 0 0 0 -1 -1 +L 660 470 690 530 3 0 0 0 -1 -1 +L 720 470 690 530 3 0 0 0 -1 -1 +L 660 470 720 470 3 0 0 0 -1 -1 +L 690 530 690 580 3 0 0 0 -1 -1 +L 600 300 690 300 3 0 0 0 -1 -1 +L 690 300 690 470 3 0 0 0 -1 -1 +V 600 700 5 3 0 0 0 -1 -1 1 -1 -1 1 -1 1 +V 600 360 5 3 0 0 0 -1 -1 1 -1 -1 1 -1 1 +V 600 300 5 3 0 0 0 -1 -1 1 -1 -1 1 -1 1 diff --git a/panel.pl b/panel.pl new file mode 100644 index 0000000..d551e56 --- /dev/null +++ b/panel.pl @@ -0,0 +1,126 @@ +#!/usr/bin/perl +# -*- perl -*- + +# Copyright 2006 DJ Delorie +# Released under the terms of the GNU General Public License, version 2 + +sub baseboard { + my ($file, $width, $height, $nbase) = @_; + if (! $nbase) { + $base = $file; + $base =~ s@.*/@@; + } else { + $base = $nbase; + } + + $panelcopperlayers = ".*" unless $panelcopperlayers; + + $pscript = "$base.pscript"; + open(PS, ">$pscript"); + push(@files_to_remove, "$base.pscript"); + + open(S, $file) || die("$file: $!"); + $outname = "$base.panel.pcb"; + $outname =~ s/pnl\.panel\.pcb/pcb/; + open(O, ">$outname"); + while () { + if (/PCB\[.* (\S+) (\S+)\]/) { + s/ (\S+) (\S+)\]/ $width $height\]/; + } + s/Cursor\[.*\]/Cursor[0 0 0.0]/; + if (/^Flags/) { + s/,uniquename,/,/; + s/,uniquename//; + s/uniquename,//; + } + next if /\b(Via|Pin|Pad|ElementLine|Line|Arc|ElementArc|Text)/; + if (/Polygon|Element/) { + $hole = 0; + while () { + $hole++ if /Hole \(/; + last if /^\s*\)\s*$/ && $hole <= 0; + $hole-- if /\)/; + } + next; + } + if (/Layer/) { + if (@panelvias) { + print O @panelvias; + @panelvias = (); + } + } + print O; + if (/Layer\((\d+) \"(.*)\"\)/) { + $lnum = $1; + $lname = $2; + print O scalar ; + print STDERR "layer $lnum $lname vs '$panelcopperlayers'\n"; + if ($lnum =~ /$panelcopperlayers/ || $lname =~ /$panelcopperlayers/) { + print O @panelcopper; + } + } + } + close O; + close S; + + print PS "LoadFrom(Layout,$outname)\n"; + + $ox = $oy = 0; +} + +sub loadboard { + my ($file) = @_; + $seq = 1 + $seq; + + open(S, $file); + open(O, ">temp-panel.$seq"); + while () { + if (/PCB\[.* (\S+) (\S+)\]/) { + $width = &parseval($1); + $height = &parseval($2); + } + s/Cursor\[.*\]/Cursor[0 0 0.0]/; + print O; + } + close O; + close S; + print PS "LoadFrom(LayoutToBuffer,temp-panel.$seq)\n"; + push(@files_to_remove, "temp-panel.$seq"); +} + +sub opaste { + $vx = $ox; + $vy = $oy + $height; + print PS "PasteBuffer(ToLayout,$ox,$oy)\n"; + $ox += $width; + $oy = 0; +} + +sub vpaste { + print PS "PasteBuffer(ToLayout,$vx,$vy)\n"; + $vy += $height; +} + +sub done { + print PS "SaveTo(LayoutAs,$outname)\n"; + print PS "Quit()\n"; + + close PS; + + system "set -x; pcb --action-script $pscript"; + #system "pcb -x ps $base.panel.pcb"; + #unlink @files_to_remove; +} + +sub parseval { + my ($v) = @_; + if ($v =~ /mil/) { + $v *= 100; + } + if ($v =~ /mm/) { + $v *= 3937.007874015748; + } + return 0 + $v; +} + +1; diff --git a/panel2pcb b/panel2pcb new file mode 100755 index 0000000..b281dec --- /dev/null +++ b/panel2pcb @@ -0,0 +1,99 @@ +#!/usr/bin/perl +# -*- perl -*- + +# Copyright 2006 DJ Delorie +# Released under the terms of the GNU General Public License, version 2 + +if (! @ARGV) { + print "Usage: pcb2panel board1.pcb board2.pcb board3.pcb > boards.pcb"; + print "Then edit boards.pcb, putting each outline where you want it\n"; + print "and sizing the board. Then:\n"; + print "panel2pcb [-l regex] boards.pcb\n"; + print "and edit/print boards.panel.pcb\n"; + exit 0; +} + +$mydir = $0; +if ($mydir =~ m@/@) { + $mydir =~ s@[^/]*$@@; +} else { + $mydir = "."; +} + +require "$mydir/panel.pl"; + +$panel = shift; + +if ($panel eq "-l") { + $panelcopperlayers = shift; + $panel = shift; +} + +open(P, $panel); +while (

) { + if (/PCB\[.* (\S+) (\S+)\]/) { + $panel_width = &parseval($1); + $panel_height = &parseval($2); + } + if (/Element\[\"[^\"]*\" \"([^\"]*)\" \"([^\"]*)\" \"([^\"]*)\" (\S+) (\S+)/) { + $pcb = $1; + $base = $2; + $value = $3; + $mx = &parseval($4); + $my = &parseval($5); + %pinx = (); + %piny = (); + } + if (/Pin\[(\S+) (\S+) \S+ \S+ \S+ \S+ \"(\d)\"/) { + $pinx{$3} = &parseval($1); + $piny{$3} = &parseval($2); + } + if ($pcb && /\)/) { + if ($pinx{'1'} < $pinx{'2'}) { + $rot = 0; + } elsif ($pinx{'1'} > $pinx{'2'}) { + $rot = 2; + } elsif ($piny{'1'} < $piny{'2'}) { + $rot = 3; + } elsif ($piny{'1'} > $piny{'2'}) { + $rot = 1; + } + push (@paste, "$pcb\0$rot\0$mx\0$my"); + $pcb = undef; + } + if (/Via/) { + push (@panelvias, $_); + } + if (/^Layer\([^)]*\)$/) { + $junk =

; # The opening '(' + while ($junk =

) { + last if $junk =~ /^\)/; + push (@panelcopper, $junk); + } + } +} + +$tmp = "/tmp/panel$$.pcb"; + +$start = $paste[0]; +$start =~ s/\0.*//; + +$panel =~ s/\.pcb$//; +&baseboard($start, $panel_width, $panel_height, $panel); + +$lastboard = undef; +for $paste (sort @paste) { + ($pcb, $rot, $mx, $my) = split(/\0/, $paste); + if ($lastboard ne $pcb) { + &loadboard ($pcb); + $lastboard = $pcb; + $lastrot = 0; + } + while ($lastrot != $rot) { + print PS "PasteBuffer(Rotate,1)\n"; + $lastrot = ($lastrot+1) % 4; + } + print PS "PasteBuffer(ToLayout,$mx,$my)\n"; +} + +&done(); diff --git a/pcb2panel b/pcb2panel new file mode 100755 index 0000000..ddc7bbf --- /dev/null +++ b/pcb2panel @@ -0,0 +1,101 @@ +#!/usr/bin/perl +# -*- perl -*- + +# Copyright 2006 DJ Delorie +# Released under the terms of the GNU General Public License, version 2 + +$mydir = $0; +if ($mydir =~ m@/@) { + $mydir =~ s@[^/]*$@@; +} else { + $mydir = "."; +} + +require "$mydir/panel.pl"; + +if (! @ARGV) { + print "Usage: pcb2panel board1.pcb board2.pcb board3.pcb > boards.pcb\n"; + print "Then edit boards.pcb, putting each outline where you want it\n"; + print "and sizing the board. Then:\n"; + print "panel2pcb boards.pcb\n"; + print "and edit/print boards.panel.pcb\n"; + exit 0; +} + +for $pcb (@ARGV) { + $base = $pcb; + $base =~ s@.*/@@; + $base =~ s@\.pcb$@@; + $base{$pcb} = $base; + push (@pcbs, $pcb); + open(PCB, $pcb); + while () { + if (/^PCB\[".*" (\S+) (\S+)\]/) { + $width{$pcb} = &parseval($1); + $height{$pcb} = &parseval($2); + printf STDERR "%s : %d x %d\n", $pcb, $width{$pcb}, $height{$pcb}; + last; + } + } + $outline = ''; + while () { + if (/Layer\(.*"outline"\)/) { + $junk = ; # open paren + while () { + last if /^\)/; # close paren + ($args) = m@\[(.*)\]@; + ($x1, $y1, $x2, $y2, $width) = split(' ', $args); + $outline .= " ElementLine[$x1 $y1 $x2 $y2 $width]\n"; + } + } + } + push (@outlines, $outline); + close PCB; +} + +$pw = 10000; +$ph = 0; +for $pcb (@pcbs) { + $pw += 10000; + $pw += $width{$pcb}; + $ph = $height{$pcb} if $ph < $height{$pcb}; +} +$ph += 20000; + +print "PCB[\"\" $pw $ph]\n"; +print "Grid[10000.0 0 0 1]\n"; +print "DRC[799 799 800 100 1500 800]\n"; +print "Groups(\"1,c:2,s\")\n"; #" + +$x = 10000; +$y = 10000; +for ($i=0; $i<@pcbs; $i++) { + $pcb = $pcbs[$i]; + $outline = $outlines[$i]; + $desc = $pcb; + $name = $base{$pcb}; + $value = "$width{$pcb} x $height{$pcb}"; + $w = $width{$pcb}; + $h = $height{$pcb}; + + print "Element[\"\" \"$desc\" \"$name\" \"$value\" $x $y 2000 2000 0 50 \"\"] (\n"; + print " Pin[0 0 1000 0 0 400 \"1\" \"1\" \"\"]\n"; + print " Pin[$w 0 1000 0 0 400 \"2\" \"2\" \"\"]\n"; + if ($outline =~ /\S/) { + print $outline; + } else { + print " ElementLine[0 0 $w 0 100]\n"; + print " ElementLine[0 0 0 $h 100]\n"; + print " ElementLine[$w 0 $w $h 100]\n"; + print " ElementLine[0 $h $w $h 100]\n"; + } + print ")\n"; + $x += $w + 10000; +} + +print "Layer(1 \"component\")()\n"; +print "Layer(2 \"solder\")()\n"; +print "Layer(3 \"silk\")()\n"; +print "Layer(4 \"silk\")()\n"; + +exit 0; -- 2.39.3