Introduction to KiCad and FreeCAD

HackadayU online course for PCB design using KiCad & mechanical design using FreeCAD. You need basic electronics / engineering skills.

Public Chat
Similar projects worth following
The “Introduction to KiCad and FreeCAD” course is a set of online tutorials developed by Anool Mahidharia and will consist of recorded video content as well as live Q&A / Office hours sessions. For more information, check out the “Details” below.
It will walk you through converting a hand drawn schematic to a Printed Circuit Board (PCB) and creating an enclosure for it, using open source tools - KiCad for EDA, and FreeCAD for mechanical modelling.


This course consists of 4 pre-recorded videos and 4 live office hours. More FAQ here.

Classes are pre-recorded and will be released Tuesdays at 19:00 IST/9:30a EDT/ 6:30a EDT. Office Hours are Fridays at 20:30 IST/11:00a EDT/ 8a PDT. Link to calendar for easy timezone conversion.


This “Introduction to KiCad and FreeCAD” course will consist of byte sized pre-recorded video tutorials which will walk you from schematic capture onward to PCB and enclosure design. In recent years, the line between hobbyist and professional has blurred. Hobbyists are designing and assembling circuit boards with grain sized components on multi-layer boards and dense parts placements. And thanks to rapid prototyping, modeling enclosures to house the electronics it pretty easy as well. To become a skilled hobbyist / professional, it is essential to have these design skills. But EDA and CAD tools have a very steep learning curve, and its not easy to get started unless you have a lot of guidance along the way. So, join in, and improve your engineering chops by becoming proficient in PCB and mechanical design.

Why KiCad?

KiCad is an amazing Open Source (free as in freedom!) program that allows you to design your own printed circuit board without arbitrary limitations on board size.  KiCad offers an all-in-one solution:

  • Full featured EDA suite, GNU GPL license
  • Cross-platform - Linux, Windows, Mac OSX
  • Large, dedicated support community.
  • Extensive Documentation, FAQ's, Mailing List, Tutorials, IRC

Why FreeCAD?

FreeCAD is an open-source parametric 3D modeller made primarily to design real-life objects of any size. Parametric modelling allows you to easily modify your design by going back into your model history and changing its parameters.


This course is tailored for the electronic enthusiast who has just started off using KiCad or wants to switch to it from other tools. We will walk through a design from Schematic to Gerbers and answer your “how-to” questions.

Later, we will have a  quick introduction to FreeCAD, learning how to model an enclosure after importing a 3D model of the finished PCB.

All you will need is a basic understanding of electronics and mechanical modelling.


Here’s how we will progress over the next four weeks. 

Week 1 : 

Essential KiCad links, discuss KiCad best practices, setup a project directory tree, do a schematic capture, understand symbol library management and create custom symbols

Week 2 : 

Symbol<>Footprint association, essential PCBnew plugins, PCB layout, footprint library management and creating custom footprints, adding non-technical layers to help production and assembly

Week 3 :

Engineering/Manufacturing outputs - GERBERS, vector graphics, 3D CAD formats. BoM management, creating and adding graphics such as logos to the PCB

Week 4 :

Essential FreeCAD links, FreeCAD basics, essential workbenches, unifying KiCad and FreeCAD via the KiCad StepUp tools workbench, PCB import, simple enclosure design, Exporting for manufacturing


On your Person, all you need installed is some basic electronics and engineering knowledge, and some drawing skills.

On your computer, you will need to install the two programs, along with some add ons.

  • FreeCAD workbenches : KiCad StepUp Tools, Exploded Assembly, Fasteners, Manipulator, Sheet Metal
    • To activate Workbenches, go to TOOLS > ADDON MANAGER

  • KiCad + FreeCAD Class 2

    Anool Mahidhariaa day ago 0 comments

    Here is the link to watch Class 2.

    In this class, we cover : 

    00:00:00 - Session II Overview and Session I review
    00:04:15 - Bitmap to Component converter
    00:09:40 - Symbol - Footprint association
    00:15:20 - Create footprint library and import/add custom footprints
    00:17:50 - Netlist Export
    00:18:50 - PCBnew Toolbar review, layer manager, page, board and grid settings 
    00:25:10 - Netlist / Parts Import
    00:28:00 - Parts - move, rotate, flip, place
    00:34:10 - Board outline / Edge cuts
    00:43:00 - Routing / Track layout
    00:43:40 - Net classes setup
    00:53:45 - Zone / Pour / Fill
    01:02:45 - 3D View
    01:03:05 - Silk and Fab Layer cleanup
    01:10:15 - ERC

    See you in Office Hours on Friday - note the revised time - at 20:30 IST / 11:00am EDT / 8:00 am PDT. 
    Link to calendar for easy timezone conversion.

    I've updated the Git repo to reflect what we've covered in Session 2.

    If you have any questions, please let me know here. 

  • KiCad + FreeCAD Class 1 NOTES

    Anool Mahidharia07/07/2020 at 18:47 2 comments

    Additional Notes for Session 1 : KiCad + FreeCAD


    Here's a link to my GIT repo for review.


    In EEschema Library Browser, if you see only the schematic symbol but not the footprint, check this setting :

    PREFERENCES > PREFERENCES > Eeschema > Show footprint previews in library browser (check)


    If you have a bunch of repetitive actions to be done, such as placing incremental net labels, or the same length of wire connected to a succession of pins on an IC, then

    • Set up Repetition parameters in PREFERENCES > PREFERENCES > EEschema
      • Set Horizontal pitch of repeated items
      • Set Vertical pitch of repeated items
    • Place the first item (net label, wire etc).
    • Hit the “Insert” key and the item you placed will be repeated according to the parameters set in Preferences. If it’s a Net Label, it will also increment each time you “Insert”.
    • Here’s a short video showing how it works.


    We looked at a super simple example of how busses can be used, it wasn’t exactly an appropriate use of the feature, since the same result can be achieved just by using Net Labels. But for example, if you have a more complex circuit, where there is a 16-bit data bus on a micro-controller labelled PD0..PD15, that needs to be connected to a memory device with 8 pins labelled ADR0..ADR7 and the other 8 pins labelled DAT8..DAT15, then the BUS feature solves the problem.

    • Add wire stubs and bus entries on the first device (use the repetition feature to speed things up).
    • Add wire stubs and bus entries on the second device
    • Add net labels on the first device – PD0 to PD15
    • Add net labels to the second device – ADR0 to ADR7 and DAT8 to DAT15
    • Draw a bus that connects all of these pins
    • Add a net label near the first device – PD[0..15]
    • Add a net label near the second device – ADR[0..7]
    • Add a third label near the second device – DAT[8..15]

    The pins then get connected like so :

    PD0 > ADR0

    PD1 > ADR1


    PD7 > ADR7

    PD8 > DAT8

    PD9 > DAT9


    PD15 > DAT15

    Here's a screenshot of how that looks


    If you'd like to add a symbol on the schematic which should not be placed on the PCB, then add a "hashtag" to it's REFERENCE (example - #U4 instead of U4, and it will not be put on the PCB)
    This can be used to show where off-board parts such as a Motor, Fan, Solenoid etc connect to a screw-connector on the board, for example.


    Handy KiCad cheat sheet for reference, in several languages

    And here's the link to the KiCad forum if you'd like to give feedback to the author

  • KiCad + FreeCAD Class 1

    Lutetium07/07/2020 at 16:54 0 comments

    Here is the link to watch Class 1.

    In this class, we cover:

    00:00:32 - Schematic walk through
    00:03:28 - Project Manager overview
    00:05:05 - EEschema, toolbar review
    00:12:00 - Start schematic process
    00:13:20 - Place parts
    00:18:50 - Place wires / connections
    00:21:35 - Place Net labels
    00:45:00 - Hierarchy Sheets
    00:55:55 - ERC and Power Flags
    01:00:30 - Libraries - backup, create, edit parts
    01:09:55 - Wrap up Session I

    See you in the Office Hours Friday!

View all 3 project logs

Enjoy this project?



Lutetium wrote 07/07/2020 at 16:53 point

Hi everyone and thanks for joining us in Kicad + Freecad.

We provided the pre-recorded video in advance so that people could learn at their own pace. Sorry that wasn't clear in the ticketing site. Bear with us while we get this program off the ground. There will be a live Office Hours on Friday where you can ask questions. 

-If you'd like a refund because you didn't get what you were expecting, please request one through the ticketing site.

-If you enjoyed the class, let us know!

-Feedback is welcome,

  Are you sure? yes | no

ubuntourist wrote 07/07/2020 at 15:44 point

Last night, I went through the tutorial and ended up with nice pretty PDF's of the schematics as shown in the video. (Took me bloody forever, since I'm very new to this and have zero electrical engineering chops.)  But I'm religious about taking notes and have a nice (and corresponding README.pdf) with my notes. Two questions / comments though:

According to dpkg I have kicad 5.1.6-202005120818+c6e7f7d~86~ubuntu20.04.1, which would seem to satisfy the "5.1.6" prerequisite. However, I noticed two differences:

1. When selecting a part from the symbol library, the video shows both a schematic image, and underneath that a... footprint? I think. Mine does not show the footprint thingie. Is that an option I can set or do I really need to download yet another non-integrated version of application? (I really hate doing that, and may just end up living without the preview.)

2. The other minor difference: When moving the ATtiny to make room for the bus, in the video, only the wires for pins 2 and 3 "broke". In my version, the pin 8 wire broke at the junction for the SW1 switch. Not a big deal. Just a comment.

  Are you sure? yes | no

Anool Mahidharia wrote 07/07/2020 at 16:21 point

Hi @ubuntourist , way to go !

1. In EEschema, can you go to PREFERENCES > PREFERENCES > EESCHEMA > Show footprint reviews in symbol chooser (enable)

2. That could be due to how the block was selected. Also, after selecting the block, did you choose "move" or "drag" ?

  Are you sure? yes | no

ubuntourist wrote 07/07/2020 at 16:37 point


1. I looked but missed it the first time. I now have footprint preview enabled.
2. I chose "move"... I think. 😉

Also. One more quick question: I'm guessing that the downloaded symbols, footprints and packages3D include everything that was already in the stock Debian package. Yes?

(I downloaded and unpacked them a few weeks ago, but I didn't want to screw up the existing default paths "/usr/share/kicad/..." nor overwrite the files that are managed by dpkg. In any case, using the files in /usr/share/kicad/ seemed to work okay last night...)

  Are you sure? yes | no

Anool Mahidharia wrote 07/07/2020 at 17:00 point

Answer to your new Q - Yes,
I recommend cloning the three repos locally, and keeping them updated frequently.
But if "usr/share/kicad/.." works for you, then whatever floats your boat.

  Are you sure? yes | no

ahmed.asaleh2 wrote 07/07/2020 at 15:23 point

Unfortunately there is no live event, they just posted a pre-recorded YouTube video with a very, very bad quality. I hope they'll fix it on the next week.

  Are you sure? yes | no

Anool Mahidharia wrote 07/07/2020 at 16:13 point

I'm sorry you had an experience lower that your expectations. Do you have feedback that can help us improve ?

  Are you sure? yes | no

ahmed.asaleh2 wrote 07/07/2020 at 13:36 point

no one is starting the zoom meeting! Why? I've been waiting for more than 5 minutes.

  Are you sure? yes | no

ubuntourist wrote 07/07/2020 at 14:20 point

I thought I had saved a link to the zoom meeting, but then could not find it anywhere, and assumed I must have seen it on a page that was later edited to remove it. I would not have gotten up so early had I known there was no live event.

  Are you sure? yes | no

ahmed.asaleh2 wrote 07/07/2020 at 15:21 point

Yes indeed, I hope that won't happen next time.

  Are you sure? yes | no

Anool Mahidharia wrote 07/07/2020 at 16:10 point

Sorry about that, @ubuntourist !
We felt releasing a pre-recorded video will allows everyone to follow their own pace, instead of trying to keep pace with a live video. Anyhow, there's the live Q&A session scheduled for Friday.

  Are you sure? yes | no

ahmed.asaleh2 wrote 7 days ago point

Actually I think this way is better (pre-recorded videos instead of live sessions) but as Ubuntourist said, if you told us that the video was pre-recorded we wouldn't have gotten up that early, so please consider telling us with any new changes. One more thing, the audio & video quality was very bad, please try fixing them. Thanks.

  Are you sure? yes | no

ubuntourist wrote 07/07/2020 at 13:18 point

So. The scheduled time of Tuesday 07/07 is more of a fantasy and I should just watch the YouTube videos, yes? Not anything "live" that I need to attend?

  Are you sure? yes | no

ahmed.asaleh2 wrote 07/07/2020 at 13:38 point

it looks to be that way

  Are you sure? yes | no

tyeth wrote 07/07/2020 at 15:21 point

I kind of thought the live event was a Q&A hour on zoom or silent watching the stream with moderated questions, but to be fair the youtube videos are sufficient and very good, I imagine the comments section will become a goldmine of info.

  Are you sure? yes | no

Anool Mahidharia wrote 07/07/2020 at 16:08 point

Hi All,
We decided to release just the pre-recorded video so everyone can go through it at their own pace. And then on Friday, 10th, we will have the "live" Q&A session where I'll be available.
If you don't want to wait until then, feel free to ask either here or on the project "chat" messaging.

  Are you sure? yes | no

AbdoHamdy wrote 07/05/2020 at 02:10 point

Will u upload the first week of the course on YouTube?

  Are you sure? yes | no

Anool Mahidharia wrote 07/05/2020 at 07:30 point


  Are you sure? yes | no

ahmed.asaleh2 wrote 06/26/2020 at 16:29 point

hello, I've spend about an hour trying to enroll to this course, can some one help please.

  Are you sure? yes | no

gary4132 wrote 06/25/2020 at 19:32 point

I'm a little confused about the signup process.  I'm assuming I go to the Eventbrite link and sign up there.  There are 4 dates listed and, the documentation states that I need to sign up for all four dates.  So, I guess these are the 4 individual weekly progressive courses?  And, if I need to sign up for all four, is there a way to aggregate them and checkout all four under one donation.  Very painful if you have to checkout each individually.

  Are you sure? yes | no

Anool Mahidharia wrote 06/26/2020 at 07:44 point

Sorry about that. I wasn't aware how the sign up process works, but I can send the feedback to the team that handles this at Hackaday.

  Are you sure? yes | no

ubuntourist wrote 06/23/2020 at 13:18 point

So. I've got the most of the prerequisites.set uop.. except I don't know where to unzip the three honkin' KiCad zip files. I'd rather not pollute anything put in place by dpkg.

Is there a common userland path where KiCad expects to find the unzipped footprints, packages3D and symbols?

If not, I'm inclined to try to make KiCad play like the other children and hang everything -- including the InteractiveHtmlBom plugin -- off of ~/.local/share/kicad/, adding a /footprints/, /symbols/ and /packages3D/ under that.

And then figure out how to set the environment variables or what-not to make KiCad find stuff there.

  Are you sure? yes | no

Anool Mahidharia wrote 06/23/2020 at 14:27 point

You can put them at any location, and then get KiCad to point to the appropriate path under PREFERENCES >> CONFIGURE PATHS

  Are you sure? yes | no

ubuntourist wrote 06/19/2020 at 10:08 point

Will there be any hardware requirements beyond the computer?
("Cuz I ain't got any." 😜)

  Are you sure? yes | no

Anool Mahidharia wrote 06/19/2020 at 14:36 point


  Are you sure? yes | no

Andrew Kowalczyk wrote 06/17/2020 at 20:14 point

Hi! Thank you so much for doing this, I ran an intro kicad course in my workplace and at my school, let me know if there's anything I can do to help!

  Are you sure? yes | no

Anool Mahidharia wrote 06/17/2020 at 21:06 point

Thanks, Andrew. I've posted images of what we'll cover in the class, so maybe you can go over them to see if you spot anything amiss. The plan is to build a Blinky using an ATtiny85. A Github repo will be added sometime soon.

  Are you sure? yes | no

ubuntourist wrote 06/16/2020 at 22:10 point

I have "some basic electronics and engineering knowledge" but not much...  VERY basic, I would say.

  Are you sure? yes | no

Anool Mahidharia wrote 06/17/2020 at 05:31 point

Shouldn't be a problem at all. Between the videos and instructions posted here, you'll be able to pick it up. And we're here to answer any questions if you get stuck.

  Are you sure? yes | no

oshpark wrote 06/15/2020 at 11:34 point

Thanks for doing this @Anool Mahidharia .  Are there dates yet?

  Are you sure? yes | no

Anool Mahidharia wrote 06/15/2020 at 15:49 point

Working on it. Ought to be announced some time soon. There'll be a post on the Hackaday blog too announcing it.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates