This is an old revision of the document!
This page is not fully translated, yet. Please help completing the translation.
(remove this paragraph once the translation is finished)
This site deals with software tools necessary for MLAB kit development and design, for information about technical equipment see manuals.
MLAB design and development is not restricted to one specific set of tools because different users have different demands of and approaches towards different types of sotware.
Tools for PCB design and schematics drawing, eventually also for simulation of connection. At the present time, we prefer KiCAD software, other tools are mentioned because they are still used to create some designs.
KiCad software suite is one of only three OpenSource tools for electronic design automation (EDA) of electronic circuits.
There are two options for KiCAD installation in linux - usually it is advised to use the PPA.
PPA is a system of remote access to an already prepared software packages. They usually contain a more actual version than the packages available from the standard system repositories.
In order to download and install the most stable KiCAD version, enter following commands into a terminal:
sudo add-apt-repository --yes ppa:js-reynaud/ppa-kicad sudo apt-get update sudo apt-get install kicad
In its default setting, Ubuntu has disabled contextual icons - therefore the installed KiCAD does not contain any menu icons simplifying the design process. The problem can be solved by typing a following commands:
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.
The KiCAD installation is nowadays much simpler - it is only necessary to download an exe file and install it.
It is convenient to use as many parts of MLAB libraries (available at GitHubu) as possible when designing modules. MLAB libraries contain technologically optimised variants of general encasements, which is important especially during fitting and automatic generation of documentation.
Libraries are added to KiCAD separately during schematics drawing and separately during PCB designing - the procedure is very similar in both cases.
During schematics drawing, it is necessary to stick to some convention so that the production and automatic generation of further documentation may occur without problems.
At the first start of Kicad Eeschema, you have to add the following fields describing components:
MFPN Distributor Link Note UST_ID
In case that a schematic contains variants of fitted components, the MFPN (?? Identifikace pole) has an additional serial number, for example “MFPN_1”, “MFPN_2” etc. Components with the same serial number belong to the same variant and components without a serial number are common to all fitted variants.
When using a following procedure, it is no longer necessary to manually create all fields for every individual component.
V menu Preferences » General options » Field Name Templates
Opening the component’s parameters will show a following table:
An example of filled in component’s parameters:
Reference: C1 Value: 10nF MFPN: 1812CA103JAT2A (an exact type of component, for fitting purposes) Distributor: Mouser 581-1812CA103JAT2A L{{ :cs:sw:sch_2.jpg?400 |}}ink: https://cz.mouser.com/ProductDetail/AVX/1812CA103JAT2A?qs=sGAEpiMZZMsh%252b1woXyUXjzY5digEXfcQu%252bp00y9d0Fc%3d Note: accuracy 20%, C0G UST_ID: if there is an entry in UST stock (?? pokud je přístup do UST skladu)
Before the beginning of PCB design, it is necessary to set up following rules. If you are not using circuits with small pitch of pins, following parameters are good to follow:
Layers settings differ according to the total number of layers on PCB.
This layer arrangement is based on KiCAD layers documentation
Generating BOM files in a .CSV format is not directly possible in WIN. This problem can be solved using a following procedure:
During designing, it is good not to undertake (?? Nepodlézat) parameters in a following table:
Before you begin generating production data, it is necessary to carry out a DRC control.
Recommended parameters:
It is a proprietary software where most of the present MLAB modules are designed. However, we assume that it will be completely replace by Open-Source KiCAD in the future.
In case of fidu labels (?? fidu značek) and other similar objects (various holes etc.) it is helpful to turn off refdes - they are not needed on osazovák (??).
Filter = Labels, mark the text and delete it using Del key Deleted labels can be laid (?? Položit) again.
Texts (labels on printing) belong to Silkscreen Top/Bottom layer. Do not forget to place module identification somewhere. The same text also belongs to the traces layer (vrstva spojů ??).
Font 80mils Line 8mils
In case of diodes, we add A to the anode and in case of condensers we add + to the Assembly Drawing Top/Bottom layer.
Font 80mils Line 8mils
Design Rules a elements size
Settings in Setup / Design Rules / Default / Clerance determine the with of the traces and insulators spaces between various objects. Set the values with respect to the density of design.
Trace widths Trace Width / Minimum = 12mils (possibly up to 9mils) Trace Width / Recomended = (12mils), 15mils, 20mils, 30mils or 45mils Trace Width / Maximum = unlimited, however it is better to pour traces wider than 60mils with copper Insulatory distances Clearence = 10mils Clearence Copper = 20mils
Raster is suitable especially for components placement. For placing traces, raster can be in fact arbitrarily small. It can be easily set using G command, e.g. G10 directly from keyboard.
A tool for creating electrical circuits of modules and a following export of netlists into PADS system for processing PCB designs. The vast majority of module schematics is drawn using this editor. Because it is used in combination with PADS and it is no longer notably developed, it is assumed to be replaced by KiCAD in a near future.
Settings for an automatic stamp insertion Options /Design Template / Title Block
Library Name = C:\LIBRARY\ORCAD9x\SYMBOLS Title Block Name = TITLE_MLAB
Page size settings (European settings) Options / Design Template / Page Size
Units = Millimeters New Page Size = A4 Pin to Pin Spacing = 2.54
Raster settings Options / Design Template / Grid Reference
Vertical & Horizontal Width = 2.54
Allowed schematics’ font sizes are 8, 14 or 22.
During a schematics drawing, we save libraries into C:\LIBRARY\ORCAD9x directory, so that when there is a change in a library, all used library elements in the existing schematics can be updated with ease.
Every schematics’ element is saved together with its own schematics in the so called library cache - it is saved including a whole absolute path to the library it was copied from and at the same time, in case of update, it is also search for here. If all users have the same libraries at the same place, life would be easier :)
We have following groups of libraries:
When working with libraries, one must be extra cautious not to delete some of their elements by change (it is enough to press DEL and the element is gone). It is beneficial to set the finished libraries as Read Only. Elements of libraries can be dragged into an library from a library cache of an existing schematics.
Netlist contains a list of connections in PCB design, values of components and names of their encasements. It can be generated via a Tools / Create Netlist option.
Other PCB Footprint / Combined Property String = {Device},{Value}@{PCB Footprint} Formatters = padspcb.dll Netlist File 1 – set a suffix .ASC Generating list of components
Creating a list of components consists of two steps
A list of components from OrCADS is generated using a Bill of Material function, resulting in a TXT file.
Header: Quantity\tReference\tPart\tPCB Footprint Combined property string: {Quantity}\t{Reference}\t{Value}\t{PCB Footprint}
The final form of components’ list is an XLS table. You can find an exemplar of table in VZOR_Seznam_součástí.xls. Save it into the SCH directory and open it. Proceed according to the instructions that are found in the exemplar. Generating .PDF
Printing usually uses A4 as its target format, even in case of schematics that are originally of A3 size. 600dpi resolution is sufficient for a good quality output.
File is named according to the name of the module with a _sch suffix - e.g. SAMPLE_sch.pdf.
Adobe Acrobat Distiller - preferred
Acrobat Distiller creates colourful PDF files. It does not need any specific parameter setting (600dpi, scale 100%).
When printing with OrCAD Capture, it is necessary to set up a reduction in scale of the print and its shift in order for borders to be satisfactory.
A3 schematics – Scale=0,65; Print Offset X=12, Y=10 A4 schematics – Scale=0,91; Print Offset X=12, Y=10 Adobe Acrobat Writter
Acrobat Writter create black and white PDFs. In order to get a small size of the final PDF files, a compression has to be set. Neither the output size nor the shift cannot be altered. Advantage of this program is, that the schematics can be printed at once even if it contains lists in various formats. The final format does not have to be A4, however it is the most common case. Different versions of the program have different settings’ possibilities.
Page Setup Page Size / Standard = A4 Graphic / Resolution = 600dpi Graphic / Scaling = 100% Compression Options General / Compress text and lineart = Yes Color/Gray Scale Images / Compress using = ZIP
Files cleanup
Delete all the unnecessary files, check the names of the final files and set Read Only attribute.
The following files are not routinely loaded (?? Zavést) to database:
On the contrary, the following files do contain important data:
Mandatory actions
The list of mandatory actions serves as a quick check that you have not forgotten anything important. All the question should be answered either “yes” or “in this case intentionally no”.
New schematics establishment:
Actualisations:
Some modules are designed in this system - however, due to a necessity of having different directory structure, they are published in SVN database MLAB_E that does not yet have web listings. In the future, we do not expect further using Eagle for module design.
Eagle software uses different text fonts that a formerly used PADs, that is why its setting is slightly different. So far, the following setting seems to work best:
One module can contain more font sizes (usually less than 3 is enough). They are used in the following order: module name, labels, warnings, author identification. Different font sizes are of course only used in cases, when there is enough space on the module. Therefore, some modules only contain one font size, with respect to a good readability and module size.
To draw flat technical drawings LibreCAD can be used. In Ubuntu, it can be installed directly from the package (?? Z balíku):
sudo apt-get install librecad
FreeCAD is on the other hand well suited for a classical 3D modelling, known from many proprietary CAD software. It seems convenient to use its daily build, available from PPA.
sudo add-apt-repository ppa:freecad-maintainers/freecad-daily sudo apt-get update sudo apt-get dist-upgrade sudo apt-get install freecad-daily freecad-daily-doc
OpenSCAD is a tool for designing 3D models of technical devices. In contrast with most of the design tools, OpenSCAD uses a programming language to describe objects. This approach allows models parametrisation and their easy versioning with an accurate identification of changes. A basic introduction into its using can be found here Know only 10 things to be dangerous in OpenSCAD. There is also an overview of basic functions.
In order to instal the actual version for Ubuntu 14.10 and higher, there is a PPA repository ready:
sudo add-apt-repository ppa:openscad/releases sudo apt-get update
Openscad can be then installed using a following command:
sudo apt-get install openscad
The programme can be opened in the usual from dashboard or using command line.
Pro použití nejnovějších funkcí je vhodné použít denní kompilaci openscadu.
sudo apt-get install openscad-nightly
Tu lze pak spustit z příkazového řádku jako openscad-nightly, obě verze proto mohou být naistalované paralelně.
Pro zobrazení náhledů vygenerovaných STL souborů v prohlížeči Nautilus můžete využít nástroj stl-thumbnailer.
Je praktické dodržovat některá základní pravidla při vytváření modelů v openscadu.
Editor integrovaný přímo do OpenSCADu není moc pohodlný pro užívání. Je proto vhodnější zdrojové kódy modelů editovat v editoru SublimeText 3. K tomu je ale vhodné si do editoru nainstalovat plugin, který zná jazyk OpenSCADdu.
Instalaci lze provést přes systém balíčků, který můžeme aktivovat volbou Tools → Install Package Control...
Otevřeme nástroj pro zacházení s balíčky volbou Preferences → Package Control.
V nabídce zvolíme “Install Package”
Do filtračního pole napíšeme “openscad”. A klikneme na odpovídající balíček.
Nyní je potřeba SublimeText zavřít a znovu otevřít, aby se nová konfigurace projevila. Potom je možné nastavit, aby všechny soubory s příponou .scad byly otevřeny s OpenSCAD zvýrazňováním syntaxe. To lze nastavit přes volbu v pravém dolním rohu a výběrem Open all with current extension as.. → OpenScad
Při následujícím otevření .scad souboru bude automaticky rozpoznán jako OpenSCAD zdrojový kód.
Pro skládáni dat lze využít program gerbmerge. Který se na internetu vyskytuje v několika různých větvích vývoje. Pro použití s programem kicad je vvýhodné použít relativně novou vývojovou větev prof. Karl-heinz Kunzelmann. Ta vychází z prvotní verze 1.8. a dalších úprav. Poměrně významně se však liší od verze gerbmerge3, která ale má čistější zdrojový kód.
Nejdříve nainstalujeme závislosti.
sudo apt-get install python-simpleparse python-simpleparse-mxtexttools
Následně stáhneme gerbmerge z githubu.
git clone https://github.com/MLAB-project/gerbmerge cd gerbmerge sudo python setup.py install
Aby gerbmerge fungoval, tak je mu potřeba zadat způsob panelizace to se dělá konfiguračním souborem. Příklad konfiguračního souboru je vložen u zdrojových kódů programu. Přímo v něm jsou komentáře vysvětlující jeho použití. Pakud ale máme připravený konfigurační soubor např. layout-mm-3.3.cfg tak gerbmerge můžeme spustit.
kaklik@popelnice:~/git/gerbmerge/testdata-with-KiCAD-using-metric-units/MLAB_panel$ ../../src/gerbmerge/gerbmerge.py layout-mm-3.3.cfg
Program se pokusí nalézt optimální rozložení motivů na panelu podle zvolené konfigurace a vygeneruje výsledné složené soubory.
Příklad pro složení SET10A (instalace se schoduje s předchozím příkladem) Nejprve je potřeba se dostat do místa, kde jsou data setu:
MLAB@MLAB:~/MLAB-project/gerbmerge/MLAB_panel/SET10A$
Nastavení skládání setu je v souboru layout.cfg a v soboru placement.merge.txt je uloženo požadované rozložení v setu. Soubor s rozložením setu se vygeneruje atomaticky při prvním spuštění programu gerbmerge. Vygenerování takto připravených dat se provede následujícím příkazem:
../../src/gerbmerge/gerbmerge.py --place-file=placement.merge.txt layout.cfg
GerberTools je zatím nevyzkoušený open-source nástroj napsaný primárně pro Windows v C#.
Technologická data pro 3D tisk v MLABu generujeme programem Slic3r. Zatím od něj neexistují připravené balíky v použitelné verzi. Proto je nutné program přeložit přímo ze zdrojových souborů na githubu.
sudo apt-get install libextutils-cppguess-perl freeglut3-dev
Z githubu se aktuálně používá master větev, která je kompromisem mezi stabilitou a možnostmi software. Samotná kompilace pak probíhá vetšinou podle instrukcí v souboru README.md
Na většinu programování softwaru se používá se v MLABu používá Python, nebo C. Vývojové nástroje jsou pro tyto jazyky dobře obecně známé. Většina vývoje je navíc orientována na Linux. Proto zde uvedeme jen seznam nástrojů, které používáme.
Programovací prostředí v kterém je vytvářen zdrojový kód. Mezi uživateli jsou nejoblíbenější následující dvě volby. Jinak lze ale zdrojový kód psát v libovolném textovém editoru.
Light Table je programátorský editor kódu, který vyniká speciálními vlastnostmi, jako je například interaktivní spouštění částí zdrojových kódů, nebo přímé vyhledávání v dokumentaci. Jeho instalaci do systému provedeme stažením zkompilovaného balíku z stránky Light Table Download, rozbalením staženého balíku a provedením následujících příkazů, které jej přesunou do systémových složek.
sudo mv LightTable /opt/LightTable sudo ln -s /opt/LightTable/LightTable /usr/bin/lighttable
Multiplatformní placený editor pro linux, Windows, Mac OS. Mezi jeho vyjímečné vlastnosti patří například náhled celého zdrojového kódu. Pro běžné použití stačí nezaplacená varze.
sudo add-apt-repository ppa:webupd8team/sublime-text-3 sudo apt-get update sudo apt-get install sublime-text-installer
Jde o velmi rozřířený editor, jehož výhodou je, že běží na více platformách a mohou ho tedy používat i uživatelé windows.
sudo apt-get install codeblocks
Nástroje na programování jednotlivých typů mikrokontrolérů jsou většinou popsány v částech týkajících se programování u jednotlivých architektur:
Pro správu softwarového vývoje a dokumentace modulů používáme github.
Jako nejefektivnější uživatelské rozhraní pro git se osvědčil příkazový řádek s tím, že jeho efektivita je zde ještě markantnější než u SVN.
Pro pohodlnou ptáci s git je efektivnější používat metodu klonování s SSH. Není při práci vyžadováno stále přihlašování. Komunikace je autentizována na základě privátního klíče. Pro každý počítač je potřeba vygenerovat unikátní klíč.
cat ~/.ssh/id_rsa.pub
git clone git@github.com:MLAB-project/kicad-mlab.git
git pull
git status
Tento příkaz vypíše u jakých souborů došlo ke změně, nebo které byli přidány jako nové.
git add název_souboru
Po označení celé cesty z výpisu příkazů lze cestu vložit pomocí kliknutí na prostřední tlačítko myši. Pro přidání všech změn lze použít ```git add .```.
git commit -m "Popis provedené změny"
Po tomto příkazu je commit pouze v lokální kopii repozitáře. Aby se data odeslala na server je potřeba zadat následující příkaz.
git push
Pro ověření, zda veškeré úkony proběhly v pořádku je dobré se podívat na výstup příkazu:
git status
Ve výpisu by neměly být žádné položky, které jsme chtěli nahrát.
Git si ve výchozím nastavení stahuje celý repozitář včetně veškeré historie úprav. Toto lze zamezit při stahování repozitáře pomocí parametru ```–depth=<pocet stazenych commitu>```
git clone <adresa_repozitare> --depth=1
Pokuď toto chcete aplikovat na existující kopii repozitáře, lze to provést následujícím postupem.
git fetch --depth 2 git reflog expire --expire=all --all git gc --prune=all
TortoiseGit Pod operačním systémem Windows je možné stahovat pohodlně data z GitHub do počítače přes program TortoiseGit.
Veškeré textové dokumenty jsou v MLABu kódovány v UTF-8 někteří uživatelé ale požívají na editaci souborů windows a výsledkem je nekompatibilní soubor, který je třeba překódovat.
Převod kódování textových souborů.
iconv -f WINDOWS-1250 -t UTF-8 zprava.txt -o zprava.txt
Dokuwiki je systém ve kterém běží tato dokumentace.
Podstatné ale je, že je možné tuto dokumentaci editovat i offline, což se hodí zejména při cestování.
K tomu je potřeba si na svém notebooku zprovoznit lokální instanci wiki. Tu si zprovozníme podle návodu na instalaci Dokuwiki pod Ubuntu. Data pak mezi oběma instancemi wiki synchronizujeme pomocí pluginu sync, který naistalujeme na svojí lokální instanci wiki. Po první synchronizaci se serverovou wiki můžeme stránky lokálně offline editovat a změny následně nahrát na veřejnou wiki MLAB.
LaTeX je je systém pro sazbu profesionálních dokumentů. V složce templates je pro něj šablona.
V případě psaní dokumentace v Ubuntu se použivají následující balíky
sudo apt-get install texmaker texlive-lang-czechslovak
Po jejich istalaci je možné psát a editovat MLAB dokumenty napsané v LaTeXu
Poslední dobou je poměrně častým dokumentačním problémem převod dokumentace postupně vznikající na wiki do formální podoby dokumentu. Přímé přepisování není příliš efektivní. Proto je vhodnější využít programové nástroje jako například Pandoc, ten umí vzájemně převádět mnoho formátů dokumentů. Ale neumí přímý převod Dokuwiki syntaxe na Latex. Lze si však pomoci použitím HTML kódu, který generuje dokuwiki a se kterým již Pandoc umí pracovat.
Webová verze Pandoc umí zpracovat HTML kód o délce pouze do 1000 znaků. Je proto vhodné si nainstalovat lokální offline verzi.
sudo apt-get install pandoc
Převod pak můžeme realizovat příkazem:
pandoc -f html -s -t latex temp_doc.html
Převedený dokument se nám pak vypíše do příkazové řádky, odkud jej pak stačí zkopírovat do Latexového editoru.
Program dia slouží na tvorbu diagramů a blokových schémat.
Je snaha použít fritzing pro tvorbu dokumentace zapojení jednotlivých modulů v konstrukcích. Zatím však Fritzing nepodporuje mechanické umístění. Plošných spojů. Takže se tento nástroj reálně nepoužívá.
Je nástroj na tvorbu veřejných prezentací projektů.
Pro zkontrolování celkové kvality dokumentace návrhů slouží přehled dokumentace modulů.
Tento přehled lze řadit podle různých kriterií. Například
Každý modul má přiřazenou známku kvality. Aktuálně se hodnotí kvalita fotografie podle následujících kritérií
Je nástroj pro vytváření úkolů a dělbu práce na projektech. Jeho instanceběží na serveru.
Jupyter je softwarový nástroj, který umožňuje použít více výpočetních a programátorských balíků jako je například Python nebo Octave. Výhodou Jupyteru je interaktivní zpracování příkazů což oceníme hlavně při testování nebo psaní nových algoritmů.
Postupujeme podle doporučení v repozitáři se zdrojovými kódy.
sudo pip install notebook
Spuštění se naopak provede
jupyter notebook
Kde si pak zvolíme námi použitý kernel.
Gnuradio je nástroj pro zpracování signálových dat obvykle z SDR přijímačů.
Necpp je nástroje pro numerické výpočty anténních parametrů.
sudo apt-get install qtbase5-dev qttools5-dev
git clone git://git.code.sf.net/p/qantenna/code qantenna-code qttools5-dev-tools cd qantenna-code/ qmake qantenna.pro make