diff --git a/README.md b/README.md index 9119dc3..1c8d589 100644 --- a/README.md +++ b/README.md @@ -103,9 +103,9 @@ Template creation and i/o panel layouts in a dxf format can be easily created an ### Case Designs and Styles The case naming convention for standard cases in the configuration file follow the basic form of “sbc”_”design”_”style” e.g. c4_shell or c4_tray_vu5. -#### Current Case Count 454 +#### Current Case Count 457 -##### Hardkernel - 191 +##### Hardkernel - 194 **Odorid-C1+ cases** - 16 : c1+_shell, c1+_panel, c1+_panel_lcd3.5, c1+_desktop_lcd3.5, c1+_stacked, c1+_tray, c1+_tray_sides, c1+_tray_vu5, c1+_tray_vu7, c1+_shell_boombox, c1+_panel_boombox, c1+_tray_boombox, c1+_round, c1+_hex, c1+_snap, c1+_fitted @@ -129,7 +129,7 @@ c4_tray_vu7, c4_shell_boombox, c4_panel_boombox, c4_deskboom_lcd3.5, c4_tray_boo **Odorid-N2LQ cases** - 9 :n2lq_shell, n2lq_panel, n2lq_stacked, n2lq_tray, n2lq_tray_sides, n2lq_tray_vu5, n2lq_tray_vu7, n2lq_snap, n2lq_fitted -**Odorid-M1S cases** - 9 : m1s_shell, m1s_panel, m1s_stacked, m1s_tray, m1s_tray_vu5, m1s_tray_vu7, m1s_tray_sides, m1s_snap, m1s_fitted +**Odorid-M1S cases** - 12 : m1s_shell, m1s_shell_nvme, m1s_shell_ups, m1s_panel, m1s_stacked, m1s_tray, m1s_tray_ups, m1s_tray_vu5, m1s_tray_vu7, m1s_tray_sides, m1s_snap, m1s_fitted **Odorid-M1 cases** - 12 : m1_panel, m1_tray, m1_tray_drive, m1_tray_sides, m1_tray_vu5, m1_tray_vu7, m1_snap, m1_fitted, m1_fitted_drivebox2.5, m1_fitted_drivebox3.5, m1_fitted_pizzabox, m1_fitted_drivebox3.5v diff --git a/SBC_Model_Framework b/SBC_Model_Framework index cca4d08..29da2bf 160000 --- a/SBC_Model_Framework +++ b/SBC_Model_Framework @@ -1 +1 @@ -Subproject commit cca4d08395b01765bac0b29dd65791a307069b3a +Subproject commit 29da2bfb8d74b26dfb59349bec8acaf3376079d4 diff --git a/sbc_case_builder.json b/sbc_case_builder.json index 3c526e4..b9649b4 100644 --- a/sbc_case_builder.json +++ b/sbc_case_builder.json @@ -5094,7 +5094,7 @@ "case_offset_x": "0", "case_offset_y": "0", "case_style": "none", - "cooling": "hex", + "cooling": "hex_8mm", "exhaust_vents": "vent", "fillet": "0", "floorthick": "1.5", @@ -5130,12 +5130,12 @@ "vu_rotation": "[15, 0, 0]", "wallthick": "2" }, - "m1s_shell_ups": { + "m1s_shell_nvme": { "$fn": "90", "accessory_highlight": "false", - "accessory_name": "m1s_shell_ups", + "accessory_name": "m1s_shell_nvme", "adjust": "0.01", - "bottom_ext_standoff": "[6.25, 11.5, 3.6, 10, 4, 1, 0, 0, 0, 4.5, 5.1]", + "bottom_ext_standoff": "[6.25, 5, 3.6, 10, 4, 1, 0, 0, 0, 4.5, 5.1]", "bottom_front_left": "0", "bottom_front_right": "0", "bottom_rear_left": "0", @@ -5143,15 +5143,15 @@ "bottom_standoff": "[6.25, 8, 3.6, 10, 4, 1, 0, 0, 0, 4.5, 5.1]", "c_fillet": "3", "case_design": "shell", - "case_ext_standoffs": "true", + "case_ext_standoffs": "false", "case_ffn": "90", "case_fn": "360", "case_offset_bz": "3", - "case_offset_tz": "6", - "case_offset_x": "50", - "case_offset_y": "65", + "case_offset_tz": "0", + "case_offset_x": "11", + "case_offset_y": "0", "case_style": "none", - "cooling": "hex", + "cooling": "hex_8mm", "exhaust_vents": "vent", "fillet": "0", "floorthick": "1.5", @@ -5164,7 +5164,7 @@ "move_leftside": "0", "move_rear": "0", "move_rightside": "0", - "pcb_loc_x": "45", + "pcb_loc_x": "8", "pcb_loc_y": "0", "pcb_loc_z": "0", "raise_top": "0", @@ -5177,7 +5177,64 @@ "sidethick": "2", "sidewall_support": "false", "tol": "0.25", - "top_ext_standoff": "[6.25, 17.5, 2.5, 10, 4, 4, 0, 1, 0, 4.5, 5.1]", + "top_ext_standoff": "[6.25, 18, 2.5, 10, 4, 4, 0, 1, 0, 4.5, 5.1]", + "top_front_left": "0", + "top_front_right": "0", + "top_rear_left": "0", + "top_rear_right": "0", + "top_standoff": "[6.25, 18, 2.5, 10, 4, 4, 0, 1, 0, 4.5, 5.1]", + "view": "model", + "vu_rotation": "[15, 0, 0]", + "wallthick": "2" + }, + "m1s_shell_ups": { + "$fn": "90", + "accessory_highlight": "false", + "accessory_name": "m1s_shell_ups", + "adjust": "0.01", + "bottom_ext_standoff": "[6.25, 12, 3.6, 10, 4, 1, 0, 0, 0, 4.5, 5.1]", + "bottom_front_left": "0", + "bottom_front_right": "0", + "bottom_rear_left": "0", + "bottom_rear_right": "0", + "bottom_standoff": "[6.25, 8, 3.6, 10, 4, 1, 0, 0, 0, 4.5, 5.1]", + "c_fillet": "3", + "case_design": "shell", + "case_ext_standoffs": "true", + "case_ffn": "90", + "case_fn": "360", + "case_offset_bz": "3", + "case_offset_tz": "13", + "case_offset_x": "42", + "case_offset_y": "65", + "case_style": "none", + "cooling": "hex_8mm", + "exhaust_vents": "vent", + "fillet": "0", + "floorthick": "2", + "gap": "2.5", + "gpio_opening": "none", + "indents": "true", + "lip": "5", + "lower_bottom": "0", + "move_front": "0", + "move_leftside": "0", + "move_rear": "0", + "move_rightside": "0", + "pcb_loc_x": "37", + "pcb_loc_y": "0", + "pcb_loc_z": "0", + "raise_top": "0", + "sata_punchout": "false", + "sbc_bottom_standoffs": "true", + "sbc_highlight": "false", + "sbc_model": "m1s", + "sbc_off": "false", + "sbc_top_standoffs": "false", + "sidethick": "2", + "sidewall_support": "false", + "tol": "0.25", + "top_ext_standoff": "[6.25, 25, 2.5, 10, 4, 4, 0, 1, 0, 4.5, 5.1]", "top_front_left": "0", "top_front_right": "0", "top_rear_left": "0", @@ -5190,7 +5247,7 @@ "m1s_panel": { "$fn": "90", "accessory_highlight": "false", - "accessory_name": "none", + "accessory_name": "m1s_panel", "adjust": "0.01", "bottom_ext_standoff": "[6.25, 5, 3.6, 10, 4, 1, 0, 0, 0, 4.5, 5.1]", "bottom_front_left": "0", @@ -5208,11 +5265,11 @@ "case_offset_x": "0", "case_offset_y": "0", "case_style": "none", - "cooling": "hex", + "cooling": "hex_8mm", "exhaust_vents": "vent", "fillet": "0", "floorthick": "2", - "gap": "1.5", + "gap": "2.5", "gpio_opening": "none", "indents": "true", "lip": "5", @@ -5265,7 +5322,7 @@ "case_offset_x": "0", "case_offset_y": "0", "case_style": "none", - "cooling": "hex", + "cooling": "hex_8mm", "exhaust_vents": "none", "fillet": "0", "floorthick": "2", @@ -5322,11 +5379,11 @@ "case_offset_x": "0", "case_offset_y": "0", "case_style": "none", - "cooling": "hex", + "cooling": "hex_8mm", "exhaust_vents": "vent", "fillet": "2", "floorthick": "2", - "gap": "1", + "gap": "2.5", "gpio_opening": "none", "indents": "true", "lip": "5", @@ -5358,6 +5415,63 @@ "vu_rotation": "[15, 0, 0]", "wallthick": "2" }, + "m1s_tray_nvme": { + "$fn": "90", + "accessory_highlight": "false", + "accessory_name": "m1s_tray_nvme", + "adjust": "0.01", + "bottom_ext_standoff": "[6.25, 5, 3.6, 10, 4, 1, 0, 0, 0, 4.5, 5.1]", + "bottom_front_left": "0", + "bottom_front_right": "0", + "bottom_rear_left": "0", + "bottom_rear_right": "0", + "bottom_standoff": "[6.25, 7, 3.6, 10, 4, 1, 0, 0, 0, 4.5, 5.1]", + "c_fillet": "3", + "case_design": "tray", + "case_ext_standoffs": "false", + "case_ffn": "90", + "case_fn": "360", + "case_offset_bz": "8.5", + "case_offset_tz": "0", + "case_offset_x": "24", + "case_offset_y": "0", + "case_style": "none", + "cooling": "hex_8mm", + "exhaust_vents": "vent", + "fillet": "2", + "floorthick": "2", + "gap": "2.5", + "gpio_opening": "none", + "indents": "true", + "lip": "5", + "lower_bottom": "0", + "move_front": "0", + "move_leftside": "0", + "move_rear": "0", + "move_rightside": "0", + "pcb_loc_x": "15", + "pcb_loc_y": "0", + "pcb_loc_z": "0", + "raise_top": "0", + "sata_punchout": "false", + "sbc_bottom_standoffs": "true", + "sbc_highlight": "false", + "sbc_model": "m1s", + "sbc_off": "false", + "sbc_top_standoffs": "false", + "sidethick": "2", + "sidewall_support": "false", + "tol": "0.25", + "top_ext_standoff": "[6.25, 18, 2.5, 10, 4, 4, 0, 1, 0, 4.5, 5.1]", + "top_front_left": "0", + "top_front_right": "0", + "top_rear_left": "0", + "top_rear_right": "0", + "top_standoff": "[6.25, 20, 2.5, 10, 4, 4, 0, 1, 0, 4.5, 5.1]", + "view": "model", + "vu_rotation": "[15, 0, 0]", + "wallthick": "2" + }, "m1s_tray_sides": { "$fn": "90", "accessory_highlight": "false", @@ -5383,7 +5497,7 @@ "exhaust_vents": "vent", "fillet": "2", "floorthick": "2", - "gap": "1", + "gap": "2.5", "gpio_opening": "none", "indents": "true", "lip": "5", @@ -5436,11 +5550,11 @@ "case_offset_x": "0", "case_offset_y": "0", "case_style": "vu5", - "cooling": "hex", + "cooling": "hex_8mm", "exhaust_vents": "vent", "fillet": "2", "floorthick": "2", - "gap": "1.5", + "gap": "2.5", "gpio_opening": "none", "indents": "true", "lip": "5", @@ -5493,11 +5607,11 @@ "case_offset_x": "34", "case_offset_y": "0", "case_style": "vu7", - "cooling": "hex", + "cooling": "hex_8mm", "exhaust_vents": "vent", "fillet": "2", "floorthick": "2", - "gap": "1.5", + "gap": "2.5", "gpio_opening": "none", "indents": "true", "lip": "5", @@ -5532,7 +5646,7 @@ "m1s_snap": { "$fn": "90", "accessory_highlight": "false", - "accessory_name": "none", + "accessory_name": "m1s_snap", "adjust": "0.01", "bottom_ext_standoff": "[6.25, 5, 3.6, 10, 4, 1, 0, 0, 0, 4.5, 5.1]", "bottom_front_left": "0", @@ -5550,11 +5664,11 @@ "case_offset_x": "0", "case_offset_y": "0", "case_style": "none", - "cooling": "hex", + "cooling": "hex_8mm", "exhaust_vents": "vent", "fillet": "0", "floorthick": "2", - "gap": "1", + "gap": "2.5", "gpio_opening": "none", "indents": "true", "lip": "5", @@ -5574,7 +5688,7 @@ "sbc_off": "false", "sbc_top_standoffs": "false", "sidethick": "1", - "sidewall_support": "true", + "sidewall_support": "false", "tol": "0.25", "top_ext_standoff": "[6.25, 18, 2.5, 10, 4, 4, 0, 1, 0, 4.5, 5.1]", "top_front_left": "0", @@ -5589,7 +5703,7 @@ "m1s_fitted": { "$fn": "90", "accessory_highlight": "false", - "accessory_name": "none", + "accessory_name": "m1s_fitted", "adjust": "0.01", "bottom_ext_standoff": "[6.25, 5, 3.6, 10, 4, 1, 0, 0, 0, 4.5, 5.1]", "bottom_front_left": "0", @@ -5607,11 +5721,11 @@ "case_offset_x": "0", "case_offset_y": "0", "case_style": "none", - "cooling": "hex", + "cooling": "hex_8mm", "exhaust_vents": "vent", "fillet": "0", "floorthick": "2", - "gap": "1.5", + "gap": "2.5", "gpio_opening": "none", "indents": "true", "lip": "5", @@ -5631,7 +5745,7 @@ "sbc_off": "false", "sbc_top_standoffs": "false", "sidethick": "1", - "sidewall_support": "true", + "sidewall_support": "false", "tol": "0.25", "top_ext_standoff": "[6.25, 18, 2.5, 10, 4, 4, 0, 1, 0, 4.5, 5.1]", "top_front_left": "0", diff --git a/sbc_case_builder.scad b/sbc_case_builder.scad index 23d07e7..76c72e8 100644 --- a/sbc_case_builder.scad +++ b/sbc_case_builder.scad @@ -51,6 +51,8 @@ adjusted jack_3.5 and hdmi_a_vertical opening, change radxa rockpi to rock, changed visionfive2 tray design bottom screw locations, updated sbc model framework. 20231115 Version 2.0.5 added hex vent and new component openings, updated sbc model framework + 20231211 Version 2.0.6 added 5mm and 8mm hex vent, added three m1s cases, updated sbc model framework, + fixed snap top protrusion placement and other fixes. see https://github.com/hominoids/SBC_Case_Builder */ @@ -166,12 +168,12 @@ sata_punchout = false; // gpio openings gpio_opening = "none"; // [none,vent,open,block,punchout] // cooling openings -cooling = "fan"; // [none,vents,fan,hex,custom] +cooling = "fan"; // [none,vents,fan,hex_5mm,hex_8mm,custom] // exhaust vents exhaust_vents = "vent"; // [none,vent] // case accessory group to load -accessory_name = "none"; // ["none", "hk_uart", "c1+_shell_boombox", "c1+_panel_boombox", "c1+_panel_lcd3.5", "c1+_desktop_lcd3.5", "c1+_deskboom_lcd3.5", "c1+_tray_boombox", "c1+_round", "c1+_hex", "c2_shell_boombox", "c2_panel_boombox", "c2_panel_lcd3.5", "c2_desktop_lcd3.5", "c2_deskboom_lcd3.5", "c2_tray_boombox", "c2_round", "c2_hex", "c4_shell_boombox", "c4_panel_lcd3.5", "c4_desktop_lcd3.5", "c4_deskboom_lcd3.5", "c4_panel_boombox", "c4_tray_boombox", "c4_round", "c4_hex", "xu4_keyhole", "hc4_tray_drivebox2.5", "hc4_shell_drivebox2.5", "hc4_shell_drivebox2.5v", "hc4_shell_drivebox3.5", "n1_round", "n1_hex", "n2l_tray", "n2l_gpio", "n2+_tray_vu7_fan", "m1s_shell", "m1s_shell_ups", "m1_panel", "m1_tray", "m1_tray_ssd", "m1_tray_sides", "m1_tray_vu5", "m1_tray_vu7", "m1_fitted_drivebox2.5", "m1_fitted_drivebox3.5", "m1_fitted_pizzabox", "m1_fitted_drivebox3.5v", "h2_shell", "h2_shell_router", "h2_shell_router-ssd", "h2_lowboy", "h2_lowboy_router", "h2_tray", "h2_tray_sides", "h2_tray_router", "h2_router_station", "h2_round", "h2_hex", "h3_shell", "h3_lowboy", "h3_lowboy_router", "h3_tallboy", "h3_tallboy-ssd", "h3_ultimate", "h3_ultimate2", "h3_shell_drivebox2.5v", "jetsonnano_shell", "jetsonnano_panel", "jetsonnano_stacked", "jetsonnano_tray", "jetsonnano_tray_sides", "jetsonnano_round", "jetsonnano_hex", "jetsonnano_snap", "jetsonnano_fitted", "rock64_shell", "rock64_panel", "rock64_stacked", "rock64_tray", "rock64_tray_sides", "rock64_round", "rock64_hex", "rock64_snap", "rock64_fitted", "rockpro64_shell", "rockpro64_panel", "rockpro64_stacked", "rockpro64_tray", "rockpro64_tray_sides", "rockpro64_round", "rockpro64_hex", "rockpro64_snap", "rockpro64_fitted", "quartz64b_stacked_poe_hat", "star64_shell", "show2_shell", "rpi1a+_shell", "rpi1a+_panel", "rpi1a+_stacked", "rpi1a+_tray", "rpi1a+_tray_sides", "rpi1a+_round", "rpi1a+_hex", "rpi1a+_snap", "rpi1a+_fitted", "rpi1b+_shell", "rpi1b+_panel", "rpi1b+_stacked", "rpi1b+_tray", "rpi1b+_tray_sides", "rpi1b+_round", "rpi1b+_hex", "rpi1b+_snap", "rpi1b+_fitted", "rpi3a+_shell", "rpi3a+_panel", "rpi3a+_stacked", "rpi3a+_tray", "rpi3a+_tray_sides", "rpi3a+_round", "rpi3a+_hex", "rpi3a+_snap", "rpi3a+_fitted", "rpi3b_shell", "rpi3b_panel", "rpi3b_stacked", "rpi3b_tray", "rpi3b_tray_sides", "rpi3b_round", "rpi3b_hex", "rpi3b_snap", "rpi3b_fitted", "rpi3b+_shell", "rpi3b+_panel", "rpi3b+_stacked", "rpi3b+_tray", "rpi3b+_tray_sides", "rpi3b+_round", "rpi3b+_hex", "rpi3b+_snap", "rpi3b+_fitted", "rpi4b_shell", "rpi4b_shell_geeekpi_poe_hat", "rpi4b_panel", "rpi4b_stacked", "rpi4b_tray", "rpi4b_tray_sides", "rpi4b_round", "rpi4b_hex", "rpi4b_snap", "rpi4b_fitted", "rpi5_noheatsink_shell", "rpi5_noheatsink_panel", "rpi5_noheatsink_stacked", "rpi5_noheatsink_tray", "rpi5_noheatsink_tray_sides", "rpi5_noheatsink_round", "rpi5_noheatsink_hex", "rpi5_noheatsink_snap", "rpi5_noheatsink_fitted", "rock4b+_shell", "rock4b+_panel", "rock4b+_stacked", "rock4b+_tray", "rock4b+_tray_sides", "rock4b+_round", "rock4b+_hex", "rock4b+_snap", "rock4b+_fitted", "rock4c_shell", "rock4c_panel", "rock4c_stacked", "rock4c_tray", "rock4c_tray_sides", "rock4c_round", "rock4c_hex", "rock4c_snap", "rock4c_fitted", "rock4c+_shell", "rock4c+_panel", "rock4c+_stacked", "rock4c+_tray", "rock4c+_tray_sides", "rock4c+_round", "rock4c+_hex", "rock4c+_snap", "rock4c+_fitted", "rock5b", "rock5b_shell", "rock5bq", "rock5bq_shell", "rock5bq_tray", "rock5bq_tray_sides", "rock5bq_snap", "rock5bq_fitted", "rock5b-v1.3", "vim1_shell", "vim1_panel", "vim1_stacked", "vim1_tray", "vim1_tray_sides", "vim1_round", "vim1_hex", "vim1_snap", "vim1_fitted", "vim2_shell", "vim2_panel", "vim2_stacked", "vim2_tray", "vim2_tray_sides", "vim2_round", "vim2_hex", "vim2_snap", "vim2_fitted", "vim3l_shell", "vim3l_panel", "vim3l_stacked", "vim3l_tray", "vim3l_tray_sides", "vim3l_round", "vim3l_hex", "vim3l_snap", "vim3l_fitted", "vim3_shell", "vim3_panel", "vim3_stacked", "vim3_tray", "vim3_tray_sides", "vim3_round", "vim3_hex", "vim3_snap", "vim3_fitted", "vim4_shell", "vim4_panel", "vim4_stacked", "vim4_tray", "vim4_tray_sides", "vim4_round", "vim4_hex", "vim4_snap", "vim4_fitted", "tinkerboard_shell", "tinkerboard_panel", "tinkerboard_stacked", "tinkerboard_tray", "tinkerboard_tray_sides", "tinkerboard_round", "tinkerboard_hex", "tinkerboard_snap", "tinkerboard_fitted", "tinkerboard-s_shell", "tinkerboard-s_panel", "tinkerboard-s_stacked", "tinkerboard-s_tray", "tinkerboard-s_tray_sides", "tinkerboard-s_round", "tinkerboard-s_hex", "tinkerboard-s_snap", "tinkerboard-s_fitted", "tinkerboard-2_shell", "tinkerboard-2_panel", "tinkerboard-2_stacked", "tinkerboard-2_tray", "tinkerboard-2_tray_sides", "tinkerboard-2_round", "tinkerboard-2_hex", "tinkerboard-2_snap", "tinkerboard-2_fitted", "tinkerboard-r2_shell", "tinkerboard-r2_panel", "tinkerboard-r2_stacked", "tinkerboard-r2_tray", "tinkerboard-r2_tray_sides", "tinkerboard-r2_round", "tinkerboard-r2_hex", "tinkerboard-r2_snap", "tinkerboard-r2_fitted", "opi5_shell", "opi5_panel", "opi5_stacked", "opi5_tray", "opi5_tray-sides", "opi5_snap", "opi5_fitted", "visonfive2_shell", "visonfive2_panel", "visonfive2_stacked", "visonfive2_tray", "visonfive2_snap", "visonfive2_fitted", "visonfive2q_shell", "visonfive2q_panel", "visonfive2q_stacked", "visonfive2q_tray", "visonfive2q_snap", "visonfive2q_fitted"] +accessory_name = "none"; // ["none", "hk_uart", "c1+_shell_boombox", "c1+_panel_boombox", "c1+_panel_lcd3.5", "c1+_desktop_lcd3.5", "c1+_deskboom_lcd3.5", "c1+_tray_boombox", "c1+_round", "c1+_hex", "c2_shell_boombox", "c2_panel_boombox", "c2_panel_lcd3.5", "c2_desktop_lcd3.5", "c2_deskboom_lcd3.5", "c2_tray_boombox", "c2_round", "c2_hex", "c4_shell_boombox", "c4_panel_lcd3.5", "c4_desktop_lcd3.5", "c4_deskboom_lcd3.5", "c4_panel_boombox", "c4_tray_boombox", "c4_round", "c4_hex", "xu4_keyhole", "hc4_tray_drivebox2.5", "hc4_shell_drivebox2.5", "hc4_shell_drivebox2.5v", "hc4_shell_drivebox3.5", "n1_round", "n1_hex", "n2l_tray", "n2l_gpio", "n2+_tray_vu7_fan", "m1s_shell", "m1s_shell_nvme", "m1s_shell_ups", "m1s_tray_nvme", "m1_panel", "m1_tray", "m1_tray_ssd", "m1_tray_sides", "m1_tray_vu5", "m1_tray_vu7", "m1_fitted_drivebox2.5", "m1_fitted_drivebox3.5", "m1_fitted_pizzabox", "m1_fitted_drivebox3.5v", "h2_shell", "h2_shell_router", "h2_shell_router-ssd", "h2_lowboy", "h2_lowboy_router", "h2_tray", "h2_tray_sides", "h2_tray_router", "h2_router_station", "h2_round", "h2_hex", "h3_shell", "h3_lowboy", "h3_lowboy_router", "h3_tallboy", "h3_tallboy-ssd", "h3_ultimate", "h3_ultimate2", "h3_shell_drivebox2.5v", "jetsonnano_shell", "jetsonnano_panel", "jetsonnano_stacked", "jetsonnano_tray", "jetsonnano_tray_sides", "jetsonnano_round", "jetsonnano_hex", "jetsonnano_snap", "jetsonnano_fitted", "rock64_shell", "rock64_panel", "rock64_stacked", "rock64_tray", "rock64_tray_sides", "rock64_round", "rock64_hex", "rock64_snap", "rock64_fitted", "rockpro64_shell", "rockpro64_panel", "rockpro64_stacked", "rockpro64_tray", "rockpro64_tray_sides", "rockpro64_round", "rockpro64_hex", "rockpro64_snap", "rockpro64_fitted", "quartz64b_stacked_poe_hat", "star64_shell", "show2_shell", "rpi1a+_shell", "rpi1a+_panel", "rpi1a+_stacked", "rpi1a+_tray", "rpi1a+_tray_sides", "rpi1a+_round", "rpi1a+_hex", "rpi1a+_snap", "rpi1a+_fitted", "rpi1b+_shell", "rpi1b+_panel", "rpi1b+_stacked", "rpi1b+_tray", "rpi1b+_tray_sides", "rpi1b+_round", "rpi1b+_hex", "rpi1b+_snap", "rpi1b+_fitted", "rpi3a+_shell", "rpi3a+_panel", "rpi3a+_stacked", "rpi3a+_tray", "rpi3a+_tray_sides", "rpi3a+_round", "rpi3a+_hex", "rpi3a+_snap", "rpi3a+_fitted", "rpi3b_shell", "rpi3b_panel", "rpi3b_stacked", "rpi3b_tray", "rpi3b_tray_sides", "rpi3b_round", "rpi3b_hex", "rpi3b_snap", "rpi3b_fitted", "rpi3b+_shell", "rpi3b+_panel", "rpi3b+_stacked", "rpi3b+_tray", "rpi3b+_tray_sides", "rpi3b+_round", "rpi3b+_hex", "rpi3b+_snap", "rpi3b+_fitted", "rpi4b_shell", "rpi4b_shell_geeekpi_poe_hat", "rpi4b_panel", "rpi4b_stacked", "rpi4b_tray", "rpi4b_tray_sides", "rpi4b_round", "rpi4b_hex", "rpi4b_snap", "rpi4b_fitted", "rpi5_noheatsink_shell", "rpi5_noheatsink_panel", "rpi5_noheatsink_stacked", "rpi5_noheatsink_tray", "rpi5_noheatsink_tray_sides", "rpi5_noheatsink_round", "rpi5_noheatsink_hex", "rpi5_noheatsink_snap", "rpi5_noheatsink_fitted", "rock4b+_shell", "rock4b+_panel", "rock4b+_stacked", "rock4b+_tray", "rock4b+_tray_sides", "rock4b+_round", "rock4b+_hex", "rock4b+_snap", "rock4b+_fitted", "rock4c_shell", "rock4c_panel", "rock4c_stacked", "rock4c_tray", "rock4c_tray_sides", "rock4c_round", "rock4c_hex", "rock4c_snap", "rock4c_fitted", "rock4c+_shell", "rock4c+_panel", "rock4c+_stacked", "rock4c+_tray", "rock4c+_tray_sides", "rock4c+_round", "rock4c+_hex", "rock4c+_snap", "rock4c+_fitted", "rock5b", "rock5b_shell", "rock5bq", "rock5bq_shell", "rock5bq_tray", "rock5bq_tray_sides", "rock5bq_snap", "rock5bq_fitted", "rock5b-v1.3", "vim1_shell", "vim1_panel", "vim1_stacked", "vim1_tray", "vim1_tray_sides", "vim1_round", "vim1_hex", "vim1_snap", "vim1_fitted", "vim2_shell", "vim2_panel", "vim2_stacked", "vim2_tray", "vim2_tray_sides", "vim2_round", "vim2_hex", "vim2_snap", "vim2_fitted", "vim3l_shell", "vim3l_panel", "vim3l_stacked", "vim3l_tray", "vim3l_tray_sides", "vim3l_round", "vim3l_hex", "vim3l_snap", "vim3l_fitted", "vim3_shell", "vim3_panel", "vim3_stacked", "vim3_tray", "vim3_tray_sides", "vim3_round", "vim3_hex", "vim3_snap", "vim3_fitted", "vim4_shell", "vim4_panel", "vim4_stacked", "vim4_tray", "vim4_tray_sides", "vim4_round", "vim4_hex", "vim4_snap", "vim4_fitted", "tinkerboard_shell", "tinkerboard_panel", "tinkerboard_stacked", "tinkerboard_tray", "tinkerboard_tray_sides", "tinkerboard_round", "tinkerboard_hex", "tinkerboard_snap", "tinkerboard_fitted", "tinkerboard-s_shell", "tinkerboard-s_panel", "tinkerboard-s_stacked", "tinkerboard-s_tray", "tinkerboard-s_tray_sides", "tinkerboard-s_round", "tinkerboard-s_hex", "tinkerboard-s_snap", "tinkerboard-s_fitted", "tinkerboard-2_shell", "tinkerboard-2_panel", "tinkerboard-2_stacked", "tinkerboard-2_tray", "tinkerboard-2_tray_sides", "tinkerboard-2_round", "tinkerboard-2_hex", "tinkerboard-2_snap", "tinkerboard-2_fitted", "tinkerboard-r2_shell", "tinkerboard-r2_panel", "tinkerboard-r2_stacked", "tinkerboard-r2_tray", "tinkerboard-r2_tray_sides", "tinkerboard-r2_round", "tinkerboard-r2_hex", "tinkerboard-r2_snap", "tinkerboard-r2_fitted", "opi5_shell", "opi5_panel", "opi5_stacked", "opi5_tray", "opi5_tray-sides", "opi5_snap", "opi5_fitted", "visonfive2_shell", "visonfive2_panel", "visonfive2_stacked", "visonfive2_tray", "visonfive2_snap", "visonfive2_fitted", "visonfive2q_shell", "visonfive2q_panel", "visonfive2q_stacked", "visonfive2q_tray", "visonfive2q_snap", "visonfive2q_fitted"] a = search([accessory_name],accessory_data); s = search([sbc_model],sbc_data); @@ -942,9 +944,9 @@ module case_bottom(case_design) { translate([-wallthick-gap-adjust-6,depth-wallthick-gap-10, floorthick+3.4]) rotate([0,90,0]) cylinder(d=3, h=10+sidethick+(2*adjust)); - #translate([width-3.5-(2*wallthick)-gap-.6,depth-wallthick-gap-10, + translate([width-3.5-(2*wallthick)-gap-.6,depth-wallthick-gap-10, floorthick+3.4])rotate([90,0,90]) cylinder(d=6.6, h=3.5, $fn=6); - #translate([-gap+.6,depth-wallthick-gap-10,floorthick+3.4]) + translate([-gap+.6,depth-wallthick-gap-10,floorthick+3.4]) rotate([90,0,90]) cylinder(d=6.6, h=3.5, $fn=6); } else { @@ -1522,9 +1524,9 @@ module case_top(case_design) { } // snap top outdent difference() { - translate([-wallthick-.5+tol,(depth/2)-((depth*.75)/2)+2.5-gap-wallthick,case_z-.5]) + translate([-wallthick-gap+1.25+tol,(depth/2)-((depth*.75)/2)+2.5-gap-wallthick,case_z-.5]) rotate([0,45,0]) cube([4,(depth*.75)-5,4]); - translate([-.75,(depth/2)-((depth*.75)/2)+1.25-gap-wallthick,case_z+floorthick-5.75]) + translate([-wallthick-gap+3,(depth/2)-((depth*.75)/2)+1.25-gap-wallthick,case_z+floorthick-5.75]) rotate([0,0,0]) cube([6,(depth*.75)-2,6]); } difference() { @@ -2300,14 +2302,22 @@ module open_io() { cube([2,30,floorthick+(adjust*2)+12]); } } - if(side == "top" && cooling == "hex" && class == "heatsink" && type != "m1s_oem") { - translate([loc_x,loc_y-32,case_z-(floorthick+adjust)-6]) - vent_hex(11, 5, floorthick+(adjust*2)+12, 5, 1.5, "horizontal"); + if(side == "top" && cooling == "hex_5mm" && class == "heatsink" && type != "m1s_oem") { + translate([loc_x+2,loc_y-27,case_z-(floorthick+adjust)-6]) + vent_hex(15, 7, floorthick+(adjust*2)+12, 5, 1.5, "horizontal"); } - if(side == "top" && cooling == "hex" && class == "heatsink" && type == "m1s_oem") { + if(side == "top" && cooling == "hex_8mm" && class == "heatsink" && type != "m1s_oem") { + translate([loc_x,loc_y-31,case_z-(floorthick+adjust)-6]) + vent_hex(11, 5, floorthick+(adjust*2)+12, 8, 1.5, "horizontal"); + } + if(side == "top" && cooling == "hex_5mm" && class == "heatsink" && type == "m1s_oem") { translate([loc_x-8,loc_y,case_z-(floorthick+adjust)-6]) vent_hex(15, 7, floorthick+(adjust*2)+12, 5, 1.5, "horizontal"); } + if(side == "top" && cooling == "hex_8mm" && class == "heatsink" && type == "m1s_oem") { + translate([loc_x-8,loc_y,case_z-(floorthick+adjust)-6]) + vent_hex(11, 5, floorthick+(adjust*2)+12, 8, 1.5, "horizontal"); + } if(side == "top" && cooling == "custom" && class == "heatsink") { translate([loc_x+6,loc_y-14,case_z-(floorthick+adjust)]) linear_extrude(height = wallthick+(2*adjust)+12) import(file = "./dxf/customfan.dxf"); diff --git a/sbc_case_builder_accessories.cfg b/sbc_case_builder_accessories.cfg index 779e1fe..bb07e36 100644 --- a/sbc_case_builder_accessories.cfg +++ b/sbc_case_builder_accessories.cfg @@ -486,32 +486,62 @@ accessory_data = [ ["m1s_shell", "sub","vent_hex",10,29,-1,"bottom",[0,0,0],["sbc",true,true,false],21,5,8,5,1.5,"horizontal",1, // vent opening "sub","rectangle",73.5,5.5,3.5,"top",[0,0,45],["sbc",true,true,true],11,3,15,0,0,"vertical",[1,1,1,1], // standoff trim - "sub","rectangle",5.5,56,3.5,"top",[0,0,0],["sbc",true,true,true],3,11,15,0,0,"vertical",[1,1,1,1], // standoff trim - "sub","rectangle",81.5,56,3.5,"top",[0,0,0],["sbc",true,true,true],3,11,15,0,0,"vertical",[1,1,1,1], // standoff trim - "sub","rectangle",17.5,12,3.5,"top",[0,0,0],["sbc",true,true,true],11,3,15,0,0,"vertical",[1,1,1,1]], // standoff trim + "sub","rectangle",5.5,56,3.5,"top",[0,0,0],["sbc-case_z",true,true,true],3,11,15,0,0,"vertical",[1,1,1,1], // standoff trim + "sub","rectangle",81.5,56,3.5,"top",[0,0,0],["sbc-case_z",true,true,true],3,11,15,0,0,"vertical",[1,1,1,1], // standoff trim + "sub","rectangle",17.5,12,3.5,"top",[0,0,0],["sbc-case_z",true,true,true],11,3,15,0,0,"vertical",[1,1,1,1]], // standoff trim + + ["m1s_shell_nvme", + "add1","access_port",-7.5,28,-0.01,"bottom",[0,0,0],["sbc",true,true,false],105,30,1.5,0,0,"landscape",0, // access port + "model","access_cover",-7.5,28,-0.01,"bottom",[0,0,0],["sbc",true,true,false],105,30,1.5,0,0,"landscape",0, // access port cover + "platter","access_cover",-20,0,0,"bottom",[0,0,90],["case",false,false,false],105,30,1.5,0,0,"landscape",0, // access port cover + "sub","vent_hex",37,5,-1,"bottom",[0,0,0],["sbc",false,false,false],11,3,5,5,1.5,"horizontal",1, // vent opening + "sub","vent_hex",0,5,-1,"bottom",[0,0,0],["sbc",false,false,false],7,3,5,5,1.5,"horizontal",1, // vent opening + "sub","vent_hex",87,5,-1,"bottom",[0,0,0],["sbc",false,false,false],3,3,5,5,1.5,"horizontal",1, // vent opening + "sub","vent_hex",21,60,-1,"bottom",[0,0,0],["sbc",false,false,false],20,1,5,5,1.5,"horizontal",1, // vent opening + "sub","rectangle",73.5,5.5,3.5,"top",[0,0,45],["sbc-case_z",true,true,true],11,3,15,0,0,"vertical",[1,1,1,1], // standoff trim + "sub","rectangle",5.5,56,3.5,"top",[0,0,0],["sbc-case_z",true,true,true],3,11,15,0,0,"vertical",[1,1,1,1], // standoff trim + "sub","rectangle",81.5,56,3.5,"top",[0,0,0],["sbc-case_z",true,true,true],3,11,15,0,0,"vertical",[1,1,1,1], // standoff trim + "sub","rectangle",17.5,12,3.5,"top",[0,0,0],["sbc-case_z",true,true,true],11,3,15,0,0,"vertical",[1,1,1,1]], // standoff trim ["m1s_shell_ups", - "sub","vent_hex",0,5,26,"top",[0,0,0],["case",false,false,false],9,21,8,5,1.5,"horizontal",1, // vent opening - "model","hk_m1s_ups",-1,122.5,5,"bottom",[0,0,270],["sbc",false,false,false],0,0,0,0,0,"",0, // model 2.5 hd - "sub","slot",-55,17.5,7.25,"bottom",[90,0,90],["sbc",true,true,true],3.75,6.125,12,0,0,"",[.25,.25,.25,.25], // usb-c adjustment + "sub","vent_hex",0,5,17,"top",[0,0,0],["case",false,false,true],9,21,8,5,1.5,"horizontal",1, // vent opening + "model","hk_m1s_ups",-1,122.5,5,"bottom",[0,0,270],["sbc",false,false,false],0,0,0,0,0,"",0, // hk m1s ups + "sub","slot",-45,17.5,8.5,"bottom",[90,0,90],["sbc",true,true,true],4.25,6.125,12,0,0,"",[.25,.25,.25,.25], // usb-c opening "add2","standoff",2.5,11,0,"bottom",[0,0,0],["sbc",false,false,false],0,0,0,0,0,0,[5.75,5,3.6,10,4,1,0,0,0,4.5,5.1], // standoff "add2","standoff",27.5,11,0,"bottom",[0,0,0],["sbc",false,false,false],0,0,0,0,0,0,[5.75,5,3.6,10,4,1,0,0,0,4.5,5.1], // standoff "add2","standoff",2.5,119,0,"bottom",[0,0,0],["sbc",false,false,false],0,0,0,0,0,0,[5.75,5,3.6,10,4,1,0,0,0,4.5,5.1], // standoff "add2","standoff",27.5,119,0,"bottom",[0,0,0],["sbc",false,false,false],0,0,0,0,0,0,[5.75,5,3.6,10,4,1,0,0,0,4.5,5.1], // standoff - "add1","access_port",-12,16.25,-0.01,"bottom",[0,0,180],["sbc",true,true,false],102,40,2,0,0,"landscape",0, // access port - "model","access_cover",-12,16.25,-0.01,"bottom",[0,0,180],["sbc",true,true,false],102,40,2,0,0,"landscape",0, // access port cover - "platter","access_cover",-88,16.25,0,"bottom",[0,0,0],["case",false,false,false],102,40,2,0,0,"landscape",0, // access port cover - "add2","button",-43.25,33.5,20,"top",[0,0,0],["sbc-case_z",true,true,true],10,0,15.5,0,0,"recess",0, // button - "model","button_top",-43.25,33.5,20,"top",[0,0,0],["sbc-case_z",true,true,true],10,0,15.5,0,0,"recess",0, // button top - "platter","button_top",-20,0,0,"top",[0,0,0],["case",false,false,false],10,0,15.5,0,0,"recess",0, // button top + "add1","access_port",-4,28,-0.01,"bottom",[0,0,0],["sbc",true,true,false],105,30,2,0,0,"landscape",0, // access port + "model","access_cover",-4,28,-0.01,"bottom",[0,0,0],["sbc",true,true,false],105,30,2,0,0,"landscape",0, // access port cover + "platter","access_cover",-10,16.25,0,"bottom",[0,0,90],["case",false,false,false],105,30,2,0,0,"landscape",0, // access port cover + "add2","button",2,33.5,21,"top",[0,0,0],["sbc-case_z",false,false,true],10,0,23.5,0,0,"recess",0, // button + "model","button_top",2,33.5,21,"top",[0,0,0],["sbc-case_z",false,false,true],10,0,23.5,0,0,"recess",0, // button top + "platter","button_top",-20,0,0,"top",[0,0,0],["case",false,false,false],10,0,23.5,0,0,"recess",0, // button top "sub","rectangle",73.5,5.5,3.5,"top",[0,0,45],["sbc",true,true,true],11,3,15,0,0,"vertical",[1,1,1,1], // standoff trim "sub","rectangle",5.5,56,3.5,"top",[0,0,0],["sbc",true,true,true],3,11,15,0,0,"vertical",[1,1,1,1], // standoff trim "sub","rectangle",81.5,56,3.5,"top",[0,0,0],["sbc",true,true,true],3,11,15,0,0,"vertical",[1,1,1,1], // standoff trim "sub","rectangle",17.5,12,3.5,"top",[0,0,0],["sbc",true,true,true],11,3,15,0,0,"vertical",[1,1,1,1]], // standoff trim + + ["m1s_panel", + "sub","vent_hex",10,29,-1,"bottom",[0,0,0],["sbc",true,true,false],21,5,8,5,1.5,"horizontal",1], // vent opening -// "add2","uart_holder",100,0,1.9,"bottom",[0,0,0],["case",false,false,false],10,10,0,0,0,"",0, // add uart holder -// "model","uart_strap",100,0,2,"bottom",[0,0,0],["case",false,false,false],0,0,0,0,0,"",0, // hk uart strap -// "model","hk_uart",70,0,5,"bottom",[0,0,270],["case",true,true,false],0,0,0,0,0,"",0, // model 2.5 hd + ["m1s_tray_nvme", + "add1","access_port",-12,26.25,-0.01,"bottom",[0,0,180],["sbc",true,true,false],102,30,2,0,0,"landscape",0, // access port + "model","access_cover",-12,26.25,-0.01,"bottom",[0,0,180],["sbc",true,true,false],102,30,2,0,0,"landscape",0, // access port cover + "platter","access_cover",-88,26.25,0,"bottom",[0,0,0],["case",false,false,false],102,30,2,0,0,"landscape",0, // access port cover + "sub","vent_hex",30,5,-1,"bottom",[0,0,0],["sbc",true,true,false],11,3,5,5,1.5,"horizontal",1, // vent opening + "sub","vent_hex",-10,5,-1,"bottom",[0,0,0],["sbc",true,true,false],7,3,5,5,1.5,"horizontal",1, // vent opening + "sub","vent_hex",79,5,-1,"bottom",[0,0,0],["sbc",true,true,false],3,3,5,5,1.5,"horizontal",1, // vent opening + "sub","rectangle",73.5,5.5,3.5,"top",[0,0,45],["sbc",true,true,true],11,3,15,0,0,"vertical",[1,1,1,1], // standoff trim + "sub","rectangle",5.5,56,3.5,"top",[0,0,0],["sbc",true,true,true],3,11,15,0,0,"vertical",[1,1,1,1], // standoff trim + "sub","rectangle",81.5,56,3.5,"top",[0,0,0],["sbc",true,true,true],3,11,15,0,0,"vertical",[1,1,1,1], // standoff trim + "sub","rectangle",17.5,12,3.5,"top",[0,0,0],["sbc",true,true,true],11,3,15,0,0,"vertical",[1,1,1,1]], // standoff trim + + ["m1s_snap", + "sub","vent_hex",10,29,-1,"bottom",[0,0,0],["sbc",true,true,false],21,5,8,5,1.5,"horizontal",1], // vent opening + + ["m1s_fitted", + "sub","vent_hex",10,29,-1,"bottom",[0,0,0],["sbc",true,true,false],21,5,8,5,1.5,"horizontal",1], // vent opening // Odroid-M1 ["m1_panel", diff --git a/sbc_case_builder_library.scad b/sbc_case_builder_library.scad index bbe9d9a..6f0b339 100644 --- a/sbc_case_builder_library.scad +++ b/sbc_case_builder_library.scad @@ -55,9 +55,9 @@ added nut_holder(nut, style, dia_x, dia_y, height), fixed access_port and access_cover 180 rotation in portrait and landscape, added h3_port_extender_holder(part,offset), cableholder_spacer() 20231115 Version 2.0.5 added hex vent and new component openings - 2023xxxx Version 2.0.x added vu8s, hk_m1s_case_holes, hk_m1s_ups(), proto_m1s(), proto_ups(), battery_clip(bat_dia = 18.4), + 20231211 Version 2.0.6 added vu8s, hk_m1s_case_holes, hk_m1s_ups(), proto_m1s(), proto_ups(), battery_clip(bat_dia = 18.4), battery(type), pcb_pad(pads = 1, style = "round"), led(ledcolor = "red"), m_insert(type="M3", icolor = "#ebdc8b"), - usbc() + usbc(). see https://github.com/hominoids/SBC_Case_Builder diff --git a/stl/header_2x5_90.stl b/stl/header_2x5_90.stl deleted file mode 100644 index cca7a7e..0000000 Binary files a/stl/header_2x5_90.stl and /dev/null differ diff --git a/stl/header_f_2x12_90.stl b/stl/header_f_2x12_90.stl deleted file mode 100644 index dec63ec..0000000 Binary files a/stl/header_f_2x12_90.stl and /dev/null differ