Add XIAO DFPlayer sketch and print gcode; switch grille to Inkscape-edited skull-2.svg

This commit is contained in:
zyphlar
2026-09-10 00:18:22 -07:00
parent de047b813b
commit 16dee110af
5 changed files with 92970 additions and 7 deletions
+11 -7
View File
@@ -53,8 +53,12 @@ cutoutsFront = [
];
cutoutsLid = [
[7, 14, 0, 0, 0.25*25.4, yappCircle],
[25, 35, 0, 0, 0.125*25.4, yappCircle],
[22, 10, 0, 0, 0.5*25.4/2, yappCircle],
[2, 35, 0, 0, 0.5*25.4/2, yappCircle],
];
snapJoins = [
[10,5,yappFront,yappBack,yappSymmetric]
];
//---------------------------------------------------------------
@@ -114,8 +118,8 @@ module hookBaseInside()
// https://game-icons.net/1x1/sbed/death-skull.html
//---------------------------------------------------------------
plateDia = 50; // faceplate diameter (> 45mm opening -> fused rim)
plateRaise = 2.6; // mm proud of the front face
plateEmbed = 1.5; // mm the plate sinks into the front wall (weld)
plateRaise = 1; // mm proud of the front face
plateEmbed = 5; // mm the plate sinks into the front wall (weld)
skullFaceW = 46; // skull width across the plate
skullMaskD = 44; // opened-up disc around the skull -> the grille voids
frontOuterX = shellInsideLength + 2*wallThickness; // X of the outer front face
@@ -125,7 +129,7 @@ speakerZc = 28.6; // speaker opening centre (Z)
// skull.svg imports at ~180.6mm wide (512-unit viewBox at 72dpi)
skullImportW = 180.6;
module skullArt() { import("skull.svg", center = true); }
module skullArt() { import("skull-2.svg", center = true); }
// The faceplate is a solid disc. The grille is the skull's negative
// space: inside a centre disc, everything that is NOT skull bone is
@@ -143,8 +147,8 @@ module grille2D()
scale(skullFaceW / skullImportW) skullArt();
}
// teeth: a row of slots cut into the jaw for extra grille area
for (i = [-2 : 2])
translate([i * 4.4, -15.5]) square([2.2, 7], center = true);
//for (i = [-2 : 2])
//translate([i * 4.4, -15.5]) square([2.2, 7], center = true);
}
}