<?xml-stylesheet type="text/xsl" href="https://community.element14.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>PID temperature controller for the EasyL1105 MSPM0 board - Pt. 1: framework</title><link>/technologies/embedded/b/blog/posts/pid-temperature-controller-for-the-easyl1105-mspm0-board</link><description>shabaz designed a development kit for the recent Texas Instruments MSPM0 microcontroller series. This 4 part blog series documents the steps to design a PID temperature controller. Part 1: the framework.
( post that ...</description><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title>RE: PID temperature controller for the EasyL1105 MSPM0 board - Pt. 1: framework</title><link>https://community.element14.com/technologies/embedded/b/blog/posts/pid-temperature-controller-for-the-easyl1105-mspm0-board</link><pubDate>Fri, 26 Sep 2025 16:22:02 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:5e09b869-6444-4d91-b48b-65a92a3d130c</guid><dc:creator>shabaz</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;Awesome work! Confirmed building with command line makefile, and also with Keil. Only minor issue is that gcc and keil need the&amp;nbsp;&lt;/p&gt;
&lt;p&gt;ti_msp_dl_config.c/h files copied from&amp;nbsp;Debug/syscfg into the same location as the other source files, but I&amp;#39;ll figure out a better solution for that later. I think it&amp;#39;s minor, that anyone who wishes to use gcc or Keil, can simply manually copy those two files across (or generate using the SysConfig tool).&lt;/p&gt;
&lt;p&gt;[View:/cfs-file/__key/commentfiles/f7d226abd59f475c9d224a79e3f0ec07-5e09b869-6444-4d91-b48b-65a92a3d130c/gcc_5F00_and_5F00_keil_5F00_folders.zip:320:180]&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve been investigating the thermistor, and have tried this code, to simulate a potential divider with the thermistor at the bottom and a fixed resistance at the top, and currently assuming 3.3V as a reference:&lt;/p&gt;
&lt;p&gt;[embed:dc8ab71f-3b98-42d9-b0f6-e21e02a0f8e2:806f48cc-879b-4108-86b3-4f98f27fec1a:type=python&amp;text=%23%20thermistor_simulate.py%0D%0A%23%20rev%201%20-%20shabaz%202025%0D%0A%23%20Simulate%20voltage%20output%20of%20a%20voltage%20divider%20using%20the%20following%0D%0A%23%20potential%20divider%20circuit%3A%0D%0A%23%20%20Vref%0D%0A%23%20%20%20%7C%0D%0A%23%20%20%20R1%0D%0A%23%20%20%20%7C%0D%0A%23%20%20%20%2B----%20Vout%0D%0A%23%20%20%20%7C%0D%0A%23%20%20%20Rt%20%28thermistor%29%0D%0A%23%20%20%20%7C%0D%0A%23%20%20GND%0D%0A%0D%0Aimport%20math%0D%0Aimport%20matplotlib.pyplot%20as%20plt%0D%0A%0D%0Avref%20%3D%203.3%0D%0Atemp_min%20%3D%200.0%0D%0Atemp_max%20%3D%20300.0%0D%0Acandidate_R1%20%3D%20%5B470%2C%201000%2C%202200%2C%203300%2C%204700%2C%2010000%2C%2022000%2C%2033000%2C%2047000%2C%20100000%5D%0D%0A%0D%0Adef%20calc_thermistor_resistance%28Tc%3A%20float%29%20-%3E%20float%3A%0D%0A%20%20%20%20%22%22%22%0D%0A%20%20%20%20Calculate%20resistance%20of%20Amazon%20NTC100K%20B3950%20thermistor%0D%0A%20%20%20%20at%20a%20given%20temperature.%20Amazon%20item%20was%3A%0D%0A%20%20%20%20Printer%20Heater%20Cartridge%20Heating%20Tube%20Heating%20Rods%20%0D%0A%20%20%20%2024V%2040W%20Ceramic%20Cartridge%20Heater%20Element%20for%20Ender%203%20S1%20Pro%0D%0A%20%20%20%20%22%22%22%0D%0A%20%20%20%20R0%20%3D%20100000.0%0D%0A%20%20%20%20T0%20%3D%2025.0%20%2B%20273.15%0D%0A%20%20%20%20B%20%20%3D%203950.0%20%20%20%20%20%20%20%20%23%20Beta%20value%0D%0A%20%20%20%20T%20%3D%20Tc%20%2B%20273.15%0D%0A%20%20%20%20R%20%3D%20R0%20%2A%20math.exp%28B%20%2A%20%281.0%2FT%20-%201.0%2FT0%29%29%0D%0A%20%20%20%20return%20R%0D%0A%0D%0Adef%20calc_voltage%28Rt%3A%20float%2C%20R1%3A%20float%29%20-%3E%20float%3A%0D%0A%20%20%20%20%22%22%22%0D%0A%20%20%20%20Calculate%20output%20voltage%20of%20a%20voltage%20divider%0D%0A%20%20%20%20with%20thermistor%20resistance%20Rt%20and%20fixed%20resistor%20R1%0D%0A%20%20%20%20%28R1%20is%20connected%20to%20Vref%2C%20Rt%20to%20ground%29.%0D%0A%20%20%20%20%22%22%22%0D%0A%20%20%20%20Vout%20%3D%20vref%20%2A%20Rt%20%2F%20%28R1%20%2B%20Rt%29%0D%0A%20%20%20%20return%20Vout%0D%0A%0D%0Adef%20calc_voltages%28R1%3A%20float%29%20-%3E%20list%5Bfloat%5D%3A%0D%0A%20%20%20%20%22%22%22%0D%0A%20%20%20%20Calculate%20output%20voltages%20for%20a%20range%20of%20temperatures%0D%0A%20%20%20%20using%20a%20given%20fixed%20resistor%20R1.%0D%0A%20%20%20%20%22%22%22%0D%0A%20%20%20%20voltages%20%3D%20%5B%5D%0D%0A%20%20%20%20for%20Tc%20in%20range%28int%28temp_min%29%2C%20int%28temp_max%29%2B1%29%3A%0D%0A%20%20%20%20%20%20%20%20Rt%20%3D%20calc_thermistor_resistance%28Tc%29%0D%0A%20%20%20%20%20%20%20%20Vout%20%3D%20calc_voltage%28Rt%2C%20R1%29%0D%0A%20%20%20%20%20%20%20%20voltages.append%28Vout%29%0D%0A%20%20%20%20return%20voltages%0D%0A%0D%0Adef%20plot_charts%28rlist%29%3A%0D%0A%20%20%20%20%22%22%22%0D%0A%20%20%20%20Plot%20voltage%20vs%20temperature%20for%20a%20list%20of%20candidate%20fixed%20resistors%20in%20rlist.%0D%0A%20%20%20%20%22%22%22%0D%0A%20%20%20%20plt.figure%28figsize%3D%2812%2C%208%29%29%0D%0A%20%20%20%20for%20R1%20in%20rlist%3A%0D%0A%20%20%20%20%20%20%20%20voltages%20%3D%20calc_voltages%28R1%29%0D%0A%20%20%20%20%20%20%20%20plt.plot%28range%28int%28temp_min%29%2C%20int%28temp_max%29%2B1%29%2C%20voltages%2C%20label%3Df%22R1%3D%7BR1%7D%CE%A9%22%29%0D%0A%20%20%20%20plt.title%28%22Thermistor%20Voltage%20vs%20Temperature%22%29%0D%0A%20%20%20%20plt.xlabel%28%22Temperature%20%28%C2%B0C%29%22%29%0D%0A%20%20%20%20plt.ylabel%28%22Voltage%20%28V%29%22%29%0D%0A%20%20%20%20plt.ylim%280%2C%20vref%29%0D%0A%20%20%20%20plt.xlim%28temp_min%2C%20temp_max%29%0D%0A%20%20%20%20plt.grid%28True%29%0D%0A%20%20%20%20plt.legend%28%29%0D%0A%20%20%20%20plt.show%28%29%0D%0A%0D%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0D%0A%20%20%20%20plot_charts%28candidate_R1%29%0D%0A%0D%0A%0D%0A]&lt;/p&gt;
&lt;p&gt;According to that, it looks like for the best performance in the 100-170 &amp;deg;C ballpark (where I think I need to be for the hot stamping to be effective), it is for a resistor of about 3.3k. Self-heating isn&amp;#39;t too bad, should be less than a degree error which seems pretty reasonable.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img alt=" " height="478" src="/resized-image/__size/1392x956/__key/commentfiles/f7d226abd59f475c9d224a79e3f0ec07-5e09b869-6444-4d91-b48b-65a92a3d130c/thermistor_2D00_chart.jpg" width="695" /&gt;&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=29244&amp;AppID=7&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: PID temperature controller for the EasyL1105 MSPM0 board - Pt. 1: framework</title><link>https://community.element14.com/technologies/embedded/b/blog/posts/pid-temperature-controller-for-the-easyl1105-mspm0-board</link><pubDate>Thu, 25 Sep 2025 19:15:30 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:5e09b869-6444-4d91-b48b-65a92a3d130c</guid><dc:creator>DAB</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Very good post Jan.&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=29244&amp;AppID=7&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: PID temperature controller for the EasyL1105 MSPM0 board - Pt. 1: framework</title><link>https://community.element14.com/technologies/embedded/b/blog/posts/pid-temperature-controller-for-the-easyl1105-mspm0-board</link><pubDate>Thu, 25 Sep 2025 19:02:18 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:5e09b869-6444-4d91-b48b-65a92a3d130c</guid><dc:creator>Jan Cumps</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Note to self:&amp;nbsp;&amp;nbsp;[mention:311efe63870c404db2a9a90c1f5d36b9:f7d226abd59f475c9d224a79e3f0ec07]&amp;nbsp;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;span&gt;A reactive PID system should aim for a little overshoot before settling down. Rule of thumb values are that P is roughly equal to I and D is roughly one quarter the value of I.&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;&lt;img src="https://community.element14.com/aggbug?PostID=29244&amp;AppID=7&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item></channel></rss>