// License: CC0 // // To the extent possible under law, Clementine Computing LLC has waived // all copyright and related or neighboring rights to this file. // // This work is published from: United States. // include // To be attached to the 'bottom' of the Raspberry Pi (3B+). // This bracket is meant to provide zip tie access to tie down USB // connections, zip tie access for the GPRS antennae and provide // support for the SD card. // Mounting this bracket flush with the bottom of the Raspberry Pi (3B+) // should provide the lip of the material to prevent the SD card from // dislodging. // module PopufareHousingInnerBackSupportPlate() { _lip_r = 24; _lip_l = 24; _w = RPI3BP_W + _lip_l + _lip_r; _h = RPI3BP_H + 10; _r = 3; _sd_w = 3.25; _rpi_lip = RPI3BP_W - RPI3BP_SCREW_DW - RPI3BP_SCREW_DE; // debug: pi board reference //translate([0,RPI3BP_H + 20]) square([RPI3BP_W, RPI3BP_H], center=true); //translate([RPI3BP_W + 30,0]) square([RPI3BP_W, RPI3BP_H], center=true); difference() { union() { difference() { //translate([_lip_l/2, 0]) rounded_rect(_w, _h, _r); translate([_w/2 - (_lip_l + RPI3BP_W/2), 0]) rounded_rect(_w, _h, _r); // sd card bracket // translate([-RPI3BP_W/2-_sd_w/2, 0]) rounded_rect(_sd_w-2, RPI3BP_H, 1); // cut out middles sections to get rounded edges // translate([-RPI3BP_W/2+RPI3BP_SCREW_DW/2 + RPI3BP_SCREW_DE,0]) rounded_rect(RPI3BP_SCREW_DW-2*RPI3BP_SCREW_DE, RPI3BP_H, 2); translate([RPI3BP_W/2 - _rpi_lip/2+2, 0]) rounded_rect(_rpi_lip-3, RPI3BP_H, 2); // the above creates strips, use this to cut out the middle section // which we'll fill with rounded edges below // square([RPI3BP_W+0.5, RPI3BP_H - 2*RPI3BP_SCREW_DE], center=true); }; // rounded tabs for mounting screws // translate([-RPI3BP_W/2+RPI3BP_SCREW_DE, (RPI3BP_H/2-RPI3BP_SCREW_DE)]) circle(RPI3BP_SCREW_PAD_R); translate([-RPI3BP_W/2+RPI3BP_SCREW_DE,-(RPI3BP_H/2-RPI3BP_SCREW_DE)]) circle(RPI3BP_SCREW_PAD_R); translate([-RPI3BP_W/2+RPI3BP_SCREW_DE+RPI3BP_SCREW_DW, (RPI3BP_H/2-RPI3BP_SCREW_DE)]) circle(RPI3BP_SCREW_PAD_R); translate([-RPI3BP_W/2+RPI3BP_SCREW_DE+RPI3BP_SCREW_DW,-(RPI3BP_H/2-RPI3BP_SCREW_DE)]) circle(RPI3BP_SCREW_PAD_R); } // rpi mounting screws // translate([-RPI3BP_W/2+RPI3BP_SCREW_DE, (RPI3BP_H/2-RPI3BP_SCREW_DE)]) circle(RPI3BP_SCREW_R); translate([-RPI3BP_W/2+RPI3BP_SCREW_DE,-(RPI3BP_H/2-RPI3BP_SCREW_DE)]) circle(RPI3BP_SCREW_R); translate([-RPI3BP_W/2+RPI3BP_SCREW_DE+RPI3BP_SCREW_DW, (RPI3BP_H/2-RPI3BP_SCREW_DE)]) circle(RPI3BP_SCREW_R); translate([-RPI3BP_W/2+RPI3BP_SCREW_DE+RPI3BP_SCREW_DW,-(RPI3BP_H/2-RPI3BP_SCREW_DE)]) circle(RPI3BP_SCREW_R); // usb zip tie slots // translate([RPI3BP_W/2 + _lip_r/2, -RPI3BP_H/2 + RPI3BP_USB0_H - RPI3BP_USB_DH/2]) rounded_rect(_lip_r/2, 3, 1); translate([RPI3BP_W/2 + _lip_r/2, -RPI3BP_H/2 + RPI3BP_USB0_H + RPI3BP_USB_DH/2]) rounded_rect(_lip_r/2, 3, 1); translate([RPI3BP_W/2 + _lip_r/2, -RPI3BP_H/2 + RPI3BP_USB1_H + RPI3BP_USB_DH/2]) rounded_rect(_lip_r/2, 3, 1); // ethernet access // translate([RPI3BP_W/2 + _lip_r/2, -RPI3BP_H/2 + RPI3BP_ETH_H-3]) rounded_rect(_lip_r/2, RPI3BP_ETH_DH-2, 2); // GPRS antennae access // 12 from center // 8 diameter // 14 center from edge // translate([-RPI3BP_W/2 - 14, 0]) rounded_rect(9, 30, 4); // antennae zip tie access // translate([-RPI3BP_W/2 - 14, 24]) rounded_rect(8, 4, 2); translate([-RPI3BP_W/2 - 14, -24]) rounded_rect(8, 4, 2); } } //PopufareHousingInnerBackSupportPlate();