merge conflict resolution

This commit is contained in:
Edward Kisiel
2022-07-26 15:36:07 -04:00
13 changed files with 459 additions and 121204 deletions

3
.gitmodules vendored Normal file
View File

@@ -0,0 +1,3 @@
[submodule "SBC_Model_Framework"]
path = SBC_Model_Framework
url = git@github.com:hominoids/SBC_Model_Framework.git

367
README.md
View File

@@ -10,7 +10,374 @@ License: GPLv3.
![Image](SBC_Case_Builder_Cases.gif)
### Install
```
git clone https://github.com/hominoids/SBC_Case_Builder.git
cd SBC_Case_Builder
git submodule init
git submodule update
```
### Notes
More information can be found at this [Hard Kernel forum thread](https://forum.odroid.com/viewtopic.php?f=53&t=43948)
### 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 114
##### Hardkernel
**Odorid-C1+ cases** - 12 : 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
**Odorid-C2 cases** - 13 : c2_shell,c2_panel,c2_panel_lcd3.5,c2_desktop_lcd3.5,c2_stacked,c2_tray,c2_tray_sides,c2_tray_vu5,
c2_tray_vu7,c2_shell_boombox,c2_panel_boombox,c2_deskboom_lcd3.5,c2_tray_boombox
**Odorid-C4 cases** - 13 : c4_shell,c4_panel,c4_panel_lcd3.5,c4_desktop_lcd3.5,c4_stacked,c4_tray,c4_tray_sides,c4_tray_vu5,
c4_tray_vu7,c4_shell_boombox,c4_panel_boombox,c4_deskboom_lcd3.5,c4_tray_boombox
**Odorid-HC4 cases** - 11 : hc4_shell,hc4_shell_drivebox2.5,hc4_shell_drivebox2.5v,hc4_shell_drivebox3.5,hc4_panel,hc4_stacked
,hc4_tray,hc4_tray_sides,hc4_tray_vu5,hc4_tray_vu7,hc4_tray_drivebox2.5
**Odorid-N1 cases** - 7 : n1_shell,n1_panel,n1_stacked,n1_tray,n1_tray_sides,n1_tray_vu5,n1_tray_vu7
**Odorid-N2 cases** - 5 : n2_panel,n2_tray,n2_tray_sides,n2_tray_vu5,n2_tray_vu7
**Odorid-N2+ cases** - 5 :n2+_panel,n2+_tray,n2+_tray_sides,n2+_tray_vu5,n2+_tray_vu7
**Odorid-XU4 cases** - 7 : xu4_shell,xu4_panel,xu4_stacked,xu4_tray,xu4_tray_sides,xu4_tray_vu5,xu4_tray_vu7
**Odorid-XU4Q cases** - 7 : xu4q_shell,xu4q_panel,xu4q_stacked,xu4q_tray,xu4q_tray_sides,xu4q_tray_vu5,xu4q_tray_vu7
**Odroid-H2 cases** - 13 : h2_shell,h2_lowboy,h2_lowboy_router,h2_shell_router,h2_shell_routerssd,h2_panel,h2_stacked,h2_tray,h2_tray_sides,
h2_tray_vu5,h2_tray_vu7,h2_tray_router,h2_router_station
**Odroid-Show2** cases - 1 : show2_shell
##### Pine64
**Rockpro64** - 5 : rockpro64_shell,rockpro64_panel,rockpro64_stacked,rockpro64_tray,rockpro64_tray_sides
##### Raspberry PI
**RPI3+** - 4 : rpi3b+_shell,rpi3b+_panel,rpi3b+_stacked,rpi3b+_tray
##### Nivida
**Jetson Nano** - 5 : jetsonnano_shell,jetsonnano_panel,jetsonnano_stacked,jetsonnano_tray,jetsonnano_tray_sides
### Case and Accessory Schema
The schema for case configuration and accessories is documented in the beginning of the file sbc_case_builder.cfg. It has not been finalized and may be subject to changes in the near future as development in these areas is ongoing. Here is a review of the current schema which will be updated as needed for each release. The schema is divided into two areas, case and accessories. There are 30 fixed entries that describe any given case followed by an unlimited number of accessory entries each containing 14 entries.
schema:
"case_name","sbc_model","case_design","case_style",
pcb_loc_x,pcb_loc_y,pcb_loc_z,case_offset_x,case_offset_y,case_offset_tz,case_offset_bz,
wallthick,floorthick,sidethick,gap,fillet,
indents,sidewall_support,sbc_top_standoffs,sbc_bottom_standoffs,case_ext_standoffs,mode
sata_punchout,"gpio_opening","cooling","exhaust_vents",
top_standoff[ 6.75, // diameter
18, // height (top_height)
2.5, // holesize
10, // supportsize
4, // supportheight
4, // 0=none, 1=countersink, 2=recessed hole, 3=nut holder, 4=blind hole
0, // standoff style 0=hex, 1=cylinder
1, // enable reverse standoff
0, // enable insert at top of standoff
4.5, // insert hole dia. mm
5.1], // insert depth mm
bottom_standoff[ 6.75, // diameter
5, // height (bottom_height-pcb_z)
3.6, // holesize
10, // supportsize
4, // supportheight
1, // 0=none, 1=countersink, 2=recessed hole, 3=nut holder, 4=blind hole
0, // standoff style 0=hex, 1=cylinder
0, // enable reverse standoff
0, // enable insert at top of standoff
4.5, // insert hole dia. mm
5.1], // insert depth mm
top_ext_standoff[ 6.75, // diameter
18, // height (top_height)
2.5, // holesize
10, // supportsize
4, // supportheight
4, // 0=none, 1=countersink, 2=recessed hole, 3=nut holder, 4=blind hole
0, // standoff style 0=hex, 1=cylinder
1, // enable reverse standoff
0, // enable insert at top of standoff
4.5, // insert hole dia. mm
5.1], // insert depth mm
bottom_ext_standoff[ 6.75, // diameter
5, // height (bottom_height-pcb_z)
3.6, // holesize
10, // supportsize
4, // supportheight
1, // 0=none, 1=countersink, 2=recessed hole, 3=nut holder, 4=blind hole
0, // standoff style 0=hex, 1=cylinder
0, // enable reverse standoff
0, // enable insert at top of standoff
4.5, // insert hole dia. mm
5.1], // insert depth mm
"class","type",loc_x,loc_y,loc_z,face,rotation[],size_x,size_y,size_z,data_1,data_2,"data_3",data_4[]
Fixed Schema Entries
The 30 fixed schema entries are self-evident based on their name.
case_name = “case_name”
sbc_model = any sbc from sbc model framework: "c1+","c2","c4"...
case_design = "shell", "panel", "stacked", "tray"
case_style = “style” of case_design (tray: none, vu5, vu7)
pcb_loc_x = sbc location x axis
pcb_loc_y = sbc location y axis
pcb_loc_z = sbc location z axis
case_offset_x = additional case x axis size
case_offset_y = additional case y axis size
case_offset_tz = additional case top z axis size
case_offset_bz = additional case bottom z axis size
wallthick = case wall thickness
floorthick = case floor thickness
sidethick = case side thickness
gap = distance between pcb and case
fillet = edge fillets
indents = enable indentations around io openings (true or false)
sidewall_support = enable wall support for standoffs (true or false)
sbc_top_standoffs = enable sbc top standoffs (true or false)
sbc_bottom_standoffs = enable sbc bottom standoffs (true or false)
case_ext_standoffs = enable case extended standoffs (true or false)
sata_punchout = enable sata punchout (true or false)
gpio_opening = gpio openings "none","vent","open","punchout"
cooling = "none", "vents", "fan", "custom" using ./dxf/customfan.dxf
exhaust_vents = exhaust vents "none","vent"
top_standoff[] = top pcb standoffs
bottom_standoff[] = bottom pcb standoffs
top_ext_standoff[] = top extended standoffs
bottom_ext_standoff[] = bottom extended standoffs
mode = special mode "net_card"
### Accessories Configuration Entries
The accessories entries need more explanation because of their input variability. For accessories there are 6 classes, “add1”,“sub”,”suball”,”add2”,”model”,”platter” and all use the same command format for various “type”.
`"class","type",loc_x,loc_y,loc_z,size_x,size_y,size_z,"face",rotation[],data_1,data_2,"data_3",data_4[]`
e.g.
`"sub","rectangle",3,78,-.1,8,8,5,"bottom",[0,0,0,],0,0,"",[1,1,1,1]`
Every type, regardless of its class, uses a basic set of variables(loc_x,loc_y,loc_z,”face”,rotation[]) but each type doesnt necessarily use all available data fields(size_x,size_y,size_z,data_1,data_2,”data_3”,data_4[]). “add1” and “add2” are used to add geometry to the case. The difference is when the addition occurs. “add1” happens at the beginning when the core case geometry is created and add2 happens after all subtractions have occurred. “suball” is used to affect all faces of a case, not just “face”. The “face” is the case piece that will be effected by the addition or subtraction. The "model" type is for placing supporting accessories in the model view. e.g. hard drives, fans. The "platter" type is for adding supporting accessories to the print platter.
#### classes: add1, sub, suball, add2, model, platter
**additive type:**
circle, rectangle, slot, text, art, standoff, batt_holder, uart_holder, hd_holder, hd_holes, hd_vertright_holes, hc4_oled_holder, access_port, button, pcb_holder, boom_grill, boom_speaker_holder
**subtractive type:**
circle, rectangle, slot, text, art, punchout, vent, fan, hd_holes, hd_vertleft_holes, hd_vertright_holes
**model type:**
uart_strap, fan_cover, hd25, hd35, hc4_oled, feet, access_cover, net_card, hk35_lcd, hk_boom, boom_speaker, boom_vring, hk_uart
**platter type:**
uart_strap, fan_cover, access_cover, button_top, boom_vring
#### Shared add and sub “type” commands
**circle**
description: circlular geometry.
*uses:* size_x=dia, size_z=height
**rectangle**
*description:* rectangular geometry with individual defined corner fillets. Radius1 is lower left corner then moves clockwise.
*uses:* size_x, size_y, size_z, data_4=[radius1, radius2, radius3, radius4]
**slot**
*description:* slot geometry.
*uses:* size_x=diameter, size_y=length, size_z=height
**text**
*description:* raised or sunk text
*uses:* data_1=size, data_3="text"
**art**
*description:* art work in dxf or svg format
*uses:* data_1=scale, data_2=height, data_3=file
#### Add class only “types”
**uart_holder**
*description:* console uart holder
*uses:* none
**batt_holder**
*description:* rtc battery holder
*uses:* none
**standoff**
*description:* user defined standoff
*uses:* data_4=
[ 6.75, // radius
5, // height
3.6, // holesize
10, // supportsize
4, // supportheight
1, // 0=none, 1=countersink, 2=recessed hole, 3=nut holder, 4=blind hole
0, // standoff style 0=hex, 1=cylinder
0, // enable reverse standoff
0, // enable insert at top of standoff
4.5, // insert hole dia. mm
5.1] // insert depth mm
**hd_holder**
*description:* double stacked holder for 2.5 and 3.5 drives
*uses:* data_1=2.5 or 3.5, data_3=”portrait” or “landscape”
**hd_vertleft_holder**
*description:* vertical left side holder for 2.5 and 3.5 drives
*uses:* data_1=2.5 or 3.5, data_3=”portrait” or “landscape”
**hd_vertright_holder**
*description:* vertical right side holder for 2.5 and 3.5 drives
*uses:* data_1=2.5 or 3.5, data_3=”portrait” or “landscape”
**hc4_oled_holder**
*description:* hc4 oled holder
*uses:* size_z=floorthick
**access_port**
*description:* bottom access for sd and emmc
*uses:* size_z=floorthick, data_3=”portrait” or “landscape”
**button**
*description:* button top and plunger
*uses:* size_x=diameter,size_z=height, data_3=”reccess”
**pcb_holder**
*description:* pcb bottom edge holder
*uses:* size_x=pcb_x,size_y=pcb_y,size_z=pcb_z, data_1=wall_thick
**boom_grill**
*description:* hk boom bonnet grill covers
*uses:* data_3="flat", "dome", "frame"
**boom_speaker_holder**
*description:* hk boom bonnet speaker friction holder
*uses:* data_1=tolorence
#### Sub class only “types”
**punchout**
*description:* punchout in rectangle, round or slot shape
*uses:* size_x=width, size_y=depth, data_1=gap, size_z=thick, data_2=fillet, data_3="rectangle","round" or "slot"
**vent**
*description:* horizontal or vertical vent openings
*uses:* size_x=open_width, size_y=open_length, size_z=thick, data_4=gap, data_1=rows, data_3=columns, data_3=orientation("vertical","horizontal")
**fan**
*description:* fan opening
*uses:* size_x=size, size_z=thick, date_1=style(1=open,2=fan)
**hd_holes**
*description:* bottom hole pattern for 2.5 or 3.5 drives
*uses:* data_1=2.5 or 3.5, data_2=thick, data_3=”portrait” or “landscape”
**hd_vertleft_holes**
*description:* bottom hole pattern for 2.5 or 3.5 drives
*uses:* data_1=2.5 or 3.5, data_2=thick, data_3=”portrait” or “landscape”
**hd_vertright_holes**
*description:* bottom hole pattern for 2.5 or 3.5 drives
*uses:* data_1=2.5 or 3.5, data_2=thick, data_3=”portrait” or “landscape”-component mask(incomplete)
#### Model class “types”
**uart_strap**
*description:* console uart holder strap
*uses:* none
**fan_cover**
*description:* cover for fan hole opening
*uses:* size_x=40 or 80, size_z=thick
**hd25**
*description:* 2.5 hard drive
*uses:* data_1=height
**hd35**
*description:* 3.5 hard drive
*uses:* none
**hc4_oled**
*description:* hc4_oled model
*uses:* none
**feet**
*description:* case feet
*uses:* size_x=diameter, size_z=height
**access_cover**
*description:* bottom access cover for sd and emmc
*uses:* size_z=floorthick, data_3=”portrait” or “landscape”
**button_top**
*description:* button top and plunger
*uses:* size_x=diameter,size_z=height, data_3=”reccess”
**h2_netcard**
*description:* h2 network card model
*uses:* none
**hk_lcd35**
*description:* hk 3.5 inch lcd model
*uses:* none
**hk_boom**
*description:* hk stereo boom bonnet model
*uses:* data_1=speakers(true or false), data_3=”front” or "rear"
**boom_speaker**
*description:* hk stereo boom bonnet speaker
*uses:* data_1=pcb(true or false), data_3=”left” or "right"
**hk_speaker**
*description:* hk speaker model
*uses:* none
**boom_vring**
*description:* hk stereo boom bonnet volume wheel extention
*uses:* data_1=tolerence
**hk_uart**
*description:* hk console uart model
*uses:* none
#### Platter class “types”
**uart_strap**
*description:* console uart holder strap
*uses:* none
**fan_cover**
*description:* cover for fan hole opening
*uses:* size_x=40 or 80, size_z=thick
**access_cover**
*description:*bottom access cover for sd and emmc
*uses:* size_z=floorthick, data_3=”portrait” or “landscape”
**button_top**
*description:* button top and plunger
*uses:* size_x=diameter,size_z=height, data_3=”reccess”
**boom_vring**
*description:* hk stereo boom bonnet volume wheel extention
*uses:* data_1=tolerence

1
SBC_Model_Framework Submodule

Submodule SBC_Model_Framework added at 3cf4de2b59

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@@ -1,721 +0,0 @@
/*
SBC Data Library Copyright 2018,2019,2020,2021,2022 Edward A. Kisiel hominoid@cablemi.com
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
Code released under GPLv3: http://www.gnu.org/licenses/gpl.html
20190214 Version 1.0.0 sbc data set models "xu4","c2","n1","mc1","hc1","c1+","h2","rpi3b+","a64","rock64","rockpro64"
20190218 Version 1.0.1 Added HK Odroid N2 as "n2"
20200425 Version 1.0.2 Added AtomicPi as "atomicpi"
Updated Odroid n2 sbc data
Added Nvidia Jetson Nano as "jetsonnano"
Updated Odroid h2 sbc data
Added Odroid-C4 as "c4"
Added Odroid-XU4Q as "xu4q"
20200725 Version 1.0.3 Added Odroid-N2+ as "n2+"
20201021 Version 1.0.4 Added Odroid-HC4 as "hc4"
20220202 Version 1.0.5 Added HK Show2
Updated Odroid-HC4 sbc data
raised C4 hdmi, updated Odroid-XU4Q, add type sdcard_i, adjusted C2 usb
20220413 Version 1.0.6 Added Odroid-M1 as m1, adjustments h2, c4 gpio
20220515 Version 1.0.7 Added rockpro64, jetsonnano and other fixes and adjustments
see https://github.com/hominoids/SBC_Case_Builder
Instructions: All measurements from lower left corner of PCB to lower left
corner of component or opening, holes measured to center. All measurements in mm.
PCB orientation is long side of board along the x axis.
Bottom components measured from top left corner to top left corner
of component or opening with the PCB rotated around the x axis.
schema:
"model",pcbsize_x, pcbsize_y, pcbsize_z, pcbcorner_radius, topmax_component_z, bottommax_component_z
pcb_hole1_x, pcb_hole1_y, pcb1_hole_size, pcb_hole2_x, pcb_hole2_y, pcb2_hole_size
pcb_hole3_x, pcb_hole3_y, pcb3_hole_size, pcb_hole4_x, pcb_hole4_y, pcb4_hole_size
pcb_hole5_x, pcb_hole5_y, pcb5_hole_size, pcb_hole6_x, pcb_hole6_y, pcb6_hole_size
pcb_hole7_x, pcb_hole7_y, pcb7_hole_size, pcb_hole8_x, pcb_hole8_y, pcb8_hole_size
pcb_hole9_x, pcb_hole9_y, pcb9_hole_size, pcb_hole10_x, pcb_hole10_y, pcb10_hole_size
soc1size_x, soc1size_y, soc1size_z, soc1loc_x, soc1loc_y, soc1loc_z, soc1_rotation, "soc1_side",
soc2size_x, soc2size_y, soc2size_z, soc2loc_x, soc2loc_y, soc2loc_z, soc2_rotation, "soc2_side",
soc3size_x, soc3size_y, soc3size_z, soc3loc_x, soc3loc_y, soc3loc_z, soc3_rotation, "soc3_side",
soc4size_x, soc4size_y, soc4size_z, soc4loc_x, soc4loc_y, soc4loc_z, soc4_rotation, "soc4_side",
component_x, component_y, component_rotation, "component_side", "component_class","component_type"
component classes and types:
memory - "emmc","emmc_plug","sodimm_5.2","sodimm_9.2"
switch - slide_4x9
button - "momentary_6x6x9","momentary_6x6x4","momentary_6x6x4_90","momentary_4x2x1"
plug - "pwr2.5_5x7.5","pwr5.5_7.5x11.5","pwr5.5_10x10","rtc_micro","audio_micro","uart_micro","molex_4x1","small_encl_satapwr"
usb2 - "single_vert_a","double_stacked_a","micro"
usb3 - double_stacked_a
network - rj45_single
video - "hdmi_a","dp-hdmi_a","mipi_csi","mipi_dsi"
fan - "micro","encl_pmw","encl_pmw_h"
gpio - "encl_header_30","encl_header_12","header_40","header_20"
ic - "ic_2.8x2.8","ic_3x3","ic_3.7x3.7","ic_4x4","ic_4.7x4.7","ic_5x5","ic_5.75x5.75","ic_6x6","ic_6.4x6.4",ic_6.75x6.75",
"ic_7x7","ic_4.3x5.1","ic_5.4x5.3","ic_6.7x8.4","ic_9x9","ic_11x8","ic_13x8","ic_13x9","ic_16x10"
audio - "out-in-spdif","jack_3.5"
storage - "sdcard","sdcard_i","sata_header","sata_power_vrec","sata_encl_power","sata_encl_header","m.2_header","m.2_stud"
combo - "rj45-usb2_double","rj45-usb3_double"
jumper - "header_2x1","header_3x2","header_5x1","header_6x1","header_7x1"
misc - "ir_1","led_3x1.5","lcd_2.2","bat_hold_1"
heatsink - "hc4_oem","c4_oem","c2_oem","c1+_oem","xu4_oem","n1_oem","xu4q_oem","n2_oem","n2+_oem","m1_oem","h2_oem"
pcie - "x4"
jst_ph - number of pins from 2-16
sbc models "c1+","c2","c4","xu4","xu4q","mc1","hc1","hc4","n1","n2","n2+","h2","rpi3b+","a64","rock64","rockpro64","atomicpi","jetsonnano"
*/
sbc_data = [
// Hard Kernel Odroids
["c1+",85,56,1,3.5,17,6, // sbc model, pcb size and component height
3.5,3.5,3,3.5,52.5,3, // pcb holes 1 and 2 location and pcb hole size
61.5,3.5,3,61.5,52.5,3, // pcb holes 3 and 4 location and pcb hole size
9.385,38,3,60.615,18,3, // pcb holes 5 and 6 location and pcb hole size
0,0,0,0,0,0, // pcb holes 7 and 8 location and pcb hole size
0,0,0,0,0,0, // pcb holes 9 and 10 location and pcb hole size
12,12,1.25,34.4,22,0,0,"top", // soc1 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc2 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc3 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc4 size, location, rotation and side
42.28,27.6,90,"bottom","-memory","emmc_plug", // emmc plug location, rotation, side, class and type
40.62,25.25,90,"bottom","memory","emmc", // emmc location, rotation, side, class and type
46.5,40.5,180,"bottom","storage","sdcard", // sdcard location, rotation, side, class and type
6.8,-1,0,"top","usb2","micro", // usb2 otg location, rotation, side, class and type
24.5,-1,0,"top","video","hdmi_a", // hdmi location, rotation, side, class and type
46.5,0,0,"top","plug","pwr2.5_5x7.5", // pwrplug location, rotation, side, class and type
65,2.25,270,"top","network","rj45_single", // ethernet location, rotation, side, class and type
69.61,39.4,270,"top","usb2","double_stacked_a", // usb2 location, rotation, side, class and type
69.61,21.4,270,"top","usb2","double_stacked_a", // usb1 location, rotation, side, class and type
7,50,0,"top","gpio","header_40", // gpio location, rotation, side, class and type
2.5,40.7,90,"top","misc","ir_1", // ir location, rotation, side, class and type
0,15.2,90,"top","plug","uart_micro", // uart location, rotation, side, class and type
14.7,11.86,0,"top","jumper","header_7x1", // jumper location, rotation, side, class and type
16.5,16,0,"top","ic","ic_11x8", // memory location, rotation, side, class and type
16.5,31,0,"top","ic","ic_11x8", // memory location, rotation, side, class and type
55,9,0,"top","ic","ic_5x5", // usbhub 5mm location, rotation, side, class and type
57.7,36,0,"top","ic","ic_5x5", // usbhub 5mm location, rotation, side, class and type
16.5,16,0,"bottom","ic","ic_11x8", // memory location, rotation, side, class and type
16.5,31,0,"bottom","ic","ic_11x8", // memory location, rotation, side, class and type
9.385,38,0,"top","heatsink","c1+_oem"], // heatsink location, rotation, side, class and type
["c2",85,56,1,3.5,17,6, // sbc model, pcb size and component height
3.5,3.5,3,3.5,52.5,3, // pcb holes 1 and 2 location and pcb hole size
61.5,3.5,3,61.5,52.5,3, // pcb holes 3 and 4 location and pcb hole size
9.385,38,3,60.615,18,3, // pcb holes 5 and 6 location and pcb hole size
0,0,0,0,0,0, // pcb holes 7 and 8 location and pcb hole size
0,0,0,0,0,0, // pcb holes 9 and 10 location and pcb hole size
13,13,1.25,32.5,24,0,0,"top", // soc1 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc2 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc3 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc4 size, location, rotation and side
47.09,26.35,90,"bottom","-memory","emmc_plug", // emmc plug location, rotation, side, class and type
45.5,24,90,"bottom","memory","emmc", // emmc location, rotation, side, class and type
46.5,40.5,180,"bottom","storage","sdcard", // sdcard location, rotation, side, class and type
6.8,-1,0,"top","usb2","micro", // usb2 otg location, rotation, side, class and type
18.73,0,90,"top","jumper","header_2x1", // jumper location, rotation, side, class and type
24.5,-1,0,"top","video","hdmi_a", // hdmi location, rotation, side, class and type
46.5,0,0,"top","plug","pwr2.5_5x7.5", // pwrplug location, rotation, side, class and type
65,2.25,270,"top","network","rj45_single", // ethernet location, rotation, side, class and type
69.61,39.6,270,"top","usb2","double_stacked_a", // usb2 location, rotation, side, class and type
69.61,21.6,270,"top","usb2","double_stacked_a", // usb1 location, rotation, side, class and type
7,50,0,"top","gpio","header_40", // gpio location, rotation, side, class and type
2.5,40.7,90,"top","misc","ir_1", // ir location, rotation, side, class and type
0,15.2,90,"top","plug","uart_micro", // uart location, rotation, side, class and type
14.7,11.86,0,"top","jumper","header_7x1", // jumper location, rotation, side, class and type
17,18.25,0,"top","ic","ic_11x8", // memory location, rotation, side, class and type
17,30,0,"top","ic","ic_11x8", // memory location, rotation, side, class and type
55,9,0,"top","ic","ic_5x5", // usbhub 5mm location, rotation, side, class and type
57.7,36,0,"top","ic","ic_5x5", // usbhub 5mm location, rotation, side, class and type
17,18.25,0,"bottom","ic","ic_11x8", // memory location, rotation, side, class and type
17,30,0,"bottom","ic","ic_11x8", // memory location, rotation, side, class and type
9.385,38,0,"top","heatsink","c2_oem"], // heatsink location, rotation, side, class and type
["c4",85,56,1,3.5,18,6, // sbc model, pcb size and component height
3.5,3.5,3,3.5,52.5,3, // pcb holes 1 and 2 location and pcb hole size
61.5,3.5,3,61.5,52.5,3, // pcb holes 3 and 4 location and pcb hole size
4.19,38.1,3,55.39,18.175,3, // pcb holes 5 and 6 location and pcb hole size
0,0,0,0,0,0, // pcb holes 7 and 8 location and pcb hole size
0,0,0,0,0,0, // pcb holes 9 and 10 location and pcb hole size
14.5,14.5,1.25,32.875,22.4,0,0,"top", // soc1 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc2 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc3 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc4 size, location, rotation and side
39.23,15,0,"bottom","-memory","emmc_plug", // emmc plug location, rotation, side, class and type
36.8,1.34,0,"bottom","memory","emmc", // emmc location, rotation, side, class and type
39.5,39.8,180,"bottom","storage","sdcard_i", // sdcard location, rotation, side, class and type
19.75,-1,0,"top","usb2","micro", // usb2 otg location, rotation, side, class and type
38.5,-1,0,"top","video","hdmi_a", // hdmi location, rotation, side, class and type
6.75,-1,0,"top","plug","pwr5.5_7.5x11.5", // pwrplug location, rotation, side, class and type
65.765,2,270,"top","network","rj45_single", // ethernet location, rotation, side, class and type
70,40,270,"top","usb3","double_stacked_a", // usb3 location, rotation, side, class and type
70,22,270,"top","usb3","double_stacked_a", // usb3 location, rotation, side, class and type
8.15,49,0,"top","gpio","header_40", // gpio location, rotation, side, class and type
2.5,41.25,90,"top","misc","ir_1", // ir location, rotation, side, class and type
0,11.5,90,"top","plug","uart_micro", // uart location, rotation, side, class and type
15.25,10.75,0,"top","jumper","header_7x1", // jumper location, rotation, side, class and type
13.185,17.16,0,"top","ic","ic_13x9", // memory location, rotation, side, class and type
13.185,35.174,0,"top","ic","ic_13x9", // memory location, rotation, side, class and type
56.46,33.38,0,"top","ic","ic_9x9", // usbhub 5mm location, rotation, side, class and type
57.6,9.3,0,"top","ic","ic_5x5", // ethernet 5mm location, rotation, side, class and type
13.185,17.16,0,"bottom","ic","ic_13x9", // memory location, rotation, side, class and type
13.185,35.174,0,"bottom","ic","ic_13x9", // memory location, rotation, side, class and type
4.16,38.175,0,"top","heatsink","c4_oem"], // heatsink location, rotation, side, class and type
["xu4",83,59,1,3.5,17,6, // sbc model, pcb size and component height
3.5,3.5,3,3.5,55.5,3, // pcb holes 1 and 2 location and pcb hole size
79.5,3.5,3,79.5,55.5,3, // pcb holes 3 and 4 location and pcb hole size
79.19,21.82,3,28.2,41.82,3, // pcb holes 5 and 6 location and pcb hole size
0,0,3.3,0,0,3.3, // pcb holes 7 and 8 location and pcb hole size
0,0,0,0,0,0, // pcb holes 9 and 10 location and pcb hole size
14.5,15.75,1.25,59,20,0,0,"top", // soc1 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc2 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc3 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc4 size, location, rotation and side
47.5,13.7,0,"bottom","-memory","emmc_plug", // emmc plug location, rotation, side, class and type
45,0,0,"bottom","memory","emmc", // emmc location, rotation, side, class and type
45.85,5,0,"top","storage","sdcard", // sdcard location, rotation, side, class and type
79,7.15,270,"top","switch","slide_4x9", // switch location, rotation, side, class and type
25.925,52.925,0,"top","button","momentary_6x6x9", // pwrbutton location, rotation, side, class and type
34.5,-1,0,"top","plug","pwr5.5_7.5x11.5", // pwrplug location, rotation, side, class and type
26,0,0,"top","usb2","single_vert_a", // usb2 location, rotation, side, class and type
7.55,41.6,180,"top","usb3","double_stacked_a", // usb3 location, rotation, side, class and type
7.4,0,0,"top","network","rj45_single", // ethernet location, rotation, side, class and type
60,-1,0,"top","video","hdmi_a", // hdmi location, rotation, side, class and type
0,37.8,90,"top","plug","uart_micro", // uart location, rotation, side, class and type
0,25,270,"top","plug","rtc_micro", // rtc location, rotation, side, class and type
27,22,90,"top","fan","micro", // fan location, rotation, side, class and type
35.4,52.25,0,"top","gpio","encl_header_30", // gpio1 location, rotation, side, class and type
76.25,32.5,270,"top","gpio","encl_header_12", // gpio2 location, rotation, side, class and type
43.8,27.25,0,"top","ic","ic_5.75x5.75", // pmic location, rotation, side, class and type
32.5,40.5,0,"top","ic","ic_7x7", // usbhum 7mm location, rotation, side, class and type
11.7,22.8,0,"top","ic","ic_6x6", // nic location, rotation, side, class and type
28.39,42,0,"top","heatsink","xu4_oem"], // heatsink location, rotation, side, class and type
["xu4q",83,59,1,3.5,27,6, // sbc model, pcb size and component height
3.5,3.5,3,3.5,55.5,3, // pcb holes 1 and 2 location and pcb hole size
79.5,3.5,3,79.5,55.5,3, // pcb holes 3 and 4 location and pcb hole size
79.19,21.82,3,28.2,41.82,3, // pcb holes 5 and 6 location and pcb hole size
0,0,3.3,0,0,3.3, // pcb holes 7 and 8 location and pcb hole size
0,0,0,0,0,0, // pcb holes 9 and 10 location and pcb hole size
14.5,15.75,1.25,59,20,0,0,"top", // soc1 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc2 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc3 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc4 size, location, rotation and side
47.5,13.7,0,"bottom","-memory","emmc_plug", // emmc plug location, rotation, side, class and type
45,0,0,"bottom","memory","emmc", // emmc location, rotation, side, class and type
45.85,5,0,"top","storage","sdcard", // sdcard location, rotation, side, class and type
79,7.15,270,"top","switch","slide_4x9", // switch location, rotation, side, class and type
25.925,52.925,0,"top","button","momentary_6x6x9", // pwrbutton location, rotation, side, class and type
34.85,-1,0,"top","plug","pwr5.5_7.5x11.5", // pwrplug location, rotation, side, class and type
26,0,0,"top","usb2","single_vert_a", // usb2 location, rotation, side, class and type
7.55,41.6,180,"top","usb3","double_stacked_a", // usb3 location, rotation, side, class and type
7.4,0,0,"top","network","rj45_single", // ethernet location, rotation, side, class and type
60,-1,0,"top","video","hdmi_a", // hdmi location, rotation, side, class and type
0,37.8,90,"top","plug","uart_micro", // uart location, rotation, side, class and type
0,25,270,"top","plug","rtc_micro", // rtc location, rotation, side, class and type
27,22,90,"top","fan","micro", // fan location, rotation, side, class and type
35.4,52.25,0,"top","gpio","encl_header_30", // gpio1 location, rotation, side, class and type
76.25,32.5,270,"top","gpio","encl_header_12", // gpio2 location, rotation, side, class and type
43.8,27.25,0,"top","ic","ic_5.75x5.75", // pmic location, rotation, side, class and type
32.5,40.5,0,"top","ic","ic_7x7", // usbhum 7mm location, rotation, side, class and type
11.7,22.8,0,"top","ic","ic_6x6", // nic location, rotation, side, class and type
28.39,42,0,"top","heatsink","xu4q_oem"], // heatsink location, rotation, side, class and type
["mc1",55,47,1,3.5,16,10, // sbc model, pcb size and component height
2.5,10.5,3,2.5,37,3, // pcb holes 1 and 2 location and pcb hole size
52.5,32.5,3,0,0,3, // pcb holes 3 and 4 location and pcb hole size
0,0,0,0,0,0, // pcb holes 5 and 6 location and pcb hole size
0,0,0,0,0,0, // pcb holes 7 and 8 location and pcb hole size
0,0,0,0,0,0, // pcb holes 9 and 10 location and pcb hole size
14.5,15.75,1.25,2,15,0,0,"bottom", // soc1 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc2 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc3 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc4 size, location, rotation and side
5.5,3,0,"top","storage","sdcard", // sdcard location, rotation, side, class and type
19,-1,0,"top","plug","pwr5.5_7.5x11.5", // pwrplug location, rotation, side, class and type
29.5,-1,0,"top","usb2","single_vert_a", // usb2 location, rotation, side, class and type
37.7,-1,0,"top","network","rj45_single", // ethernet location, rotation, side, class and type
44.2,34.4,90,"top","plug","uart_micro", // uart location, rotation, side, class and type
35,32.3,0,"top","plug","rtc_micro", // rtc location, rotation, side, class and type
42.8,21.85,0,"top","ic","ic_6x6"], // nic location, rotation, side, class and type
["hc1",55,47,1,3.5,16,10, // sbc model, pcb size and component height
2.5,10.5,3,2.5,37,3, // pcb holes 1 and 2 location and pcb hole size
52.5,32.5,3,0,0,3, // pcb holes 3 and 4 location and pcb hole size
0,0,0,0,0,0, // pcb holes 5 and 6 location and pcb hole size
0,0,0,0,0,0, // pcb holes 7 and 8 location and pcb hole size
0,0,0,0,0,0, // pcb holes 9 and 10 location and pcb hole size
14.5,15.75,1.25,2,15,0,0,"bottom", // soc1 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc2 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc3 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc4 size, location, rotation and side
5.5,3,0,"top","storage","sdcard", // sdcard location, rotation, side, class and type
19,-1,0,"top","plug","pwr5.5_7.5x11.5", // pwrplug location, rotation, side, class and type
29.5,-1,0,"top","usb2","single_vert_a", // usb2 location, rotation, side, class and type
37.7,-1,0,"top","network","rj45_single", // ethernet location, rotation, side, class and type
44.2,34.4,90,"top","plug","uart_micro", // uart location, rotation, side, class and type
35,32.3,0,"top","plug","rtc_micro", // rtc location, rotation, side, class and type
42.8,21.85,0,"top","ic","ic_6x6", // nic location, rotation, side, class and type
2,41,0,"top","storage","sata_encl_power"], // sata location, rotation, side, class and type
["n1",90,90,1.5,3.5,16,6, // sbc model, pcb size and component height
12,43,3,3.8,86.5,3, // pcb holes 1 and 2 location and pcb hole size
86.5,28,3,86.5,86.5,3, // pcb holes 3 and 4 location and pcb hole size
24.5,42,3,0,0,3, // pcb holes 5 and 6 location and pcb hole size
75,64.5,3,0,0,3, // pcb holes 7 and 8 location and pcb hole size
0,0,0,0,0,0, // pcb holes 9 and 10 location and pcb hole size
21,21,1.51,48.5,37.5,0,-45,"top", // soc1 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc2 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc3 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc4 size, location, rotation and side
78.7,50,270,"bottom","-memory","emmc_plug", // emmc plug location, rotation, side, class and type
65,48,270,"bottom","memory","emmc", // emmc location, rotation, side, class and type
75,36,90,"bottom","storage","sdcard", // sdcard location, rotation, side, class and type
3,0,0,"top","plug","pwr5.5_7.5x11.5", // pwrplug location, rotation, side, class and type
17,-1,0,"top","video","hdmi_a", // hdmi location, rotation, side, class and type
36,0,0,"top","usb3","double_stacked_a", // usb3 location, rotation, side, class and type
54,0,0,"top","usb2","double_stacked_a", // usb2 location, rotation, side, class and type
72,0,0,"top","network","rj45_single", // ethernet location, rotation, side, class and type
83,32,270,"top","gpio","header_40", // gpio location, rotation, side, class and type
7.5,80,0,"top","button","tall_6x6", // reset button location, rotation, side, class and type
15,80,0,"top","button","tall_6x6", // power button location, rotation, side, class and type
0,24,270,"top","storage","sata_header", // sata location, rotation, side, class and type
0,42.5,270,"top","storage","sata_header", // sata location, rotation, side, class and type
0,59,270,"top","plug","uart_micro", // uart location, rotation, side, class and type
0,74,270,"top","plug","rtc_micro", // rtc location, rotation, side, class and type
20,54,-45,"top","fan","micro", // fan location, rotation, side, class and type
5.5,52,270,"top","plug","molex_4x1", // pwrplug location, rotation, side, class and type
15,31,0,"top","ic","ic_7x7", // sata ic 7mm location, rotation, side, class and type
74.5,24.5,0,"top","ic","ic_6x6", // nic location, rotation, side, class and type
50,25,90,"top","ic","ic_7x7", // usb hum 7mm location, rotation, side, class and type
24,69,90,"top","ic","ic_13x8", // memory location, rotation, side, class and type
38.5,69,90,"top","ic","ic_13x8", // memory location, rotation, side, class and type
50.5,69,90,"top","ic","ic_13x8", // memory location, rotation, side, class and type
65,69,90,"top","ic","ic_13x8", // memory location, rotation, side, class and type
3.5,17.5,90,"top","ic","ic_6x6", // memory location, rotation, side, class and type
12.5,17.5,90,"top","ic","ic_6x6", // memory location, rotation, side, class and type
// 24.5,42,45,"top","heatsink","n1_oem"], // heatsink location, rotation, side, class and type
-15.5,42.5,-45,"top","heatsink","n1_oem"], // heatsink location, rotation, side, class and type
["n2",90,90,1.7,.2,17,20, // sbc model, pcb size and component height
3,28.5,3.3,86.5,28.5,3.3, // pcb holes 1 and 2 location and pcb hole size
3,86.5,3.3,86.5,86.5,3.3, // pcb holes 3 and 4 location and pcb hole size
0,0,0,0,0,0, // pcb holes 5 and 6 location and pcb hole size
0,0,0,0,0,0, // pcb holes 7 and 8 location and pcb hole size
0,0,0,0,0,0, // pcb holes 9 and 10 location and pcb hole size
14.5,16.25,1.51,37.78,50.88,0,0,"bottom", // soc1 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc4 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc4 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc4 size, location, rotation and side
2.35,-1,0,"top","plug","pwr5.5_7.5x11.5", // power plug location, rotation, side, class and type
16.55,0,0,"top","usb3","double_stacked_a", // usb3 location, rotation, side, class and type
34.8,0,0,"top","usb3","double_stacked_a", // usb3 location, rotation, side, class and type
54.5,-1,0,"top","video","hdmi_a", // hdmi location, rotation, side, class and type
71.75,0,0,"top","network","rj45_single", // ethernet location, rotation, side, class and type
83.96,32.1,90,"top","gpio","header_40", // gpio location, rotation, side, class and type
17.61,39.73,0,"top","jumper","header_7x1", // jumper location, rotation, side, class and type
.2,69.05,270,"top","plug","uart_micro", // uart location, rotation, side, class and type
75.05,42.44,180,"top","plug","rtc_micro", // rtc location, rotation, side, class and type
68.5,68.8,90,"top","fan","micro", // fan location, rotation, side, class and type
7.2,76.82,180,"top","storage","sdcard", // sdcard location, rotation, side, class and type
59.35,85.4,180,"top","usb2","micro", // usb2 otg location, rotation, side, class and type
35.85,85.62,0,"top","memory","emmc_plug", // emmc plug location, rotation, side, class and type
33.5,72,0,"top","memory","emmc", // emmc location, rotation, side, class and type
22.4,86.6,180,"top","misc","ir_1", // ir location, rotation, side, class and type
48.45,86.7,180,"top","switch","slide_4x9", // switch location, rotation, side, class and type
73.67,78.95,180,"top","audio","jack_3.5", // switch location, rotation, side, class and type
18.95,46.23,0,"top","ic","ic_13x8", // memory top size, location, rotation and side
19.04,64.24,0,"top","ic","ic_13x8", // memory top size, location, rotation and side
18.95,46.23,0,"bottom","ic","ic_13x8", // memory bottom size, location, rotation and side
19.04,64.24,0,"bottom","ic","ic_13x8", // memory bottom size, location, rotation and side
45.74,27.51,0,"top","ic","ic_6.4x6.4", // component, location, rotation, side, class and type
75.08,25,0,"top","ic","ic_3.7x3.7", // component, location, rotation, side, class and type
74.3,69.54,0,"top","ic","ic_4.3x5.1", // component, location, rotation, side, class and type
50.8,77.25,0,"top","ic","ic_5.4x5.3", // component, location, rotation, side, class and type
77.03,51.92,0,"top","ic","ic_3x3", // component, location, rotation, side, class and type
-1,.5,180,"top","heatsink","n2_oem"], // heatsink location, rotation, side, class and type
["n2+",90,90,1.7,.2,17,14, // sbc model, pcb size and component height
3,28.5,3.3,86.5,28.5,3.3, // pcb holes 1 and 2 location and pcb hole size
3,86.5,3.3,86.5,86.5,3.3, // pcb holes 3 and 4 location and pcb hole size
0,0,0,0,0,0, // pcb holes 5 and 6 location and pcb hole size
0,0,0,0,0,0, // pcb holes 7 and 8 location and pcb hole size
0,0,0,0,0,0, // pcb holes 9 and 10 location and pcb hole size
14.5,16.25,1.51,37.78,50.88,0,0,"bottom", // soc1 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc4 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc4 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc4 size, location, rotation and side
2.35,-1,0,"top","plug","pwr5.5_7.5x11.5", // power plug location, rotation, side, class and type
18,0,0,"top","usb3","double_stacked_a", // usb3 location, rotation, side, class and type
36,0,0,"top","usb3","double_stacked_a", // usb3 location, rotation, side, class and type
54.5,-1,0,"top","video","hdmi_a", // hdmi location, rotation, side, class and type
71.75,0,0,"top","network","rj45_single", // ethernet location, rotation, side, class and type
83.96,32.1,90,"top","gpio","header_40", // gpio location, rotation, side, class and type
17.61,39.73,0,"top","jumper","header_7x1", // jumper location, rotation, side, class and type
.2,69.05,270,"top","plug","uart_micro", // uart location, rotation, side, class and type
53,35,0,"top","misc","bat_hold_1", // battery holder, location, rotation, side, class and type
68.5,68.8,90,"top","fan","micro", // fan location, rotation, side, class and type
7.2,76.82,180,"top","storage","sdcard", // sdcard location, rotation, side, class and type
59.35,85.4,180,"top","usb2","micro", // usb2 otg location, rotation, side, class and type
35.85,85.62,0,"top","memory","emmc_plug", // emmc plug location, rotation, side, class and type
33.5,72,0,"top","memory","emmc", // emmc location, rotation, side, class and type
22.4,86.6,180,"top","misc","ir_1", // ir location, rotation, side, class and type
48.45,86.7,180,"top","switch","slide_4x9", // switch location, rotation, side, class and type
73.67,78.95,180,"top","audio","jack_3.5", // switch location, rotation, side, class and type
18.95,46.23,0,"top","ic","ic_13x8", // memory top size, location, rotation and side
19.04,64.24,0,"top","ic","ic_13x8", // memory top size, location, rotation and side
18.95,46.23,0,"bottom","ic","ic_13x8", // memory bottom size, location, rotation and side
19.04,64.24,0,"bottom","ic","ic_13x8", // memory bottom size, location, rotation and side
45.74,27.51,0,"top","ic","ic_6.4x6.4", // component, location, rotation, side, class and type
75.08,25,0,"top","ic","ic_3.7x3.7", // component, location, rotation, side, class and type
74.3,69.54,0,"top","ic","ic_4.3x5.1", // component, location, rotation, side, class and type
50.8,77.25,0,"top","ic","ic_5.4x5.3", // component, location, rotation, side, class and type
77.03,51.92,0,"top","ic","ic_3x3", // component, location, rotation, side, class and type
1,-.5,0,"top","heatsink","n2+_oem"], // heatsink location, rotation, side, class and type
["n2+_noheatsink",90,90,1.7,.2,17,14, // sbc model, pcb size and component height
3,28.5,3.3,86.5,28.5,3.3, // pcb holes 1 and 2 location and pcb hole size
3,86.5,3.3,86.5,86.5,3.3, // pcb holes 3 and 4 location and pcb hole size
0,0,0,0,0,0, // pcb holes 5 and 6 location and pcb hole size
0,0,0,0,0,0, // pcb holes 7 and 8 location and pcb hole size
0,0,0,0,0,0, // pcb holes 9 and 10 location and pcb hole size
14.5,16.25,1.51,37.78,50.88,0,0,"bottom", // soc1 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc4 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc4 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc4 size, location, rotation and side
2.35,-1,0,"top","plug","pwr5.5_7.5x11.5", // power plug location, rotation, side, class and type
18,0,0,"top","usb3","double_stacked_a", // usb3 location, rotation, side, class and type
36,0,0,"top","usb3","double_stacked_a", // usb3 location, rotation, side, class and type
54.5,-1,0,"top","video","hdmi_a", // hdmi location, rotation, side, class and type
71.75,0,0,"top","network","rj45_single", // ethernet location, rotation, side, class and type
83.96,32.1,90,"top","gpio","header_40", // gpio location, rotation, side, class and type
17.61,39.73,0,"top","jumper","header_7x1", // jumper location, rotation, side, class and type
.2,69.05,270,"top","plug","uart_micro", // uart location, rotation, side, class and type
53,35,0,"top","misc","bat_hold_1", // battery holder, location, rotation, side, class and type
68.5,68.8,90,"top","fan","micro", // fan location, rotation, side, class and type
7.2,76.82,180,"top","storage","sdcard", // sdcard location, rotation, side, class and type
59.35,85.4,180,"top","usb2","micro", // usb2 otg location, rotation, side, class and type
35.85,85.62,0,"top","memory","emmc_plug", // emmc plug location, rotation, side, class and type
33.5,72,0,"top","memory","emmc", // emmc location, rotation, side, class and type
22.4,86.6,180,"top","misc","ir_1", // ir location, rotation, side, class and type
48.45,86.7,270,"top","switch","slide_4x9", // switch location, rotation, side, class and type
73.67,78.95,180,"top","audio","jack_3.5", // switch location, rotation, side, class and type
18.95,46.23,0,"top","ic","ic_13x8", // memory top size, location, rotation and side
19.04,64.24,0,"top","ic","ic_13x8", // memory top size, location, rotation and side
18.95,46.23,0,"bottom","ic","ic_13x8", // memory bottom size, location, rotation and side
19.04,64.24,0,"bottom","ic","ic_13x8", // memory bottom size, location, rotation and side
45.74,27.51,0,"top","ic","ic_6.4x6.4", // component, location, rotation, side, class and type
75.08,25,0,"top","ic","ic_3.7x3.7", // component, location, rotation, side, class and type
74.3,69.54,0,"top","ic","ic_4.3x5.1", // component, location, rotation, side, class and type
50.8,77.25,0,"top","ic","ic_5.4x5.3", // component, location, rotation, side, class and type
77.03,51.92,0,"top","ic","ic_3x3"], // component, location, rotation, side, class and type
["m1",90,122,1.7,.2,17,14, // sbc model, pcb size and component height
3,28.5,3,3,118.5,3, // pcb holes 1 and 2 location and pcb hole size
86.5,118.5,3,,86.5,28.5,3, // pcb holes 3 and 4 location and pcb hole size
3,67,3,66,25,3, // pcb holes 5 and 6 location and pcb hole size
86.5,47,3,0,0,0, // pcb holes 7 and 8 location and pcb hole size
0,0,0,0,0,0, // pcb holes 9 and 10 location and pcb hole size
19,19,1.51,45,43.5,0,45,"bottom", // soc1 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc4 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc4 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc4 size, location, rotation and side
2.35,-1,0,"top","plug","pwr5.5_7.5x11.5", // power plug location, rotation, side, class and type
17,0,0,"top","usb3","double_stacked_a", // usb3 location, rotation, side, class and type
35,0,0,"top","usb2","double_stacked_a", // usb3 location, rotation, side, class and type
54.5,-1,0,"top","video","hdmi_a", // hdmi location, rotation, side, class and type
71.25,0,0,"top","network","rj45_single", // ethernet location, rotation, side, class and type
84.375,62.25,90,"top","gpio","header_40", // gpio location, rotation, side, class and type
.2,101,270,"top","plug","uart_micro", // uart location, rotation, side, class and type
21,88,120,"top","misc","bat_hold_1", // battery holder, location, rotation, side, class and type
61,118,0,"top","plug","audio_micro", // micro location, rotation, side, class and type
7.2,108.82,180,"top","storage","sdcard", // sdcard location, rotation, side, class and type
20,0,0,"bottom","usb2","micro", // usb2 otg location, rotation, side, class and type
35.85,117,0,"top","memory","emmc_plug", // emmc plug location, rotation, side, class and type
33.5,103,0,"top","memory","emmc", // emmc location, rotation, side, class and type
22.4,118.58,180,"top","misc","ir_1", // ir location, rotation, side, class and type
73.73,111.5,180,"top","audio","jack_3.5", // audio jack location, rotation, side, class and type
0,88.2,270,"top","plug","small_encl_satapwr", // pwrplug location, rotation, side, class and type
.25,72,270,"top","storage","sata_header", // sata location, rotation, side, class and type
50,115.65,0,"top","button","momentary_6x6x4", // spi button location, rotation, side, class and type
7,101,0,"top","jumper","header_2x1", // jumper location, rotation, side, class and type
7,103.5,0,"top","jumper","header_2x1", // jumper location, rotation, side, class and type
3.5,35.87,270,"top","storage","m.2_header", // m2 socket location, rotation, side, class and type
36.28,73,0,"bottom","ic","ic_16x10", // memory bottom size, location, rotation and side
75.75,25,0,"top","ic","ic_5x5", // ic bottom size, location, rotation and side
50.5,109.22,0,"top","ic","ic_5x5", // ic bottom size, location, rotation and side
58,72,0,"top","video","mipi_csi", // mipi csi size, location, rotation and side
65,93,0,"top","video","mipi_dsi", // mipi dsi size, location, rotation and side
.5,0,0,"top","heatsink","m1_oem", // heatsink location, rotation, side, class and type
86.5,47,0,"top","storage","m.2_stud"], // m2 stud location, rotation, side, class and type
["m1_noheatsink",90,122,1.7,.2,17,1.6, // sbc model, pcb size and component height
3,28.5,3,3,118.5,3, // pcb holes 1 and 2 location and pcb hole size
86.5,118.5,3,,86.5,28.5,3, // pcb holes 3 and 4 location and pcb hole size
3,67,3,66,25,3, // pcb holes 5 and 6 location and pcb hole size
86.5,47,3,0,0,0, // pcb holes 7 and 8 location and pcb hole size
0,0,0,0,0,0, // pcb holes 9 and 10 location and pcb hole size
19,19,1.51,45,43.5,0,45,"bottom", // soc1 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc4 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc4 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc4 size, location, rotation and side
2.35,-1,0,"top","plug","pwr5.5_7.5x11.5", // power plug location, rotation, side, class and type
18,0,0,"top","usb3","double_stacked_a", // usb3 location, rotation, side, class and type
36,0,0,"top","usb2","double_stacked_a", // usb3 location, rotation, side, class and type
54.5,-1,0,"top","video","hdmi_a", // hdmi location, rotation, side, class and type
71.75,0,0,"top","network","rj45_single", // ethernet location, rotation, side, class and type
84.375,62.25,90,"top","gpio","header_40", // gpio location, rotation, side, class and type
.2,101,270,"top","plug","uart_micro", // uart location, rotation, side, class and type
21,88,120,"top","misc","bat_hold_1", // battery holder, location, rotation, side, class and type
61,118,0,"top","plug","audio_micro", // micro location, rotation, side, class and type
7.2,108.82,180,"top","storage","sdcard", // sdcard location, rotation, side, class and type
20,0,0,"bottom","usb2","micro", // usb2 otg location, rotation, side, class and type
35.85,117,0,"top","memory","emmc_plug", // emmc plug location, rotation, side, class and type
33.5,103,0,"top","memory","emmc", // emmc location, rotation, side, class and type
22.4,118.58,180,"top","misc","ir_1", // ir location, rotation, side, class and type
73.73,111.5,180,"top","audio","jack_3.5", // audio jack location, rotation, side, class and type
0,88.2,270,"top","plug","small_encl_satapwr", // pwrplug location, rotation, side, class and type
.25,72,270,"top","storage","sata_header", // sata location, rotation, side, class and type
50,115.65,0,"top","button","momentary_6x6x4", // spi button location, rotation, side, class and type
7,101,0,"top","jumper","header_2x1", // jumper location, rotation, side, class and type
7,103.5,0,"top","jumper","header_2x1", // jumper location, rotation, side, class and type
3.5,35.87,270,"top","storage","m.2_header", // m2 socket location, rotation, side, class and type
36.28,73,0,"bottom","ic","ic_16x10", // memory bottom size, location, rotation and side
75.75,25,0,"top","ic","ic_5x5", // ic bottom size, location, rotation and side
50.5,109.22,0,"top","ic","ic_5x5", // ic bottom size, location, rotation and side
58,72,0,"top","video","mipi_csi", // mipi csi size, location, rotation and side
65,93,0,"top","video","mipi_dsi", // mipi dsi size, location, rotation and side
86.5,47,0,"top","storage","m.2_stud"], // m2 stud location, rotation, side, class and type
["h2",110,110,2,3.5,38,11, // sbc model, pcb size and component height
3.81,17.78,3.5,3.81,106.19,3.5, // pcb holes 1 and 2 location and pcb hole size
106.04,24.77,3.5,106.04,106.2,3.5, // pcb holes 3 and 4 location and pcb hole size
20.17,43.82,3,0,0,0, // pcb holes 5 and 6 location and pcb hole size
32,40,2.5,82,40,2.5, // pcb holes 7 and 8 location and pcb hole size
32,75,2.5,82,75,2.5, // pcb holes 9 and 10 location and pcb hole size
25,24,1.344,45.29,48.95,0,0,"top", // soc1 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc2 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc3 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc4 size, location, rotation and side
88.72,58.04,0,"top","memory","emmc_plug", // emmc plug location, rotation, side, class and type
86.87,43.84,0,"top","-memory","emmc", // emmc location, rotation, side, class and type
9.34,103.43,0,"top","button","momentary_6x6x4", // power button location, rotation, side, class and type
20.77,103.43,0,"top","button","momentary_6x6x4", // reset button location, rotation, side, class and type
1.27,76.76,90,"top","gpio","header_20", // gpio location, rotation, side, class and type
1.98,-1.73,0,"top","plug","pwr5.5_10x10", // pwrplug location, rotation, side, class and type
20.49,-.71,0,"top","combo","rj45-usb2_double", // rj45 and double usb2 ports location, rotation, side class and type
45.26,-.71,0,"top","combo","rj45-usb3_double", // rj45 and double usb3 ports location, rotation, side class and type
68.81,-.57,0,"top","video","dp-hdmi_a", // display port and hdmi location, rotation, side, class and type
95.25,-1.37,0,"top","audio","out-in-spdif", // audio out, in and spdif location, rotation, side, class and type
103.11,65.85,270,"top","storage","sata_encl_header", // sata location, rotation, side, class and type
103.11,83.62,270,"top","storage","sata_encl_header", // sata location, rotation, side, class and type
103,38.74,90,"top","plug","small_encl_satapwr", // sata power connector location, rotation, side, class and type
103,52.07,90,"top","plug","small_encl_satapwr", // sata power connector location, rotation, side, class and type
105.43,28.59,90,"top","plug","rtc_micro", // rtc location, rotation, side, class and type
0,49.94,270,"top","fan","encl_pmw", // fan pwm connector location, rotation, side, class and type
93.15,23.94,0,"top","ic","ic_6.75x6.75", // audio 6.75mm location, rotation, side, class and type
17.97,53.53,0,"top","ic","ic_4.7x4.7", // ic 4.7mm location, rotation, side, class and type
8.74,15.24,0,"top","ic","ic_6.7x8.4", // ic 6.7x8.4xmm location, rotation, side, class and type
10.76,97.37,0,"bottom","ic","ic_7x7", // ic 7mm location, rotation, side, class and type
29.08,30.99,0,"bottom","ic","ic_2.8x2.8", // ic 2.8mm location, rotation, side, class and type
53.21,30.99,0,"bottom","ic","ic_2.8x2.8", // ic 2.8mm location, rotation, side, class and type
96.32,32.87,270,"bottom","storage","m.2_header", // m2 socket location, rotation, side, class and type
21.98,82.05,0,"bottom","memory","sodimm_5.2", // sodimm socket location, rotation, side, class and type
21.98,98.6,0,"bottom","memory","sodimm_9.2", // sodimm socket location, rotation, side, class and type
32,40,0,"top","heatsink","h2_oem"], // heatsink location, rotation, side, class and type
["hc4",90.6,84,1.6,9,15,13, // sbc model, pcb size and component height
4,5.5,3.5,4,58.5,3.5, // pcb holes 1 and 2 location and pcb hole size
86.5,6,3.5,87,78.5,3.5, // pcb holes 3 and 4 location and pcb hole size
87,15.5,3.5,16.91,44.52,3, // pcb holes 5 and 6 location and pcb hole size
68.09,64.53,3,0,0,0, // pcb holes 7 and 8 location and pcb hole size
0,0,0,0,0,0, // pcb holes 9 and 10 location and pcb hole size
14.5,14.5,1.25,45.86,46,0,0,"bottom", // soc1 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc2 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc3 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc4 size, location, rotation and side
19.2,2,0,"top","storage","sdcard", // sdcard location, rotation, side, class and type
7.3,-1,0,"top","plug","pwr5.5_7.5x11.5", // pwrplug location, rotation, side, class and type
36,-1,0,"top","usb2","single_vert_a", // usb2 location, rotation, side, class and type
67,-1,0,"top","network","rj45_single", // ethernet location, rotation, side, class and type
84.7,38.55,270,"top","plug","uart_micro", // uart location, rotation, side, class and type
75.3,79.45,180,"top","misc","ir_1", // ir location, rotation, side, class and type
85.25,53,90,"top","jumper","header_5x1", // jumper location, rotation, side, class and type
34.65,74.85,0,"bottom","button","momentary_6x6x4", // boot button location, rotation, side, class and type
10,80.70,0,"bottom","fan","encl_pmw_h", // fan pwm connector location, rotation, side, class and type
47.38,-1,0,"bottom","video","hdmi_a", // hdmi location, rotation, side, class and type
25.05,28.85,0,"top","storage","sata_power_vrec", // sata location, rotation, side, class and type
25.05,69.55,0,"top","storage","sata_power_vrec", // sata location, rotation, side, class and type
25.87,38.45,0,"top","ic","ic_13x9", // memory bottom size, location, rotation and side
25.87,56.46,0,"top","ic","ic_13x9", // memory bottom size, location, rotation and side
25.87,38.45,0,"bottom","ic","ic_13x9", // memory bottom size, location, rotation and side
25.87,56.46,0,"bottom","ic","ic_13x9", // memory bottom size, location, rotation and side
78.78,27.6,0,"top","ic","ic_6x6", // nic location, rotation, side, class and type
53.63,32.67,0,"bottom","ic","ic_7x7", // pcie bridge location, rotation, side, class and type
10,59.53,0,"bottom","heatsink","hc4_oem"], // heatsink location, rotation, side, class and type
["show2",83,48,1,3.5,7,3, // sbc model, pcb size and component height
3.5,3.5,3.5,3.5,44.5,3.5, // pcb holes 1 and 2 location and pcb hole size
79.5,3.5,3.5,79.5,44.5,3.5, // pcb holes 3 and 4 location and pcb hole size
0,0,0,0,0,0, // pcb holes 5 and 6 location and pcb hole size
0,0,0,0,0,0, // pcb holes 7 and 8 location and pcb hole size
0,0,0,0,0,0, // pcb holes 9 and 10 location and pcb hole size
8,8,1.25,8,20,0,0,"top", // soc1 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc2 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc3 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc4 size, location, rotation and side
7.5,44,180,"top","usb2","micro", // usb2 otg location, rotation, side, class and type
2,8.83,270,"top","jumper","header_6x1", // jumper location, rotation, side, class and type
15.5,42,270,"top","jumper","header_2x1", // jumper location, rotation, side, class and type
2,35,0,"top","jumper","header_3x2", // jumper location, rotation, side, class and type
2,25.5,270,"top","plug","rtc_micro", // battery location, rotation, side, class and type
7.65,2,0,"top","switch","slide_4x9", // switch location, rotation, side, class and type
21.4,2,0,"top","button","momentary_6x6x4", // power button location, rotation, side, class and type
29.8,3,0,"top","misc","led_3x1.5", // led location, rotation, side, class and type
34,3,0,"top","misc","led_3x1.5", // led location, rotation, side, class and type
38.2,3,0,"top","misc","led_3x1.5", // led location, rotation, side, class and type
46.6,1,180,"top","button","momentary_4x2x1", // momentary button location, rotation, side, class and type
55.2,1,180,"top","button","momentary_4x2x1", // momentary button location, rotation, side, class and type
63.8,1,180,"top","button","momentary_4x2x1", // momentary button location, rotation, side, class and type
19,9,0,"top","misc","lcd_2.2"], // lcd location, rotation, side, class and type
// RasberryPi 3B+, 3B, 3A+, 2, 1B+
["rpi3b+",85.6,56.5,1,3,16,6, // sbc model, pcb size and component height
3.5,3.5,2.75,3.5,52.5,2.75, // pcb holes 1 and 2 location and pcb hole size
61.5,3.5,2.75,61.5,52.5,2.75, // pcb holes 3 and 4 location and pcb hole size
0,0,0,0,0,0, // pcb holes 5 and 6 location and pcb hole size
0,0,0,0,0,0, // pcb holes 7 and 8 location and pcb hole size
0,0,0,0,0,0, // pcb holes 9 and 10 location and pcb hole size
14,14,1.5,19.975,24.525,0,0,"top", // soc1 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc2 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc3 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc4 size, location, rotation and side
0,0,0,"","",""], // component location, rotation, side, class and type
// Pine64 SBCs
["a64",127,79,1.6,3.5,0,0, // sbc model, pcb size and component height
4.5,4,3.3,122.5,4,3.3, // pcb holes 1 and 2 location and pcb hole size
4.5,75,3.3,122.5,75,3.3, // pcb holes 3 and 4 location and pcb hole size
0,0,0,0,0,0, // pcb holes 5 and 6 location and pcb hole size
0,0,0,0,0,0, // pcb holes 7 and 8 location and pcb hole size
0,0,0,0,0,0, // pcb holes 9 and 10 location and pcb hole size
0,0,0,0,0,0,0,"", // soc1 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc2 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc3 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc4 size, location, rotation and side
0,0,0,"","",""], // component, location, rotation, side, class and type
["rock64",85,56,1.6,3.5,14.8,1.7, // sbc model, pcb size and component height
3.5,3.5,2.8,3.5,52.5,2.8, // pcb holes 1 and 2 location and pcb hole size
61.5,3.5,2.8,61.5,52.5,2.8, // pcb holes 3 and 4 location and pcb hole size
0,0,0,0,0,0, // pcb holes 5 and 6 location and pcb hole size
0,0,0,0,0,0, // pcb holes 7 and 8 location and pcb hole size
0,0,0,0,0,0, // pcb holes 9 and 10 location and pcb hole size
0,0,0,0,0,0,0,"", // soc1 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc2 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc3 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc4 size, location, rotation and side
0,0,0,"","",""], // component, location, rotation, side, class and type
["rockpro64",127,79.5,2,3.5,17,8, // sbc model, pcb size and component height
4.5,4.25,3.25,4.5,75.25,3.25, // pcb holes 1 and 2 location and pcb hole size
122.5,4.25,3.25,122.5,75.25,3.25, // pcb holes 3 and 4 location and pcb hole size
45.5,67.4,3.25,87,25.6,3.25, // pcb holes 5 and 6 location and pcb hole size
0,0,0,0,0,0, // pcb holes 7 and 8 location and pcb hole size
0,0,0,0,0,0, // pcb holes 9 and 10 location and pcb hole size
21,21,1.5,48,47.3,0,45,"top", // soc1 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc2 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc3 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc4 size, location, rotation and side
-1.5,12,90,"top","plug","pwr5.5_7.5x11.5", // component, location, rotation, side, class and type
-1.5, 32, 90, "top", "network", "rj45_single", // rj45 ethernet port
-1.5, 52.4, 90, "top", "video", "hdmi_a", // hdmi port
114.4, 9.8, 270, "top", "audio", "jack_3.5", // audio jack
118, 19.5, 270, "top", "button", "momentary_6x6x4_90", // Power button
118, 28.5, 270, "top", "button", "momentary_6x6x4_90", // Reset button
112, 38.7, 270, "top", "usb2", "double_stacked_a", // USB-2 stack
112, 55, 270, "top", "usb3", "double_stacked_a", // USB-3 / USB-C stack
13.6, 73.4, 0, "top", "button", "momentary_4x2x1", // recover button
42.6, 73.4, 0, "top", "gpio", "header_40", // gpio
43.5, 0, 0, "top", "pcie", "x4", // pcie x4 port
98.9, 14.7, 0, "top", "memory", "emmc_plug", // mmc port
97.2, 0, 0, "bottom", "storage", "sdcard", // micro sdcard
94.6, 73.4, 0, "top", "jst_ph", 2, // fan header
101.4, 73.4, 0, "top", "jst_ph", 3, // SPDIF header
110.3, 73.4, 0, "top", "jst_ph", 2, // rtc header
10.6, 13.2, 270, "top", "jst_ph", 4], // sata dc out
["atomicpi",130.44,99.9,1.63,3,14,8, // sbc model, pcb size and component height
4.22,3.95,3,126.22,3.95,3, // pcb holes 1 and 2 location and pcb hole size
126.22,95.95,3,4.22,95.95,3, // pcb holes 3 and 4 location and pcb hole size
64.67,95.95,3,0,0,0, // pcb holes 5 and 6 location and pcb hole size
0,0,0,0,0,0, // pcb holes 7 and 8 location and pcb hole size
0,0,0,0,0,0, // pcb holes 9 and 10 location and pcb hole size
0,0,0,0,0,0,0,"", // soc1 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc2 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc3 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc4 size, location, rotation and side
0,0,0,"","",""], // component, location, rotation, side, class and type
["jetsonnano",100,80,1.63,.2,27,3, // sbc model, pcb size and component height
4,17,3,4,75,3, // pcb holes 1 and 2 location and pcb hole size
90,17,3,90,75,3, // pcb holes 3 and 4 location and pcb hole size
16,75,3,80,75,3, // pcb holes 5 and 6 location and pcb hole size
0,0,0,0,0,0, // pcb holes 7 and 8 location and pcb hole size
0,0,0,0,0,0, // pcb holes 9 and 10 location and pcb hole size
0,0,0,0,0,0,0,"", // soc1 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc2 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc3 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc4 size, location, rotation and side
2,-1,0,"top","plug","pwr5.5_7.5x11.5", // power plug location, rotation, side, class and type
14,-1,0,"top","video","dp-hdmi_a", // hdmi location, rotation, side, class and type
36,0,0,"top","usb3","double_stacked_a", // usb3 location, rotation, side, class and type
53,0,0,"top","usb3","double_stacked_a", // usb3 location, rotation, side, class and type
68.5,0,0,"top","network","rj45_single", // ethernet location, rotation, side, class and type
88,-1,0,"top","usb2","micro", // otg location, rotation, side, class and type
29,53,0,"top","ic","ic_9x9", // hub size, location, rotation and side
2,36,90,"top","video","mipi_csi", // mipi_csi location, rotation, side, class and type
72,45,90,"top","storage","m.2_header", // m.2 header location, rotation, side, class and type
44,57,0,"top","storage","m.2_stud", // m.2 stud location, rotation, side, class and type
11.5,30,180,"top","cm_holder","jetsonnano", // cm holder location, rotation, side, class and type
13,33,0,"top","cm","jetsonnano", // cm location, rotation, side, class and type
87.5,20,90,"top","gpio","header_40", // gpio location, rotation, side, class and type
72,24,0,"top","jumper","header_2x1", // jumper location, rotation, side, class and type
77,24,0,"top","jumper","header_2x1", // jumper location, rotation, side, class and type
.5,30,0,"top","jumper","header_2x1", // jumper location, rotation, side, class and type
.5,68.25,0,"top","jumper","header_2x1", // jumper location, rotation, side, class and type
.5,65.5,0,"top","jumper","header_2x1", // jumper location, rotation, side, class and type
.5,62.75,0,"top","jumper","header_2x1", // jumper location, rotation, side, class and type
.5,60,0,"top","jumper","header_2x1", // jumper location, rotation, side, class and type
93,72.5,90,"top","jumper","header_2x1", // jumper location, rotation, side, class and type
95.75,72.5,90,"top","jumper","header_2x1", // jumper location, rotation, side, class and type
8,62,90,"top","jumper","header_6x1"], // jumper location, rotation, side, class and type
["test",127,79,1.6,3.5,17,6, // sbc model, pcb size and component height
4.5,4,3.3,122.5,4,3.3, // pcb holes 1 and 2 location and pcb hole size
4.5,75,3.3,122.5,75,3.3, // pcb holes 3 and 4 location and pcb hole size
0,0,0,0,0,0, // pcb holes 5 and 6 location and pcb hole size
0,0,0,0,0,0, // pcb holes 7 and 8 location and pcb hole size
0,0,0,0,0,0, // pcb holes 9 and 10 location and pcb hole size
0,0,0,0,0,0,0,"", // soc1 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc2 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc3 size, location, rotation and side
0,0,0,0,0,0,0,"", // soc4 size, location, rotation and side
100, -1, 0, "top", "misc", "ir_1", // ir_1
-1, 67, 90, "top", "misc", "ir_1", // ir_1
60, 61, 180, "top", "misc", "ir_1", // ir_1
108.5, 67, 270, "top", "misc", "ir_1", // ir_1
0,0,0,"","",""] // component, location, rotation, side, class and type
];

View File

@@ -1,214 +0,0 @@
/*
SBC Models Copyright 2016,2017,2018,2019,2020,2021,2022 Edward A. Kisiel hominoid@cablemi.com
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
Code released under GPLv3: http://www.gnu.org/licenses/gpl.html
20190214 Version 1.0.0 SBC Model Framework
20190218 Version 1.0.1 Added HK Odroid-N2 as "n2"
20200425 Version 1.0.2 Added AtomicPi as "atomicpi"
Added Nvidia JetsonNano as "jetsonnano"
Updated Odroid-N2 sbc data
Updated Odroid-H2 sbc data
Added Odroid-C4 as"c4"
Added oem heatsinks
Added Odroid-XU4Q as "xu4q"
20200725 Version 1.0.3 Added Odroid-N2+ and heatsink
20201021 Version 1.0.4 Added HK Odroid-HC4 as "hc4"
20220202 Version 1.0.5 Added HK Show2 as "show2"
20220413 Version 1.0.6 Added Odroid-M1 as "m1"
20220515 Version 1.0.7 Added rockpro64, jetsonnano, updated sbc_test.scad, sbc_test_components.scad and other fixes and adjustments
see https://github.com/hominoids/SBC_Case_Builder
USE: sbc(model)
model = "c1+","c2","c4","xu4","xu4q","mc1","hc1","hc4","n1","n2","n2+","h2"
"rpi3b+","a64","rock64","rockpro64","atomicpi","jetsonnano","show2"
*/
include <./sbc_models.cfg>
use <./sbc_library.scad>
module sbc(model) {
sbc_model = [model];
s = search(sbc_model,sbc_data);
$fn=60;
// pcb and holes
// pcbsize_x, pcbsize_y, pcbsize_z, pcbcorner_radius, topmax_component_z, bottommax_component_z
pcbsize_x = sbc_data[s[0]][1];
pcbsize_y = sbc_data[s[0]][2];
pcbsize_z = sbc_data[s[0]][3];
pcbcorner_radius = sbc_data[s[0]][4];
difference() {
color("tan") pcb([pcbsize_x,pcbsize_y,pcbsize_z], pcbcorner_radius);
// pcb mounting holes
for (i=[7:3:36]) {
pcb_hole_x = sbc_data[s[0]][i];
pcb_hole_y = sbc_data[s[0]][i+1];
pcb_hole_size = sbc_data[s[0]][i+2];
if (pcb_hole_x!=0 && pcb_hole_y!=0) {
translate([pcb_hole_x,pcb_hole_y,-1])
cylinder(d=pcb_hole_size, h=5);
}
}
}
// soc placement
// soc1size_x, soc1size_y, soc1size_z, soc1loc_x, soc1loc_y, soc1loc_z, soc1_rotation, "soc1_side"
for (i=[37:8:68]) {
soc1size_x = sbc_data[s[0]][i];
soc1size_y = sbc_data[s[0]][i+1];
soc1size_z = sbc_data[s[0]][i+2];
soc1loc_x = sbc_data[s[0]][i+3];
soc1loc_y = sbc_data[s[0]][i+4];
soc1loc_z = sbc_data[s[0]][i+5];
soc1_rotation = sbc_data[s[0]][i+6];
soc1_side = sbc_data[s[0]][i+7];
if (soc1size_x!=0 && soc1size_y!=0) {
if (soc1_side == "top" ) {
color("dimgray",1)
translate([soc1loc_x,soc1loc_y,pcbsize_z])
rotate([0,0,-soc1_rotation])
cube([soc1size_x,soc1size_y,soc1size_z]);
}
if (soc1_side == "bottom") {
color("dimgray",1)
translate([soc1loc_x,soc1loc_y,-pcbsize_z])
rotate([0,0,soc1_rotation])
cube([soc1size_x,soc1size_y,soc1size_z]);
}
}
}
// component placement loc_x, loc_y, rotation, "side", "type"
for (i=[69:6:len(sbc_data[s[0]])]) {
loc_x = sbc_data[s[0]][i];
loc_y = sbc_data[s[0]][i+1];
rotation = sbc_data[s[0]][i+2];
side = sbc_data[s[0]][i+3];
class = sbc_data[s[0]][i+4];
type = sbc_data[s[0]][i+5];
if (class == "memory") {
if (loc_x!=0 || loc_y!=0) {
memory(loc_x,loc_y,rotation,side,type,pcbsize_z);
}
}
if (class == "switch") {
if (loc_x!=0 || loc_y!=0) {
switch(loc_x,loc_y,rotation,side,type,pcbsize_z);
}
}
if (class == "button") {
if (loc_x!=0 || loc_y!=0) {
button(loc_x,loc_y,rotation,side,type,pcbsize_z);
}
}
if (class == "plug") {
if (loc_x!=0 || loc_y!=0) {
plug(loc_x,loc_y,rotation,side,type,pcbsize_z);
}
}
if (class == "usb2") {
if (loc_x!=0 || loc_y!=0) {
usb2(loc_x,loc_y,rotation,side,type,pcbsize_z);
}
}
if (class == "usb3") {
if (loc_x!=0 || loc_y!=0) {
usb3(loc_x,loc_y,rotation,side,type,pcbsize_z);
}
}
if (class == "network") {
if (loc_x!=0 || loc_y!=0) {
network(loc_x,loc_y,rotation,side,type,pcbsize_z);
}
}
if (class == "video") {
if (loc_x!=0 || loc_y!=0) {
video(loc_x,loc_y,rotation,side,type,pcbsize_z);
}
}
if (class == "fan") {
if (loc_x!=0 || loc_y!=0) {
fan(loc_x,loc_y,rotation,side,type,pcbsize_z);
}
}
if (class == "gpio") {
if (loc_x!=0 || loc_y!=0) {
gpio(loc_x,loc_y,rotation,side,type,pcbsize_z);
}
}
if (class == "audio") {
if (loc_x!=0 || loc_y!=0) {
audio(loc_x,loc_y,rotation,side,type,pcbsize_z);
}
}
if (class == "storage") {
if (loc_x!=0 || loc_y!=0) {
storage(loc_x,loc_y,rotation,side,type,pcbsize_z);
}
}
if (class == "combo") {
if (loc_x!=0 || loc_y!=0) {
combo(loc_x,loc_y,rotation,side,type,pcbsize_z);
}
}
if (class == "jumper") {
if (loc_x!=0 || loc_y!=0) {
jumper(loc_x,loc_y,rotation,side,type,pcbsize_z);
}
}
if (class == "ic") {
if (loc_x!=0 || loc_y!=0) {
ic(loc_x,loc_y,rotation,side,type,pcbsize_z);
}
}
if (class == "misc") {
if (loc_x!=0 || loc_y!=0) {
misc(loc_x,loc_y,rotation,side,type,pcbsize_z);
}
}
if (class == "heatsink") {
if (loc_x!=0 || loc_y!=0) {
heatsink(loc_x,loc_y,rotation,side,type,pcbsize_z,sbc_data[s[0]][39]);
}
}
if (class == "pcie") {
if(loc_x!=0 || loc_y!=0) {
pcie(loc_x, loc_y, rotation, side, type, pcbsize_z);
}
}
if (class == "jst_ph") {
if(loc_x!=0 || loc_y!=0) {
jst_ph(loc_x, loc_y, rotation, side, type, pcbsize_z);
}
}
if (class == "cm_holder") {
if(loc_x!=0 || loc_y!=0) {
cm_holder(loc_x, loc_y, rotation, side, type, pcbsize_z);
}
}
if (class == "cm") {
if(loc_x!=0 || loc_y!=0) {
cm(loc_x, loc_y, rotation, side, type, pcbsize_z);
}
}
}
}

View File

@@ -1664,12 +1664,12 @@ case_data = [
0,0,0,0,0,0,0, // pcb_loc_x,pcb_loc_y,pcb_loc_z,case_offset_x,case_offset_y,case_offset_tz,case_offset_bz,
2,2,2,1.5,[3,3], // wallthick,floorthick,sidethick,gap,fillet
false,true,true,true,true, // indents,sidewall_support,sbc_top_standoffs,sbc_bottom_standoffs,case_ext_standoffs
false,"vent","fan","vent","true", // sata_punchout,gpio_opening,cooling,exhaust_vents,mode
false,"none","fan","vent","true", // sata_punchout,gpio_opening,cooling,exhaust_vents,mode
[6.75,15,2.5,10,4,4,0,1,0,4.5,5.1], // top_pcb_standoff
[6.75,11.4,3.6,10,4,1,0,0,0,4.5,5.1], // bottom_pcb_standoff
[6.75,15,2.5,10,4,4,0,1,1,4.5,5.1], // top_ext_standoff
[6.75,11.4,3.6,10,4,2,0,0,0,4.5,5.1], // bottom_ext_standoff
"sub","fan",43,26,25,"top",[0,0,0],40,0,6,2,0,"",0, // sub fan opening
"sub","fan",20,0,25,"top",[0,0,0],80,0,6,2,0,"",0, // sub fan opening
"sub","rectangle",43,0,25,"top",[0,0,0],40,10,6,0,0,"",[1,1,1,1]], // sub pcie opening
["rockpro64_panel","rockpro64","panel","none", // case_name, sbc_model, case_design, case_style
@@ -1737,6 +1737,46 @@ case_data = [
"add1","rectangle",22.5,9,8.85,"top",[0,0,0],47,36,3.25,0,0,"",[.5,.5,.5,.5], // add screen trim
"sub","rectangle",23.5,10,8.5,"top",[0,0,0],45,34,8,0,0,"",[.5,.5,.5,.5]], // sub screen opening
["rpi3b+_shell","rpi3b+","shell","none", // case_name,sbc_model,case_design,case_style
0,0,0,0,0,0,0, // pcb_loc_x,pcb_loc_y,pcb_loc_z,case_offset_x,case_offset_y,case_offset_tz,case_offset_bz,
2,2,3,1.5,[3.5,0], // wallthick,floorthick,sidethick,gap,fillet
true,true,true,true,false, // indents,sidewall_support,sbc_top_standoffs,sbc_bottom_standoffs,case_ext_standoffs
false,"none","fan","vent","true", // sata_punchout,gpio_opening,cooling,exhaust_vents,mode
[6.75,18,2.5,10,4,4,0,1,0,4.5,5.1], // top_pcb_standoff
[6.75,5,3.6,10,4,1,0,0,0,4.5,5.1], // bottom_pcb_standoff
[6.75,18,2.5,10,4,4,0,1,0,4.5,5.1], // top_ext_standoff
[6.75,5,3.6,10,4,1,0,0,0,4.5,5.1]], // bottom_ext_standoff
["rpi3b+_panel","rpi3b+","panel","none", // case_name,sbc_model,case_design,case_style
0,0,0,0,0,0,0, // pcb_loc_x,pcb_loc_y,pcb_loc_z,case_offset_x,case_offset_y,case_offset_tz,case_offset_bz,
2,2,3,1.5,[3.5,0], // wallthick,floorthick,sidethick,gap,fillet
true,false,false,true,false, // indents,sidewall_support,sbc_top_standoffs,sbc_bottom_standoffs,case_ext_standoffs
false,"none","fan","vent","true", // sata_punchout,gpio_opening,cooling,exhaust_vents,mode
[6.75,18,2.5,10,4,4,0,1,0,4.5,5.1], // top_pcb_standoff
[6.75,5,3.6,10,4,1,0,0,0,4.5,5.1], // bottom_pcb_standoff
[6.75,18,2.5,10,4,4,0,1,0,4.5,5.1], // top_ext_standoff
[6.75,5,3.6,10,4,1,0,0,0,4.5,5.1]], // bottom_ext_standoff
["rpi3b+_stacked","rpi3b+","stacked","none", // case_name,sbc_model,case_design,case_style
0,0,0,0,0,0,0, // pcb_loc_x,pcb_loc_y,pcb_loc_z,case_offset_x,case_offset_y,case_offset_tz,case_offset_bz,
2,2,3,1.5,[3.5,0], // wallthick,floorthick,sidethick,gap,fillet
false,false,true,true,false, // indents,sidewall_support,sbc_top_standoffs,sbc_bottom_standoffs,case_ext_standoffs
false,"none","fan","none","true", // sata_punchout,gpio_opening,cooling,exhaust_vents,mode
[6.75,18,2.5,10,4,4,0,1,0,4.5,5.1], // top_pcb_standoff
[6.75,5,3.6,10,4,1,0,0,0,4.5,5.1], // bottom_pcb_standoff
[6.75,18,2.5,10,4,4,0,1,0,4.5,5.1], // top_ext_standoff
[6.75,5,3.6,10,4,1,0,0,0,4.5,5.1]], // bottom_ext_standoff
["rpi3b+_tray","rpi3b+","tray","none", // case_name,sbc_model,case_design,case_style
0,0,0,0,0,0,4, // pcb_loc_x,pcb_loc_y,pcb_loc_z,case_offset_x,case_offset_y,case_offset_tz,case_offset_bz,
2,2,2,1.5,[3.5,0], // wallthick,floorthick,sidethick,gap,fillet
true,false,false,true,false, // indents,sidewall_support,sbc_top_standoffs,sbc_bottom_standoffs,case_ext_standoffs
false,"none","fan","vent","true", // sata_punchout,gpio_opening,cooling,exhaust_vents,mode
[6.75,18,2.5,10,4,4,0,1,0,4.5,5.1], // top_pcb_standoff
[6.75,5,3.6,10,4,1,0,0,0,4.5,5.1], // bottom_pcb_standoff
[6.75,18,2.5,10,4,4,0,1,0,4.5,5.1], // top_ext_standoff
[6.75,5,3.6,10,4,1,0,0,0,4.5,5.1]], // bottom_ext_standoff
["test","test","shell","none", // case_name, sbc_model, case_design, case_style
0,0,0,0,0,0,0, // pcb_loc_x,pcb_loc_y,pcb_loc_z,case_offset_x,case_offset_y,case_offset_tz,case_offset_bz,
2,2,3,2,[3.5,3], // wallthick,floorthick,sidethick,gap,fillet

View File

@@ -38,25 +38,35 @@
see https://github.com/hominoids/SBC_Case_Builder
*/
use <./lib/sbc_models.scad>;
use <./SBC_Model_Framework/sbc_models.scad>;
use <./sbc_case_builder_library.scad>;
use <./lib/fillets.scad>;
include <./lib/sbc_models.cfg>;
include <./SBC_Model_Framework/sbc_models.cfg>;
include <./sbc_case_builder.cfg>;
case_name = "c4_round"; // case_name to load from sbc_case_builder.cfg
view = "model"; // viewing mode "platter", "model", "debug"
/* [Board and View] */
// case_name to load from sbc_case_builder.cfg
case_name = "rpi3b+_stacked"; // [c1+_shell,c1+_shell_boombox,c1+_panel,c1+_panel_boombox,c1+_panel_lcd3.5,c1+_desktop_lcd3.5,c1+_stacked,c1+_tray,c1+_tray_sides,c1+_tray_boombox,c1+_tray_vu5,c1+_tray_vu7,c2_shell,c2_shell_boombox,c2_panel,c2_panel_boombox,c2_panel_lcd3.5,c2_desktop_lcd3.5,c2_deskboom_lcd3.5,c2_stacked,c2_tray,c2_tray_sides,c2_tray_boombox,c2_tray_vu5,c2_tray_vu7,c4_shell,c4_shell_boombox,c4_shell_vu7c,c4_panel,c4_panel_lcd3.5,c4_desktop_lcd3.5,c4_deskboom_lcd3.5,c4_panel_boombox,c4_stacked,c4_tray,c4_tray_sides,c4_tray_boombox,c4_tray_vu5,c4_tray_vu7,xu4_shell,xu4_panel,xu4_stacked,xu4_tray,xu4_tray_sides,xu4_tray_vu5,xu4_tray_vu7,xu4q_shell,xu4q_panel,xu4q_stacked,xu4q_tray,xu4q_tray_sides,xu4q_tray_vu5,xu4q_tray_vu7,n1_shell,n1_panel,n1_stacked,n1_tray,n1_tray_sides,n1_tray_vu5,n1_tray_vu7,n2_panel,n2_tray,n2_tray_sides,n2_tray_vu5,n2_tray_vu7,n2+_panel,n2+_tray,n2+_tray_sides,n2+_tray_vu5,n2+_tray_vu7,n2+_tray_vu7_fan,m1_panel,m1_tray,m1_tray_drive,m1_tray_sides,m1_tray_vu5,m1_tray_vu7,h2_shell,h2_panel,h2_stacked,h2_tray,h2_tray_sides,h2_tray_vu5,h2_tray_vu7,h2_tray_router,h2_router_station,h2_lowboy,h2_lowboy_router,h2_shell_router,h2_shell_router-ssd,hc4_shell,hc4_panel,hc4_stacked,hc4_tray,hc4_tray_sides,hc4_tray_vu5,hc4_tray_vu7,hc4_tray_drivebox2.5,hc4_shell_drivebox2.5,hc4_shell_drivebox2.5v,hc4_shell_drivebox3.5,jetsonnano_shell,jetsonnano_panel,jetsonnano_stacked,jetsonnano_tray,jetsonnano_tray_sides,rockpro64_shell,rockpro64_panel,rockpro64_stacked,rockpro64_tray,rockpro64_tray_sides,show2_shell,rpi3b+_shell,rpi3b+_panel,rpi3b+_stacked,rpi3b+_tray,test]
// viewing mode "platter", "model", "debug"
view = "platter"; // [platter, model, debug]
highlight = false; // enable highlight for subtarctive geometry (true or false)
sbc_off = true; // sbc off in model view (true or false)
raise_top = 0; // raises top mm in model view or < 0 = off
lower_bottom = 0; // lowers bottom mm in model view or < 0 = off
move_leftside = 0; // move left side mm in model view or < 0 = off
move_rightside = 0; // move right side mm in model view or < 0 = off
move_front = 0; // move front mm in model view or < 0 = off
move_rear = 0; // move rear mm in model view or < 0 = off
case_fn = 360; // circle segments for round cases
case_ffn = 90; // circle segments for fillet of round cases
/* [Adjustments] */
// enable highlight for subtarctive geometry (true or false)
highlight = false;
// sbc off in model view (true or false)
sbc_off = false;
// raises top mm in model view or < 0 = off
raise_top = 0;
// lowers bottom mm in model view or < 0 = off
lower_bottom = 0;
// move left side mm in model view or < 0 = off
move_leftside = 0;
// move right side mm in model view or < 0 = off
move_rightside = 0;
// move front mm in model view or < 0 = off
move_front = 0;
// move rear mm in model view or < 0 = off
move_rear = 0;
c = search([case_name],case_data);
@@ -157,6 +167,7 @@ bottom_ext_standoff = [case_data[c[0]][29][0], // diameter
case_data[c[0]][29][9], // insert hole dia. mm
case_data[c[0]][29][10]]; // insert depth mm
/* [Hidden] */
adjust = .01;
$fn=90;

View File

@@ -2544,6 +2544,26 @@ module mask(loc_x,loc_y,loc_z,rotation,side,class,type,wallthick,gap,floorthick,
place(loc_x+6,loc_y-.25,loc_z,10.5,13.5,rotation,side)
cube([10.5,8,10.5]);
}
// pwr5.5_9.5x7 opening
if(type == "pwr5.5_9.5x7" && rotation == 0) {
place(loc_x-.25,loc_y-6,loc_z,10,13.5,rotation,side)
cube([10,8,7.5]);
}
// pwr5.5_9.5x7 opening
if(type == "pwr5.5_9.5x7" && rotation == 90) {
place(loc_x-6,loc_y-.25,loc_z,10,13.5,rotation,side)
cube([10,8,7.5]);
}
// pwr5.5_9.5x7 opening
if(type == "pwr5.5_9.5x7" && rotation == 180) {
place(loc_x-.25,loc_y+6,loc_z,10,13.5,rotation,side)
cube([10,8,7.5]);
}
// pwr5.5_9.5x7 opening
if(type == "pwr5.5_9.5x7" && rotation == 270) {
place(loc_x+6,loc_y-.25,loc_z,10,13.5,rotation,side)
cube([10,8,7.5]);
}
// emmc storage
if(type == "emmc" && side == "bottom" && rotation == 0) {
place(loc_x-.5,loc_y-.5,floorthick+adjust,14.5,19.5,rotation,side)