Skip to content

Commit

Permalink
KiCad Instructions (hackclub#1002)
Browse files Browse the repository at this point in the history
* KiCad Instructions

* add hackercard jam instructions

* add more to document and add PCB example

* minor refractoring and starting kicad submittion doc

* submissing-to-kicad

* minor changes to readme

* fix image positioning

* delete spare file
  • Loading branch information
LimesKey authored Aug 26, 2024
1 parent 6f9c079 commit 8d30e44
Show file tree
Hide file tree
Showing 14 changed files with 5,863 additions and 7 deletions.
18 changes: 12 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -99,15 +99,21 @@ In all, you should have the following files under your project folder:
- [ ] `cart.png`: A [screenshot](./docs/images/ordering/cart.png) of your order details
- [ ] `gerber.zip`: This should be the file that you send off to the vendor.
- [ ] `schematic.pdf`: Export the schematic from your EDA program as a PDF.
- Go to "File > Export > PDF" in EasyEDA's Schematic tab for this.
- Go to "File > Export > PDF" **in EasyEDA's Schematic tab** for this.
- [ ] `src/`: Make a folder called `src` and Whatever format your designer outputs should be included.
- For EasyEDA, you need to File > Export > EasyEDA two JSON files - one from the schematic tab and one from the PCB tab. <img src="https://github.com/hackclub/OnBoard/assets/32671690/9f63f922-3009-4c40-af0c-b6239cf2074f" width=500/>
- Or `name.kicad_pro`, `name_kicad_sch`, `name.kicad_pcb` and `name.step` for KiCAD
- Or `design.json`, `design.sch`, `design.brd`, etc.
- For EasyEDA, you need to File > Export > EasyEDA two JSON files - one from the schematic tab and one from the PCB tab.

<p align="center">
<img src="https://github.com/hackclub/OnBoard/assets/32671690/9f63f922-3009-4c40-af0c-b6239cf2074f" width=500/>
</p>

Make sure your file names are exactly the same as above.
- *Optionally*, for EasyEDA STD, export a 3D Model as `.obj` as save it to the `/src` folder
- Using **KiCad**? See [KiCad for Beginners](docs/KiCad_Beginner_Guide.md) for instructions on how to submit.
- Or `design.json`, `design.sch`, `design.brd`, etc for other PCB Editors.

Your PR should look like this:
Ensure your file names are exactly the same as above.

Your PR should have a structure like this:

![ix7t2nJ](https://github.com/hackclub/OnBoard/assets/28641114/5f8bac7f-4a91-4e2c-be67-c002025307e0)

Expand Down
81 changes: 81 additions & 0 deletions docs/KiCad_Beginner_Guide.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
## Tagline
Have you already shipped a couple PCBs and want to challange yourself and use something a little more.. ***"pro"***; [KiCad](https://www.kicad.org/) is here for you! KiCad is another PCB CAD software like EasyEDA but with a ton more features and tools to perfect your craft.

## KiCad Installation
KiCad is available on Windows, Linux and MacOS and is a downloadable software rather than something that runs in your browser like EasyEDA. Download it [here](https://www.kicad.org/download/), selecting your operating system and download location.

## Prerequisites
### Plugins (Optional)
You might also want to install these two plugins the plugin manager that I find really useful,

<p align="center">
<img src="images/kicad/plugins.png" alt="Fabrication Toolkit & FreeRouting plugin"/>
</p>

#### EasyEDA2KiCad (Optional)
One small setback to using KiCad is you have to fetch all the symbols,footprints and models yourself rather than EasyEDA automatically finding and importing them for you to use. Not to worry though, some smart group (Wokwi) decided to make a script to port these files to KiCad; [EasyEDA2KiCad](https://github.com/uPesy/easyeda2kicad.py).

You'll need to have Python installed and functional, perferably the latest version, then you can install it with `pip install easyeda2kicad`.

To confirm it was install correct, simply type `easyeda2kicad` in your terminal.

#### Linking Paths
Ensure KICad knows where EasyEDA2KiCad is downloading the files to, follow this [guide](https://github.com/uPesy/easyeda2kicad.py?tab=readme-ov-file#-add-libraries-in-kicad) on how to set that up.

***Windows Troubleshooting***<br>

---
You might have to [tinker around](https://graycode.ie/blog/how-to-add-python-pip-to-path/) with system path variables if you're on Windows. Ask around on the Slack for assistance.

**Linux Troubleshooting**<br>

---

If you're on Linux and getting a `Externally Managed Enviornment` error when using `pip install`, you might want to try out [PipX](https://github.com/pypa/pipx).

### Introduction
After launching KiCad and launching it, you should be greeted by a menu similar to this,
![KiCad Menu](images/kicad/menu.png)
You can start by creating a project by pressing File > New Project and giving it a name and save location. That'll create 3 files, the `.kicad_pro` project file, a `kicad.sch` which contains your electrical schematic and `.kicad.pcb` which is your PCB layout similar to EasyEDA's `pcb.json` file.

<br>

<p align="center">
<img src="images/kicad/files.png" alt="KiCad Project Files"/>
</p>

You can open your `.kicad_sch` file, this will be the first file you'll be using. Looks a little scary eh? Don't be concerned, it just has a lot more features than EasyEDA but has all the simple tools that you're used to still there.

You can place basic components like resistors, capacitors and diodes using KiCad's built-in symbol library. This is good for when you're just starting you're project and you want to quickly iterate your design without fine-tuned values of components. Add a resistor, press `ESC` then double click on it and give it a `Value`,
<p align="center">
<img src="images/kicad/resistor.png" alt="Resistor_Value" width=60%/>
</p>
Try this out with a few other symbols and then connect them together with the "Add Wire" tool on the right of the screen,
<p align="left" class="resistor">
<img src="images/kicad/add_wire.png" alt="Adding a wire" width=20%/>
</p>
<style>
.resistor{
padding-left: 80px
}
</style>

#### Tip
Use [**Labels**](https://www.baldengineer.com/kicad-bus-labels-and-global-labels.html) and [**Power Symbols**](https://klc.kicad.org/symbol/s7/s7.1/). These are very underused in beginner KiCad projects and while they don't serve much functional perpose they make is so much easier to review and understand your design.

## Tutorial: The Hackercard Jam
We'll start the tutorial by making a simple NFC PCB using the [Hackcard Jam](https://jams.hackclub.com/jam/hacker-card) by Maggie. This tutorial assumes you've already completed this jam but with EasyEDA.

We can start by importing the necessary parts into KiCad's Symbol and Footprint librarys by using the following EasyEDA2KiCad command in a terminal,
```bash
easyeda2kicad --lcsc_id C710403 --full
```
*replace "C710403" with the actual LCSC part number found on either [JLCPCB Parts](https://jlcpcb.com/partdetail/NxpSemicon-NT3H2111W0FHKH/C710403) or [LCSC](https://www.lcsc.com/product-detail/RFID-ICs_NXP-Semicon-NT3H2111W0FHKH_C710403.html)*

Next, in KiCad, press Place, Symbol and enter the LCSC part number for the part. Do this for every component in the jam. For the antenna this may be a little more tricky, first place the `Antenna_Loop` symbol from KiCad's default library. Lastly, to get the footprint, download the provided `.kicad_mod` [footprint file](docs/images/kicad/25X48MM_NFC_ANTENNA.kicad_mod), then in the KiCad main menu, click footprint editor, open the kicard_mod file and then File > Save As and save it to your easyeda2kicad folder.

Return to your schematic and double-click on the antenna. Next, click the three-books icon and search for the footprint named 25X48MM_NFC_ANTENNA. You should see it appear, displaying the correct antenna footprint. It should look something like this:
![Completed_Schematic](images/kicad/schematic.png)

## Submitting Your KiCad Project
Take a look at [Submitting To KiCad](/submitting-kicad.md) for instructions on how to submit your files.
Loading

0 comments on commit 8d30e44

Please sign in to comment.