Backbone Template for creating new planes in the Octopi Driver Stack
This board template is part of the octopi-driver-board project.
The Backbone template contains a customizable schematic and PCB layout of the subsystems repeated on every plane (except the processing plane) for connector stacking and hierarchical SPI chip-select multiplexing.
This template is provided as a starter KiCad project to copy for creating new planes. To create a new plane from this template:
- Make a copy of this directory, with the appropriate name code for the name of your new directory (for example,
ODSv1.0.0-CP-5x
for a Camera Plane for 5 Cameras). Then rename theODSv1.0.0-BT.pro
,ODSv1.0.0-BT.sch
, andODSv1.0.0-BT-cache.lib
ODSv1.0.0-BT.kicad_pcb
files the same way (for example,ODSv1.0.0-CP-5x.pro
,ODSv1.0.0-CP-5x.sch
,ODSv1.0.0-CP-5x.kicad_pcb
, andODSv1.0.0-CP-5x-cache.lib
). - Open the project in KiCad. In the page settings for the schematic and layout files, customize/update the title block parameters for your new plane. For example, the
Revision
field should be used to capture the specific version of your board. - Follow the customization instructions listed in the upper right corners of the various sheets of the schematic to customize the schematic according to your needs. For example, you will need to remove DNP from the Config field of the symbol fields for one of the resistors in the SPI DSCS Selector section of the Backbone sheet. Afterwards, you can delete the instructions from the upper right corners of the sheets.
- Customize the silkscreen labels in the layout file, including the type codes, the full title, the designer credits, and the description of shared pins, UARTs, and buses used by the plane
- If you have multiple BOM variants, edit the
variants.yml
file following the format described in the KiBot assembly variants guide to define the variants, and also set values in the Config column of the schematic's symbol fields as described in that guide to define the relationships between components and variants. For each variant you define invariants.yml
, you should use CamelCase for the name of the variant which you'd put in the Config column as the value of thevariant
property and thename
property, while you should use prefixed it by a hyphen (-
) as the value of thefile_id
property. - If you have tall components (e.g. daughter boards or big connectors) on the top face of the plane such that you need a clearance of 20 mm above the face rather than a clearance of 15 mm above the face, open the PCB layout file and change footprint J1's associated 3D model from
${KIPRJMOD}/../Parts/Connectors/FunctionMAX FX20/FX20-120P-0.5SV15.wrl
to${KIPRJMOD}/../Parts/Connectors/FunctionMAX FX20/FX20-120P-0.5SV20.wrl
; and for mounting holes H1, H2, H3, and H4, change their associated 3D model from${KIPRJMOD}/../Parts/Fasteners/Keystone Standoffs/24339.wrl
to${KIPRJMOD}/../Parts/Fasteners/Keystone Standoffs/24341.wrl
. You'll also need to open the schematic's symbol fields to change the MPN, Digikey ID, and Ordering URL for J1 fromFX20-120P-0.5SV15
toFX20-120P-0.5SV20
,H12043-ND
toH12042-ND
, andhttps://www.digikey.com/en/products/detail/hirose-electric-co-ltd/FX20-120P-0-5SV15/3461671
tohttps://www.digikey.com/en/products/detail/hirose-electric-co-ltd/FX20-120P-0-5SV20/3461672
, respectively. - For the default 0 Ohm resistor jumper to be populated into the Backbone section's DSCS configuration jumper array, add
${KISYS3DMOD}/Resistor_SMD.3dshapes/R_1206_3216Metric.wrl
as its associated 3D model. - Modify this README to describe the board; you can use the README.md for ODSv1.0.0-BP-Jmp as an example for reference of what content to include and how to structure it.
You should avoid updating all footprints from the library, as this will wipe associated customization of 3D models for components; instead, only update footprints from library for the specific components you need to update.
Currently the maintainer of this template is Ethan Li.
Copyright Prakash Lab and the Octopi project contributors.
SPDX-License-Identifier: Apache-2.0 WITH SHL-2.1
All work in this directory is licensed under the Solderpad Hardware License v2.1 (the “License”); you may not use files except in compliance with the License, or, at your option, the Apache License version 2.0. You may obtain a copy of the License at https://solderpad.org/licenses/SHL-2.1/
Unless required by applicable law or agreed to in writing, any work distributed under the License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.