/* * Copyright (c) 2022 - 2023 Thomas Buck (thomas@xythobuz.de) * Philipp Schönberger (mail@phschoen.de) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * See . */ // ####################### // ## Raspberry Pi Pico ## // ####################### pico_w = 21; pico_l = 51; pico_d = 1.0; pico_hole_d = 2.1; pico_hole_x = 4.8; pico_hole_y = 2.0; pico_hole_d_x = 11.4; pico_hole_d_y = pico_l - 2 * pico_hole_y; pico_usb_w = 8.0; pico_usb_h = 2.8; pico_usb_d = 6.0; pico_usb_off = 1.3; pico_co_w = pico_w + 1; pico_co_l = pico_l + 1; reset_button_dia = 4.0; reset_button_off_x = 7; reset_button_off_y = 12.15; pico_support_w = 6.5; pico_support_l = 5; pico_screw_depth = 6; pico_screw_d = 1.8; use module pico_wrap() { translate([0,0,3.9]) rotate([0,180,0]) if (use_external_pico_model) translate([-pico_w / 2, -pico_l / 2, 0]) pico(); else pico_own(); } module pico_own() { translate([-pico_w / 2, -pico_l / 2, 0]) difference() { union() { color("green") cube([pico_w, pico_l, pico_d]); translate([(pico_w - pico_usb_w) / 2, pico_l - pico_usb_d + pico_usb_off, pico_d]) cube([pico_usb_w, pico_usb_d, pico_usb_h]); } for (x = [0, pico_hole_d_x]) for (y = [0, pico_hole_d_y]) translate([pico_hole_x + x, pico_hole_y + y, -1]) cylinder(d = pico_hole_d, h = pico_d + 2); } }