X-Git-Url: https://git.armaanb.net/?a=blobdiff_plain;f=atreus.rkt;h=3783c5ae333ab4f743f2497d0b61245b32b15814;hb=99528bd789b9485dd9f069131850457ecbc174b6;hp=0ec96517946a0eb6a02745f74f69e1f886dd3ed8;hpb=23d4ff1a324461a014fbe2a0842a284c825f4226;p=atreides.git diff --git a/atreus.rkt b/atreus.rkt index 0ec9651..3783c5a 100644 --- a/atreus.rkt +++ b/atreus.rkt @@ -9,7 +9,7 @@ (define spacing 19) (define angle 10) -(define column-offsets '(8 5 0 6 11 59 59 11 6 0 5 8)) +(define column-offsets '(8 5 0 6 11 53 53 11 6 0 5 8)) (define (switch-module x y rotation label net-pos net-neg) ;; TODO: set timestamps? @@ -81,12 +81,8 @@ (define microcontroller-module `(module A_STAR (layer Front) (tedit 4FDC31C8) (tstamp 543EF800) - (at 134 70 270) + (at 134 65 270) (path /543EEB02) - (fp_text value A-STAR (at -3 0 270) (layer F.SilkS) - (effects (font (size 3.048 2.54) (thickness 0.4572)))) - (fp_line (start -15.24 -7.62) (end -15.24 7.62) (layer F.SilkS) (width 0.381)) - (fp_line (start -15.24 7.62) (end 10.1 7.62) (layer F.SilkS) (width 0.381)) (fp_line (start 10.1 7.62) (end 10.1 -7.62) (layer F.SilkS) (width 0.381)) (fp_line (start 10.1 -7.62) (end -15.24 -7.62) (layer F.SilkS) (width 0.381)) @@ -121,7 +117,11 @@ (pad B7 thru_hole circle (at -6.35 -6.35 270) (size 1.7526 1.7526) (drill 1.0922) (layers *.Cu *.SilkS *.Mask) (net 15 N-col-10)) (pad D6 thru_hole circle (at -3.81 -6.35 270) (size 1.7526 1.7526) - (drill 1.0922) (layers *.Cu *.SilkS *.Mask) (net 14 N-col-9)))) + (drill 1.0922) (layers *.Cu *.SilkS *.Mask) (net 14 N-col-9)) + (pad RST thru_hole circle (at -1.27 -6.35 270) (size 1.7526 1.7526) + (drill 1.0922) (layers *.Cu *.SilkS *.Mask) (net 0 "")) + (pad GND thru_hole circle (at 6.35 -6.35 270) (size 1.7526 1.7526) + (drill 1.0922) (layers *.Cu *.SilkS *.Mask) (net 0 "")))) (define nets `((net 0 "") @@ -175,11 +175,7 @@ [diode-net `(net ,(+ 16 diode) ,(string->symbol (format "N-diode-~s" diode)))] [column-net `(net ,(+ net-col 5) - ,(string->symbol (format "N-col-~s" net-col)))] - ;; rotate middle keys additional 90° after calculating position - [rotation (cond [(= 5 col) 80] - [(= 6 col) 280] - [true rotation])]) + ,(string->symbol (format "N-col-~s" net-col)))]) (switch-module x′ y′ rotation label (if left? diode-net column-net) (if left? column-net diode-net)))) @@ -216,13 +212,17 @@ (for/list ([col (in-range cols)] #:when true [row (if (or (= 5 col) (= 6 col)) - '(0) (in-range rows))]) + '(0 1) (in-range rows))]) (list (switch row col) (diode row col)))) (define edge-cuts - (for/list [(s '([31 22] [84 22] [128 30] [128 54] [140 54] [140 30] [185 22] + (for/list [(s '([31 22] [84 22] [127 30] + [129 49] [129 75] [139 75] + [139 49] [141 30] [185 22] [237 22] [250 95] [161 112] [107 112] [18 95])) - (e '([84 22] [128 30] [128 54] [140 54] [140 30] [185 22] + (e '([84 22] [127 30] + [129 49] [129 75] [139 75] [139 49] + [141 30] [185 22] [237 22] [250 95] [161 112] [107 112] [18 95] [31 22]))] `(gr_line (start ,@s) (end ,@e) (angle 90) (layer Edge.Cuts) (width 0.3)))) @@ -247,4 +247,10 @@ (curry read-string 999999)) op) (display ")" op)))) -(write-placement "/tmp/atreus.kicad_pcb") +;; TODOs: + +;; controller traces +;; middle switch traces +;; middle switch diodes below + +(write-placement "atreus.kicad_pcb")