Home Page


Hypercube Open Source Boards

Hypercube Software

Hypercube Cloud & Data Center

Hypercube Training

Hypercube Geometry

Open Nano

Parametric Drones

Hyper Neural Net

Fiber Laser Metal Cutting Machines £34,999+

Hyper Car

PCB Design

3D Printed Parts Design

Virus Scan
Penetration Testing

Industry 4.0

Technological Singularity

Digital Quantum Computer

Embedded C Training

Sharjah Tour

Six Transistor Cache
Launch Date



Terms and Conditions

Fixing KiCAD Error Messages

KiCAD often breaks because there is a lot of work being done on it by many people

  • One way to avoid getting broken versions of KiCAD is to install stable releases.
  • But at times, these lack the latest features available from daily builds so often you will end up using the latest versions.
  • The thing that most often breaks is library management.
  • KiCAD has separate schematic symbol management, footprint management and 3D management.
  • This means you can adjust a lot of things (with a text editor).
  • (Because most of the important details are stored in text files, it is easy to repair any kind of error, and also possible to automate a lot of tasks in KiCAD with scripting.)
  • When software configuration is broken, often you get error messages that are persistent.
  • Here is instructions for fixing repeat offenders.
  • There are two pairs of files that could cause this kind of problem. The files are named fp-lib-table and sym-lib-table .
  • One pair of files can be found in ~/.config/kicad
  • The other pair of files are in your project directory if KiCAD created them.
  • The error message above relates to one line of text in the file.
  • Usually what has happened is the the spelling is different.
  • There is a lot of new code being added every day, so it is easy to overlook all details.
  • The problem starts when someone copies over settings for their private environment into the release version.
  • Or there has been a change of file name to reflect better on the upgrade work being done.
  • So the fix for message for the error is to look in the file above, is to see if a similar file can be found with spelling mistake, and so correct the mistake in fp-lib-table or in sym-lib-table (these operations may need to repeated when software is upgraded).
    • Keep a note of the repairs to repeat them in the future if required.
  • If the file has really been deprecated, then remove the offending line in the fp or sym lib table file. But always keep back up copies in case the error is something else.

Schematic Symbol Error

  • Kicad schematic errors occur frequently when projects are uploaded, moved to a different PC, or shared with someone else.
  • When a kicad schematic is opened, the schematic symbol that used to be there has been replaced by a box with question marks.
  • This down to problems with paths to libraries.
  • Double click the schematic symbol and note down which library it is stored in and try to find the library.
  • To get it work, as a first step, set up paths to all libraries described in fp-lib-table / sym-lib-table probably with paths that are correct.
  • Usually the error has occurred because the author of the circuit is using his private library and its path is not local to the project directory when the schematic was released.
  • One option is to click the verify button to see if the symbol exists.
  • The other option is to take note of the symbol name and try to find a similar one in the existing libraries.
  • The best solution (for now) particularly if you are distributing the schematic widely across platforms, is to copy the relevant schematic symbol to your own project schematic library before using it, and then use the schematic symbols that are only in your project directory. That way, any changes that happens to the external libraries, or paths to libraries, outside of your project, do not cripple your project.
  • It is dangerous to cripple your project by shipping a project referencing installed libraries that came with KiCAD in your PC that may change over time. Always best to take a copy and keep it in your own project directory. Despite the proliferation of files, and unintended isolation of the project files from library updates, it saves a lot of valuable time and headaches as libraries move on.
  • The usual problems are files not found issues. And when those originals are lost, it permanently cripples the project for good if no one can open the files as libraries move on.
  • The other problem is symbols are changed, pin numbers changed, and although the project file will open, the connections are broken and/or pins mis-numbered. This puts in hidden errors into the circuit diagram that can go undetected. To reduce this kind of error when sharing project files widely, keep all symbols and footprints with the project so that library changes DO NOT affect your working files.
  • With open sourced project management, there will always be a need to make library changes without consulting 100% of the users of those libraries. So the only way to protect your work at the moment is to keep all design files and library files together in sub-directories under one project using relative paths for all objects referenced by the design. Stray from this path, then get prepared for the misery that follows :)

How to add schematic symbols to your own project

  • Typically a schematic symbol is described in a schematic .lib file like this:

 # uSD
 DEF uSD CN 0 40 Y Y 1 F N
 F0 "CN" -250 500 50 H V C CNN
 F1 "uSD" 200 500 50 H V C CNN
 F2 "" -350 0 50 H I C CNN
 F3 "" -350 0 50 H I C CNN
 S -350 400 300 -700 0 1 0 N
 X DAT2 1 -450 300 100 R 50 50 1 1 I
 X GND1 10 400 -600 100 L 50 50 1 1 I
 X GND2 11 400 -500 100 L 50 50 1 1 I
 X GND3 12 400 -400 100 L 50 50 1 1 I
 X GND4 13 400 -300 100 L 50 50 1 1 I
 X DAT3/CD 2 -450 200 100 R 50 50 1 1 I
 X CMD 3 -450 100 100 R 50 50 1 1 I
 X VDD 4 -450 0 100 R 50 50 1 1 I
 X CLK 5 -450 -100 100 R 50 50 1 1 I
 X VSS 6 -450 -200 100 R 50 50 1 1 I
 X DAT0 7 -450 -300 100 R 50 50 1 1 I
 X DAT1 8 -450 -400 100 R 50 50 1 1 I
 X CD 9 -450 -600 100 R 50 50 1 1 I

  • The name of the schematic symbol here is "uSD". The last line is the ENDDEF. These are listed one after another in a long list in a .lib file.
  • Copy and paste the schematic symbol to your own project's xx-cache.lib file.
    • If your project name is something like, then your cache lib file will be named fpga_board-cache.lib.
  • The last 2 lines of the .lib file will be like this:

 #End Library

  • Paste the schematic symbol before these last 2 lines.
  • Its not always convenient to add every symbol to the cache.lib file. So you can copy your xx-cache.lib file, rename it, delete unwanted symbols, and add additional symbols to create your own list of schematic library symbols that you want to share with everyone when you release a project.
  • Remember to add the new .lib file to sym-lib-table file in your project directory so that it is in the list of schematic libraries that the project will use.

Page last modified on June 30, 2018, at 11:08 AM