Press "Enter" to skip to content

DIY Filament Dry Box

In the past, I’ve used several filament dry boxes, but none of them had all the features that I wanted or even what I thought every filament dry box should have by default. So I decided to make my own. As always all the source files are available in case you decide to build one for yourself. But either way, you can watch the video and maybe pickup few ideas and improve on them. So, let’s make an awesome controller for 3D printing filament dry box!

The idea behind the dry box is fairly simple; put a heater inside a box and it will keep it at a desired temperature, add a desiccant to absorb the moisture and add a fan to force air circulation. But in the past I had a hard time finding a dry box that had all the features that I needed, so I decided to go overkill and design a fully custom dry box controller.

I also designed it to be open-source and open-hardware, which means you can take it as a starting point and build your own ideal dry box.

As always, all the source files, build steps and build instructions are available here in the GitHub repository and also there is a video explaining how it works.

Let me know your thoughts and feel free to post pictures of what you have built.


  1. Greg Garriss
    Greg Garriss 15. February 2022.

    I instrument dehydrators for food researchers.. Nice design.

  2. Devon B
    Devon B 15. February 2022.

    This is so cool! Iโ€™ve been putting together a rough BOM for a similar project for some time.

    Do you think it would be feasible to replace the ESP with a Raspberry Pi? I am looking to recycle some of my very old Piโ€™s that are gathering dust.

    Great job!!

    • Sasa Karanovic
      Sasa Karanovic 15. February 2022.

      Hey Devon!
      Absolutely, I think Raspberry Pi instead of ESP32 should work, maybe even give you some extra features, because it’s more powerful so you could run all the automation and data collection on the Pi.
      You would need to modify the design to use a Raspberry Pi instead of ESP32. Something like a header/connector so that you can communicate with the controller from the Pi.
      Let me know if you build one, I would love to take a look at it!

  3. Latyn4ik
    Latyn4ik 16. April 2022.

    I noticed that if the “Target temperature” is more than 71 C then the box will not turn on.

  4. Latyn4ik
    Latyn4ik 16. April 2022.

    Hello, I didnโ€™t see that there is LIMIT_TEMP_HEATER_MAX in the code, now I understand what the problem was

    • Sasa Karanovic
      Sasa Karanovic 16. April 2022.

      Glad you got it working! Would love to see how the finished project looks like.

  5. Jon Williams
    Jon Williams 2. December 2022.

    I am just putting my order in with Digi-key but a few components are out of stock with crazy lead times.

    Can you suggest any alternatives for the following?


    Awesome write-up and video by the way ๐Ÿ˜‰

    • Sasa Karanovic
      Sasa Karanovic 3. December 2022.

      Thanks Jon. I’m glad you liked it.

      DigiKey has a feature where you can search for similar/replacement components. Give it a try.
      Alternatively you can modify the layout to use components that you/distributor have in stock.

      • Jon Williams
        Jon Williams 4. December 2022.

        Thanks, I looked but two of the components don’t have alternatives in stock either. Instead, I am looking at PCBWay assembled boards; $107 for 5 boards shipped. It would probably run me around $80 in components any way so, this isn’t a bad deal imho.

        • Sasa Karanovic
          Sasa Karanovic 4. December 2022.

          With the ongoing chip shortage, it can be difficult to source all the components you need.
          But if PCBWay has components in stock and will make 5 of them for $107, that’s not bad. Especially if you account for the time you would spend assembling and testing the boards.
          Let me know how it turns out!

      • SilentStray
        SilentStray 29. March 2023.

        You can check Mouser, or use Octopart for searching other companies’ stock levels.

  6. Mauro
    Mauro 12. December 2022.

    Hi, I find your project very interesting. I wanted to know if by chance you can release the files that JLPCB asks for to assemble the SMD part, they are very cheap and it would take less than assembling it by hand ๐Ÿ™‚

    • Sasa Karanovic
      Sasa Karanovic 12. December 2022.

      Thank you Mauro!
      Absolutely, all of the PCB houses like PCBWay, JLPCB, SeeedStudio and others would need BoM (which is already in the git repository) and Pick&Place file which I just added.
      Let me know how it goes! ๐Ÿ™‚

      • Mauro
        Mauro 22. December 2022.

        unfortunately I was impatient and I instantly ordered the PCBs, but now I’m almost redoing the order with the assembly for testing.

      • Ian
        Ian 27. December 2022.


        I want to build one of these, but I’m not sure how to take the github files to send to jlpcb to generate an assembled board as they want different file formats to the one provided?

        • Sasa Karanovic
          Sasa Karanovic 27. December 2022.

          Hi Ian,

          The GitHub repository includes all the files you need to manufacture the board.
          The Gerber files are required to manufacture (bare) PCBs.
          The Bill of Material (BOM) that tells you/manufacturer which components they need (to purchase) for this board.
          And then there is a Pick and Place file which tell you/manufacturer where on the board each component should be placed.

          Let me know how it goes!

  7. SilentStray
    SilentStray 28. March 2023.

    Awesome Project! I might make some boards to sell and may adapt to work in a bigger box for bulk filament drying. Small issue, I’m trying to figure out the max sized heating pad that it could use. Would the mosfet connected ton Q3 limit the size of the pad used?

    I’m thinking a 200mm by 150mm 12v heating pad.

    • Sasa Karanovic
      Sasa Karanovic 28. March 2023.

      Thanks SilentStray. Hope you make some coffee money from selling these. ๐Ÿ™‚
      There are multiple limiting factors, for example; combination of trace width and copper “thickness” is one, max Id of the MOSFET, connector, power supply etc.
      It’s easier if you already have the heating pad and then size the driver circuit to be able to drive it. Also keep in mind that you probably only care about the power, so even if your circuit is designed for 1A, using 6V, 12V or 24V heater will give you significantly different amounts of power/heat. ๐Ÿ™‚

      • SilentStray
        SilentStray 29. March 2023.

        Thanks for the reply! Lol, and yes, coffee money, I’ll be sure to send some your way if it at all works like I have in mind.

        Also, of note, the BOM does not list the header part numbers I opened an issue on Github with all the information for them and an alternate source for L1.

  8. TKaus
    TKaus 7. April 2023.

    Hi Sasa,
    when do you think the gerber files will be ready for the full manufacturing process for the pcb by

    I am interested to build this dryer.

    • Sasa Karanovic
      Sasa Karanovic 7. April 2023.

      Hi TKaus. All source files and manufacturing package are available in the GitHub repository. There are multiple people who have already used them to successfully build PCBs and PCBAs at PCBWay, JLCPCB and Seeedstudio.

      • TKaus
        TKaus 7. April 2023.

        Where can I find a bom and cpl file ?

        • Sasa Karanovic
          Sasa Karanovic 7. April 2023.

          Hi TKaus. As I mentioned, all source files as well as manufacturing package are available in the GitHub repository.

  9. SilentStray
    SilentStray 29. April 2023.

    Hey again Sasa, I’m testing out the board now, and I noticed U3 outputs 1.8v to the board instead of 3.3v, I see the part is meant to output that voltage. But due to it, the board is not booting up. Is this a mistake or am I missing something?

    • Sasa Karanovic
      Sasa Karanovic 29. April 2023.

      Hi SilentStray.
      Thank you for catching this! You are correct, this is a mistake on my part, the part number should be `MIC5365-3.3YD5-TR` (instead of `MIC5365-1.8YD5-TR`).
      If you can, please replace the 1V8 regulator with the 3V3 version (any pin-compatible 3V3 regulator should work here).
      I will also update the repo to fix the typo.

  10. SilentStray
    SilentStray 20. June 2023.

    Hey again Sasa, just a heads up. The code is not too big to fit on the ESP. Won’t compile.

    Dependency Graph
    |– SPI @ 2.0.0
    |– SPIFFS @ 2.0.0
    |– FS @ 2.0.0
    |– WiFi @ 2.0.0
    |– Adafruit SHT31 Library @ 2.2.0
    |– Adafruit Si7021 Library @ 1.5.1
    |– ESP Async WebServer @ 1.2.3
    |– AsyncTCP @ 1.1.1
    |– DallasTemperature @ 3.11.0
    |– OneWire @ 2.3.7
    |– ESPmDNS @ 2.0.0
    |– Wire @ 2.0.0
    Building in release mode
    Compiling .pio\build\esp32dev\src\src.ino.cpp.o
    Retrieving maximum program size .pio\build\esp32dev\firmware.elf
    Checking size .pio\build\esp32dev\firmware.elf
    Advanced Memory Usage is available via “PlatformIO Home > Project Inspect”
    RAM: [== ] 15.8% (used 51924 bytes from 327680 bytes)
    Flash: [=======Error: The program size (1144133 bytes) is greater than maximum allowed (1048576 bytes)
    ==*** [checkprogsize] Explicit exit, status 1=] 109.1% (used 1144133 bytes from 1048576 bytes)

    • Sasa Karanovic
      Sasa Karanovic 22. June 2023.

      Hi SilentStray,
      Are you sure you didn’t make any changes? I just ran `pio run` on the repo and it compiles without any issues.

      Checking size .pio\build\esp32dev\firmware.elf
      Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
      RAM: [= ] 12.5% (used 40980 bytes from 327680 bytes)
      Flash: [======== ] 76.8% (used 805509 bytes from 1048576 bytes)
      Building .pio\build\esp32dev\firmware.bin v3.3
      Creating esp32 image...
      Merged 25 ELF sections
      Successfully created esp32 image.

  11. Andreas
    Andreas 6. July 2023.

    Do you sell e.g. 2 naked boards or 2 equipped boards. If so how much I have to pay Incl. Shipment to Germany

    • Sasa Karanovic
      Sasa Karanovic 9. July 2023.

      Hi Andreas. Not yet but hopefully soon. Until then I would be happy to send you two bare PCBs for free. Please reach out to me via email.

      • Andreas Krause
        Andreas Krause 22. July 2023.

        Thanks Sasa but in the meantime I have created a non-SMD PCB and it seems to work as well. I also printed the 3D parts. Everything is now ready for integration. But I am wondering whether you have instructions or photos/video of how to integrate the different parts fan, box, sensors into the Dryer. I am using the same dryer than you,

        By the way I have tried to write this text now the 3rd time bit it always disappeared from this page.

        Thanks in advance
        Cheers Andreas

        • Sasa Karanovic
          Sasa Karanovic 22. July 2023.

          Hi Andreas! That’s great! I would love to see some pictures of the final version.

          I will double check if I have any additional photos or documentation for this project and share it with you. But I’ll need some time for this since I am out of office right now.

          P.S. Sorry about the delay. Each comment has to be manually reviewed and approved before it appears in the comments section.

  12. kolio
    kolio 30. October 2023.

    Do you think it would be feasible to replace the ESP32 with a ESP-12E?

    • Sasa Karanovic
      Sasa Karanovic 30. October 2023.

      You could give it a try. Although given how accessible ESP32 is, it might be easier to just get an ESP32.

      • kolio
        kolio 2. November 2023.

        you right. but I have ESP12 ๐Ÿ™‚ I dont want to throw in the trash this ๐Ÿ™‚
        so I have modify files to ESP12. All compilling except need to modify ESPAsyncWebServer library. They using SPIFFS but this library is deprecated. Try to rewrite to LittleFS.

        • Sasa Karanovic
          Sasa Karanovic 4. November 2023.

          You don’t necessarily have to trash it. You can use it for other projects. ๐Ÿ˜‰

          • kolio
            kolio 21. November 2023.

            at now I rewrite to ESP-12F
            and at now I modify to DHT-11 sensors + NTC 100k 3950 heater temperature sensor
            some later want to upload to GitHub to public review.

  13. Torsten
    Torsten 7. March 2024.

    Hi. What is the PCB thickness size ? 0.4 or 1.6 mm

  14. Zabi Zafari
    Zabi Zafari 15. April 2024.

    Will this heater with this new setup reach ABS and nylon drying temps?

    • Sasa Karanovic
      Sasa Karanovic 15. April 2024.

      I am working on a new revision of the board.
      It should be able to reach much higher temperatures compared to this version.

  15. G0urmand
    G0urmand 3. May 2024.

    do you plan on selling the new revision ? I’m being lazy and want one board, not 5 ๐Ÿ™‚ great project!

    • Sasa Karanovic
      Sasa Karanovic 4. May 2024.

      Thanks G0urmand! Can’t promise anything but I will try to make things happen if there is interest for it. ๐Ÿ™‚

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.