All Projects → kitspace → Kitspace

kitspace / Kitspace

Licence: other
A place to share electronics projects

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Kitspace

for-science-keyboard
A split ergo 4x5 keyboard with 3 thumb keys where each half is smaller than the 100x100mm cheap PCB production size.
Stars: ✭ 63 (-65.38%)
Mutual labels:  electronics, pcb
Automated Irrigation System
This is the software of an open source automated irrigation system. The complete setup including hardware can be found in the README.
Stars: ✭ 442 (+142.86%)
Mutual labels:  electronics, iot
lightroom-macro-pad
Lightroom Macro Pad With CircuitPython Boards
Stars: ✭ 33 (-81.87%)
Mutual labels:  electronics, pcb
TMS9918A
TMS9918A video card for RC2014
Stars: ✭ 104 (-42.86%)
Mutual labels:  electronics, pcb
Librepcb
A powerful, innovative and intuitive EDA tool for everyone!
Stars: ✭ 1,173 (+544.51%)
Mutual labels:  pcb, electronics
Gameboy-Color-Cartridge
Board layout for an eeprom powered GB cartridge
Stars: ✭ 58 (-68.13%)
Mutual labels:  electronics, pcb
Awesome Electronics
A curated list of awesome resources for electronic engineers and hobbyists
Stars: ✭ 3,782 (+1978.02%)
Mutual labels:  pcb, electronics
chpc
CHPC: Cheap Heat Pump Controller
Stars: ✭ 27 (-85.16%)
Mutual labels:  electronics, pcb
Image Relocation
Docker/OCI image relocation
Stars: ✭ 21 (-88.46%)
Mutual labels:  registry, repository
Altium Library
Open source Altium Database Library with over 147,000 high quality components and full 3d models.
Stars: ✭ 875 (+380.77%)
Mutual labels:  pcb, electronics
Kicad footprints
A collection of all the KiCad footprints on the internet
Stars: ✭ 216 (+18.68%)
Mutual labels:  pcb, electronics
Reflowduino
Arduino-compatible wireless reflow oven controller ecosystem of open-source hardware
Stars: ✭ 154 (-15.38%)
Mutual labels:  pcb, electronics
Open Registry
Community Owned JavaScript Registry
Stars: ✭ 259 (+42.31%)
Mutual labels:  registry, repository
Tracespace
⚡️generate beautiful and accurate SVG renders of printed circuit boards
Stars: ✭ 548 (+201.1%)
Mutual labels:  pcb, electronics
Esp8266 Tiny Door And Window Sensor
Battery powered door and window sensor with ultra low standby power. Arduino, ESP-12, Reed switch, ATtiny, LDO
Stars: ✭ 146 (-19.78%)
Mutual labels:  pcb, iot
Gerbolyze
Render high-resolution bitmap images to PCB gerber files
Stars: ✭ 169 (-7.14%)
Mutual labels:  pcb, electronics
Lisa
Sandbox for automated Linux malware analysis.
Stars: ✭ 177 (-2.75%)
Mutual labels:  iot
Siricontrol System
Control anything with Siri voice commands.
Stars: ✭ 180 (-1.1%)
Mutual labels:  iot
Bee
A framework for IOTA nodes, clients and applications in Rust
Stars: ✭ 176 (-3.3%)
Mutual labels:  iot
Toltec
Community-maintained repository of free software for the reMarkable tablet.
Stars: ✭ 170 (-6.59%)
Mutual labels:  repository

https://kitspace.org

build status Backers on Open Collective Sponsors on Open Collective

Watch a 5 minute lightning-talk about Kitspace from the 35th Chaos Communication Congress (35C3).

video

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:

  • A preview of the printed circuit board and prominent link to download the Gerber manufacturing files
  • The ability to quickly add the required components to a distributor shopping cart (using our browser extension)

Help us build an open hardware repository of useful electronics projects!

How many people visit the site?

Our visitor stats are public on plausible.io.

pcb-stackup

The renderings of the PCB files are made using pcb-stackup. You can get similar renderings and also inspect invdividual layers, using the tracespace gerber viewer.

Get in touch

Adding your project

Check out kitspace.org/submit which will guide you through the process.

kitspace.yaml format

Currently the kitspace.yaml makes 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 / not \) 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 kitspace.yaml is valid.

KiCad PCB

If you you used KiCad for your design you can also specify a KiCad PCB file to use by adding an eda field.

eda:
  type: kicad
  pcb: path/to/your/file.kicad_pcb

If your project has a KiCad PCB file, and interactive assembly guide for the board will be created using the Interactive HTML BOM plugin from the Open Scope Project.

If both eda and gerbers are present the Gerber files will be used.

Some examples

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

with kitspace.yaml containing:

summary: A more advanced example
site: https://example.com
color: red
bom: manufacture/advanced-example-BOM.tsv
gerbers: manufacture/gerbers-and-drills

The multi field

NOTE: multi doesn't yet work with the kitspace.org/submit preview tool. See issue #182.

Kitspace supports multiple projects in one repository with the multi field. When multiple projects exist, multi will 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

with kitspace.yaml containing:

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 readme, bom, or gerbers then note that these are from the root of the repository.

E.g.

├── 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:
      ...

Terms and Conditions for Adding a Project

  1. We (Kitspace developers) do not claim any ownership over your work, it remains yours.
  2. By submitting your project you give us permission to host copies of your files for other people to download.
  3. If you change your mind, you can remove your project any time by removing the public git repository, sending a pull-request to remove it from boards.txt or notifying @kasbah in some other way.

Development

Architecture

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.

Requirements

  • Nodejs version 10 or higher
  • fswatch on OSX/Windows or inotify-tools on Linux
  • Ninja Build >= 1.5.1
  • Inkscape (v0.92) for converting SVGs to PNGs
  • Yarn to ensure the correct dependencies are installed
  • The rest of the dependencies can be retrieved via yarn install

Quick start for Debian/Ubuntu

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

Running a local dev server

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.

Code of Conduct

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.

Contributors

This project exists thanks to all the people who contribute.

Backers

Thank you to all our backers! 🙏 [Become a backer]

Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].