Designing professional looking stripboards using Kicad

3D viewerSome might see a contradiction in the title but stripboard is widely used both by professionals and hobbyists. It is a great way of quickly knocking up boards.

The complexity of stripboard designs can vary widely with simple boards designed on the fly as components are soldered. This approach is error prone and as complexity increases becomes an unproductive nightmare as one juggles datasheets and soldering iron with an unfolding layout. The painless approach is to leave the soldering till last and designing the board by laying out components using stripboard design software.

Stripboard design software available include Stripboard Designer, VeeCAD and VeroDes. Some like VeeCAD can even import the schematic circuit netlist file produced by schematic editors from PCB design packages provided their component libraries are used. This makes the work flow resemble the standard PCB design flow which brings a schematic, improved error checking, and some flexibility for converting the design from a stripboard to a manufactured PCB.

In reality there is no reason why a PCB design package such as Kicad cannot be used to design a stripboard. This gives all the benefits of following a PCB design flow and minimises the re-work required when the stripboard is re-targeted to a PCB.


Kicad is a powerful and freeware PCB design package that follows a standard PCB design flow. The PCB design flow consists of schematic capture where the circuit is drawn followed by layout where components are placed and linked on the board.

For this post I have laid out a LM386 speaker amplifier on stripboard as an example. The design files can be downloaded here.

The schematic is entered in “Eeschema” schematic editor (“SCHEMATIC”) and a schematic netlist is generated. As many of the schematic symbols are generic or have different package options, the specific PCB footprint is assigned with “CvPCB” (“FOOTPRINTS”). The netlist is then loaded with the “PCBnew” layout editor (“LAYOUT”) and components placed on the board and linked together with copper tracks.


Schematic capture

The first step in creating a board is to draw the schematic circuit. This simply consists in placing the component symbols and liking the pins together to make the circuit. Placed components need to have their default schematic reference (R?, U?, etc…) changed to a unique identifiers (R1, R2, U1, etc…).

To create the LM386 example schematic in Kicad, create a new schematic and save it to disk (“NEW” and “SAVE”). Place the required components (“COMPONENT”) on the page and  wire (“WIRE”) up the circuit. If the schematic graphics become corrupted it is possible to refresh the schematic (“REDRAW”). When the schematic is complete and before generating the netist (“NETLIST”), run an electrical rules check (“ERC”) as this will flag up potential errors.


The hardest part is finding desired component symbols when one is not familiar with the built-in Kicad libraries or how symbols work.

Schematic symbols consist of a drawn graphic identified by name with one or more pins identified usually by pin number. Symbols also have properties such a default schematic reference (R?, C?, U?, etc…) and value fields (10k, 100n, LM368, etc…).

In Kicad most discrete components such as resistors, capacitors, connectors, transistors, etc… are covered by generic symbols. The Kicad library also contains many symbols for more complex components such as integrated circuits. Usually, if a required component is not available, a similar component with the same pin-out can be found. There is a massive online library pack for Kicad that can be downloaded here. As a last resort the symbol editor can be used to create more specialised components.

Footprint assignment

Before the netlist can be imported by the layout tool, it is necessary to specify what layout footprints the schematic symbols in the circuit require.

Layout footprints are analogous to schematic symbols. They are identified by name and consist of one or more copper pads each uniquely identified usually by number. They can also contain holes, board cut-out and copper fill areas. Schematic symbols map to layout footprints. One schematic symbol can map to many different layout footprints. In the LM386 example, the IC schematic symbol can be used with any of the 3 different of available packages (DIP8, SO8 and MSOP8).


The Kicad “CvPCB” tool maps schematic symbol to layout footprints and pins are matched to their respective pads by their identifier.


To assign the footprints for the LM386 example, load (“LOAD”) the netlist and assign footprints on the right panel to all components on the left panel. It is worth viewing (“VIEW”) a footprint and checking that the pins are numbered as expected. When all footprints have been assigned save the (“SAVE”) the netlist ready for for layout.


Laying out a board simply consists of placing the components, linking them together with copper tracking and drawing the board outline.

The Kicad “Pcbnew” layout editor uses the standard approach of modelling a board using layers. Different layers correspond to the board outline, silkscreen, paste and copper front, back and inner layers. Depending on the selected layer, different tools are enabled.

For the purpose of laying out stripboard we only need to concern ouselves with the front, back and edges layers. The “Front” and “Back” layers represent copper layers and are used to model respectively vertical wire jumpers and horizontal stripboard tracks. The “PCB_Edges” layer represents the stripboard outline.


“Front” and “Back” layer tracks are linked with vias that connect the jumper wires to the stripboard track. “Back” layer stripboard tracks are broken as usual by milling the hole with a suitable tool.

Component placement

There are many consirerations that affect component placement and board layout but a compact board that minimises the number of jumper wires in the top layer is a common aim of single sided board design.

To start laying out the LM386 example in “Pcbnew”, create a new document and save it (“NEW” and “SAVE”). Then import the netlist (“NETLIST”). This will add the components to the sheet and show the connectivity with guide lines. Arrange the components on the 2.54mm grid while trying to simplify the component interconnections. The 1.27mm grid might be needed for some components if they refuse to place on the 2.54mm grid. If the layout graphics become corrupted it is possible to refresh the window (“REDRAW”).


While placing the components, space needs to be allowed for the vertical jumper wires on the “Front” layer and horizontal strip breaks on the “Back” layer. Component placement is something best done by looking at the natural flow of the circuit schematic and the layout connection guide lines. By trying different strategies out it should be possible to find a placement that stands out above the rest.

Board tracks

Once good component placement with space for the “Front” layer wires and “Back” layer stripboard tracks has been achieved, adding the board tracks is pretty straight forward.

As mentioned earlier, the “Back” green layer is used to draw the horizontal stripboard copper strips and the “Front” red layer is used to draw the vertical wire jumpers. Vias are placed to connect “Back” and “Front” layers to simulate wire jumper connection to the stripboard track.

To add the tracks in the LM386 example, select a sensible default copper track and via sizes to work with. Then select the green stripboard track “Back” layer (“LAYER”), the track tool (“TRACK”) and make a track from a source to a destination pad. To add a via press the “V” key and this will add a via and automatically swap to the red “Front” layer allowing a stripboard wire jumper to be added. To toggle back to the strip-board track “Back” layer, add another via.


Note that like other PCB layout tools,  “PCBnew” only allows pads that are on the same schematic “net” to be connected together as described in the circuit schematic. When all the nets have been connected, there should be no guide lines left and the “Unconnected” net count should be zero.

Usually the component placement needs to be changed slightly to allow forgotten jumper wires and stripboard breaks to be added. Luckily “Pcbnew” has block cut and paste commands that can move all the layers in an area together.

Board outline

Once the components have been laid out and connected, it is possible to draw the board outline
in the edges yellow layer.

To draw the board edges in the LM386 example, select the yellow “PCB_edges” layer (“LAYER”) and the graphic line drawing tool (“LINE”). Set the grid to 2.54mm and draw the board outline.


In this example this stage until last to prioritise the layout. In some situations where the board might need to fit inside an enclosure, the outline will take priority and be drawn before placing components. The risk is that if the board area is too small, the design will be unroutable.


Kicad can be used to design profesionaly looking stripboards while offering a number of advantages. The PCB design flow is schematic driven and needs the circuit schematic to be drawn but this investment in time brings benefits. A schematic is a useful document to have but it also allows Kicad to steer the board layout to ensure the electrical connectivity of the schematic is faithfully reproduced in the board layout. Provided the schematic symbols and layout footprints are correct, and ERC warnings are not ignored, it is quite hard to end with incorrect connectivity.  Finally, if a proven stripboard design needs to be converted into a manufactured PCB, this can be easily done in Kicad and often requires little to no work.

3 thoughts on “Designing professional looking stripboards using Kicad

  1. Pingback: Using KiCad – gr33nonline

  2. Pingback: Stripboard - Workshopshed

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s