diff --git a/bacon/case/Makefile b/bacon/case/Makefile new file mode 100644 index 0000000..483f568 --- /dev/null +++ b/bacon/case/Makefile @@ -0,0 +1,59 @@ +CAE_TOOLS = /home/qi/cae-tools +CAMEO = $(CAE_TOOLS)/cameo +SPOOL = $(CAE_TOOLS)/spool/spool +CNGT = $(CAE_TOOLS)/cngt/cngt +GP2RML = $(CAE_TOOLS)/gp2rml/gp2rml + +X0 = 5 +Y0 = 5 +Z1 = -44 +PIECE = -5 -5 30 55 +PIECE_Z = 5.5 +Z_STEP = 2 +CLEARANCE = 5 +SPEED_XY = 1 +SPEED_Z = 1 +OVERSHOOT = 0.2 + +PARAMS = X0=$(X0)mm Y0=$(Y0)mm Z1=$(Z1)mm PIECE_Z=$(PIECE_Z)mm + +.PHONY: all plot mill pos cng clean + +all: mill.rml + +case.gp: + fped -g case.fpd || { rm -f $@; exit 1; } + +top.gp: case.gp + $(CAMEO)/fped2d2z.pl -r 0=-$(OVERSHOOT) top $^ >$@ || \ + { rm -f $@; exit 1; } + +top-piece.gp: top.gp + ./genpiece.pl -r $(PIECE) $< >$@ || { rm -f $@; exit 1; } + +top-area.gp: top-piece.gp top.gp cam.sh Makefile + ./cam.sh PART=top CAMEO=$(CAMEO)/cameo $(PARAMS) >$@ || \ + { rm -f $@; exit 1; } + +mill.gp: top-area.gp Makefile + $(CAMEO)/zstack.pl $(Z1) $(Z_STEP) $< >$@ || \ + { rm -f $@; exit 1; } + +mill.rml: mill.gp Makefile + $(GP2RML) $(CLEARANCE) $(SPEED_XY) $(SPEED_Z) $< >$@ || \ + { rm -f $@; exit 1; } + +plot: mill.gp + echo 'splot "mill.gp" with lines' | gnuplot -persist + +mill: mill.rml + PORT=/dev/ttyUSB0 $(SPOOL) $< + +pos: + $(CNGT) 0 + +cng: mill.gp + $(CNGT) $(Z1) 10 $< + +clean: + rm -f case.gp top-piece.gp top.gp top-area.gp mill.gp mill.rml diff --git a/bacon/case/cam.sh b/bacon/case/cam.sh new file mode 100755 index 0000000..08775fd --- /dev/null +++ b/bacon/case/cam.sh @@ -0,0 +1,25 @@ +#!/bin/sh +while [ "$1" ]; do + eval "$1" + shift +done + +: ${MILL:=125mil} +: ${OVERLAP:=0.3mm} +: ${X0:=0mm} +: ${Y0:=0mm} +: ${Z1:=0mm} +: ${PIECE_Z:=0mm} +: ${CAMEO:=cameo} + +echo Z1 is $Z1 1>&2 + +$CAMEO < top_outline.edge_ur 4mm +measy top_outline.edge_ll -> top_outline.edge_ul 4mm +measx top_pcb.pcb_ul -> top_pcb.pcb_ur 3mm +measy top_pcb.pcb_ll -> top_pcb.pcb_ul 3mm + +measx top_ridge.ridge_o_ul -> top_ridge.ridge_o_ur 4mm +measy top_ridge.ridge_o_ll -> top_ridge.ridge_o_ul 4mm +measx top_ridge.ridge_i_ul -> top_ridge.ridge_i_ur 3mm +measy top_ridge.ridge_i_ll -> top_ridge.ridge_i_ul 3mm diff --git a/bacon/case/genpiece.pl b/bacon/case/genpiece.pl new file mode 100755 index 0000000..dd80bcb --- /dev/null +++ b/bacon/case/genpiece.pl @@ -0,0 +1,29 @@ +#!/usr/bin/perl + +if ($ARGV[0] eq "-r") { + shift @ARGV; + $reverse = 1; +} + +$x0 = shift @ARGV; +$y0 = shift @ARGV; +$x1 = shift @ARGV; +$y1 = shift @ARGV; + +while (<>) { + $z{$1} = 1 if /\s+(-?\d+(\.\d*)?)\s*$/; + $zmax = $1 if $1 > $zmax || !defined $zmax; +} + +if ($reverse) { + ($x0, $y0) = ($y0, $x0); + ($x1, $y1) = ($y1, $x1); +} + +for (keys %z) { + print "$x0 $y0 $_\n"; + print "$x1 $y0 $_\n"; + print "$x1 $y1 $_\n"; + print "$x0 $y1 $_\n"; + print "$x0 $y0 $_\n\n"; +} diff --git a/m1/xbrd/top.fpd b/m1/xbrd/top.fpd index 0a6d624..a281d87 100644 --- a/m1/xbrd/top.fpd +++ b/m1/xbrd/top.fpd @@ -38,11 +38,11 @@ unit mm table { B, CB, CF, CL, CR } - { 45mm, 25mm, 10mm, 5mm, 15mm } + { 45mm, 25mm, 10mm, 5mm, 13mm } table { HL, HW } - { 9*100mil, 2*100mil } + { 10*100mil, 2*100mil } table { FB, FT } diff --git a/m1r4/dsv/EXTRA b/m1r4/dsv/EXTRA new file mode 100644 index 0000000..f7844c0 --- /dev/null +++ b/m1r4/dsv/EXTRA @@ -0,0 +1,2 @@ +N: usbpwr +D: http://www.usb.org/developers/whitepapers/power_delivery_motherboards.pdf diff --git a/m1r4/dsv/Makefile b/m1r4/dsv/Makefile index 2227eba..f958f87 100644 --- a/m1r4/dsv/Makefile +++ b/m1r4/dsv/Makefile @@ -13,7 +13,7 @@ BOM = milkymist_one_bom_r4.csv all: dsv dsv: BOOKSHELF - ../../../eda-tools/dsv/dsv setup BOOKSHELF + ../../../eda-tools/dsv/dsv setup BOOKSHELF EXTRA BOOKSHELF: $(BOM) bomshelf SUPPLEMENT ./bomshelf $< >$@ || { rm -f $@; exit 1; }