MartinDejmal / PrusaCupHeater

Simple module-based project aiming to utilize spare heat bed tiles from Prusa XL 3D printer.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

PrusaCupHeater

PrusaCupHeater is a project aiming to utilize spare / waste heatbedlets (heat bed tiles) from Prusa XL printer.

The ultimate objective was to build a cup heater that can be powered from USB-C PD power supply and connected to Home Assistant.

Required parts

  • Prusa XL Heat Bed Tile (obviously)
  • Wemos D1 Mini ESP8266 module (or similar)
  • DS18B20 temperature sensor (or any alternative)
  • power MOSFET/PWM breakout board
  • USB-C PD Trigger with 20V out support
  • DC-DC step-down converter (at least 24V input, 5V output)
  • optional: 3 LED strip WS2812B
  • 3D Printed box

Purchase links

Component/Module CZ International
Prusa XL Heatbed tile prusa3d.com
Wemos D1 Mini laskakit.cz, pajenicko.cz Aliexpress
DS18B20 temp sensor laskakit.cz, pajenicko.cz Aliexpress
MOSFET module laskakit.cz Aliexpress
USB-C PD trigger laskakit.cz
DC-DC Step-down converter laskakit.cz, pajenicko.cz Aliexpress
WS2812 LED strip (60 LED/m; 3 LEDs total) laskakit.cz, pajenicko.cz

Assembly instructions

  • wire up the modules following way:
    • DS18B20 to pin D7 on Wemos D1, glue the sensor to the bottom of the heat bed tile
    • power MOSFET module to pin D1 on Wemos D1
    • (optional) WS2812 to pin D6 on Wemos D1
  • jumper the USB-C trigger to output 20V
    • wire 20V out from the PD trigger into the MOSFET switching part
    • connect power pins from MOSFET trigger into the heat bed tile

Firmware instructions

  • flash tasmota-sensors into the Wemos D1, you can use Tasmota Web Installer
  • apply following template:
    • without WS2812 {"NAME":"PrusaCupHeater","GPIO":[0,0,0,0,0,224,0,0,0,1312,0,0,0,0],"FLAG":0,"BASE":18}
    • with WS2812 {"NAME":"PrusaCupHeater","GPIO":[0,0,0,0,0,224,0,0,1376,1312,0,0,0,0],"FLAG":0,"BASE":18}

Home Assistant configuration

Prerequisite: Tasmota integration working with MQTT server

  • if you want to control the Cup Heater via Home Assistant, you need to define a thermostat
  • open your configuration.yaml and add following:
  climate:
    - platform: generic_thermostat
      unique_id: prusa_cup_heate
      name: PrusaCupHeater
      heater: switch.tasmota_2
      target_sensor: sensor.tasmota_ds18b20_temperature
      min_temp: 40
      max_temp: 120

Replace switch.tasmota_2 and sensor.tasmota_ds18b20_temperature by relevant heater switch and temperature sensors entities in your setup.

  • change Logging interval on your Tasmota to lowest possible value (10s) - Configuration -> Configure Logging -> Telemetry Period

Standalone operation configuration

It is possible to enable simple heating control using Tasmota Rules. To do this, open Tasmota Console and create two rules by entering following commands:

  • Rule1 ON Tele-DS18B20#Temperature<55 DO Power1 1 ENDON
  • Rule2 ON Tele-DS18B20#Temperature>65 DO Power1 0 ENDON
  • enable the rules using following commands:
    • Rule1 1
    • Rule2 1
  • if you have WS2812 add third rule to light it up when heating is active:
    • Rule3 ON Power1#State=1 DO Power2 1 ENDON ON Power1#State=0 DO Power2 0 ENDON
    • enable the rule: Rule3 1
  • to make it update correctly change Logging interval on your Tasmota to lowest possible value (10s) - Configuration -> Configure Logging -> Telemetry Period

You can adjust target temperature and temperature hysteresis limits as per your requirements. The setup described above has target 60°C while allowing +/-5°C hysteresis. Note: berry scripting is not supported on ESP8266 devices.

To do list

✅ include WS2812b LED strip control

✅ add berry script for autonomous operation

🔲 add pictures to the description

🔲 add wiring diagram

🔲 add touch sensor to control operation

🔲 add 128x32 OLED display with temperature and status reading

🔲 add cup presence detection

About

Simple module-based project aiming to utilize spare heat bed tiles from Prusa XL 3D printer.