Compare commits
3 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
6187d90c57 | ||
|
65f320141d | ||
|
d367e743da |
BIN
libtest.png
Before Width: | Height: | Size: 781 KiB After Width: | Height: | Size: 782 KiB |
@@ -18,7 +18,7 @@
|
||||
//
|
||||
|
||||
//
|
||||
//! Adapts ESP12 module to 0.1" grid. See <https://hydraraptor.blogspot.com/2018/04/esp-12-module-breakout-adaptor.html>.
|
||||
//! Adapts ESP12 modules and various small PCBs to 0.1" grid. See <https://hydraraptor.blogspot.com/2018/04/esp-12-module-breakout-adaptor.html>.
|
||||
//
|
||||
$extrusion_width = 0.5;
|
||||
|
||||
@@ -61,3 +61,71 @@ module ESP12F_carrier_stl() { //! Generate the STL for an ESP12 carrier
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module TP4056_carrier_stl() { //! Generate the STL for an TP4056 carrier, two required
|
||||
stl("TP4056_carrier");
|
||||
pitch = 2.54;
|
||||
outer_pitch = 13.9;
|
||||
inner_pitch = 7.54;
|
||||
hole = pitch - 3 * extrusion_width;
|
||||
pins = 6;
|
||||
length1 = outer_pitch + hole + squeezed_wall * 2;
|
||||
length2 = (pins - 1) * pitch + hole + squeezed_wall * 2;
|
||||
height = 3;
|
||||
|
||||
width = hole + squeezed_wall * 2;
|
||||
spacing = inch(0.9);
|
||||
|
||||
difference() {
|
||||
hull() {
|
||||
translate_z(height - eps / 2)
|
||||
cube([width, length1, eps], center = true);
|
||||
|
||||
translate_z(eps / 2)
|
||||
cube([width, length2, eps], center = true);
|
||||
}
|
||||
|
||||
for(i = [0 : pins - 1])
|
||||
let(x = [-outer_pitch / 2, - inner_pitch / 2, 0, 0, inner_pitch / 2, outer_pitch / 2][i])
|
||||
if(x)
|
||||
hull() {
|
||||
translate([0, x, height])
|
||||
cube([hole, hole, eps], center = true);
|
||||
|
||||
translate([0, i * pitch - (pins - 1) * pitch / 2])
|
||||
cube([hole, hole, eps], center = true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module MT3608_carrier_stl() { //! Generate the STL for an MT3608 carrier, two required
|
||||
stl("MT3608_carrier");
|
||||
pcb_width = 17;
|
||||
w_pitch_top = 6.81;
|
||||
w_pitch_bot = inch(0.3);
|
||||
l_pitch_top = 30.855;
|
||||
l_pitch_bot = inch(1.2);
|
||||
hole = 1;
|
||||
height = 3;
|
||||
wall = 2 * extrusion_width;
|
||||
width = hole + 2 * wall;
|
||||
offset = (l_pitch_top - l_pitch_bot) / 2;
|
||||
|
||||
difference() {
|
||||
hull() {
|
||||
translate([offset, 0, height - eps / 2])
|
||||
rounded_rectangle([width, pcb_width - 2, eps], 1);
|
||||
|
||||
translate_z(eps / 2)
|
||||
rounded_rectangle([width, pcb_width - 2, eps], 1);
|
||||
}
|
||||
for(side = [-1, 1])
|
||||
hull() {
|
||||
translate([offset, side * w_pitch_top / 2, height])
|
||||
cube([hole, hole, eps], center = true);
|
||||
|
||||
translate([0, side * w_pitch_bot / 2])
|
||||
cube([hole, hole, eps], center = true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
10
readme.md
@@ -1923,7 +1923,9 @@ PCBs and perfboard with optional components. The shape can be a rectangle with o
|
||||
| ```pcb_screw_positions(type)``` | Positions children at the mounting hole positions |
|
||||
| ```pcb_spacer(screw, height, wall = 1.8, taper = 0)``` | Generate STL for PCB spacer |
|
||||
| ```rj45(cutout = false)``` | Draw RJ45 Ethernet connector |
|
||||
| ```standoff(h, d, h2, d2)``` | Draw a standoff |
|
||||
| ```terminal_35(ways, colour = "blue")``` | Draw 3.5mm terminal block |
|
||||
| ```trimpot10(vertical, coutout = false)``` | Draw a ten turn trimpot |
|
||||
| ```uSD(size, cutout = false)``` | Draw uSD socket |
|
||||
| ```usb_Ax1(cutout = false)``` | Draw USB type A single socket |
|
||||
| ```usb_Ax2(cutout = false)``` | Draw USB type A dual socket |
|
||||
@@ -2007,7 +2009,9 @@ PCBs and perfboard with optional components. The shape can be a rectangle with o
|
||||
| ```pcb_screw_positions(type)``` | Positions children at the mounting hole positions |
|
||||
| ```pcb_spacer(screw, height, wall = 1.8, taper = 0)``` | Generate STL for PCB spacer |
|
||||
| ```rj45(cutout = false)``` | Draw RJ45 Ethernet connector |
|
||||
| ```standoff(h, d, h2, d2)``` | Draw a standoff |
|
||||
| ```terminal_35(ways, colour = "blue")``` | Draw 3.5mm terminal block |
|
||||
| ```trimpot10(vertical, coutout = false)``` | Draw a ten turn trimpot |
|
||||
| ```uSD(size, cutout = false)``` | Draw uSD socket |
|
||||
| ```usb_Ax1(cutout = false)``` | Draw USB type A single socket |
|
||||
| ```usb_Ax2(cutout = false)``` | Draw USB type A dual socket |
|
||||
@@ -3789,7 +3793,7 @@ of conductive panels, an extra layer of insulation.
|
||||
---
|
||||
<a name="Carriers"></a>
|
||||
## Carriers
|
||||
Adapts ESP12 module to 0.1" grid. See <https://hydraraptor.blogspot.com/2018/04/esp-12-module-breakout-adaptor.html>.
|
||||
Adapts ESP12 modules and various small PCBs to 0.1" grid. See <https://hydraraptor.blogspot.com/2018/04/esp-12-module-breakout-adaptor.html>.
|
||||
|
||||
|
||||
[printed/carriers.scad](printed/carriers.scad) Implementation.
|
||||
@@ -3800,6 +3804,8 @@ Adapts ESP12 module to 0.1" grid. See <https://hydraraptor.blogspot.com/2018/04/
|
||||
| Module | Description |
|
||||
|:--- |:--- |
|
||||
| ```ESP12F_carrier_stl()``` | Generate the STL for an ESP12 carrier |
|
||||
| ```MT3608_carrier_stl()``` | Generate the STL for an MT3608 carrier, two required |
|
||||
| ```TP4056_carrier_stl()``` | Generate the STL for an TP4056 carrier, two required |
|
||||
|
||||

|
||||
|
||||
@@ -3807,6 +3813,8 @@ Adapts ESP12 module to 0.1" grid. See <https://hydraraptor.blogspot.com/2018/04/
|
||||
| Qty | Filename |
|
||||
| ---:|:--- |
|
||||
| 1 | ESP12F_carrier.stl |
|
||||
| 1 | MT3608_carrier.stl |
|
||||
| 1 | TP4056_carrier.stl |
|
||||
|
||||
|
||||
<a href="#top">Top</a>
|
||||
|
@@ -98,6 +98,8 @@ test_pcb = ["TestPCB", "Test PCB",
|
||||
[ 12, 444, 0, "2p54socket", 8, 1, undef, undef, undef, "red" ],
|
||||
[ 10, 470, 0, "standoff", 5, 4.5, 12.5, 2.54],
|
||||
[ 6, 480, 180, "uSD", [12, 11.5, 1.4]],
|
||||
[ 20, -5, 180, "trimpot10"],
|
||||
[ 20, -15, 0, "trimpot10", true],
|
||||
],
|
||||
// accessories
|
||||
[]
|
||||
|
@@ -19,7 +19,16 @@
|
||||
include <../utils/core/core.scad>
|
||||
use <../printed/carriers.scad>
|
||||
|
||||
module carriers()
|
||||
module carriers() {
|
||||
color(pp1_colour) ESP12F_carrier_stl();
|
||||
|
||||
translate([0, 15])
|
||||
rotate(90)
|
||||
color(pp1_colour) TP4056_carrier_stl();
|
||||
|
||||
translate([0, 25])
|
||||
rotate(90)
|
||||
color(pp1_colour) MT3608_carrier_stl();
|
||||
}
|
||||
|
||||
carriers();
|
||||
|
Before Width: | Height: | Size: 41 KiB After Width: | Height: | Size: 54 KiB |
Before Width: | Height: | Size: 118 KiB After Width: | Height: | Size: 118 KiB |
Before Width: | Height: | Size: 117 KiB After Width: | Height: | Size: 117 KiB |
Before Width: | Height: | Size: 91 KiB After Width: | Height: | Size: 91 KiB |
Before Width: | Height: | Size: 61 KiB After Width: | Height: | Size: 61 KiB |
Before Width: | Height: | Size: 89 KiB After Width: | Height: | Size: 90 KiB |
@@ -721,7 +721,7 @@ module molex_254(ways) { //! Draw molex header
|
||||
cube([0.44, 0.75, above + below], center = true);
|
||||
}
|
||||
|
||||
module standoff(h, d, h2, d2) {
|
||||
module standoff(h, d, h2, d2) { //! Draw a standoff
|
||||
color("white") {
|
||||
cylinder(d = d, h = h);
|
||||
|
||||
@@ -735,6 +735,44 @@ module standoff(h, d, h2, d2) {
|
||||
}
|
||||
}
|
||||
|
||||
module trimpot10(vertical, coutout = false) { //! Draw a ten turn trimpot
|
||||
l = 10;
|
||||
w = 9.5;
|
||||
h = 4.8;
|
||||
foot_w = 1;
|
||||
foot_h = 0.5;
|
||||
screw_h = 1.5;
|
||||
screw_d = 2.25;
|
||||
slot_w = 0.6;
|
||||
slot_h = 0.8;
|
||||
|
||||
translate(vertical ? [0, -h / 2, l / 2] : [0, 0])
|
||||
rotate([vertical ? -90 : 0, 0, 0]) {
|
||||
color("#2CA1FD") {
|
||||
translate([0, -foot_h / 2, foot_h / 2 + h / 2])
|
||||
cube([w, l - foot_h, h - foot_h], center = true);
|
||||
|
||||
for(x = [-1, 1], y = [-1, 1])
|
||||
translate([x * (w - foot_w) / 2, y * (l - foot_w) / 2, h / 2])
|
||||
cube([foot_w, foot_w, h], center = true);
|
||||
|
||||
}
|
||||
|
||||
color(brass)
|
||||
translate([-w / 2 + screw_d / 2, -l / 2, h - screw_d / 2])
|
||||
rotate([90, 0, 0]) {
|
||||
cylinder(d = screw_d, h = screw_h - slot_h);
|
||||
|
||||
linear_extrude(height = screw_h)
|
||||
difference() {
|
||||
circle(d = screw_d);
|
||||
|
||||
square([slot_w, screw_d + 1], center = true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module pcb_component(comp, cutouts = false, angle = undef) { //! Draw pcb component from description
|
||||
function show(comp, part) = (comp[3] == part || comp[3] == str("-",part)) && (!cutouts || angle == undef || angle == comp.z);
|
||||
function param(n, default = 0) = len(comp) > n ? comp[n] : default;
|
||||
@@ -773,6 +811,7 @@ module pcb_component(comp, cutouts = false, angle = undef) { //! Draw pcb compon
|
||||
if(show(comp, "pcb")) if(!cutouts) translate_z(comp[4]) pcb(comp[5]);
|
||||
if(show(comp, "standoff")) if(!cutouts) standoff(comp[4], comp[5], comp[6], comp[7]);
|
||||
if(show(comp, "uSD")) uSD(comp[4], cutouts);
|
||||
if(show(comp, "trimpot10")) trimpot10(param(4, false), cutouts);
|
||||
}
|
||||
}
|
||||
|
||||
|