Jump to content

Circuit Boards: A Single Nozzle Approach


Recommended Posts

Posted · Circuit Boards: A Single Nozzle Approach

Have a look at this design's assembly drawing:


And also this photograph of the physical 3D printed circuit:


It's just a little demo print but it does have some nice features including double-sided board, vias, chip sockets of a new design, and translucent insulating "board" material. The yellow filament is just taking the place of real conducting filament which is being shipped to me now (I have 1.75mm graphene filament but it does me no good in the Ultimaker).

I have developed both a printing methodology and a software workflow that together bridge the gap between the PCB design software and the 3D printing design software realm. I will detail these techniques in following posts.


Les print some PCB's!



  • Like 1
Link to post
Share on other sites

Posted · Circuit Boards: A Single Nozzle Approach

OK, let's get into it! First the 3D printing technique. The secret was revealed to me by Sander who suggested I read the following link:


where blecheimer describes a fantastic technique tor printing in multiple colors as long as those colors are all on the same plate of glass at the bottom of the print, great for a single layer board. blecheimer even identified the secret of this approach: Zhop! That's the number that specifies how high the print head is to "hop" in the "Z" direction at the beginning of each retraction (and back down at the end of each retraction).

What the Zhop does, when you think about it, is it enables the printhead to cross a previously printed color of falment, missing it completely, and even drawing right smack dab next to it, fusing the colors due to nozzle overlap (it would seem ), and generally producing a fantastic multicolor planar print.

So this tells us how to make single layer prints, we just draw with the insulator and then the conductor rihgt? Right! Then how, you may ask, do we print in multiple layers? Well, we use a little trick that I call "registration marks". When you make the second layer (substrate) conductor and insulator STL files (a separate print for each layer of each filament type is one good way to go and there are even shortcuts to that), Cura would just drop the layers down to the same level as the first layer, not print it above the first layer as is necessary, so how do you prevent this?

What you do is you just put blocks at the corner that do extend down to the bottom of the first layer, then these blocks get drawn first when the second (substrate) layer is printed. And the same for the third (conducting) layer. Note that it is necessary to have the registration marks plenty far away from the board and from other registration marks to keep the printer from bumpint it's nozzle into them.

Also we can get a double-whammy effect from the registration marks by putting them on the corners like that as they then get centered, all aligned and such, with the other layers. This way vias and conducting layers make excellent contact.

Another trick is to use 0.7 inch or smaller traces with 0.3 inch or larger spaces (those numbers should total 0.1 inch as that is the spacing of chip pins. Of course, in our design files we convert those inch values to millimeter values by multiplying by 25.4 mm/in. It may even prove too wide to go with 0.7 inch and try 0.6 inch or 0.5 inch or so.

OK, that's the physical jujitsu on the printer, the next post will describe the software jujitsu necessary to bridge the gap between the PCB world and the 3D world. So read on for another overview to be discussed for details and suggestions and corrections and other fun forum stuff like that!!!


Les print a board!

  • Link to post
    Share on other sites

    Posted · Circuit Boards: A Single Nozzle Approach

    "Alright" you say, "what am I supposed to do, to generate the CAD design for these circuit boards?" "Surely you don't suggest I draw them with a 3D printing CAD software, trace by laborious trace?" Right! I did do that for the test circuit board in OpenSCAD, and boy was it a labor of love AKA a pain in the rear! "There must be a better way!", I thought. And there was.

    First let me say that what is really and truly needed is a Gerber to STL or even Gerber to gCode translation utility. That's not so super difficult to make as Gerbers are basically mostly of the format go here in (X, Y) then go there in (X, Y) and so on, and both STL and gCode can be represented like that.

    So certainly there may be in existence or will soon exist such software. I could not find it with a quick Google search anyway, so I developed a point and click workflow that is certainly a kludge but does get the job done for now. It goes like this.

    You begin by designing your PCB in your favorite flavor of PCB CAD tool (I chose Eagle), then the first piece of jujitsu is you save the layers to file in PDF format. At least that's how I could do it with Eagle. After that my second piece of jujitsu is to double click on each PDF file and use Preview (I'm on a Mac) to export the PDF file as a PNG file. You may generate the PDF file another way and that's fine.

    Then for my third piece of jujitsu I read those PNG files into OpenSCAD and saved them as STL files, so I have three STL files at that point. For the final piece of jujitsu I generate the each layer of conductor and difference() image of insulator for each layer, resulting in six separate STL files.

    Now with those six STL files, we can print them all, insulator first and conductor second for best quality results (i think so anyway), or we can combine the first two conductor and the first two insulator layers, print the conductor layers first, , then finally print the third conductor layer and skip the third insulating layer altogether, resulting in only three print steps for a two layer board. I found that combo approach to be confusing mentally and lower quality in print form because of all the Zhop-hop-hopping around leaving angel hare (also known as boogers) all over the board, which we really cannot tolerate because it shorts the conductors.

    Well there is one final tip in this crude and not-really-complete description, which is that we need sockets for our chips. The crudeness of the 0.4mm nozzle, a necessary minimum for the conductive filament to work (preferably 0.6mm), does not really support pin insertion and nor does it grab into the pins, so some type of friction fit socket is useful here.

    I'm still working on that, for now I'm just adding large pin blocks that are spaced closely enough for a chip to be inserted either upside down or with the legs folded beneath it or trimmed with flush cutters and forced into the friction fit socket. More to follow on that technique and how to introduce it into the CAD files as a seventh layer (using custom footprints in the PCB CAD software).

    So by now you've got the jist of it, you are a new jujitsu apprentice and you have at least an approximate understanding of that to do. Details and specifics to follow.


    Les go practice our CAD jujitsu!

  • Link to post
    Share on other sites

    Create an account or sign in to comment

    You need to be a member in order to leave a comment

    Create an account

    Sign up for a new account in our community. It's easy!

    Register a new account

    Sign in

    Already have an account? Sign in here.

    Sign In Now
    • Our picks

      • UltiMaker Cura 5.7 stable released
        Cura 5.7 is here and it brings a handy new workflow improvement when using Thingiverse and Cura together, as well as additional capabilities for Method series printers, and a powerful way of sharing print settings using new printer-agnostic project files! Read on to find out about all of these improvements and more. 
          • Like
        • 7 replies
      • S-Line Firmware 8.3.0 was released Nov. 20th on the "Latest" firmware branch.
        (Sorry, was out of office when this released)

        This update is for...
        All UltiMaker S series  
        New features
        Temperature status. During print preparation, the temperatures of the print cores and build plate will be shown on the display. This gives a better indication of the progress and remaining wait time. Save log files in paused state. It is now possible to save the printer's log files to USB if the currently active print job is paused. Previously, the Dump logs to USB option was only enabled if the printer was in idle state. Confirm print removal via Digital Factory. If the printer is connected to the Digital Factory, it is now possible to confirm the removal of a previous print job via the Digital Factory interface. This is useful in situations where the build plate is clear, but the operator forgot to select Confirm removal on the printer’s display. Visit this page for more information about this feature.
          • Like
        • 0 replies
    • Create New...