The Learning Graph

How do we learn?

What is the process? What are the stages as we learn a new subject or pick up a new skill? When are we most likely to quit? When are we most likely to reap the rewards for our time invested? These are all interesting questions!

Over the years I have put together a personal learning graph (completely empirical of course):

IPC Land Pattern/Footprint Calculator

I have been meaning to make my KiCad passive land pattern libraries compliant with the IPC-7531 industry standard.

The following is the IPC spreadsheet calculator I made for my own use (it’s been adapted to fit my needs):

Camilo RCL SMD CHIP IPC Calculator

note: this spreadsheet makes heavy use of the indirect function in Libre Office Calc, if you are having trouble check this

Also here are a couple of free calculators and resources you can find online to help you:

Open tools for circuit design – Learning QUCS, KiCad and Freecad

The Wah Pedal

Not so long ago a friend showed me a little circuit which I thought was quite interesting (The Wah Pedal), a simple variable active filter with a couple of transistors but with no variable reactive components. So I thought eventually, some day, I should take the time to understand it more deeply, simulate it and put it in a little PCB; a great example project for learning a couple of new design tools. Well I did!

The Final Design

The Circuit simulation


The Board Layout


* Note that stitching vias around the ground plane is somewhat counterintuitive.

The 3D Model


Below you can find more information about how this board came about. Specifically about the open tools I used and the learning process. At the end you can find the design files.

The Printed Circuit Boards

Choosing the tools

For a while now I have been meaning to find a set of open (FLOSS) tools that I can learn and use for my future hardware projects. Specially I was looking for circuit simulation, PCB design and 3D CAD modeling software.

I came across the following viable alternatives (though there are a lot more):

After some research (I use Open Hub quite a bit) and some tinkering with each software I settled on: QUCS, KiCad and FreeCAD.

Learning QUCS

I went over to their documentation page and completed their getting started tutorial; It was well written and easy to follow. In Qucs, the user interface and the overall process is quite intuitive so I was up and running in no time.

After completing the tutorial I started my own QUCS project for simulating the Wah Pedal: finding the component models, wiring the schematic, setting up the sources, preparing the simulations …etc. Except for a few hiccups here and there (for help, you can join their mailing list), things went pretty smooth. No complaints.

Learning KiCad

The process of learning KiCad to use it for my own project was as follows (your mileage may vary):

  1. Read the Getting Started Guide and Complete the KiCad example project.
  2. Briefly read all the docs about every KiCad software component (e.g. KiCad Project Manager, EESchema, PCBNew …etc). It really helps to know how everything fits together (perfect opportunity to grab a latte and spend a relaxed afternoon reading about KiCad).
  3. Learn about KiCad Libraries, and how to build your own components (don’t listen to the rants 🙂 ):
    1. Schematic Library Editor
    2. Footprint Library Editor
  4. Create your own personal component’s library (here’s why)
    1. Here are the Kicad Library Conventions (KLC).
    2. Here are my own library conventions (very similar to KLC).
    3. Here are my libraries for reference (these are constantly changing).

Try to always build your libraries on a need to have basis, do not build parts you don’t need (more parts does not mean better libraries). Otherwise they will go unmaintained and mix with the good parts and clutter your libraries making them useless. (i.e. you don’t know which parts are good anymore)

After you build your libraries for every component you need in the circuit, you can proceed to create the schematic project in EESchema, assign footprints to the schematic components with CvPcb, work on the board layout with PCBNew, and finally plot the Gerbers for manufacturing.

Learning FreeCAD

In KiCad you need some 3D models to assign to your footprints such that the whole board can be rendered nicely and you can inspect for mistakes before sending the board to the fab.

Normally, KiCad 3D component models are built with Wings 3D, but we need FreeCAD to import the .stp files we get from the manufacturers (plus I have a little bit of experience working with FreeCAD).

My learning process for FreeCAD (as it relates to KiCad) went like this:

  1. FreeCAD Getting Started Guide: Quick Read.
  2. Part Design Basic Tutorial: Super helpful, but optional if you are in a rush.
  3. Building 3D component models using the manufacturer CAD STEP file.
  4. Building Kicad component models from scratch based on the manufacturer datasheet.

After you are done building your models and you have exported the .wrl files that KiCad needs, open up the footprint editor in KiCad and assign your 3D models to their respective footprints (footprint properties -> 3D models).

Here are some models I built while learning:





The files

And finally,

Hope it helps someone, somewhere, anywhere? 🙂

Enjoy and share with others!

Feedback? questions? Please let me know in the comments below.

Regarding KiCad Library Management – No Complaints

It’s actually not bad

KiCad has more flexibility than most other CAD software packages (don’t all open source programs always do :)). You just have to keep in mind what official libraries are (in Altium, KiCad, Eagle or any other PCB Cad package) and what they will always be: a starting point! Never a personal manufacturing-ready library.

You can always use the official libraries as a starting point when you are learning (and having good official libraries – GitHub is a great move in this direction – streamlines the process because you can follow tutorials, and copy and paste good components) but you should always make sure you build your own personal libraries with only the components you need and are willing to maintain.

Why? because:

  • You will never use all of the components that are published in the official repo.
  • You can only maintain (i.e. keep verified) a small subset of the official repo i.e. you can only guarantee the quality of the parts you work with.
  • You must always verify the components you add to your projects, it is your responsibility if the board comes back wrong (you cannot blame the official libraries).

So yes, learn using the official libraries, go on and use them as a reference (most land patterns are accurate) but do make sure you put forth the time to build and maintain your own libraries and do it in a way that works best for you. Do not expect a one size fit all solution.

note: this post represents only my opinions

Fund an open source tax platform and stop the IRS from supporting the “Free File” Alliance

Bait and switch scam anyone? Read On.

Here is a story about how tax preparation software companies lobby the IRS to take advantage of tax-payers.

What is the Free File Alliance (Official IRS page, Free File Alliance FAQs)?

In 2001 the IRS Free File initiative was created by the the Office of Management and Budget Quicksilver Task Force (President’s Management Agenda) and it instructed the IRS to provide free and secure online tax preparation services to the majority of taxpayers. In 2002 the IRS negotiated a contract with the largest commercial tax software companies to provide accessible free tax preparation services to at least 60% of tax-payers.

The Free File Alliance is a “non-profit” lobbying organization created by a group of private sector tax software companies to “help” the IRS provide accessible free tax preparation services to at least 60% of tax-payers.

Why did the government engage in this partnership?

The government believes private industry, given its established expertise and experience in the field of electronic tax preparation, has a proven track record in providing the best technology and services available. Additionally, the U.S. Treasury has indicated it does not want the IRS to enter into the tax software business. The government believes a partnership with private industry will provide taxpayers with higher quality services by using the existing expertise of the private sector; maximize consumer choice; promote competition within the marketplace; and meet objectives in the least costly manner to taxpayers.

Except there are some major conflicts of interest. Now the taxpayer ends up paying twice, why?

Here is my story

The bait

While filing my taxes last weekend I went to the IRS website and was pleasantly surprised to find the IRS free-file program, it states that if you earned less than $62,000 in 2015 you are eligible to use free tax-preparation software from eligible vendors (i.e. the Free File Alliance).

That sounded great, the HR Block  software offer seemed perfect so I followed the link, created an account and started completing all of the forms for the joint tax return (both for me and for my wife, we were both eligible).

The overall process of gathering all of the documentation (W-2, 1099-div, 1099-int), completing all of the forms, deductions, credits …etc was pretty standard and took me about 2 hours (including the state taxes).

and the Switch

Then things went sour. Prior to submitting the return electronically we were being charged $40 for the federal return preparation and $40 for the state return preparation. I thought well there must be an error since:

  • We are eligible.
  • They are clearly endorsed by the IRS and,
  • They are a large (and respected?) corporation…

So thinking I did something wrong I went over the application process again. I tried with an individual return both for me and my wife (for this we were charged charged less though not free, and the return was not favorable).

Before giving up, I thought well let’s go ahead and save our data and import it to another free-file software vendor, but of course the only options was: pay what we say or start over.

Would you like to keep the return we prepared for you?

  • Yes, I’ll keep my completed return (It’s ready to file!)
  • No thanks, delete it. I’ll start over and prepare my return on my own.

Vendor lock-in in action 🙂

Generate blind dependence, trap them inside and then make them pay.

Frustrated I gave up, I paid. By this time I had spent most of my day on this. Also I thought maybe the IRS free-file contract did not cover joint returns, oh well.

But wait … it gets better.

So just out of curiosity I decided to call their customer service support and after a couple of transfers and a nice mix of classical music and advertisements I got a hold of their product support rep (or something along those lines), here is the conversation:


Me: We were overcharged $80, when as per your advertisements we should have received this service for free? We were recommended by the IRS free-file page. The IRS (i.e. through the Free File Alliance) has a contract with tax software vendors to provide free tax services to individuals with AGIs of less than 62K ; Our individual AGI was below 62k.

We filed jointly, perhaps that could be the reason?

Also we were only told the price after we spent about 2 hours to complete the application and then there was no way to export our data.

Joan/Karen/rep: Let me check on this for you.

Joan/Karen/rep: It seems you didn’t use the IRS page but you accessed our site directly, therefore the offer is not valid.

Me: Excuse me but that is not true, the only reason I went to your website was because I was redirected from the IRS site.

Joan/Karen/rep: Well, you see you have to check the small banner at the top of the page (I am guessing she meant the address bar as there is no banner) to make sure that you are still using the IRS sponsored service and not our site directly. What must have happened is that when you were redirected from the IRS you clicked a link from the sponsored page and then it redirected you to continue through our site.

Me: Wait, What? but the tab on the left said it was free, how can you tell the difference?

Joan/Karen/rep: There is no difference, The only way you can tell is by looking at the small banner at the top of the page. It is free to start, then you  have to pay.

Me: So you provide a link in the IRS sponsored site to direct users to your paid service? and you use the same advertisements and interface to trick customers into thinking they are still using the free service? and furthermore you wait until the last page to charge them with no option to export their data?

I am sorry but deceiving customers in such a way is not right, in fact it is quite dishonest.

Joan/Karen/rep: So how do you think we can make money?

Me: What? So this is actually a bait and switch scam and somehow this is perfectly OK? I can’t believe this. Hang up.


Where do we draw the line?

  • At what point can we start calling advertisements for what they are, nicely packaged lies? or should we call them enhanced truths?
  • Why do we allow marketing professionals to continue to gray the line between plain lies and actual information.
  • Why is it OK for companies to blatantly lie to consumers yet anywhere else in society it is considered rude and dishonest.
  • How have we allowed this practice to become socially acceptable yet we punish people that lie in courts?
  • At what point does a misleading product actually become a scam?

A great initiative: a flawed solution

While the IRS initiative to make taxes accessible to the common person is a great step (i.e. the tax code is complex), the implementation lobbied by the Free File Alliance is economically flawed (largely to the advantage of tax software vendors).

The IRS free-file page (with the credibility of the agency) incentivizes consumers to use one of the software services negotiated with the free file alliance partners. However as consumers leave the IRS site, software vendors guide them through a different more lucrative path.

What ends up happening is that consumers end up paying twice: First as tax payers through the IRS and second as individuals to the software vendors. All this while using the IRS free-file page as a source or free advertisements for vendors and their services.

Moving forward: an alternative solution

Here is one idea: what would happen if instead of negotiating a contract with tax software vendors (i.e. pre-paying them to provide free tax services), the IRS invests a fraction of the funds on a publicly funded open tax platform developed by a FOSS foundation/organization?

This would mean that (these are open for change):

  • The intellectual property for the software developed with public funds would be in the public domain (as it should be).
  • The enforcement of regulations and the prevention of abuses will largely be reduced given the transparency and openness of the source code (e.g. a bait and switch scheme would not be possible, and dishonest advertising/marketing will not exist).
  • People will have complete access over their information and are free to export their data to any proprietary vendor if they wish to do so (no more manipulative vendor lock-in).
  • The government does not need to devote money to start a business and enter the commercial tax preparation business nor does it need to negotiate with tax software vendors for providing this service.
  • The amount of funds devoted to launch the open tax project would be significantly smaller than e.g. contracting a proprietary design firm to do the job (due to the logistics and collaborative nature of FOSS development).
  • Knowledge of tax code would become widely accessible not only to the developers of the software but also to anyone interested in the freely available source code.
  • Tax software vendors will cease to hold an oligopoly over tax preparation services, this will incentivize competition and lower the prices for commercial tax services.
  • Freely available and accessible tax information will incentivize tax software vendors to provide honest information about their services instead of using dishonest advertisements to trick uninformed consumers.
  • Even in the future case that the IRS stops funding the organization maintaining the open tax platform, the IRS can negotiate with other organizations to pick up (fork) the source code and continue the development (due to the open intellectual property).
  • Even in the future case that the tax software lobbying groups help pass laws to prohibit the IRS (or Dept. of Treasury) from funding the open tax platform, the source code is open and people can continue using it while collaborating to maintain it updated with tax code changes.
  • IRS funds devoted to the project will decrease over time. After a mature codebase is developed, technical efforts will decrease and mainly involve keeping track of annual changes in the tax code. This is in contrast to the fixed fees charged by private companies for their services.

But these are only the advantages for the IRS agency specifically. We users also benefit from using FOSS software (you can read more here).

For these reasons, I truly believe an open tax platform could be a better alternative than the current half-functional approach. Another alternative would be using pre-filled forms but that alternative was lobbied against by tax software companies and turned down by congress.

Please voice your concerns in the comments section below. I will gladly update this post If I missed anything. My hope is to polish this draft and at some point in the future post a short summary in

References (with some interesting reads at the bottom)