diff --git a/README.md b/README.md index a0a8303..dd8ac92 100644 --- a/README.md +++ b/README.md @@ -76,7 +76,7 @@ An array holds a string and 3 Boolean that represent which association and axis ### Accuracy In the past there was been no way of validating whether a SBC Model Framework model and it’s components were dimensionaly accurate in their size and placement other then trial and error. Along with producing cases this project provides a much needed model validation tool to assure model accuracy thru the use of test cases. It works on the very simple premise that if the real SBC fits the test case then the virtual model is accurate or otherwise shows were corrections are needed. This will further increased the overall accuracy of models. -There are currently 47 SBC represented by 43 models, from 8 manufactures in SBC Model Framework. Some SBC in SBC Model Framework have not been validated or may be missing component data and may produce one or more aspects of a case incorrectly. SBC status is noted in sbc.png, the README.md file and at the beginning of the SBC entry defined in sbc_models.cfg, all a part of SBC Model Framework. The color coded indicator of an SBC’s verification and completion as indicated in sbc.png is as follows: +There are currently 56 SBC represented by 52 models, from 10 manufactures in SBC Model Framework. Some SBC in SBC Model Framework have not been validated or may be missing component data and may produce one or more aspects of a case incorrectly. SBC status is noted in sbc.png, the README.md file and at the beginning of the SBC entry defined in sbc_models.cfg, all a part of SBC Model Framework. The color coded indicator of an SBC’s verification and completion as indicated in sbc.png is as follows: - GREEN = verified, complete and passes SBC Case Builder - YELLOW = unverified, mostlikely usable and/or missing minor information @@ -103,7 +103,7 @@ 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 423 +#### Current Case Count 431 ##### Hardkernel - 182 @@ -154,6 +154,8 @@ c4_tray_vu7, c4_shell_boombox, c4_panel_boombox, c4_deskboom_lcd3.5, c4_tray_boo **h64b** - 2 : h64b_shell, h64b_panel +**star64** - 1 : star64_shell + ##### Raspberry PI - 72 **RPIzero** - 9 : rpizero_shell, rpizero_panel, rpizero_stacked, rpizero_tray, rpizero_tray_sides, rpizero_round, rpizero_hex, rpizero_snap, rpizero_fitted @@ -222,6 +224,16 @@ c4_tray_vu7, c4_shell_boombox, c4_panel_boombox, c4_deskboom_lcd3.5, c4_tray_boo **OPI R1PlusLTS** - 9 : opir1plus_lts_shell, opir1plus_lts_panel, opir1plus_lts_stacked, opir1plus_lts_tray, opir1plus_lts_tray_sides, opir1plus_lts_round, opir1plus_lts_hex, opir1plus_lts_snap, opir1plus_lts_fitted +##### Sipeed - 1 + +**licheerv+dock** - 0 : + + +##### StarFive - 1 + +**visionfive2** - 7 : visionfive2_shell, visionfive2_panel, visionfive2_stacked, visionfive2_tray, visionfive2_tray_sides, visionfive2_snap, visionfive2_fitted + + ### Accessory Schema The schema for case accessories is documented in the beginning of the file sbc_case_builder_accessories.cfg. There is one fixed entry that is the accessory set name followed by an unlimited number of accessory entries each containing 15 entries. ``` diff --git a/SBC_Model_Framework b/SBC_Model_Framework index 1e671f7..bde4683 160000 --- a/SBC_Model_Framework +++ b/SBC_Model_Framework @@ -1 +1 @@ -Subproject commit 1e671f7853373df13d4d1c326da9cbd164bbb27f +Subproject commit bde4683b94bb376d9d511ae266b62fc5920214fd diff --git a/sbc_case_builder.json b/sbc_case_builder.json index 209449b..38ad9d9 100644 --- a/sbc_case_builder.json +++ b/sbc_case_builder.json @@ -477,7 +477,7 @@ "case_offset_x": "0", "case_offset_y": "0", "case_style": "none", - "cooling": "fan", + "cooling": "vents", "exhaust_vents": "vent", "fillet": "2", "floorthick": "2", @@ -534,7 +534,7 @@ "case_offset_x": "0", "case_offset_y": "0", "case_style": "sides", - "cooling": "fan", + "cooling": "vents", "exhaust_vents": "vent", "fillet": "2", "floorthick": "2", @@ -591,7 +591,7 @@ "case_offset_x": "40", "case_offset_y": "15", "case_style": "none", - "cooling": "fan", + "cooling": "vents", "exhaust_vents": "none", "fillet": "2", "floorthick": "2", @@ -648,7 +648,7 @@ "case_offset_x": "0", "case_offset_y": "0", "case_style": "vu5", - "cooling": "fan", + "cooling": "vents", "exhaust_vents": "vent", "fillet": "2", "floorthick": "2", @@ -705,7 +705,7 @@ "case_offset_x": "34", "case_offset_y": "0", "case_style": "vu7", - "cooling": "fan", + "cooling": "vents", "exhaust_vents": "vent", "fillet": "2", "floorthick": "2", @@ -1446,7 +1446,7 @@ "case_offset_x": "0", "case_offset_y": "0", "case_style": "none", - "cooling": "fan", + "cooling": "vents", "exhaust_vents": "vent", "fillet": "2", "floorthick": "2", @@ -1503,7 +1503,7 @@ "case_offset_x": "0", "case_offset_y": "0", "case_style": "sides", - "cooling": "fan", + "cooling": "vents", "exhaust_vents": "vent", "fillet": "2", "floorthick": "2", @@ -1560,7 +1560,7 @@ "case_offset_x": "40", "case_offset_y": "15", "case_style": "none", - "cooling": "fan", + "cooling": "vents", "exhaust_vents": "none", "fillet": "2", "floorthick": "2", @@ -1617,7 +1617,7 @@ "case_offset_x": "0", "case_offset_y": "0", "case_style": "vu5", - "cooling": "fan", + "cooling": "vents", "exhaust_vents": "vent", "fillet": "2", "floorthick": "2", @@ -1674,7 +1674,7 @@ "case_offset_x": "34", "case_offset_y": "0", "case_style": "vu7", - "cooling": "fan", + "cooling": "vents", "exhaust_vents": "vent", "fillet": "2", "floorthick": "2", @@ -2415,7 +2415,7 @@ "case_offset_x": "0", "case_offset_y": "0", "case_style": "none", - "cooling": "fan", + "cooling": "vents", "exhaust_vents": "vent", "fillet": "2", "floorthick": "2", @@ -2472,7 +2472,7 @@ "case_offset_x": "0", "case_offset_y": "0", "case_style": "sides", - "cooling": "fan", + "cooling": "vents", "exhaust_vents": "vent", "fillet": "2", "floorthick": "2", @@ -2529,7 +2529,7 @@ "case_offset_x": "40", "case_offset_y": "15", "case_style": "none", - "cooling": "fan", + "cooling": "vents", "exhaust_vents": "none", "fillet": "2", "floorthick": "2", @@ -2586,7 +2586,7 @@ "case_offset_x": "0", "case_offset_y": "0", "case_style": "vu5", - "cooling": "fan", + "cooling": "vents", "exhaust_vents": "vent", "fillet": "2", "floorthick": "2", @@ -2643,7 +2643,7 @@ "case_offset_x": "34", "case_offset_y": "0", "case_style": "vu7", - "cooling": "fan", + "cooling": "vents", "exhaust_vents": "vent", "fillet": "2", "floorthick": "2", @@ -3156,7 +3156,7 @@ "case_offset_x": "0", "case_offset_y": "0", "case_style": "none", - "cooling": "fan", + "cooling": "vents", "exhaust_vents": "vent", "fillet": "2", "floorthick": "2", @@ -3213,7 +3213,7 @@ "case_offset_x": "0", "case_offset_y": "0", "case_style": "sides", - "cooling": "fan", + "cooling": "vents", "exhaust_vents": "vent", "fillet": "0", "floorthick": "2", @@ -3270,7 +3270,7 @@ "case_offset_x": "0", "case_offset_y": "0", "case_style": "vu5", - "cooling": "fan", + "cooling": "vents", "exhaust_vents": "vent", "fillet": "0", "floorthick": "2", @@ -3327,7 +3327,7 @@ "case_offset_x": "34", "case_offset_y": "0", "case_style": "vu7", - "cooling": "fan", + "cooling": "vents", "exhaust_vents": "vent", "fillet": "0", "floorthick": "2", @@ -3783,7 +3783,7 @@ "case_offset_x": "0", "case_offset_y": "0", "case_style": "none", - "cooling": "fan", + "cooling": "vents", "exhaust_vents": "vent", "fillet": "2", "floorthick": "2", @@ -3840,7 +3840,7 @@ "case_offset_x": "0", "case_offset_y": "0", "case_style": "sides", - "cooling": "fan", + "cooling": "vents", "exhaust_vents": "vent", "fillet": "0", "floorthick": "2", @@ -3897,7 +3897,7 @@ "case_offset_x": "0", "case_offset_y": "0", "case_style": "vu5", - "cooling": "fan", + "cooling": "vents", "exhaust_vents": "vent", "fillet": "0", "floorthick": "2", @@ -3954,7 +3954,7 @@ "case_offset_x": "34", "case_offset_y": "0", "case_style": "vu7", - "cooling": "fan", + "cooling": "vents", "exhaust_vents": "vent", "fillet": "0", "floorthick": "2", @@ -7037,7 +7037,7 @@ "case_offset_x": "0", "case_offset_y": "0", "case_style": "none", - "cooling": "fan", + "cooling": "vents", "exhaust_vents": "vent", "fillet": "2", "floorthick": "2", @@ -7094,7 +7094,7 @@ "case_offset_x": "0", "case_offset_y": "0", "case_style": "sides", - "cooling": "fan", + "cooling": "vents", "exhaust_vents": "vent", "fillet": "2", "floorthick": "2", @@ -7151,7 +7151,7 @@ "case_offset_x": "10", "case_offset_y": "0", "case_style": "vu5", - "cooling": "fan", + "cooling": "vents", "exhaust_vents": "vent", "fillet": "2", "floorthick": "2", @@ -7208,7 +7208,7 @@ "case_offset_x": "45", "case_offset_y": "0", "case_style": "vu7", - "cooling": "fan", + "cooling": "vents", "exhaust_vents": "vent", "fillet": "2", "floorthick": "2", @@ -7550,7 +7550,7 @@ "case_offset_x": "0", "case_offset_y": "0", "case_style": "none", - "cooling": "fan", + "cooling": "vents", "exhaust_vents": "vent", "fillet": "2", "floorthick": "2", @@ -7607,7 +7607,7 @@ "case_offset_x": "0", "case_offset_y": "0", "case_style": "sides", - "cooling": "fan", + "cooling": "vents", "exhaust_vents": "vent", "fillet": "2", "floorthick": "2", @@ -7664,7 +7664,7 @@ "case_offset_x": "10", "case_offset_y": "0", "case_style": "vu5", - "cooling": "fan", + "cooling": "vents", "exhaust_vents": "vent", "fillet": "2", "floorthick": "2", @@ -7721,7 +7721,7 @@ "case_offset_x": "45", "case_offset_y": "0", "case_style": "vu7", - "cooling": "fan", + "cooling": "vents", "exhaust_vents": "vent", "fillet": "2", "floorthick": "2", @@ -8747,7 +8747,7 @@ "case_offset_x": "0", "case_offset_y": "0", "case_style": "none", - "cooling": "fan", + "cooling": "vents", "exhaust_vents": "none", "fillet": "2", "floorthick": "2", @@ -8804,7 +8804,7 @@ "case_offset_x": "0", "case_offset_y": "0", "case_style": "sides", - "cooling": "fan", + "cooling": "vents", "exhaust_vents": "none", "fillet": "3", "floorthick": "2", @@ -8861,7 +8861,7 @@ "case_offset_x": "0", "case_offset_y": "0", "case_style": "vu5", - "cooling": "fan", + "cooling": "vents", "exhaust_vents": "none", "fillet": "3", "floorthick": "2", @@ -8918,7 +8918,7 @@ "case_offset_x": "10", "case_offset_y": "0", "case_style": "vu7", - "cooling": "fan", + "cooling": "vents", "exhaust_vents": "none", "fillet": "3", "floorthick": "2", @@ -8975,7 +8975,7 @@ "case_offset_x": "0", "case_offset_y": "10", "case_style": "none", - "cooling": "fan", + "cooling": "vents", "exhaust_vents": "none", "fillet": "3", "floorthick": "2", @@ -9524,7 +9524,7 @@ "view": "model", "vu_rotation": "[15, 0, 0]", "wallthick": "2.5" - }, + }, "h3_ultimate2": { "$fn": "90", "accessory_highlight": "false", @@ -10002,7 +10002,7 @@ "case_offset_x": "0", "case_offset_y": "0", "case_style": "none", - "cooling": "fan", + "cooling": "vents", "exhaust_vents": "none", "fillet": "2", "floorthick": "2", @@ -10059,7 +10059,7 @@ "case_offset_x": "0", "case_offset_y": "0", "case_style": "sides", - "cooling": "fan", + "cooling": "vents", "exhaust_vents": "none", "fillet": "3", "floorthick": "2", @@ -10116,7 +10116,7 @@ "case_offset_x": "0", "case_offset_y": "0", "case_style": "vu5", - "cooling": "fan", + "cooling": "vents", "exhaust_vents": "none", "fillet": "3", "floorthick": "2", @@ -10173,7 +10173,7 @@ "case_offset_x": "10", "case_offset_y": "0", "case_style": "vu7", - "cooling": "fan", + "cooling": "vents", "exhaust_vents": "none", "fillet": "3", "floorthick": "2", @@ -10230,7 +10230,7 @@ "case_offset_x": "0", "case_offset_y": "10", "case_style": "none", - "cooling": "fan", + "cooling": "vents", "exhaust_vents": "none", "fillet": "3", "floorthick": "2", @@ -18071,7 +18071,7 @@ "vu_rotation": "[15, 0, 0]", "wallthick": "2" }, - "rockpi5b_shell": { + "rocki5b_shell": { "$fn": "90", "accessory_highlight": "false", "accessory_name": "rockpi5b", @@ -18112,7 +18112,7 @@ "sata_punchout": "false", "sbc_bottom_standoffs": "true", "sbc_highlight": "false", - "sbc_model": "rockpi5b", + "sbc_model": "rockpi5b-v1.42", "sbc_off": "false", "sbc_top_standoffs": "true", "sidethick": "0", @@ -18169,7 +18169,7 @@ "sata_punchout": "false", "sbc_bottom_standoffs": "true", "sbc_highlight": "false", - "sbc_model": "rockpi5b", + "sbc_model": "rockpi5b-v1.42", "sbc_off": "false", "sbc_top_standoffs": "false", "sidethick": "0", @@ -18226,7 +18226,7 @@ "sata_punchout": "false", "sbc_bottom_standoffs": "true", "sbc_highlight": "false", - "sbc_model": "rockpi5b", + "sbc_model": "rockpi5b-v1.42", "sbc_off": "false", "sbc_top_standoffs": "true", "sidethick": "0", @@ -18263,7 +18263,7 @@ "case_offset_x": "0", "case_offset_y": "0", "case_style": "none", - "cooling": "fan", + "cooling": "vents", "exhaust_vents": "vent", "fillet": "2", "floorthick": "2", @@ -18283,7 +18283,7 @@ "sata_punchout": "false", "sbc_bottom_standoffs": "true", "sbc_highlight": "false", - "sbc_model": "rockpi5b", + "sbc_model": "rockpi5b-v1.42", "sbc_off": "false", "sbc_top_standoffs": "false", "sidethick": "0", @@ -18320,7 +18320,7 @@ "case_offset_x": "0", "case_offset_y": "0", "case_style": "sides", - "cooling": "fan", + "cooling": "vents", "exhaust_vents": "vent", "fillet": "2", "floorthick": "2", @@ -18340,7 +18340,7 @@ "sata_punchout": "false", "sbc_bottom_standoffs": "true", "sbc_highlight": "false", - "sbc_model": "rockpi5b", + "sbc_model": "rockpi5b-v1.42", "sbc_off": "false", "sbc_top_standoffs": "false", "sidethick": "2", @@ -18397,7 +18397,7 @@ "sata_punchout": "false", "sbc_bottom_standoffs": "true", "sbc_highlight": "false", - "sbc_model": "rockpi5b", + "sbc_model": "rockpi5b-v1.42", "sbc_off": "false", "sbc_top_standoffs": "false", "sidethick": "1", @@ -18454,7 +18454,7 @@ "sata_punchout": "false", "sbc_bottom_standoffs": "true", "sbc_highlight": "false", - "sbc_model": "rockpi5b", + "sbc_model": "rockpi5b-v1.42", "sbc_off": "false", "sbc_top_standoffs": "false", "sidethick": "1", @@ -18511,7 +18511,7 @@ "sata_punchout": "false", "sbc_bottom_standoffs": "true", "sbc_highlight": "false", - "sbc_model": "rockpi5b", + "sbc_model": "rockpi5b-v1.42", "sbc_off": "false", "sbc_top_standoffs": "false", "sidethick": "1", @@ -18568,7 +18568,7 @@ "sata_punchout": "false", "sbc_bottom_standoffs": "true", "sbc_highlight": "false", - "sbc_model": "rockpi5b", + "sbc_model": "rockpi5b-v1.42", "sbc_off": "false", "sbc_top_standoffs": "false", "sidethick": "1", @@ -21341,7 +21341,7 @@ "case_offset_x": "0", "case_offset_y": "0", "case_style": "none", - "cooling": "fan", + "cooling": "vents", "exhaust_vents": "none", "fillet": "2", "floorthick": "2", @@ -21398,7 +21398,7 @@ "case_offset_x": "0", "case_offset_y": "0", "case_style": "sides", - "cooling": "fan", + "cooling": "vents", "exhaust_vents": "none", "fillet": "2", "floorthick": "2", @@ -21854,7 +21854,7 @@ "case_offset_x": "0", "case_offset_y": "0", "case_style": "none", - "cooling": "fan", + "cooling": "vents", "exhaust_vents": "none", "fillet": "2", "floorthick": "2", @@ -21911,7 +21911,7 @@ "case_offset_x": "0", "case_offset_y": "0", "case_style": "sides", - "cooling": "fan", + "cooling": "vents", "exhaust_vents": "none", "fillet": "2", "floorthick": "2", @@ -22367,7 +22367,7 @@ "case_offset_x": "0", "case_offset_y": "0", "case_style": "none", - "cooling": "fan", + "cooling": "vents", "exhaust_vents": "none", "fillet": "2", "floorthick": "2", @@ -22424,7 +22424,7 @@ "case_offset_x": "0", "case_offset_y": "0", "case_style": "sides", - "cooling": "fan", + "cooling": "vents", "exhaust_vents": "none", "fillet": "2", "floorthick": "2", @@ -22880,7 +22880,7 @@ "case_offset_x": "0", "case_offset_y": "0", "case_style": "none", - "cooling": "fan", + "cooling": "vents", "exhaust_vents": "none", "fillet": "2", "floorthick": "2", @@ -22937,7 +22937,7 @@ "case_offset_x": "0", "case_offset_y": "0", "case_style": "sides", - "cooling": "fan", + "cooling": "vents", "exhaust_vents": "none", "fillet": "2", "floorthick": "2", @@ -24397,6 +24397,412 @@ "view": "model", "vu_rotation": "[15, 0, 0]", "wallthick": "2" + }, + "visionfive2_shell": { + "$fn": "90", + "accessory_highlight": "false", + "accessory_name": "visonfive2_shell", + "adjust": "0.01", + "bottom_ext_standoff": "[5.75, 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": "[5.75, 7, 3.6, 10, 4, 1, 0, 0, 0, 4.5, 5.1]", + "c_fillet": "3", + "case_design": "shell", + "case_ext_standoffs": "false", + "case_ffn": "90", + "case_fn": "360", + "case_offset_bz": "3", + "case_offset_tz": "0", + "case_offset_x": "0", + "case_offset_y": "0", + "case_style": "none", + "cooling": "fan", + "exhaust_vents": "none", + "fillet": "0", + "floorthick": "2", + "gap": "1", + "gpio_opening": "vent", + "indents": "true", + "individual_part": "bottom", + "lip": "5", + "lower_bottom": "0", + "move_front": "0", + "move_leftside": "0", + "move_rear": "0", + "move_rightside": "0", + "pcb_loc_x": "0", + "pcb_loc_y": "0", + "pcb_loc_z": "0", + "raise_top": "0", + "sata_punchout": "false", + "sbc_bottom_standoffs": "true", + "sbc_highlight": "false", + "sbc_model": "visionfive2", + "sbc_off": "false", + "sbc_top_standoffs": "true", + "sidethick": "2", + "sidewall_support": "true", + "tol": "0.25", + "top_ext_standoff": "[5.75, 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": "[5.75, 18, 2.5, 10, 4, 4, 0, 1, 0, 4.5, 5.1]", + "view": "model", + "vu_rotation": "[15, 0, 0]", + "wallthick": "2" + }, + "visionfive2_panel": { + "$fn": "90", + "accessory_highlight": "false", + "accessory_name": "visonfive2_panel", + "adjust": "0.01", + "bottom_ext_standoff": "[5.75, 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": "[5.75, 7, 3.6, 10, 4, 1, 0, 0, 0, 4.5, 5.1]", + "c_fillet": "3", + "case_design": "panel", + "case_ext_standoffs": "false", + "case_ffn": "90", + "case_fn": "360", + "case_offset_bz": "3", + "case_offset_tz": "0", + "case_offset_x": "0", + "case_offset_y": "0", + "case_style": "none", + "cooling": "fan", + "exhaust_vents": "none", + "fillet": "0", + "floorthick": "2", + "gap": "1", + "gpio_opening": "vent", + "indents": "true", + "individual_part": "bottom", + "lip": "5", + "lower_bottom": "0", + "move_front": "0", + "move_leftside": "0", + "move_rear": "0", + "move_rightside": "0", + "pcb_loc_x": "0", + "pcb_loc_y": "0", + "pcb_loc_z": "0", + "raise_top": "0", + "sata_punchout": "false", + "sbc_bottom_standoffs": "true", + "sbc_highlight": "false", + "sbc_model": "visionfive2", + "sbc_off": "false", + "sbc_top_standoffs": "false", + "sidethick": "2", + "sidewall_support": "false", + "tol": "0.25", + "top_ext_standoff": "[5.75, 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": "[5.75, 18, 2.5, 10, 4, 4, 0, 1, 0, 4.5, 5.1]", + "view": "model", + "vu_rotation": "[15, 0, 0]", + "wallthick": "2" + }, + "visionfive2_stacked": { + "$fn": "90", + "accessory_highlight": "false", + "accessory_name": "visonfive2_stacked", + "adjust": "0.01", + "bottom_ext_standoff": "[5.75, 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": "[5.75, 7, 3.6, 8, 4, 1, 0, 0, 0, 4.5, 5.1]", + "c_fillet": "3", + "case_design": "stacked", + "case_ext_standoffs": "false", + "case_ffn": "90", + "case_fn": "360", + "case_offset_bz": "3", + "case_offset_tz": "0", + "case_offset_x": "0", + "case_offset_y": "0", + "case_style": "none", + "cooling": "fan", + "exhaust_vents": "none", + "fillet": "0", + "floorthick": "2", + "gap": "1", + "gpio_opening": "none", + "indents": "false", + "individual_part": "bottom", + "lip": "5", + "lower_bottom": "0", + "move_front": "0", + "move_leftside": "0", + "move_rear": "0", + "move_rightside": "0", + "pcb_loc_x": "0", + "pcb_loc_y": "0", + "pcb_loc_z": "0", + "raise_top": "0", + "sata_punchout": "false", + "sbc_bottom_standoffs": "true", + "sbc_highlight": "false", + "sbc_model": "visionfive2", + "sbc_off": "false", + "sbc_top_standoffs": "true", + "sidethick": "2", + "sidewall_support": "false", + "tol": "0.25", + "top_ext_standoff": "[5.75, 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": "[5.75, 18, 2.5, 8, 4, 4, 0, 1, 0, 4.5, 5.1]", + "view": "model", + "vu_rotation": "[15, 0, 0]", + "wallthick": "2" + }, + "visionfive2_tray": { + "$fn": "90", + "accessory_highlight": "false", + "accessory_name": "visonfive2_tray", + "adjust": "0.01", + "bottom_ext_standoff": "[5.75, 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": "[5.75, 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": "3", + "case_offset_tz": "0", + "case_offset_x": "0", + "case_offset_y": "0", + "case_style": "none", + "cooling": "vents", + "exhaust_vents": "none", + "fillet": "0", + "floorthick": "2", + "gap": "1", + "gpio_opening": "vent", + "indents": "true", + "individual_part": "bottom", + "lip": "5", + "lower_bottom": "0", + "move_front": "0", + "move_leftside": "0", + "move_rear": "0", + "move_rightside": "0", + "pcb_loc_x": "0", + "pcb_loc_y": "0", + "pcb_loc_z": "0", + "raise_top": "0", + "sata_punchout": "false", + "sbc_bottom_standoffs": "true", + "sbc_highlight": "false", + "sbc_model": "visionfive2", + "sbc_off": "false", + "sbc_top_standoffs": "false", + "sidethick": "2", + "sidewall_support": "true", + "tol": "0.25", + "top_ext_standoff": "[5.75, 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": "[5.75, 18, 2.5, 10, 4, 4, 0, 1, 0, 4.5, 5.1]", + "view": "model", + "vu_rotation": "[15, 0, 0]", + "wallthick": "2" + }, + "visionfive2_tray_sides": { + "$fn": "90", + "accessory_highlight": "false", + "accessory_name": "visonfive2_tray", + "adjust": "0.01", + "bottom_ext_standoff": "[5.75, 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": "[5.75, 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": "3", + "case_offset_tz": "0", + "case_offset_x": "0", + "case_offset_y": "0", + "case_style": "sides", + "cooling": "vents", + "exhaust_vents": "none", + "fillet": "0", + "floorthick": "2", + "gap": "1", + "gpio_opening": "vent", + "indents": "true", + "individual_part": "bottom", + "lip": "5", + "lower_bottom": "0", + "move_front": "0", + "move_leftside": "0", + "move_rear": "0", + "move_rightside": "0", + "pcb_loc_x": "0", + "pcb_loc_y": "0", + "pcb_loc_z": "0", + "raise_top": "0", + "sata_punchout": "false", + "sbc_bottom_standoffs": "true", + "sbc_highlight": "false", + "sbc_model": "visionfive2", + "sbc_off": "false", + "sbc_top_standoffs": "false", + "sidethick": "2", + "sidewall_support": "true", + "tol": "0.25", + "top_ext_standoff": "[5.75, 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": "[5.75, 18, 2.5, 10, 4, 4, 0, 1, 0, 4.5, 5.1]", + "view": "model", + "vu_rotation": "[15, 0, 0]", + "wallthick": "2" + }, + "visionfive2_snap": { + "$fn": "90", + "accessory_highlight": "false", + "accessory_name": "visonfive2_snap", + "adjust": "0.01", + "bottom_ext_standoff": "[5.75, 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": "[5.75, 7, 3.6, 10, 4, 1, 0, 0, 0, 4.5, 5.1]", + "c_fillet": "3", + "case_design": "snap", + "case_ext_standoffs": "false", + "case_ffn": "90", + "case_fn": "360", + "case_offset_bz": "3", + "case_offset_tz": "0", + "case_offset_x": "0", + "case_offset_y": "0", + "case_style": "none", + "cooling": "fan", + "exhaust_vents": "none", + "fillet": "0", + "floorthick": "2", + "gap": "2", + "gpio_opening": "vent", + "indents": "true", + "individual_part": "bottom", + "lip": "5", + "lower_bottom": "0", + "move_front": "0", + "move_leftside": "0", + "move_rear": "0", + "move_rightside": "0", + "pcb_loc_x": "0", + "pcb_loc_y": "0", + "pcb_loc_z": "0", + "raise_top": "0", + "sata_punchout": "false", + "sbc_bottom_standoffs": "true", + "sbc_highlight": "false", + "sbc_model": "visionfive2", + "sbc_off": "false", + "sbc_top_standoffs": "false", + "sidethick": "2", + "sidewall_support": "true", + "tol": "0.25", + "top_ext_standoff": "[5.75, 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": "[5.75, 18, 2.5, 10, 4, 4, 0, 1, 0, 4.5, 5.1]", + "view": "model", + "vu_rotation": "[15, 0, 0]", + "wallthick": "2" + }, + "visionfive2_fitted": { + "$fn": "90", + "accessory_highlight": "false", + "accessory_name": "visonfive2_fitted", + "adjust": "0.01", + "bottom_ext_standoff": "[5.75, 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": "[5.75, 7, 3.6, 10, 4, 1, 0, 0, 0, 4.5, 5.1]", + "c_fillet": "3", + "case_design": "fitted", + "case_ext_standoffs": "false", + "case_ffn": "90", + "case_fn": "360", + "case_offset_bz": "3", + "case_offset_tz": "0", + "case_offset_x": "0", + "case_offset_y": "0", + "case_style": "none", + "cooling": "fan", + "exhaust_vents": "none", + "fillet": "0", + "floorthick": "2", + "gap": "2", + "gpio_opening": "vent", + "indents": "true", + "individual_part": "bottom", + "lip": "5", + "lower_bottom": "0", + "move_front": "0", + "move_leftside": "0", + "move_rear": "0", + "move_rightside": "0", + "pcb_loc_x": "0", + "pcb_loc_y": "0", + "pcb_loc_z": "0", + "raise_top": "0", + "sata_punchout": "false", + "sbc_bottom_standoffs": "true", + "sbc_highlight": "false", + "sbc_model": "visionfive2", + "sbc_off": "false", + "sbc_top_standoffs": "false", + "sidethick": "2", + "sidewall_support": "true", + "tol": "0.25", + "top_ext_standoff": "[5.75, 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": "[5.75, 18, 2.5, 10, 4, 4, 0, 1, 0, 4.5, 5.1]", + "view": "model", + "vu_rotation": "[15, 0, 0]", + "wallthick": "2" } }, "fileFormatVersion": "1" diff --git a/sbc_case_builder.scad b/sbc_case_builder.scad index a53c8d4..94ce866 100644 --- a/sbc_case_builder.scad +++ b/sbc_case_builder.scad @@ -48,6 +48,7 @@ 2023xxxx Version 2.0.x fixed standoff sidewall support misplacement on sbc move, fixed standoff auto opening z height, fixed case top right side standoffs support, fixed access_port and access_cover 180 rotation in portrait and landscape, + adjusted jack_3.5 and hdmi_a_vertical opening see https://github.com/hominoids/SBC_Case_Builder */ @@ -87,7 +88,7 @@ case_design = "shell"; // [shell,panel,stacked,tray,round,hex,snap,fitted] // base case style case_style = "none"; // ["none","vu5","vu7","sides"] // single board computer model -sbc_model = "c1+"; // ["c1+", "c2", "c4", "xu4", "xu4q", "mc1", "hc1", "n1", "n2", "n2+", "n2+_noheatsink", "n2l", "n2lq", "m1", "m1_noheatsink", "h2", "h3", "hc4", "show2", "rpizero", "rpizero2w", "rpi1a+", "rpi1b+", "rpi3a+", "rpi3b", "rpi3b+", "rpi4b", "a64", "rock64", "rockpro64", "quartz64a", "quartz64b", "h64b", "star64", "atomicpi", "jetsonnano", "rockpi4b+", "rockpi4c", "rockpi4c+", "rockpi5b", "vim1", "vim2", "vim3", "vim3l", "vim4", "tinkerboard", "tinkerboard-s", "tinkerboard-2", "tinkerboard-r2", "opizero", "opizero2", "opir1plus_lts", "licheerv+dock", "test"] +sbc_model = "c1+"; // ["c1+", "c2", "c4", "xu4", "xu4q", "mc1", "hc1", "n1", "n2", "n2+", "n2+_noheatsink", "n2l", "n2lq", "m1", "m1_noheatsink", "h2", "h3", "hc4", "show2", "rpizero", "rpizero2w", "rpi1a+", "rpi1b+", "rpi3a+", "rpi3b", "rpi3b+", "rpi4b", "a64", "rock64", "rockpro64", "quartz64a", "quartz64b", "h64b", "star64", "atomicpi", "jetsonnano", "rockpi4b+", "rockpi4c", "rockpi4c+", "rockpi5b-v1.3", "rockpi5b-v1.42", "vim1", "vim2", "vim3", "vim3l", "vim4", "tinkerboard", "tinkerboard-s", "tinkerboard-2", "tinkerboard-r2", "opizero", "opizero2", "opir1plus_lts", "licheerv+dock", "visionfive2"] // sbc location x axis pcb_loc_x = 0; //[0:.5:300] // sbc location y axis @@ -168,7 +169,7 @@ cooling = "fan"; // [none,vents,fan,custom] exhaust_vents = "vent"; // [none,vent] // case accessory group to load -accessory_name = "none"; // ["none", "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", "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", "rockpi4b+_shell", "rockpi4b+_panel", "rockpi4b+_stacked", "rockpi4b+_tray", "rockpi4b+_tray_sides", "rockpi4b+_round", "rockpi4b+_hex", "rockpi4b+_snap", "rockpi4b+_fitted", "rockpi4c_shell", "rockpi4c_panel", "rockpi4c_stacked", "rockpi4c_tray", "rockpi4c_tray_sides", "rockpi4c_round", "rockpi4c_hex", "rockpi4c_snap", "rockpi4c_fitted", "rockpi4c+_shell", "rockpi4c+_panel", "rockpi4c+_stacked", "rockpi4c+_tray", "rockpi4c+_tray_sides", "rockpi4c+_round", "rockpi4c+_hex", "rockpi4c+_snap", "rockpi4c+_fitted", "rockpi5b", "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", "hk_uart"] +accessory_name = "none"; // ["none", "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", "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", "rockpi4b+_shell", "rockpi4b+_panel", "rockpi4b+_stacked", "rockpi4b+_tray", "rockpi4b+_tray_sides", "rockpi4b+_round", "rockpi4b+_hex", "rockpi4b+_snap", "rockpi4b+_fitted", "rockpi4c_shell", "rockpi4c_panel", "rockpi4c_stacked", "rockpi4c_tray", "rockpi4c_tray_sides", "rockpi4c_round", "rockpi4c_hex", "rockpi4c_snap", "rockpi4c_fitted", "rockpi4c+_shell", "rockpi4c+_panel", "rockpi4c+_stacked", "rockpi4c+_tray", "rockpi4c+_tray_sides", "rockpi4c+_round", "rockpi4c+_hex", "rockpi4c+_snap", "rockpi4c+_fitted", "rockpi5b", "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", "visonfive2_shell", "visonfive2_panel", "visonfive2_stacked", "visonfive2_tray", "visonfive2_snap", "visonfive2_fitted", "hk_uart"] a = search([accessory_name],accessory_data); s = search([sbc_model],sbc_data); @@ -3124,34 +3125,34 @@ module indent(loc_x,loc_y,loc_z,rotation,side,class,type,wallthick,gap,floorthic // audio jack indent if(class == "audio" && type == "jack_3.5" && rotation == 0 && side == "top") { place(loc_x+3.15,-(wallthick+gap)+wallthick/2,loc_z+2,8,8,rotation,side) - rotate([90,0,0]) cylinder(d=8, h=wallthick); + rotate([90,0,0]) cylinder(d=10, h=wallthick); } if(class == "audio" && type == "jack_3.5" && rotation == 90 && side == "top") { place(-gap-wallthick/2,loc_y-4.6,loc_z+2,8,8,rotation,side) - rotate([90,0,0]) cylinder(d=8, h=wallthick); + rotate([90,0,0]) cylinder(d=10, h=wallthick); } if(class == "audio" && type == "jack_3.5" && rotation == 180 && side == "top") { place(loc_x-4.6,depth-(wallthick+gap)-8-wallthick/2,loc_z+2,8,8,rotation,side) - rotate([90,0,0]) cylinder(d=8, h=wallthick); + rotate([90,0,0]) cylinder(d=10, h=wallthick); } if(class == "audio" && type == "jack_3.5" && rotation == 270 && side == "top") { place(width-(wallthick+gap)-8-wallthick/2,loc_y+3.15,loc_z+2,8,8,rotation,side) - rotate([90,0,0]) cylinder(d=8, h=wallthick); + rotate([90,0,0]) cylinder(d=10, h=wallthick); } if(class == "audio" && type == "jack_3.5" && rotation == 0 && side == "bottom") { place(loc_x-4.6,-(wallthick+gap)+wallthick/2,loc_z-3.5,8,8,rotation,side) - rotate([90,0,0]) cylinder(d=8, h=wallthick); + rotate([90,0,0]) cylinder(d=10, h=wallthick); } if(class == "audio" && type == "jack_3.5" && rotation == 90 && side == "bottom") { place(width-(wallthick+gap)-8-wallthick/2,loc_y-4.6,loc_z-3.5,8,8,rotation,side) - rotate([90,0,0]) cylinder(d=8, h=wallthick); + rotate([90,0,0]) cylinder(d=10, h=wallthick); } if(class == "audio" && type == "jack_3.5" && rotation == 180 && side == "bottom") { place(loc_x+3.15,depth-(wallthick+gap)-8-wallthick/2,loc_z-3.5,8,8,rotation,side) - rotate([90,0,0]) cylinder(d=8, h=wallthick); + rotate([90,0,0]) cylinder(d=10, h=wallthick); } if(class == "audio" && type == "jack_3.5" && rotation == 270 && side == "bottom") { place(-gap-wallthick/2,loc_y+3.15,loc_z-3.5,8,8,rotation,side) - rotate([90,0,0]) cylinder(d=8, h=wallthick); + rotate([90,0,0]) cylinder(d=10, h=wallthick); } } diff --git a/sbc_case_builder_accessories.cfg b/sbc_case_builder_accessories.cfg index cab7e54..643baae 100644 --- a/sbc_case_builder_accessories.cfg +++ b/sbc_case_builder_accessories.cfg @@ -1677,6 +1677,45 @@ accessory_data = [ ["tinkerboard-r2_fitted", "sub","fan",10,10,25.5,"top",[0,0,0],["sbc-case_z",true,true,true],40,0,6,2,0,"",0], // sub fan opening + ["visonfive2_shell", + "sub","rectangle",89,9.25,11,"top",[0,0,0],["case",true,true,false],10,10,15,0,0,"vertical",[1,1,1,1], // sub fitting + "add1","round",11.25,-.5,10,"top",[0,0,0],["case",true,true,true],2,0,17,0,0,"",0, // wall support + "add1","round",29.75,-.5,10,"top",[0,0,0],["case",true,true,true],3,0,17,0,0,"",0, // wall support + "add1","round",50,-.5,10,"top",[0,0,0],["case",true,true,true],3,0,17,0,0,"",0, // wall support + "add1","round",60.875,-.5,10,"top",[0,0,0],["case",true,true,true],3,0,17,0,0,"",0, // wall support + "add1","round",81.125,-.5,10,"top",[0,0,0],["case",true,true,true],3,0,17,0,0,"",0, // wall support + "add1","access_port",10,0,-0.01,"bottom",[0,0,0],["sbc",true,true,false],80,75,2,0,0,"portrait",0, // access port + "model","access_cover",10,0,-0.01,"bottom",[0,0,0],["sbc",true,true,false],80,75,2,0,0,"portrait",0, // model access port cover + "platter","access_cover",-110,30,0,"bottom",[0,0,0],["case",false,false,false],80,75,2,0,0,"portrait",0], // platter access port cover + + ["visonfive2_panel", + "add1","access_port",10,0,-0.01,"bottom",[0,0,0],["sbc",true,true,false],80,75,2,0,0,"portrait",0, // access port + "model","access_cover",10,0,-0.01,"bottom",[0,0,0],["sbc",true,true,false],80,75,2,0,0,"portrait",0, // model access port cover + "platter","access_cover",-110,30,0,"bottom",[0,0,0],["case",false,false,false],80,75,2,0,0,"portrait",0], // platter access port cover + + ["visonfive2_stacked", + "sub","rectangle",89,9.25,11,"top",[0,0,0],["case",true,true,false],10,10,15,0,0,"vertical",[1,1,1,1]], // sub fitting + + ["visonfive2_tray", + "add1","round",11.25,-.5,9,"bottom",[0,0,0],["case",true,true,true],2,0,17,0,0,"",0, // wall support + "add1","round",29.75,-.5,9,"bottom",[0,0,0],["case",true,true,true],3,0,17,0,0,"",0, // wall support + "add1","round",50,-.5,9,"bottom",[0,0,0],["case",true,true,true],3,0,17,0,0,"",0, // wall support + "add1","round",60.875,-.5,9,"bottom",[0,0,0],["case",true,true,true],3,0,17,0,0,"",0, // wall support + "add1","round",81.125,-.5,9,"bottom",[0,0,0],["case",true,true,true],3,0,17,0,0,"",0, // wall support + "add1","access_port",10,0,-0.01,"bottom",[0,0,0],["sbc",true,true,false],80,75,2,0,0,"portrait",0, // access port + "model","access_cover",10,0,-0.01,"bottom",[0,0,0],["sbc",true,true,false],80,75,2,0,0,"portrait",0, // model access port cover + "platter","access_cover",-110,30,0,"bottom",[0,0,0],["case",false,false,false],80,75,2,0,0,"portrait",0], // platter access port cover + + ["visonfive2_snap", + "add1","access_port",10,0,-0.01,"bottom",[0,0,0],["sbc",true,true,false],80,75,2,0,0,"portrait",0, // access port + "model","access_cover",10,0,-0.01,"bottom",[0,0,0],["sbc",true,true,false],80,75,2,0,0,"portrait",0, // model access port cover + "platter","access_cover",-110,30,0,"bottom",[0,0,0],["case",false,false,false],80,75,2,0,0,"portrait",0], // platter access port cover + + ["visonfive2_fitted", + "add1","access_port",10,0,-0.01,"bottom",[0,0,0],["sbc",true,true,false],80,75,2,0,0,"portrait",0, // access port + "model","access_cover",10,0,-0.01,"bottom",[0,0,0],["sbc",true,true,false],80,75,2,0,0,"portrait",0, // model access port cover + "platter","access_cover",-110,30,0,"bottom",[0,0,0],["case",false,false,false],80,75,2,0,0,"portrait",0], // platter access port cover + // hk uart group ["hk_uart", "add2","uart_holder",-25,0,1.9,"bottom",[0,0,0],["sbc",true,false,false],10,10,0,0,0,"",0, // add uart holder diff --git a/sbc_case_builder_library.scad b/sbc_case_builder_library.scad index e6f86af..c1916fd 100644 --- a/sbc_case_builder_library.scad +++ b/sbc_case_builder_library.scad @@ -2061,7 +2061,7 @@ module audio_jack35() { union() { color("dimgray") cube([size_x,size_y,3]); color("dimgray") cube([size_x,5.6,4]); - color("dimgray") translate([size_x/2,0,2.25]) rotate([-90,0,0]) cylinder(d=4, h=size_y); + color("dimgray") translate([size_x/2,0,2.25]) rotate([-90,0,0]) cylinder(d=6, h=size_y); } color("gray") translate([size_x/2,0,2.25]) rotate([-90,0,0]) cylinder(d=3, h=size_y+adjust); } @@ -2659,7 +2659,7 @@ module fan_mask(size, thick, style) { } translate([6.5,5,-2]) rotate([0,0,45]) cube([size,2,thick+4]); translate([4.5,size-6,-2]) rotate([0,0,-45]) cube([size,2,thick+4]); - } + } } if(style == 2 && size == 60) { difference() { @@ -2700,7 +2700,7 @@ module fan_mask(size, thick, style) { } translate([9.5,8,-2]) rotate([0,0,45]) cube([size,2,thick+4]); translate([8.5,size-10,-2]) rotate([0,0,-45]) cube([size,2,thick+4]); - } + } } if(style == 2 && size >= 80) { difference() { @@ -2747,7 +2747,7 @@ module fan_mask(size, thick, style) { } translate([6.5,4.25,-2]) rotate([0,0,45]) cube([size*1.2,3,thick+4]); translate([4.25,size-6.5,-2]) rotate([0,0,-45]) cube([size*1.2,3,thick+4]); - } + } } if(style == 3) { inner = size == 30 ? 24 : @@ -2826,16 +2826,16 @@ module mask(loc_x,loc_y,loc_z,rotation,side,class,type,wallthick,gap,floorthick, } // hdmi vertical opening if(type == "hdmi_a_vertical" && side == "top" && rotation == 0) { - place(loc_x-.5,loc_y,loc_z,15,11.5,rotation,side) translate([-.25,0,15.4]) rotate([0,90,0]) hdmi_open("hdmi_a"); + place(loc_x-.5,loc_y,loc_z+1,15,11.5,rotation,side) translate([-.25,0,15.4]) rotate([0,90,0]) hdmi_open("hdmi_a"); } if(type == "hdmi_a_vertical" && side == "top" && rotation == 90) { - place(loc_x-1,loc_y,loc_z,15,11.5,rotation,side) translate([-.25,0,15.4]) rotate([0,90,0]) hdmi_open("hdmi_a"); + place(loc_x-1,loc_y,loc_z+.5,15,11.5,rotation,side) translate([-.25,0,15.4]) rotate([0,90,0]) hdmi_open("hdmi_a"); } if(type == "hdmi_a_vertical" && side == "top" && rotation == 180) { - place(loc_x,loc_y+1,loc_z,15,11.5,rotation,side) translate([-.25,0,15.4]) rotate([0,90,0]) hdmi_open("hdmi_a"); + place(loc_x,loc_y+1,loc_z+.5,15,11.5,rotation,side) translate([-.25,0,15.4]) rotate([0,90,0]) hdmi_open("hdmi_a"); } if(type == "hdmi_a_vertical" && side == "top" && rotation == 270) { - place(loc_x+1,loc_y-.5,loc_z,15,11.5,rotation,side) translate([-.25,0,15.4]) rotate([0,90,0]) hdmi_open("hdmi_a"); + place(loc_x+1,loc_y-.5,loc_z+.5,15,11.5,rotation,side) translate([-.25,0,15.4]) rotate([0,90,0]) hdmi_open("hdmi_a"); } // hdmi micro opening if(class == "video" && type == "hdmi_micro" && rotation == 0 && side == "top") { @@ -3133,6 +3133,22 @@ module mask(loc_x,loc_y,loc_z,rotation,side,class,type,wallthick,gap,floorthick, place(loc_x+9,loc_y,loc_z,16,17.5,rotation,side) cube([16.5,8,14]); } + if(type == "rj45_reverse_single" && rotation == 0) { + place(loc_x-.25,loc_y-6,loc_z,16,17.5,rotation,side) + cube([16.5,8,14]); + } + if(type == "rj45_reverse_single" && rotation == 90) { + place(loc_x-6,loc_y,loc_z,16,17.5,rotation,side) + cube([16.5,8,14]); + } + if(type == "rj45_reverse_single" && rotation == 180) { + place(loc_x,loc_y+10,loc_z,16,17.5,rotation,side) + cube([16.5,8,14]); + } + if(type == "rj45_reverse_single" && rotation == 270) { + place(loc_x+9,loc_y,loc_z,16,17.5,rotation,side) + cube([16.5,8,14]); + } // rj45 short opening if(type == "rj45_single_short" && rotation == 0) { place(loc_x,loc_y-6,loc_z,16,17.5,rotation,side) @@ -3420,58 +3436,58 @@ module mask(loc_x,loc_y,loc_z,rotation,side,class,type,wallthick,gap,floorthick, } // audio jack opening if(type == "jack_3.5" && rotation == 0 && side == "top") { - place(loc_x,loc_y,loc_z,7.5,7.5,rotation,side) + place(loc_x,loc_y,loc_z+.25,7.5,7.5,rotation,side) union() { - translate([3.15,2,2]) rotate([90,0,0]) cylinder(d=6, h=8); + translate([3.15,2,2]) rotate([90,0,0]) cylinder(d=7, h=8); translate([-.5,-.5,0]) cube([7.5,2.5,4.5]); } } if(type == "jack_3.5" && rotation == 90 && side == "top") { place(loc_x,loc_y,loc_z,7.5,7.5,rotation,side) union() { - translate([4.1,2,2]) rotate([90,0,0]) cylinder(d=6, h=8); + translate([4.1,2,2]) rotate([90,0,0]) cylinder(d=7, h=8); translate([.5,-.5,0]) cube([7.5,2.5,4.5]); } } if(type == "jack_3.5" && rotation == 180 && side == "top") { place(loc_x,loc_y,loc_z,7.5,7.5,rotation,side) union() { - translate([4.1,-2.5,2]) rotate([90,0,0]) cylinder(d=6, h=8); + translate([4.1,-2.5,2]) rotate([90,0,0]) cylinder(d=7, h=8); translate([.5,-5,0]) cube([7.5,2.5,4.5]); } } if(type == "jack_3.5" && rotation == 270 && side == "top") { place(loc_x,loc_y,loc_z,7.5,7.5,rotation,side) union() { - translate([3.15,-2.5,2]) rotate([90,0,0]) cylinder(d=6, h=8); + translate([3.15,-2.5,2]) rotate([90,0,0]) cylinder(d=7, h=8); translate([-.5,-5,0]) cube([7.5,2.5,4.5]); } } if(type == "jack_3.5" && rotation == 0 && side == "bottom") { place(loc_x-1,loc_y,loc_z-1.5,7.5,7.5,rotation,side) union() { - translate([3.15,2,2]) rotate([90,0,0]) cylinder(d=6, h=8); + translate([3.15,2,2]) rotate([90,0,0]) cylinder(d=7, h=8); translate([-.5,-.5,0]) cube([7.5,2.5,4.5]); } } if(type == "jack_3.5" && rotation == 90 && side == "bottom") { place(loc_x+4.1,loc_y,loc_z-1.5,7.5,7.5,rotation,side) union() { - translate([4.1,2,2]) rotate([90,0,0]) cylinder(d=6, h=8); + translate([4.1,2,2]) rotate([90,0,0]) cylinder(d=7, h=8); translate([.5,-.5,0]) cube([7.5,2.5,4.5]); } } if(type == "jack_3.5" && rotation == 180 && side == "bottom") { place(loc_x-1,loc_y,loc_z-1.5,7.5,7.5,rotation,side) union() { - translate([4.1,-2.5,2]) rotate([90,0,0]) cylinder(d=6, h=8); + translate([4.1,-2.5,2]) rotate([90,0,0]) cylinder(d=6.5, h=8); translate([.5,-5,0]) cube([7.5,2.5,4.5]); } } if(type == "jack_3.5" && rotation == 270 && side == "bottom") { place(loc_x+4.1,loc_y,loc_z-1.5,7.5,7.5,rotation,side) union() { - translate([3,-2.5,2]) rotate([90,0,0]) cylinder(d=6, h=8); + translate([3,-2.5,2]) rotate([90,0,0]) cylinder(d=7, h=8); translate([-.5,-5,0]) cube([7.5,2.5,4.5]); } } @@ -3480,6 +3496,14 @@ module mask(loc_x,loc_y,loc_z,rotation,side,class,type,wallthick,gap,floorthick, place(loc_x,loc_y,loc_z,6,6,rotation,side) translate([3,3,4]) rotate([0,0,0]) cylinder(d=5, h=10); } + if(type == "momentary_4x2x1" && rotation == 0) { + place(loc_x,loc_y,loc_z,6,6,rotation,side) + translate([2,1.5,1.5]) rotate([270,0,0]) cylinder(d=4, h=10); + } + if(type == "momentary_4x2x1" && rotation == 180) { + place(loc_x,loc_y,loc_z,6,6,rotation,side) + translate([4,4,1.5]) rotate([90,0,0]) cylinder(d=4, h=10); + } if(type == "momentary_6x6x4_90" && rotation == 0) { place(loc_x,loc_y,loc_z,6,6,rotation,side) union() {