Jump to content

temperature sensor setting for Ultimaker Original heated bed upgrade?


dbotos

Recommended Posts

Posted · temperature sensor setting for Ultimaker Original heated bed upgrade?

I recently purchased the heated bed upgrade kit for my Ultimaker Original. Hardware installation went fine, but now I'm having a problem with firmware/software. I have a direct-drive extruder, so it needs custom firmware to set steps per e correctly. I've been using Ginge's Marlin firmware builder to do that (http://marlinbuilder.robotfuzz.com/).

If I select the PT100 sensor (which made sense since the installation instructions for the heated bed mention plugging in the PT100 sensor), Cura thinks the bed is already at 70 °C when it's really at room temperature (~20 °C). I also tried the "Basic Ultimaker + heated bed (100k therm, relay driven)" option next to Templates, which chooses the sensor "100k thermistor - best choice for EPCOS 100k (4.7k pullup)", but that's even worse, showing the bed as 146 °C when only at room temperature.

What is the correct temperature sensor option for the heated bed upgrade (see attached list)? Do I need to tweak other settings elsewhere? The heated bed checkbox in Cura's Machine Settings is checked, so it definitely know there's one there (or else it wouldn't display bed temperature at all).

heated_bed_temperature_sensor_options.png.a23b0c27d23e4ac0c76a53590f1a5340.png

Thanks,

David

heated_bed_temperature_sensor_options.png.a23b0c27d23e4ac0c76a53590f1a5340.png

  • Link to post
    Share on other sites

    • Replies 72
    • Created
    • Last Reply

    Top Posters In This Topic

    Top Posters In This Topic

    Posted Images

    Posted (edited) · temperature sensor setting for Ultimaker Original heated bed upgrade?

    Hi David,

    You should use; "PT100 circuit found in the Ultimainboard V2.X".

    Have you checked the installation manual note on page 26?

    I've looked a little into this and think the problems seem to be in the Ginge's Marlin builder software, since you cannot deselect the "old" reference amplifier used for the "K-thermocouple", the AD595. This old temp ref is added to the new absolute temp sensor and make this error reading.

    I'll guess someone have a suggestion for this, but the best will be to have the software you're using updated to cope with this problem.

    The manual is here:

    https://ultimaker.com/en/resources/249-assembly-manual

    Thanks.

    Torgeir

    Edited by Guest
  • Link to post
    Share on other sites

    Posted · temperature sensor setting for Ultimaker Original heated bed upgrade?

    Thanks for the replies. I did not get email notifications, hence my late response.

    I tried the firmware builder in the link from gr5. I chose the "Ultimaker Original with HBK", which selects "The PT100 circuit found in the Ultimainboard V2.x" for heated bed temperature sensor. Inverted the extruder axis and that was all I changed. Uploaded new firmware and it thinks the bed is at 71 °C when at room temperature.

    I looked at the main board just now and it says Version 1.5.6. I purchased my machine back in March of 2012. I'm assuming the heated bed temperature sensor circuitry on the earlier board is different than the 2.x versions and the cause of the reading error.

  • Link to post
    Share on other sites

    Posted · temperature sensor setting for Ultimaker Original heated bed upgrade?

    heated bed upgrade kit should have included a little board that converts the temperature. Also you need to remove the 4.7k resistor on the bed sensor circuit if you had inserted one long ago. Actually the 4.7k resistor issue is common for many people who built their own heated beds. Make sure no one installed one on your 1.5.6 board.

  • Link to post
    Share on other sites

    Posted · temperature sensor setting for Ultimaker Original heated bed upgrade?

    Yup, got the little board installed as part of the kit. Here's what my main board looks like:

    UM_main_board_1_5_6.thumb.jpg.ce0269f641d6cf7e7a8115e90546a227.jpg

    Never modded the board at all.

    UM_main_board_1_5_6.thumb.jpg.ce0269f641d6cf7e7a8115e90546a227.jpg

  • Link to post
    Share on other sites

    Posted · temperature sensor setting for Ultimaker Original heated bed upgrade?

    Well something is wrong somewhere. At room temp the bed resistor should be about 108 ohms and the little board (not shown in picture) converts that to some voltage between 0V and 5V and sends that to this bigger board (shown). Something somewhere in that long path is broken. I don't know what parts to probe other than the 108 ohms.

  • Link to post
    Share on other sites

    Posted · temperature sensor setting for Ultimaker Original heated bed upgrade?

    PT100 sensor resistance, measured at the connector that plugs into the little board (with the connector unplugged) is 108.8 Ω at 73 °F [22.78 °C]. Theoretical value for a PT100 at this temperature is 108.86 Ω, so close enough considering the accuracy of the thermometer and multimeter.

    What can I check next? Any way to ping the Ultimaker from the computer for raw voltage of the temperature signal?

  • Link to post
    Share on other sites

    Posted · temperature sensor setting for Ultimaker Original heated bed upgrade?

    Looks like the PT100 comes in on J3 (2-pin) of the little board and the outgoing voltage to the main board is on J1 (3-pin):

    heated_bed_PCB_PT100_schematic_chunk.thumb.png.c8eb3da74670a335bb5bb6b7d599e720.png

    That INA826 (U1) is a Texas Instruments instrumentation amplifier (see formulas on right side):

    INA826_diagram.thumb.gif.e9fae1346341a6144f918c06b38609e6.gif

    If I've done my calculations correctly (assuming the capacitors act like opens at steady state), then the output voltage should be ~1.2 V at room temperature and ~1.4 V when the bed is at 70 °C:

    heated_bed_INA826_calcs.thumb.png.c50709297c34927a13f737af9d001942.png

    heated_bed_PCB_PT100_schematic_chunk.thumb.png.c8eb3da74670a335bb5bb6b7d599e720.png

    INA826_diagram.thumb.gif.e9fae1346341a6144f918c06b38609e6.gif

    heated_bed_INA826_calcs.thumb.png.c50709297c34927a13f737af9d001942.png

    • Like 2
    Link to post
    Share on other sites

    Posted · temperature sensor setting for Ultimaker Original heated bed upgrade?

    Hi dbotos,

    You did your calculation right... :)

    Next question, what is on the input side of the UMO board?

    If there have been just a thermistor input(no thermocouple), then this is even more interesting to investigate. :)

    Good job.

    Thanks

    Torgeir.

  • Link to post
    Share on other sites

    Posted · temperature sensor setting for Ultimaker Original heated bed upgrade?

    good work. So did you measure the voltage at J1 to see if it is indeed 1.2V and not 1.4V?

  • Link to post
    Share on other sites

    Posted · temperature sensor setting for Ultimaker Original heated bed upgrade?

    If it's the wrong voltage, check tp10 next to make sure that is 1.2V. If tp10 is correct and tp1 is wrong voltage then the problem is probably with the larger pcb. If both voltages are 1.4V then the problem is probably with the smaller pcb.

  • Link to post
    Share on other sites

    Posted · temperature sensor setting for Ultimaker Original heated bed upgrade?

    Little PCB's J1 connector reads 1.217 V across pins 1 and 3 where it goes into the board. Pin 1 (blue wire) is ground, pin 3 (red wire) is V_out. Tracing those same colors to the big board, I get the same voltage on the Temp 3 connector where it goes into the board. Looks like that is correct as measurement was taken with ambient a little above 20 °C.

    On the big board, that V_out goes into ADCH pin 3, which I'm assuming is the high side of an analog-to-digital converter. My main board does not have R4 installed:

    main_board_1_5_6_schematic_temp_3.thumb.png.1fe31e7c4a2a0770d5b71e07e0771cc6.png

    main_board_1_5_6_schematic_temp_3.thumb.png.1fe31e7c4a2a0770d5b71e07e0771cc6.png

  • Link to post
    Share on other sites

    Posted · temperature sensor setting for Ultimaker Original heated bed upgrade?

    Hi David,

    Great info. here! This mean the signal is going straight to the A/D converter, so it could(must) be a firmware issue. Cause here, R4 and the old type of thermistor is sending a voltage that is across of the thermistor directly to the A/D converter.

    Good investigation! :)

    Thanks.

    Torgeir.

  • Link to post
    Share on other sites

    Posted · temperature sensor setting for Ultimaker Original heated bed upgrade?

    I agree - it's most likely a firmware issue. Maybe you said this already - but where did you get your firmware? Ideally you want to get the latest Cura and tell it that you have a UMO (not UMO+) with the heated bed (maybe you chose umo+ by accident?). Then update the firmware. Or you can choose custom update and look through the choices.

  • Link to post
    Share on other sites

    Posted · temperature sensor setting for Ultimaker Original heated bed upgrade?

    I have Cura 15.04.5, which is latest non-beta. I have a custom direct-drive extruder, so I need custom firmware to invert that axis and tell it steps per e. I had used Ginge's Marlin builder prior to getting the heated bed kit. I also tried the bultimaker Marlin builder, but unfortunately, it doesn't have a choice for my situation, which is the following three elements:

    1) PT100 RTD heated bed temperature sensor

    2) Main board version 1.5.6 (it has one for 2.x main boards)

    3) No 4.7 kΩ pullup resistor (it has choices for PT100 with 4.7 kΩ and 1 kΩ pullups; no mention of main board version on those)

    So I think I either need to find a Marlin builder than can combine those three elements or I might have to build my own Marlin firmware (which I've never done before).

  • Link to post
    Share on other sites

    Posted (edited) · temperature sensor setting for Ultimaker Original heated bed upgrade?

    If you just swap two of the wires for one of the phases on the feeder stepper, it will change direction and the number of steps might be an easy one to handle in the firmware... or?

    Just a suggestion.

    Thanks.

    Torgeir.

    Edited by Guest
  • Link to post
    Share on other sites

    Posted · temperature sensor setting for Ultimaker Original heated bed upgrade?

    Yes. What @Torgeir said. You can adjust steps/mm from the control panel. Make sure you do a save or you will lose that value the next time you power up the printer. And if needed, to reverse an axis swap just two wires in the extruder connector (the two wires of either twisted pair).

    Source:

    http://reprap.org/wiki/Stepper_wiring#Motor_moving_the_wrong_direction

  • Link to post
    Share on other sites

    Posted (edited) · temperature sensor setting for Ultimaker Original heated bed upgrade?

    Hmm., maybe another one, find the X thermistor (the thermistor supposed to be used on your UMO back then) by using a resistance bridge to find zero deg. Celsius, then same method to find the resistance for the 100 deg. Celsius value.

    Those two temperatures are good calibration points to use when setting up your system.

    Armed with this numbers it might be easy to adjust the Rg "gain resistor" in order to match the actual value the firmware use for the key temperatures.

    Edit: You might need to adjust the offset for zero and the gain for 100 deg. Celsius.

    Should be possible as an alternative solution?

    Thanks

    Torgeir.

    Edited by Guest
  • Link to post
    Share on other sites

    Posted · temperature sensor setting for Ultimaker Original heated bed upgrade?

    I'm hoping I can do everything with the firmware and not have to mess with the hardware. The steps per e for the extruder and inversion of the extruder axis seem simple to change in the Marlin configuration.h file prior to compiling:

    #define DEFAULT_AXIS_STEPS_PER_UNIT {x,y,z,e} where x,y,z, and e are the steps per unit of that particular axis

    #define INVERT_E0_DIR true

    For the heated bed temperature sensor, it looks like it refers to a portion of the thermistortables.h file based on the chosen temperature sensor from a list of pre-defined sensors. I'm guessing it would be possible to make another choice and necessary data in the thermistortables.h file that works for my setup. I looked at the PT100 circuits in the 2.1.1 main board schematic (since one of the sensor choices in thermistortables.h is the PT100 circuit found in the 2.x main board) and it's just like the one on the little heated bed kit board - same flanking resistors and R_G. The V_out on the third PT100 circuit in the 2.1.1 schematic (assuming for heated bed, as first two should be for nozzle heaters) goes right to ADC10 with no pullup:

    2_1_1_main_board_temp_3.thumb.png.f7c0850fb928bb63ab7b13ba55ed9193.png

    If you look at the Temp 3 portion of the 1.5.6 main board schematic (posted earlier), it also goes to ADC10 (same as ADCH3) if no R4 present (which is the case on mine). So it seems like that choice should have worked when I was using the online firmware builders.

    Here's a link to the 2.1.1 main board electronics:

    https://github.com/Ultimaker/Ultimaker2/blob/master/1091_Main_board_v2.1.1_%28x1%29/Main%20Board%20V2.1.1.pdf

    2_1_1_main_board_temp_3.thumb.png.f7c0850fb928bb63ab7b13ba55ed9193.png

  • Link to post
    Share on other sites

    Posted · temperature sensor setting for Ultimaker Original heated bed upgrade?

    Yes the firmware is easy to mess with and build. In a nutshell there are instructions (broad but useful) in README file amont the firmware files. You get the firmware from github. Use ginge's website to get a Configuration.h file that is close to your final file (minimal editing).

  • Link to post
    Share on other sites

    Posted · temperature sensor setting for Ultimaker Original heated bed upgrade?

    I'll have to see what I can do with it. Is there any way to query the ADC pins from a computer via USB?

  • Link to post
    Share on other sites

    Posted · temperature sensor setting for Ultimaker Original heated bed upgrade?

    Hi David,

    I've been looking into this many times and think that it is the look up table for the thermistors that's in error. This table shall contain the "offset value" (the value at zero deg. Celsius, water with ice cubes that's stirred to keep mixture at zero) and the "gain value" (boiling water 100 deg. Celsius at sea level). PT100 offset value (at zero deg.) is 100 ohm, will give 1.111 volt output from the extra PCB in your heat bed kit.

    Actually, this table (in C) might be around some place I'm sure.

    OK. Good Luck.

    Torgeir.

  • Link to post
    Share on other sites

    Posted · temperature sensor setting for Ultimaker Original heated bed upgrade?

    Torgeir,

    I think you're right. My circuitry is functionally identical to what's in the 2.1.1 main board so the bed temperature sensor ID choice of "20" (PT100 circuit found in the Ultimainboard V2.x) should be correct.

    Here's what the sensor ID "20" section of thermistortables.h says:

     

    #if (THERMISTORHEATER_0 == 20) || (THERMISTORHEATER_1 == 20) || (THERMISTORHEATER_2 == 20) || (THERMISTORBED == 20) // PT100 with INA826 amp on Ultimaker v2.0 electronics/* The PT100 in the Ultimaker v2.0 electronics has a high sample value for a high temperature.This does not match the normal thermistor behaviour so we need to set the following defines */#if (THERMISTORHEATER_0 == 20)# define HEATER_0_RAW_HI_TEMP 16383# define HEATER_0_RAW_LO_TEMP 0#endif#if (THERMISTORHEATER_1 == 20)# define HEATER_1_RAW_HI_TEMP 16383# define HEATER_1_RAW_LO_TEMP 0#endif#if (THERMISTORHEATER_2 == 20)# define HEATER_2_RAW_HI_TEMP 16383# define HEATER_2_RAW_LO_TEMP 0#endif#if (THERMISTORBED == 20)# define HEATER_BED_RAW_HI_TEMP 16383# define HEATER_BED_RAW_LO_TEMP 0#endifconst short temptable_20[][2] PROGMEM = {{         0*OVERSAMPLENR ,       0     },{       227*OVERSAMPLENR ,       1     },{       236*OVERSAMPLENR ,       10     },{       245*OVERSAMPLENR ,       20     },{       253*OVERSAMPLENR ,       30     },{       262*OVERSAMPLENR ,       40     },{       270*OVERSAMPLENR ,       50     },{       279*OVERSAMPLENR ,       60     },{       287*OVERSAMPLENR ,       70     },{       295*OVERSAMPLENR ,       80     },{       304*OVERSAMPLENR ,       90     },{       312*OVERSAMPLENR ,       100     },{       320*OVERSAMPLENR ,       110     },{       329*OVERSAMPLENR ,       120     },{       337*OVERSAMPLENR ,       130     },{       345*OVERSAMPLENR ,       140     },{       353*OVERSAMPLENR ,       150     },{       361*OVERSAMPLENR ,       160     },{       369*OVERSAMPLENR ,       170     },{       377*OVERSAMPLENR ,       180     },{       385*OVERSAMPLENR ,       190     },{       393*OVERSAMPLENR ,       200     },{       401*OVERSAMPLENR ,       210     },{       409*OVERSAMPLENR ,       220     },{       417*OVERSAMPLENR ,       230     },{       424*OVERSAMPLENR ,       240     },{       432*OVERSAMPLENR ,       250     },{       440*OVERSAMPLENR ,       260     },{       447*OVERSAMPLENR ,       270     },{       455*OVERSAMPLENR ,       280     },{       463*OVERSAMPLENR ,       290     },{       470*OVERSAMPLENR ,       300     },{       478*OVERSAMPLENR ,       310     },{       485*OVERSAMPLENR ,       320     },{       493*OVERSAMPLENR ,       330     },{       500*OVERSAMPLENR ,       340     },{       507*OVERSAMPLENR ,       350     },{       515*OVERSAMPLENR ,       360     },{       522*OVERSAMPLENR ,       370     },{       529*OVERSAMPLENR ,       380     },{       537*OVERSAMPLENR ,       390     },{       544*OVERSAMPLENR ,       400     },{       614*OVERSAMPLENR ,       500     },{       681*OVERSAMPLENR ,       600     },{       744*OVERSAMPLENR ,       700     },{       805*OVERSAMPLENR ,       800     },{       862*OVERSAMPLENR ,       900     },{       917*OVERSAMPLENR ,       1000     },{       968*OVERSAMPLENR ,       1100     }};#endif

     

    Near the top of thermistortables.h is a line that says:

     

    #define OVERSAMPLENR 16

     

    So if we go back and plug that into the table, we get:

     

    0	03632	13776	103920	204048	304192	404320	504464	604592	704720	804864	904992	1005120	1105264	1205392	1305520	1405648	1505776	1605904	1706032	1806160	1906288	2006416	2106544	2206672	2306784	2406912	2507040	2607152	2707280	2807408	2907520	3007648	3107760	3207888	3308000	3408112	3508240	3608352	3708464	3808592	3908704	4009824	50010896	60011904	70012880	80013792	90014672	100015488	1100

     

    I'm assuming the first column is the digital value of the A-to-D converter and the second column is temperature in °C. If a digital zero (first row, first column) is equivalent to zero volts analog, then the table is saying a PT100 at 0 °C would read 0 Ω (which we know is not true - it's 100 Ω, as you said and is the namesake of the sensor).

    So the next question, in order to fix the table (assuming it's not calculating in some other offset elsewhere that I'm oblivious to), is what's the A-to-D conversion factor (i.e. if I have X volts analog going into the ADC, what do I multiply that by to get the digital value in that first column of the table)?

  • Link to post
    Share on other sites

    Posted · temperature sensor setting for Ultimaker Original heated bed upgrade?

    PT100 resistance values at various temperatures. I've been using the type 404 (third column) in my calculations:

    https://en.wikipedia.org/wiki/Resistance_thermometer#Values_for_various_popular_resistance_thermometers

  • Link to post
    Share on other sites

    Create an account or sign in to comment

    You need to be a member in order to leave a comment

    Create an account

    Sign up for a new account in our community. It's easy!

    Register a new account

    Sign in

    Already have an account? Sign in here.

    Sign In Now

    • Our picks

      • Introducing Universal Cura Projects in the UltiMaker Cura 5.7 beta
        Strap in for the first Cura release of 2024! This 5.7 beta release brings new material profiles as well as cloud printing for Method series printers, and introduces a powerful new way of sharing print settings using printer-agnostic project files! Also, if you want to download the cute dinosaur card holder featured below, it was specially designed for this release and can be found on Thingiverse! 
          • Like
        • 10 replies
      • S-Line Firmware 8.3.0 was released Nov. 20th on the "Latest" firmware branch.
        (Sorry, was out of office when this released)

        This update is for...
        All UltiMaker S series  
        New features
         
        Temperature status. During print preparation, the temperatures of the print cores and build plate will be shown on the display. This gives a better indication of the progress and remaining wait time. Save log files in paused state. It is now possible to save the printer's log files to USB if the currently active print job is paused. Previously, the Dump logs to USB option was only enabled if the printer was in idle state. Confirm print removal via Digital Factory. If the printer is connected to the Digital Factory, it is now possible to confirm the removal of a previous print job via the Digital Factory interface. This is useful in situations where the build plate is clear, but the operator forgot to select Confirm removal on the printer’s display. Visit this page for more information about this feature.
          • Like
        • 0 replies
    ×
    ×
    • Create New...