CoreBot - CoreXY 3D Printer




About: Maker, Engineer

I wanted to built a really reliable printer which is ready for the E3D tool changing mechanism, when it is finally realeased. At this stage this is only a big CoreXY machine because the E3D tool changer is not released yet. I also have doubts that the clamping / tool changing mechanism can bring up enough force to hold a direct drive extruder with a full sized Nema 17 stepper reliable. On my request E3D told me that a direct drive tool head should work. This has to be tested.

At first I planned to built a Hypercube / Hypercube Evolution but soon found I that the design was not stiff enough for the build area I was aiming for.

So I started optimising all parts and changed all linear guides to linear rails from Hiwin (MGN9 and MGN12). I also tried rails and bearings from IGUS but they did not work out for me (to much play). While doing so I also added an "electronics compartment" on the back using 3060 aluminium extrusion.

The printer features a built area of roughly 500x500x500mm. The y-axis is optimised to allow space for the tool changing mechanism. I included an Excel Sheet so you may calculate the requiered length, if you aim for a smaller or bigger version.

I opted to use a direct drive system, in the very first iteration (which was more like a Hypercube), I tried to use a bowden setup which did not work out at all. I got clogs all the time and re-assembled the hotend multiple times because I thought it was heat creap or a gap between the nozzel & heatbreak. But after zip-tying my E3D titan to the x-carriage everything went fine. Obviously the Hypercube is not suited to mount a heavy extruder onto the x-carriage on a printer this size.

Attention: A version with a x-axis made from a CNC-milled x-axis-carrier (instead of 2020 extrusion) will be available around 04/2019.


Step 1: Partslist - BOM



Printed Parts

How many of each part you need is shown in the files name.

Asortment of screws (list not complete yet)

  • 50x M3x8
  • 50x M3x10
  • 10x M3x40
  • 5x M3x60
  • 10x M4x10
  • 100x M5x10
  • 20x M5x12
  • 20x M5x14
  • 50x M3 Hex Nuts

Step 2: Component Choice and Failed Attempts

Linear Motion Components


I opted to use linear rails from Hiwin with a rail "width" of 12mm for the y- and 9mm for the x-axis. You are free to order them from china (approx. 80€). If you want the best experience choose geniune HIWIN-rails (which I recommend - QC in china is not that great, approx 700€).


The z-Axis consists 2 10mm lead screws and 4 12mm smooth rods to keep everything in place. I found that at the lenght of the spindels, which is needed for a 500mm z-movement, you need to constraint the spindle on the top AND bottom to keep distortion / ghosting-artifacts low. This will make tramming the z-axis a pain in the a***e but at the same time will strongly improve print quality.


I tried different tool heads, mounting orientations and so on to find the "best" one. At first I tried an E3D V6 with bowden extruder. This did not work out at all. Due to the large travel distances the bowden tube flexed to much, causing to much friction in the tube and at last jamms. I tried to solve this problem with different solutions, but none worked (mounting the extruder on the back of the frame, on top of the frame in the center of the bed, using Capricorn and standard PTFE, using a filament oiler, re-assembling the hotend multiple times....).

After this I zip-tied my E3D Titan directly to the x-carriage. This immideatly solved all my jamming problems. Obviously this was no long term solution, so I designed and tested muldtiple hotend / extruder mounts. In the beginning I planned to use the E3D Titan Aero. A compact Extruder+Hotend-Solution which should be optimal! Which is kind of true - it works perfectly as planned, but there was room for improvement. I tried mounting the E3D Titan Aero in different orientations to reduce the overall footprint while keeping a powerfull fan attached to it for part cooling. The problem with this solution is the bulkiness of the assembly.

So I tried a different solution using an E3D V6 hotend with threaded heatsink and an E3D Titan Extruder. In the attached picture you can clearly see that the footprint of the tool head assembly is reduced by a large amount (yes, the comparison is not quite fair - the V6 version uses a smaller part cooling fan...but never the less...).

Not only the over all difference in footprint size is a nice feature of the V6 tool head. Due to the position of the extruder stepper motor on top of the x-carriage the center of gravity (COG) is much closer to the carriage itself reducing the torsional moment induced in the x-axis (see picture). This is true for the vertical offset (in z-direction of the printers frame) as well. The vertical offset of the Titan Aero V2 and Titan Aero V2.1 tool head is 32mm / 35mm. On the V6 tool head this offset can be reduced to 3mm due to the stepper motor / extruder and Hotend / fan "balancing" each other out.

The V6 currently uses a 40x40x10mm axial fan for hotend, and 40x40x10mm radial fan for part cooling. The overall size could be reduced further by using a 30x30x10mm fan for hotend cooling. Additionally the geometry of the fan duct for part cooling is not completely optimised.




Step 3: Frame Assembly

The frame assembly is pretty straight forwards - you don't have to consider much. Just use the correct corner brackets in the right position.

On most corners you use the "standard" corner brackets, only where the x/y-Motors and idlers are mounted (top 3030 profile in y-direction) you use different ones.

"Special connectors" are only used to mount the top 3030-y-extrusion with the 12mm-rail to the z-3030-extrusion. The corner connectors are used on the site with the x/y idlers. The T-matik connectors are used to mount the 3030 y-extrusion on the x/y-motor side (this might be optional - the frame extrusion profiles are connected in this spot via a printed part - but I found these connectors recently and really like them to make really strong connections OR enhance / stiffen connections with printed parts).

There are two things you have to consider when assembling the frame:

  1. Mount the MGN12 rails to the 3030 y-extrusion before you put it into the frame. This will make your life easier. The MGN12 rail should have a distance of 10mm (x/y-idler) from one end, and 42mm (x/y-motor) from the other end.
  2. To mount the x/y-motor-mounts and Nema17 steppers correctly do the assembly in the follwoing order.
    • Before mounting the top 3030 y-extrusion, mount the x/y-motor mount to the 3030 z-extrusion using 4x M5x10mm screws and t-slot nuts.
    • Mount the Nema17 Motor (motor length < 40mm) to the x/y-motor mount and put the drive wheel (16 tooth) on the shaft. Mind the correct orientation (see pictures).
    • At last but the top 3030 y-extrusion with the attached MGN12 rails into the frame.

Step 4: Z-Axis Installation and Tramming

Installation of the rods and the motor mounts for the z-axis is pretty self-explanatory. And tramming the axes and the spindle might be as well.

But on a printer this size tramming may become an issue. At least it was for me because I don't own any tools which can measure if something is straight or equal distance on lenghts 150 mm or above. For this I built a littel tramming helper for the z-axis. For the tramming you will need a spare 3030 extrusion and the tramming helper part. This assembly will just function like a giant "ruler".

Step 5: Tool Head Assembly

To assemble the tool head you can mostly use the greate guides by E3D:

E3D V6 Assembly

E3D Titan Assembly

To get everything aligned and assembled properly you have to do the assembly in the following order:

  1. Put 2 M3 Hex nuts in the slots on top of the printed part. The access to these holes will be blocked by the extruder stepper motor after assembly.
  2. Assemble the E3D V6 with threaded heatsink.
  3. Mount the E3D V6 Inside the hotend mount and Insert a short piece of PTFE.
  4. Assemble the E3D Titan (Bowden Version). There is only one tricky part: Getting the bowden coupling to slide into the E3D Titan's housing.
  5. Attach the fans and route the wires using zip ties.


Step 6: X / Y Gantry Assembly

First mount your MGN9 rail centered on the 2020 aluminium extrusion and the MGN12 rails on the 3030 extrusion.

Position the 4 GT2-idlers on x-profile-mount and secure them using M3 screws and nuts. Slide the MGN9C carriage onto its rail. Afterwards attach the x-profile-mount to both sides of the using the MGN12H carriages, 3x M5 screws, 4 M3x Screws and 2x M5 T-Slot Nuts. Do not tighten the M5 screws all the way - they are tightened after installation to allow some air for tramming.

Slide the MGN12H carriages onto their rails (which are already mounted to the 3030 extrusions) and dry-fit everything onto your frame. If you have done everything correct and your frame is trammed neatly it should fit perfectly - otherwise slight persuasion might be necessary. DON'T USE BRUTE FORCE. This might bent your axis and you will need to buy new ones.

Fix the 3030 extrusion in place using 2x 3030 corner brackets and 2x T-Matik connectors. Slid the MGN12H carriages all the way to one end, back to the others and keep them parallel while doing so. After multiple repetitions everything should be mostly aligned.

Now you can finally tighten the 3x M5 screws on the x-profile-mount. Slide the x-axis back an forth one more time to see if everything runs smoothly. If not: loosen the M5 screws on the x-profile mount an try again.

After this you can install the mount for the belt idlers on the frame, install the belt, allign the pulleys and tension everything.

Congratulations. Your x/y-gantry is complete.

Step 7: Impressions & Print Results

Guardian Shield+ Zelda Breath of the WildIn the pictures you can see some of the parts I printed already.

Zelda: Breath of the Wild – Guardian Sword

Step 8: Filament Runout Sensor & Spool Mount

Update from 13th Jan. 2019

Filament Runout Sensor

I opted to add an (optional) Filament runout sensor. It is really annoying to have a long print "fail" because no material is left. Espacially with a large print size.

As a "sensor" I used a standard micro switch which only sense is filament is loaded or not. I did not want to implement a version of filament sensor which does not work realiably with differen kinds / colors of materials (Josef?).

As you might have guessed from the pictures I use a "reverse bowden" setup. The tool heads are direct drive but the filament is guided through the drag chain throug a 2/4mm PTFE tube (3/4mm might be better to reduce friction - the filament path in the drag chain does not have to be constraint at all). The PTFE tube directly attaches to the E3D Titan on one side and to the Filament runout sensor on the other side.

How to wire and setup a filament sensor for the Duet is described here:

Connecting a Filament Runout Sensor - Duet3D

M591 - Configure Filament Runout Sensor

Spool Mount / Rack

I included the parts for my spool mount / rack solution. It's really simple. I just attached 2 spare pieces of 3030 extrusion to the printers top using 6030 (printed) and 3030 (bought) corner brackets. The length of the 3030 extrusion depends on the max spool diameter you want to use. To hold the spools I used a 12mm rod I had laying around.

In the beginning I thought I'd need some bearings (espacially for bigger 2.3kg spools. But until now everything works fine - even with the "hungry" 0.8mm Nozzle.

Step 9: Quick-Connector for Tool Heads

I have researched several solutions of quick connector types and choose pogo pins / spring loaded pins as the solution for my tool changing mechanism. The general idea is quiete simple. I'll keep the current design of most parts. Except - obviously - the parts that have to be changed for the tool changer mechanics. Also I might use a CNC milled aluminium x-axis-carrier (instead of 2020 extursion) in the future.

First of all: I'll need 12 wires for each tool head - because the bed leveling sensor is attached to the x-carriage. These wires are needed for:

  • VCC & GND for the heater cartridge (30W @ 24V = 1.25 Amps)
  • VCC & GND for the coldend cooling fan (< 0.2 Amps)
  • VCC & GND for the part cooling fan (< 0.2 Amps)
  • 4 phases for the stepper motor (<1.0 Amps per phase)
  • 2 wires for the thermistor (<< 0.2 Amps)

The pogo pins / spring loaded pins I ordere have a current rating of 1A - so I'd need 4 (2xVCC & 2xGND) pins for the heater cartridge. I'll also use the VCC-line of the heater cartridge for the fans (total current on these pins < 1.65 Amps).

In total I'd need at least 12 pins to make a suitable connector. In practice I think I'd use a 2.54mm pitch PCB with a size of 4x9 holes (see render). This would give me the possibilty to have up to 14 pogo pins + space for mounting it using M1.6 screws. The PCB would have a size of 10.2x22.9 mm. I hope to fit it "within" the air gap between the 2 aluminium plates on the x-carriage. I hope a similar solution will work with the E3D tool head (at least with a CAN-BUS board).

But there are some inherent problems with this apporach:

  1. Disconnetcting and connecting a stepper driver while it's under power will fry the driver (if not immediatly at least over time),
  2. Connection problems - especially on the heater cartridge and thermistor pins may lead to undesirable "thermal runaway protection" triggers,
  3. There would be no way of monitoring the temperature, driving the coldend cooling fan and setting standy temperature while the tool head is in the tool dock (aka not attached to the x-carriage).

But there are also solutions for this problems. The most obvious one: wait for the Duet 3 Controll board and use a seperate stepper driver, temperature & fan controller on a PCB mounted to the tool head and connect everything via CAN-BUS. In this way I'd only need to run VCC, GND (6 wires for ~3 amps) and 2 wires for the CAN-BUS signal to the tool head. But nobody can say when the board will be released. Nevertheless I already added a picture with a supposed solution (= position for pogo pins) for this.

More DIY solutions for the meantime would be:

For #1: Using gcode to shut of the power to the driver with (i.e.) M18 E0. After sending this code it is safe to disconnect the stepper driver even while the board is powered on.

Remaining issue #1: What happens if the pogo pin connection is not reliable and "contact issues" occure during print moves? this would be issue #2...

For #3: That would be solvable due to the RepRaps firmware feature set and modularity through the gcode-programming and an additional set of pogo pins in the tool dock (for heater & coldend cooling fan). While the tool moves from the x-carriage to the dock all sensors, heaters, stepper drivers are detached in firmware via gcode-commands. After the tool head is parked in the dock the tool head is associated with that go from the Duet to the pogo pins in the tool dock.

Step 10: Obsolete Steps, Pictures & Solutions

The pictures / information in this step is obselete and just for documentation / back-log purpose.



    • Faux-Real Contest

      Faux-Real Contest
    • Build a Tool Contest

      Build a Tool Contest
    • Remix Contest

      Remix Contest

    4 Discussions


    Question 4 weeks ago

    Is it possible to use an Arduino and Ramps 1.4 boards? What's the reason for using a Duet WiFi board which is a very expensive option?

    1 answer

    Answer 4 weeks ago

    Because it is better in every possible in every way. I think now a days you should not use a Ramps (There are better 8bit boards, but they are more expensive).

    But of course you are free to use the Ramps. For just "using" the printers it will Work :)


    4 weeks ago

    IT depends where you source the parts. I got the MGN rails from China, all other parts are Genuine.
    The final cost ist aroun 800€.