Control Dyson DC35 Multifloor vacuum cleaner motor

Thread Starter

Frank Bolleri

Joined Sep 23, 2023
77
Hi @Frank Bolleri

Thanks for your reply. Please take you time. I am also double checking my setup whilst waiting for some more components to arrive (inverter and demultiplexer)
So far I think I made a mistake on:
* not using an inverter

This explains why the motor would only run/turn at a higher frequency. Because without the inverter, the square waves will only have the positive halves.

I found that I may not phrased my question well and please allow me to rephrace my question:

What I would like to achieve:
use a 555 based function generator to generate square waves (and a potentiometer to adjust the frequency)
an IBT-2 as H-bridge, take input from the square wave, original battery as power source, to control the motor

So far I realised that I will need an inverter to be able to generate the square wave that provides both positive and negative halves.

May I ask:
what is the role of the hall sensor here? Is it acting as a feedback loop to tell the PWM to adjust its frequency?
Dear @dumbfingers,
I think that to understand the role of the hall sensor feedback, we have to follow this path:

  1. You have only 2 pin in that motor: so you can only apply current, then switch polarity, apply current, switch polarity... in an infinite loop.
    Look at my drawing in post 24 and at the practical experiment in post 61; especially look at the red sign I have applied on the neodymium magnet, demonstrating that the motor have only 2 rest positions.
    In post 61, we switch polarity manually.

  2. Now look at experiment in post 67: if I understand well, you are currently in a similar stage (you speak of having motor running at 80-85Hz). This seems similar to my first run at 72 Hz.
    In post 67 a square wave generated by a function generator come inside a simple inverter (NOT port) SN74LS04N IC.
    So, if you pilot the H-Bridge sending simply the original signal (input in NOT port) + the inverted signal (output of NOT port) + common GND, the h-bridge will invert the polarity on the motor following the square wave frequency.

  3. Now look at post 90: the circuit is more or less the same, but instead to have a function generator, the "original signal" entering in the NOT port is coming from the hall sensor!
    To reach that, you have to use a bipolar/latch non-linear hall sensor (look here the differences between hall sensors typologies); I have used SS41F purchased on Amazon (because I have damaged the original one) and it works perfectly (a pull-up resistor is needed).

    Conceptually, depending of what of the two possible positions the shaft assume, the hall sensor will output with 1 or 0.
    That value, entering in the NOT port, will produce a 0 or 1, complementary.
    With these two values sent to h-bridge, you will have a "closed loop feedback" driving the motor correctly, automatically invert the polarity to mantain the motor running.
    In that phase, the speed of the motor will be directly proportional to the voltage applied, so you can varying it changing the output value of your power supply.
    If you use a battery without someting in the middle to regulate the power, the speed will be fixed.

When this is done, we can deal with PWM control - post 92

Originally, I have used again a function generator (but this time to generate a PWM signal) - this can be your case; you just will have to substitute the function generator with an NE555-based circuit, if I understand well.

BTS7960 h-bridge offer you RPWM and LPWM pins.
You have to apply PWM signal to one pin OR to the other, alternatively depending from 1 or 0 received from hall sensor.

Screenshot 2024-06-28 at 00.32.54.png

To "route" the PWM signal on the right pin depending by the output of the hall sensor, I have used a demultiplexer IC SN74LS138N - I remember that this, for me (that I am not so skilled), whas a tricky part to understand how to wire the connections - but trust me: is possible.
Maybe you can find a better demulptiplexer IC, with less input and outputs; I have used SN74LS138N because was the only I already have in my "laboratory".

Finally, always in post 92, I have substituted all with an ESP32 microcontroller, in order to be able to generate the PWM signal directly (without a signal generator) and to route it on different pins (without need a demultiplexer).
ESP32 micro allow me also to introduce a rotary encoder to varying the PWM duty cycle, to measure RPM from hall sensor and show info on an LCD display.

Maybe the choice of a micro like ESP32 can be an easy solution also for you, instead to build a NE555 PWM generator...

I hope all these info can help you to reach the desired goal.
Francesco
 
Last edited:

Thread Starter

Frank Bolleri

Joined Sep 23, 2023
77
Can you post some better pictures that have the power supply and motor and circuit in one picture. Or can you share the circuit? Trying to recreate.
Hello @Cdog330,
unfortunately I have not that documentation. All work was done continuosly in the period septermber-december 2023, but I have just some photo more than what I have posted here.
To answer you in detail now I have to dismantle all and reverse-engineering my own work :)

But.. what of the 3 circuits presented you want to replicate?
Because the first one in post 90 (working fine and very satisfying, but without PWM) is really simple and it will be not too much complicate to write in a schema.
In that circuit you can varying the speed changing manually output voltage of the power supply.
If for you can be enough, we can try to do it.

Ciao
Francesco
 
Hello @Cdog330,
unfortunately I have not that documentation. All work was done continuosly in the period septermber-december 2023, but I have just some photo more than what I have posted here.
To answer you in detail now I have to dismantle all and reverse-engineering my own work :)

But.. what of the 3 circuits presented you want to replicate?
Because the first one in post 90 (working fine and very satisfying, but without PWM) is really simple and it will be not too much complicate to write in a schema.
In that circuit you can varying the speed changing manually output voltage of the power supply.
If for you can be enough, we can try to do it.

Ciao
Francesco
the breadboard pictures in post 92.
I have all the components just hard to tell where some of the wires are going. I have the same Dyson motor as well.
 

Thread Starter

Frank Bolleri

Joined Sep 23, 2023
77
the breadboard pictures in post 92.
I have all the components just hard to tell where some of the wires are going. I have the same Dyson motor as well.
Dear @Cdog330,
in post 92 you have a first breadboard assembly picture about PWM control using an external function generator and a demultiplexer IC to control the speed of the motor.

Then a second breadboard assembly picture showing the prototype of the final result based on ESP32 micro.
That is much complicated: there is the generation of the signal, control the display, reading the encoder... it require C++ development skills.

I am sorry but I have not saved any documentation of that projects and I have not enough free time to support you to the complete realization of the final product of post 92.

As I tell before, I suggest you to start enjoying the run of the motor with the very simple circuit in post 90
After that, it will be a funny exercise for you to play extending it step by step building your custom solution, tailored on your specific needs.

To realize circuit in post 90 you will need:

  • SS41F hall sensor (you can purchase in Amazon)
  • NOT ports integrated circuit SN74LS04N
  • An H-Bridge module: in post 90 have used a different model compared to the one in final post 92.
    The first used is nominally limited to max 15V, but practically it burns just approaching 13V, if I remember well.
    Instead, the model BTS7960 High Current 43A H-Bridge Motor Driver is able to works at max 27V / 43A, which is perfect for drive that motor
  • 1 K resistor (for pullup hall sensor)
  • necessary wires
  • a power supply able to provide at least 5A - but if you want to run the motor at full power, maybe you can consider something more powerful (for that I have purchased a 20A power supplier) for powering H-bidge (power circuit)
  • a second power source 5V for IC and hall sensor (logic circuit)

You have to mount the hall sensor in the original motor case, on the little black piece of plastic:
Screenshot 2024-06-29 at 11.05.49.png

Wiring:

  1. GND from Hall sensor go to GND of logic circuit
  2. +VCC of hall sensor go to 5V of logic circuit
  3. OUT from hall sensor must enter in pin 1 of SN74LS04N - this will make the inverted signal available on pin 2.
    (that IC have 6 NOT inside, you need only one - if you change input pin, then change to the correct output pin... read the datasheet...)
    You have also to place here one side of the resistor 1k - the other side of the resitor have to go to 5V (to ensure pullup)
  4. powering SN74LS04N by connecting pin 14 to 5V and pin 7 to GND
  5. connect GND of h-bridge (power circuit) to GND of logic circuit
  6. connect VCC of h-bridge to the 5V
  7. connect RPWM and LPWM of h-bridge respectively to pin 1 and pin 2 of SN74LS04N (I think follow exactly the order suggested is not so relevant)
    The concept is to provide a continuous loop of 0-1/1-0/0-1/1-0... on that pins of h-bridge, syncronized with the motor shaft movements.
  8. connect R_EN and L_EN of h-bridge to 5V
  9. motor pins have to be connected one to M+ and other to M- of the h-bridge module (even here, I think the order is not so relevant)
  10. the power supply (power circuit) have to be connected to B+ and B- of the h-bridge module (here order is important... respect polarity!)

I think that's all: if you turn on the power supply, motor have to run - if not starting by itself, try to help it with one finger.
I suggest you to start experimenting with 12V-13V then gradually increase... if I remember well this value is enough to make the motor start.

When you reach the motor to run, you can extend this circuit to do what you need; it is an awesome play!

If you realize it, post here you photos/video!
And if you have the time, do a work better than mine and post more documentation - it will be a gift for the next guy who come here.

Happy play
Francesco
 
Last edited:
Dear @Cdog330,
in post 92 you have a first breadboard assembly picture about PWM control using an external function generator and a demultiplexer IC to control the speed of the motor.

Then a second breadboard assembly picture showing the prototype of the final result based on ESP32 micro.
That is much complicated: there is the generation of the signal, control the display, reading the encoder... it require C++ development skills.

I am sorry but I have not saved any documentation of that projects and I have not enough free time to support you to the complete realization of the final product of post 92.

As I tell before, I suggest you to start enjoying the run of the motor with the very simple circuit in post 90
After that, it will be a funny exercise for you to play extending it step by step building your custom solution, tailored on your specific needs.

To realize circuit in post 90 you will need:

  • SS41F hall sensor (you can purchase in Amazon)
  • NOT ports integrated circuit SN74LS04N
  • An H-Bridge module: in post 90 have used a different model compared to the one in final post 92.
    The first used is nominally limited to max 15V, but practically it burns just approaching 13V, if I remember well.
    Instead, the model BTS7960 High Current 43A H-Bridge Motor Driver is able to works at max 27V / 43A, which is perfect for drive that motor
  • 1 K resistor (for pullup hall sensor)
  • necessary wires
  • a power supply able to provide at least 5A - but if you want to run the motor at full power, maybe you can consider something more powerful (for that I have purchased a 20A power supplier) for powering H-bidge (power circuit)
  • a second power source 5V for IC and hall sensor (logic circuit)

You have to mount the hall sensor in the original motor case, on the little black piece of plastic:
View attachment 325780

Wiring:

  1. GND from Hall sensor go to GND of logic circuit
  2. +VCC of hall sensor go to 5V of logic circuit
  3. OUT from hall sensor must enter in pin 1 of SN74LS04N - this will make the inverted signal available on pin 2.
    (that IC have 6 NOT inside, you need only one - if you change input pin, then change to the correct output pin... read the datasheet...)
    You have also to place here one side of the resistor 1k - the other side of the resitor have to go to 5V (to ensure pullup)
  4. powering SN74LS04N by connecting pin 14 to 5V and pin 7 to GND
  5. connect GND of h-bridge (power circuit) to GND of logic circuit
  6. connect VCC of h-bridge to the 5V
  7. connect RPWM and LPWM of h-bridge respectively to pin 1 and pin 2 of SN74LS04N (I think follow exactly the order suggested is not so relevant)
    The concept is to provide a continuous loop of 0-1/1-0/0-1/1-0... on that pins of h-bridge, syncronized with the motor shaft movements.
  8. connect R_EN and L_EN of h-bridge to 5V
  9. motor pins have to be connected one to M+ and other to M- of the h-bridge module (even here, I think the order is not so relevant)
  10. the power supply (power circuit) have to be connected to B+ and B- of the h-bridge module (here order is important... respect polarity!)

I think that's all: if you turn on the power supply, motor have to run - if not starting by itself, try to help it with one finger.
I suggest you to start experimenting with 12V-13V then gradually increase... if I remember well this value is enough to make the motor start.

When you reach the motor to run, you can extend this circuit to do what you need; it is an awesome play!

If you realize it, post here you photos/video!
And if you have the time, do a work better than mine and post more documentation - it will be a gift for the next guy who come here.

Happy play
Francesco
Okay thank you for responding and your time!!
 
Top