A place to share electronics projects
Kitspace (formerly Kitnic) is a registry of open source hardware electronics projects that are ready to order and build. It could be described as a "Thingiverse for electronics". The most important elements of a Kit Space project page are what allow a design to be manufactured:
Help us build an open hardware repository of useful electronics projects!
Our visitor stats are public on plausible.io.
Check out kitspace.org/submit which will guide you through the process.
kitspace.yamlmakes use of the following fields:
summary: A description for your project site: A site you would like to link to (include http:// or https://) color: The solder resist color of the preview rendering. Can be one of: - green - red - blue - black - white - orange - purple - yellow bom: A path to your 1-click-bom in case it isn't `1-click-bom.tsv`. gerbers: A path to your folder of gerbers in case it isn't `gerbers/`. eda: type: kicad pcb: path/to/your/file.kicad_pcb readme: A path to your README file in case it isn't in the repository root directory. multi: Identifier field only used if the repository contains multiple projects.
Paths should be in UNIX style (i.e. use
\) and relative to the root of your repository. The YAML format is pretty straight forward but if you need to know more check the example below and the YAML website. Use this YAML validator to be extra sure that your
If you you used KiCad for your design you can also specify a KiCad PCB file to use by adding an
eda: type: kicad pcb: path/to/your/file.kicad_pcb
gerbersare present the Gerber files will be used.
Check out the repo links of the projects listed on kitspace.org already. The minimum required file tree is something like :
. ├── 1-click-bom.tsv └── gerbers ├── example.cmp ├── example.drd ├── example.dri ├── example.gko ├── example.gpi ├── example.gto ├── example.plc ├── example.sol ├── example.stc └── example.sts
A more advanced example could be something like:
. ├── kitspace.yaml └── manufacture ├── advanced-example-BOM.tsv └── gerbers-and-drills ├── advanced-example-B_Adhes.gba ├── advanced-example-B_CrtYd.gbr ├── advanced-example-B_Cu.gbl ├── advanced-example-B_Fab.gbr ├── advanced-example-B_Mask.gbs ├── advanced-example-B_Paste.gbp ├── advanced-example-B_SilkS.gbo ├── advanced-example.drl ├── advanced-example-Edge_Cuts.gbr ├── advanced-example-F_Adhes.gta ├── advanced-example-F_CrtYd.gbr ├── advanced-example-F_Cu.gtl ├── advanced-example-F_Fab.gbr ├── advanced-example-F_Mask.gts ├── advanced-example-F_Paste.gtp └── advanced-example-F_SilkS.gto
summary: A more advanced example site: https://example.com color: red bom: manufacture/advanced-example-BOM.tsv gerbers: manufacture/gerbers-and-drills
NOTE:multidoesn't yet work with the kitspace.org/submit preview tool. See issue #182.
Kitspace supports multiple projects in one repository with the
multifield. When multiple projects exist,
multiwill always be the first field in the
kitspace.yaml, with the paths to your projects folder nested underneath.
├── kitspace.yaml ├── project_one │ ├── 1-click-bom.tsv │ ├── README.md │ └── gerbers │ ├── example.cmp │ ├── example.drd │ ├── example.dri │ ... │ ├── example.stc │ └── example.sts └── project_two ├── 1-click-bom.tsv ├── README.md └── gerbers ├── example.cmp ├── example.drd ├── example.dri ... ├── example.stc └── example.sts
multi: project_one: summary: First project in a repository. color: blue site: https://example-one.com project_two: summary: Second project in a repository. color: red site: https://example-two.com
If you want to use custom paths for the
gerbersthen note that these are from the root of the repository.
├── kitspace.yaml ├── manufacturing_outputs │ └── project_one_gerbers │ ├── example.cmp │ ├── example.drd │ ├── example.dri │ ... │ ├── example.stc │ └── example.sts ├── project_one │ ├── documentation │ │ └── README.md └── BOM.csv └── project_two ...
multi: project_one: readme: project_one/documentation/README.md bom: project_one/BOM.csv gerbers: manufacturing_outputs/project_one_gerbers project_two: ...
boards.txtor notifying @kasbah in some other way.
This repository is the Kitspace front-end. The contents including all project data are currently pre-compiled into a static site. The main part of the site that requires server side components is the submission preview (
/submit). Pages also use freegeoip lookup to decide what sites to link to for people that do not have the 1-click BOM browser extension. This roughly illustrates the main data flow when someone is browsing the site.
We have two services running for the submission preview.
And one for the geo ip lookup on pages.
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list sudo apt update && sudo apt install git nodejs inotify-tools ninja-build inkscape yarn git clone https://github.com/kitspace/kitspace && cd kitspace yarn install
Get requirements above then:
yarn install # retrieves dependencies yarn get-boards # gets the test projects and puts them into boards/ yarn build # generates a build.ninja file using the ./configure script # and calls ninja to execute the build.ninja file which builds everything (similar to how make executes a makefile) yarn serve # starts a development server to preview the site
Visit http://127.0.0.1:8080 in your browser to see your local development site.
We are committed to making working on Kitspace an inclusive and welcoming environment. All contributors are expected to abide by our code of conduct. It's just common sense.
Thank you to all our backers! 🙏 [Become a backer]
Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]