Welcome! Log In Create A New Profile


Notes on Pure Silver Heat Blocks and Platinum RTD's

Posted by rq3 
Notes on Pure Silver Heat Blocks and Platinum RTD's
January 23, 2022 12:04PM
Well, it's been interesting. I've been struggling for quite some time with both piss poor hardware and firmware.

First, the hardware:

My "research" printer is a grossly modified Anycubic Predator delta. About the only thing that is still stock on this machine is the motherboard, display, and power supply. The motherboard hosts an STM32F103ZE chip, but the implementation leaves a lot to be desired.

1) This chip has 3 internal 12 bit analog to digital converters. Only one is used for temperature measurements, with the bed and extruder multiplexed, alternately. This causes a lot of cross talk between the sensors as the ADC sample and hold capacitors try to settle between readings. This isn't too bad when the sensors are very similar, but all hell breaks loose when switching between a high impedance thermistor (bed sensor), and a low impedance platinum RTD (hot end).
2) The temperature sensor inputs are pulled up to Vref (3.3 volts) via 4.7k resistors, which is standard. There is also a 4.7k resistor in series with the sensor divider to "protect" the ADC input pins. This is about 10% of the pin's "native" input impedance, so creates a variable offset in the ADC result.
3) To really compound the issue, there is a "filter" capacitor, value unknown (the board is proprietary to its manufacturer, Chitu), on the ADC signal BEFORE the above mentioned current limiting resistor.

A 4.7k pull-up on a PT1000 platinum RTD yields an extremely constrained ADC input (0.658 volts over 0C to 500C), wasting most of the ADC range and leading to very poor resolution. A 1k pull-up is slightly better, at 0.784 volts, but still un-acceptable. The optimum pull-up, yielding the greatest swing, is about 1.7k (0.834 volts), and is not much better. 75% of the ADC potential is wasted.

The power supply on this printer is a 1KW, 24 volt, 40 amp switcher. It seems to be a nicely built and reliable unit, but like all switchers, it's noisy. Hanging 1000uF of low ESR tantalum on it helped. Alot. As in 1.5V P-P noise reduced to about about 50mV. I'm sure some of this leaked through the motherboard regulators, as the addition of the brute force tantalums went a long way towards stabilizing the ADC readings.


I use Marlin.

1) Until very recently, all Marlin ADC readings were done at 10 bits, and the thermistor tables are STILL 10 bit. These are legacies from earlier versions of Marlin, when it was not 32 bit capable and all micropressors had 10 bit A/D converters. The readings (but not the tables) have been corrected in the latest releases to 12 bit (thanks to me), with oversampling, but even this can't help with a limited ADC input range.
2) For platinum RTD's, Marlin offers a few choices of pull-up (4.7k and 1k), and a few amplifier choices, none of which are particularly appealing for various reasons.

The fixes:

1) I built an amplifier, based on information from Texas Instruments, that uses a PT1000 sensor and outputs precisely 0-3.3 volts over 0-500C. It also uses a small amount of positive feedback to linearize the output to within 0.031%.
2) I removed the 4.7k pull-up on the motherbaord, as it is no longer needed.
3) I removed the ADC input "filter" caps from the motherboard as they made the cross-talk issue much worse.
4) I run the amplifier from the same 3.3 volt motherboard bus that runs the ADC converters, AND provides the Vref for the ADC's. This makes the ADC ratiometric.
5) I created a custom thermistor table for the amplified signal, called thermistor_388 after the OPA388 amplifier I use. This thermistor table has only two entries because the amplifier output is extremely linear. ADC count 0 at 0C, and ADC count 1023 at 500C. Marlin interpolates and does its thing between those two points. Note that the use of Marlin's platinum sensor tables will never work correctly, as they invoke a maths subroutine during the compilation process that yields un-useable results (up to +/-20C temperature "jitter").
6) The board manufacturer tinned all of the stranded wires that were terminated in screw terminals. This is bad practice, and I fixed them.

The result:

1) I mounted my "standard" 24 volt, 40 watt heater and a PT1000 RTD in my pure silver heat block, and ran PID tuning at 300C.
2) The block heats from room temp (20C) to 225C in about 20 seconds. Interestingly, there is only one overshoot of about 5 degrees, and the temperature settles to within 1 degree within 45 seconds. Within 2 minutes, the temperature wanders only a few hundredths of a degree. This is completely unlike the standard aluminum heat block (which is identical in shape and size to the pure silver unit), which would "hunt" around the set-point, usually +/- 12 degrees, before finally settling within +/-0.5 degree after several (about 5) minutes.

It's been an interesting exercise, and I'm confident enough with the results to get back to mounting it all on the VDE extruder (Schnekenstruder) and doing some printing. And yes, a large HEPA filter, with an activated charcoal "post filter", seems to have tamed the severe allergy I had developed to PLA last year.
Re: Notes on Pure Silver Heat Blocks and Platinum RTD's
January 25, 2022 06:52PM
At 225C, the original aluminum block with a Marlin Type 5 thermistor sensor required about 10 watts to idle at temperature (about 0.4 amps).
Under the same conditions, but with a platinum sensor, same heater cartridge, the silver block requires about 4 watts (about 0.15 amps).

This I cannot explain. Mind you I'm not complaining. Never complain, never explain?

Temperatures plotted with Repetier Host. Temperatures confirmed with Fluke Type K thermocouple. Current measured with the same Fluke ammeter.

As an aside, the Marlin 2.0.9 full release I have been running up to now throws a Max Bed Temp Error under these conditions. I surmise that this is due to the %$&^@ way that Marlin implements ADC readings, which have changed recently. It compiled and loaded fine, even with my custom "thermistor" file, but the printer itself complained at start-up.

The latest bugfix works fine. So far.

Edited 1 time(s). Last edit at 01/25/2022 06:54PM by rq3.
Re: Notes on Pure Silver Heat Blocks and Platinum RTD's
January 26, 2022 04:17AM
At 225C, the original aluminum block with a Marlin Type 5 thermistor sensor required about 10 watts to idle at temperature (about 0.4 amps).
Under the same conditions, but with a platinum sensor, same heater cartridge, the silver block requires about 4 watts (about 0.15 amps).

This I cannot explain.........

Some of the difference can be accounted for by the different emissivity of a polished surface versus a matt surface. Some work I did in the past with similar(ish) size parts and temperatures showed about 10ยบ difference between mirror finish aluminium vs matt aluminium. Another portion could be less disruption to air convection around the silver block - smoother finishes hold on to a thicker layer of still air than rough or lumpy layers.
A 4 to 1 difference in power still seems a bit of a stretch: Could it be that ambient temperature and fans also contributed?


......... Never complain, never explain?..........

Hmmm! Amongst the few pleasures left are complaining and mansplaining geeksplaining

Re: Notes on Pure Silver Heat Blocks and Platinum RTD's
January 27, 2022 05:01PM
Very good points, Mike. I'm currently printing with the entire assembly (with my HEPA and charcoal filters inplace), and everything seems to be going swimmingly. I probably won't pursue the physics of any differences to any great degree, but file away any comments for future consideration.

So far, my one major take-away from this entire series of projects is that diamond nozzles are the cat's meow. The ironing surface of the nozzle is highly polished, and it shows in the print. Plus, the diamond sheds plastic like a fried egg on a Teflon pan.

And the diamond has no negative effect on the bed when actuating the TAP-350 piezo sensor for calibration and leveling. I'm sure you could really screw up and engrave any bed with the diamond nozzle, and I've tried to do so in a "controlled" fashion. The polished diamond tip basically just skates over the surface of the bed, even if its pressed with several kilos of force.

Maybe a new bed leveling technique? Use the nozzle to skim cut the bed. Then you KNOW the bed is flat and level. Just kidding...or am I? Yes, I am.

Edited 2 time(s). Last edit at 01/28/2022 06:19PM by rq3.
Sorry, only registered users may post in this forum.

Click here to login