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
-
Download the package with the executable binary:
wget https://builds.qeda.org/dev/qeda-linux-x86_64-dev.tar.xz
-
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
-
Check whether you can run QEDA from the command string:
qeda --version
Installation on MacOS
Stable: Using Homebrew
Coming soon.
Development: From Package
-
Install prerequisites if needed:
brew install wget
-
Download the package with the executable binary:
wget https://builds.qeda.org/dev/qeda-mac-x86_64-dev.tar.xz
-
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
-
Check whether you can run QEDA from the command string:
qeda --version
Installation on Windows
Stable: Using winget
-
Download and install
winget
if needed: -
Coming soon.
Development: From Package
-
Download the package with the executable binary:
-
Use 7-Zip archive manager or similar to unpack
qeda.exe
executable from the package. -
Copy the executable to
C:\Windows
directory or any directory that is specified in thePATH
environment variable. -
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.
-
Add the component:
qeda add capacitor/c0603
-
Configure the library to be more convenient for manual soldering:
qeda config pattern.density-level M qeda config pattern.minimum.space-for-iron 1
-
Generate the library:
qeda generate mylib
-
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
-
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
Command | Description | Example |
---|---|---|
Add a component entry to the configuration file (with preloading from the remote repository if needed) | qeda add capacitor/c0603 | |
Set/get configuration parameter (see Configuration Parameters) | qeda config generator.type kicad | |
Generate a library for specified EDA according to the configuration file | qeda generate mylib | |
Load a component description from the remote repository | qeda 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.