Displaying chamber temp with M105 on Prusa MK3S

Hello there!

TL;DR: I modified the Prusa-Firmware repo to show the chamber temp using a third thermistor and the firmware changes can be found here

Background
Ever since I installed Octoprint and noticed the chamber temperature I though "I have a chamber! I should be able to show that temperature here!". I never managed to do it though and the idea died - until recently!

It was reborn when I had to replace my hotend and noticed that only 2 of the 3 thermistor connectors were in use. As the thermistor from the old hotend was still intact I though this must be usable.

The following section described in breife the changes that were made to the repository

Method
So I started grepping in the Prusa-Firmware repo and modified the following files

  • pins_Einsy_1_0.h
  • temperature.h & temperature.cpp
  • Marlin_main.cpp

Configuration file for MK3 pins_Einsy_1_0.h where all the pins are defined. No new pins needed to be added as TEMP_1_PIN was already defined correctly. A new macro was created as #define CHAMBER_THERMISTOR to switch on or off all the following changes

In the temperature files the most changed, new functions and variables and function declarations were added to the .h file basically copies of the corresponding entities for the bed temperature. The functions written in .cpp were also, basically copies of the corresponding functions for the bed temperature.

In Marlin_main.cpp the command M141 was added accoding to the definition on marlinfw. However, it does not yet do anything as no actuator is related to the chamber temperature. The most critical change here was to add 'T:' to the message sent by M105 (Report temperatures), this change is what makes it possible to show the temperature at all. It should be noted that the ambient temperature sensor could likely be used in much the same way as the third thermistor was implemented but by just adding it to this message.

Result
After the modifications the chamber temperature can now be seen on the main screen of Octoprint together with the hotend and bed temperatures

The results in full can be seen in my MK3 repo where a working implementation can be found, based on the latest firmware release.

Future work
The next step would be to add either just a vent or a vent and a fan to regulate the temperature. It might also be possible to move forward with a heater solution to increase the temperature.

Keywords: Heated Chamber, Thermistor, MK3 Firmware

3 Likes

So if I understand you correctly i only need to add a thermistor to the enclosure, wire it appropriately and add those command lines?

Yes, that is the expected outcome. However, I haven't rebased this change so there are no guarantees if you're running a more up to date firmware. If you do run into problems, write a new comment and I'll look into it