What is QEDA

QEDA is a tool aimed to make electronic devices development easy and fun.

Structure

QEDA consists of:

  • QEDA CLI — a command-line utility which provides a simple but highly customizable mechanism for creating electronic component libraries for use in EDA software.

    This is the engine of QEDA.

  • QEDA Library — an open, free, and constantly growing repository of ready-for-use electronic components.

    This is the fuel of QEDA.

Features

  • Simple electronic component definition

    Even if a component is not in a library yet, you simply define it by creating or editing a short and human readable text file in YAML format.

  • Flexible customization

    We try to take into account all settings you would like to adjust and grouped them to easily accessible parameters.

  • Compliance with your corporate style

    All schematic symbols and land patterns will share common style according to your specific settings. If your style changes the only thing you need to do is to regenerate libraries with your new settings. You may adapt the look of schematic symbols to the actual standard of your company or country.

  • Accordance to leading industry standards (IPC, JEDEC, JEITA)

    We use the latest IPC-7351B guidelines to create land patterns. Housing specifications are partially borrowed from respective JEDEC and JEITA standards.

Command Line Interface

QEDA Command Line Interface (CLI) is a tool to simplify creating electronic component libraries for using in EDA software. You can easily create both symbols for schematic and land patterns for PCB.

In this chapter, we’ll discuss:

  • Installing QEDA CLI
  • Quick starting with a basic usage scenario
  • Available commands
  • Configuration parameters

Installation

Attention! Only development builds for Linux, MacOS, and Windows are available at the moment.

Installation on Linux

Stable: From DEB Repository (Ubuntu/Debian)

Installing on Ubuntu:

curl -sL https://pkg.qeda.org/setup | sudo -E bash -

Installing on Debian (as root):

curl -sL https://pkg.qeda.org/setup | bash -

Check whether you can run QEDA from the command string:

qeda --version

Development: From Package

  1. Download the package with the executable binary:

    wget https://builds.qeda.org/dev/qeda-linux-x86_64-dev.tar.xz
    
  2. Unpack the package and copy the qeda executable to /usr/bin directory:

    tar -xf qeda-linux-x86_64-dev.tar.xz
    cd qeda-linux-x86_64-dev
    sudo cp -fv qeda /usr/bin
    
  3. Check whether you can run QEDA from the command string:

    qeda --version
    

Installation on MacOS

Stable: Using Homebrew

Coming soon.

Development: From Package

  1. Install prerequisites if needed:

    brew install wget
    
  2. Download the package with the executable binary:

    wget https://builds.qeda.org/dev/qeda-mac-x86_64-dev.tar.xz
    
  3. Unpack the package and copy the qeda executable to /usr/bin directory:

    tar -xf qeda-mac-x86_64-dev.tar.xz
    cd qeda-mac-x86_64-dev
    sudo cp -fv qeda /usr/bin
    
  4. Check whether you can run QEDA from the command string:

    qeda --version
    

Installation on Windows

Stable: Using winget

  1. Download and install winget if needed:

    https://github.com/microsoft/winget-cli/releases

  2. Coming soon.

Development: From Package

  1. Download the package with the executable binary:

    https://builds.qeda.org/dev/qeda-windows-x86_64-dev.7z

  2. Use 7-Zip archive manager or similar to unpack qeda.exe executable from the package.

  3. Copy the executable to C:\Windows directory or any directory that is specified in the PATH environment variable.

  4. Check whether you can run QEDA from the command string:

    qeda.exe --version
    

Quick Start

Let's explore a basic usage scenario when you need to create a library for KiCad EDA consisting of an SMT 0603 capacitor. We assume you consider to solder it manually.

  1. Add the component:

    qeda add capacitor/c0603
    
  2. Configure the library to be more convenient for manual soldering:

    qeda config pattern.density-level M
    qeda config pattern.minimum.space-for-iron 1
    
  3. Generate the library:

    qeda generate mylib
    
  4. Create test project for KiCad.

    Create a sym-lib-table file with the following contents:

    (sym_lib_table
        (lib (name mylib)(type Legacy)(uri ${KIPRJMOD}/kicadlib/mylib.lib)(options "")(descr ""))
    )
    

    Create a fp-lib-table file with the following contents:

    (fp_lib_table
        (lib (name mylib)(type KiCad)(uri ${KIPRJMOD}/kicadlib/mylib.pretty)(options "")(descr ""))
    )
    

    Create a myboard.pro file with the following contents:

    version=1
    [general]
    version=1
    [pcbnew]
    version=1
    [cvpcb]
    version=1
    [eeschema]
    version=1
    
  5. Open the myboard.pro in KiCad, run Symbol Editor / Footprint Editor, and find both the schematic symbol and the PCB footprint for the C0603 capacitor.

Commands

You can see available commands when running QEDA CLI with --help option:

qeda --help
CommandDescriptionExample
add COMPONENTAdd a component entry to the configuration file (with preloading from the remote repository if needed)qeda add capacitor/c0603
config PARAM [VALUE]Set/get configuration parameter (see Configuration Parameters)qeda config generator.type kicad
generate LIBRARY Generate a library for specified EDA according to the configuration fileqeda generate mylib
load COMPONENTLoad a component description from the remote repositoryqeda load capacitor/c0603

add

Firstly this command looks for COMPONENT's YAML-description in the qedalib directory (relatively to the current working directory). In case of its absence the command tries to download a component description from the remote repository. If the download is successful, this leads to caching this description file to the qedalib directory, the to add a corresponding entry to the .qeda.yaml configuration file. When called for the second time, the command will use the cached file instead of loading it from the remote repository.

If neither the local qedalib directory nor the remote repository contains the corresponding component description, the command will return the error.

See also: load

config

This command allows to set or get a configuration parameter of the electronic component library to be generated. To set the PARAM you need to provide the VALUE as a second argument. To get the parameter value one should omit the VALUE argument.

See Configuration Parameters for full available parameters list.

generate

The final command which generates a library of electronic components to be used in EDA according to the settings found in the .qeda.yaml configuration file.

load

This command loads and caches a component description from the remote repository regardless of its presence in the qedalib directory without adding it to the .qeda.yaml configuration file.

See also: add

Configuration Parameters

To be added.