From c80f864884f7aed37fdeccc39b2d0d4b14a816e8 Mon Sep 17 00:00:00 2001 From: Alexey Chernov <4ernov@gmail.com> Date: Fri, 7 Sep 2018 02:27:55 +0300 Subject: [PATCH 1/3] Hat template for Orange Pi Zero Plus2 board Template of expansion board (a.k.a. "hat") for Orange Pi Zero Plus2 single-board computer is added. PCB dimensions and layout and I/O pin mapping are carefully checked against available mechanical drawing CAD file (can be found at http://www.orangepi.org/downloadresources/, bottom of the page). --- orange-pi-zero-plus2-hat/meta/brd.png | Bin 0 -> 48666 bytes orange-pi-zero-plus2-hat/meta/icon.png | Bin 0 -> 3698 bytes orange-pi-zero-plus2-hat/meta/info.html | 25 ++ .../orange-pi-zero-plus2-hat.kicad_pcb | 401 ++++++++++++++++++ .../orange-pi-zero-plus2-hat.pro | 10 + .../orange-pi-zero-plus2-hat.sch | 217 ++++++++++ 6 files changed, 653 insertions(+) create mode 100644 orange-pi-zero-plus2-hat/meta/brd.png create mode 100644 orange-pi-zero-plus2-hat/meta/icon.png create mode 100644 orange-pi-zero-plus2-hat/meta/info.html create mode 100644 orange-pi-zero-plus2-hat/orange-pi-zero-plus2-hat.kicad_pcb create mode 100644 orange-pi-zero-plus2-hat/orange-pi-zero-plus2-hat.pro create mode 100644 orange-pi-zero-plus2-hat/orange-pi-zero-plus2-hat.sch diff --git a/orange-pi-zero-plus2-hat/meta/brd.png b/orange-pi-zero-plus2-hat/meta/brd.png new file mode 100644 index 0000000000000000000000000000000000000000..79c8b6b8825b25383b8f8205af85a0598d008769 GIT binary patch literal 48666 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 hNI8@D6DfF>Pi18Z4`W00009a7bBm000ie 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 Q>i_@%07*qoM6N<$g0E5zga7~l literal 0 HcmV?d00001 diff --git a/orange-pi-zero-plus2-hat/meta/info.html b/orange-pi-zero-plus2-hat/meta/info.html new file mode 100644 index 0000000..968261c --- /dev/null +++ b/orange-pi-zero-plus2-hat/meta/info.html @@ -0,0 +1,25 @@ + + +Hat for Orange Pi Zero Plus2 + + +

Orange Pi Zero Plus2

+

Hat

+ +

This project template is the basis of an expansion board (a.k.a. "hat") for the + +Orange Pi Zero Plus2 single-board computer.

+ +

This base project includes a PCB edge defined as the same size as the +Orange Pi Zero Plus2 PCB (according to its original mechanical drawing) with the + connectors placed correctly to align the two boards. +All IO present on the Orange Pi Zero Plus2 board is connected to the project + through the 0.1" expansion headers (female sockets are on the hat).

+ +

The board outline looks like the following:

+ +

+ +

(c)2018 Alexey Chernov

+ + diff --git a/orange-pi-zero-plus2-hat/orange-pi-zero-plus2-hat.kicad_pcb b/orange-pi-zero-plus2-hat/orange-pi-zero-plus2-hat.kicad_pcb new file mode 100644 index 0000000..87ff448 --- /dev/null +++ b/orange-pi-zero-plus2-hat/orange-pi-zero-plus2-hat.kicad_pcb @@ -0,0 +1,401 @@ +(kicad_pcb (version 20171130) (host pcbnew 5.0.0) + + (general + (thickness 1.6) + (drawings 24) + (tracks 0) + (zones 0) + (modules 7) + (nets 4) + ) + + (page A4) + (layers + (0 F.Cu signal) + (31 B.Cu signal) + (32 B.Adhes user) + (33 F.Adhes user) + (34 B.Paste user) + (35 F.Paste user) + (36 B.SilkS user) + (37 F.SilkS user) + (38 B.Mask user) + (39 F.Mask user) + (40 Dwgs.User user) + (41 Cmts.User user) + (42 Eco1.User user) + (43 Eco2.User user) + (44 Edge.Cuts user) + (45 Margin user) + (46 B.CrtYd user) + (47 F.CrtYd user) + (48 B.Fab user) + (49 F.Fab user) + ) + + (setup + (last_trace_width 0.25) + (trace_clearance 0.2) + (zone_clearance 0.508) + (zone_45_only no) + (trace_min 0.2) + (segment_width 0.2) + (edge_width 0.15) + (via_size 0.6) + (via_drill 0.4) + (via_min_size 0.4) + (via_min_drill 0.3) + (uvia_size 0.3) + (uvia_drill 0.1) + (uvias_allowed no) + (uvia_min_size 0.2) + (uvia_min_drill 0.1) + (pcb_text_width 0.3) + (pcb_text_size 1.5 1.5) + (mod_edge_width 0.15) + (mod_text_size 1 1) + (mod_text_width 0.15) + (pad_size 5.6 5.6) + (pad_drill 3.2) + (pad_to_mask_clearance 0.2) + (aux_axis_origin 130 116) + (grid_origin 130 116) + (visible_elements FFFFFF7F) + (pcbplotparams + (layerselection 0x00030_80000001) + (usegerberextensions false) + (usegerberattributes false) + (usegerberadvancedattributes false) + (creategerberjobfile false) + (excludeedgelayer true) + (linewidth 0.100000) + (plotframeref false) + (viasonmask false) + (mode 1) + (useauxorigin false) + (hpglpennumber 1) + (hpglpenspeed 20) + (hpglpendiameter 15.000000) + (psnegative false) + (psa4output false) + (plotreference true) + (plotvalue true) + (plotinvisibletext false) + (padsonsilk false) + (subtractmaskfromsilk false) + (outputformat 1) + (mirror false) + (drillshape 1) + (scaleselection 1) + (outputdirectory "")) + ) + + (net 0 "") + (net 1 /3.3V) + (net 2 /5V) + (net 3 /GND) + + (net_class Default "This is the default net class." + (clearance 0.2) + (trace_width 0.25) + (via_dia 0.6) + (via_drill 0.4) + (uvia_dia 0.3) + (uvia_drill 0.1) + (add_net /3.3V) + (add_net /5V) + (add_net /GND) + ) + + (module Mounting_Holes:MountingHole_3.2mm_M3_DIN965_Pad (layer F.Cu) (tedit 5A883868) (tstamp 5A883476) + (at 132.945 72.945) + (descr "Mounting Hole 3.2mm, M3, DIN965") + (tags "mounting hole 3.2mm m3 din965") + (attr virtual) + (fp_text reference REF** (at 0 -3.8) (layer F.SilkS) hide + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value MountingHole_3.2mm_M3_DIN965_Pad (at 0 3.8) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text user %R (at 0.3 0) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_circle (center 0 0) (end 2.8 0) (layer Cmts.User) (width 0.15)) + (fp_circle (center 0 0) (end 3.05 0) (layer F.CrtYd) (width 0.05)) + (pad 1 thru_hole circle (at 0 0) (size 5.6 5.6) (drill 3.2) (layers *.Cu *.Mask)) + ) + + (module Mounting_Holes:MountingHole_3.2mm_M3_DIN965_Pad (layer F.Cu) (tedit 5A883862) (tstamp 5A883477) + (at 175.055 72.945) + (descr "Mounting Hole 3.2mm, M3, DIN965") + (tags "mounting hole 3.2mm m3 din965") + (attr virtual) + (fp_text reference REF** (at 0 -3.8) (layer F.SilkS) hide + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value MountingHole_3.2mm_M3_DIN965_Pad (at 0 3.8) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text user %R (at 0.3 0) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_circle (center 0 0) (end 2.8 0) (layer Cmts.User) (width 0.15)) + (fp_circle (center 0 0) (end 3.05 0) (layer F.CrtYd) (width 0.05)) + (pad 1 thru_hole circle (at 0 0) (size 5.6 5.6) (drill 3.2) (layers *.Cu *.Mask)) + ) + + (module Mounting_Holes:MountingHole_3.2mm_M3_DIN965_Pad (layer F.Cu) (tedit 5A883871) (tstamp 5A883478) + (at 132.945 113.055) + (descr "Mounting Hole 3.2mm, M3, DIN965") + (tags "mounting hole 3.2mm m3 din965") + (attr virtual) + (fp_text reference REF** (at 0 -3.8) (layer F.SilkS) hide + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value MountingHole_3.2mm_M3_DIN965_Pad (at 0 3.8) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text user %R (at 0.3 0) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_circle (center 0 0) (end 2.8 0) (layer Cmts.User) (width 0.15)) + (fp_circle (center 0 0) (end 3.05 0) (layer F.CrtYd) (width 0.05)) + (pad 1 thru_hole circle (at 0 0) (size 5.6 5.6) (drill 3.2) (layers *.Cu *.Mask)) + ) + + (module Mounting_Holes:MountingHole_3.2mm_M3_DIN965_Pad (layer F.Cu) (tedit 5A883877) (tstamp 5A8834E8) + (at 175.055 113.055) + (descr "Mounting Hole 3.2mm, M3, DIN965") + (tags "mounting hole 3.2mm m3 din965") + (attr virtual) + (fp_text reference REF** (at 0 -3.8) (layer F.SilkS) hide + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value MountingHole_3.2mm_M3_DIN965_Pad (at 0 3.8) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text user %R (at 0.3 0) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_circle (center 0 0) (end 2.8 0) (layer Cmts.User) (width 0.15)) + (fp_circle (center 0 0) (end 3.05 0) (layer F.CrtYd) (width 0.05)) + (pad 1 thru_hole circle (at 0 0) (size 5.6 5.6) (drill 3.2) (layers *.Cu *.Mask)) + ) + + (module Connector_PinSocket_2.54mm:PinSocket_1x13_P2.54mm_Vertical (layer B.Cu) (tedit 5A19A421) (tstamp 5A882D06) + (at 169.24 71.53 90) + (descr "Through hole straight socket strip, 1x13, 2.54mm pitch, single row (from Kicad 4.0.7), script generated") + (tags "Through hole socket strip THT 1x13 2.54mm single row") + (path /5A881435) + (fp_text reference CON5 (at -0.72 2.26 90) (layer B.SilkS) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text value Conn_01x13 (at 0 -33.25 90) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text user %R (at 0 -15.24) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_line (start -1.8 -32.25) (end -1.8 1.8) (layer B.CrtYd) (width 0.05)) + (fp_line (start 1.75 -32.25) (end -1.8 -32.25) (layer B.CrtYd) (width 0.05)) + (fp_line (start 1.75 1.8) (end 1.75 -32.25) (layer B.CrtYd) (width 0.05)) + (fp_line (start -1.8 1.8) (end 1.75 1.8) (layer B.CrtYd) (width 0.05)) + (fp_line (start 0 1.33) (end 1.33 1.33) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.33 1.33) (end 1.33 0) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.33 -1.27) (end 1.33 -31.81) (layer B.SilkS) (width 0.12)) + (fp_line (start -1.33 -31.81) (end 1.33 -31.81) (layer B.SilkS) (width 0.12)) + (fp_line (start -1.33 -1.27) (end -1.33 -31.81) (layer B.SilkS) (width 0.12)) + (fp_line (start -1.33 -1.27) (end 1.33 -1.27) (layer B.SilkS) (width 0.12)) + (fp_line (start -1.27 -31.75) (end -1.27 1.27) (layer B.Fab) (width 0.1)) + (fp_line (start 1.27 -31.75) (end -1.27 -31.75) (layer B.Fab) (width 0.1)) + (fp_line (start 1.27 0.635) (end 1.27 -31.75) (layer B.Fab) (width 0.1)) + (fp_line (start 0.635 1.27) (end 1.27 0.635) (layer B.Fab) (width 0.1)) + (fp_line (start -1.27 1.27) (end 0.635 1.27) (layer B.Fab) (width 0.1)) + (pad 13 thru_hole oval (at 0 -30.48 90) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)) + (pad 12 thru_hole oval (at 0 -27.94 90) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)) + (pad 11 thru_hole oval (at 0 -25.4 90) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)) + (pad 10 thru_hole oval (at 0 -22.86 90) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)) + (pad 9 thru_hole oval (at 0 -20.32 90) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)) + (pad 8 thru_hole oval (at 0 -17.78 90) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)) + (pad 7 thru_hole oval (at 0 -15.24 90) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)) + (pad 6 thru_hole oval (at 0 -12.7 90) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)) + (pad 5 thru_hole oval (at 0 -10.16 90) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)) + (pad 4 thru_hole oval (at 0 -7.62 90) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)) + (pad 3 thru_hole oval (at 0 -5.08 90) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)) + (pad 2 thru_hole oval (at 0 -2.54 90) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) + (net 3 /GND)) + (pad 1 thru_hole rect (at 0 0 90) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) + (net 2 /5V)) + (model ${KISYS3DMOD}/Connector_PinSocket_2.54mm.3dshapes/PinSocket_1x13_P2.54mm_Vertical.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Connector_PinSocket_2.54mm:PinSocket_2x13_P2.54mm_Vertical (layer B.Cu) (tedit 5A19A430) (tstamp 5A882CE9) + (at 138.76 114.75 270) + (descr "Through hole straight socket strip, 2x13, 2.54mm pitch, double cols (from Kicad 4.0.7), script generated") + (tags "Through hole socket strip THT 2x13 2.54mm double row") + (path /5A8814EE) + (fp_text reference CON4 (at -1 2.01 270) (layer B.SilkS) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text value Conn_02x13_Odd_Even (at -1.27 -33.25 270) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text user %R (at -1.27 -15.24 180) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_line (start -4.34 -32.25) (end -4.34 1.8) (layer B.CrtYd) (width 0.05)) + (fp_line (start 1.76 -32.25) (end -4.34 -32.25) (layer B.CrtYd) (width 0.05)) + (fp_line (start 1.76 1.8) (end 1.76 -32.25) (layer B.CrtYd) (width 0.05)) + (fp_line (start -4.34 1.8) (end 1.76 1.8) (layer B.CrtYd) (width 0.05)) + (fp_line (start 0 1.33) (end 1.33 1.33) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.33 1.33) (end 1.33 0) (layer B.SilkS) (width 0.12)) + (fp_line (start -1.27 1.33) (end -1.27 -1.27) (layer B.SilkS) (width 0.12)) + (fp_line (start -1.27 -1.27) (end 1.33 -1.27) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.33 -1.27) (end 1.33 -31.81) (layer B.SilkS) (width 0.12)) + (fp_line (start -3.87 -31.81) (end 1.33 -31.81) (layer B.SilkS) (width 0.12)) + (fp_line (start -3.87 1.33) (end -3.87 -31.81) (layer B.SilkS) (width 0.12)) + (fp_line (start -3.87 1.33) (end -1.27 1.33) (layer B.SilkS) (width 0.12)) + (fp_line (start -3.81 -31.75) (end -3.81 1.27) (layer B.Fab) (width 0.1)) + (fp_line (start 1.27 -31.75) (end -3.81 -31.75) (layer B.Fab) (width 0.1)) + (fp_line (start 1.27 0.27) (end 1.27 -31.75) (layer B.Fab) (width 0.1)) + (fp_line (start 0.27 1.27) (end 1.27 0.27) (layer B.Fab) (width 0.1)) + (fp_line (start -3.81 1.27) (end 0.27 1.27) (layer B.Fab) (width 0.1)) + (pad 26 thru_hole oval (at -2.54 -30.48 270) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)) + (pad 25 thru_hole oval (at 0 -30.48 270) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) + (net 3 /GND)) + (pad 24 thru_hole oval (at -2.54 -27.94 270) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)) + (pad 23 thru_hole oval (at 0 -27.94 270) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)) + (pad 22 thru_hole oval (at -2.54 -25.4 270) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)) + (pad 21 thru_hole oval (at 0 -25.4 270) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)) + (pad 20 thru_hole oval (at -2.54 -22.86 270) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) + (net 3 /GND)) + (pad 19 thru_hole oval (at 0 -22.86 270) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)) + (pad 18 thru_hole oval (at -2.54 -20.32 270) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)) + (pad 17 thru_hole oval (at 0 -20.32 270) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) + (net 1 /3.3V)) + (pad 16 thru_hole oval (at -2.54 -17.78 270) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)) + (pad 15 thru_hole oval (at 0 -17.78 270) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)) + (pad 14 thru_hole oval (at -2.54 -15.24 270) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) + (net 3 /GND)) + (pad 13 thru_hole oval (at 0 -15.24 270) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)) + (pad 12 thru_hole oval (at -2.54 -12.7 270) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)) + (pad 11 thru_hole oval (at 0 -12.7 270) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)) + (pad 10 thru_hole oval (at -2.54 -10.16 270) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)) + (pad 9 thru_hole oval (at 0 -10.16 270) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) + (net 3 /GND)) + (pad 8 thru_hole oval (at -2.54 -7.62 270) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)) + (pad 7 thru_hole oval (at 0 -7.62 270) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)) + (pad 6 thru_hole oval (at -2.54 -5.08 270) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) + (net 3 /GND)) + (pad 5 thru_hole oval (at 0 -5.08 270) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)) + (pad 4 thru_hole oval (at -2.54 -2.54 270) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) + (net 2 /5V)) + (pad 3 thru_hole oval (at 0 -2.54 270) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)) + (pad 2 thru_hole oval (at -2.54 0 270) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) + (net 2 /5V)) + (pad 1 thru_hole rect (at 0 0 270) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) + (net 1 /3.3V)) + (model ${KISYS3DMOD}/Connector_PinSocket_2.54mm.3dshapes/PinSocket_2x13_P2.54mm_Vertical.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Connector_PinSocket_2.54mm:PinSocket_1x03_P2.54mm_Vertical (layer B.Cu) (tedit 5A19A429) (tstamp 5A882D16) + (at 169.964 109.522 90) + (descr "Through hole straight socket strip, 1x03, 2.54mm pitch, single row (from Kicad 4.0.7), script generated") + (tags "Through hole socket strip THT 1x03 2.54mm single row") + (path /5A88163D) + (fp_text reference J3 (at 0 2.536 90) (layer B.SilkS) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text value Conn_01x03 (at 0 -7.85 90) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text user %R (at 0 -2.54) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_line (start -1.8 -6.85) (end -1.8 1.8) (layer B.CrtYd) (width 0.05)) + (fp_line (start 1.75 -6.85) (end -1.8 -6.85) (layer B.CrtYd) (width 0.05)) + (fp_line (start 1.75 1.8) (end 1.75 -6.85) (layer B.CrtYd) (width 0.05)) + (fp_line (start -1.8 1.8) (end 1.75 1.8) (layer B.CrtYd) (width 0.05)) + (fp_line (start 0 1.33) (end 1.33 1.33) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.33 1.33) (end 1.33 0) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.33 -1.27) (end 1.33 -6.41) (layer B.SilkS) (width 0.12)) + (fp_line (start -1.33 -6.41) (end 1.33 -6.41) (layer B.SilkS) (width 0.12)) + (fp_line (start -1.33 -1.27) (end -1.33 -6.41) (layer B.SilkS) (width 0.12)) + (fp_line (start -1.33 -1.27) (end 1.33 -1.27) (layer B.SilkS) (width 0.12)) + (fp_line (start -1.27 -6.35) (end -1.27 1.27) (layer B.Fab) (width 0.1)) + (fp_line (start 1.27 -6.35) (end -1.27 -6.35) (layer B.Fab) (width 0.1)) + (fp_line (start 1.27 0.635) (end 1.27 -6.35) (layer B.Fab) (width 0.1)) + (fp_line (start 0.635 1.27) (end 1.27 0.635) (layer B.Fab) (width 0.1)) + (fp_line (start -1.27 1.27) (end 0.635 1.27) (layer B.Fab) (width 0.1)) + (pad 3 thru_hole oval (at 0 -5.08 90) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)) + (pad 2 thru_hole oval (at 0 -2.54 90) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)) + (pad 1 thru_hole rect (at 0 0 90) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) + (net 3 /GND)) + (model ${KISYS3DMOD}/Connector_PinSocket_2.54mm.3dshapes/PinSocket_1x03_P2.54mm_Vertical.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (gr_text HDMI (at 173 93) (layer Dwgs.User) + (effects (font (size 1.5 1.5) (thickness 0.3))) + ) + (gr_line (start 167.29 76.44) (end 179.89 91.48) (angle 90) (layer Dwgs.User) (width 0.2)) + (gr_line (start 167.29 91.48) (end 179.89 76.44) (angle 90) (layer Dwgs.User) (width 0.2)) + (gr_line (start 179.89 91.48) (end 167.29 91.48) (angle 90) (layer Dwgs.User) (width 0.2)) + (gr_line (start 179.89 76.44) (end 179.89 91.48) (angle 90) (layer Dwgs.User) (width 0.2)) + (gr_line (start 167.29 76.44) (end 179.89 76.44) (angle 90) (layer Dwgs.User) (width 0.2)) + (gr_line (start 167.29 91.48) (end 167.29 76.44) (angle 90) (layer Dwgs.User) (width 0.2)) + (gr_text "CPU,\noptional radiator" (at 144 96) (layer Dwgs.User) + (effects (font (size 1.5 1.5) (thickness 0.3))) + ) + (gr_line (start 137.076 78.9) (end 151.07 92.9) (angle 90) (layer Dwgs.User) (width 0.2)) + (gr_line (start 137.076 92.9) (end 151.07 78.9) (angle 90) (layer Dwgs.User) (width 0.2)) + (gr_line (start 137.076 92.9) (end 151.07 92.9) (angle 90) (layer Dwgs.User) (width 0.2)) + (gr_line (start 151.07 78.9) (end 151.07 92.9) (angle 90) (layer Dwgs.User) (width 0.2)) + (gr_line (start 137.076 78.9) (end 151.07 78.9) (angle 90) (layer Dwgs.User) (width 0.2)) + (gr_line (start 137.076 92.9) (end 137.076 78.9) (angle 90) (layer Dwgs.User) (width 0.2)) + (dimension 46 (width 0.3) (layer Dwgs.User) + (gr_text "46 mm" (at 116.65 93 270) (layer Dwgs.User) + (effects (font (size 1.5 1.5) (thickness 0.3))) + ) + (feature1 (pts (xy 135 116) (xy 115.3 116))) + (feature2 (pts (xy 135 70) (xy 115.3 70))) + (crossbar (pts (xy 118 70) (xy 118 116))) + (arrow1a (pts (xy 118 116) (xy 117.413579 114.873496))) + (arrow1b (pts (xy 118 116) (xy 118.586421 114.873496))) + (arrow2a (pts (xy 118 70) (xy 117.413579 71.126504))) + (arrow2b (pts (xy 118 70) (xy 118.586421 71.126504))) + ) + (dimension 48 (width 0.3) (layer Dwgs.User) + (gr_text "48 mm" (at 154 63.65) (layer Dwgs.User) + (effects (font (size 1.5 1.5) (thickness 0.3))) + ) + (feature1 (pts (xy 178 78) (xy 178 62.3))) + (feature2 (pts (xy 130 78) (xy 130 62.3))) + (crossbar (pts (xy 130 65) (xy 178 65))) + (arrow1a (pts (xy 178 65) (xy 176.873496 65.586421))) + (arrow1b (pts (xy 178 65) (xy 176.873496 64.413579))) + (arrow2a (pts (xy 130 65) (xy 131.126504 65.586421))) + (arrow2b (pts (xy 130 65) (xy 131.126504 64.413579))) + ) + (gr_arc (start 176 114) (end 178 114) (angle 90) (layer Edge.Cuts) (width 0.15)) + (gr_arc (start 132 114) (end 132 116) (angle 90) (layer Edge.Cuts) (width 0.15)) + (gr_arc (start 176 72) (end 176 70) (angle 90) (layer Edge.Cuts) (width 0.15)) + (gr_arc (start 132 72) (end 130 72) (angle 90) (layer Edge.Cuts) (width 0.15)) + (gr_line (start 132 70) (end 176 70) (angle 90) (layer Edge.Cuts) (width 0.15)) + (gr_line (start 178 114) (end 178 72) (angle 90) (layer Edge.Cuts) (width 0.15)) + (gr_line (start 132 116) (end 176 116) (angle 90) (layer Edge.Cuts) (width 0.15)) + (gr_line (start 130 72) (end 130 114) (angle 90) (layer Edge.Cuts) (width 0.15)) + +) diff --git a/orange-pi-zero-plus2-hat/orange-pi-zero-plus2-hat.pro b/orange-pi-zero-plus2-hat/orange-pi-zero-plus2-hat.pro new file mode 100644 index 0000000..d2d022e --- /dev/null +++ b/orange-pi-zero-plus2-hat/orange-pi-zero-plus2-hat.pro @@ -0,0 +1,10 @@ +version=1 +last_client=kicad +[cvpcb] +version=1 +NetIExt=net +[general] +version=1 +[eeschema] +version=1 +LibDir= diff --git a/orange-pi-zero-plus2-hat/orange-pi-zero-plus2-hat.sch b/orange-pi-zero-plus2-hat/orange-pi-zero-plus2-hat.sch new file mode 100644 index 0000000..b8ea118 --- /dev/null +++ b/orange-pi-zero-plus2-hat/orange-pi-zero-plus2-hat.sch @@ -0,0 +1,217 @@ +EESchema Schematic File Version 4 +EELAYER 26 0 +EELAYER END +$Descr A4 11693 8268 +encoding utf-8 +Sheet 1 1 +Title "" +Date "" +Rev "" +Comp "" +Comment1 "" +Comment2 "" +Comment3 "" +Comment4 "" +$EndDescr +$Comp +L Connector:Conn_01x13_Female CON5 +U 1 1 5A881435 +P 7150 3200 +F 0 "CON5" H 7150 3900 50 0000 C CNN +F 1 "Conn_01x13" H 7150 2500 50 0000 C CNN +F 2 "Connector_PinSocket_2.54mm:PinSocket_1x13_P2.54mm_Vertical" H 7150 3200 50 0001 C CNN +F 3 "" H 7150 3200 50 0001 C CNN + 1 7150 3200 + 1 0 0 -1 +$EndComp +$Comp +L Connector_Generic:Conn_02x13_Odd_Even CON4 +U 1 1 5A8814EE +P 4800 3200 +F 0 "CON4" H 4850 3900 50 0000 C CNN +F 1 "Conn_02x13_Odd_Even" H 4850 2500 50 0000 C CNN +F 2 "Connector_PinSocket_2.54mm:PinSocket_2x13_P2.54mm_Vertical" H 4800 3200 50 0001 C CNN +F 3 "" H 4800 3200 50 0001 C CNN + 1 4800 3200 + 1 0 0 -1 +$EndComp +$Comp +L Connector:Conn_01x03_Female J3 +U 1 1 5A88163D +P 7150 4550 +F 0 "J3" H 7150 4750 50 0000 C CNN +F 1 "Conn_01x03" H 7150 4350 50 0000 C CNN +F 2 "Connector_PinSocket_2.54mm:PinSocket_1x03_P2.54mm_Vertical" H 7150 4550 50 0001 C CNN +F 3 "" H 7150 4550 50 0001 C CNN + 1 7150 4550 + 1 0 0 -1 +$EndComp +Text Label 6400 2600 0 47 ~ 0 +5V +Text Label 6400 2700 0 47 ~ 0 +GND +Text Label 6400 2800 0 47 ~ 0 +USB-DM2 +Text Label 6400 2900 0 47 ~ 0 +USB-DP2 +Text Label 6400 3000 0 47 ~ 0 +USB-DM3 +Text Label 6400 3100 0 47 ~ 0 +USB-DP3 +Text Label 6400 3200 0 47 ~ 0 +LINEOUTR +Text Label 6400 3300 0 47 ~ 0 +LINEOUTL +Text Label 6400 3400 0 47 ~ 0 +TVOUT +Text Label 6400 3500 0 47 ~ 0 +MIC-BIAS +Text Label 6400 3600 0 47 ~ 0 +MIC1P +Text Label 6400 3700 0 47 ~ 0 +MIC1N +Text Label 6400 3800 0 47 ~ 0 +IR-RX +Text Label 6400 4450 0 47 ~ 0 +GND +Text Label 6400 4550 0 47 ~ 0 +UART0-RX/PA5 +Text Label 6400 4650 0 47 ~ 0 +UART0-TX/PA4 +Text Label 3950 2600 0 47 ~ 0 +3.3V +Text Label 5750 2600 2 47 ~ 0 +5V +Text Label 3950 2700 0 47 ~ 0 +TWI0-SDA/PA12 +Text Label 5750 2700 2 47 ~ 0 +5V +Text Label 3950 2800 0 47 ~ 0 +TWI0-SCK/PA11 +Text Label 5750 2800 2 47 ~ 0 +GND +Text Label 3950 2900 0 47 ~ 0 +PWM1/PA06 +Text Label 5750 2900 2 47 ~ 0 +UART2-TX/PA00 +Text Label 3950 3000 0 47 ~ 0 +GND +Text Label 5750 3000 2 47 ~ 0 +UART2-RX/PA01 +Text Label 3950 3100 0 47 ~ 0 +S-TWI-SCK/PL00 +Text Label 5750 3100 2 47 ~ 0 +PD11 +Text Label 3950 3200 0 47 ~ 0 +S-TWI-SDA/PL01 +Text Label 5750 3200 2 47 ~ 0 +GND +Text Label 3950 3300 0 47 ~ 0 +UART2-CTS/PA03 +Text Label 3950 3400 0 47 ~ 0 +3.3V +Text Label 5750 3400 2 47 ~ 0 +TWI1-SCK/PA18 +Text Label 3950 3500 0 47 ~ 0 +SPI1-MOSI/PA15 +Text Label 5750 3500 2 47 ~ 0 +GND +Text Label 3950 3600 0 47 ~ 0 +SPI1-MISO/PA16 +Text Label 5750 3600 2 47 ~ 0 +UART2-RTS/PA02 +Text Label 3950 3700 0 47 ~ 0 +SPI1-CLK/PA14 +Text Label 5750 3700 2 47 ~ 0 +SPI1-CS/PA13 +Text Label 3950 3800 0 47 ~ 0 +GND +Text Label 5750 3800 2 47 ~ 0 +PD14 +Text Label 5750 3300 2 47 ~ 0 +TWI1-SDA/PA19 +Wire Wire Line + 3950 2600 4600 2600 +Wire Wire Line + 5100 2600 5750 2600 +Wire Wire Line + 5100 3800 5750 3800 +Wire Wire Line + 5100 3700 5750 3700 +Wire Wire Line + 3950 3800 4600 3800 +Wire Wire Line + 3950 3700 4600 3700 +Wire Wire Line + 3950 3600 4600 3600 +Wire Wire Line + 5100 3600 5750 3600 +Wire Wire Line + 5100 3500 5750 3500 +Wire Wire Line + 3950 3500 4600 3500 +Wire Wire Line + 3950 3400 4600 3400 +Wire Wire Line + 5100 3400 5750 3400 +Wire Wire Line + 5100 3300 5750 3300 +Wire Wire Line + 3950 3300 4600 3300 +Wire Wire Line + 5100 3200 5750 3200 +Wire Wire Line + 3950 3200 4600 3200 +Wire Wire Line + 3950 3100 4600 3100 +Wire Wire Line + 5100 3100 5750 3100 +Wire Wire Line + 5100 3000 5750 3000 +Wire Wire Line + 3950 3000 4600 3000 +Wire Wire Line + 3950 2900 4600 2900 +Wire Wire Line + 5100 2800 5750 2800 +Wire Wire Line + 3950 2800 4600 2800 +Wire Wire Line + 5100 2700 5750 2700 +Wire Wire Line + 6950 4650 6400 4650 +Wire Wire Line + 6950 4550 6400 4550 +Wire Wire Line + 6950 4450 6400 4450 +Wire Wire Line + 6950 3800 6400 3800 +Wire Wire Line + 6950 3700 6400 3700 +Wire Wire Line + 6950 3600 6400 3600 +Wire Wire Line + 6950 3500 6400 3500 +Wire Wire Line + 6950 3400 6400 3400 +Wire Wire Line + 6950 3300 6400 3300 +Wire Wire Line + 6950 3200 6400 3200 +Wire Wire Line + 6950 3100 6400 3100 +Wire Wire Line + 6950 3000 6400 3000 +Wire Wire Line + 6950 2900 6400 2900 +Wire Wire Line + 6950 2800 6400 2800 +Wire Wire Line + 6950 2700 6400 2700 +Wire Wire Line + 6950 2600 6400 2600 +Wire Wire Line + 3950 2700 4600 2700 +Wire Wire Line + 5100 2900 5750 2900 +$EndSCHEMATC From c395f20b531fcbb8ab10f5f86ed79d99d732ed7c Mon Sep 17 00:00:00 2001 From: Alexey Chernov <4ernov@gmail.com> Date: Fri, 7 Sep 2018 02:36:03 +0300 Subject: [PATCH 2/3] Tiny changes on the description page --- orange-pi-zero-plus2-hat/meta/info.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/orange-pi-zero-plus2-hat/meta/info.html b/orange-pi-zero-plus2-hat/meta/info.html index 968261c..33db6b6 100644 --- a/orange-pi-zero-plus2-hat/meta/info.html +++ b/orange-pi-zero-plus2-hat/meta/info.html @@ -10,10 +10,10 @@

Hat

Orange Pi Zero Plus2 single-board computer.

-

This base project includes a PCB edge defined as the same size as the +

This base project includes a PCB edge defined of the same size as the Orange Pi Zero Plus2 PCB (according to its original mechanical drawing) with the connectors placed correctly to align the two boards. -All IO present on the Orange Pi Zero Plus2 board is connected to the project +All the I/O's present on the Orange Pi Zero Plus2 board are connected to the project through the 0.1" expansion headers (female sockets are on the hat).

The board outline looks like the following:

From 92c96c1ae965605a75b1fd73c05cbe49e6b62878 Mon Sep 17 00:00:00 2001 From: Alexey Chernov <4ernov@gmail.com> Date: Wed, 28 Aug 2019 01:52:34 +0300 Subject: [PATCH 3/3] Move Orange Pi Zero Plus2 template to `Projects` MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit …According to the new project structure. --- .../orange-pi-zero-plus2-hat}/meta/brd.png | Bin .../orange-pi-zero-plus2-hat}/meta/icon.png | Bin .../orange-pi-zero-plus2-hat}/meta/info.html | 0 .../orange-pi-zero-plus2-hat.kicad_pcb | 0 .../orange-pi-zero-plus2-hat.pro | 0 .../orange-pi-zero-plus2-hat.sch | 0 6 files changed, 0 insertions(+), 0 deletions(-) rename {orange-pi-zero-plus2-hat => Projects/orange-pi-zero-plus2-hat}/meta/brd.png (100%) rename {orange-pi-zero-plus2-hat => Projects/orange-pi-zero-plus2-hat}/meta/icon.png (100%) rename {orange-pi-zero-plus2-hat => Projects/orange-pi-zero-plus2-hat}/meta/info.html (100%) rename {orange-pi-zero-plus2-hat => Projects/orange-pi-zero-plus2-hat}/orange-pi-zero-plus2-hat.kicad_pcb (100%) rename {orange-pi-zero-plus2-hat => Projects/orange-pi-zero-plus2-hat}/orange-pi-zero-plus2-hat.pro (100%) rename {orange-pi-zero-plus2-hat => Projects/orange-pi-zero-plus2-hat}/orange-pi-zero-plus2-hat.sch (100%) diff --git a/orange-pi-zero-plus2-hat/meta/brd.png b/Projects/orange-pi-zero-plus2-hat/meta/brd.png similarity index 100% rename from orange-pi-zero-plus2-hat/meta/brd.png rename to Projects/orange-pi-zero-plus2-hat/meta/brd.png diff --git a/orange-pi-zero-plus2-hat/meta/icon.png b/Projects/orange-pi-zero-plus2-hat/meta/icon.png similarity index 100% rename from orange-pi-zero-plus2-hat/meta/icon.png rename to Projects/orange-pi-zero-plus2-hat/meta/icon.png diff --git a/orange-pi-zero-plus2-hat/meta/info.html b/Projects/orange-pi-zero-plus2-hat/meta/info.html similarity index 100% rename from orange-pi-zero-plus2-hat/meta/info.html rename to Projects/orange-pi-zero-plus2-hat/meta/info.html diff --git a/orange-pi-zero-plus2-hat/orange-pi-zero-plus2-hat.kicad_pcb b/Projects/orange-pi-zero-plus2-hat/orange-pi-zero-plus2-hat.kicad_pcb similarity index 100% rename from orange-pi-zero-plus2-hat/orange-pi-zero-plus2-hat.kicad_pcb rename to Projects/orange-pi-zero-plus2-hat/orange-pi-zero-plus2-hat.kicad_pcb diff --git a/orange-pi-zero-plus2-hat/orange-pi-zero-plus2-hat.pro b/Projects/orange-pi-zero-plus2-hat/orange-pi-zero-plus2-hat.pro similarity index 100% rename from orange-pi-zero-plus2-hat/orange-pi-zero-plus2-hat.pro rename to Projects/orange-pi-zero-plus2-hat/orange-pi-zero-plus2-hat.pro diff --git a/orange-pi-zero-plus2-hat/orange-pi-zero-plus2-hat.sch b/Projects/orange-pi-zero-plus2-hat/orange-pi-zero-plus2-hat.sch similarity index 100% rename from orange-pi-zero-plus2-hat/orange-pi-zero-plus2-hat.sch rename to Projects/orange-pi-zero-plus2-hat/orange-pi-zero-plus2-hat.sch