Matched X carriage – including XCR-BP6 and Petsfang

After re-designing belt paths and Y gantry I still had to do the X carriage to get the belts straight again. That was my first goal; the others were to put the E-stepper on top of the carriage (between the belt fixtures), increased stiffness, use one of those Petsfang air ducts for part cooling and upgrading the hotend.

XCR-BP6 “Hexagon” hotend

The “Hexagon” hot end you can find on Aliexpress, made by XCR3D and also called XCR-BP6, has the advantage of locking the heatbreak in place with grub screws. One might argue, that screwing it in place by M6 (E3Dv5) or M7 (E3Dv6) thread will increase contact area between heatbreak and heatsink, but E3D constructed their Cyclops, Chimera and Kraken hot ends with grub screws, too. As the former two are air-cooled and the latter is a (watercooled) quad-nozzle design, it can’t be a bad choice then. And the advantage is, that you can pull out the heatbreak instead of turning it several times – wich will ease maintenance and switching from “full metal” to “PTFE straight through to the nozzle”.

[Edit: For me the “Hexagon” didn’t work well enough, so I went back to the E3Dv5 after a while. See this post for further infos. As noted on YM and L3D the carriage was later re-designed for the Sanjiu Metal BMG and an E3D v6 threaded heat sink.]

Before I even realied, that Mark Rehorst was already using one in his “Ultra MegaMax Dominator“, I ordered a complete set and several spares / options for peanuts.

The parts looked good so far. Those “3950” cartridge thermistors sould just use the Standard (“1”) option of the Marlin firmware and stay in contact with the heater block a lot better then the old “tape into hole with Kapton” version. (Actually the thermistor as well as the heater cartridge just fell out of my v5, when I disassembled it.)

The Heaters are available in 50W. Why not? PID-control should be able to tame them and heating up will be accelerated.

What I didn’t like, was that the Bowden tube coupler was glued into place. IMHO that thing has to be kept replaceable. But on the other hand the heat sink is dead cheap to replace – just remember the delivery times from china…

There are “silicone socks” available, and at the moment they are a give-away.

The brass nozzles looked smooth, too (couldn’t really get that photographed), but the steel parts (throat / heat break) were a bit rough looking on the inside. That doesn’t really matter in the ” Straight Through Throat” version, but is critical if you want to print PLA with the “High Temperature Version” (full metal) out of lazyness.

As I just reamed out my old E3Dv5, I tried the same with the XCR heatbreak. Then I measured the position of those maggot screws, to have them accessible later.

The “Hexagon” heatsink is nearly exactly as long as that of the E3Dv5, so the original Prusa Extruder (grey test print below) won’t fit here – but my old Tinkercad design will.
Please note: This also means the E3Dv6 is too short and will NOT work with this carriage.

As already mentioned (link above): “v5 J-Heads” with 50 mm heatsink length and 25 mm diameter are still available on Aliexpress – if somebody wants to use this design despite of the outdated components. Maybe you’ll even find heatsinks in the old dimesions, but compatible with the v6 (M7-threaded) heatbreaks…


The other part I chose for design-in was a Petsfang air duct for a single 5015 blower. (I write single, because there are also twin-blower-version available!)
They have an excellent reputation and -using a 1.0mm-nozzle- I realized, that you can’t have “enough” air blown onto your part, when printing PLA. I imported several STLs into OpenSCAD and by chance the one designed for the TronXY printers (STOCKTRONXY__X5_DUCT_V6.28.stl) was the one fitting best. So let’s see, if we can contain that moiré on the surface with that new carriage a bit…
Note: The depicted “V1” blower was replaced by a “VX” (the full power version) later.

Carriage rear/main part

Why did I mention the surface moiré? The parts I already adopted from Prusa were designed for a “bed-flinger” (“XZ-head/Y-bed”) type of RepRap with two stacked rods in the back. And I didn’t think of that – so in my configuration the whole assembly flexed in Y-direction. You could make out how parts were placed on the bed. That had to change.

So my carriage should not only align the belts, it had to be properly rigid. This time I would not rely on some other design, but stack some blocks in OpenSCAD myself. And then it would be printed in PC-ABS with 2.4mm walls (not a problem with a 0.6mm nozzle laying down 0.8mm lines) and 33% infill.

I imported vitamins into OpenSCAD (the comments will lead you there) and startet with the “Backplate” part. This was the simpler part of the whole carriage: Screws were keeping the carriage on the MGN12 clone (the regular M3x7 or M3x8), screws (M3x25) were keeping the belts in place, nut traps for the J-Head groovemount, four M5x60 screws to mount the front part. As you can see it’s much bigger and stronger, than the “ljbrumfield” part I used before. And nevertheless it’s a tight fit. The MGN12 rail goes in first, only then can it be attached to the 2020 profile.

It doesn’t print without support either. And my first try at it had the PC-ABS crack at the most stressed part (which I compensated with the Epoxy 3M recommends for plastics like this). The uploaded part has this area reinforced already. And I also took out the sinking for the screw heads, so nobody will have to shorten the M3x25s for the belts anymore. (They stay obove the rail now.)

Carriage front part

Before printing the front part, I had to change something about the way I printed that PC-ABS. The tacky sticker on my granite tile (more on it here) has served me long and did a good job, but 110°C were finally too much for the glue. At least that glue couldn’t resist the warping part anymore, so the part lifted at the corners pulling the sticker upwards. I already had sourced a 330x330mm² glass sheet (6mm strong, “plain vanilla” glass) from a glazier selling on eBay, so the only question was wich adhesive to use.

Luckily had provided me with some “Magigoo” samples along with their #MasterSpool refills, and one portion was enough for the whole build plate. On the rear carriage part depicted below you can see the warping, while the front part is perfectly flat.

The “lilypads” can be switched on in OpenSCAD, where they make sense – other parts can just be printed with a brim.

As I had a 50g-sample of highly modified PLA (Alfapro from Filoalfa), I originally tried that, but somehow the (loose) filament chose to wrap around before the extruder so badly, that it kinked and blocked. The leftovers were not enough for another try. Should have straightened it by hand before printing…
Anyway: Here is a comparison of the surface- and overhang quality between Filament PM’s PC-ABS and that Alfapro PLA+. Astonishing…

This part of the carriage contains the other half of the J-Head groovemount, mounting holes for the Petsfang and the extruder and the endstop. (Important: Mount the endstop first!) There is also an extra hole to allow access to the grub screw for detaching the heatbreak. And I’ve taken over those “Dyson style” side stream ports for the hot end cooling from the latest Prusa design. I have not jet blown some vape at them to see, if they actually work, but they won’t do any harm either. (Comment that two lines in OpenSCAD, if you dislike that.)


Nowadays you can buy a Bondtech BMG clone from Trianglelab for the price of the genuine gear set. That’s a counter-rotating dual pinch extruder with built-in gear reduction and easily the best option you can get. But I already had a gear set for a Prusa style gearless feeder – so I stuck with that. My last modifications were made in Tincercad, because the Prusa guys had also used some fancy new CAD tool and switched from publishing OpenSCAD code on GitHub to .STEP data, but this time I kept it consistent. Didn’t need that smoothed air-duct for my purposes here anyway. So the plain Prusa feeder mechanism is now a part of my code – and as it is licensed as GPLv3, my parts also are.

This derivate is mounted via the screws for the J-Head (M3x25) and has an added mounting point for Vetterick’s Top Mount Cable Chain Remix. The idler part could be re-utilised – my old version is still in use. Also, I’m still using those old version of Conrad Part No. 1197628 (6.3mm diameter and 26mm length) for the idler. It’s mounted with some exotic M3x60mm screws I cut down to fit.

Still testing how best to chamfer the PTFE tube – and how to add up the additional part when switching from full metal to straight through…

Once the motor sits on top of the X carriage it can be tightened down with zip ties.

Putting everything in place

Using screws to hold the belts eases putting them into place. As already mentioned: One has to screw that end stop switch onto the front part, before mounting it to the rear (taking the hot end into sandwich). Then comes the motor and extruder part.

The Petsfang comes last. Used leftover plastic screws with a flat / pan head, so the height can be adjusted. It is meant to be adjustible and it is a neccessity, that it’s done!

The end stop position has been modified in the code already, so that anyone trying to re-create this (hopefully) will not have to use the same Spax screw as me to get it hit…

As rigid and well cooling it is: This assembly is large. I removed the stoppers from the MGN12s, but I didn’t re-locate my heatbed, so at this moment I have an “X_BED_SIZE” of 326, while “X_MIN_POS” is -3.5 and “Y_BED_SIZE 321”, while “Y_MIN_POS” is -12.5. On the other hand I could remove the bed lowerings and stay at the full 401mm “Z_MAX_POS” nevertheless.

When I upgraded to Marlin 1.1.9 I used up 98% of the available flash of the “BOARD_MELZI_TRONXY” – and it seems the Bootloader doesn’t like it. Whichever I flash last with an AVR ISP works, the other one doesn’t. So at this moment I’m Bootloaderless.

Un-mounting the heatbreak works so far, but is a bit fiddly – you have to hit one of those M3 screws through the fan. From the rear would not have been an alternative, as the 2020 profile is in the way there.

Test prints

The Filament Test Cube by sch00f was a bit overextruded (PLA, using the “High Temperature Version”), so I dialed the flow down, until a single-walled 50x50x50mm³ cube (hollow, no lid) came out at the 0.6mm wall thickness I ordered the 0.4mm nozzle to lay down. There is still some moiré on it, but that’s only a visible effect (and reinforced by the “glitter” in the PRI-MAT PLA sample I printed it with).

Using up more leftovers, dasfilament bronze PLA, I continued with some MAKE: test files. Top surface quality was never an issue with the X5S – and now even less. The negative space tolerance test showed, that I should keep it at 0.4mm – for now. When the overhang test fell over, it already had achived a proper 70° underside (with the “V1” Sunon blower, the “VX” was not mounted then).

Benchy time!

The old Bowden extruder had left some blobs on the (red) Bechy’s surface – despite coasting. That’s minimized now – even without tuning and fancy slicer- or firmware tricks (no flash for LIN_ADVANCE left). As my children have abducted the lego-compatible (more optimized) red Benchy, I only had the (4010-fan-blown) regular one left to compare. And the metallic Alfaplus I used for that conceals some surface structure (that’s what you normally want it to do). But trust me: Overhang performace has never been so good on one of my printers. And ringing got less, even though the red Benchy was printed with a Bowden setup.
Cura sliced the metallic benchy to 0.15mm layers to be printed with 50mm/s. My Gcode added:
M201 X2000 Y1500; Acceleration for X/Y
M205 X20 Y12; Jerk for X/Y
at the beginning. Temperature was tuned down manually from 200 to 190 °C for the chimney.

Getting the files

As still had problems with multiple STLs generated from the same .scad file, these file are currently only hosted properly on YouMagine:

If you run into issues, you can comment here, on YouMagine or in the Facebook group. Or on Vimeo, if you don’t have any other accounts. 😉

7 thoughts on “Matched X carriage – including XCR-BP6 and Petsfang

  1. Hello,
    I recently bought a LERDGE 3D BP6 for low temperature. Seeing the seller’s drawing, the PTFE tube goes straight through the entire hotend. But the piece I received has a 3mm hole in the center part. Is this correct. I should cut a PTFE tube and put it in the throat, splitting the PTFE tube. You can help me with this, as the seller from China does not answer correctly.


  2. “Low temperature” means “PTFE-tube hits the nozzle”. So far, so good. And it doesn’t?
    What is “the center part”? The black heat sink should have a 4mm hole (always) and the “low temp” heatbreak (the steel part – do you mean that?) also should have a 4mm hole to allow the PTFE-tube to pass through.
    The full metal / high temp heatbreak should have a hole no larger then 2mm – just enough for the filament to pass through it…
    …so maybe you got a “high temperature” version for 3mm-Filament!?


  3. Bought for 1.75mm. Where the PTFE enters it has a 4mm hole, to the center of the heatsink. In the center there is a 3mm hole. Next up is a 7mm hole where the hotend throat goes. I think the piece came out wrong.


    1. So the black heat sink is NOT drilled completely through with 4mm diameter? IMHO that’s an error. The PTFE-tube always reaches the heatbreak. The “high temp” / full metal version has a 4mm hole at the top (which then reduces to 2mm for guiding the filament) and the “low temp” / PTFE-lined version just lets the tube pass anyway.
      Look at => The tube you see there from below is the same piece of tube that entered from above.
      => As the heat sink is hexagonal, made out of aluminium and 4mm is a common diameter you shoud be able to clamp the heatsink and drill it out to 4mm easily.


  4. The seller from china said he will send another piece. I asked what was wrong and if I could correct. He didn’t answer about that. It should take about 1 month for me to receive this new piece. My machine is stopped because of this. Your suggestion is to increase the hole from 3mm to 4mm to pass the PTFE from top to bottom, would that be?


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.