Two Sided PCB Making With a 3D Printer




About: Works as a software engineer. Keeps himself busy with electronics, music, and photography. (For photos: has a small (2mx2m) workshop in his apartment. Has a 3d printer.

I will try to explain the making of an isolation router type two-sided PCB with a help of a modified 3d printer.

This page inspired me to use my 3d printer for PCB making. Actually, the method described on that page works well enough. If you follow the steps you probably optain a well crafted one-sided PCB. My contributions are somehow improved printing head (making it simpler and efficient using a toy electric motor) and development of a method for two-sided PCB.

I used this method to make pcb of Automatic Cat Feed Dispenser instructable.

-cupper plate

-3d printer (modified) and a software (Repetier)

-Permanent marker pen


-Flathead pins

-Flatcam software


-Printer head (small electric motor. I used a small motor from a smal size rc helicopter) and custom made housing)

-Etching solution. ferride choloride.


Step 1: Add Positions of Pins and Pin Holes to the Design

Since we are making a two-sided PCB, drawings on the surfaces must be aligned perfectly. Even a quarter mm shift may destroy the PCB.

I used flat head push pins to fix the copper plate and to align the drawings.

We need eight pins on the printing bed and four holes on the copper plate. Pinholes on the board must match the needles of the pins. Four pins are used for side A and other four is used for side B. Position of the pins and holes on the board must be calculated in a way that when you flip the plate to the other side it must match the design of that side.

So the question is how can we calculate the position of the push pins?

There is a great software called FlatCam. Using this software you can create files necessary for the 3d printer to print PCB design and also get the positions of the pinholes and pin placements.

This software is designed for CNC machines in mind. However, since working principles of CNC machines and 3d printers are almost identical you only need a small trick to draw pin positions.

Basic two-sided PCB making procedure is described here. If you follow those steps you can optain the needle positions (so-called alignment holes in the flatcam software) but not the push pin head positions. Luckily, flatcam has manual geometry drawing tools so you can add eight circles around the pin holes that represent the positions of the push pinheads. (pictures of the push pins placed over 3d printer hot plate shown at the next step)

I manually found the center of the alignment holes and draw a 1cm circle around them.

The final picture of the design has been shown in the image. Red circles represent the push pinheads.

Step 2: Exporting 3D Printer Compatible File

flatcam can export CNC compatible gcode files. This file type is almost 3d printer compatible. Different printers may require a different format and additional command lines. For example, my printer has auto leveling feature which must be triggered with an extra command line. Another change that I made was adding extra space to the Y coordinate tag. I did this with notepad find and replace tool.

You can check the final drawing using a 3d printer control software such as repetier.

z level adjustments, tool size, and many other settings need some trial end error. I left to the reader to find the best combination of values by themselves.

If file format and drawing is ok then you can send this file directly to the printer.

Step 3: Drawing Push Pin Positions and Placing Pins on the Printer Bed

In this step, you need two separate flatcam gcode file. One for positions of the push pins and other for the needle holes on the cooper plate.

First the pin positions. A thick paper or a cartoon is placed over the printer bed and fixed using a two-sided scotch tape. Using the output of flatcam software, push pin positions are drawn on the paper. You can use a pen toolset or same toolset that you will use for scratching the copper plate. You can also include the position of the plate to the drawing.

Then, the copper plate is placed on the cartoon, the printer is run for pin holes and at least four hole marks become visible on the plate. You need to adjust z distance accordingly for this step. You can drill the plate. You have to drill at least four small holes for keeping plate stationery on the printer bed when printing. These holes are also necessary for aligning the plate for two-sided printing.

Two-sided scotch tape applied to push pins flatheads. Then they are placed carefully in their exact positions.

When you complete this step you must be able to place the copper plate over the printer bed as shown in the picture. Holes on the plate must be exactly aligned with the needles of the push pins and this must be true when you flip over the plate.

Step 4: Clean and Sand

Clean the copper plate with a soap and sand with a sandpaper. Sanding is important because otherwise permanet ink may be removed during etching process. You need some roughness on the surface of copper plate

Step 5: Paint the Copper Plate

You need a permanent pen for this step. Most of them will do the job. Still, you may need some experiment. I applied two layers of paint for extra protection. The surface of the plate must be covered evenly. Permanent ink can be scratched easily especially when it is dried. So, you must be careful in order not to scratch any of the surfaces. I used a paper towel to protect at least one side of the plate.

Step 6: Place the Painted Plate on the Printer Bed and Print

Cupper plate must be placed on the printer bed as shown. Two-sided scotch tape required in order to keep the cupper plate in place.

Printer leveling is very important at this stage. Since the scratch head has no spring mechanism any inconsistency of the height of the table may result in either inadequate rip off of the paint or too much resistance which may cause wobbling of the head. I spent a lot of time to find the exact z margin for actual printing.

3d printing definition comes from flatcam software. (step 2) You need at least 3 files. One for top, other for bottom and finally drill positions. (you may not use drill position definition file and try to drill by heart.)

Printing procedure is repeated twice.

You must check the alignment of the drawings before etching. (I ended up several misaligned plots in my initial attempts. Many things may go wrong and you may not notice until final etching which is irreversible.)

Note: printing head is consist of a small electric motor encapsulated in a 3d printed housing. This generated the cleanest lines on the plate. (I tried many other different materials, shapes and mechanism including a solid metal rod with a spring.)

Step 7: Etch Using Ferric Choloride

Actual etching time may change according to the density and temperature of the solution. mine took around 25 mins.

Cupper plate must be at least 5mm above the bottom of the etching container. I used plastic distant parts (you can't use metal inside the solution) screwed to the plate. If you don't do this either surface of the plate touches the bottom of the container and unwanted scratches form or etching liquid may not reach evenly to the bottom surface.

Excess paint can be removed using acetone.

At the end of the described procedure, I obtained a good quality two-sided pcb to be used in my electronic projects

I tried to neutralize Ferric Chloride solution adding soup rich water before discharge to waste system. (My theory is like soap is base and Ferric chloride is acid, therefore, mixing them creates salt and neutralizes the solution. I wonder if this is a good idea and really helps to protect the environment). Actually, you can keep the solution in a safe bottle and use the same solution many times.



    • Colors of the Rainbow Contest

      Colors of the Rainbow Contest
    • Woodworking Contest

      Woodworking Contest
    • Fandom Contest

      Fandom Contest

    5 Discussions


    3 months ago

    Because used ferric chloride contains copper, you mustn't dispose of it into the water system. It needs to be disposed of as hazardous waste by your local recycling centre/dump/whatever you have.

    To neutralise ferric chloride, bicarbonate of soda is very effective, though note it foams and needs to be in a big enough container to handle the increase in volume without overflowing. Soap-rich water will probably only dilute it.

    Callan Mackay

    3 months ago

    Nice idea using the motor spindle! I tried the scraper method and just made a total arse of it. Kept jumping and digging into the copper. Just finished making a small fume extractor to try burning the ink away with a laser. If that fails I'll give this a try.


    3 months ago

    Cool! Can you share the housing for the motor...
    Also does it spin a nail and just scratch the black sharpie off? I wonder if you can use spraypaint. Also dychem, prussian blue ( layout fluid) is the same stuff as sharpie I believe.
    So instead of using a v-bit to literally cut the copper and FR4 board in a small v, this just scratches off the coating, then uses etching to burn off the now exposed copper and the sharpie protects the copper underneath?
    I wonder if it can be burned off with a laser?

    1 reply

    Reply 3 months ago

    Hi, I 3d printed the housing specifically for a small motor that I've recovered from a toy helicopter. It is not a one size fit all design. Still, I will share it in thingverse as soon as possible.

    I've used Edding 330 permanent marker pen. ( It dries within seconds and round shaped end of the rotating shaft of a mini electric motor can easily remove the paint and creates clean lines. Actually, you don't even need a rotating shaft. A static rod can do the trick and may produce acceptable lines. However, rotation adds extra sharpness and reduces friction btw plate and rod.

    At some point, I've tried spray paint. However, it takes too long to dry and it sticks to the surface of the plate stronger than ink and makes it difficult even impossible to scratch.

    DIY Hacks and How Tos

    4 months ago

    Great tutorial. You should enter this into the PCB contest that is currently running.