arbeitsplatz

All the necessary applications for developing the elektrophon.

Danger

This is a preview of the elektrophon website, the content may not be accurate and is subject to change without any notice.
The elektrophon is developed with a continuous development lifecycle. The circuits for the modules and articles are first simulated with spice. Jupyter notebooks are used to edit and run the simulations. In these notebooks also the images and other content is created. To run the notebooks you need to install the required software. Here is a list of all the needed software and tools.

Danger

This is a work in progress module and might not work as expected. Feel free to file a bug report on the github page.

essential software

All the schematics and PCB are created in Kicad. The documentation is based on jupyter notebooks. The jupyter notebooks run simulations and create plots of the results. Also other

The software used to create the notebooks, schematics and PCB's.

  • KiCad EDA A Cross Platform and Open Source Electronics Design Automation Suite.
  • Visual Studio Code free code editor from microsoft. jupyter notebooks can be executed and previewed in code.
  • ngspice is an open source spice simulator for electric and electronic circuits.
  • PySpice is an open source Python module which provides a Python interface to the Ngspice and Xyce circuit simulators.
  • Jupyter interactive Python notebook.

In some linux distributions the open source version of Visual Studio Code is installed. With this version not all plugins or not the latest versions are available for installation. To get the plugins at the latest version, the official Microsoft Code has to be installed.

Install the Microsoft version of code in archlinux:

1
2
3
git clone https://aur.archlinux.org/visual-studio-code-bin.git  
cd visual-studio-code-bin 
makepkg -si

and install the python extension:

1
code --install-extension ms-python.python  

kicad configuration

In KiCad the libraries have to be added. The Symbols, Footprints and templates can be found in $(ELEKTROPHON)/lib/kicad

python packages

The notebooks and simulations require some python packages.

  • nbconvert Convert Notebooks to other formats
  • Matplotlib is a comprehensive library for creating static, animated, and interactive visualizations in Python.
  • NumPy The fundamental package for scientific computing with Python.
  • SciPy is a Python-based ecosystem of open-source software for mathematics, science, and engineering.
  • SymPy is a Python library for symbolic mathematics.
  • pandas is a fast, powerful, flexible and easy to use open source data analysis and manipulation tool.
  • PySpice Simulate electronic circuit using Python and the Ngspice / Xyce simulators
  • SchemDraw Schemdraw is a Python package for producing high-quality electrical circuit schematic diagrams.
  • itikz Cell magic for PGF/TikZ-to-SVG rendering in Jupyter.
  • pytest pytest is a mature full-featured Python testing tool that helps you write better programs.
  • pytest-json pytest-json is a plugin for py.test that generates JSON reports for test results
  • junit-xml A Python module for creating JUnit XML test result documents that can be read by tools such as Jenkins or Bamboo.

Itikz requires additional native packages (example in arch linux)

pacman -Sy install texlive-bin texlive-latex-extra texlive-pictures texlive-science imagemagick pdf2svg

edit the notebooks

The simplest way of editing the notebooks is to use JupyterLab. JupyterLab also allows it to edit the nobeook metadata, which is needed to create the FrontMatter part for the web pages.

Run the notebook server in docker

1
2
3
4
docker run -v {PATH TO CONTENT}:/github/workspace \
           -p 8888:8888 -ti --rm \
           ghcr.io/spielhuus/docker-elektrophon:main \
           notebook

web page

The web page can also be built in the docker container. There is additional software needed.

  • Hugo Transform your plain text into static websites and blogs.
  • Bulma Bulma is a free, open source framework that provides ready-to-use frontend components that you can easily combine to build responsive web interfaces.
  • KiBot is a program which helps you to generate the fabrication and documentation files for your KiCad projects
  • SCons A software construction tool
  • SConstool-kicad run the kibot targets from SCons
  • SConstool-notebook convert the notebooks SCons
  • spotlight Lightbox gallery library
  • $\KaTeX$ Fast math typesetting library for the web.

run the web page locally:

1
2
3
4
docker run -v {PATH TO CONTENT}:/github/workspace \
           -p 1313:1313 -ti --rm \
           ghcr.io/spielhuus/docker-elektrophon:main \
           serve

build the web page for deployment:

1
2
3
docker run -v {PATH TO CONTENT}:/github/workspace \
           -ti --rm ghcr.io/spielhuus/docker-elektrophon:main \
           build

Additional parameters for Hugo can be passed after the command. For example when also draft pages needs to be built:

1
2
3
docker run -v {PATH TO CONTENT}:/github/workspace \
           -ti --rm ghcr.io/spielhuus/docker-elektrophon:main \
           build -D

Other python elekctronics software

  • lcapy Lcapy is a Python package for linear circuit analysis. It uses SymPy for symbolic mathematics.
  • gnucap-python Python bindings for the gnucap package.
  • fastZ Lumped-Element Impedance Calculator