What's new
VORON Design

Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members!

StealthBurner CPAP & WS7040?

Durahl

Well-known member
I'm thinking about modding a CPAP Air Supply System into my StealthBurner and have noticed these usually being built with a WS7040 BLDC FAN and matching 24V Controller Board which is all fine and dandy but these Controller Boards seem to come with a 6-Pin Connector exiting two 3-Wire Bundles - One such Bundle leading to a 3-Wire Rotary Dial with the other Bundle either having lose ends to connect to something or being unpopulated.

Does anyone have any sources as to how that system is usually being controlled via the Printers MCU? 🤔
Also... Is there a particular reason as to why we need a WS7040 BLDC Fan with such a Controller to begin with instead of using another run of the mill - albeit larger - Radial 24V Fan? 🤨

Thanks in advance!
7nOVvGe.gif
 
Hi,
I came across this looking for a solution for another problem, but thought I could offer some info.

CPAP fans are not so much fans as turbines. Unlike a radial fan, they focus mostly on pressure than airflow. Though the turbines in CPAPs spin very fast, up to 30,000 rpm, so they can push a lot of air too. Most CPAP turbines are run on three phase motors, which is why they have three wires going into them to drive them. Most printer motherboards don't have any built in 3 phase controllers, so you need a separate (BLDC) controller to drive 3 phase motors. Additionally, some CPAP motors have hall effect sensors, which accounts for the additional three wires coming out of the motor. This measures the position of the rotor at any given time, which helps with speed control at low RPMs.

Now for the controller to control the speed, they do often include an analogue dial for manual control. But this can be ignored, and unplugged, when setting this up to control from an MCU. There will be a data/signal/PWM pin (5v/3.3v) on the controller, which you would connect with a corresponding PWM capable pin on the MCU. Don't confuse PWM fan pins with PWM data pins though. Fan pins are controlled load pins on the receiving end of mosfets, so will not work for this.
 
Hi,
I came across this looking for a solution for another problem, but thought I could offer some info.

CPAP fans are not so much fans as turbines. Unlike a radial fan, they focus mostly on pressure than airflow. Though the turbines in CPAPs spin very fast, up to 30,000 rpm, so they can push a lot of air too. Most CPAP turbines are run on three phase motors, which is why they have three wires going into them to drive them. Most printer motherboards don't have any built in 3 phase controllers, so you need a separate (BLDC) controller to drive 3 phase motors. Additionally, some CPAP motors have hall effect sensors, which accounts for the additional three wires coming out of the motor. This measures the position of the rotor at any given time, which helps with speed control at low RPMs.

Now for the controller to control the speed, they do often include an analogue dial for manual control. But this can be ignored, and unplugged, when setting this up to control from an MCU. There will be a data/signal/PWM pin (5v/3.3v) on the controller, which you would connect with a corresponding PWM capable pin on the MCU. Don't confuse PWM fan pins with PWM data pins though. Fan pins are controlled load pins on the receiving end of mosfets, so will not work for this.
Thanks for the insight!

I've since come across a guide as to how to wire and configure one up - Though I have not yet started working on it as I have yet to finalize my concept on how I integrate it into my System.
 
Thanks for the insight!

I've since come across a guide as to how to wire and configure one up - Though I have not yet started working on it as I have yet to finalize my concept on how I integrate it into my System.
Hi there. I just purchased the WS7040 which will come with a control board and it has some instructions like:
Simply pull out the potentiometer, connect the signal pin of the driver board to the 5V or 3.3V pin of the motherboard and connect it to GND.
Enable "FAN_SOFT_PWM" and set "SOFT_PWM_SCALE" to 5
Hardware PWM=FALSE
Pin host:gpio26
Cycletime :0.005

This is all as clear as mud so I would like to ask you if you managed and how you did it? Your link for the guide for the wiring does not exist anymore.
Thanks a ton.

I have a V2.4 with a spiderV1.1 but I reckon all these boards are similar in how to drive PWM fans.
 
Hi there. I just purchased the WS7040 which will come with a control board and it has some instructions like:
Simply pull out the potentiometer, connect the signal pin of the driver board to the 5V or 3.3V pin of the motherboard and connect it to GND.
Enable "FAN_SOFT_PWM" and set "SOFT_PWM_SCALE" to 5
Hardware PWM=FALSE
Pin host:gpio26
Cycletime :0.005

This is all as clear as mud so I would like to ask you if you managed and how you did it? Your link for the guide for the wiring does not exist anymore.
Thanks a ton.

I have a V2.4 with a spiderV1.1 but I reckon all these boards are similar in how to drive PWM fans.

You can use GPIO pins on your Rpi as pwm data signals. But this depends if you have the Rpi set up as an additional MCU for the control board in Klipper. I have not done this myself, but I understand that this is pretty common.

However you can use a data or servo pin on the control board to drive the signal pin on the BLDC controller. In the case of the spider 1.1, if you don't use a probe on the the Z-MAX probe end-stop port, you can use pin PA3 since it is already intended as a servo pin. But any of the end-stop pins should be able to do data. I also tried the data pin on the Neopixel RGB pin; while it did work, the control resolution at low fan speed was poor.

Here are a few sources to look at:
https://github.com/FYSETC/FYSETC-SPIDER/tree/main
https://3dwork.io/en/complete-guide-fysetc-spider/
https://docs.vorondesign.com/community/howto/drachenkatze/neopixel_guide.html

This is what settings I used:
[fan]
# CPAP part cooling fan
pin: PA3
max_power: 1
kick_start_time: 0.1
hardware_pwm: False
cycle_time: 0.005
off_below: 0.019
 
You can use GPIO pins on your Rpi as pwm data signals. But this depends if you have the Rpi set up as an additional MCU for the control board in Klipper. I have not done this myself, but I understand that this is pretty common.

However you can use a data or servo pin on the control board to drive the signal pin on the BLDC controller. In the case of the spider 1.1, if you don't use a probe on the the Z-MAX probe end-stop port, you can use pin PA3 since it is already intended as a servo pin. But any of the end-stop pins should be able to do data. I also tried the data pin on the Neopixel RGB pin; while it did work, the control resolution at low fan speed was poor.

Here are a few sources to look at:
https://github.com/FYSETC/FYSETC-SPIDER/tree/main
https://3dwork.io/en/complete-guide-fysetc-spider/
https://docs.vorondesign.com/community/howto/drachenkatze/neopixel_guide.html

This is what settings I used:
[fan]
# CPAP part cooling fan
pin: PA3
max_power: 1
kick_start_time: 0.1
hardware_pwm: False
cycle_time: 0.005
off_below: 0.019
thanks a lot, will look at these links. (y)
 
@3dCase I've only just recently done the Rebuild using the Bondtech CPAP Guide but adopted it to the BTT Kraken Board instead.
At first, I tried to make use of the equivalent first available End Stop Pin PC15 but with the first two ( PC15 & PF0 ) being "occupied" by the A/B Drives Sensorless Homing Function I had to go for the third PF1 instead.
 
@3dCase I've only just recently done the Rebuild using the Bondtech CPAP Guide but adopted it to the BTT Kraken Board instead.
At first, I tried to make use of the equivalent first available End Stop Pin PC15 but with the first two ( PC15 & PF0 ) being "occupied" by the A/B Drives Sensorless Homing Function I had to go for the third PF1 instead.
Thanks for the bondtech link my friend, That will help no end.
And your re-build is looking slick. Some nice things there!
 
Top