FIXME **This page is not fully translated, yet. Please help complete the translation.**\\ //(remove this paragraph once the translation is finished)// ====== Software tools for MLAB kit development ====== This site deals with software tools necessary for MLAB kit development and design, for information about technical equipment, see [[en:navody|manuals]]. MLAB design and development are not restricted to one specific set of tools because different users have different demands and approaches toward different types of software. ===== Electronic CADs ===== 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 ==== [[http://www.kicad-pcb.org/display/KICAD/KiCad+EDA+Software+Suite|KiCad]] software suite is one of only [[http://en.wikipedia.org/wiki/Comparison_of_EDA_software|three OpenSource]] tools for electronic design automation (EDA) of electronic circuits. === Ubuntu installation === There are two options for KiCAD installation in Linux - usually, it is advised to use the PPA. == PPA Repository == [[https://en.wikipedia.org/wiki/Personal_Package_Archive|PPA]] is a system of remote access to an already prepared software package. 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 the following commands into a terminal: sudo add-apt-repository --yes ppa:js-reynaud/ppa-kicad sudo apt-get update sudo apt-get install kicad === Further settings === 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. === Windows Installation === The KiCAD installation is nowadays much simpler - it is only necessary to download an exe file and install it. http://kicad-pcb.org/download/windows/ === Settings === == Libraries == * Standard libraries included directly in the program [[https://github.com/KiCad|KiCAD]] * [[https://github.com/MLAB-project/kicad-library|Libraries with components specific for MLAB]], which also contain a script for their download from GitHub and offline work in KiCAD. It is convenient to use as many parts of MLAB libraries (available at [[https://github.com/MLAB-project/kicad-mlab|GitHubu]]) as possible when designing modules. MLAB libraries contain technologically optimized variants of general encasements, which is important, especially during the 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. * Preferences -> Manage Symbol Libraries -> "Global Libraries" - Browse Libraries -> Open Library === Schematics - components naming === 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 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 the following procedure, it is no longer necessary to manually create all fields for every individual component. V menu ''Preferences >> General options >> Field Name Templates'' {{ :cs:sw:sch_1.jpg?400 |}} {{ :cs:sw:sch_2.jpg?400 |}} Opening the component’s parameters will show a following table: {{ :cs:sw:sch_3.jpg?400 |}} 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) === Rules for design === Before the beginning of PCB design, it is necessary to set up the following rules. If you are not using circuits with a small pitch of pins, the following parameters are good to follow: {{ en:kicad:kicad_design_rules.png?600 |}} === Layers === Layers settings differ according to the total number of layers on PCB. == Two layer PCB == ***F.CU** - upper copper layer (usually GND layer) ***B.CU** - bottom layer (**exclusively for SMD components**) ***F.SilkS** - upper silkscreen (this layer is fabricated) ***B.Silks** - bottom silkscreen (layer is not routinely fabricated) ***Edge.Cuts** - PCB final outline ***F.Fab** - fabrication layer (??) strana součástek ***B.Fab** - potisk pro osazování - strana spojů (??) This layer arrangement is based on [[https://github.com/KiCad/kicad-doc/blob/master/src/pcbnew/pcbnew_layers.adoc|KiCAD layers documentation ]] === Generating a list of components - BOM === == Linux == - Press "set plugin cmd" and choose ///usr/lib/kicad/plugins/bom2csv.xsl// file - The “command line” field will automatically sett as xsltproc -o "%O.csv" "/usr/lib/kicad/plugins/bom2csv.xsl" "%I" - Press "Generate”, KiCAD will create a .csv file with a list of components == Windows == Generating BOM files in a .CSV format is not directly possible in WIN. This problem can be solved using a following procedure: - Download [[http://sourceforge.net/projects/saxon/files/Saxon-HE/9.5/|Saxon]] and install it - In KiCAD eeschema open "Tools > Generate Bill Of Materials" - Press "Add Plugin" - Name it as you wish - In a command line write a following path "C:\Saxonica\SaxonHE9.5N\bin\Transform.exe" -t "%I" -xsl:"C:\kicad\src\kicad\eeschema\plugins\bom2csv.xsl" -o:"%O.csv" - In the first part, there is a path leading to the installed Saxon program, the second part leads to a bom2csv.xsl file (found in a folder with an installed KiCAD) [[https://forum.kicad.info/t/bom-generation-in-new-kicad-windows/228|Source]] === Generating production data === During designing, it is good not to undertake (?? Nepodlézat) parameters in a following table: {{ :cs:sw:kicad_tridy.jpg?300 |}} Before you begin generating production data, it is necessary to carry out a DRC control. Recommended parameters: {{ :cs:sw:kicad_drc.jpg?300 |}} == Gerber data== Set following parameters for two layer PCB: {{ :cs:sw:kicad_gerber.jpg?300 |}} == Drill data== Settings for generating bore holes: {{ :cs:sw:kicad_drill.jpg?300 |}} ==== Mentor Graphics PADS Layout ==== 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. === PCB design === == A use of layers == 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. ==== OrCAD Schematic ==== 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. === Schematics drawing === == Basic programme settings == 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. == Where to place libraries == 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: * Libraries containing general schematics symbols (?? Značky), e.g. all kinds of different transistors. Such libraries serve as a depository of ‘structures’ during a creation of various components. * Libraries containing a choice of a common representatives of certain groups, e.g. specific common transistors. * Libraries containing a whole group of specific components, e.g. jumpers with different types of tips (?? Špička). * Libraries containing components from a specific manufacturer. These are saved into subdirectories of specific manufacturers. 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. === How to create a library === === Generating outputs === == Generating netlists == 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 - Generating a list from a schematics - Conversion into an XLS table 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: * .OPJ project definitions * .DBK backup schematics file (.DSN) * .OBK backup library file (.OLB) On the contrary, the following files do contain important data: * .DSN schematics file (also contains library cache of the used elements of libraries) * .OLB library file (common libraries, best when in C:\LIBRARY\ORCAD9x directory) * .ASC netlist * .PDF file with the printed schematics (name in the XXX_sch.pdf format) * .XLS file with the components’ list, including ordering (??) objednacích information 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: * Is the right page format chosen (A4 or A3) ? * Is there an information about the schematics history on the first page? * Are the values of the components that will not be mounted marked by an underscore? * Does the schematics contain also componontents that will not be mounted onte the PCB * Are there at least 2 fidu marks (??) for each PCB side on every schematics? Actualisations: * Is the history on the first page up-to-date? * Is the title block on every page up-to-date? * Have you generated a valid netlist in .ASC format? * Have you generated schematics print file in .PDF format? * Is there a correct page order in the .PDF file? * Have you generated a list of components? * Are the files named correctly? * Do the files have Read Only attribute set? * Have you deleted any unnecessary files (and directories)? ==== Eagle ==== 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. === Texts and labels === 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: * Copper layer = labels font "Vector", Size 80, Ratio 10%. 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. ===== Mechanical CADs ===== ==== LibreCAD ==== To draw flat technical drawings [[http://librecad.org/cms/home.html|LibreCAD]] can be used. In Ubuntu, it can be installed directly from the package (?? Z balíku): sudo apt-get install librecad ==== FreeCAD ==== [[https://www.freecadweb.org/|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 ==== [[http://www.openscad.org/|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 [[http://blog.cubehero.com/2013/11/19/know-only-10-things-to-be-dangerous-in-openscad/|Know only 10 things to be dangerous in OpenSCAD]]. There is also an [[http://www.openscad.org/cheatsheet/|overview of basic functions]]. === Ubuntu Installation === 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. For the newest functions to be available use the daily Openscad compilation: sudo apt-get install openscad-nightly It can be run from the command line like openscad-nightly, both versions can be installed in parallel. To display the STL generated views in Nautilus, you can use [[https://github.com/MLAB-project/stl-thumbnailer|stl-thumbnailer]] tool. === Coding style === It is practical to follow some basic coding style rules when creating models in opens cad. * Use international language for the names of variables (English, using globally known expressions and abbreviations) * Do not shorten the names of variables too much * Separate the variables and operators by spaces * Use 4 space indentation (tabulator) in a nested code block === Using SublimeText editor === The editor integrated directly into OpenSCAD is not very comfortable for use. Therefore we prefer to edit the source codes of models in [[https://www.sublimetext.com/|SublimeText 3]] editor - you can install a plugin that recognises the OpenSCAD language. The installation can be done through a system of packages that can be activated via //Tools -> Install Package Control..//. {{:cs:sw:sublimetext3_package_control_install.png?400|}} Open the package control tool with //Preferences -> Package Control// option. {{:cs:sw:sublimetext3_package_control.png?400|}} In the menu choose "Install Package" {{:cs:sw:sublimetext3_install_package.png?400|}} Write “openscad" into a filter field and click the proper package. {{:cs:sw:sublimetext3_install_openscad.png?400|}} Now it is necessary to close and re-open the SublimeText so that the new configuration will be set. Then it is possible change the setting so that all files with //.scad// suffix will be opened with OpenSCAD syntax highlighting. This setting can be done via an option found in lower right corner and choosing //Open all with current extension as.. -> OpenScad// {{:cs:sw:sublimetext3_select_openscad.png?400|}} During the following opening of any .scad file, it will be automatically recognised as a OpenSCAD source file. ===== Generating and viewing production data===== ==== Data gerber ==== To view the generated data, there are several tools available: * [[http://gerbv.sourceforge.net/|Gerbv]] - Linux * [[http://www.pentalogix.com/|ViewMate]] - Windows === Merging the gerber data === In order to merge your data, you can use gerbmerge software - there are several different development branches on the Internet. When you want to use it with kicad software, it is convenient to use a relatively new development branch [[http://www.dent.med.uni-muenchen.de/~kkunzelm/htdocs/6_software-tools-panelize_metric-kicad-files.html| prof. Karl-heinz Kunzelmann]]. It is base on the first version 1.8 and other adjustements. It differs significantly from a [[https://github.com/MLAB-project/gerbmerge3|gerbmerge3]] version, which on the other hand has a cleaner source code. First, we install dependencies. sudo apt-get install python-simpleparse python-simpleparse-mxtexttools Next, we download gerbmerge from GitHub. git clone https://github.com/MLAB-project/gerbmerge cd gerbmerge sudo python setup.py install For gerbmerge software to function properly, it has to have a set way of paneling (způsob panelizace). This is done via a configuration file - an example of such file can be found in programme source code (it also contains commentaries explaining its usage). If we have a prepared configuration file, e.g. //layout-mm-3.3.cfg//, we can run the gerbmerge. kaklik@popelnice:~/git/gerbmerge/testdata-with-KiCAD-using-metric-units/MLAB_panel$ ../../src/gerbmerge/gerbmerge.py layout-mm-3.3.cfg The programme will try to find an optimal motives’ layout on panel according to a chosen configuration and it will generate merged files. An example for merging SET10A (the installation is the same as the previous example). First, it is necessary to get to the place with the set data: MLAB@MLAB:~/MLAB-project/gerbmerge/MLAB_panel/SET10A$ Setting of set merging is found in the layout.cfg file and the placement.merge.txt file contains the requested set layout. A file with set layout will be generated automatically during the first startup of grebmerge programme. Generating such prepared data can be done using a following command: ../../src/gerbmerge/gerbmerge.py --place-file=placement.merge.txt layout.cfg == GerberTools == [[https://github.com/ThisIsNotRocketScience/GerberTools|GerberTools]] is so far untried open-source tool written primarily for Windows in C#. ==== Gcodes for 3D print ==== Technological data for 3D printing are in MLAB generating using [[http://slic3r.org/|Slic3r]] software. So far, there are not any ready-made usable packages. Therefore it is necessary to translate the programme directly from the source codes found on GitHub. === Slic3r Installation === sudo apt-get install libextutils-cppguess-perl freeglut3-dev === Compilation === Currently, a Github’s master branch is used - it is a compromise between stability and the software’s possibilities. The compilation itself is done mostly according to instructions from README.md file. ===== Programming tools ===== Most of the software programming in MLAB uses Python or C. Development tools for these languages are generally well known. Furthermore, most of the development is aimed at Linux. That is why we only provide a list of tools that we use. ==== Programming GUI ==== A programming environment where the source code is created. The most favourite among users are the following two option - however, the source code can be written in any text editor. === Light Table === [[http://lighttable.com/|Light Table]] is a code editor that excels at some special features, such as interactive running of sections of source code or direct search in documentation. Its installation can be done by downloading a compiled package from [[http://lighttable.com/|Light Table Download]], unpacking it and running the following commands that will move it to system folders. sudo mv LightTable /opt/LightTable sudo ln -s /opt/LightTable/LightTable /usr/bin/lighttable === Sublime text === A Multiplatform paid editor for linux, Window and Mac OS. Some of its special features include an overview of the whole source code. Free version is sufficient for ordinary use. == Ubuntu installation == sudo add-apt-repository ppa:webupd8team/sublime-text-3 sudo apt-get update sudo apt-get install sublime-text-installer === Code::Blocks === A widely used editor. It’s advantage is that it runs under various platforms and thus can be used by Windows users as well. [[http://www.codeblocks.org/|Code::Blocks]] sudo apt-get install codeblocks ==== Embeded systems ==== Tools used for programming individual types of microcontrollers are mostly described in sections related to programming under different architectures. === PIC === * [[cs:pic_programming|PIC]] === ARM === * [[cs:arm_programming|ARM]] === AVR === * [[cs:avr_programming|AVR]] ===== Version Control ===== ==== GitHub ==== [[https://github.com/MLAB-project|github]] is used for management of software development and modules’ documentation. === Linux === The most effective user interface for git seems to be the command line - here its efficiency is even more striking than in SVN. == New user == For a comfortable work with git it is effective to use a method of cloning with SSH - then there is no need for permanent logging in during work. Communication is authenticated base on a privet key. Every computer needs to have a unique one generated. - You need to create a user account on https://github.com/ - Next, you have to [[https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/|generate an SSH key for the specific computer]]. - The generated key has to be [[https://help.github.com/articles/adding-a-new-ssh-key-to-your-github-account/|added into your github account]] - If the addition of the key into clipboard (?? Schránka) does not work properly, it is possible to obtain the key via opening a hidden file and then copying the key manually. ‘’cat ~/.ssh/id_rsa.pub'' - This procedure only has to be done during the first download to a given computer. == Basic commands == == Cloning a repository : == - First, you have to choose a place on your computer, where the repository will be saved and at that place, open the command line - As an example, we will use kicad-mlab repository: https://github.com/MLAB-project/kicad-mlab - From the page, download the path to the repository - web button "Clone or download". - It is necessary to switch the path to "Clone with SSH" in stead of "Clone with HTTPS”. - In our case, the path is as follows: git@github.com:MLAB-project/kicad-mlab.git - Run the following command in the command line: git clone git@github.com:MLAB-project/kicad-mlab.git - You may be asked to provide a password you have chosen during the SSH key generation == Downloading the current version == - In the folder with the saved repository, run the following command in the command line: git pull == Finding out whether the repository is up-to-date == git status This command lists all the files that have been changed or added as new. == Adding new file or folder == git add file_name After marking (?? Označit) the whole path from the command list of commands (?? výpis příkazů), the path can be inserted by clicking on the middle mouse button. For submitting (?? Adding, přidání) all the changes, you can use ```git add .```. == Creating a commit == git commit -m “Description of the change" After running the above-mentioned command, the commit is only in the local copy of the repository. For data to be sent to the server, see the next section. == Upload to server == git push It is helpful to list the output of the following command, to see if all the operation were done correctly. git status The list should not contain any items that we wanted to upload. == Changing the size of the local repository == In its default setting, Git downloads the whole repository including all the edit history. This can be prevented during the repository download by including ```--depth=``` parameter. git clone --depth=1 If you want to apply it onto an existing copy of the repository, you can use the following approach: git fetch --depth 2 git reflog expire --expire=all --all git gc --prune=all === Windows === [[https://tortoisegit.org/download/|TortoiseGit]] Under Windows OS, data from GitHub can be comfortably download via a [[en:tortoisegit|TortoiseGit]] programme. ===== Documentation ===== ==== Text documentation ==== All MLAB text documents are UTF-8 coded. Some users however use Windows for editing files which may result in an incompatible file, which needs to be re-coded. Converting the coding of text files. iconv -f WINDOWS-1250 -t UTF-8 zprava.txt -o zprava.txt === Dokuwiki === Dokuwiki is a system that runs the documentation. == Offline editing == Documentation can be edited offline, which is a very useful feature that one can use e.g. during traveling. For offline editing to work, it is necessary to create a local wiki instance on your notebook. It can be done following a [[https://www.dokuwiki.org/install:ubuntu#alternative_easier_custom_installation| guide for Dokuwiki intallation for Ubuntu]]. Data between both wiki instances are synchronised with [[https://www.dokuwiki.org/plugin:sync|sync plugin]] that is installed on the local wiki instance. After the first synchronisation with the server wiki we can locally edit the site offline and subsequently upload the changes to the public MLAB wiki. === LaTeX === LaTeX is a document preparation system with typesetting program for formatting its output. There is a template for LaTeX in templates folder. When writing documentation in Ubuntu, following packages are used: sudo apt-get install texmaker texlive-lang-czechslovak After their installation it is possible to write and edit MLAB documents written in [[http://cs.wikipedia.org/wiki/LaTeX|LaTeXu]] === Dokuwiki and Latex === Lately, a quite common documentation problem that occurs is a conversion of documentation that is being added on wiki to a formal type of documents. Direct rewriting is not very efficient. It is better to use software tools such as [[http://johnmacfarlane.net/pandoc/try/|Pandoc]], which is able to interconvert a variety of document formats. However, it is not able to directly convert Dokuwiki syntax into LaTeX. It is possible to use HTML code, generated by Dokuwiki that the Pandoc is able to work with. A web version of Pandoc can process an HTML code with length only up to 1000 characters. Therefore, it is more usable to install a local offline version. sudo apt-get install pandoc The conversion itself can be run with a following command: pandoc -f html -s -t latex temp_doc.html Converted document will be printed into the command line, from which it can be simply copied into a Latex editor. [[http://donaldmerand.com/code/2012/07/20/how-i-actually-convert-dokuwiki-to-latex.html| Offline method of conversion]] ==== Image documentation ==== === Dia === A Did software can create diagrams and block diagrams. === Fritzing === There are efforts to use Fritzing to create a documentation of connections (?? Zapojení) of individual modules in constructions. However, so far it does not support a mechanical placement of PCBs. That is why this tool is not widely used. === Prezi === A tool for creating a public presentations of projects. === ImageMagick === [[http://www.imagemagick.org/Usage/resize/#shrink|Changing the size of images]]. ===== Quality control ===== To control the overall quality of design documentation, you can use [[https://www.mlab.cz/modules/all|an overview of modules' documentation]]. The overview can be sorted according to different criteria, e.g.: * https://www.mlab.cz/modules/all?order=status,name - according to status and name * https://www.mlab.cz/modules/all?order=id - according to id (default) * https://www.mlab.cz/modules/all?order=root - according to folder (and thus categories) Every module has a quality mark assigned. Currently, a quality of photography is rated according to following criteria: * 0 - no photo * 25 - render from KiCAD * 50 - photo of low quality - e.g. taken on mobile phone * 100 - a professional photo taken using a [[cs:designs:fotobedna|photo box]]. ===== Organisation of development ===== ==== Redmine ==== A tool for creating tasks and division of labour on projects. Its instance [[http://www.mlab.cz/redmine|runs on the server]]. ====== Tools for data processing ====== ===== Interactive computational tools ===== ==== Jupyter notebook ==== Jupyter is a software tool that enables a use of computational and programming packages such as Python or Octave. Its advantage is an interactive command processing, useful especially during testing or writing of new algorithms. === Intallation === Proceed according to recommendations in [[https://github.com/jupyter/notebook|source code repository]]. sudo pip install notebook To run the software jupyter notebook Where we chose the kernel. ===== gnuradio ===== [[http://gnuradio.org/|Gnuradio]] is a tool for signal data processing, mostly from SDR receivers. ====== Simulation tools ====== ===== Nec2++ ===== [[http://elec.otago.ac.nz/w/index.php/Necpp|Necpp]] is a tool for numerical calculations of antenna parameters. ==== QAntenna ==== [[http://qantenna.sourceforge.net/download.php|QAntenna]] === Compilation === 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