vu8m update, added screws and m1 hd mount
removed spacer() as obsolete
This commit is contained in:
@@ -2,7 +2,7 @@
|
|||||||
SBC Case Builder Library Copyright 2022 Edward A. Kisiel, hominoid @ www.forum.odroid.com
|
SBC Case Builder Library Copyright 2022 Edward A. Kisiel, hominoid @ www.forum.odroid.com
|
||||||
|
|
||||||
Contributions:
|
Contributions:
|
||||||
hk_vu8m(brackets),u_bracket(),spacer() Copyright 2022 Tomek Szczęsny, mctom @ www.forum.odroid.com
|
hk_vu8m(brackets),u_bracket(),screw(),m1_hdmount() Copyright 2022 Tomek Szczęsny, mctom @ www.forum.odroid.com
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@@ -40,13 +40,14 @@
|
|||||||
20220406 version 1.2.2 hk_wb2(), hk_vu7c(gpio_ext, tabs), hdmi_a(), header_f(pins, height), pcb_pad(pads),
|
20220406 version 1.2.2 hk_wb2(), hk_vu7c(gpio_ext, tabs), hdmi_a(), header_f(pins, height), pcb_pad(pads),
|
||||||
embelished boom_speaker(), changed boom_speaker_holder(style, tolerance), added boom_speaker_strap(),
|
embelished boom_speaker(), changed boom_speaker_holder(style, tolerance), added boom_speaker_strap(),
|
||||||
adjusted access_port(), access_cover(), added @mctom's hk_vu8m(bracket), u_bracket(), spacer()
|
adjusted access_port(), access_cover(), added @mctom's hk_vu8m(bracket), u_bracket(), spacer()
|
||||||
2022xxxx version 1.2.x Nightly Not Released
|
2022xxxx version 1.2.x removed spacer(); added screw(); modified hk_vu8m(); added m1_hdmount();
|
||||||
|
|
||||||
place(x,y,z,size_x,size_y,rotation,side)
|
place(x,y,z,size_x,size_y,rotation,side)
|
||||||
add(type,loc_x,loc_y,loc_z,size_x,size_y,size_z,rotation,face,side,case_z,data_1,data_2,data_3,data_4)
|
add(type,loc_x,loc_y,loc_z,size_x,size_y,size_z,rotation,face,side,case_z,data_1,data_2,data_3,data_4)
|
||||||
sub(type,loc_x,loc_y,loc_z,size_x,size_y,size_z,rotation,face,side,case_z,data_1,data_2,data_3,data_4)
|
sub(type,loc_x,loc_y,loc_z,size_x,size_y,size_z,rotation,face,side,case_z,data_1,data_2,data_3,data_4)
|
||||||
|
|
||||||
art(scale_d1,type,size_z)
|
art(scale_d1,type,size_z)
|
||||||
|
screw(screw[d, l, style])
|
||||||
slab(size, radius)
|
slab(size, radius)
|
||||||
slab_r(size, radius)
|
slab_r(size, radius)
|
||||||
slot(hole,length,depth)
|
slot(hole,length,depth)
|
||||||
@@ -77,6 +78,8 @@
|
|||||||
hk_uart()
|
hk_uart()
|
||||||
hk_vu7c(gpio_ext, tabs)
|
hk_vu7c(gpio_ext, tabs)
|
||||||
hk_vu8m(bracket)
|
hk_vu8m(bracket)
|
||||||
|
u_bracket()
|
||||||
|
m1_hdmount()
|
||||||
hdmi_a()
|
hdmi_a()
|
||||||
header_f(pins, height)
|
header_f(pins, height)
|
||||||
pcb_pad(pads)
|
pcb_pad(pads)
|
||||||
@@ -313,6 +316,31 @@ module art(scale_d1,size_z,type) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// General purpose screw
|
||||||
|
// screw(screw[d, l, style])
|
||||||
|
// d - thread diameter
|
||||||
|
// l - thread length
|
||||||
|
// style - screw head style
|
||||||
|
//
|
||||||
|
// Styles:
|
||||||
|
// 0 - Mushroom head, 5mm diameter
|
||||||
|
|
||||||
|
module screw(screw_type) {
|
||||||
|
d = screw_type[0];
|
||||||
|
l = screw_type[1];
|
||||||
|
style = screw_type[2];
|
||||||
|
|
||||||
|
// Head
|
||||||
|
if(style == 0) {
|
||||||
|
difference() {
|
||||||
|
translate([ 0, 0, -0.3]) sphere(2.7);
|
||||||
|
translate([-10,-10,-10]) cube([20,20,10]);
|
||||||
|
translate([-10,-10, 2]) cube([20,20,10]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Thread
|
||||||
|
rotate([180,0,0]) cylinder(d=d, h=l);
|
||||||
|
}
|
||||||
|
|
||||||
/* slab module */
|
/* slab module */
|
||||||
module slab(size, radius) {
|
module slab(size, radius) {
|
||||||
@@ -1319,7 +1347,6 @@ module hk_vu7c(gpio_ext, tabs) {
|
|||||||
translate([59,52.69,-1.59]) ic(9);
|
translate([59,52.69,-1.59]) ic(9);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// hk vu8m lcd display
|
// hk vu8m lcd display
|
||||||
module hk_vu8m(brackets) {
|
module hk_vu8m(brackets) {
|
||||||
$fn = 90;
|
$fn = 90;
|
||||||
@@ -1336,7 +1363,7 @@ module hk_vu8m(brackets) {
|
|||||||
lcd_clearance = [0.15, 0.1, 0];
|
lcd_clearance = [0.15, 0.1, 0];
|
||||||
pcb_size = [14,24,1.6];
|
pcb_size = [14,24,1.6];
|
||||||
hole = 4.31;
|
hole = 4.31;
|
||||||
standoffs = 6;
|
spacer_size = [5.5, 6, 2.5, 0, 0, 0, 1, 1, 0, 0, 0, 0];
|
||||||
|
|
||||||
// "body"
|
// "body"
|
||||||
color([0.1,0.1,0.1])
|
color([0.1,0.1,0.1])
|
||||||
@@ -1360,35 +1387,50 @@ module hk_vu8m(brackets) {
|
|||||||
translate([ 190.5, body_size[1]-4.5, -1]) cylinder(d=hole, h=5);
|
translate([ 190.5, body_size[1]-4.5, -1]) cylinder(d=hole, h=5);
|
||||||
|
|
||||||
}
|
}
|
||||||
// 4x standoffs
|
// 4x standoffs
|
||||||
translate([ 44.5, 4.5, -standoffs]) spacer();
|
color([0.6,0.6,0.6]) {
|
||||||
translate([ 183.5, 4.5, -standoffs]) spacer();
|
translate([ 44.5, 4.5, 0]) standoff(spacer_size);
|
||||||
translate([ 44.5, body_size[1]-4.5, -standoffs]) spacer();
|
translate([ 183.5, 4.5, 0]) standoff(spacer_size);
|
||||||
translate([ 183.5, body_size[1]-4.5, -standoffs]) spacer();
|
translate([ 44.5, body_size[1]-4.5, 0]) standoff(spacer_size);
|
||||||
|
translate([ 183.5, body_size[1]-4.5, 0]) standoff(spacer_size);
|
||||||
|
}
|
||||||
|
|
||||||
// LCD panel
|
// LCD panel
|
||||||
color([0.6, 0.6, 0.65])
|
color([0.6, 0.6, 0.65])
|
||||||
translate([3.76, 9, body_size[2]-lcd_size[2]]+lcd_clearance)
|
translate([3.76, 9, body_size[2]-lcd_size[2]]+lcd_clearance)
|
||||||
cube(lcd_size);
|
cube(lcd_size);
|
||||||
|
|
||||||
// Front glass
|
// Front glass
|
||||||
// It's actually thinner and glued, but for the sake of simplicity...
|
// It's actually thinner and glued, but for the sake of simplicity...
|
||||||
color([0.2, 0.2, 0.2], 0.9)
|
color([0.2, 0.2, 0.2], 0.9)
|
||||||
translate([0.86, 1.38, body_size[2] + 0.01])
|
translate([0.86, 1.38, body_size[2] + 0.01])
|
||||||
difference(){
|
difference(){
|
||||||
slab(glass_size, rb);
|
slab(glass_size, rb);
|
||||||
|
//translate([11.26, 11.28, -1]) cube(view_size);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// PCB stub
|
// PCB stub
|
||||||
color([0.1,0.1,0.1])
|
color([0.1,0.1,0.1])
|
||||||
translate([20.5, 24.5, -3])
|
translate([20.5, 24.5, -3])
|
||||||
cube(pcb_size);
|
cube(pcb_size);
|
||||||
|
|
||||||
//Brackets
|
//Brackets
|
||||||
if(brackets) {
|
if(brackets) {
|
||||||
translate([44.5 - 7.5, body_size[1]/2 + m1_screw_spacing/2 - 7.5, - standoffs - 2]) u_bracket();
|
translate([44.5 - 7.5, body_size[1]/2 + m1_screw_spacing/2 - 7.5, - spacer_size[1] - 2]) u_bracket();
|
||||||
translate([44.5 - 7.5, body_size[1]/2 - m1_screw_spacing/2 + 7.5, - standoffs - 2 + 1.93]) rotate([180,0,0]) u_bracket();
|
translate([44.5 - 7.5, body_size[1]/2 - m1_screw_spacing/2 + 7.5, - spacer_size[1] - 2 + 1.93]) rotate([180,0,0]) u_bracket();
|
||||||
|
|
||||||
|
|
||||||
|
//Screws
|
||||||
|
color([0.1,0.1,0.1]) {
|
||||||
|
translate([ 44.5, 4.5, -8]) rotate([180,0,0]) screw([3,7,0]);
|
||||||
|
translate([ 183.5, 4.5, -8]) rotate([180,0,0]) screw([3,7,0]);
|
||||||
|
translate([ 44.5, body_size[1]-4.5, -8]) rotate([180,0,0]) screw([3,7,0]);
|
||||||
|
translate([ 183.5, body_size[1]-4.5, -8]) rotate([180,0,0]) screw([3,7,0]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Vu8M LCD U-BRACKET
|
// Vu8M LCD U-BRACKET
|
||||||
module u_bracket() {
|
module u_bracket() {
|
||||||
$fn= 30;
|
$fn= 30;
|
||||||
@@ -1444,14 +1486,45 @@ module u_bracket() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ODROID M1 2.5" SATA HDD mounting kit
|
||||||
|
module m1_hdmount() {
|
||||||
|
$fn = 30;
|
||||||
|
dims = [89.6, 38.5, 2.0];
|
||||||
|
holes = 4;
|
||||||
|
slots = [4.15, 3.3];
|
||||||
|
standoff_style = [5, 16, 0, 3, 25, 0, 0, 1, 0, 0, 0];
|
||||||
|
|
||||||
// M3 soldered spaceer
|
color([0.2,0.2,0.2])
|
||||||
module spacer() {
|
difference() {
|
||||||
color([0.6,0.6,0.6])
|
slab(dims, 4.0);
|
||||||
difference(){
|
translate([ 3.1, 28.3, -1]) cylinder(d = holes, h = 4);
|
||||||
cylinder(d=5.5, h=6);
|
translate([ 86.5, 28.3, -1]) cylinder(d = holes, h = 4);
|
||||||
translate([0,0,-1]) cylinder(d=2.5, h=7); // M3 hole
|
hull() {
|
||||||
|
translate([ 14.75, 10.15, -1]) cylinder(d=3.30, h=4);
|
||||||
|
translate([ 15.60, 10.15, -1]) cylinder(d=3.30, h=4);
|
||||||
|
}
|
||||||
|
hull() {
|
||||||
|
translate([ 75.60, 10.15, -1]) cylinder(d=3.30, h=4);
|
||||||
|
translate([ 76.45, 10.15, -1]) cylinder(d=3.30, h=4);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
color([0.6,0.6,0.6]) {
|
||||||
|
translate ([ 3.1, 28.3 , 0]) rotate([ 0,0,0]) standoff(standoff_style);
|
||||||
|
translate ([ 86.5, 28.3 , 0]) rotate([ 0,0,0]) standoff(standoff_style);
|
||||||
|
}
|
||||||
|
color([0.1,0.1,0.1]) {
|
||||||
|
translate ([ 3.1, 28.3 , 2]) rotate([ 0,0,0]) screw([3, 7, 0]);
|
||||||
|
translate ([ 86.5, 28.3 , 2]) rotate([ 0,0,0]) screw([3, 7, 0]);
|
||||||
|
|
||||||
|
translate ([ 15.1, 10.15, 0]) rotate([180,0,0]) screw([3, 7, 0]);
|
||||||
|
translate ([ 76, 10.15, 0]) rotate([180,0,0]) screw([3, 7, 0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
// "HDD HOLDER"
|
||||||
|
color([0.9, 0.9, 0.9])
|
||||||
|
translate([67,8,0]) rotate([180,0,180])
|
||||||
|
linear_extrude(height=0.01) text("HDD HOLDER",5);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user