Files
OpenShock/Case-Lolin-ESP32-S3.scad

43 lines
1.4 KiB
OpenSCAD
Raw Normal View History

2026-02-13 10:49:46 +00:00
esp32_width = 25.8;
case_height = 12;
esp32_length = 65.8;
esp32_secondary_length = 60.2;
wall_thickness = 1;
2026-01-26 02:19:26 +00:00
usb_thickness = 3.3;
usb_width = 9.1;
2026-01-23 11:27:05 +00:00
module generateCase() {
difference() {
// Generate Outer Shell
cube([(esp32_width+(wall_thickness*2)), (esp32_length+(wall_thickness*2)), (case_height+wall_thickness)]);
// Generate inner cutout for ESP32 PCB
translate([wall_thickness,wall_thickness,wall_thickness])
cube([esp32_width, esp32_secondary_length, case_height]);
// Generate cutout for ESP32 Antenna
translate([wall_thickness+3,wall_thickness,wall_thickness+1])
cube([esp32_width-6, esp32_length, case_height]);
// Generate slot for OTG Port
2026-02-13 10:49:46 +00:00
translate([wall_thickness+2.1,0,wall_thickness+1.1])
2026-01-26 02:19:26 +00:00
cube([usb_width,2,usb_thickness]);
2026-01-23 11:27:05 +00:00
// Generate slot for UART port
2026-02-13 10:49:46 +00:00
translate([(wall_thickness+esp32_width-usb_width-2.1),0,wall_thickness+1.1])
2026-01-26 02:19:26 +00:00
cube([usb_width,2,usb_thickness]);
2026-01-23 11:27:05 +00:00
}
}
2026-02-13 10:49:46 +00:00
module generateLid() {
union() {
cube([(esp32_width+(wall_thickness*2)), (esp32_length+(wall_thickness*2)), 1.5]);
translate([wall_thickness, wall_thickness, 1.5])
cube([esp32_width, esp32_secondary_length, 1.0]);
translate([wall_thickness+3, esp32_secondary_length, 1.0])
cube([esp32_width-6, 5.5, 1.5]);
}
2026-01-26 02:19:26 +00:00
}
2026-01-23 11:27:05 +00:00
generateCase();
2026-02-13 10:49:46 +00:00
translate([esp32_width+5,0,0])
generateLid();