2 Commits
v1.0.1 ... main

Author SHA1 Message Date
239007d1d4 Added foot to leave a gap below the Fabula to help sound spread 2026-05-30 13:07:49 +02:00
926aecebf5 Updated README 2026-05-17 10:07:49 +02:00
2 changed files with 23 additions and 0 deletions

View File

@@ -17,6 +17,8 @@ The toy has an internal lithium-ion battery that can be charged via USB-C and pr
It can also be monitored and controlled via Home Assistant or with a web interface in local network.
It is privacy-friendly: it works completely localy and sends no data to any external service.
> Disclaimer: this is a prototype and its design may change substantially at any time. If you plan on building one, please start from the last tagged commit (e.g. `1.0.1` and take note of the tag for future references.
## How does it work?
![Take apart](images/take_apart.jpg)

View File

@@ -29,6 +29,12 @@ module fabula_enclosure_bottom() {
// Logos
translate([45, -18, 28.1]) linear_extrude(height = 1, center = true) rotate([0, 0, 90]) scale([0.15, 0.15, 0.15]) import("oshw-logo-filled-black.svg");
translate([66, -25, 28.1]) linear_extrude(height = 1, center = true) rotate([0, 0, 90]) text("a Luna, con ♥", size = 6);
// Foot screw holes
translate([-75, -30, 0]) {
translate([0, 10, -3.9]) cylinder(h = 40, d = pcb_screw_size*1.5);
translate([0, 40, -3.9]) cylinder(h = 40, d = pcb_screw_size*1.5);
}
}
// Speaker grille reinforcements
@@ -68,5 +74,20 @@ module fabula_enclosure_top() {
}
}
module fabula_enclosure_foot() {
// A foot to leave a gap under the shell for a better sound
difference(){
hull(){
sphere(d = 10, $fn = 64);
translate([0, 50, 0]) sphere(d = 10, $fn = 64);
}
translate([-5, -5, 0]) cube([10, 50 + 10, 5]);
// Screw holes
translate([0, 10, -3.9]) cylinder(h = 4, d = pcb_screw_size);
translate([0, 40, -3.9]) cylinder(h = 4, d = pcb_screw_size);
}
}
translate([0, -60, 0]) rotate([180, 0, 0]) fabula_enclosure_bottom();
translate([0, 60, 0]) fabula_enclosure_top();
translate([-120, -80, -30]) fabula_enclosure_foot();