Skip to content

Documenting my work to create a 3d printer hotend that can change temperature within seconds by using inductive heating and possibly active nozzle cooling

License

Notifications You must be signed in to change notification settings

HB-Stratos/diy-induction-printing

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

DIY Inductive Hotend on the cheap

Ever seen a heat up graph that looks like this? 19 seconds to 270°C

Heat up graph showing 19 seconds to reach 270°C

Important

This project is an extremely early phase of proof of concept. It is not yet ready to be adopted by anyone but those willing to do their own development work to contribute.

Why?

A hotend that can change temperature very quickly, in the range of two seconds or less have several promising applications. These include:

  • Supports printed with zero gaps and therefore smooth lower layers. By printing the section of a printed piece that lies on top of supports colder, layer adhesion to the supports can be intentionally reduced to allow for removable supports without having to resort to the classical large gaps or a different interface material.
  • Active control of foaming filaments such as LW-PLA or Varioshore TPU. These filaments are infamously hard to print due to their actively foaming nature, which makes it impossible to stop printing as the material does not stop foaming on retraction. A nozzle that can quickly drop under the foaming point on retraction would allow stringing free travels, and structurally sound perimeters by avoiding the gaps caused by oozing filament.
  • Consistent appearance over varying print speeds. This has already been implemented by sb53systems and has been shown to work well, though limited in effectiveness by current slow heating and cooling hotends.
  • Plenty of things I haven't thought of!

Parts used

This documents my current configuration. This is very likely not the ideal configuration for the task.

  • Aliexpress ZVS Driver, ~4€
    ZVS Driver module from Aliexpress
  • Thick enamel copper wire. Currently I am using 1.5mm copper wire, but this is getting hot enough that I can smell the enamel coating, thicker wire is likely the future, ~2€
    1.5mm thick enamel copper wire spool
  • Mosfet expansion module. We'll be switching over 100W of power with a well-designed coil and at 12V, so you likely won't be able to use your mainboard, ~3€
    MOSFET expansion module for high power switching
  • Aftermarket Bambu replacement nozzle. I am using the CHT clone variety, though the normal one likely has its own benefits in having thicker walls for more induction. You must use a ferromagnetic nozzle for induction heating to be effective, ~3€
    Aftermarket Bambu CHT clone nozzle
  • M6 Heatset insert, cents inside a set
  • Short piece of 3mm OD brass tube
  • Piece of silver solder, ~2€
    Silver solder wire for high temperature joints
  • Any 12V power supply (at least 150W) if your printer runs on 24V. I did not need this as my testing printer is an old Anycubic I3 Mega that runs on 12V (and has an upgraded PSU).
  • Thick wires (1.5mm² or more) to bring power to the ZVS driver. Thin wires have too high voltage drop.

Total component cost: ~15€ (excluding the PSU I already had)

Construction

The base is a Biqu H2 extruder I had previously fitted to my printer. It has a normal V6 style M6 thread at the bottom of the heat break. This means this method is compatible with any V6 compatible heat sink and heat break.

Biqu H2 extruder with nozzle and thermistor mounted

The nozzle is attached to the heat break by means of a M6 heat set insert serving as a thin walled nut for minimal thermal mass. To the side of this a short piece of the thin brass tubing is silver soldered to hold the thermistor. The thermistor is still the original one which was used with the resistive hotend. Silver soldering is also not as scary as it sounds at this scale. I fixed both parts together using two bolts clamped in my vice, then used a storm lighter (a crème brûlée torch would also do) to heat up both parts until they were glowing a dull red. Pushing the silver solder onto the part from the back then soldered the two pieces together. I am aware that one usually needs flux and better tools for this job, mine certainly looks ugly, but it also certainly works.

Custom wound induction coil with 13 turns mounted around nozzle

The induction coil was custom wound on a 3d printed mandrel out of 1.5mm enamel copper wire. It has ~13 turns, in two layers to fit within the height restrictions of the short nozzle. This coil does occasionally get concerningly hot (115°C), so a switch to thicker wire is likely advisable.

frontal shot of the completed extruder

The ZVS driver is currently mounted to the front of the extruder with a 3d printed piece. I would share the files to said piece, but as you can see it did not work as designed and was hacked up and the ZVS driver mounted to it with superglue for testing. It works, but not well. The cooling duct was also shortened vertically by 3mm from the original design to suit the shorter nozzle. If you somehow have the same exact extruder and mounting system, I'm happy to share the modded file, just open an issue.

Current Performance

In numbers:

  • 25°C to 270°C in 19 seconds (Fan off)
  • 205°C to 180°C in 5 seconds (Fan on)
  • 180°C to 205°C in 5 seconds (Fan on)

This is still slower than I would like, but enough to prove out first ideas. I have for example been able to validate the concept of printing a cold support interface, with some challenges.

Test print showing detachable supports with smooth bottom layer

  • normal 0.2mm support gap gave a rough underside with some floating perimeters
  • 0.01mm support gap with bottom layer printed at 180°C allows supports to be removed and a pretty smooth bottom layer. Some lines got stuck, probably because the hotend doesn't yet cool fast enough.
  • 0.01mm support gap with 205°C made supports impossible to detach at all.

The testing part is particularly challenging as the nozzle needs to be hot enough for the vertical posts to have sufficient layer adhesion for structural integrity while the rest of the outer perimeter in between needs to be printed cold. As the nozzle can't yet do this quickly enough, some lines of support on the outer edge permanently fused to the print. But that I was able to remove the supports at all proves that the technique has potential.

Detail of hot-cold transition area in support interface Detail of hot-cold transition area in support interface

The challenging hot-cold transition in detail. This kind of situation will likely always require a slowdown of the nozzle to be possible, but the faster we can change temperature, the less slowdown is needed. For this test, the temperature change commands were manually inserted into the gcode.

Lessons learned

  • Normal solder melts. Silver solder is mandatory for attaching the two brass pieces together if you want to go above ~180°C. As I showed above, on this tiny scale silver soldering is not as scary as it seems.
  • Interestingly, no effects of induction could be seen on the thermistor readings. No odd jumps in temperature with the heater on or off. While there are almost certainly currents being induced in the thermistor wire, they seem to be below noise in my specific case.
  • Originally I was using the old hotend wiring meant for a 40W heater cartridge. This lead to a voltage drop to 8.5V at the hotend, which was remedied with an external mosfet and thicker wire all the way from the PSU to the ZVS driver.
  • Mounting the ZVS driver to the hotend is not ideal. It is heavy and large, but for testing purposes it is still feasible.
  • Klipper PWM cycle time for the heater was increased to the maximum allowable value, 0.3s (pwm_cycle_time: 0.3). This is because ZVS drivers must be hard started, otherwise they may start to oscillate. This was mainly a safety measure, it may be fine with the default of 0.1s. Control accuracy has proven to be more than sufficient with the chosen frequency.
  • Coil turn count matters, a lot. Especially for the relatively small amount of steel within the coils, the stock heater coil with 10 turns proved to have insufficient coupling for fast heating. My custom coil with 13 turns and a lower diameter has proven quite effective, though more coils and thicker wire is likely desirable. Nozzles with higher mass of steel appear to require fewer turns for good coupling.
  • Setting the support gap in PrusaSlicer to zero makes the slicer behave as if it wasn't printing a support interface, it prints a normal bottom layer instead of a bridging support interface. This messed up cooling settings and others. The issue can be circumvented by choosing a tiny but non-zero support gap such as 0.01mm.

Future

Three main areas are the focus of immediate future work:

  • Nozzle heat up and cool down times, wishful thinking target ~0.5s for +-30°C.
    • Heatup can likely be sped up further by optimizing heater coil design and nozzle choice further. A more powerful ZVS driver is likely not necessary, the current one has been tested up to 120W of input power.
    • Cooldown can likely be accelerated through active cooling of the nozzle. Unfortunately, cooling fans suffer from spin up and spin down times, which only make a permanently on cooling fan feasible, which would have to be countered by the heater. If this doesn't appear to be an option, CPAP style cooling with a butterfly valve may be feasible.
  • Moving the ZVS driver away from the hotend. It is likely possible to extend the wires between the ZVS driver and coil up to 1m without excessive losses or EMI by using sufficiently thick twisted wires. This has not been tested thus far, but is attractive to reduce moving mass as far as possible.
  • Software support. A post-processing script is needed that can identify areas of gcode which print on top of support, set cooler temperatures for them, and possibly integrate velocity changes to allow for cooldown and heatup time.

Interested in helping out?

I'm not an electrical engineer and I have limited resources. So if you have knowledge, hardware or time which you're willing to supply to help out, reach out to me! You can open an issue here or send me an email via GitHub. I am considering making a discord server for coordination too.

Thanks

To neotician for insightful discussions on the electrical aspects as well as everyone who commented on reddit and discord with ideas, feedback and possible applications.

About

Documenting my work to create a 3d printer hotend that can change temperature within seconds by using inductive heating and possibly active nozzle cooling

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published