3D-модель · Printables

Ultimate CPAP (with FLAP valve) part cooling module

Сведения о модели

Площадка
Printables
Цена
Бесплатно
Лицензия
CC-BY-NC-SA
Только некоммерческое использование с указанием автора; переделки — под той же лицензией.
Форматы
STL
  • 35 Лайки
  • 60 Загрузки
  • 0 Напечатали
  • 8 Комментарии
  • 841 Просмотры

Автор:rKos

Опубликована

Описание

This design improves and adapts the attached original models to my needs — hopefully, it will be useful for you too 🙂

Improvements

1) Simplified

It is now fully 3D printed.

Most parts are designed to be tight push fits.

Can be assembled and mounted with only 6× M3 screws (4 for the stepper and 2 for mounting) and 1× grub screw — although using an additional 4 screws and heat inserts provides better sealing and slightly reduced noise.

Sensorless homing (macro modified to perform 6 homing operations for 100% reliability with TMC5160) replaces the endstop, eliminating extra wiring.

CPAP blower speed is adjusted in Orca using the Auxiliary Part Cooling setting for convenience, while keeping the exhaust fan settings available for other purposes.

2) Compact

Designed to be as compact as possible while maintaining performance, allowing it to be mounted inside the chamber.

The goal was to mount it on the back gantry extrusion of my custom Voron 2.4 / Doomscube, but it can be mounted elsewhere as well.

This was achieved without any noticeable loss of performance .

3) Quieter (drastically!)

The noise difference is significant and achieved through multiple design choices:

a) Intake Muffler — simple, compact, and effective.

Initial tests (using a small piece of foam in the narrowest part of the muffler) suggest that some higher frequencies are reduced by ~15 dB from the muffler alone (see the comparison bar graph in the photo).

Measurements using a Kestrel 5700 Elite show no loss in airflow due to the muffler.

b) Exhaust Muffler (two versions)

A closed-loop version redirects exhaust air back to the intake, allowing for higher airflow and slightly improved noise reduction. However, it increases the cooling air temperature — at 99% recirculation and 100% blower speed, the temperature rose from 29 °C to 37 °C over 30 minutes before stabilizing. This elevated temperature may reduce cooling efficiency and potentially shorten blower lifespan.

An open-loop version vents exhaust air to the outside through a muffler and directs it toward the stepper motor. While it provides slightly less noise reduction and does not increase airflow, it offers improved part cooling and, as an additional benefit, aids in cooling the CPAP stepper motor.

c) Mounted inside the chamber — simply closing the doors significantly reduces noise. The extent of reduction depends on chamber sealing, panel type, and other factors.

Keep in mind that elevated chamber temperatures will shorten the blower’s service life.

Config: Octopus Max EZ + EZ5160 / TMC5160

[tmc5160 manual_stepper flap_stepper] cs_pin: PG12 diag1_pin: ^!PF4 spi_bus: spi4 run_current: 0.4 sense_resistor: 0.075 driver_SGT: 1

[manual_stepper flap_stepper] step_pin: PE1 dir_pin: !PE0 enable_pin: !PE2 microsteps: 64 rotation_distance: 1600 velocity: 32000 accel: 1280000 endstop_pin: tmc5160_flap_stepper:virtual_endstop homing_speed: 80

[fan_generic CPAP_Source] # Cpap Blower pin: PA2 hardware_pwm: True shutdown_speed: 0 cycle_time: 0.01

[fan_generic CPAP_Flap] # Dummy Fan to show current Flap possition. pin: PF8 hardware_pwm: True shutdown_speed: 0 cycle_time: 0.01

[fan] # Dummy fan to control flap stepper pin: PF13 Macros:

[gcode_macro _SET_FLAP_ENABLED] variable_enabled: 0 gcode: {% set e=params.ENABLED|int %} {% if e != printer["gcode_macro _SET_FLAP_ENABLED"].enabled|int %} SET_GCODE_VARIABLE MACRO=_SET_FLAP_ENABLED VARIABLE=enabled VALUE={e} {% if e %} MANUAL_STEPPER STEPPER=flap_stepper ENABLE=1 {% for _ in range(6) %} ; Six homing operations for 100% reliability with TMC5160 sensorless homing. MANUAL_STEPPER STEPPER=flap_stepper MOVE=-255 STOP_ON_ENDSTOP=1 SPEED=120 MANUAL_STEPPER STEPPER=flap_stepper SET_POSITION=0 {% endfor %} {% else %} MANUAL_STEPPER STEPPER=flap_stepper MOVE=0 ENABLE=0 MANUAL_STEPPER STEPPER=flap_stepper ENABLE=0 {% endif %} {% endif %}

[gcode_macro M106] rename_existing: M106.1 gcode: {% set f='fan'+(params.P|default(0)|int)|string %} {% set s=params.S|default(255)|float/255 %} {% if f == 'fan0' or params.P is not defined %} _SET_FLAP_ENABLED ENABLED=1 MANUAL_STEPPER STEPPER=flap_stepper MOVE={params.S} SYNC=0 SET_FAN_SPEED FAN='CPAP_Flap' SPEED={s} {% elif f == 'fan2' %} SET_FAN_SPEED FAN='CPAP_Source' SPEED={s} {% else %} M106.1 {rawparams} {% endif %}

[gcode_macro M107] rename_existing: M107.1 gcode: {% set f='fan'+(params.P|default(0)|int)|string %} {% if f == 'fan0' or params.P is not defined %} _SET_FLAP_ENABLED ENABLED=0 SET_FAN_SPEED FAN='CPAP_Flap' SPEED=0 {% elif f == 'fan2' %} SET_FAN_SPEED FAN='CPAP_Source' SPEED=0 {% else %} M107.1 {rawparams} {% endif %}

gcode_macro PRINT_START] gcode: _SET_FLAP_ENABLED ENABLED=1 ; enable CPAP Flaps

[gcode_macro PRINT_END] gcode: _SET_FLAP_ENABLED ENABLED=0 ; disable CPAP Flaps

[gcode_macro CANCEL_PRINT] gcode: _SET_FLAP_ENABLED ENABLED=0 ; disable CPAP Flaps

[Edit: 22 Oct 2025] Open-loop muffler added.

Vitals (@vitals78_1747561) suggested that the closed-loop system increases air temperature, which proved to be true. I’ve therefore uploaded an open-loop version for those who prefer it.

Теги

Ещё по теме

Похожие модели

Названия используются только для указания источника результата. Polyzon не аффилирован с перечисленными площадками.