whatisgithub

What is dragonbreath?

plastikman/dragonbreath — explained in plain English

Analysis updated 2026-07-26

8CAudience · developerComplexity · 4/5Setup · hard

In one sentence

Replacement open-source firmware for a 3D printer chamber heater, letting you control temperature and drying cycles from a web browser or Klipper, with built-in hardware and software safety cutoffs.

Mindmap

mindmap
  root((repo))
    What it does
      Warms printer chamber
      Open-source firmware
      Part of OpenVent family
    Control options
      Local web portal
      Moonraker and Klipper
      Front-panel buttons
    Safety features
      Hardware thermal fuses
      Software cutoffs
      Communications watchdog
    Use cases
      Manual temperature control
      Follow bed temperature
      Filament drying cycles
    Tech stack
      C language
      HTTP JSON API
      Touch web interface

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Set a manual chamber temperature for your 3D printer from a browser.

USE CASE 2

Automatically have the chamber heater follow the printer bed temperature.

USE CASE 3

Run a timed drying cycle to remove moisture from filament using material presets.

USE CASE 4

Embed the heater control panel directly inside Fluidd or Mainsail dashboards.

What is it built with?

CJSONHTTPMoonrakerKlipper

How does it compare?

plastikman/dragonbreathgregordinary/rocket-userspacegrieferpig/esp32-s31-linux
Stars888
LanguageCCC
Setup difficultyhardhardhard
Complexity4/55/55/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1h+

Requires flashing custom firmware onto hardware and reading safety documentation before operating the heater.

So what is it?

DragonBreath is open-source firmware for the BIGTREETECH Panda Breath, a small heater used to warm the chamber around a 3D printer. The stock firmware on this device is closed, so this project replaces it with open code you can read, modify, and audit yourself. It is part of a broader family called OpenVent, which shares common building blocks across several BTT Panda products. Instead of reimplementing everything from scratch, the author lifted the shared parts, like WiFi setup, the web portal, and Moonraker connectivity, from the sibling OpenVent project and renamed them for this device. The firmware lets you control the heater through a local web page served by the device itself, or through Moonraker and Klipper, the popular open-source 3D printer control stack. You can set a manual temperature, let the chamber target follow the printer's bed temperature automatically, or run a timed filament-drying cycle with presets for different materials. A settings page exposes safety limits, a communications watchdog, and sensor calibration. The interface is touch-friendly, works in light or dark themes, and can be embedded in dashboards like Fluidd or Mainsail. Four front-panel buttons and four status LEDs provide direct on-device control and feedback. The buttons handle mode switching with short presses, a two-second hold triggers a panic-off, and long presses can clear faults. The LEDs show power status and which mode is currently active, with slow blinks when the device is armed but waiting. Safety is treated seriously. Two independent hardware over-temperature cutoffs, a bonded thermal fuse and the self-limiting physics of the PTC heater, bound worst-case failure to roughly the stock firmware's ceiling, and these cannot be defeated by a software bug. The firmware adds software cutoffs and a watchdog on top. The README stresses reading the safety documentation before touching heater code and supervising early runs. The HTTP control API on port 80 exposes JSON endpoints for reading state, streaming events, sending commands, and updating firmware. Mutating requests require a custom authentication header, which prevents ordinary web pages from silently driving the heater. The author notes this is CSRF hardening for a trusted local network, not full transport encryption. The full README is longer than what was shown.

Copy-paste prompts

Prompt 1
I have DragonBreath firmware installed on my BIGTREETECH Panda Breath. Write a Python script that reads the current heater state from the local JSON API on port 80 and prints the current temperature and active mode.
Prompt 2
Help me configure Moonraker to connect to my DragonBreath-controlled Panda Breath heater so I can manage chamber temperature from my Klipper dashboard.
Prompt 3
I want to add a custom filament-drying preset to DragonBreath. Show me where in the firmware code the drying cycle presets are defined and how to add a new one for PETG at 65C for 6 hours.
Prompt 4
Generate an HTTP request with the correct custom authentication header to send a command to the DragonBreath API that sets the chamber target temperature to 40 degrees Celsius.

Frequently asked questions

What is dragonbreath?

Replacement open-source firmware for a 3D printer chamber heater, letting you control temperature and drying cycles from a web browser or Klipper, with built-in hardware and software safety cutoffs.

What language is dragonbreath written in?

Mainly C. The stack also includes C, JSON, HTTP.

How hard is dragonbreath to set up?

Setup difficulty is rated hard, with roughly 1h+ to a first successful run.

Who is dragonbreath for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.