CreatBotKlipper/klippy/extras/temperature_mcu.py
zkk 520d4189f7 1、优化断料自动切头的问题, 2、kit版本的恢复打印报错问题, 3、优化温度相关的报错Squashed commit of the following:commit 248a4e48a0adb1c442199817f7b04ffdc9c66842
Author: zkk <1007518571@qq.com>
Date:   Fri Apr 18 08:47:41 2025 +0800

    优化关于温度的报警提示

    (cherry picked from commit f4afd87318f42e53fa235bc1b3062ceda9d5d8a7)

commit 4ea52d07b4819b5722e7a507286564ed430ea1b6
Author: ruipeng <1041589370@qq.com>
Date:   Tue Apr 15 13:52:09 2025 +0800

    修复Kit版机型的一处拼写错误

    (cherry picked from commit 42139a47dbf272a0ef24220cd533f4fc2e19ec1c)

commit 5ae49893586cf11c8aa9290ac61a0da0b4bda025
Author: ruipeng <1041589370@qq.com>
Date:   Wed Mar 19 16:50:29 2025 +0800

    修复D600pro2、D1000机型断料自动切头时,喷头偏移值未应用的问题

    (cherry picked from commit 58678be1f83d74ac0e3c2435ffb5d71078918f47)

commit af723d3cd06324379f24475ffd3e8a0a9c0b0a03
Author: zkk <1007518571@qq.com>
Date:   Fri Apr 11 11:16:20 2025 +0800

    优化D600Pro2HS和D1000HS的Z轴step脉冲信号脉宽为5微秒

    (cherry picked from commit d521dd26fa7c21a14e5a01f8ffd7bc491c3fe1af)

commit 661f3eae0fced22aa50ece4a7c367c78a16d183a
Author: ruipeng <1041589370@qq.com>
Date:   Fri Apr 11 10:02:20 2025 +0800

    修复开门检测机型暂停后点击恢复没反应的问题

    (cherry picked from commit d9500887ac6447bf541e44b36584cd9dfba51533)

commit 1ae7fc486f574caeb4dac108489032cd25ed4629
Author: zkk <1007518571@qq.com>
Date:   Thu Apr 3 13:53:03 2025 +0800

    解决D600Pro2HS更换z轴电机 解锁电机点击回零z轴下降距离不够的问题

    (cherry picked from commit 40ef648e4cdbc6b0bd9d679f46ee7766850afd88)

commit 764b9fe983b631e53d28f5ca75a5ea8151d931a0
Author: zkk <1007518571@qq.com>
Date:   Mon Mar 31 11:51:27 2025 +0800

    修改D600Pro2舵机收起的角度

    (cherry picked from commit 13552e128338c5b9ec414f3baef832a5c997c831)

commit 4cdbc006d3dda51c13ef9c2584b7d739e8dfb7cf
Author: ruipeng <1041589370@qq.com>
Date:   Mon Mar 31 09:32:57 2025 +0800

    实现开门检测功能

    (cherry picked from commit 82b7fc8acfdc61853da617e7d3e0bb83163f454b)

commit a0958a82ccfdcec3b32e4386a67e3389ae1660e3
Merge: e3d668e0e 724fa910c
Author: zkk <1007518571@qq.com>
Date:   Mon Mar 17 16:46:17 2025 +0800

    Merge commit '724fa910c5e20a6595fc41c2dfbe77effc9419ac' into release

commit 724fa910c5e20a6595fc41c2dfbe77effc9419ac
Author: ruipeng <1041589370@qq.com>
Date:   Thu Mar 6 10:40:29 2025 +0800

    修复D600Pro2和D1000机型,IDLE状态有其他操作后,再恢复打印温度不恢复问题

commit e3d668e0e54aceaf4a304f97485806bb2715e2bc
Merge: 2dabfbf08 a5955157d
Author: zkk <1007518571@qq.com>
Date:   Mon Mar 3 15:30:17 2025 +0800

    Merge commit 'a5955157dbf3088822e82998511a001d11b7b113' into release

commit a5955157dbf3088822e82998511a001d11b7b113
Author: ruipeng <1041589370@qq.com>
Date:   Wed Feb 26 16:34:11 2025 +0800

    修复F430NX二喷头安全距离错误,导致二喷头左边界不正确问题

commit bc36acddfcb47c2b2c71fd9fc48dab9b60ea541c
Author: ruipeng <1041589370@qq.com>
Date:   Wed Feb 26 16:29:01 2025 +0800

    优化探针收起动作,先降热床再收起探针

commit 2685ec1db9ccd559374a1cbdb673567fc9f59689
Author: ruipeng <1041589370@qq.com>
Date:   Wed Feb 26 16:28:18 2025 +0800

    修复全系取消打印时,z_offset保存不上的问题

commit 2dabfbf08816eafda51ba62b9a69d11801343952
Merge: fd1a6a37c aa375bcff
Author: zkk <1007518571@qq.com>
Date:   Fri Feb 14 15:29:11 2025 +0800

    Merge commit 'aa375bcff05744d5d2ab3fd352777abdfb59d35b' into release

commit aa375bcff05744d5d2ab3fd352777abdfb59d35b
Author: ruipeng <1041589370@qq.com>
Date:   Fri Feb 14 10:41:22 2025 +0800

    全系调整关闭舵机的延时,防止探针刮平台

commit 90aab9ebdc41917ea9ffadd9c09767090c3f4feb
Author: ruipeng <1041589370@qq.com>
Date:   Thu Feb 6 10:51:40 2025 +0800

    修复F430NX二头打印完成,停靠到指定位置时报错的问题

commit 2e214ce02ce915cb782ae44df300c33ef8929249
Author: zkk <1007518571@qq.com>
Date:   Thu Feb 6 09:33:50 2025 +0800

    修复零位舵机极小概率初始化角度不对问题

commit bda68396865757cdb5694b90f5268f6ace9ada7f
Author: zkk <1007518571@qq.com>
Date:   Fri Jan 17 15:55:14 2025 +0800

    修复设置舵机信号时长参数后,连续不停开关舵机 可能会造成出错的问题

commit fd1a6a37cc2149b4ff9f56609dc5f96d8882cb71
Merge: e2b26bb3f 440010b9c
Author: zkk <1007518571@qq.com>
Date:   Fri Jan 17 14:44:27 2025 +0800

    Merge commit '440010b9cbf57bf805ef93b43fc0947746235033' into release

commit 440010b9cbf57bf805ef93b43fc0947746235033
Author: zkk <1007518571@qq.com>
Date:   Fri Jan 17 14:32:11 2025 +0800

    增加舵机信号持续时间变量,优化零位舵机信号不持续发送

commit a15d96ff28c1f8e4a3a052f5ca9044d33d699900
Author: zkk <1007518571@qq.com>
Date:   Fri Jan 17 14:12:17 2025 +0800

    优化外置驱动的支持

commit fe7244707827bc5da4b0ac22d8016c67cb0bf025
Merge: c7326be18 32fc128f9
Author: zkk <1007518571@qq.com>
Date:   Fri Jan 17 11:05:04 2025 +0800

    Merge branch 'develop' of https://server.creatbot.com/Gitea/CreatBot/CreatBotKlipper into develop

commit 32fc128f991b4a336793a451da30273652b827f7
Author: ruipeng <1041589370@qq.com>
Date:   Fri Jan 17 10:42:44 2025 +0800

    修复F430NX停靠喷头与偏移值的计算逻辑

commit 75da8e8e634d4b65f1c8834421ae5638c7b479e0
Author: ruipeng <1041589370@qq.com>
Date:   Fri Jan 17 09:10:15 2025 +0800

    修复V0版机型T_fan逻辑问题

commit e2b26bb3fe3992b5f4eb25bffe9ea82c450cde7a
Merge: 3024b7666 c7326be18
Author: zkk <1007518571@qq.com>
Date:   Fri Jan 10 13:39:00 2025 +0800

    Merge commit 'c7326be1837eda161c5a13cfd3d00ea74b7d4753' into release

commit c7326be1837eda161c5a13cfd3d00ea74b7d4753
Merge: d0dcac451 9da7304dc
Author: zkk <1007518571@qq.com>
Date:   Fri Jan 10 13:38:31 2025 +0800

    Merge branch 'develop' of https://server.creatbot.com/Gitea/CreatBot/CreatBotKlipper into develop

commit d0dcac45196e9012caea32ee8099ee266f5777a2
Author: zkk <1007518571@qq.com>
Date:   Fri Jan 10 10:56:34 2025 +0800

    全系降低探测舵机的速度

commit 9da7304dc2911e3180e8fd92ef281dd9280ef289
Author: ruipeng <1041589370@qq.com>
Date:   Thu Jan 9 16:39:13 2025 +0800

    修复F430NX在DUAL模式下,耗材触发提示不准确的问题

commit ea3e219f503c3086fd13ff5e68ee57bc49b1e354
Author: ruipeng <1041589370@qq.com>
Date:   Thu Jan 9 10:09:21 2025 +0800

    1、修复F430NX断料自动切头时,喷头偏移值未应用的问题
    2、修复喷头一停靠位置不对的问题

commit 3024b76663d614ef8da0d0d5fcd0add3cdca4d39
Merge: 03d11a16b dda0962b9
Author: zkk <1007518571@qq.com>
Date:   Tue Jan 7 17:21:40 2025 +0800

    Merge commit 'dda0962b986d0c9d6a1a442f5c5ef63d151f5ef2' into release

commit dda0962b986d0c9d6a1a442f5c5ef63d151f5ef2
Author: ruipeng <1041589370@qq.com>
Date:   Tue Jan 7 16:40:43 2025 +0800

    修复F430NX回零后,切换喷头会报错的问题

commit 95d20c9b6357a444871ea9dce5f5ad35d74c1990
Author: ruipeng <1041589370@qq.com>
Date:   Tue Jan 7 16:33:54 2025 +0800

    1、修复F430NX触发耗材检测,喷头超时冷却,手动设置温度并装载耗材后,恢复打印时二头温度不恢复的问题。 2、修改等待温度恢复的提示内容

commit 2c2d0c7be12d6c497a1a479ec3aa08499f6bba0f
Author: ruipeng <1041589370@qq.com>
Date:   Tue Jan 7 16:33:31 2025 +0800

    优化F430NX驱动散热风扇启停逻辑

commit 3e5c530975dfa058be7db31c15116d46e6aaad84
Author: ruipeng <1041589370@qq.com>
Date:   Tue Jan 7 13:56:48 2025 +0800

    调整F30NX网床调平时探针提升的高度
    规避offset过大时未移动床即触发的报错

commit c7cb4b97c26c14806b1bbc131510f792ab15b66a
Author: ruipeng <1041589370@qq.com>
Date:   Thu Jan 2 17:57:20 2025 +0800

    全系添加_CANCEL_PRINT_BASE宏支持

commit 03d11a16b3edc1f440251420b1105d20872ebdd7
Merge: e052ab095 ba4f343e9
Author: zkk <1007518571@qq.com>
Date:   Tue Dec 31 17:28:20 2024 +0800

    Merge commit 'ba4f343e9430af5538610529dd400f1f954b0078' into release

commit ba4f343e9430af5538610529dd400f1f954b0078
Author: ruipeng <1041589370@qq.com>
Date:   Tue Dec 31 17:25:28 2024 +0800

    F430NX:Y驱动细分由128->64

commit e052ab0957f7991a78b90e9974ae07d60d266226
Merge: 25bc7c6d9 b2b98c057
Author: zkk <1007518571@qq.com>
Date:   Tue Dec 31 15:15:14 2024 +0800

    Merge commit 'b2b98c057a7d23f9c8b0aec4c14844f7c24d6bde' into release

commit b2b98c057a7d23f9c8b0aec4c14844f7c24d6bde
Author: ruipeng <1041589370@qq.com>
Date:   Tue Dec 31 10:56:18 2024 +0800

    F430NX状态灯功能

commit f3cdc1dd75d96f976502946e752e9f7831288469
Author: ruipeng <1041589370@qq.com>
Date:   Tue Dec 31 10:55:48 2024 +0800

    全系支持PRINT_START,PRINT_END宏

commit ecbde51331316e6c454c09d03d93c3337ae17d8a
Author: ruipeng <1041589370@qq.com>
Date:   Tue Dec 31 10:54:11 2024 +0800

    F430NX二喷头静音阈值由200->300

commit 40985b8d9a7a8e26fb3c448f0794dab82d866382
Author: ruipeng <1041589370@qq.com>
Date:   Tue Dec 31 10:53:55 2024 +0800

    f430NX增加驱动器散热风扇控制

commit 682e343d6176c1c0764a7befd12d7971374b2b29
Author: ruipeng <1041589370@qq.com>
Date:   Mon Dec 30 17:27:29 2024 +0800

    修复必须回零后才能取消打印的问题

commit e941884b8ec1d5aec058a6fdc2a2aa94f40bf8b5
Author: ruipeng <1041589370@qq.com>
Date:   Mon Dec 30 16:29:08 2024 +0800

    修复F430NX机型Y轴在零位时回零报错的问题

commit e2a9ff2bfe2f9d4971045ce6fbd6f9835cf6475a
Author: ruipeng <1041589370@qq.com>
Date:   Mon Dec 30 13:36:54 2024 +0800

    优化F430NX复制、镜像模式,解决坐标超范围问题

commit 4fe4b7f67dc4b09b67dfb930e3bae80a525e164f
Author: ruipeng <1041589370@qq.com>
Date:   Mon Dec 30 13:32:25 2024 +0800

    调整F430NX喷头二X电流,由1->1.5

commit f8f7aabbe226d987bea3ba9033569b12eb00f182
Author: zkk <1007518571@qq.com>
Date:   Fri Dec 27 17:15:17 2024 +0800

    关闭F430NX热风校验功能

commit 7f532dc1019ad4ade1992c835b925f162c80ba1a
Author: zkk <1007518571@qq.com>
Date:   Fri Dec 27 17:14:51 2024 +0800

    删除旧的设置offset宏定义

commit 34b6971b41e0b6a7bce978901404cec1e80b17a4
Author: ruipeng <1041589370@qq.com>
Date:   Fri Dec 27 15:29:04 2024 +0800

    修复自动切头开关逻辑,优化恢复打印弹窗内容

commit 765bc8dc22cad7f75f2d8d76f0add94dc0ab802a
Author: ruipeng <1041589370@qq.com>
Date:   Thu Dec 26 11:41:34 2024 +0800

    优化耗材检测弹窗内容及格式

commit 25bc7c6d9ee89e6cd4e326bb8497faf6a6256fcd
Merge: 588ea4402 9b487abec
Author: zkk <1007518571@qq.com>
Date:   Thu Dec 19 16:23:07 2024 +0800

    Merge commit '9b487abec3449dea3673618c1a8b9e88f16b4c40' into release

commit 9b487abec3449dea3673618c1a8b9e88f16b4c40
Author: ruipeng <1041589370@qq.com>
Date:   Thu Dec 19 16:03:04 2024 +0800

    F430NX更换为闭环Y电机

commit 641f767175387cacf9820affd616dcdb017590b9
Author: ruipeng <1041589370@qq.com>
Date:   Thu Dec 19 10:42:11 2024 +0800

    F430NX复制、镜像模式优化

commit ef148604da4f925305939e74cfb0edc7fbd261d1
Author: ruipeng <1041589370@qq.com>
Date:   Thu Dec 19 10:40:25 2024 +0800

    自动切头功能

commit fa74a82184caa6a914a32578b31aeb21f8299c7c
Merge: 9307b8957 93efb1abd
Author: zkk <1007518571@qq.com>
Date:   Wed Dec 18 15:53:46 2024 +0800

    Merge branch 'develop' of https://server.creatbot.com/Gitea/CreatBot/CreatBotKlipper into develop

commit 9307b89570a63040259b457ef7ff8969b394b527
Author: zkk <1007518571@qq.com>
Date:   Wed Dec 18 15:49:41 2024 +0800

    修复重启时候有概率出现温度数值异常的问题

commit 9925c7864471f1f9f7b1e22f45dc4d1421c1245a
Author: zkk <1007518571@qq.com>
Date:   Tue Dec 17 15:55:28 2024 +0800

    实现二喷头的偏移值校准功能

commit 93efb1abdea67a732b17351b8c31ae5387eaaf91
Author: ruipeng <1041589370@qq.com>
Date:   Fri Dec 13 09:55:41 2024 +0800

    配置网床调平淡出高度

commit 30b77165a7bdae2cd338c283fbab3c8baa37c694
Author: ruipeng <1041589370@qq.com>
Date:   Thu Dec 12 14:03:30 2024 +0800

    调整F430NX探测舵机角度,由90°->120°

commit 588ea4402812b09100b2417b040d7daa2d2fbfaa
Merge: 349f8f7a2 9be203c58
Author: zkk <1007518571@qq.com>
Date:   Thu Dec 12 10:39:56 2024 +0800

    Merge commit '9be203c58f7c88e4f6963a1079d2dcfaa5401dde' into release

commit 9be203c58f7c88e4f6963a1079d2dcfaa5401dde
Author: ruipeng <1041589370@qq.com>
Date:   Wed Dec 11 15:24:05 2024 +0800

    新增D600pro2、D1000的V0版机型

commit 349f8f7a249ac113700eed2b4a234473016d32c0
Merge: e554ddb83 401da556f
Author: zkk <1007518571@qq.com>
Date:   Fri Nov 29 10:21:01 2024 +0800

    Merge branch 'develop' into release

commit 401da556f58df5e917a379dd54565ef5775f7ed2
Merge: 508378825 52ea64cf8
Author: zkk <1007518571@qq.com>
Date:   Fri Nov 29 10:12:48 2024 +0800

    Merge branch 'develop' of https://server.creatbot.com/Gitea/CreatBot/CreatBotKlipper into develop

commit 52ea64cf83535c84c378239b43a7f0a6a362a517
Author: ruipeng <1041589370@qq.com>
Date:   Thu Nov 28 10:55:09 2024 +0800

    修复暂停掉温后,恢复时喷头温度不能恢复的问题

commit 508378825da2881043b88427a6df03230c9f66c0
Author: zkk <1007518571@qq.com>
Date:   Wed Nov 27 14:47:23 2024 +0800

    D1000 z轴最大速度设置成7

commit 41c2cd39275dfecafd85a0cbe504f2f5f1cdeec6
Author: zkk <1007518571@qq.com>
Date:   Mon Nov 25 17:12:23 2024 +0800

    优化热电偶最大报错次数

# Conflicts:
#	config/CreatBot_D1000/base.cfg   resolved by 248a4e48a0adb1c442199817f7b04ffdc9c66842 version
#	config/CreatBot_D1000_V0/base.cfg   resolved by 248a4e48a0adb1c442199817f7b04ffdc9c66842 version
#	config/CreatBot_D600Pro2/base.cfg   resolved by 248a4e48a0adb1c442199817f7b04ffdc9c66842 version
#	config/CreatBot_D600Pro2_V0/base.cfg   resolved by 248a4e48a0adb1c442199817f7b04ffdc9c66842 version
2025-04-22 17:47:26 +08:00

170 lines
7.9 KiB
Python

# Support for micro-controller chip based temperature sensors
#
# Copyright (C) 2020 Kevin O'Connor <kevin@koconnor.net>
#
# This file may be distributed under the terms of the GNU GPLv3 license.
import logging
import mcu
SAMPLE_TIME = 0.001
SAMPLE_COUNT = 8
REPORT_TIME = 0.300
RANGE_CHECK_COUNT = 8
class PrinterTemperatureMCU:
def __init__(self, config):
self.printer = config.get_printer()
self.base_temperature = self.slope = None
self.temp1 = self.adc1 = self.temp2 = self.adc2 = None
self.min_temp = self.max_temp = 0.
self.debug_read_cmd = None
# Read config
mcu_name = config.get('sensor_mcu', 'mcu')
self.temp1 = config.getfloat('sensor_temperature1', None)
if self.temp1 is not None:
self.adc1 = config.getfloat('sensor_adc1', minval=0., maxval=1.)
self.temp2 = config.getfloat('sensor_temperature2', None)
if self.temp2 is not None:
self.adc2 = config.getfloat('sensor_adc2', minval=0., maxval=1.)
# Setup ADC port
ppins = config.get_printer().lookup_object('pins')
self.mcu_adc = ppins.setup_pin('adc',
'%s:ADC_TEMPERATURE' % (mcu_name,))
self.mcu_adc.setup_adc_callback(REPORT_TIME, self.adc_callback)
query_adc = config.get_printer().load_object(config, 'query_adc')
query_adc.register_adc(config.get_name(), self.mcu_adc)
# Register callbacks
if self.printer.get_start_args().get('debugoutput') is not None:
self.mcu_adc.setup_minmax(SAMPLE_TIME, SAMPLE_COUNT,
range_check_count=RANGE_CHECK_COUNT)
return
self.printer.register_event_handler("klippy:mcu_identify",
self._mcu_identify)
def setup_callback(self, temperature_callback):
self.temperature_callback = temperature_callback
def get_report_time_delta(self):
return REPORT_TIME
def adc_callback(self, read_time, read_value):
temp = self.base_temperature + read_value * self.slope
self.temperature_callback(read_time + SAMPLE_COUNT * SAMPLE_TIME, temp)
def setup_minmax(self, min_temp, max_temp):
self.min_temp = min_temp
self.max_temp = max_temp
def calc_adc(self, temp):
return (temp - self.base_temperature) / self.slope
def calc_base(self, temp, adc):
return temp - adc * self.slope
def _mcu_identify(self):
# Obtain mcu information
mcu = self.mcu_adc.get_mcu()
self.debug_read_cmd = mcu.lookup_query_command(
"debug_read order=%c addr=%u", "debug_result val=%u")
self.mcu_type = mcu.get_constants().get("MCU", "")
# Run MCU specific configuration
cfg_funcs = [
('rp2040', self.config_rp2040),
('sam3', self.config_sam3), ('sam4', self.config_sam4),
('same70', self.config_same70), ('samd21', self.config_samd21),
('samd51', self.config_samd51), ('same5', self.config_samd51),
('stm32f1', self.config_stm32f1), ('stm32f2', self.config_stm32f2),
('stm32f4', self.config_stm32f4),
('stm32f042', self.config_stm32f0x2),
('stm32f070', self.config_stm32f070),
('stm32f072', self.config_stm32f0x2),
('stm32g0', self.config_stm32g0),
('stm32g4', self.config_stm32g0),
('stm32l4', self.config_stm32g0),
('stm32h723', self.config_stm32h723),
('stm32h7', self.config_stm32h7),
('', self.config_unknown)]
for name, func in cfg_funcs:
if self.mcu_type.startswith(name):
func()
break
logging.info("mcu_temperature '%s' nominal base=%.6f slope=%.6f",
mcu.get_name(), self.base_temperature, self.slope)
# Setup manual base/slope override
if self.temp1 is not None:
if self.temp2 is not None:
self.slope = (self.temp2 - self.temp1) / (self.adc2 - self.adc1)
self.base_temperature = self.calc_base(self.temp1, self.adc1)
# Setup min/max checks
adc_range = [self.calc_adc(t) for t in [self.min_temp, self.max_temp]]
self.mcu_adc.setup_minmax(SAMPLE_TIME, SAMPLE_COUNT,
minval=min(adc_range), maxval=max(adc_range),
range_check_count=RANGE_CHECK_COUNT)
def config_unknown(self):
raise self.printer.config_error("MCU temperature not supported on %s"
% (self.mcu_type,))
def config_rp2040(self):
self.slope = 3.3 / -0.001721
self.base_temperature = self.calc_base(27., 0.706 / 3.3)
def config_sam3(self):
self.slope = 3.3 / .002650
self.base_temperature = self.calc_base(27., 0.8 / 3.3)
def config_sam4(self):
self.slope = 3.3 / .004700
self.base_temperature = self.calc_base(27., 1.44 / 3.3)
def config_same70(self):
self.slope = 3.3 / .002330
self.base_temperature = self.calc_base(25., 0.72 / 3.3)
def config_samd21(self, addr=0x00806030):
def get1v(val):
if val & 0x80:
val = 0x100 - val
return 1. - val / 1000.
cal1 = self.read32(addr)
cal2 = self.read32(addr + 4)
room_temp = ((cal1 >> 0) & 0xff) + ((cal1 >> 8) & 0xf) / 10.
hot_temp = ((cal1 >> 12) & 0xff) + ((cal1 >> 20) & 0xf) / 10.
room_1v = get1v((cal1 >> 24) & 0xff)
hot_1v = get1v((cal2 >> 0) & 0xff)
room_adc = ((cal2 >> 8) & 0xfff) * room_1v / (3.3 * 4095.)
hot_adc = ((cal2 >> 20) & 0xfff) * hot_1v / (3.3 * 4095.)
self.slope = (hot_temp - room_temp) / (hot_adc - room_adc)
self.base_temperature = self.calc_base(room_temp, room_adc)
def config_samd51(self):
self.config_samd21(addr=0x00800100)
def config_stm32f1(self):
self.slope = 3.3 / -.004300
self.base_temperature = self.calc_base(25., 1.43 / 3.3)
def config_stm32f2(self):
self.slope = 3.3 / .002500
self.base_temperature = self.calc_base(25., .76 / 3.3)
def config_stm32f4(self, addr1=0x1FFF7A2C, addr2=0x1FFF7A2E):
cal_adc_30 = self.read16(addr1) / 4095.
cal_adc_110 = self.read16(addr2) / 4095.
self.slope = (110. - 30.) / (cal_adc_110 - cal_adc_30)
self.base_temperature = self.calc_base(30., cal_adc_30)
def config_stm32f0x2(self):
self.config_stm32f4(addr1=0x1FFFF7B8, addr2=0x1FFFF7C2)
def config_stm32f070(self):
self.slope = 3.3 / -.004300
cal_adc_30 = self.read16(0x1FFFF7B8) / 4095.
self.base_temperature = self.calc_base(30., cal_adc_30)
def config_stm32g0(self):
cal_adc_30 = self.read16(0x1FFF75A8) * 3.0 / (3.3 * 4095.)
cal_adc_130 = self.read16(0x1FFF75CA) * 3.0 / (3.3 * 4095.)
self.slope = (130. - 30.) / (cal_adc_130 - cal_adc_30)
self.base_temperature = self.calc_base(30., cal_adc_30)
def config_stm32h723(self):
cal_adc_30 = self.read16(0x1FF1E820) / 4095.
cal_adc_130 = self.read16(0x1FF1E840) / 4095.
self.slope = (130. - 30.) / (cal_adc_130 - cal_adc_30)
self.base_temperature = self.calc_base(30., cal_adc_30)
def config_stm32h7(self):
cal_adc_30 = self.read16(0x1FF1E820) / 65535.
cal_adc_110 = self.read16(0x1FF1E840) / 65535.
self.slope = (110. - 30.) / (cal_adc_110 - cal_adc_30)
self.base_temperature = self.calc_base(30., cal_adc_30)
def read16(self, addr):
params = self.debug_read_cmd.send([1, addr])
return params['val']
def read32(self, addr):
params = self.debug_read_cmd.send([2, addr])
return params['val']
def load_config(config):
pheaters = config.get_printer().load_object(config, "heaters")
pheaters.add_sensor_factory("temperature_mcu", PrinterTemperatureMCU)