How to Add a library file to EESchema

Recently I wanted to add an Arduino library to EESchema to make a schematic. Here’s how to do it.

Download the Library Files

First download the library from somewhere. I found the library I wanted on GitHub, but there are other places you can look, too.

Add the Library Files

Whether you downloaded a singled zip or multiple files, make sure you’ve located the .lib file. That’s what you’ll be adding. Open EESchema and open the Preferences > Library Menu. It should look like the window below.

from -home-jamil-Documents-KiCad-Arduino Schematics-RGB-RGB.pro_006

To the right of the Component library files pane, click Add. Locate your library file and add it. Click OK.

Now when you go to place a component, List All to see all your libraries and you should see your new library in the listing. Click on the library to choose your component and put it on your sheet.

Permission Denied when uploading a program to my Arduino

If you just started playing with Arduino on Linux, you may have run into an error uploading your very first program, similar to the following:


avrdude: ser_open(): can't open device "/dev/ttyACM0": Permission denied
ioctl("TIOCMGET"): Inappropriate ioctl for device
Problem uploading to board. See http://www.arduino.cc/en/Guide/Troubleshooting#upload for suggestions.

Your Arduino is mapped to a character device file called /dev/ttyACM0 and it looks like the IDE does not have permission to write to it. That’s essentially the problem and the fix is simple enough.

Open up a terminal and follow these commands. First let’s figure out what the current permissions are on this file.


ls -lah /dev/ttyACM0

You should get output similar to the following:


crw-rw---- 1 root dialout 166, 0 Feb 28 10:47 /dev/ttyACM0

What this shows us is that the owner (root) has read and write permissions, the group (dialout) has read and write permissions and others have no permissions at all. The fix is to let others have read and write permission so that your IDE can upload the program.


sudo chmod 666 /dev/ttyACM0

As demonic as that permission code looks like, it is actually just giving everyone read and write permission for this file.

If you run the ls command again, you should see that the permissions have changed:


crw-rw-rw- 1 root dialout 166, 0 Feb 28 10:56 /dev/ttyACM0

I don’t know what the user is when the IDE tries to upload, but if you do, please leave a comment!

You should now be good to upload your sketch to your Arduino.