summaryrefslogtreecommitdiff
path: root/prototype/mech_pcbs
diff options
context:
space:
mode:
Diffstat (limited to 'prototype/mech_pcbs')
-rw-r--r--prototype/mech_pcbs/Makefile31
-rw-r--r--prototype/mech_pcbs/bearing_mount_middle/bearing_mount_middle.kicad_pro7
-rw-r--r--prototype/mech_pcbs/flange_holder.scad63
-rw-r--r--prototype/mech_pcbs/rotohsm_proto.FCStdbin196707 -> 197016 bytes
-rw-r--r--prototype/mech_pcbs/stator_top_pcb/stator_top_pcb.kicad_pcb8
-rw-r--r--prototype/mech_pcbs/stator_top_pcb/stator_top_pcb.kicad_prl11
-rw-r--r--prototype/mech_pcbs/stator_top_pcb/stator_top_pcb.kicad_pro7
7 files changed, 107 insertions, 20 deletions
diff --git a/prototype/mech_pcbs/Makefile b/prototype/mech_pcbs/Makefile
new file mode 100644
index 0000000..10dc53f
--- /dev/null
+++ b/prototype/mech_pcbs/Makefile
@@ -0,0 +1,31 @@
+
+PROJECT := rotohsm
+
+BUILDDIR ?= build
+
+ZIP ?= zip
+
+BOARDS := \
+ bearing_mount_middle \
+ bearing_mount_top \
+ rotor_base_outer_pcb \
+ rotor_base_pcb \
+ rotor_top_pcb \
+ rotor_vstrut_pcb \
+ stator_base_pcb \
+ stator_raspi_vstrut_pcb \
+ stator_top_pcb
+
+VERSION := $(shell git describe --tags --long --dirty)
+COMBINED_ZIP := gerber_${PROJECT}_all_${VERSION}.zip
+
+all: $(BUILDDIR)/$(COMBINED_ZIP)
+
+$(BUILDDIR)/gerber_%_${VERSION}.zip: %/gerber
+ $(ZIP) -r $@ $^
+
+$(BUILDDIR)/$(COMBINED_ZIP): $(addprefix $(BUILDDIR)/,${BOARDS:%=gerber_%_${VERSION}.zip})
+ $(ZIP) -r $@ $^
+
+clean:
+ rm -f build/*.zip
diff --git a/prototype/mech_pcbs/bearing_mount_middle/bearing_mount_middle.kicad_pro b/prototype/mech_pcbs/bearing_mount_middle/bearing_mount_middle.kicad_pro
index 7104c75..ab46b03 100644
--- a/prototype/mech_pcbs/bearing_mount_middle/bearing_mount_middle.kicad_pro
+++ b/prototype/mech_pcbs/bearing_mount_middle/bearing_mount_middle.kicad_pro
@@ -50,9 +50,9 @@
},
"diff_pair_dimensions": [
{
- "gap": 0.25,
- "via_gap": 0.25,
- "width": 0.2
+ "gap": 0.0,
+ "via_gap": 0.0,
+ "width": 0.0
}
],
"drc_exclusions": [],
@@ -108,6 +108,7 @@
"min_hole_to_hole": 0.25,
"min_microvia_diameter": 0.19999999999999998,
"min_microvia_drill": 0.09999999999999999,
+ "min_silk_clearance": 0.0,
"min_through_hole_diameter": 0.3,
"min_track_width": 0.19999999999999998,
"min_via_annular_width": 0.049999999999999996,
diff --git a/prototype/mech_pcbs/flange_holder.scad b/prototype/mech_pcbs/flange_holder.scad
new file mode 100644
index 0000000..d926ef9
--- /dev/null
+++ b/prototype/mech_pcbs/flange_holder.scad
@@ -0,0 +1,63 @@
+/* Parametric flange model */
+
+/* All units are millimeters */
+
+$fn = 64;
+
+num_mounting_holes = 4;
+mounting_hole_dia = 2.7;
+/* center of shaft to center of mounting holes */
+mounting_hole_shaft_radius = 8.0;
+mounting_hole_cutout_dia = 5.0;
+base_height = 4.0;
+base_dia_extra = 2.0;
+base_dia = 2*mounting_hole_shaft_radius + 2*base_dia_extra + mounting_hole_dia;
+
+shaft_holder_height = 20.0;
+shaft_holder_dia = 14.0;
+
+shaft_dia = 4.0;
+
+grubscrew_count = 1;
+grubscrew_heights = 2;
+grubscrew_hole_dia = 3.2;
+grubscrew_insert_dia = 6.5;
+grubscrew_insert_height = 3.0;
+grubscrew_lowest_offset = 5.0;
+grubscrew_pitch = 10.0;
+
+difference() {
+ union() {
+ difference() {
+ cylinder(h=base_height, d=base_dia);
+ for ( alpha = [ 0 : 360 / num_mounting_holes : 360 ] ) {
+ rotate(alpha, [0, 0, 1])
+ translate([-mounting_hole_shaft_radius, 0, 0])
+ cylinder(h=base_height, d=mounting_hole_dia);
+ }
+ }
+
+ difference() {
+ cylinder(h=shaft_holder_height, d=shaft_holder_dia);
+ cylinder(h=shaft_holder_height, d=shaft_dia);
+ /* cutouts for mounting hole screw heads */
+ for ( alpha = [ 0 : 360 / num_mounting_holes : 360 ] ) {
+ rotate(alpha, [0, 0, 1])
+ translate([-mounting_hole_shaft_radius, 0, 0])
+ cylinder(h=shaft_holder_height, d=mounting_hole_cutout_dia);
+ }
+ }
+ }
+
+ rotate(-90, [0, 1, 0]) {
+ for ( alpha = [ 0 : 360 / grubscrew_count : 360 ] ) {
+ for ( i = [ 0 : grubscrew_heights] ) {
+ rotate(alpha + (360 / num_mounting_holes/2), [1, 0, 0])
+ translate([grubscrew_lowest_offset + i*grubscrew_pitch, 0, 0]) {
+ cylinder(d=grubscrew_hole_dia, h=base_dia/2);
+ cylinder(d=grubscrew_insert_dia, h=grubscrew_insert_height + shaft_dia/2);
+ }
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/prototype/mech_pcbs/rotohsm_proto.FCStd b/prototype/mech_pcbs/rotohsm_proto.FCStd
index d249d63..6356b22 100644
--- a/prototype/mech_pcbs/rotohsm_proto.FCStd
+++ b/prototype/mech_pcbs/rotohsm_proto.FCStd
Binary files differ
diff --git a/prototype/mech_pcbs/stator_top_pcb/stator_top_pcb.kicad_pcb b/prototype/mech_pcbs/stator_top_pcb/stator_top_pcb.kicad_pcb
index d71eedc..9a742de 100644
--- a/prototype/mech_pcbs/stator_top_pcb/stator_top_pcb.kicad_pcb
+++ b/prototype/mech_pcbs/stator_top_pcb/stator_top_pcb.kicad_pcb
@@ -32,6 +32,7 @@
(grid_origin 150 100)
(pcbplotparams
(layerselection 0x00010fc_ffffffff)
+ (disableapertmacros false)
(usegerberextensions false)
(usegerberattributes true)
(usegerberadvancedattributes true)
@@ -39,7 +40,6 @@
(svguseinch false)
(svgprecision 6)
(excludeedgelayer true)
- (linewidth 0.100000)
(plotframeref false)
(viasonmask false)
(mode 1)
@@ -2671,10 +2671,7 @@
(gr_line (start 189.5 96.546) (end 189.5 103.454) (angle 90) (layer "Edge.Cuts") (width 0.16) (tstamp 04276d55-ac7c-485f-948f-8a774845619c))
(gr_line (start 188.954 104) (end 188.446 104) (angle 90) (layer "Edge.Cuts") (width 0.16) (tstamp 124dab48-9974-4719-b0f8-643e20046522))
- (gr_circle (center 164.35 100) (end 163 100) (layer "Edge.Cuts") (width 0.16) (tstamp 1acbbb02-4bef-4cde-9eee-a32f18a72ab3))
(gr_circle (center 142 100) (end 140.65 100) (layer "Edge.Cuts") (width 0.16) (tstamp 1c12fcbf-ccd6-4ab8-9840-28592e24f520))
- (gr_circle (center 175.78 100) (end 174.43 100) (layer "Edge.Cuts") (width 0.16) (tstamp 27906c26-f4c2-47ff-898d-33361faff86c))
- (gr_circle (center 175.78 100) (end 174.43 100) (layer "Edge.Cuts") (width 0.16) (tstamp 306f0e5e-f448-4631-9295-6445deaa48ff))
(gr_line (start 192.5 87.5) (end 192.5 112.5) (angle 90) (layer "Edge.Cuts") (width 0.16) (tstamp 30eaf456-8def-42ab-9d03-edd0116b138c))
(gr_arc (start 110.7 96.2) (end 111.046 96) (angle -210) (layer "Edge.Cuts") (width 0.16) (tstamp 31fa2f0c-1297-47c3-ab73-306d7f04b2f6))
(gr_arc (start 188.1 103.8) (end 187.9 103.454) (angle -210) (layer "Edge.Cuts") (width 0.16) (tstamp 3c098fe5-03a9-4cb7-baa5-aefd3b54145e))
@@ -2690,7 +2687,6 @@
(gr_line (start 141.708 112.5) (end 107.5 112.5) (angle 90) (layer "Edge.Cuts") (width 0.16) (tstamp 8ec43023-b3b1-4f6e-852b-fbef7d2942f0))
(gr_line (start 112.1 96.546) (end 112.1 103.454) (angle 90) (layer "Edge.Cuts") (width 0.16) (tstamp 94fa63f9-fb03-442e-9f58-63e9ca7e5254))
(gr_arc (start 150 100) (end 141.708 112.5) (angle -67.115) (layer "Edge.Cuts") (width 0.16) (tstamp 9af55458-69d3-4e2b-980e-f8ca0c1a3a24))
- (gr_circle (center 170.7 100) (end 169.35 100) (layer "Edge.Cuts") (width 0.16) (tstamp ac324e9b-43c4-43fa-a8d9-e91d995c135a))
(gr_arc (start 111.9 103.8) (end 111.554 104) (angle -210) (layer "Edge.Cuts") (width 0.16) (tstamp b7c53b07-7587-4ec9-a09c-4a8244c5c7bf))
(gr_line (start 107.5 87.5) (end 141.708 87.5) (angle 90) (layer "Edge.Cuts") (width 0.16) (tstamp bc242052-5f2f-4df5-a976-42bfdb520554))
(gr_arc (start 110.7 103.8) (end 110.5 103.454) (angle -210) (layer "Edge.Cuts") (width 0.16) (tstamp bdf22f27-602a-4a5c-b8a3-36f187e64d35))
@@ -2701,8 +2697,6 @@
(gr_arc (start 111.9 96.2) (end 112.1 96.546) (angle -210) (layer "Edge.Cuts") (width 0.16) (tstamp db3080d6-4fa6-4fd9-a9ca-2d665ec35df9))
(gr_circle (center 150 100) (end 146.9 100) (layer "Edge.Cuts") (width 0.16) (tstamp e1b03682-f89e-44b7-b852-b7c0ea2c6be7))
(gr_arc (start 189.3 96.2) (end 189.5 96.546) (angle -210) (layer "Edge.Cuts") (width 0.16) (tstamp e1b6f65d-7ddd-434a-a657-d3f69161d886))
- (gr_circle (center 170.7 100) (end 169.35 100) (layer "Edge.Cuts") (width 0.16) (tstamp e5d2c297-6908-4399-bb43-1d66734a34e4))
- (gr_circle (center 164.35 100) (end 163 100) (layer "Edge.Cuts") (width 0.16) (tstamp fd024366-f50e-424c-89c7-0d151d01f365))
(gr_circle (center 150 108) (end 148.65 108) (layer "Edge.Cuts") (width 0.16) (tstamp ff76c9fc-59af-43d9-b17a-58efbbd4d29c))
)
diff --git a/prototype/mech_pcbs/stator_top_pcb/stator_top_pcb.kicad_prl b/prototype/mech_pcbs/stator_top_pcb/stator_top_pcb.kicad_prl
index 248f50e..b308bd8 100644
--- a/prototype/mech_pcbs/stator_top_pcb/stator_top_pcb.kicad_prl
+++ b/prototype/mech_pcbs/stator_top_pcb/stator_top_pcb.kicad_prl
@@ -1,6 +1,6 @@
{
"board": {
- "active_layer": 0,
+ "active_layer": 44,
"active_layer_preset": "",
"hidden_nets": [],
"high_contrast_mode": 0,
@@ -50,7 +50,6 @@
22,
23,
24,
- 25,
26,
27,
28,
@@ -58,12 +57,10 @@
30,
31,
32,
- 33,
- 34,
- 35,
- 36
+ 36,
+ 37
],
- "visible_layers": "007ffff_ffffffff"
+ "visible_layers": "0001000_00000000"
},
"meta": {
"filename": "stator_top_pcb.kicad_prl",
diff --git a/prototype/mech_pcbs/stator_top_pcb/stator_top_pcb.kicad_pro b/prototype/mech_pcbs/stator_top_pcb/stator_top_pcb.kicad_pro
index 327a89d..5044184 100644
--- a/prototype/mech_pcbs/stator_top_pcb/stator_top_pcb.kicad_pro
+++ b/prototype/mech_pcbs/stator_top_pcb/stator_top_pcb.kicad_pro
@@ -50,9 +50,9 @@
},
"diff_pair_dimensions": [
{
- "gap": 0.25,
- "via_gap": 0.25,
- "width": 0.2
+ "gap": 0.0,
+ "via_gap": 0.0,
+ "width": 0.0
}
],
"drc_exclusions": [],
@@ -108,6 +108,7 @@
"min_hole_to_hole": 0.25,
"min_microvia_diameter": 0.19999999999999998,
"min_microvia_drill": 0.09999999999999999,
+ "min_silk_clearance": 0.0,
"min_through_hole_diameter": 0.3,
"min_track_width": 0.19999999999999998,
"min_via_annular_width": 0.049999999999999996,