This is an automated heating system for the Original Prusa Enclosure.
The idea is to get the enclosure to the temperatures needed for good quality prints (40-45°C) with technical materials like PA11 / PC / ABS / ASA faster. Especially in the cold months, my printer alone isn't able to reach these temperatures, especially not in a reasonable amount of time.
The system consists of a 200W heater with a fan, a display with buttons to set a target temperature and to control the system, an electronics-box, an external powersupply and a “flap” moved by a servo to be able to remove heat from the enclosure.
All parts are mounted in or on the Original Enclosure.
The flap can be opened and closed - while open, the fan can blow air out of the enclosure to reduce the temperature inside. When it's closed it functions as a curved wall to redirect the airflow in the center of the enclosure.
Total cost is less than 100€ to build, which can be done in a few hours.
There are two main operating modes: Heating and cooling.
While in heating mode, the servo closes the flap and the heater and fan turn on. The air gets heated and evenly circulated in the enclosure.
When cooling mode is used, the servo opens the flap, the fan turns on but the heater stays off - that way the warm air inside the enclosure gets pushed outside the enclosure so it can stay near room temperature.
There are two more modes (fan and idle), more details are below.
To control the system, there is a display unit with three buttons (+, - and o) placed in the top left corner of the enclosure. The display shows the target temperature, which can be changed with the + and - buttons, the temperature of a probe inside the enclosure and the temperature of the air coming out of the heater. The latter is used to turn off the heater if it should get so hot that the flap could melt.
Please note that this system cannot cool below room temperature, it's just able to remove heat from the enclosure by replacing it with room-temperature air.
The electronics are kept as basic as possible.
Parts-list, including some example links:
Note: there's a level converter for the display. If you need one depends on the exact display you're using - some have onboard level converters, some don't. My display did not work with 5V logic, so I had to use one.
The schematic shows every component except the relay modules and the step down converter.
I'll include the Fritzing file, should you need it.
The debouncing of the buttons is done in hardware by a 0.1uF capactitor, because I've had good experiences with this solution and it reduces the complexity of the software for basically free.
As mentioned earlier, everything is attached to the Original enclosure itself, as its modding capabilities allow for easy attaching and cable routing.
Since Prusa released STEP-files of the enclosure recently, but not a complete assembly, I rebuilt the whole enclosure in Fusion360 as assembly (Printables link) so I could easily model the parts to exactly fit the enclosure.
Assembling the whole system is actually pretty easy, the hardest part is a bit of soldering.
Because I do not expect anyone to replicate this thing exactly the same way, mainly because parts availability (especially the heater/fan-combo) varies greatly around the world, I won't provide exact instructions for building but some GIFs that show the underlying process.
To begin you will need to print all needed parts. As you probably have to change some parts to fit your exact needs, go ahead and download either the full assembly as Fusion project or STEP file or the single part you need.
The button board needs to be made by you, the schematic can be seen above.
Because it's hard to make good schematics for breadboards, I made a complete model of the board in Fusion. You can either use the pictures here or download the full fusion model (or STEP) so you can easily see what to solder where.
In the model, the color-coding of the wires is:
In the following picture, the board is turned around, so you can see both sides exactly as you would see them in reality at once. The 3 grey rectangles are solder bridges, which you need to make.
I started by assembling the display-unit. Solder your buttons to your PCB, the space in my design fits the buttons, the PullUp resistors and the debouncing capacitors snugly but easily. Remember routing your signal cables out of the unit. Also solder the signal and power wires to the display and route the cables as well.
To assemble the box I prepared holes for M3 hot melt inserts, so that the backside can be screwed on nicely.
Also, I printed the text on the front in a different color (see above) so it looks nice - but this is completely optional.
Additionally, the design intends for two M3 nuts to be pressed into the plastic, which I forgot to include in the animation…
The idea is the same as before, the backside gets screwed into 4x M3 hotmelt inserts. I won't go into detail regarding soldering here, as your setup will most likely vary.
Try to be smarter than me and route the cables through the hole before soldering, otherwise you have to either cut a slot into the box or resolder some stuff. I may or may not had to cut a slot into mine…
At this point this should be self-explanatory. The special part here is the connection between the lower screw in the flap and the servo. I designed an adapter that gets glued onto the servo (because they are so cheap that I think it's okay to permanently attach it…) and that fits into the hex-head of the screw perfectly, so that the torque can be transferred. If you don't like this design, there is a remix with a slightly different design of the flap with a different way to connect to the servo.
To make the installation easier, the bottom slot on the hinge is, well, a slot and not just a hole. This way you can screw into the flap, adjust the length that sticks out, glue the adapter on the servo, insert the screwhead into the adapter and then slot the whole assembly into the hinge.
After that, you can mount the servo with its screws and then mount everything into the backside window.
The heater gets screwed on as shown in the GIF. Please note that in the animation there is a very small part - the holder for the temperature probe in front of the heater - that I forgot to include. You can see the part and the sensor in the picture above.
Mounting the PSU is easy. I highly recommend going with a good model, like one from MeanWell with overcurrent-, short circuit and temperature protection. They are not too expensive but will potentially save your electronics in case of a fault.
When screwing the holders to the PSU itself, follow the manufacturerers rules on maximum screw length!
For mounting the PSU to the enclosoure I used M3x12 screws and M3 nuts and washers on the inside.
After installing every part, you can begin sleeving the cables and routing them through the enclosure. There is no right way to do it, just route everything so that there's no interference with anything in your specific setup.
In the animation at the very top you can see how I routed my cables.
The cablesleeve can be attached with zipties to the enclosure frame.
I wrote software for the Arduino which acts as a simple user interface for controlling the system.
When starting up, the system is in idle state doing nothing but closing the vent once.
Pressing the middle button will cycle through the 4 currently implemented modes:
Closes the vent, starts the heater and fan and heats the enclosure to the set temperature. You can set the temperature with the upper (+) and lower (-) buttons by changing it in 5°C (customizable) steps. The maximum temperature that can be set is 45°C.
When the target temperature is reached, the heater and fan will turn off. They will turn on again, if the temperature inside the enclosure is 2-3°C below the the target.
Opens the vent and starts the fan to blow out air. Especially useful when you have to print a low-temp material (like TPU) directly after a high-temp one (like PA11), as I often have to do.
Reminder: This system cannot actually “cool” your enclosure to lower-than-ambient temperatures, as it can just blow heat outside the enclosure and replace the inside-air with ambient-air.
Closes the vent and turns the heater off while starting the fan. This is meant to evenly distribute any heat inside the enclosure, which can be beneficial for large prints, even if you don't need any extra heat.
Only closes the vent and does nothing else. It's like it's not even there!
I love the open source mentality. That's why I tried to make the whole thing as modular and easy to not only reproduce, but also modify to your own needs.
As the hardware is built from easily exchangeable parts, changing the software to your liking should be easy enough!
The code is written using PlatformIO, that's why I'll provide my platformio.ini, so that library import can be easier for you.
As I wrote the software from scratch and I am not a real programmer, you can expect that the code-quality won't be top notch.
There's some things I know could be better, but some fancy tricks are omitted so it is easier to understand for other people, who might just begin to code.
I tried to document as much and as clear as I could, so the structure should be easy to get into within a few minutes.
The PlatformIO project is fully available on Github.
However, I try to upload the code here as well, as some people might not know how to deal with GitHub.
Working with 110/230V is dangerous. When using a powersupply like the one I used always make sure to protect any points carrying live voltage from being accidentaly touched.
You should probably use a fused and switchable input with a stadard plug which can be wired to the powersupply.
Everything here (except otherwise noted, see below) is designed by - and mainly for - myself. I cannot take any responsibility for any hazards, damages or dangers that may occur. Do not leave the heater unattended. Everything I release here is released without any warranties.
Everything written here depicts my personal opinion and should not be confused with any professional advice.
THE CONSTRUCTION FILES ARE PROVIDED "AS IS". THE AUTHOR DOES NOT PURPORT AND DOES NOT REPRESENT, WHETHER EXPRESSED OR IMPLIED, THAT THE CONSTRUCTION FILES ARE FREE OF ERRORS, FREE OF FAULTS AND USABLE FOR ANY PURPOSE: THE AUTHOR IS NOT AN EXPERT IN 3D CONSTRUCTION AND NO EXPERT IN ENGINEERING. THE AUTHOR DOES NOT ACCEPT ANY RESPONSIBILITY NOR LIABILITY OF ANY KIND FOR THE USE OF THE CONSTRUCTION FILES, REGARDLESS OF THE PURPOSE; THE LIABILITY FOR ANY DIRECT AND INDIRECT DAMAGE IS DECLINED.
The use of trademarks, tradenames and other marks of third parties, if any, serves solely descriptive purposes pertaining to the construction files; the trademarks, tradenames and other marks of third parties are and remain the sole property of such third parties.
I used multiple pre-made models from different sources under different licenses.
As I release the whole Fusion360 assembly file, you need to be aware that the different parts inside the assembly fall under different licenses.
Source on GitHub (link), is licensed unter GPL-3.0
From GrabCad by user Gistroy: Part link
PTC Ceramic Heater:
From GrabCad by user Kim Sihota: Part link
From GrabCad by user Manesh Kumar K: Part link
Directly from MeanWell (link)
From GrabCad by user Mehmet Berkay: Part link
Imported from Fusions McMaster Carr library
As far as I understand, the GrabCAD license does not cover commercial use of these models.
I will publish all of the models I designed under the in the Printables-Model-Entry mentioned license, but note that the shown license does not cover the parts from other creators in the assembly.
That's why I will release two versions of the Fusion archive:
Thank you to @Ossum for finding links to Amazon US!
The project is now done. In its current state, it is completely reproducable and works as intended. The software works (for me anyways) and I am using this system productively.
Currently I'm thinking about changing some things in the electronics, mainly controlling the heater with a MOSFET and PWM instead of a relay and also replacing the Nano with something like an ESP32 to integrate remote control.
Software:
Thank you to @Ossum for contributing via GitHub!
Software:
Thank you to @Ossum for contributing via GitHub!
Nothing changed feature wise, but I split the software into two files:
The configuration.h contains all user-specific parameters like the sensor addresses, the pin definitions, servo positions and so on.
This way, if someone wants to contribute something to the code via GitHub, they are able to easily change the main.cpp without getting their address overwritten with every pull.
Note: The configuration.h comes as configuration-sample.h and needs to be renamed to configuration.h once. After that, it will be included in the main.cpp as configuration.h but is also ignored for any further Git commits.
Hardware:
Software:
26/oct/2023: Updated to version 1.2:
Hardware:
Software:
Printables-entry:
Added new features:
Fixed some bugs:
I finally had time to add the missing features and modes. Now the system starts in idle mode doing nothing but closing the vent. After pressing the middle button once, the system changes to heating mode and the target temperature can be set. Further presses cycle to the modes: Heating, Cooling, Fan only, Idle. When I find the time, I will add more descriptions and pictures of the new software.
Changed license from CC 4.0 Attribution to GNU GPL 3.0, as this is (mainly) built on the original parts by Prusa which require sharing under the same license. I just mis-clicked during selecting the first time, whoops.
The author marked this model as their own original creation.