Skip to content

JeremyLaurenson/octoprint-emc2101

Repository files navigation

OctoPrint-Emc2101

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:

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.

PluginDiagram

Screen Shot 2022-03-05 at 11 08 22 AM

Screen Shot 2022-03-19 at 8 53 05 AM

Screen Shot 2022-03-05 at 11 08 15 AM

This Octoprint plugin is for use with a Raspberry Pi connected to an Adafruit EMC2101 fan control board in simple mode:

4808-04

Basic Hardware

This plugin controls an Adafruit EMC2101 board: https://www.adafruit.com/product/4808

pcb

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

Multi Fan Hardware

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

complex

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 IMG_5148

adafruit_products_image-2

Adding Adafruit MCP9808 Precision I2C Temperature Sensor

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:

adafruit_products_MCP9808_top_header

Screen Shot 2022-04-01 at 8 08 19 AM

Setup

Install via the bundled Plugin Manager or manually using this URL:

https://github.com/JeremyLaurenson/OctoPrint-Emc2101/archive/main.zip

Configuration

Each EMC2101 reports back temperature and fan speed, and can be set to whatever power you need.

Screen Shot 2022-03-02 at 9 11 16 AM

Tab View

Screen Shot 2022-03-02 at 9 12 41 AM