====== Návod na instalaci a použití KiCAD v systému MLAB ======
===== Instalace =====
Zprovoznění KiCAD se bohužel liší podle konkrétního operačního systému a platformy.
==== Ubuntu ====
Kicad má v linuxu dvě možnosti instalace. Obvykle je však nejvhodnější použít PPA.
=== PPA Repozitář ===
[[https://en.wikipedia.org/wiki/Personal_Package_Archive|PPA]] je systém vzdáleného přístupu k balíčkům připraveného software. Obvykle obsahují aktuálnější verzi, než balíčky dostupné ze standardních systémových repositářů.
Pro stažení a instalaci nejnovější stabilní připravené verze KiCAD stačí do konzole zadat následující příkazy:
sudo add-apt-repository --yes ppa:js-reynaud/ppa-kicad
sudo apt-get update
sudo apt-get install kicad
=== Zapnutí kontextových ikon ===
Ubuntu má v továrním nastavení vypnuté kontextové ikony, takže nainstalovaný KiCAD nemá v menu ikony, které usnadňují orientaci při návrhu. Lze vyřešit zadáním následujících příkazů do konzole.
gsettings set org.gnome.desktop.interface menus-have-icons true
gsettings set org.gnome.desktop.interface buttons-have-icons true
UBUNTU_MENUPROXY= kicad # or pcbnew, eeschema and etc.
==== Instalace Windows ====
Stačí si [[http://kicad-pcb.org/download/windows/ | stáhnout instalační soubor]] a ten nainstalovat.
===== Základní nastavení =====
V případě, že nový modul je založen uvnitř [[cs:rules#pouziti_github_template|template repozitáře]] a zároveň je použit [[https://github.com/MLAB-project/kicad-mlab/tree/master/template |KiCAD MLAB template]] z korektně nainstalovaných [[https://github.com/MLAB-project/kicad-mlab |kicad-mlab knihoven]]. Tak by nemělo být potřeba nastavovat parametry KiCAD projektu popsané níže.
{{ :en:kicad:kicad_mlab_template.png?600 |}}
KiCAD MLAB šablona se používá stejně jako jakýkoliv jiný [[https://docs.kicad.org/6.0/en/kicad/kicad.html#project-templates| KiCAD template]] s tím, že název KiCAD projektu je potřeba zadat stejný, jako je název repozitáře nového modu. Nový projekt má být v repozitáři umístěn na cestě ''MODUL01/hw/sch_pcb/''.
==== Nastavení knihoven ====
Během návrhu se využívá více typů knihoven součástek:
* Standardní knihovny obsažené přímo v programu [[https://gitlab.com/kicad/libraries|KiCAD]]
* [[https://github.com/MLAB-project/kicad-library|Knihovny se součástkami specifickými pro MLAB]], které obsahují i skript pro stažení knihoven z GitHubu a offline práci v KiCADu.
Je dobré při návrhu modulů využít co nejvíce prvků z knihoven KiCAD. MLAB knihovny, které jsou dostupné na [[https://github.com/MLAB-project/kicad-mlab|GitHubu]], obsahují speciální součástky, které KiCAD nemá, nebo nejsou vhodně optimalizované pro použití v modulech (aktuálně se jedná především o [[https://github.com/MLAB-project/kicad-mlab/tree/master/footprints/Mlab_Pin_Headers.pretty|hřebínkové konektory]]). Zbylé prvky zůstávají v knihovnách z důvodu kompatibility se starými moduly.
Pokud nějaká součástka není ani v jedné knihovně a vznikne potřeba vytvořit vlastní novou. Je potřeba danou součástku zařadit do knihovny MLAB, aby jí bylo možné snadno použít i v dalších modulech. Nedávat jí jen do knihovny projektu, nebo do nějaké vlastní knihovny, ke které není přístup již vůbec.
Na začátku prací je potřeba si nejprve dobře definovat cesty ke knihovnám:
{{ :cs:sw:kicad_cesty.jpg?600 |}}
Důležité je dodržet názvy KICAD_XXX_MLAB. Díky sjednoceným názvům nenastane problém s otevřením projektu a editace na různých počítačích.
Od verze KiCAD 6.0 zřejmě stačí dodržet názvy pro cestu ''KISYS3DMOD_MLAB'', která se používá uvnitř footprintů jako součást cesty k 3D modelům.
{{ :cs:sw:kicad_konfigurace_cesty.jpg?600 |}}
Knihovny se do KiCADu přidávají zvlášť při kreslení schéma a zvlášť při návrhu PCB v obou případech je postup velmi obdobný.
* Preferences -> Manage Symbol Libraries -> "Global Libraries" - Browse Libraries -> Open Library
==== Návrhová pravidla ====
Před začátkem návrhu plošného spoje je potřeba nastavit návrhová pravidla. Pokud nejsou použity obvody s malou roztečí pinů je dobré dodržet následující parametry.
{{ en:kicad:kicad_design_rules.png?600 |}}
=== Vrtané otvory - VIA ===
- standardně vrtaný otvor 0,4 mm a průměr okruží 0,8 mm
- na GND plochách 0,2 mm a průměr okruží 0,45 mm
=== Vrstvy ===
Nastavení vrstev se liší podle celkového počtu vrstev plošného spoje.
== Dvojvrstvý plošný spoj ==
***F.CU** - horní vrstva mědi (většinou vrstva GND)
***B.CU** - spodní vrstva (**zde primárně umisťovat SMD součástky**)
***F.SilkS** - vrstva horního potisku (tato vrstva se nechává vyrábět)
***B.Silks** - vrstva spodního potisku (vrstva se standardně nevyrábí)
***F.Mask** - Nepájivá maska horní strana
***B.Mask** - Nepájivá maska spodní strana přivrácená k základní desce
***User.Drawings** - Pomocné nákresy, které nebudou vyrobeny na PCB. Například obrysy krytů
***User.Comments** - kóty a další potřebné popisy, které nepatří do výrobní nebo osazovací vrstvy
***Edge.Cuts** - vnější obrys desky výsledného PCB
***F.Fab** - potisk pro osazování - strana součástek
***B.Fab** - potisk pro osazování - strana spojů
Toto uspořádání vrstev respektuje [[https://github.com/KiCad/kicad-doc/blob/master/src/pcbnew/pcbnew_layers.adoc|dokumentaci vrstev KiCADu]]
**Při návrhu dvou, nebo vícevrstvého plošného spoje**, je užitečné jednu, nebo dvě vrstvy vyhradit pro zem a napájení. Tyto vrstvy je pak vhodné nastavit jako "Split/Mixed plane" a přiřadit k nim signál GND a napájení (VCC, VDD). To umožní automaticky ukončovat tyto spoje prokovem (via) do této vrstvy. Je to mnohem lepší než pro tuto vrstvu zadat "copper pour" protože v takovém případě se spoj špatně edituje.
==== Rohové razítko ====
Rohové razítko a další pro moduly společné soubory se nachází v repozitáři [[https://github.com/MLAB-project/documents/tree/master/templates/KiCAD | MLAB/documents]], který je submodulem každého repozitáře modulu. Při vytvoření nového modulu z [[https://github.com/mlab-modules/MODUL01 |template]] jej není potřeba nastavovat. Pooužití submodulu je následující
* V repozitáři je vytvořen submodul z repozitáře [[https://github.com/MLAB-project/documents| documents]] použitím
git submodule add git@github.com:MLAB-project/documents.git doc/assets
* Následně je v projektu KiCADu potřeba nastavit relativní cestu k rohovému razítku ''../../doc/assets/templates/KiCAD/page_layout.kicad_wks''
Výsledkem je projekt, který obsahuje rohová razítka s grafickou identifikaci MLABu.
{{ :cs:sw:kicad:kicad_title_block.png?600 |}}
===== Používání KiCADu při návrhu =====
==== Schéma - Parametry součástek ====
Při kreslení schéma je potřeba dodržet určitou konvenci, aby byla výsledná výroba a automatické generování dalších dokumentů bez problémů.
Při prvním spuštění Kicad Eeschema je potřeba přidal tyto pole popisující součástky:
* MFPN - Označení součástky podle výrobce (přesný typ součástky, pro osazování)
* Distributor - Označení součástky distributorem
* Link - odkaz na stránku dodavatele
* Note - poznámka k parametrům součástky
* UST_ID - skladové číslo (Hash identifikující položku z nástroje [[https://github.com/UniversalScientificTechnologies/OpenIntranet|UST - OpenIntranet]])
V případě, že schéma obsahuje varianty osazovaných komponent, tak se k identifikaci pole přidá ještě pořadové číslo, napřiklad "MFPN_1","MFPN_2" a podobně. Komponenty se stejným pořadovým číslem odpovídají jedné osazované variantě. Komponenty, které nemají pořadové číslo jsou společné pro všechny varianty osazení.
Při použití následujícího postupu není potřeba pole vytvářet potřebná pole ručně u každé součástky znovu:
V menu ''Preferences >> General options >> Field Name Templates''
{{ :cs:sw:sch_1.jpg?400 |}}
{{ :cs:sw:sch_2.jpg?400 |}}
Při otevření parametrů součástky vypadá tabulka následnovně:
{{ :cs:sw:sch_3.jpg?400 |}}
Příklad vyplnění parametrů součástky:
Reference: C1
Value: 10nF
MFPN: 1812CA103JAT2A
Distributor: Mouser 581-1812CA103JAT2A
Link: https://cz.mouser.com/ProductDetail/AVX/1812CA103JAT2A?qs=sGAEpiMZZMsh%252b1woXyUXjzY5digEXfcQu%252bp00y9d0Fc%3d
Note: Tolerance 20%, C0G
UST_ID: 5ed7ac8e12875004e15a62cf8
Pokud máte přístup do [[https://www.ust.cz/| UST skladu]], tak je užitečné při kreslení schéma vkládat rovnou [[https://universalscientifictechnologies.github.io/OpenIntranet/modules/production/kicad| UST_ID]] odpovídající přesným součástkám ze skladu. A pokud daná součástka ve skladu ještě neexistuje, je potřeba jí rovnou vytvořit. Značně to zjednodušuje výrobu a jednoznačně definuje osazení.
===== Výrobní a dokumentační výstupy =====
Většina výstupů je generována automaticky na základě správně připravených dat v repozitáři modulu pomocí [[https://github.com/MLAB-project/documents/tree/master/workflows |GitHub workflow]]. Nejsnazší je toto automatické generování využít, případně opravit chyby v repozitáři tak, aby automatické generování výstupů fungovalo. Následující postupy popisují manuální generování výstupů, které je značně nekomfortní.
==== Generování seznamu součástek - BOM ====
=== Linux ===
- Zmáčknout tlačítko "set plugin cmd" a tam vybrat soubor: ///usr/lib/kicad/plugins/bom2csv.xsl//
- Výsledkem je, že se pole "command line" se samo nastaví na: xsltproc -o "%O.csv" "/usr/lib/kicad/plugins/bom2csv.xsl" "%I"
- Pak stačí zmáčknou "Generate". A KiCAD vyrobí soubor .csv se seznamem součástek.
=== Windows ===
Generování souborů BOM není ve formátu .CSV pod WIN přímo možné. Vyřešit tento problém je možné podle následujícího postupu.
- Nejprve je potřeba stáhnout [[https://github.com/MLAB-project/kicad-mlab/blob/master/plugins/bom_ust.py|bom_ust.py]].
- Je potřeba bom_ust.py uložit do místa instalace kicad. {{ :cs:sw:kicad_ust_bom.jpg?600 |}}
- V KiCAD eeschema otevřít v nabídce "Tools > Generate Bill Of Materials"
- Zmáčknout "+"
- Pojmenovat si ho podle sebe
- Vybrat cestu do uloženého místa.
- Poté stačí vždy dát jen Generate
==== Generování gerber a vrtacích dat ====
Při návrhu je dobré nepodlézat parametry v následující tabulce:
{{ :cs:sw:kicad_tridy.jpg?300 |}}
Před počátkem generování výrobních dat je potřeba provést kontrolu DRC. Doporučené parametry:
{{ :cs:sw:kicad_drc.jpg?300 |}}
=== Gerber data ===
U dvojvrstvého PCB nastavit tyto parametry:
{{ :cs:kicad_plot.jpg?300 |}}
=== Drill data ===
Nastavení pro generování vrtaných děr:
{{ :cs:kicad_drill.jpg?300 |}}
=== Osazovací výkres ===
Při generování osazovacího výkresu v PDF formátu, který slouží jako náhled pro výrobu, se trochu naráží na limity KiCADu. Ten při tisku do PDF zarovná do tiskové oblasti celou stránku.
Z praktických důvodů však je většina modulů kreslena tak, že má nulu souřadnic v levém spodním rohu. Což znamená mimo stránku.
Pro tisk osazovacího výkresu je tak potřeba celý modul vzít a posunout do středu stránky. Vygenerovat potřebné výkresy a pak posunutí neuložit.
===== Přejmenování projektu =====
Ve verzovaném repozitáři je potřeba projekty přejmenovávat s vědomím verzovacího systému. Typicky je tuto problematiku potřeba řešit při vytváření nové verze modulu.
Postup je následující:
- Je potřeba vytvořit novou větev ve které budou změny provedeny viz [[cs:git|]]
- V této větvi otevřeme existující projekt v kicadu a uložíme jej pod novým názvem do jiné složky mimo verzovací systém. (Tento krok je nutný kvůli tomu, že je potřeba přejmenování provést i uvnitř KiCAD projektových souborů).
- Původní soubory v repozitáři přejmenujeme pomocí [[https://www.tutorialspoint.com/batch_script/batch_script_renaming_files.htm | příkazu rename]].
- Soubory s novým názvem v repozitáři přepíšeme původně uloženými soubory z projektu pod jejich novým názvem.
==== Příklad ====
Je potřeba vytvořit novou verzi modulu z repozitáře [[https://github.com/mlab-modules/ISM02 | ISM02B]].
V naklonovaném repozitáři přejmenujeme zvolenou větev na název odpovídající navé aplikaci modulu
git branch -m TFLORA01B
V této větvi otevřeme KiCAD projekt a uložíme jej pod novým názvem do neverzované složky. Následně přejmenujeme všechny relevantní soubory. Použitím příkazu rename.
rename 's/\ISM02B/\TFLORA01B/' *
Ten je potřebné použít v některých případech vícekrát, aby byly přejmenovány všechny soubory v relevantních složkách.
Nakonec přejmenované soubory přepíšeme soubory uloženými v neverzované složce. Výsledkem je takovýto stav repozitáře:
{{ :cs:sw:git_kicad_rename.png?600 |}}
Repozitář v tomto stavu je již možné commitnout a pushnout na server standardním postupem
git commit -a
git push
Výsledkem tohoto postupu je plně trackovatelná historie změn a možnost jejich porovnání a oprava chyb v původním repozitáři.