PopufareHousingInnerBackSupport.scad 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. // License: CC0
  2. //
  3. // To the extent possible under law, Clementine Computing LLC has waived
  4. // all copyright and related or neighboring rights to this file.
  5. //
  6. // This work is published from: United States.
  7. //
  8. include <PopufareHousingCommon.scad>
  9. // To be attached to the 'bottom' of the Raspberry Pi (3B+).
  10. // This bracket is meant to provide zip tie access to tie down USB
  11. // connections, zip tie access for the GPRS antennae and provide
  12. // support for the SD card.
  13. // Mounting this bracket flush with the bottom of the Raspberry Pi (3B+)
  14. // should provide the lip of the material to prevent the SD card from
  15. // dislodging.
  16. //
  17. module PopufareHousingInnerBackSupportPlate() {
  18. _lip_r = 24;
  19. _lip_l = 24;
  20. _w = RPI3BP_W + _lip_l + _lip_r;
  21. _h = RPI3BP_H + 10;
  22. _r = 3;
  23. _sd_w = 3.25;
  24. _rpi_lip = RPI3BP_W - RPI3BP_SCREW_DW - RPI3BP_SCREW_DE;
  25. // debug: pi board reference
  26. //translate([0,RPI3BP_H + 20]) square([RPI3BP_W, RPI3BP_H], center=true);
  27. //translate([RPI3BP_W + 30,0]) square([RPI3BP_W, RPI3BP_H], center=true);
  28. difference() {
  29. union() {
  30. difference() {
  31. //translate([_lip_l/2, 0]) rounded_rect(_w, _h, _r);
  32. translate([_w/2 - (_lip_l + RPI3BP_W/2), 0]) rounded_rect(_w, _h, _r);
  33. // sd card bracket
  34. //
  35. translate([-RPI3BP_W/2-_sd_w/2, 0])
  36. rounded_rect(_sd_w-2, RPI3BP_H, 1);
  37. // cut out middles sections to get rounded edges
  38. //
  39. translate([-RPI3BP_W/2+RPI3BP_SCREW_DW/2 + RPI3BP_SCREW_DE,0])
  40. rounded_rect(RPI3BP_SCREW_DW-2*RPI3BP_SCREW_DE, RPI3BP_H, 2);
  41. translate([RPI3BP_W/2 - _rpi_lip/2+2, 0])
  42. rounded_rect(_rpi_lip-3, RPI3BP_H, 2);
  43. // the above creates strips, use this to cut out the middle section
  44. // which we'll fill with rounded edges below
  45. //
  46. square([RPI3BP_W+0.5, RPI3BP_H - 2*RPI3BP_SCREW_DE], center=true);
  47. };
  48. // rounded tabs for mounting screws
  49. //
  50. translate([-RPI3BP_W/2+RPI3BP_SCREW_DE, (RPI3BP_H/2-RPI3BP_SCREW_DE)])
  51. circle(RPI3BP_SCREW_PAD_R);
  52. translate([-RPI3BP_W/2+RPI3BP_SCREW_DE,-(RPI3BP_H/2-RPI3BP_SCREW_DE)])
  53. circle(RPI3BP_SCREW_PAD_R);
  54. translate([-RPI3BP_W/2+RPI3BP_SCREW_DE+RPI3BP_SCREW_DW, (RPI3BP_H/2-RPI3BP_SCREW_DE)])
  55. circle(RPI3BP_SCREW_PAD_R);
  56. translate([-RPI3BP_W/2+RPI3BP_SCREW_DE+RPI3BP_SCREW_DW,-(RPI3BP_H/2-RPI3BP_SCREW_DE)])
  57. circle(RPI3BP_SCREW_PAD_R);
  58. }
  59. // rpi mounting screws
  60. //
  61. translate([-RPI3BP_W/2+RPI3BP_SCREW_DE, (RPI3BP_H/2-RPI3BP_SCREW_DE)])
  62. circle(RPI3BP_SCREW_R);
  63. translate([-RPI3BP_W/2+RPI3BP_SCREW_DE,-(RPI3BP_H/2-RPI3BP_SCREW_DE)])
  64. circle(RPI3BP_SCREW_R);
  65. translate([-RPI3BP_W/2+RPI3BP_SCREW_DE+RPI3BP_SCREW_DW, (RPI3BP_H/2-RPI3BP_SCREW_DE)])
  66. circle(RPI3BP_SCREW_R);
  67. translate([-RPI3BP_W/2+RPI3BP_SCREW_DE+RPI3BP_SCREW_DW,-(RPI3BP_H/2-RPI3BP_SCREW_DE)])
  68. circle(RPI3BP_SCREW_R);
  69. // usb zip tie slots
  70. //
  71. translate([RPI3BP_W/2 + _lip_r/2, -RPI3BP_H/2 + RPI3BP_USB0_H - RPI3BP_USB_DH/2])
  72. rounded_rect(_lip_r/2, 3, 1);
  73. translate([RPI3BP_W/2 + _lip_r/2, -RPI3BP_H/2 + RPI3BP_USB0_H + RPI3BP_USB_DH/2])
  74. rounded_rect(_lip_r/2, 3, 1);
  75. translate([RPI3BP_W/2 + _lip_r/2, -RPI3BP_H/2 + RPI3BP_USB1_H + RPI3BP_USB_DH/2])
  76. rounded_rect(_lip_r/2, 3, 1);
  77. // ethernet access
  78. //
  79. translate([RPI3BP_W/2 + _lip_r/2, -RPI3BP_H/2 + RPI3BP_ETH_H-3])
  80. rounded_rect(_lip_r/2, RPI3BP_ETH_DH-2, 2);
  81. // GPRS antennae access
  82. // 12 from center
  83. // 8 diameter
  84. // 14 center from edge
  85. //
  86. translate([-RPI3BP_W/2 - 14, 0])
  87. rounded_rect(9, 30, 4);
  88. // antennae zip tie access
  89. //
  90. translate([-RPI3BP_W/2 - 14, 24])
  91. rounded_rect(8, 4, 2);
  92. translate([-RPI3BP_W/2 - 14, -24])
  93. rounded_rect(8, 4, 2);
  94. }
  95. }
  96. //PopufareHousingInnerBackSupportPlate();