04/2026 updates

This commit is contained in:
2026-05-11 07:59:21 +02:00
parent 2b662fb655
commit 5dced2efe0
62 changed files with 300061 additions and 0 deletions
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

+36
View File
@@ -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);
}
}
+7
View File
@@ -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();
+36
View File
@@ -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();
+59
View File
@@ -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.
File diff suppressed because it is too large Load Diff
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.