Close
0%
0%

Coaxial8or [gd0144]

Full-colour FFF? Multi-materials with unparalleled interlayer bond strength? Abrasives without abrasion?

Similar projects worth following
The Coaxial8or (c8or for short) is a heatblock for my CR600S (a modified CR-10) that aims to allow me to bulk-buy 6 filament colours but print in 600. Any feature implemented afterwards is a bonus, such as printing abrasives with a brass hotend or different materials that usually wouldn't bond together.

Results

Coaxial8or R3

Revision 3 closeup on sealing input and leak channel geometry.

Coaxial8or R2

Revision 2 with nozzle and holder installed.
Extrusion from 1.2mm nozzle
White around black PETG

Top: Magenta around black
Middle: White around magenta
Bottom: Yellow around magenta

Coaxial8or R0

Revision 0 without CHC Pro or holder installed
Produces colours with one side slightly darker than the other:
Transparent blue around white
White around copper

4-in-1-out Coaxial Hotend

I suspect that E-steps was twice as large as they should be.

Inspiration and/or examples of working principle

Render simulation of Cyan filament; Cyan coating of White filament; Cyan coating of Magenta coating of White filament; Magenta coating of White filament and finally Magenta filament.
Image source: https://twitter.com/i/status/1648662200544907267

Navigation

The title tag system is explained here, and the table is updated when a change occurs. Notable logs have bold L# text.

L1
[M][T] Initial design and fabrication optimization
L2
[M][T] 5 inputs were possible?!
L3
[T] 4 material + tube?
L4
[M] Center grub insert
L5
[M] Smallest possible size?
- Also possible prior art found
L6
[M] Fabrication Changes
L7
[M] Hotend digitally assembled
L8
[M] Starting on the cover
L9
[R] PCBWay still can't manufacture?
L10
[M] Metal 3D print edition
L11
[M] Asking PCBWay for a brass insert
L12
[M][R] Preparation for Uni round 2
L13
[T] Threads and feedback
L14
[M] Cooling ducts
L15
[M] Carriage Mount
L16
[P] 6028 Fans
L17
[P] All other components
L18
[P] Successful Fabrication and Assembly
L19
[T] Sealing with 2mm ball bearings?
L20
[X] No immediate leaks!
L21
[X] Looking at the state of the grub screws.
L22
[M] M4 Grub + 2mm Ball Edition
L23
[T] An Insert Like The Positron Hotend?
L24
[A] Mystery CNC Price Hike
L25
[T] Hotend hypotheticals: Off-centered inlet approach?
L26
[P][A] Outer Cover and leak detected
L27
[M] Visible indication of full grub tightness
L28
[M][T] Internally groove the heatblock-heatbreak mating surface?
L29
[M] Centrifugal-inlet design with expanding ball plugs
L30
[T][R] Dual heater zones?
L31
[M] 8 in 1 out hotend
L32
[M] Added components to 8 in 1 out hotend
L33
[T] Filament order and issue prevention strategy
L34
[A][B] PCBWay CNC fabrication costs USD$257 - $334
L35
[R] Bowden couplings, collets and compression fittings
L36
[T] Print abrasive filament without abrasion?
L37
[M] Heatsink for Unibody Coaxial Hotend
L38
[M] Finished modelling the Unibody 8-in-1-out hotend
L39
[T] Abrasive filament to smooth internal channels?
L40
[M][R] Simulation software and model optimizations  
L41
[M] Thermal comparison between machined and unibody
L42
[T] Next steps
L43
[A] Details page before 11 Jan 2024
L44
[P] Nozzle-block heatbreak fabricated and simulated
L45
[T] Grub screw sleeve?
L46
[A] CNC price keeps increasing
L47
[C] Setting up Marlin Firmware

L48
[M][T] Machined 6-in-1-out not geometrically possible?
- Also talks about 8-in-1-out tweaks
L49
[X][P][T] CR600S setup and first test prints
- Tests 4-in-1-out hotend
- Thoughts on BotObjects 5-in-1-out hotend heatsinks
- Direct drive idea
- Failed due to leaks so only got 2 short prints
L50
[M] Printed Coaxial Hotend with clamp plate
L51
[B][C][M] Preparing shopping cart and Marlin
L52
[M] Slim Cover and Hotend Holder
L53
[M] 2D plate drawings
L54
[T] Directional fan and new filament strategy
L55
[P][M] Plates manufactured
L56
[M] Heatblock design optimisation
- Tip on preventing profile rotation when sweeping in Fusion 360
L57
[A] Heatblock ordered and 1mm PTFE gasket
L58
[T] Potential name: Coaxial8tor
L59
[M][A] Switch to 17HS4023 Nema17?
L60
[M] More ideal extruder mount
L61
[M] Coaxial8or logotype and test model
L62
[R] 42BYGH24S Nema17
L63
[C] Marlin M165 improvements
L64
[M] CR600S+coaxial8or logotype and numbers
L65
[P] Flat files fabricated
L66
[M] Using Fusion's renderer to simulate colours
L67
[P] Coaxial8or aluminium 3D print
- Other parts arrived:
--- DDE (BMG Clone)
--- Nema17
--- BTT EXP MOT
--- TMC2226
--- £6 400W PSU
--- Bowden couplers
L68...
Read more »

  • [R] Differential Extruder

    kelvinA02/08/2025 at 20:03 0 comments

    I was skimming through Marlin PRs and found this pull request on implementing a differential extruder:

    This reminds me of when I had a similar belt idea for a cleaning roller in the SecSavr Suspense (which is currently named #SlimeSaver [gd0105]).

    I'm thinking that this could allow for direct-drive extrusion for 3+ input hotends without the drawbacks of other methods such as a semi-stiff stick or mounting many heavy motors on the end effector.

    If I understand correctly, I think this would even be Core XZ compatible, allowing all steppers to be in the base of machine like the Ender-3 V3.

  • [X] Scarf seams and nonlinear extrusion

    kelvinA02/08/2025 at 12:02 0 comments

    So after spending some days wondering what to print (and finding out Orca will throw out all my settings if I open a .3MF with some,) I decided that I was going to tune scarf seams and M592. 

    Seams

    I started off by learning the research posted in this guide on Printables and its comment section and applying it to a tesseract 3D model because "what point is a test print if you have confidence it'll print fine?".

    I changed the z-seam location from random to aligned because some layers would try and start on an overhang.

    I tested things like Inner/Outer vs Inner/Outer/Inner and, even with the latter looking questionable in the 90-degree overhang section (see below), I watched the print and came to the same conclusion that it's better.

    I also set the bridge acceleration to 150mm/s2 which greatly improved the bridge actually anchoring to already-printed sections. I'll need to test more on a dedicated .STL in the future, but looking at the string left at the end of every print (as the hotend moves to the upper left corner over 20cm away), I think the strategy is low extrusion multiplier and low acceleration.

    I tried a ripple cube STL I downloaded probably a dozen of years ago to see my current results on an easier print, and I had to turn off "Detect narrow internal solid infill" because it would try and bridge in midair:

    I enabled Mesh Bed Levelling to help mitigate the first layer issues I had been having. I should've tried MBL out way earlier. A fade height of 3mm looked to be fine, considering my bed is only warped by 0.4mm.

    I then moved onto this model to better see what the seams were doing:

    I tested:

    • Wipe retract percent of 100% and 0%
      • I was going to try 50%, but 0% was miles better than 100% that I didn't even bother. I believe it's because the printer has to momentarily pause to do the retraction, causing a secondary "seam" (shown in white in the image above)
    • Scarf start height of 12.5%, 0% and 25%
      • I've got staggered seams enabled, and 25% looked the neatest.
    • Seam gap 6%, 50%, 0%
      • 50% just spaced out the seams.
      • 0% was slightly more compact than 6%
    • Wipe before external loop
      • I didn't have it enabled and the seam stuck out a lot less when it was.
    • Wipe length 3, 6, 1.5mm
      • 6 slightly better than 3 which was notably better than 1.5.
      • I remained on 3mm.

    M592

    As I was printing, I noticed that my infill line wasn't starting all that well, and thought of an idea to test M592 Nonlinear Extrusion.

    No walls, no top, aligned rectilinear infill, 0.9mm line widths

    The yellow line is fullspeed, which should be 15mm3/s. This seemed to correspond to around 72mm/s, so I went up in units of 12mm/s for the other 5. For some reason, the slicer decided to print in the following order:

    The fastest one was the only one that didn't quite start the extrusion right, but all of them had varying line widths from the start (blue dot) to the end of the line.

    • 12mm/s would start at 1.2mm and end at around .9
    • 60mm/s would start at 0.6mm and end at around .7

    A bunch of trail and testing later and the results were inconclusive. I decided to rotate the pieces to give more time for the extrusion to equalise:

    Orca decided to go from slowest to fastest in this one.

    I just knew that I needed to do something about improving linear advance. One idea was a lower max e-speed in exchange for higher e-acceleration. When going into the tests, I had 120mm/s and 600mm/s2. I guesstimate to try 90mm/s, which was confirmed by using a calculator I found:

    I couldn't find the exact 42BYGH24 motor inductance, so I used a similar one.

    Dropping to 90mm/s, I used 0.9 k-factor to induce many E-movements and found that 3000mm/s2 worked but 3600mm/s2 had a slew of skipped steps. I then tried 0.45 and 0.6 and the latter was the best. This seems to agree with the setting found by an Ender 3 owner:

    I was holding the filament during the print (to gather data on how the k-factor affected...

    Read more »

  • [M] C8or 3.2: Streamlined grub shield

    kelvinA02/06/2025 at 16:00 0 comments

    I've been tuning M592 and the amount of leaking is dramatically reduced. With more experience on how the leak propagates, I now feel that it's possible to minimise the shielding of the grub screw and make it look more streamlined. Fusion complained about my fillets so this simple change took multitudes longer than it should've.

    The updated files are on PCBWay / Github.

  • [A] Installed new plates

    kelvinA01/28/2025 at 18:51 0 comments

    It took much longer than expected, but the new clamp and coupler plates are installed.

    Removing the old plates

    I guess the reason why it took longer was because of all the oozed material, which was notably less in previous revisions. It meant that the filaments didn't pop out of the heatbreaks like I've been able to do in the past. Additionally, the threads were tight in so I had to dip in hot water and then use a large wrench to hold them. I used bolts to prop them up from the table so that I could get the smaller wrench on the heatbreaks:

    As you can see, that dent in the hexagon shows just how rigidly fixed the threads were before heating them up.

    This is also the first time I've had to install them without unblocking them all, since I wasn't able to get the filament out and the best way really was just clamping them back to the c8or heatblock. The job was made harder because I only have 1pcs needle nose pliers, but because of the gaps in the design, I was able to use it to hold the heatblock while I installed and tightened the heatbreaks in the new stainless steel plates while at 140C. 

    I first tried 160C but that caused the material still inside the block to expand. Thus, I took the plate off and had to remove material from one channel that had stuck to the underside of the not-yet-tightened heatbreak.

    Tightening the heatbrakes to these new stainless clamps feel much stiffer and confidence-inducing.

    The coupler plates didn't work due to the FrontBack tabs

    I spent about an hour trying various ways of installing the hotend into the holder before realising that the reason I couldn't was because of the top tabs that don't need to extend all the way. Thus I measured and tried to take about 1 - 2mm off one and then using it as a template for the other:

    I then put the hotend together and it was much easier (except that I should've probably put the grub screws in before assembly). 

    As you can see below, I've added offsets to the CAD as well as changed the grubs to M4 mainly so that I can use a larger hex tool:

    So far I haven't felt the need to screw in the middle 2 bolts, but I'll leave them in as it's better to include something I might never need than exclude something I might need.

    Trivia

    It takes ages (maybe 2 - 3x longer) for the Coaxial8or to cool down when the heatsinks aren't attached, suggesting that they are dissipating the bulk of the heat power and that a heatblock sock wouldn't help much.

    I got 100% initial-filament-load-in success rate for the first time, meaning that the strategies I've been learning during this project are working to streamline the user experience. I think access to E6 is the only main pain point (other than the leaks).

  • [P] Stainless clamp and new holder plates

    kelvinA01/25/2025 at 12:44 0 comments

    I bought a £5 bar of 330x25x5mm SS304 and got it watercut along with the new hotend holder design:

    The edges of the stainless parts have an almost perfectly matte satin finish and looks quite nice.

    I got 2 spares miniclamp plates cut. As you can see, the tabs were placed in the middle of the parts and have been filed off.

    Tapping was tough, but that was mainly me learning the best ways to coat the tap in cutting grease, the importance to align the tap and strongly tighten the clamp and how to apply torque to the tap holder. 

    It felt like:

    • Starting the tapped hole was very easy.
    • Ramp up of torque required until it reached "MaxT".
      • (coined from MaxQ I hear in SpaceX launches)
      • I just had to grow the confidence that the tap wasn't going to snap, especially when the material itself makes "something snapped"-sounding squeaks every so often.
    • Lastly, the torque falls off, leaving me with a very smooth-feeling thread.

    The offset in the CAD was -0.075mm and I've now doubled it to -0.15mm in an attempt to reduce the torque requirements.

    Speaking of hole offsets, when I was tapping the hotend holder top plate, the M3 holes seemed kinda small. Turned out I accidentally applied threads to them in Fusion, but a technician just happened to have a 3.2mm drill bit and a drill press:

    Drill press after the 6 M3 holes were enlarged.
    The finished plates moments before I cleaned out the grease from the mini clamps.

  • [A] Open sourced R3.1 on New Year 2025

    kelvinA01/01/2025 at 17:03 0 comments

    It may have taken 4 hours, but I've open-sourced the Coaxial8or r3.1 heatblock so that I could participate in PCBWay's 7th Design Contest. 

    R3.1 is essentially R3 with all the post-print alterations, but since I haven't reprinted, it's not the 4th revision. 

    To get things ready to go IPO, I just did a few small tweaks today, such as 

    • finding a better texture
    • filleting the grub shield walls
    • changing the leak paths to 
      • decrease the chance of leaks near the heater cartridge
      • increase the chance that material can be pulled out of the channels when the hotend is heated to around 100C (for PETG)
      • increase the speed at which a leak could be detected

    I also tried my hand at the "configuration" feature that Fusion has had for a few months now:

    Some of the limitations I found was that you can't edit in place, nor do things like change checkboxes (Eg. "Keep Tools" in a combine feature). But now, I can quickly toggle visibility of certain components:
    I've also exported the .step of the hotend holder, partially because the odds that I need to continue revising it are not insignificant. Additionally, it's tangled in the rest of the "Coaxial Hotend" file and trying to "Save a copy" gave me an exploded file:
    I've also rendered the latest heatblock and holder:
    It kinda reminds me of AI-generated images by how you can see the start but not the end of the cartridge wires.

    I read the Open-Source Hardware FAQ and confirmed my choice to use the CERN hardware license. I'm not sure if it matters much compared to Creative Commons in the grand scheme of things.

  • [A] Compressed HSVA workflow

    kelvinA12/28/2024 at 14:21 0 comments

    I'm currently getting great results with the compressed HSVA colour system workflow using coolors.co:

    The above is the Mint PETG I have, and my workflow is to:
    • Use smartphone flash as a white light source to shine through the filament
      • My reference is:
        • 50% - Max transparency whilst still retaining 100% saturation
        • 100% - Effectively opaque for 1.75mm filament
    • Get an offcut of filament (or 3d print)
    • Place it next to a white reference
      • I'm using my white spacebar
    • Max out saturation and brightness sliders
    • Shine flash on filament sample
    • Move hue to nearest 5 degrees
    • Move brightness to nearest 10 percent
    • Move saturation to nearest 10 percent
      • I find this to be the least confidence-imbuing slider since colours look more similar, particularly at medium-low brightness values

    With this, I can get a confident compressed-HSVA mentioned in this log, but I still move the sliders around by 1 step to make sure I've got the right colour:

    Confident YES:

    Confident NO:
    Confident NO:

    There was no shine-through for the mint, thus the colour for this not-quite-cyan is 35.a9a.

    Surprisingly, my pink is so much further away from the ideal magenta. The hue of the mint is only out by 5 degrees, yet the pink is out 25 degrees and admittedly desaturated:

    It also has a bit of a glow when the filament is lit from behind, so its value could be 70.6a9.

    One possibility for the hue is screen colour reproduction, and I know that pinks have always been questionable on various IPS panels. On my OLED phone, this same colours looks much more vibrant... oversaturated even. On my 9th gen iPad I happen to have, the hue is 315 and other values are unchanged. This is part of the reason for the compressed colour space; there are so many variables that the precise value isn't that meaningful. 

    Considering a substantial amount of people have an unmodified iPad, touted with "TrueTone" technology, I will use it as the hue reference.

  • [A] Opaque filaments create sRGB gradients

    kelvinA12/27/2024 at 12:43 0 comments

    After looking at the colours I obtained trying to print the gift box, and remembering about the dithering log I wrote, I used this gradient generator to discover the issue:

    Expectation:

    Reality:

    At least I know I certainly found colour-accurate magenta and yellow filament.

    CMY and RYB

    This explains why Heinz and others before him used transparent materials for colour mixing. The issue is that such filament is even harder to source, particularly for magenta. I've already got YouSu Transparent Blue, which is transparent cyan(ish): 
    Since it's transparent, I could just hold the filament infront of the white and eye^2-dropper with the compressed colour space mentioned in the previous log.
    Yellow seems available, but I've only been able to find Transparent Red:

    This highlights one of the reasons for the Coaxial8or project in the first place. It's one issue if you have to wait days or pay for an entire kilogram of material for a colour, and it's another issue if that colour isn't even commercially available.

    Looking at the below, it sounds like one would still be able to get a decent gamut:

    Source

    Another thought: maybe that's all that is needed? Maybe magenta, the innermost of the 3 hues, can stay opaque while cyan and yellow can tint it. Opacity wouldn't be very stable, however.

    The alternative is dismissing transparency entirely and using 3-bit colour: White, Black, Red, Yellow, Green, Cyan, Blue, Magenta. For FFF 3d printers, transparent filaments are more like a visual effect, similar to matte, marble, silk, sparkle and glow. 

    The sRGB and HSL gradients are identical

  • [E1][X][M] Tried to print a gift for 8 years of CR600s

    kelvinA12/25/2024 at 16:37 0 comments

    On the 25th of December 2016, I got into 3D printing for the first time with a CR-10.

    I woke up on the 24th of December 2024 and I had an idea: Since the Coaxial8or kinda works and tomorrow marks 8 years since I first printed on "the CR-10 now known as the CR600S", I should try and print a two tone gift box.

    Designing the box was simple

    Obviously, to celebrate years worth of calibration cubes, I modelled a ribbon-wrapped 20mm cube with an 8-sided flower-bow on top. I also added a little pillar so that I could mark orientation (because this is still a calibration cube at the end of the day). I joined the pillar with a very narrow (0.001mm) extrusion so that it and the ribbon counts as a single body:
    It should also be of no surprise that the ribbon has filleted chamfers.

    Setting up in PrusaSlicer

    So I was doing things like setting up a decent purge volume and looking at the (failing) prints to see that I really needed to work on retraction settings. What I found that it seems best to
    • retract ASAP - prevents a blob forming at the end of the track
    • deretract slowly - allows a small blob to anchor at the new location before the toolhead zooms off

    At this moment, my purge volume was 300mm3 and it seemed like it needed to be more. For context, 100mm of filament = 240mm3, so it's somewhat expected. I designed the Coaxial8or more for having a digital library of filaments than a multicolour modification (e.g. like the diamond nozzle).

    Setting up OrcaSlicer

    In search for "coasting" for PrusaSlicer, I found out that OrcaSlicer has a "wipe distance" option, which doesn't exist in PrusaSlicer.

    Earlier in the year, I didn't use this slicer because it only supported single-extruder-multimaterial options. I can now report that it now supports multiple extruders! The only caveat is that, to duplicate settings across all extruders, I have to temporarily set Extruders = 1 and then back to = 16. This also resets the filaments loaded to whatever was in the first extruder.
    The main, exciting thing I was able to (convolutedly) set up was a "master" material, which actually updates other materials inherited by it. This makes things SOOO much more manageable.

    I also think it's easier to see what is loaded in OrcaSlicer:

    It's possible to do by creating a new material by clicking "Add/remove filament" and then "Add new":

    It insists that some "@MyMarlin" thing is added to the end. I went to the presets path, removed "@MyMarlin 0.4 nozzle" from the filenames and then search and replaced (with nothing) the string in other files:
    As you can see, I decided to name the block colours with a 4-bit number. So instead of hex of RGBA being FFFF for opaque white, it's 1111, since the block colours are either entirely on or off anyway.

    It was a bit tough (because I kept opening the same .3mf instead of importing it into a new project, causing settings to linger around) but I was able to do the same thing with the printer preset! All I needed to do is put my master in a "base" folder and set 

    "inherits" : ""

    Then I could make another profile and tell it to inherit the master. 

    Finally, I can have an easily editable master profile! I've been wanting this feature ever since I got into 3D printing. What makes it special is that, if I changed a value in the child preset and I want it to follow the master again, I just need to change the value to whatever it was in master. It's not like Cura where I'd have to open the config file in VSCode and delete the entry.
    It's a bit hard to see, but settings that are different from the master preset use white font and unchanged ones are a light grey.

    Redefining colour

    Do you see much of a difference in these colours? I don't, but the blue value is quite a bit different. I then remembered that all these virtual materials are going to be sorted in alphabetical order. If I continued to use RGBA, it'll be all over...
    Read more »

  • [M] Leak shield and channels

    kelvinA12/23/2024 at 10:32 0 comments

    I've added a leak shielding to the thermistor grub screw. I've also removed some leak channels and made the remaining ones deeper in depth so that leaks:
    • can be detected faster
    • have less "crosstalk", potentially making it harder to determine leak origin if 2 filaments are of similar colour
    • don't pose a threat to the thermistor
    • can more easily flow out the sides instead of squeezing through the small gap between the coaxial8or and clamp plates

View all 128 project logs

Enjoy this project?

Share

Discussions

Trovoski wrote 09/18/2024 at 13:20 point

I have been following this project for months, and it's my go to morning reading when I clock into work, haha

  Are you sure? yes | no

kelvinA wrote 09/18/2024 at 13:53 point

Waw, that's great to hear! I do occasionally wonder if these logs are being sent out to a void as dark as this site's colour scheme, so it's reassuring to see this.

  Are you sure? yes | no

MasterOfNull wrote 08/11/2024 at 22:48 point

If you route a path in your AL and add a cover, water cooling.  Probably lighter.

  Are you sure? yes | no

kelvinA wrote 08/12/2024 at 08:47 point

What do you mean by "add a cover"? 

As for water cooling, I decided that I didn't want to include its complexity nor potential for leaks.

  Are you sure? yes | no

MasterOfNull wrote 08/12/2024 at 15:18 point

Oh.. I was just saying with your existing design you already have a nice block of AL right where you need cooling.  Route a channel in the top for water to flow around and cover with a plate to contain it. Air cooling works too and is simpler, yes.

  Are you sure? yes | no

Joshua R. Taylor wrote 10/05/2023 at 13:22 point

OMG!!!! we need to talk! josh@jrt3d.com

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates