Introduction: 3D Printed ABS PCB

When I got to wire a 4-digit-7-segment display to my Teensy, I decided I had to start researching on making PCBs at home in a sort of easy way. Traditional etching is quite tedious and hazardous, so I quickly discarded that. A good idea I've seen around are 3D printed boards that work adding conductive paint to your channels, but this seems quite erratic for conductivity. There are also special conductive filaments which you could use on a dual extrusion printer, but I'm looking for something basic and effective for the standard equipment that I have.

So I've thought of directly soldering and laying components and connectors on 3D prints.

Before we start, be warned: we will be printing with ABS as it can cope +200ºC before deforming (so we can carefully apply some soldering over it). Printing with ABS is not as simple as it is with PLA, you need an enclosed printer and lots of settings' calibration but once you get this right, the result makes a difference.

To add some context, in the examples I am creating a PCB for the ESP8266 12E wifi board so I can easily wire it to anything else later (final aim is to a 4d7seg display).

The PCB will let me use all of its available pins, while most modules out there have very few spare pins, or have too many additional features I don't really want (like the NodeMCU).

Supplies

  • PCB design software (KiCad here, free). Starter level.
  • 3D modeling software (Blender here, free). User level.
  • A 3D printer (Creality 3D Ender 3 Pro here, about 200€). User level.
  • An enclosure to your printer is strongly recommended when using ABS - Make sure that you can successfully print ABS before continuing this instructable.
  • ABS filament (Smartfil ABS, about 20€/Kg). 3-15 grams per PCB.
  • Sewing needles (just get some from mom). Size will depend on the diametre of your components' pins. Usually 0.5mm or 1mm diametre.
  • Tin solder and a welder (about 15€ from a local shop). Plus all the accessories suitable for welding: welder support, a lamp, a board, tweezers, protective glasses, a mask... accessories are up to the user, just make sure that you feel comfortable and safe while crafting!
  • Lots of patience, creative out-of-the-box mind and a good foundation (try to google and study a lot before getting your hands on).

Step 1: Prototype & Schematic

Unless you're following someone else's schematic, you should build your electrical circuit following manufacturer specs. Test a prototype circuit, and once you have it working, sketch down all the connections and components.

Once you have a sketch and you are comfortable with a clear understanding of your circuit, get it detailed in your preferred EDA software. This will help optimise and verify your design.

Draw your schematic and use this as a guide for your PCB design. EDA software like Eagle or KiCad will let you add your specific components, with realistic pinouts and dimensions, so you can design your electric circuit precisely around them.

I am using KiCad, which is free and easy enough to understand for a starter. All I know is thanks to Brian Benchoff @ https://hackaday.com/2016/11/17/creating-a-pcb-in... and some related posts, so follow his guidelines to end up with a nice PCB design.

Pictures in this section relate to:

  • Test prototype for the ESP8266 and a 4 digit 7 segment display (attached to a Teensy 4).
  • A reference wiring diagram for an ESP8266 12E wifi board.
  • A KiCad schematic for a 4 digit 7 segment display working through the ESP8266 and a voltage divider (this is my final aim).
  • A KiCad PCB design output.

Step 2: 3D Model

Once you have a PCB design in paper, you should give it some more realism in a 3D modelling software. This will also prepare your file for your 3D printer. This is how I do it in Blender:

  1. Create a plane mesh and add your PCB design image over it. Make sure that it's to scale and dimensions are realistic, as this will serve as a "tracing paper".
  2. Create simplified components paying special attention to the exact location and size of PINS which connect to your PCB. Get manufacturer specs online or measure them yourself to get them accurate enough. Note some standard dims you can use as a reference:
    1. For boards use planes. For a single side PCB I use 1.5mm thickness, as thinner than this I didn't get good detail when printing (it is also down to your printer settings and capabilities, but we'll get down to that later). For a double sided PCB I used 2.5mm thickness.

    2. For pins use cylinders, minimum 1mm diametre in order to get it captured by the printer.

    3. For channels use cubes, minimum 1.2mm wide. You will just extrude faces in order to get your channels.

  3. Locate your components according to your PCB design. If your components are realistic enough, you can use this to check for clashes, but always allow for additional space around every element.
  4. Trace your electrical circuit. Place a cube mesh in the location of the first pin. Then, in edit mode, extrude the faces in a straight line following the design. Again, keep it simple, using 90º lines and use as many channels as you consider. Also, allow at least 0.8mm separation between walls or otherwise they will get missed when printing. Picture 1 below shows some modified routes after modelling with real dimensions, as the ideal route was too thin to be made possible.
  5. Create your PCB by adding a flat cube (dims as above).
  6. Engrave your channels and holes on the board by adding boolean modifiers to your PCB object. This will clip the part of the board that intersects the target object of the boolean modifier.

Pictures 3 and 4 show the final result for the ESP8266 board (3D model in picture 2).

After this, you should see a 3D print of your PCB.

The last step is to export the model properly.

  1. Make sure that all the faces point outside ("Edit Mode - Select All" Then "Mesh - Normals - Recalculate Outside").
  2. Make sure that they are all individual faces ("Edit Mode - Select All" Then "Edge - Edge Split").
    --If you omit these two steps, you might find missing detail on your Slicer software.--
  3. Export as .STL ("Selection Only" to export only the final PCB and "Scene Units" to keep the scale of things).

Step 3: Slicer Software

3D printers usually provide a "Slicer" software to process the 3D models (in .stl or other formats) and calculate the necessary route to print it (in .gcode format usually). I have a Creality Ender 3, and I haven't moved from the Creality Slicer provided, but you can apply these settings to any other software.

I am dedicating a full section to slicer settings as they are very important when printing ABS, which is quite tricky due to warping, shrinking and cracking. Printing a PCB is also in the limit of standard 3D printers due to the precision required.

Below I'm sharing the settings I use on the Creality Slicer for ABS detailed printing of PCBs. They differ from standard settings in:

  • Thin walls and layers (to provide enough detail - this might require a couple iterations for your desired result, unless you are happy with my settings).
  • Use a raft. The key is on the base, which you should take special care of. (I allow for a 10mm offset from the model to avoid any minimal warping from affecting the print). Also, there's no separations between raft lines to achieve a good solid base. If you get your base right, it's all done. If you see any corners folding in your base, you're surely doomed.
  • Slow speed. I am using about 1/4 of standard speed (this allows for good filament laying and therefore sticking and overall quality).
  • ABS temperatures (bed: 110ºC, nozzle: 230ºC)
  • Fan disabled (recommended to keep temperature constant for ABS).

Step 4: Print!!

Finally, send your .gcode to your printer and get your PCB manufactured. Some tips you should follow:

  1. Encase your 3D printer. An enclosure will keep your temperature much more stable, which is a strong requirement for ABS printing. Make sure that you keep the CPU and power supply outside of the enclosure, as well as your filament. If you manage to print ABS without an enclosure, please share your trick as it's driven me mad.
  2. Preheat your printer for a while. On PLA you can print straight away, but with ABS my advice is to preheat with ABS settings (bed: 110ºC, nozzle: 230ºC) for 10-15 minutes so you create the right atmosphere before you can go ahead and start your print.
  3. Print slowly but surely. As mentioned earlier, I have reduced the standard print speed to 1/4 in the config file. This shows to be slow enough to have a good result, but you can manage the print speed while printing by regulating the feed rate if you want to optimise it a bit more. Just note that high speeds will lead to very sudden movements which won't lay the filament effectively or could collide with the mesh and unstick it.
  4. Build a good foundation. The key on ABS is to achieve a well fixed base. If the base fails and unsticks, model's gone (see some disastrous attempts below). With the tips above (encasement, preheating and slow speed) you should get a good base and a good finish. But unlike PLA, which I leave unattended for hours, ABS needs more attention.
  5. Be vigilant, especially at the beginning. Reiterating the above, the key is the base. Make sure that the first outer contour is well laid. This will drive the rest of the first layer adhesion. Sometimes the filament doesn´t stick straight away or is dragged from its location. You should spot this soon enough to correct any leveling or cleaning of the base plate. Always watch for warping, if you see corners rising they will probably end up unsticking the whole base and spoiling the whole print. Even if the base keeps in place, warping will make this corner deformed.

Step 5: Wire and Solder

Now it's time to put it all in place:

  1. Check the finish of channels and holes. Specially holes use to be missed or overlaid by the printer. Use a sewing needle if you need to reopen some of these. Of course, if you didn't get a flat print due to warping, or you didn't get the detail that you expected, double check your printer settings, or even your 3D model for dimensions.
  2. Place your components. Modules, resistors, capacitors or leds that have their own pins can be put in place easily. You can bend their own wire slightly to get it into the channels so it's easier to tie them up later.
  3. Add wire and solder. Use any pins or jumpers that fit into the channel and cut them at length so you just need to solder at specific junction points. We shouldn't need to solder the whole thing, although I tend to do it when things don't light up.. In my case, I had to wire all the pins of the ESP8266, and this is where it was key to have good soldering skills (which I don't). The rest of the board was pretty simple to do.

Step 6: Test Your Board

If you are confident you've done everything alright, then plug it in.

For prototyping I am running the ESP8266 on the Teensy 4 serial connection.

While doing the tests on the bare board, I loaded a program which loaded local time through wifi. As you can see it was all working fine. Hope you had a good result as well with this technique.

Keep reading, keep crafting and keep sharing!

PCB Design Challenge

Participated in the
PCB Design Challenge