diff --git a/lib/panel_clamp.scad b/lib/panel_clamp.scad index 930b355..9519b30 100644 --- a/lib/panel_clamp.scad +++ b/lib/panel_clamp.scad @@ -38,18 +38,20 @@ module panel_clamp(face, screw, style, dia_x, dia_y, height, mask) { rotz = face == "left" ? 90 : face == "right" ? 270 : 0; if(enablemask == true && mstyle == "default") { - + rotate([rotx,roty,rotz]) { + cylinder(d=dia_y, h=height); + } } if(enablemask == false) { rotate([rotx,roty,rotz]) { difference() { cylinder(d2=dia_x, d1=dia_y, h=height); if(screw == "m2") { - translate([(-dia_y-(nuts[2][0]+.5)/2)/2, 0, 3]) rotate([0,90,0]) + translate([(-dia_y-(nuts[2][0]+.5)/2)/2, 0, 2.25]) rotate([0,90,0]) cylinder(d=nuts[0][0]+.5, h=dia_y+2); - translate([-(dia_y/2), 0, 3]) rotate([0,90,0]) + translate([-(dia_y/2), 0, 2.25]) rotate([0,90,0]) cylinder(d=nuts[0][1]*2/sqrt(3), h=dia_y*.375, $fn=6); - translate([nuts[0][0]+.5, 0, 3]) rotate([0,90,0]) + translate([nuts[0][0]+.5, 0, 2.25]) rotate([0,90,0]) cylinder(d=nuts[0][1]+.5, h=dia_y*.375); } if(screw == "m2.5") { diff --git a/mod/case_rack.scad b/mod/case_rack.scad index 55384a0..3faa572 100644 --- a/mod/case_rack.scad +++ b/mod/case_rack.scad @@ -30,80 +30,94 @@ rack_asm_gap = .25; rack_asm_size = 5; rack_asm_hole = 2.25; -if(side == "bottom") { +if(case_design == "rack" && side == "bottom") { difference() { union() { difference() { union() { - if(case_design == "rack") { - difference() { - translate([(width/2)-wallthick-gap,(depth/2)-wallthick-gap,(case_z-floorthick)/2]) - cube_fillet_inside([width,depth,case_z-floorthick], - vertical=[corner_fillet,corner_fillet,0,0], + difference() { + translate([(width/2)-wallthick-gap,(depth/2)-wallthick-gap,(case_z-floorthick)/2]) + cube_fillet_inside([width,depth,case_z-floorthick], + vertical=[corner_fillet,corner_fillet,0,0], + top=[0,0,0,0], bottom=[edge_fillet,edge_fillet,edge_fillet,edge_fillet,edge_fillet], $fn=90); + translate([(width/2)-wallthick-gap,(depth/2)-wallthick-gap,floorthick+(floorthick+case_z)/2]) + cube_fillet_inside([width-(wallthick*2),depth-(wallthick*2),case_z+floorthick], + vertical=[corner_fillet-wallthick,corner_fillet-wallthick,-wallthick,-wallthick], top=[0,0,0,0], bottom=[edge_fillet,edge_fillet,edge_fillet,edge_fillet,edge_fillet], $fn=90); - translate([(width/2)-wallthick-gap,(depth/2)-wallthick-gap,floorthick+(floorthick+case_z)/2]) - cube_fillet_inside([width-(wallthick*2),depth-(wallthick*2),case_z+floorthick], - vertical=[corner_fillet-wallthick,corner_fillet-wallthick,-wallthick,-wallthick], - top=[0,0,0,0], bottom=[edge_fillet,edge_fillet,edge_fillet,edge_fillet,edge_fillet], $fn=90); - } - // rack ears - translate([-gap-wallthick, -gap+(sidethick-wallthick), 0]) - rack_end_bracket("left", rack_size, sidethick); - translate([width-wallthick-gap, -gap+(sidethick-wallthick), 0]) - rack_end_bracket("right", rack_size, sidethick); + // case floor panel clamp holes + translate([150-gap-wallthick,(depth/2)-gap-wallthick,floorthick-adj-.5]) + panel_clamp("bottom", "m2", "sloped", 6, 18, 5, [true,10,2,"default"]); + translate([300-gap-wallthick,(depth/2)-gap-wallthick,floorthick-adj-.5]) + panel_clamp("bottom", "m2", "sloped", 6, 18, 5, [true,10,2,"default"]); - // bay divider walls - for(r = [0:len(rack_bay_sbc)-1]) { - if(rack_bay_wall[r] == true) { - translate([-gap-wallthick-1+rack_asm_gap/2+75*(r+1),-gap-wallthick-adj,0]) - cube([wallthick-1,depth,case_z-2*floorthick]); - } - } - // case upper panel clamps - translate([150-gap-wallthick,-gap-adj-.5,case_z-13]) - panel_clamp("rear", "m2", "sloped", 6, 18, 5, [false,10,2,"default"]); - translate([300-gap-wallthick,-gap-adj-.5,case_z-13]) - panel_clamp("rear", "m2", "sloped", 6, 18, 5, [false,10,2,"default"]); - translate([150-gap-wallthick,depth-gap-(2*wallthick)+adj+.5, - case_z-13]) panel_clamp("front", "m2", "sloped", 6, 18, 5, [false,10,2,"default"]); - translate([300-gap-wallthick,depth-gap-(2*wallthick)+adj+.5, - case_z-13]) panel_clamp("front", "m2", "sloped", 6, 18, 5, [false,10,2,"default"]); + // case upper panel clamp holes + translate([150-gap-wallthick,-gap-adj,case_z-13]) + panel_clamp("rear", "m2", "sloped", 6, 18, 5, [true,10,2,"default"]); + translate([300-gap-wallthick,-gap-adj,case_z-13]) + panel_clamp("rear", "m2", "sloped", 6, 18, 5, [true,10,2,"default"]); + translate([150-gap-wallthick,depth-gap-(2*wallthick)+adj, + case_z-13]) panel_clamp("front", "m2", "sloped", 6, 18, 5, [true,10,2,"default"]); + translate([300-gap-wallthick,depth-gap-(2*wallthick)+adj, + case_z-13]) panel_clamp("front", "m2", "sloped", 6, 18, 5, [true,10,2,"default"]); - // case floor panel clamps - translate([150-gap-wallthick,(depth/2)-gap-wallthick,floorthick-adj]) - panel_clamp("bottom", "m2", "sloped", 6, 18, 5, [false,10,2,"default"]); - translate([300-gap-wallthick,(depth/2)-gap-wallthick,floorthick-adj]) - panel_clamp("bottom", "m2", "sloped", 6, 18, 5, [false,10,2,"default"]); - - // case lower assembly blocks - // rear left - left side - translate([150-gap-wallthick-rack_asm_size,-gap-adj,floorthick-adj]) - cube([rack_asm_size,rack_asm_size,rack_asm_size]); - // rear right - left side - translate([300-gap-wallthick-rack_asm_size,-gap-adj,floorthick-adj]) - cube([rack_asm_size,rack_asm_size,rack_asm_size]); - // rear left - right side - translate([150-gap-wallthick+rack_asm_gap,-gap-adj,floorthick-adj]) - cube([rack_asm_size,rack_asm_size,rack_asm_size]); - // rear right - right - translate([300-gap-wallthick+rack_asm_gap,-gap-adj,floorthick-adj]) - cube([rack_asm_size,rack_asm_size,rack_asm_size]); - - // front left - left - translate([150-gap-wallthick-rack_asm_size,depth-gap-(2*wallthick)-rack_asm_size+adj, - floorthick-adj]) cube([rack_asm_size,rack_asm_size,rack_asm_size]); - // front right - left - translate([300-gap-wallthick-rack_asm_size,depth-gap-(2*wallthick)-rack_asm_size+adj, - floorthick-adj]) cube([rack_asm_size,rack_asm_size,rack_asm_size]); - // front left - right - translate([150-gap-wallthick+rack_asm_gap, - depth-gap-(2*wallthick)-rack_asm_size+adj,floorthick-adj]) - cube([rack_asm_size,rack_asm_size,rack_asm_size]); - // front right - right - translate([300-gap-wallthick+rack_asm_gap, - depth-gap-(2*wallthick)-rack_asm_size+adj,floorthick-adj]) - cube([rack_asm_size,rack_asm_size,rack_asm_size]); } + // rack mounting tabs + translate([-gap-wallthick, -gap+(sidethick-wallthick), 0]) + rack_end_bracket("left", rack_size, sidethick); + translate([width-wallthick-gap, -gap+(sidethick-wallthick), 0]) + rack_end_bracket("right", rack_size, sidethick); + + // bay divider walls + for(r = [0:len(rack_bay_sbc)-1]) { + if(rack_bay_wall[r] == true) { + translate([-gap-wallthick-1+rack_asm_gap/2+75*(r+1),-gap-wallthick-adj,0]) + cube([wallthick-1,depth,case_z-2*floorthick]); + } + } + // case upper panel clamps + translate([150-gap-wallthick,-gap-adj,case_z-13]) + panel_clamp("rear", "m2", "sloped", 6, 18, 5, [false,10,2,"default"]); + translate([300-gap-wallthick,-gap-adj,case_z-13]) + panel_clamp("rear", "m2", "sloped", 6, 18, 5, [false,10,2,"default"]); + translate([150-gap-wallthick,depth-gap-(2*wallthick)+adj, + case_z-13]) panel_clamp("front", "m2", "sloped", 6, 18, 5, [false,10,2,"default"]); + translate([300-gap-wallthick,depth-gap-(2*wallthick)+adj, + case_z-13]) panel_clamp("front", "m2", "sloped", 6, 18, 5, [false,10,2,"default"]); + + // case floor panel clamps + translate([150-gap-wallthick,(depth/2)-gap-wallthick,floorthick-adj-.5]) + panel_clamp("bottom", "m2", "sloped", 6, 18, 5, [false,10,2,"default"]); + translate([300-gap-wallthick,(depth/2)-gap-wallthick,floorthick-adj-.5]) + panel_clamp("bottom", "m2", "sloped", 6, 18, 5, [false,10,2,"default"]); + + // case lower assembly blocks + // rear left - left side + translate([150-gap-wallthick-rack_asm_size,-gap-adj,floorthick-adj]) + cube([rack_asm_size,rack_asm_size,rack_asm_size]); + // rear right - left side + translate([300-gap-wallthick-rack_asm_size,-gap-adj,floorthick-adj]) + cube([rack_asm_size,rack_asm_size,rack_asm_size]); + // rear left - right side + translate([150-gap-wallthick+rack_asm_gap,-gap-adj,floorthick-adj]) + cube([rack_asm_size,rack_asm_size,rack_asm_size]); + // rear right - right + translate([300-gap-wallthick+rack_asm_gap,-gap-adj,floorthick-adj]) + cube([rack_asm_size,rack_asm_size,rack_asm_size]); + + // front left - left + translate([150-gap-wallthick-rack_asm_size,depth-gap-(2*wallthick)-rack_asm_size+adj, + floorthick-adj]) cube([rack_asm_size,rack_asm_size,rack_asm_size]); + // front right - left + translate([300-gap-wallthick-rack_asm_size,depth-gap-(2*wallthick)-rack_asm_size+adj, + floorthick-adj]) cube([rack_asm_size,rack_asm_size,rack_asm_size]); + // front left - right + translate([150-gap-wallthick+rack_asm_gap, + depth-gap-(2*wallthick)-rack_asm_size+adj,floorthick-adj]) + cube([rack_asm_size,rack_asm_size,rack_asm_size]); + // front right - right + translate([300-gap-wallthick+rack_asm_gap, + depth-gap-(2*wallthick)-rack_asm_size+adj,floorthick-adj]) + cube([rack_asm_size,rack_asm_size,rack_asm_size]); // additive accessories if(accessory_name != "none") { @@ -121,7 +135,8 @@ if(side == "bottom") { mask = accessory_data[a[0]][i+10]; if(class == "add1" && face == "bottom") { - parametric_move_add(type, loc_x, loc_y, loc_z, face, rotation, parametric, size, data, [false,mask[1],mask[2],mask[3]]); + parametric_move_add(type, loc_x, loc_y, loc_z, face, rotation, parametric, + size, data, [false,mask[1],mask[2],mask[3]]); } } } @@ -175,7 +190,7 @@ if(side == "bottom") { translate([300-gap-wallthick+rack_asm_size+adj+rack_asm_gap-2,depth-gap-(2*wallthick)-(rack_asm_size/2)+adj, floorthick-adj+(rack_asm_size/2)]) rotate([0,90,0]) cylinder(d=4*2/sqrt(3), h=2); - + // pcb and multi-pcb standoff holes for(r = [0:len(rack_bay_sbc)-1]) { if(rack_bay_sbc[r] != "empty") { s = search([rack_bay_sbc[r]],sbc_data); @@ -188,13 +203,15 @@ if(side == "bottom") { pcb_color = sbc_data[s[0]][11][1]; pcb_radius = sbc_data[s[0]][11][0]; - pcb_loc_x = rack_bay_rotation[r] == 90 ? rack_bay_xyz_loc[r][0] + pcb_width : rack_bay_rotation[r] == 180 ? rack_bay_xyz_loc[r][0] + pcb_width : rack_bay_xyz_loc[r][0]; - pcb_loc_y = rack_bay_rotation[r] == 270 ? rack_bay_xyz_loc[r][1]+pcb_width : rack_bay_rotation[r] == 180 ? rack_bay_xyz_loc[r][1]+pcb_depth : rack_bay_xyz_loc[r][1]; + pcb_loc_x = rack_bay_rotation[r] == 90 ? rack_bay_xyz_loc[r][0] + pcb_width : + rack_bay_rotation[r] == 180 ? rack_bay_xyz_loc[r][0] + pcb_width : rack_bay_xyz_loc[r][0]; + pcb_loc_y = rack_bay_rotation[r] == 270 ? rack_bay_xyz_loc[r][1]+pcb_width : + rack_bay_rotation[r] == 180 ? rack_bay_xyz_loc[r][1]+pcb_depth : rack_bay_xyz_loc[r][1]; pcb_loc_z = rack_bay_xyz_loc[r][2]; translate([pcb_loc_x,pcb_loc_y,pcb_loc_z]) rotate([0,0,rack_bay_rotation[r]]) union() { // pcb standoff holes - if(sbc_bottom_standoffs == true && rack_bay_sbc[r] != "empty") { + if(sbc_bottom_standoffs == true) { for (i=[1:11:len(sbc_data[s[0]])-2]) { class = sbc_data[s[0]][i+1]; type = sbc_data[s[0]][i+2]; @@ -229,7 +246,7 @@ if(side == "bottom") { } } // multi-pcb standoff holes - if(multipcb_bottom_standoffs == true && rack_bay_sbc[r] != "empty") { + if(multipcb_bottom_standoffs == true) { for (i=[1:11:len(sbc_data[s[0]])-2]) { class = sbc_data[s[0]][i+1]; type = sbc_data[s[0]][i+2]; @@ -324,30 +341,42 @@ if(side == "bottom") { } } // bottom cover pattern - if(bottom_cover_pattern != "solid") { - if(bottom_cover_pattern == "hex_5mm") { - translate([1,0,-floorthick+adj]) vent_hex(width/3.75,depth/6,floorthick+4,5,1.5,"horizontal"); - } - if(bottom_cover_pattern == "hex_8mm") { - translate([1,2,-floorthick+adj]) vent_hex(width/5.5,depth/9.5,floorthick+4,8,1.5,"horizontal"); - } - if(bottom_cover_pattern == "linear_vertical") { - translate([0,-gap,-floorthick+adj]) - vent(wallthick,depth-2*wallthick-gap,floorthick+4,1,1,(width-2*wallthick-gap)/4,"horizontal"); - } - if(bottom_cover_pattern == "linear_horizontal") { - translate([-gap,-gap,-floorthick+adj]) - vent(width-2*(wallthick+gap),wallthick,floorthick+4,1,(depth-2*wallthick-gap)/3,1,"horizontal"); - } - if(bottom_cover_pattern == "astroid") { - for(c=[3:12:depth-8]) { - for(r=[4:12:width-8]) { - translate([r,c,-(2*floorthick)]) linear_extrude(floorthick+5) import("./dxf/astroid_8mm.dxf"); + for(r = [0:len(rack_bay_sbc)-1]) { + if(bottom_cover_pattern != "solid") { + if(bottom_cover_pattern == "hex_5mm") { + translate([rack_bay_xyz_loc[r][0]+25,rack_bay_xyz_loc[r][1]+10,-floorthick+adj]) + vent_hex(15/3.75,(depth-40)/6,floorthick+4,5,1.5,"horizontal"); + } + if(bottom_cover_pattern == "hex_8mm") { + translate([rack_bay_xyz_loc[r][0]+10,rack_bay_xyz_loc[r][1]+5,-floorthick+adj]) + vent_hex(35/5.5,(depth-10)/9.5,floorthick+4,8,1.5,"horizontal"); + } + if(bottom_cover_pattern == "linear_vertical") { + translate([rack_bay_xyz_loc[r][0]+10,rack_bay_xyz_loc[r][1]+10,-floorthick+adj]) + vent(2,12,floorthick+4,1,1,9,"horizontal"); + translate([rack_bay_xyz_loc[r][0]+10,rack_bay_xyz_loc[r][1]+55,-floorthick+adj]) + vent(2,12,floorthick+4,1,1,9,"horizontal"); + } + if(bottom_cover_pattern == "linear_horizontal") { + translate([rack_bay_xyz_loc[r][0]+10,rack_bay_xyz_loc[r][1]+10,-floorthick+adj]) + vent(35-2*(wallthick+gap),wallthick,floorthick+4,1,(depth-2*wallthick-gap)/6,1,"horizontal"); + } + if(bottom_cover_pattern == "astroid") { + for(c=[rack_bay_xyz_loc[r][1]+10:12:85+rack_bay_xyz_loc[r][1]]) { + for(r=[rack_bay_xyz_loc[r][0]:12:55+rack_bay_xyz_loc[r][0]]) { + translate([r,c,-floorthick]) linear_extrude(floorthick+5) import("./dxf/astroid_8mm.dxf"); + } } } } + // front vent + if(rack_bay_face[r] == "vent") { + translate([-gap-wallthick-1+rack_asm_gap/2+75*(r+1)-75+14,-gap-adj,case_z-16]) + vent(2,10,wallthick+4,2,1,9,"vertical"); + } } } + // pcb and multi-pcb standoffs for(r = [0:len(rack_bay_sbc)-1]) { if(rack_bay_sbc[r] != "empty") { s = search([rack_bay_sbc[r]],sbc_data); @@ -360,8 +389,10 @@ if(side == "bottom") { pcb_color = sbc_data[s[0]][11][1]; pcb_radius = sbc_data[s[0]][11][0]; - pcb_loc_x = rack_bay_rotation[r] == 90 ? rack_bay_xyz_loc[r][0] + pcb_width : rack_bay_rotation[r] == 180 ? rack_bay_xyz_loc[r][0] + pcb_width : rack_bay_xyz_loc[r][0]; - pcb_loc_y = rack_bay_rotation[r] == 270 ? rack_bay_xyz_loc[r][1]+pcb_width : rack_bay_rotation[r] == 180 ? rack_bay_xyz_loc[r][1]+pcb_depth : rack_bay_xyz_loc[r][1]; + pcb_loc_x = rack_bay_rotation[r] == 90 ? rack_bay_xyz_loc[r][0] + pcb_width : + rack_bay_rotation[r] == 180 ? rack_bay_xyz_loc[r][0] + pcb_width : rack_bay_xyz_loc[r][0]; + pcb_loc_y = rack_bay_rotation[r] == 270 ? rack_bay_xyz_loc[r][1]+pcb_width : + rack_bay_rotation[r] == 180 ? rack_bay_xyz_loc[r][1]+pcb_depth : rack_bay_xyz_loc[r][1]; pcb_loc_z = rack_bay_xyz_loc[r][2]; translate([pcb_loc_x,pcb_loc_y,pcb_loc_z]) rotate([0,0,rack_bay_rotation[r]]) union() { diff --git a/sbc_case_builder.json b/sbc_case_builder.json index c5991cc..e225ba6 100644 --- a/sbc_case_builder.json +++ b/sbc_case_builder.json @@ -11047,37 +11047,37 @@ "pcb_loc_x": "0", "pcb_loc_y": "0", "pcb_loc_z": "0", - "rack_bay1_face": "io_shield", + "rack_bay1_face": "vent", "rack_bay1_rear_conduit": "true", "rack_bay1_rear_fan": "true", "rack_bay1_rotation": "270", "rack_bay1_wall": "true", "rack_bay1_xyz_loc": "[13, 0, 0]", - "rack_bay2_face": "io_shield", + "rack_bay2_face": "vent", "rack_bay2_rear_conduit": "true", "rack_bay2_rear_fan": "true", "rack_bay2_rotation": "270", "rack_bay2_wall": "true", "rack_bay2_xyz_loc": "[88, 0, 0]", - "rack_bay3_face": "io_shield", + "rack_bay3_face": "vent", "rack_bay3_rear_conduit": "true", "rack_bay3_rear_fan": "true", "rack_bay3_rotation": "270", "rack_bay3_wall": "true", "rack_bay3_xyz_loc": "[162.5, 0, 0]", - "rack_bay4_face": "io_shield", + "rack_bay4_face": "vent", "rack_bay4_rear_conduit": "true", "rack_bay4_rear_fan": "true", "rack_bay4_rotation": "270", "rack_bay4_wall": "true", "rack_bay4_xyz_loc": "[237.5, 0, 0]", - "rack_bay5_face": "io_shield", + "rack_bay5_face": "vent", "rack_bay5_rear_conduit": "true", "rack_bay5_rear_fan": "true", "rack_bay5_rotation": "270", "rack_bay5_wall": "true", "rack_bay5_xyz_loc": "[313, 0, 0]", - "rack_bay6_face": "io_shield", + "rack_bay6_face": "vent", "rack_bay6_rear_conduit": "true", "rack_bay6_rear_fan": "true", "rack_bay6_rotation": "270", diff --git a/sbc_case_builder.scad b/sbc_case_builder.scad index 8cdd34e..c5a1a62 100644 --- a/sbc_case_builder.scad +++ b/sbc_case_builder.scad @@ -82,7 +82,7 @@ rack_size = "1u"; //["1u","1u+","1u++","2u"] Rack_Bay1 = "empty"; // ["empty", "c1+", "c2", "c4", "hc4", "xu4", "xu4q", "mc1", "hc1", "n1", "n2", "n2+", "n2l", "n2lq", "m1", "m1s", "m2", "h2", "h2+", "h3", "h3+", "h4", "h4+", "h4_ultra", "show2", "rpipico", "rpipicow", "rpicm4+ioboard", "rpicm1", "rpicm3", "rpicm3l", "rpicm3+", "rpicm4s", "rpicm4", "rpicm4l", "rpizero", "rpizerow", "rpizero2w", "rpi1a+", "rpi1b+", "rpi2b", "rpi3a+", "rpi3b", "rpi3b+", "rpi4b", "rpi5", "a64", "a64lts", "rock64", "rockpro64", "quartz64a", "quartz64b", "h64b", "star64", "soedge_a-baseboard", "soedge_rk1808", "rock4a", "rock4b", "rock4a+", "rock4b+", "rock4c", "rock4c+", "rock5b-v1.3", "rock5b", "rock5bq", "rock5b+", "nio12l", "vim1", "vim2", "vim3", "vim3l", "vim4", "tinkerboard", "tinkerboard-s", "tinkerboard-2", "tinkerboard-2s", "tinkerboard-r2", "tinkerboard-r2s", "opizero", "opizero2", "opir1plus_lts", "opir1", "opi5", "opi5max", "jetsonnano", "lepotato", "sweetpotato", "tritium-h2+", "tritium-h3", "tritium-h5", "solitude", "alta", "atomicpi", "visionfive2", "visionfive2q", "bpif3", "milk-v_duos", "licheerv+dock", "rak19007", "cnano-avr128da48", "nodemcu-32s", "cs-solarmeter", "feather-m0_express", "feather-m0_wifi", "feather-m4_express"] rack_bay1_xyz_loc = [0,0,0]; // [0:.5:450] rack_bay1_rotation = 0; // [0:90:270] -rack_bay1_face = "io_shield"; //["solid","blank","io_shield","vent_hex"] +rack_bay1_face = "vent"; //["solid","blank","io_shield","vent"] rack_bay1_wall = false; // [true,false] rack_bay1_rear_fan = false; //[true,false] rack_bay1_rear_conduit = false; //[true,false] @@ -90,7 +90,7 @@ rack_bay1_rear_conduit = false; //[true,false] Rack_Bay2 = "empty"; // ["empty", "c1+", "c2", "c4", "hc4", "xu4", "xu4q", "mc1", "hc1", "n1", "n2", "n2+", "n2l", "n2lq", "m1", "m1s", "m2", "h2", "h2+", "h3", "h3+", "h4", "h4+", "h4_ultra", "show2", "rpipico", "rpipicow", "rpicm4+ioboard", "rpicm1", "rpicm3", "rpicm3l", "rpicm3+", "rpicm4s", "rpicm4", "rpicm4l", "rpizero", "rpizerow", "rpizero2w", "rpi1a+", "rpi1b+", "rpi2b", "rpi3a+", "rpi3b", "rpi3b+", "rpi4b", "rpi5", "a64", "a64lts", "rock64", "rockpro64", "quartz64a", "quartz64b", "h64b", "star64", "soedge_a-baseboard", "soedge_rk1808", "rock4a", "rock4b", "rock4a+", "rock4b+", "rock4c", "rock4c+", "rock5b-v1.3", "rock5b", "rock5bq", "rock5b+", "nio12l", "vim1", "vim2", "vim3", "vim3l", "vim4", "tinkerboard", "tinkerboard-s", "tinkerboard-2", "tinkerboard-2s", "tinkerboard-r2", "tinkerboard-r2s", "opizero", "opizero2", "opir1plus_lts", "opir1", "opi5", "opi5max", "jetsonnano", "lepotato", "sweetpotato", "tritium-h2+", "tritium-h3", "tritium-h5", "solitude", "alta", "atomicpi", "visionfive2", "visionfive2q", "bpif3", "milk-v_duos", "licheerv+dock", "rak19007", "cnano-avr128da48", "nodemcu-32s", "cs-solarmeter", "feather-m0_express", "feather-m0_wifi", "feather-m4_express"] rack_bay2_xyz_loc = [0,0,0]; // [0:.5:450] rack_bay2_rotation = 0; // [0:90:270] -rack_bay2_face = "io_shield"; //["solid","blank","io_shield","vent_hex"] +rack_bay2_face = "vent"; //["solid","blank","io_shield","vent"] rack_bay2_wall = false; // [true,false] rack_bay2_rear_fan = false; //[true,false] rack_bay2_rear_conduit = false; //[true,false] @@ -98,7 +98,7 @@ rack_bay2_rear_conduit = false; //[true,false] Rack_Bay3 = "empty"; // ["empty", "c1+", "c2", "c4", "hc4", "xu4", "xu4q", "mc1", "hc1", "n1", "n2", "n2+", "n2l", "n2lq", "m1", "m1s", "m2", "h2", "h2+", "h3", "h3+", "h4", "h4+", "h4_ultra", "show2", "rpipico", "rpipicow", "rpicm4+ioboard", "rpicm1", "rpicm3", "rpicm3l", "rpicm3+", "rpicm4s", "rpicm4", "rpicm4l", "rpizero", "rpizerow", "rpizero2w", "rpi1a+", "rpi1b+", "rpi2b", "rpi3a+", "rpi3b", "rpi3b+", "rpi4b", "rpi5", "a64", "a64lts", "rock64", "rockpro64", "quartz64a", "quartz64b", "h64b", "star64", "soedge_a-baseboard", "soedge_rk1808", "rock4a", "rock4b", "rock4a+", "rock4b+", "rock4c", "rock4c+", "rock5b-v1.3", "rock5b", "rock5bq", "rock5b+", "nio12l", "vim1", "vim2", "vim3", "vim3l", "vim4", "tinkerboard", "tinkerboard-s", "tinkerboard-2", "tinkerboard-2s", "tinkerboard-r2", "tinkerboard-r2s", "opizero", "opizero2", "opir1plus_lts", "opir1", "opi5", "opi5max", "jetsonnano", "lepotato", "sweetpotato", "tritium-h2+", "tritium-h3", "tritium-h5", "solitude", "alta", "atomicpi", "visionfive2", "visionfive2q", "bpif3", "milk-v_duos", "licheerv+dock", "rak19007", "cnano-avr128da48", "nodemcu-32s", "cs-solarmeter", "feather-m0_express", "feather-m0_wifi", "feather-m4_express"] rack_bay3_xyz_loc = [0,0,0]; // [0:.5:450] rack_bay3_rotation = 0; // [0:90:270] -rack_bay3_face = "io_shield"; //["solid","blank","io_shield","vent_hex"] +rack_bay3_face = "vent"; //["solid","blank","io_shield","vent"] rack_bay3_wall = false; // [true,false] rack_bay3_rear_fan = false; //[true,false] rack_bay3_rear_conduit = false; //[true,false] @@ -106,7 +106,7 @@ rack_bay3_rear_conduit = false; //[true,false] Rack_Bay4 = "empty"; // ["empty", "c1+", "c2", "c4", "hc4", "xu4", "xu4q", "mc1", "hc1", "n1", "n2", "n2+", "n2l", "n2lq", "m1", "m1s", "m2", "h2", "h2+", "h3", "h3+", "h4", "h4+", "h4_ultra", "show2", "rpipico", "rpipicow", "rpicm4+ioboard", "rpicm1", "rpicm3", "rpicm3l", "rpicm3+", "rpicm4s", "rpicm4", "rpicm4l", "rpizero", "rpizerow", "rpizero2w", "rpi1a+", "rpi1b+", "rpi2b", "rpi3a+", "rpi3b", "rpi3b+", "rpi4b", "rpi5", "a64", "a64lts", "rock64", "rockpro64", "quartz64a", "quartz64b", "h64b", "star64", "soedge_a-baseboard", "soedge_rk1808", "rock4a", "rock4b", "rock4a+", "rock4b+", "rock4c", "rock4c+", "rock5b-v1.3", "rock5b", "rock5bq", "rock5b+", "nio12l", "vim1", "vim2", "vim3", "vim3l", "vim4", "tinkerboard", "tinkerboard-s", "tinkerboard-2", "tinkerboard-2s", "tinkerboard-r2", "tinkerboard-r2s", "opizero", "opizero2", "opir1plus_lts", "opir1", "opi5", "opi5max", "jetsonnano", "lepotato", "sweetpotato", "tritium-h2+", "tritium-h3", "tritium-h5", "solitude", "alta", "atomicpi", "visionfive2", "visionfive2q", "bpif3", "milk-v_duos", "licheerv+dock", "rak19007", "cnano-avr128da48", "nodemcu-32s", "cs-solarmeter", "feather-m0_express", "feather-m0_wifi", "feather-m4_express"] rack_bay4_xyz_loc = [0,0,0]; // [0:.5:450] rack_bay4_rotation = 0; // [0:90:270] -rack_bay4_face = "io_shield"; //["solid","blank","io_shield","vent_hex"] +rack_bay4_face = "vent"; //["solid","blank","io_shield","vent"] rack_bay4_wall = false; // [true,false] rack_bay4_rear_fan = false; //[true,false] rack_bay4_rear_conduit = false; //[true,false] @@ -114,7 +114,7 @@ rack_bay4_rear_conduit = false; //[true,false] Rack_Bay5 = "empty"; // ["empty", "c1+", "c2", "c4", "hc4", "xu4", "xu4q", "mc1", "hc1", "n1", "n2", "n2+", "n2l", "n2lq", "m1", "m1s", "m2", "h2", "h2+", "h3", "h3+", "h4", "h4+", "h4_ultra", "show2", "rpipico", "rpipicow", "rpicm4+ioboard", "rpicm1", "rpicm3", "rpicm3l", "rpicm3+", "rpicm4s", "rpicm4", "rpicm4l", "rpizero", "rpizerow", "rpizero2w", "rpi1a+", "rpi1b+", "rpi2b", "rpi3a+", "rpi3b", "rpi3b+", "rpi4b", "rpi5", "a64", "a64lts", "rock64", "rockpro64", "quartz64a", "quartz64b", "h64b", "star64", "soedge_a-baseboard", "soedge_rk1808", "rock4a", "rock4b", "rock4a+", "rock4b+", "rock4c", "rock4c+", "rock5b-v1.3", "rock5b", "rock5bq", "rock5b+", "nio12l", "vim1", "vim2", "vim3", "vim3l", "vim4", "tinkerboard", "tinkerboard-s", "tinkerboard-2", "tinkerboard-2s", "tinkerboard-r2", "tinkerboard-r2s", "opizero", "opizero2", "opir1plus_lts", "opir1", "opi5", "opi5max", "jetsonnano", "lepotato", "sweetpotato", "tritium-h2+", "tritium-h3", "tritium-h5", "solitude", "alta", "atomicpi", "visionfive2", "visionfive2q", "bpif3", "milk-v_duos", "licheerv+dock", "rak19007", "cnano-avr128da48", "nodemcu-32s", "cs-solarmeter", "feather-m0_express", "feather-m0_wifi", "feather-m4_express"] rack_bay5_xyz_loc = [0,0,0]; // [0:.5:450] rack_bay5_rotation = 0; // [0:90:270] -rack_bay5_face = "io_shield"; //["solid","blank","io_shield","vent_hex"] +rack_bay5_face = "vent"; //["solid","blank","io_shield","vent"] rack_bay5_wall = false; // [true,false] rack_bay5_rear_fan = false; //[true,false] rack_bay5_rear_conduit = false; //[true,false] @@ -122,7 +122,7 @@ rack_bay5_rear_conduit = false; //[true,false] Rack_Bay6 = "empty"; // ["empty", "c1+", "c2", "c4", "hc4", "xu4", "xu4q", "mc1", "hc1", "n1", "n2", "n2+", "n2l", "n2lq", "m1", "m1s", "m2", "h2", "h2+", "h3", "h3+", "h4", "h4+", "h4_ultra", "show2", "rpipico", "rpipicow", "rpicm4+ioboard", "rpicm1", "rpicm3", "rpicm3l", "rpicm3+", "rpicm4s", "rpicm4", "rpicm4l", "rpizero", "rpizerow", "rpizero2w", "rpi1a+", "rpi1b+", "rpi2b", "rpi3a+", "rpi3b", "rpi3b+", "rpi4b", "rpi5", "a64", "a64lts", "rock64", "rockpro64", "quartz64a", "quartz64b", "h64b", "star64", "soedge_a-baseboard", "soedge_rk1808", "rock4a", "rock4b", "rock4a+", "rock4b+", "rock4c", "rock4c+", "rock5b-v1.3", "rock5b", "rock5bq", "rock5b+", "nio12l", "vim1", "vim2", "vim3", "vim3l", "vim4", "tinkerboard", "tinkerboard-s", "tinkerboard-2", "tinkerboard-2s", "tinkerboard-r2", "tinkerboard-r2s", "opizero", "opizero2", "opir1plus_lts", "opir1", "opi5", "opi5max", "jetsonnano", "lepotato", "sweetpotato", "tritium-h2+", "tritium-h3", "tritium-h5", "solitude", "alta", "atomicpi", "visionfive2", "visionfive2q", "bpif3", "milk-v_duos", "licheerv+dock", "rak19007", "cnano-avr128da48", "nodemcu-32s", "cs-solarmeter", "feather-m0_express", "feather-m0_wifi", "feather-m4_express"] rack_bay6_xyz_loc = [0,0,0]; // [0:.5:450] rack_bay6_rotation = 0; // [0:90:270] -rack_bay6_face = "io_shield"; //["solid","blank","io_shield","vent_hex"] +rack_bay6_face = "vent"; //["solid","blank","io_shield","vent"] rack_bay6_rear_fan = false; //[true,false] rack_bay6_rear_conduit = false; //[true,false]