III. Designing a Sensor Board with KiCad¶
Because I was not satisfied with my previous Electronics design workflow, I decided to try out designing the sensor board in KiCad
I’ve some TCRT5000 compatible Reflective Optical Sensors in my tinkering box and it’s time now, to test these out.
Maybe I can use these also in my final project as wink gesture recognition.
I found a little nice tutorial about the sensor with a schematics for analog read
For the TCRT5000-Sensor Board the following parts are needed:
- 1x ATtiny45
- 1x TCRT5000
- 1x Resistor R100
- 1x Resistor 4K7
- 1x Resistor 1K (not shown in the screenshots!)
- 1x Resistor 10K (not shown in the screenshots!)
- 1x Capacitor 1.0 uF
- FTDI Pinheader
- ISP Pinheader
After milling I found out, that I missed two resistors. One 10kOhm connected from RST to VCC and one 1kOhm from PB2 to FTDI TX Pin. These are not shown in the following tutorial !!!
I got all my KiCad informations from the Aalto Fablab Youtube video Electronics Design with KiCAD
Thanks a lot Krisjanis for sharing your great lessons videos !!!
Installing KiCad¶
I don’t explain the installation process in detail. It’s well documented in the video above !
KiCad is available at it’s download page
The KiCad fab library is available here
I got the needed TCRT5000 symbol and footprint from snapeda
After installation and first of KiCad, the both Symbol Libraries
has to be added
And the same with the Footprint Libraries
start drawing the schematics¶
My sensor board is based on the ATtiny45 version of this echo hello-world board
placing the symbols¶
First we start with creating a new project.
Then open the Schematics Layout Editor
On the left side are some editing options like switching from mm to inches.
Here are the settings I activated
Start placing the parts with the Place Symbol
icon on the right side
and then click somewhere, where the first part should be placed. A new window appears. There we can choose the Symbol (Electronical Part) we would like to place.
I start with the ATtiny45
For the two resistors, it’s not necessary to choose a footprint. Just add the symbols
The ceramic capacitor is unpolarized and a footprint will be assigned later.
Next the 6 PIN ISP Header, again without footprint
The FTDI Symbol we choose from the fab library
And at least the TCRT5000
arranging the symbols¶
With a right click on a symbol, there are some editing options like move
or rotate
After arranging my schematics looks like this
connecting and wiring¶
The Symbols will be connected by drawing wires with the corresponding icon in the toolbar on the right side
I connected just the capacitor directly by wires. On the output pins, I just draw a little wire. These can be placed with a double click, after drawing the line. These can be connected by placing labels on it, later.
My schematics now looks like this
There are two connectors on the FTDI, which will not be used. To mark these pins as not connected
, there is a flag that can be placed with the corresponding Icon
This is how the FTDI now looks like
Now we place net labels
By clicking the corresponding wire. Here e.g. the VCC
line.
We go ahead with every connection we would like to make
defining part values¶
With a right click on the resistors and the capacitor, it’s possible define their values
The Value labels are also rotate and movable
defining the power source¶
For passing the electrical rules check
we have to set a power flag
by placing a new symbol
We need two of them. One for VCC and one for GND. These can be placed on any VCC and GND line.
Annotate schematics symbols¶
The next step is to annotate the schematics symbols by clicking the Icon in the top toolbar
We just confirm the dialog
And I got the following annotation message:
Annotated PWR_FLAG as #FLG01
Annotated PWR_FLAG as #FLG02
Annotated 1.0uF as C1
Annotated Conn_FTDI_01x06_Male as J1
Annotated AVR-ISP-6 as J2
Annotated R100 as R1
Annotated 4K7 as R2
Annotated TCRT5000 as U1
Annotated Microcontroller_ATtiny45V-10SU as U2
Annotation complete.
electrical rules check¶
Next step is the ERC by clicking the bug
After running the test, there are no errors in my case
assinging the footprints¶
Now we have to assign the PCB footprints to the schematic symbols
A message pops up. Just confirm with yes
Now there is a list with the used components. Some of them have already an assigned footprint. The assigned footprint is behind the double-point.
So the two resistors, the capacitor and the ISP Header have to be assigned.
To do so, we click, in the middle list, on the part, which shall be assigned. I marked the C1- 1.0uF
capacitor for assigning.
In the left list, we choose the library we want to use. For the capacitor it is Capacitor_SMD
In the right list, are the filtered footprints. I’ve 0805 SMD Capacitors, so I chose corresponding footprint for hand soldering and cofirm with a double click on it.
Now the same with the two resistors.
And the ISP Header
If it’s not clear, if the selected footprint is correct, there is an option to view it as an 3D animation.
After everything is done, the list should look like this
Now it is important to click Apply, Save Schematics & Continue and then confirm with ‘OK’
Generate Netlist¶
Now the Netlist has to be generate by clicking it’s icon and confirm the dialog
And just save it in the project folder
Updated schematics¶
This is the updated version of my schematics. The missing resistors are included now
PCB Layout¶
import the netlist¶
Now it’s time to switch to the PCB Layout Editor
and load the generated Netlist
Just place the parts somewhere in the middle
arranging the parts¶
Arranging the parts is similar to the schematics editor. Bring everything on it’s place.
First I changed the grid to 0.2mm
This is how I arranged them
modifying a footprint¶
After milling I saw, that the solder pads from the TCRT5000 are to thin for hand soldering
To make the pads bigger, I selected the TCRT5000 and opened up the footprint editor
I made a double click on one of the pads.
And changed the Size X
to 2 mm
And did it for all four footprints.
Afer changes made, just save and close the editor
Back in the pcb layout editor, I made a right click on the TCRT5000 and hit Update Footprint...
And confirmed the dialog with update
routing the tracks¶
Now let’s start routing the tracks.
For PCB milling, it’s better to adjust some design rules.
And edit the Net Classes
We change the values:
Clearance -> 0.4mm
Track Width -> 0.4mm
Now we can start drawing the routs, but we leave the GND Pads open.
drawing the outline¶
For drawing the outline, I changed the Grid to 0.5mm
The outline will be draw with the graphic lines
tool
The lines are drawn automatically in the Dwgs.User
layer
With the Add dimension
Tool, we can check the size of the board
defining the GND Area¶
First we have to switch the layer back to F.Cu(PgUp)
With the Add filled zones
Tool, we can define the GND area.
After clicking on the first corner, a window pops-up and there we have to activate the /GND
net and change some settings.
Clearance -> 0,8 mm
Minimum Width -> 0,4 mm
Thermal Clearance -> 0,5 mm
Thermal spoke width -> 0,5 mm
After drawing the polygon around the pcb, the GND Area is generated.
I don’t know why, but the GND lines from the TCRT5000 are not connected to ground, so I add a gnd route manually.
*** in my updated layout, I left the GND Area and routed the GND trace directly. This is how my updated pcb now looks like ***
design rule check¶
Now we click again the bug icon for the design rule check and run the DRC
There are no errors found here
final steps¶
The dimensions added above have to be removed and there are some labels outside the board. We have to place them inside. I don’t know really why, at this moment.
preparing for mods¶
adding a margin¶
Now we need a margin around the board. Otherwise mods isn’t able to recognize the board outlines for cutting.
To do so, we have to change the layer to Margin
and the grid to 1mm.
With the Add graphic lines
tool, we draw now a margin around the board.
filled rectangle¶
We also need a filled a rectangle. To do so, the layer has to be changed to Dwgs.User
and with the Add graphic polygon
tool, we draw a polygon over the hole board
Then make a right click on the drawn polygon and choose Properties
Change Line thickness
to 0
and confirm with ‘OK’
SVG Export¶
There we choose the options as shown in the following screenshot
And after clicking the Export
button, the svg files are generated.
preparing for FlatCAM¶
FlatCAM needs gerber files for generating the gcode. There are other preparations needed to export gerber files for FlatCAM.
adding Edge.Cuts¶
First I removed the filled rectangle, the outline and the margin. Then I changed the grid to 0.5mm, the layer to Edge.Cuts
and draw, with the Add graphic lines
tool, a square around the board.
define the origin¶
Then we have to define the x/y zero point by using the Placing the auxiliary axis origin
Tool.
I placed it a bit above and left from the boards corner.
export the gerber files¶
In the File - Plot
menu, I used the following settings
After push the Plot
button, the gerber files are generated. In the same window, we have to push also the Generate Drill Files
button
The gerber files are now generated and the KiCad part is finished.
Download¶
The ‘old’ Kicad Files with the generated svg’s and gerber files can be downloaded HERE
The ‘updated’ Kicad Files with the generated svg’s and gerber files can be downloaded HERE