Code: Select all
view = "model"; // viewing mode "platter", "model", "debug"
case_design = "tray"; // "shell", "panel", "stacked", "tray"
case_style = "vu5"; // style of case_design
// tray: none, vu5
sbc_model = "c4"; // any sbc from sbc model framework: "c1+","c2","c4","hc4"
// "xu4","xu4q","mc1","hc1","n1","n2","n2+","h2"
pcb_loc_x = 5; // sbc location x axis
pcb_loc_y = 0; // sbc location y axis
case_offset_x = 0; // additional case x axis size
case_offset_y = 0; // additional case y axis size
case_offset_tz = 0; // additional case top z axis size
case_offset_bz = 4; // additional case bottom z axis size
wallthick = 2; // case wall thickness
floorthick = 2; // case floor thickness
sidethick = 3; // case side thickness
gap = 1.5; // distance between pcb and case
indents = true; // indentations around io openings
sidewall_support = true; // enable wall support for standoffs
sbc_top_standoffs = false; // enable sbc top standoffs
sbc_bottom_standoffs = true; // enable sbc bottom standoffs
case_ext_standoffs = false; // enable case extended standoffs
sata_punchout = true; // enable sata punchout
gpio_opening = "none"; // gpio openings "none","vent","open","punchout"
cooling = "fan"; // "none", "vents", "fan", "custom" using ./dxf/customfan.dxf
exhaust_vents = "vent"; // exhaust vents "none","vent"
fillet = 0; // edge fillets
All cases build correctly with default setting with the exception of the N2’s. The N2 and N2+ SBC need some additional width to accommodate the integrated heatsink. By setting case_offset_x =10 and pcb_loc_x = 5, enough room is created for the correct fit while centering the SBC in the case. Unlike the C4, the N2’s don’t need the extra bottom space either, case_offset_bz = 0;
Code: Select all
view = "model"; // viewing mode "platter", "model", "debug"
case_design = "tray"; // "shell", "panel", "stacked", "tray"
case_style = "vu5"; // style of case_design
// tray: none, vu5
sbc_model = "n2+"; // any sbc from sbc model framework: "c1+","c2","c4","hc4"
// "xu4","xu4q","mc1","hc1","n1","n2","n2+","h2"
pcb_loc_x = 5; // sbc location x axis
pcb_loc_y = 0; // sbc location y axis
case_offset_x = 10; // additional case x axis size
case_offset_y = 0; // additional case y axis size
case_offset_tz = 0; // additional case top z axis size
case_offset_bz = 0; // additional case bottom z axis size
wallthick = 2; // case wall thickness
floorthick = 2; // case floor thickness
sidethick = 3; // case side thickness
gap = 1.5; // distance between pcb and case
indents = true; // indentations around io openings
sidewall_support = false; // enable wall support for standoffs
sbc_top_standoffs = false; // enable sbc top standoffs
sbc_bottom_standoffs = false; // enable sbc bottom standoffs
case_ext_standoffs = false; // enable case extended standoffs
sata_punchout = true; // enable sata punchout
gpio_opening = "none"; // gpio openings "none","vent","open","punchout"
cooling = "fan"; // "none", "vents", "fan", "custom" using ./dxf/customfan.dxf
exhaust_vents = "none"; // exhaust vents "none","vent"
fillet = 3; // edge fillets
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. I have started validation of SBC models in the SBC Model Framework but it will take some time to get thru all of them.
Additionally, template creation and i/o panel layouts in a dxf format can be easily created and integrated into other designs or for hand fabrication by sectioning a case panel for the desired SBC. The case design “panel” will most likely work best. If your new to CAD here is an example of how to section an 3D stl to a 2D dxf format using OpenSCAD (towards the bottom of the post).
SBC Case Builder Goals
SBC Model Framework Validation Tool – complete (model validation in progress)
Autonomous Multi-SBC Multi-Case Generation –complete
Customization Framework – complete
Future Features:
Case configuration storage with pre-defined cases - complete
Additional base case designs
--sliding
--round/cylinder
--snap-together
Additional case styles
--tray-vu5 - complete
--tray-vu7 - complete
--tray-sides - complete
Accessories framework
geometry additions and subtractions
--circle - complete
--rectangle - complete
--slot - complete
--text - complete
--art(dxf or svg) - complete
--punchout - complete
--fans - complete
--vents - complete
--standoffs - complete
--rtc battery holder - complete
--uart holder - complete
--drive mount - complete
--oled holder - complete
--case access panels - complete
--H2 network card - complete
--buttons – complete
--cable holders/strain relief
--sdcard holders
There is still considerable work to be done to reach all of the goals of this project. The initial basic autonomous case creation is complete and can produce standard cases. More case designs and styles will be developed with the intent to keep all case designs fully parametric. The customization framework, when complete, will come with predefined cases that will serve as examples. With 10’s of cases available from the first release, not every case and SBC combinations can be tested so any report of problems will be appreciated and receive priority. Have an idea for a case design, style, or an accessory I haven’t mentioned, let me know and I will try to incorporate it into SBC Case Builder.
Notes:
All libraries are included and with ongoing development may be newer than posted release.
Due to the number of possibilities, no pre-compiled stl’s are included.
This is a work in progress.
February 2, 2022 - initial release
sbc_case_builder-v1.0.zip
sbc_case_builder-v1.0.1.zip
implemented sbc_case_builder.cfg configuration file, sbc_case_builder_library.scad and basic accessory framework. Adjusted tray-vu7 tabs, adjusted tray-vu7 model alignment. Minor fixes and other maintenance.
sbc_case_builder-v1.1.0.zip
accessory placement additions and fixes, added .cfg commands add1,add2,suball,model,platter, schema changes, extended standoff fixes, hd mounting accessories
sbc_case_builder-v1.1.1.zip
added sbc_off setting, fixed hdmi bottom placement, schema change, extended standoff detection, hd vertical mount, oled holder, access port, access cover, case feet and other fixes
sbc_case_builder-v1.1.2.zip
added h2_netcard, buttons, parametric access_port, other fixes and maintenance
added fillet array, button cutout style, hk_lcd35, other fixes and maintenance
sbc_case_builder-v1.2.0.zip
hk_boom bonnet model and accessories, hk_uart model, fixed uart opening, enabled pcb_z, added tabs and fixed tray case top, other fixes and maintenance
April 6, 2022 Version 1.2.2
vu7c, vu8m and weatherboard2 models, other additions, fixes and maintenance
May 15, 2022 Version 1.2.3
standardized and fully enabled autonomous case openings, new top for tray design, new tray style "sides", several new cases for odroid-m1 and other sbc.
additional library modules, updated SBC Model Framework.
sbc_case_builder_library.scad
sbc_case_builder.cfg
tolerance_check.scad
./dxf
./lib
./stl