| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- // 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 <PopufareHousingCommon.scad>
- // 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();
|