04/2026 updates

This commit is contained in:
julien committed 2026-05-11 07:59:21 +02:00
1 parent 2b662fb655
commit 5dced2efe0
62 files changed
+300061

No files matched your search

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

@@ -0,0 +1,50 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="140.00024mm"
height="100.0001mm"
viewBox="0 0 140.00024 100.0001"
version="1.1"
id="svg1"
xml:space="preserve"
inkscape:version="1.4.4 (dcaf3e7d9e, 2026-05-05)"
sodipodi:docname="zimablade_hdd_support_profile.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
inkscape:zoom="1.4378367"
inkscape:cx="301.4946"
inkscape:cy="173.52457"
inkscape:window-width="1920"
inkscape:window-height="1016"
inkscape:window-x="0"
inkscape:window-y="36"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" /><defs
id="defs1" /><g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-42.597919,-94.507942)"><path
id="rect5"
style="fill:#ff00ff;stroke:none;stroke-width:0.614558;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:0"
d="m 45.345555,94.507942 c -1.522227,0 -2.747636,1.225409 -2.747636,2.747636 V 191.7604 c 0,1.52223 1.225409,2.74764 2.747636,2.74764 h 7.25227 v -8.3938 c 0,-3.53069 2.842566,-6.37274 6.373255,-6.37274 H 166.225 c 3.53069,0 6.37274,2.84205 6.37274,6.37274 v 8.3938 h 7.25227 c 1.52222,0 2.74815,-1.22541 2.74815,-2.74764 V 97.255578 c 0,-1.522227 -1.22593,-2.747636 -2.74815,-2.747636 h -7.25227 v 19.503198 c 0,0.87619 -0.70511,1.5813 -1.5813,1.5813 H 54.179641 c -0.876189,0 -1.581816,-0.70511 -1.581816,-1.5813 V 94.507942 Z m 7.502384,44.084648 H 168.34787 c 1.2465,0 2.24999,1.00349 2.24999,2.24999 0,1.2465 -1.00349,2.24999 -2.24999,2.24999 H 52.847939 c -1.2465,0 -2.249992,-1.00349 -2.249992,-2.24999 0,-1.2465 1.003492,-2.24999 2.249992,-2.24999 z m 0,30.00024 H 168.34787 c 1.2465,0 2.24999,1.00349 2.24999,2.24999 0,1.2465 -1.00349,2.24999 -2.24999,2.24999 H 52.847939 c -1.2465,0 -2.249992,-1.00349 -2.249992,-2.24999 0,-1.2465 1.003492,-2.24999 2.249992,-2.24999 z" /><image
width="100.21448"
height="60"
preserveAspectRatio="none"
xlink:href="data:image/png;base64,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&#10;AACsjLl4OuFtd26MCLine truncated
id="image1"
x="62.490803"
y="131.56284" /></g></svg>

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.