Two-Tone Printing




About: Mechanical engineer, Colorado State University alumni, and member of Alamance Makers Guild.

Wanting to make a snazzy coin of my university logo, I started playing with printing in multiple colors on a single-head printer.

This Instructable is a quick and dirty guide to get you going and not damage your printer while switching colors.

Step 1: Find Your Layer Height

Depending on your printer, you'll have different layer heights to work with. Defining this number from the beginning is important because it will help you design your 3D model to have predictable start and stop points. We want to be able to tell the printer to stop on the 14th layer and not the 14.483 layer.

For the sake of keeping things simple, we'll define the layer resolution now, for me it is 0.25 mm, and make sure all of our measurements on the Z-axis are divisible by this number i.e. 0.50, 1.75, 2.00.

Step 2: Make Your 3D Model

Use your favorite CAD software to make a neat 3D model, but remember to keep your layer height in mind.

I decided to use the logo from my favorite college, Colorado State University, and give it a nice striped background to hold everything in place. The stripes are 1.00 mm tall, the ram face 3.00 mm, and the outer ring sticks up an extra 0.50 mm. All of which are divisible by my layer height, 0.25mm.

With your model finished, export as an STL so that we can move on to our slicer.

Step 3: Import to Slicer

I use Simplify3D for my slicing, but the process should be similar for other software.

You'll want to import your STL file that you exported from your CAD software and then define your print settings. Specifically, you'll want to set your layer height so that it matches your design like we planned.

Step 4: Set Your Start and Stop Height

In Simplify3D you define your print settings in what's called a process. We'll want to make two processes for this print, one for the bottom color and one for the top. Ultimately, we'll be creating two separate g-codes, one for each color.

To set the height that we want to stop and switch colors, open the first process and go to the Advanced tab. Under Layer Modifications we'll want to check "Stop printing at height" and tell it our cutoff height. For my CSU coin I've used the height of my stripes, 1.00 mm.

Next, we'll repeat these steps for the second process. However, instead of selecting "Stop printing at height", we'll select "Start printing at height" and enter the same value from the previous process, 1.00 mm for this example.

Important: Many default settings include a skirt on the first layer. Be sure to deactivate this under the Layer tab for your second process. We don't want to draw a skirt in mid-air.

Step 5: Generate G-Code

To generate the g-code in Simplify3D, click the Prepare to Print button in the bottom left and a box like the one above will pop up. We're going to save the processes separately so that we can run them individually on the printer.

Select your first process and click OK. You don't have to worry about the Printing Mode section because we are only selecting one process. Once the preview loads, click the Save Toolpaths to Disk button in the bottom left and name your file something clever with "base" or "bottom" in the name i.e. CSUbase.gcode.

Now, repeat these steps but this time select your second process in the pop-up and then switch "base" with "top" in your file name i.e. CSUtop.gcode.

Step 6: The Most Important Step

The biggest surprise in printing in two colors and what nearly damaged my print head is the way that the slicer tries to start a print above the bed.

Use Notepad to open your top print file, CSUtop.gcode in this example, and scroll down until you see a bunch of "G1"s on the left side. You'll see just above all of these "G1"s are two lines starting with "G0".

Quick Lesson in G-Code:

  • G1 tells the head to move while operating the tool. For a 3D printer this means that it's extruding plastic while moving or to put it simply, it's printing.
  • G0 is what we call a rapid movement when the head is moving but not doing anything else.

These first two lines starting with "G0" are there to position the head above our starting point so that we can begin printing. You might notice though that it wants the printer to rapid move to the XY position and then move up to our Z position. THIS IS BAD!

With the current g-code, your printer will ram the print head into your already printed base and then try to raise to the starting height. This could dislodge your print, ruining your two-tone project, or, even worse, it could damage your print head. To stop this, all we need to do is switch the two lines with a little cut and pasting. Now, our print head will move vertically in the Z before it moves in the XY to the starting point.

Save your file and then we're ready to start printing.

Step 7: Printing the Part

Now that you've completed all of the hard stuff, we can get to the fun part, printing.

First, load the filament for your base, grey for my CSU coin, and run the appropriate g-code, CSUbase.gcode.

Once that finishes, remember not to remove your piece from the bed. Then switch your filament to your top color, orange for the coin, and then run the g-code for the top, CSUtop.gcode.

Easy enough, right? You now have a snazzy two-tone print to show off to all of your friends.

Step 8: Further Steps

A couple things you can try to take this further:

  • On your CAD file, extrude an outline of your features another increment in the Z to make a cool accent around your base color. You can see my attempt at this in the first picture.
  • More colors! You can use these steps to do as many colors as you like. The only extra steps now are to add a start and stop height to your middle sections.
  • The rainbow Makeys above are from a neat tutorial by Makezine about how to color your prints with Sharpies, Rainbow Extrusion.



    • Pets Challenge

      Pets Challenge
    • Growing Beyond Earth Maker Contest

      Growing Beyond Earth Maker Contest
    • Backyard Contest

      Backyard Contest

    21 Discussions


    3 years ago on Introduction

    Or you can just hit the "Change Filament" button during the print and be happy.

    The other method is to open your gcode and insert "M600" that will change the filament at the precise moment you want. :)

    4 replies

    Reply 3 years ago on Introduction

    This instructable is a simple trick for printing in two colors with a single head extruder.

    If you're lucky enough to have a dual head, then this unfortunately will not be very helpful.


    Reply 3 years ago on Introduction

    I don't have a dual extruder head dear Porda. But if your 3D printer has a LCD, you can do as follow during the print:

    1) Hit "Tune" at the LCD controller.
    2) Scroll till the end end hit "Change Filament" option.
    Your printer will pause the print, go to XY (0,0,z) and reverse the filament. Then it will start to make a anoying sound.
    3) Change the filament spool, and turn the extruder gear till you extrude some filament.
    4) Hit the lcd button and wipe out the filament oose.
    5) Enjoy your multi-color print.


    Reply 3 years ago on Introduction

    Hi Idabague,

    Sorry for misunderstanding your first comment. I'd never heard of either of those methods for a single head before. Now that I understand, they sound fantastic!

    Have you thought about writing an instructable for these multi-color methods? I'd gladly link to them in this ible if you do.


    Reply 1 year ago

    I have yet to try the method outlined in this 'ible, but from my understanding of the process, using two gcodes seems like the way to go if you're not going to sit there watching your print. I've seen what happens to a model if the head pauses mid-print and you're not there to move it before it melts a giant corner of your print. On the flip side, at least for ABS (I haven't work with PLA much), if you stop and restart a print with too much time in between, the top layers of the ABS aren't pliable enough to stick to the next layer, and you can get gaps when the ABS cools. I'm sure there's a way to leave the hotbed on in the g-code after the first print so that it stays somewhat pliable and stuck to the glass. Anyway, thanks for the great instructable (even if your choice of schools is a little off kilter [go buffs]).


    3 years ago

    I just got this software, and while I was able to follow what you were doing, I was wondering if there is any way to change the temperature and speed(s) between filaments as well. At the moment I have a friend who wants a print of his favorite bands logo. It is a black emblem on a white background. I have white PLA and black ABS so I'd need to change setting in between.

    I've tried for hours in cura with no luck, a friend told me this software was the most powerful on the market, and thus my here I am.

    Thanks for your time, and the great guide.

    1 reply

    Reply 3 years ago

    Hi Lee,

    Unfortunately I haven't used or had access to Simplify3D in a year, so I can't answer any questions on the use of the software. You may need to run two separate prints and play with the starting height of the second print.

    If I were to do this myself, I'd be cautious printing PLA and ABS together. I've never tried it myself and I'd be concerned what printing super hot ABS onto PLA would do to the PLA, possibly re-melt it. The easiest options would be to print them separately and glue them together or purchase another roll of filament to print in one material.

    I hope that helps. I'd love to see your final results whatever you decide.


    4 years ago on Introduction

    You could re-start a trend from the 90's by making a Pog collection.

    1 reply

    Reply 4 years ago

    that's not a bad idea. That would be a cool new Thingiverse category, pogs.

    Another way to switch colours with a single extruder printer is to throw some @pause commands in your G-code where it transitions between layers. Also, it helps to add a statement before the @pause to move the extruder off to one corner to ensure you don't get drippage onto your piece!!

    2 replies

    Reply 4 years ago on Introduction

    Great advice, I'll have to look into that. It'd be nice to have a block of code I can just insert in the middle of my print to pause and home the print head.


    Reply 4 years ago on Introduction

    Here is a sample block of code that I use quite extensively:

    ; Insert at the beginning of the layer you want to change colours

    G1 X25.000 Y25.000 Z50.000 F2400.000 ; Move to safe location before pause.
    @pause ; Hold for colour change.

    ; Reverse order of first two commands in this layer to ensure safe re-entry into print area. Example shown below.
    G1 X132.881 Y104.256 F7800.000 ; Put X & Y command here
    G1 Z3.200 F7800.000 ; Put Z command here


    Reply 4 years ago

    It's actually the Colorado State Ram. I forgot VCU was rams, I'm actually from VA.


    Reply 4 years ago

    but deep down you wish you had stayed in state, and so you omitted green. That's the real reason, isn't it? iSN'T IT! the prosecution rests.


    4 years ago

    Nice and interesting instructions. Will give it a try. Better than pause the printer and change quickly the filament.