04/2026 updates
This commit is contained in:
Binary file not shown.
|
After Width: | Height: | Size: 18 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 17 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 6.1 KiB |
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 12 KiB |
@@ -0,0 +1,36 @@
|
||||
$fn=60;
|
||||
|
||||
include <BOSL2/std.scad>
|
||||
|
||||
// Dimesions of the CM4-IO board and enclosure
|
||||
CM4_WIDTH = 152; // mm
|
||||
CM4_HEIGHT = 70; // mm
|
||||
CM4_DEPTH = 36; // mm
|
||||
ENclosure_WIDTH = CM4_WIDTH + 8; // mm
|
||||
ENclosure_HEIGHT = CM4_HEIGHT + 10; // mm
|
||||
ENclosure_DEPTH = CM4_DEPTH + 20; // mm
|
||||
// CM4-IO placement and hole
|
||||
cm4_io_offset = CM4_HEIGHT/2 + 5; // offset from bottom of enclosure
|
||||
|
||||
// Enclosure dimensions and hole positions
|
||||
enclosure = rect_tube(size=[ENclosure_WIDTH,ENclosure_DEPTH], h=ENclosure_HEIGHT, wall=5);
|
||||
|
||||
holes = [
|
||||
[[10, 10], [CM4_WIDTH-36, 10]], // Front holes for CM4-IO pins
|
||||
[[2, ENclosure_HEIGHT - CM4_HEIGHT - 20], [ENclosure_WIDTH - 2, ENclosure_HEIGHT - CM4_HEIGHT - 20]] // Bottom hole for mounting
|
||||
];
|
||||
|
||||
for (i = holes) {
|
||||
translate(i[0][0], i[0][1], ENclosure_DEPTH - 5)
|
||||
hole(r=3, d=5);
|
||||
}
|
||||
|
||||
* cm4_io_placement = translate([cm4_io_offset,cm4_io_offset,0]) scale(1, -1, 1) rotate([0, 0, 90]) cm4_io;
|
||||
|
||||
// Add CM4-IO and enclosure to the final model
|
||||
difference() {
|
||||
enclosure;
|
||||
for (i = cm4_io_placement.convex_hull.vertices) {
|
||||
sphere(r=1, center=i);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
include <BOSL2/std.scad>
|
||||
|
||||
module jetson() {
|
||||
color("green", alpha=.5) cuboid([104,91,10], rounding=3, edges=[FWD+RIGHT,FWD+LEFT,BACK+RIGHT,BACK+LEFT]);
|
||||
}
|
||||
|
||||
*jetson();
|
||||
@@ -0,0 +1,36 @@
|
||||
$fn=60;
|
||||
|
||||
include <BOSL2/std.scad>
|
||||
include <boltsos_0.4.1/BOLTS.scad>
|
||||
|
||||
include <jetson_nano_board.scad>
|
||||
|
||||
mini_l=180;
|
||||
nano_l=105;
|
||||
nano_w=92;
|
||||
frame_e=3;
|
||||
p_height=15;
|
||||
|
||||
// holes_positions
|
||||
color("orange") {
|
||||
translate([-51.5,-45,-frame_e]) zcyl(l=7, d=20, anchor=BOTTOM);
|
||||
translate([-51.5,45,-frame_e]) zcyl(l=7, d=20, anchor=BOTTOM);
|
||||
translate([51.5,45,-frame_e]) zcyl(l=7, d=20, anchor=BOTTOM);
|
||||
translate([51.5,-45,-frame_e]) zcyl(l=7, d=20, anchor=BOTTOM);
|
||||
}
|
||||
|
||||
// base_plate
|
||||
difference() {
|
||||
union() {
|
||||
cuboid([mini_l,mini_l,frame_e], rounding=3, edges=[FWD+RIGHT,FWD+LEFT,BACK+RIGHT,BACK+LEFT], anchor=[0,0,1]);
|
||||
cuboid([nano_l+8,nano_w+8,frame_e+5], rounding=3, edges=[FWD+RIGHT,FWD+LEFT,BACK+RIGHT,BACK+LEFT], anchor=[0,0,-1]);
|
||||
}
|
||||
cuboid([nano_l,nano_w,p_height*2], rounding=3, edges=[FWD+RIGHT,FWD+LEFT,BACK+RIGHT,BACK+LEFT]);;
|
||||
*cuboid([nano_l+2,nano_w+2,frame_e+1], rounding=3, edges=[FWD+RIGHT,FWD+LEFT,BACK+RIGHT,BACK+LEFT], anchor=[0,0,-1]);
|
||||
*cuboid([nano_l-8,nano_w-8,frame_e*3], rounding=3, edges=[FWD+RIGHT,FWD+LEFT,BACK+RIGHT,BACK+LEFT]);
|
||||
*cuboid([nano_l+12,nano_w-20,p_height], anchor=[0,0,-1]);
|
||||
*cuboid([nano_l-20,nano_w+12,p_height], anchor=[0,0,-1]);
|
||||
}
|
||||
|
||||
|
||||
translate([0,0,10]) jetson();
|
||||
@@ -0,0 +1,59 @@
|
||||
$fn=60;
|
||||
|
||||
include <BOSL2/std.scad>
|
||||
include <nutsnbolts/cyl_head_bolt.scad>;
|
||||
|
||||
base_length=100;
|
||||
base_width=20;
|
||||
base_height=15;
|
||||
|
||||
module screw() {
|
||||
nutcatch_parallel("M3", clh=0.1);
|
||||
translate([0,0,23]) hole_through(name="M3", l=16, cld=0.1, h=10, hcld=0.4);
|
||||
*nutcatch_sidecut("M3", l=20, clk=0.1, clh=0.1, clsl=0.1);
|
||||
}
|
||||
|
||||
module pcie_mount() {
|
||||
difference() {
|
||||
union() {
|
||||
// Base
|
||||
cuboid([base_length,base_width,base_height], rounding=2, edges=[FWD+RIGHT,FWD+LEFT,BACK+RIGHT,BACK+LEFT], anchor=TOP);
|
||||
translate([0,-10,-5]) cuboid([80,4,50], rounding=40, edges=[TOP+RIGHT,TOP+LEFT,], anchor=BOT+FRONT);
|
||||
// Front support
|
||||
*translate([-65,0,0]) cuboid([10,20,80.5], rounding=2, edges=[FWD+LEFT,BACK+LEFT, TOP+RIGHT], anchor=BOT+RIGHT);
|
||||
}
|
||||
// riser_screwholes
|
||||
translate([29,-8,-7.25]) rotate([0,-90,-90]) screw();
|
||||
translate([-29,-8,-7.25]) rotate([0,-90,-90]) screw();
|
||||
// cage_screwholes
|
||||
translate([0,-20,35]) rotate([0,-90,-90]) screw();
|
||||
translate([0,-20,5]) rotate([0,-90,-90]) screw();
|
||||
// riser_nest
|
||||
cuboid([68,2,base_height], rounding=-1, edges=[TOP+RIGHT,TOP+LEFT,TOP+BACK,TOP+FRONT], anchor=TOP+FRONT);
|
||||
translate([0,-3,0]) cuboid([44,14,base_height], rounding=-1, edges=[TOP+RIGHT,TOP+LEFT,TOP+FRONT], anchor=TOP+FRONT);
|
||||
}
|
||||
}
|
||||
|
||||
module riser() {
|
||||
difference() {
|
||||
union() {
|
||||
cuboid([67.45,1.65,14.25], rounding=1, edges=[TOP+RIGHT,TOP+LEFT,BOT+RIGHT,BOT+LEFT], anchor=TOP);
|
||||
cuboid([39,7.125,10.55], rounding=.5, anchor=BOT);
|
||||
translate([0,0,-7.5]) cuboid([42,7,7.5], rounding=1, edges=[TOP+RIGHT,TOP+LEFT,BOT+RIGHT,BOT+LEFT], anchor=TOP);
|
||||
}
|
||||
translate([29,0,-7.25]) ycyl(l=5, d=3.25);
|
||||
translate([-29,0,-7.25]) ycyl(l=5, d=3.25);
|
||||
}
|
||||
}
|
||||
|
||||
color("grey") translate([-63.2,0.825,2]) difference() {
|
||||
cuboid([12.75,18.25,80], rounding=2, anchor=BOT+BACK+RIGHT);
|
||||
translate([-1,2,-1]) cuboid([15,25,80], rounding=2, anchor=BOT+BACK+RIGHT);
|
||||
}
|
||||
|
||||
!color("cyan") translate([0,-8,0]) {
|
||||
pcie_mount();
|
||||
|
||||
}
|
||||
|
||||
color("grey") translate([0,-7,0]) riser();
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user