Skip to content
This repository has been archived by the owner on Dec 29, 2023. It is now read-only.

Commit

Permalink
Prototype breakout plane (#11)
Browse files Browse the repository at this point in the history
* Remove superfluous Fab labels from Hirose FX20 footprints

* Add files and models for 1x16 and 2x10 horizontal SMT male headers.

* Move Preview Renders directories up a level

* Update footprints on BT and PP-T41 for KiCad 5.1.9

* Fix capacitor arrangement for the DCS selector in BT

* Fix positioning of 3D model for TSM-110-01-x-DH

* Add edge horizontal headers for BP-Jmp

* Fix hierarchical pin label directions, finish front right corner

* Finish routing GPIO and UART headers

* Finish rear right corner

* Finish routing I2C headers

* Make traces between ICs and decoupling caps thicker in BT and PP-T41

* Fix incorrect thermal spoke widths for power pads in PP-T41

* Add a DAC

* Fix pin type for COPI from output to tri-state in schematics

* Fix footprint and add 3D model for DAC80508, add docs for ICs

* Add an ADC

* Add silkscreen labels showing BP-Jmp's various sections

* Move capacitor out of the way of the board name code silkscreen in BT

* Add 3D model for TSM-116-01-x-SH

* Move the capacitor farther from the board name code silkscreen

* Add/update renders for BP-Jmp and BT

* Restore lost 3D models in PP-T41

* Make 3D preview more accurate for the DSCS configuration jumper array

* Update READMEs, and update customization instructions in BT

* Update BOM

* Make title block consistent in BP-Jmp's schematics

* Make mechanical renders of the entire driver stack

* Fix kicad-exports workflow config

* Delete unnecessary dimensions from the Fab layers

* Add PR templates

* Update READMEs for the ODSv1.0.0 directory

* Remove relative URLs from PR templates

* Fix incorrect pin type in the AD7689xCP symbol from KiCad

* Add initial Blender workflow for generating nice raytraced renders

* Simplify raytracing workflow and fine-tune parameters

* Define a no-IC variant of BP-Jmp

* Fix problems with BP-Jmp variant configurations

* Upgrade to KiBot v0.10.0

* Clean up ERC and DRC reports in KiBot v0.10.0

* Fix ERC and DRC postprocessing for non-Default variants

* Improve file name of PCBWay gerber zip archive

* Remove variant id from filenames in gerber files
  • Loading branch information
ethanjli authored Feb 17, 2021
1 parent eb78e6c commit 134bc48
Show file tree
Hide file tree
Showing 124 changed files with 181,530 additions and 20,421 deletions.
37 changes: 37 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE/modified_board.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
This PR modifies the {INSERT NAME CODE HERE} board for the Octopi Driver Stack. More information about this board is available in the README.md file for this board.

Major breaking changes:

- {LIST ANY BREAKING CHANGES HERE, and TAG ANY RELEVANT ISSUES WITH CLOSING KEYWORDS}

Additions:

- {LIST ANY ADDED FEATURES HERE, and TAG ANY RELEVANT ISSUES WITH CLOSING KEYWORDS}

Changed:

- {LIST ANY CHANGED FEATURES HERE, and TAG ANY RELEVANT ISSUES WITH CLOSING KEYWORDS}

Fixed:

- {LIST ANY BUGFIXES HERE, and TAG ANY RELEVANT ISSUES WITH CLOSING KEYWORDS}

{IF MODIFICATION WILL BE RELEASED AS A NEW TAG, INCLUDE THE FOLLOWING SECTION:}

After this PR is merged, the board will be released with the `ODSv1.0.0-{{INSERT NAME CODE HERE}}v0.1.0` tag, which will be made on the develop branch. This PR will be used to keep track of previews and manufacturing files prior to a freeze on the tag. The PR will be merged once the prototype-stage manufacturing order (red PCBs) is placed. Afterwards, additional comments should be added to document any errata or testing results from assembled prototypes, or required changes for the next version can be recorded directly in Github Issues.

{IF MODIFICATION WILL BE RELEASED AS A NEW TAG, INCLUDE THE FOLLOWING SECTION:}

Attachments:

- Gerber files for PCBWay: {{ATTACH ZIP ARCHIVE OF GERBER AND DRILL FILES HERE}}

After final changes are made on this PR and it is approved for merging, I will answer the following questions as a new comment on this PR, for records-keeping:

1. This project is licensed under Apache License v2.0 for any software, and Solderpad Hardware License v2.1 for any hardware - do you agree that your contributions to this project will be under these licenses, too? {CHOOSE YES OR NO}
2. Were any of these contributions also part of work you did for an employer or a client? If so, do you have their permission to release it? {CHOOSE YES OR NO FOR THE FIRST QUESTION, AND CHOOSE YES, N/A, OR PROVIDE AN EXPLANATION TO THE SECOND QUESTION}
3. Does this work include, or is it based on, any third-party work which you did not create? If so, what is it licensed under, and what modifications, if any, did you make to it? {CHOOSE YES OR NO, AND EXPLAIN. FOR EXAMPLE, A GOOD EXPLANATION FOR INCLUSION OF THIRD-PARTY PARTS WOULD BE: third-party documentation, CAD models, PCB footprints of parts have been included in the `Parts` directory. I have added appropriate notices for these files in the README.md files in the corresponding directories.}

{IF MODIFICATION WILL BE RELEASED AS A NEW TAG, INCLUDE THE FOLLOWING SECTION:}

After final changes are made on this PR and it is approved for merging, I will add a comment attaching a zip archive of the build output from Github Actions for each variant of this board.
15 changes: 15 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE/new_board.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
This PR provides a new board for the Octopi Driver Stack. This board, named {INSERT NAME CODE HERE} __({INSERT FULL NAME HERE})__, {INSERT DESCRIPTION OF WHAT IT DOES HERE}. More information about this board is available in the README.md file for this board.

This PR will be used to keep track of previews and manufacturing files prior to a freeze on the `ODSv1.0.0-{{INSERT NAME CODE HERE}}v0.1.0` tag. The PR will be merged once the prototype-stage manufacturing order (red PCBs) is placed. Afterwards, additional comments should be added to document any errata or testing results from assembled prototypes, or required changes for the next version can be recorded directly in Github Issues.

Attachments:

- Gerber files for PCBWay: {{ATTACH ZIP ARCHIVE OF GERBER AND DRILL FILES HERE}}

After final changes are made on this PR and it is approved for merging, I will answer the following questions as a new comment on this PR, for records-keeping:

1. This project is licensed under Apache License v2.0 for any software, and Solderpad Hardware License v2.1 for any hardware - do you agree that your contributions to this project will be under these licenses, too? {CHOOSE YES OR NO}
2. Were any of these contributions also part of work you did for an employer or a client? If so, do you have their permission to release it? {CHOOSE YES OR NO FOR THE FIRST QUESTION, AND CHOOSE YES, N/A, OR PROVIDE AN EXPLANATION TO THE SECOND QUESTION}
3. Does this work include, or is it based on, any third-party work which you did not create? If so, what is it licensed under, and what modifications, if any, did you make to it? {CHOOSE YES OR NO, AND EXPLAIN. FOR EXAMPLE, A GOOD EXPLANATION FOR INCLUSION OF THIRD-PARTY PARTS WOULD BE: third-party documentation, CAD models, PCB footprints of parts have been included in the `Parts` directory. I have added appropriate notices for these files in the README.md files in the corresponding directories.}

After final changes are made on this PR and it is approved for merging, I will add a comment attaching a zip archive of the build output from Github Actions for each variant of this board.
47 changes: 25 additions & 22 deletions .github/workflows/kicad-exports.yml
Original file line number Diff line number Diff line change
Expand Up @@ -99,10 +99,12 @@ jobs:
if [ -z "$directory" ]; then
continue # Exclude root directory
elif [ "$directory" == Parts ]; then
continue # Exclude Parts directory
elif [ "$directory" == .github ]; then
continue # Exclude .github directory
elif [ "$directory" == Parts ]; then
continue # Exclude Parts directory
elif [ "$directory" == "ODSv1.0.0" ]; then
continue # Exclude ODSv1.0.0 directory, which is only used for rendering
fi
# Add board only if it is not already included
Expand Down Expand Up @@ -316,7 +318,7 @@ jobs:
done
- name: Build schematic docs
uses: INTI-CMNB/KiBot@v0.9.0
uses: INTI-CMNB/KiBot@v0.10.0
with:
# Required kibot config file
config: .kibot/config/schematics.kibot.yaml
Expand All @@ -342,7 +344,7 @@ jobs:
sudo pdfseparate "${{matrix.board}}${{steps.version.outputs.layout}}${{steps.variant.outputs.fileid}}-schematic.pdf" "Sheets/%d.pdf"
- name: Build layout drawings
uses: INTI-CMNB/KiBot@v0.9.0
uses: INTI-CMNB/KiBot@v0.10.0
with:
# Required kibot config file
config: .kibot/config/layout_drawings.kibot.yaml
Expand All @@ -354,7 +356,7 @@ jobs:
board: ${{matrix.board}}/${{matrix.board}}.kicad_pcb

- name: Build layout renders
uses: INTI-CMNB/KiBot@v0.9.0
uses: INTI-CMNB/KiBot@v0.10.0
with:
# Required kibot config file
config: .kibot/config/layout_renders.kibot.yaml
Expand All @@ -375,7 +377,7 @@ jobs:
done
- name: Build BOMs
uses: INTI-CMNB/KiBot@v0.9.0
uses: INTI-CMNB/KiBot@v0.10.0
with:
# Required kibot config file
config: .kibot/config/boms.kibot.yaml
Expand All @@ -396,7 +398,7 @@ jobs:
echo "::set-output name=name::$(echo "$NETLIST_NAME")"
- name: Build interactive BOM
uses: INTI-CMNB/KiBot@v0.9.0
uses: INTI-CMNB/KiBot@v0.10.0
with:
# Required kibot config file
config: .kibot/config/ibom.kibot.yaml
Expand All @@ -414,7 +416,7 @@ jobs:
sudo cp "${{steps.netlist.outputs.name}}.xml" "docs/${{matrix.board}}${{steps.version.outputs.layout}}-net.xml"
- name: Build positions file
uses: INTI-CMNB/KiBot@v0.9.0
uses: INTI-CMNB/KiBot@v0.10.0
with:
# Required kibot config file
config: .kibot/config/positions.kibot.yaml
Expand All @@ -425,24 +427,25 @@ jobs:
# Optional PCB design file
board: ${{matrix.board}}/${{matrix.board}}.kicad_pcb

# Disabled until the next release, as v0.9.0 can't generate drill files correctly for PCBway
# - name: Build gerber files
# uses: INTI-CMNB/KiBot@v0.9.0
# with:
# # Required kibot config file
# config: .kibot/config/gerbers.kibot.yaml
# # Optional prefix to output defined in config
# dir: ${{matrix.board}}/docs
# # Optional schematic file
# schema: ${{matrix.board}}/${{matrix.board}}.sch
# # Optional PCB design file
# board: ${{matrix.board}}/${{matrix.board}}.kicad_pcb
# Disabled until the next release, as v0.10.0 can't generate drill files correctly for PCBway
- name: Build gerber files
uses: INTI-CMNB/KiBot@v0.10.0
with:
# Required kibot config file
config: .kibot/config/gerbers_pcbway.kibot.yaml
# Optional prefix to output defined in config
dir: ${{matrix.board}}/docs
# Optional schematic file
schema: ${{matrix.board}}/${{matrix.board}}.sch
# Optional PCB design file
board: ${{matrix.board}}/${{matrix.board}}.kicad_pcb

- name: Postprocess ERC & DRC reports
working-directory: ${{matrix.board}}/docs/
run: |
sudo mv "${{matrix.board}}.erc" "${{matrix.board}}${{steps.version.outputs.layout}}-erc.log"
sudo mv drc_result.rpt "${{matrix.board}}${{steps.version.outputs.layout}}-drc.log"
ls
sudo mv "${{matrix.board}}${{steps.version.outputs.layout}}-erc.txt" "${{matrix.board}}${{steps.version.outputs.layout}}-erc.log"
sudo mv ${{matrix.board}}${{steps.version.outputs.layout}}-drc.txt "${{matrix.board}}${{steps.version.outputs.layout}}-drc.log"
- name: Copy README and LICENSEs
run: |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,9 @@ outputs:
options:
exclude_edge_layer: true
exclude_pads_from_silkscreen: true
gerber_job_file: '%f%r%v-%i.%x'
gerber_job_file: '%f%r-%i.%x'
line_width: 0.15
output: '%f%r%v-%i.%x'
output: '%f%r-%i.%x'
tent_vias: true
use_gerber_x2_attributes: false
use_protel_extensions: true
Expand All @@ -43,8 +43,6 @@ outputs:
- B.Fab

# Excellon drill format:
# You can create a map file for documentation purposes.
# This output is what you get from the 'File/Fabrication output/Drill Files' menu in pcbnew.
- name: 'drill-pcbway'
comment: 'Generate drill for PCBway'
type: excellon
Expand All @@ -57,17 +55,20 @@ outputs:
zeros_format: SUPPRESS_LEADING
left_digits: 2
right_digits: 4
pth_id: '-PTH'
npth_id: '-NPTH'
output: '%f%r%v-%i.%x'
pth_id: 'PTH'
npth_id: 'NPTH'
output: '%f%r-%i.%x'
report:
filename: '%f%r%v-drill.log'

- name: 'zip-pcbway'
comment: 'Generate gerber & drill archive for PCBway (ZIP)'
type: compress
dir: Gerbers/
output: '%f%r%v-gerb.%x'
files:
- from_output: gerbers-pcbway
- from_output: drill-pcbway
dir: Gerbers
options:
output: '%f%r-gerb-pcbway.%x'
files:
- from_output: gerbers-pcbway
dest: /
- from_output: drill-pcbway
dest: /
1 change: 1 addition & 0 deletions .kibot/config/layout_renders.kibot.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ kibot:
version: 1

global:
output: '%f%r%v-%i.%x'
variant: 'Default'

preflight:
Expand Down
1 change: 1 addition & 0 deletions .kibot/config/positions.kibot.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ kibot:
version: 1

global:
output: '%f%r%v-%i.%x'
variant: 'Default'

outputs:
Expand Down
Loading

0 comments on commit 134bc48

Please sign in to comment.