This plugin uses Adafruit STEMMA QT / Qwiic based boards to allow you to easily connect up to 9 temperature sensors and/or fan controllers to your Raspberry Pi in order to control your printer enclosure with zero soldering. Note that I found the shim to not be as reliable as the HAT listed below:
- Raspberry Pi Hat: https://www.adafruit.com/product/5142 or Shim: https://www.adafruit.com/product/4463
- Cables to connect them: https://www.adafruit.com/?q=STEMMA+QT+CABLE&sort=BestMatch
- Combo Fan Controller+Temp Sensors: https://www.adafruit.com/product/4808
- High Accuracy Temp Sensors: https://www.adafruit.com/product/5027
- 8 Port Mux: https://www.adafruit.com/product/4704
These components can be sourced elsewhere, and so long as youre using the base chips such as the EMC2101 etc you can even use 3rd party boards.
Plug your HAT/Shim onto the Raspberry Pi and you get a connector that you can plug in either a fan/temp controller OR just a high accuracy temperature sensor into.
If you need more than one, then use the 8 Port Mux to break out that single cable into 8 cables, each connected to a fan/temp controller AND/OR a high acuracy temperature sensor. If you have a Fan+High accuracy sensor, this plugin with "prefer" the high accuracy sensor for the temperature readings.
This Octoprint plugin is for use with a Raspberry Pi connected to an Adafruit EMC2101 fan control board in simple mode:
This plugin controls an Adafruit EMC2101 board: https://www.adafruit.com/product/4808
Board to Raspberry Pi Connections:
*Connect Adafruit EMC2101 board VIN (red wire) to Raspberry Pi 3V pin *Connect Adafruit EMC2101 board GND (black wire) to Raspberry Pi GND *Connect Adafruit EMC2101 board SCL - Serial Clock - (yellow wire) to Raspberry Pi SCL *Connect Adafruit EMC2101 board SDA - Serial Data - (blue wire) to Raspberry Pi SDA
Board to 4 Pin PWM Fan connections:
*Connect board FAN (blue wire) to fan PWM input *Connect board TACH (green wire) to fan Tach output
Fan Power connections: *Connect the fan power source positive to Fan V+ input *Connect the fan power source ground to Fan V-/GND input *Connect the fan power source ground to Raspberry Pi GND
It is very important to wire up the MUX and Controllers exactly as shown. When I tried to dasiy chain and that sort of thing, it did not work.
This plugin controls up to 8 Adafruit EMC2101 boards: https://www.adafruit.com/product/4808 using a SparkFun or Adafruit TCA9548A Mux: https://www.adafruit.com/product/4704
The internal temperature sensor is accturate to 1 degree but does not report back any finer detail than 1 degree. You may want to use an external temperature sensor diode if you want to make this more accurate or place the temp sensor exactly where you want it.
The board's DN and DP are for the diode Negative and Positive terminals respectively. Using a 2n3904 Transistor connected you can get more than just the one degree steps from the 2101 as shown below. You can find detail on what diodes to use and their accuracy on the 2101 site here: https://www.microchip.com/en-us/product/EMC2101#document-table
The 9808 Temperature sensor is a more accurate sensor still than the external 2101 sensor. It's accuracy is 0.25°C over -40°C to 125°C range (0.5°C guaranteed max from -20°C to 100°C) In order to use this sensor, simply plug it onto the 2101 as a daisy chained device, or put it in standalone if you dont need the fan speed:
Install via the bundled Plugin Manager or manually using this URL:
https://github.com/JeremyLaurenson/OctoPrint-Emc2101/archive/main.zip
Each EMC2101 reports back temperature and fan speed, and can be set to whatever power you need.