Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Motor Temperature #50

Open
CalgaryCM opened this issue Feb 16, 2021 · 16 comments
Open

Motor Temperature #50

CalgaryCM opened this issue Feb 16, 2021 · 16 comments

Comments

@CalgaryCM
Copy link

Hey, Can anyone confirm if the motor gets HOT if the NodeMCU/ESP8266 is not connected?

I am starting this amazing build and during voltage checks I notice that the motor gets very hot when the nodeMCU/esp8266 is not connected. My initial gut feel (and prob incorrect as I am just starting) is the nodeMCU using the enable pin to sleep the motor. My concern here is if something were to happen to the nodeMCU it would stop sending "sleep" to the motor and the motor would heat up to the point of it being a fire hazard.

I did verify my wire connections several times. I assume the wire color code on the diagram matches the wires on the motor and I have them connected properly.

TIA!

@Smitty357
Copy link

Smitty357 commented Mar 18, 2021

This is caused by the motor not knowing its position and it is constantly trying to adjust to this unknown.
Once I send the command to set it to 100% the motor stops driving. ***/positionCommand/ 13 is what I sent via mqtt, but this is based on my setup. Replace *** with your name, and take the steps you set up in the code and add 1 to it, mine is 12 so I set mine to 13. It stops and the motor does try to fine its setting anymore and shuts off.

@OOIOIOO
Copy link

OOIOIOO commented Nov 27, 2021

I'm still in the process of working on this project, but I had an episode where I killed node mcu and the controller by shorting probably and didn't realized that and put the blind up. After an hour or so I realized that the blind doesn't work very well so I took it down. It turns out it was soo hot that it melted the adaptor.

So my advise to anyone who is doing this is double sleep the motor through the Fault pin, by connecting it to one of the pins on nodemcu(instead of 5v directly), then setting the pin to High when needed and to Low otherwise, this way controller is completely off, and u don't have a risk burning your house. :)

@rixmix123
Copy link

rixmix123 commented Nov 27, 2021

@OOIOIOO
Can you provide a diagram of that double sleep set up? Everything for me works perfect, but I did disconnect the node mcu to test and the motor started to heat up. Thanks!

@rixmix123
Copy link

Can you provide a diagram of that double sleep set up? Everything for me works perfect, but I did disconnect the node mcu to test and the motor started to heat up. Thanks!

@thehookup any ideas for a good fail safe of the node does fail eventually?

@OOIOIOO
Copy link

OOIOIOO commented Nov 27, 2021

@rixmix123
Schematic (1)
its fairly simple really, note the Orange line from D8. Its mostly software, the way I did it, I set it as output and during setup I set it to LOW, than any time I run the motor I set it to HIGH, and in the part where the moving is set to false, I set the pin back to LOW. So Controller is essentially always off and never heats up.
Now technically gpio pins 1 to 15 I think are all pulled HIGH so there is a chance that during boot the controller will on until the code kicks in, I believe gpio 16 is defaulted to LOW, so u could try that to be extra safe.

@OOIOIOO
Copy link

OOIOIOO commented Nov 27, 2021

@rixmix123 Schematic (1) its fairly simple really, note the Orange line from D8. Its mostly software, the way I did it, I set it as output and during setup I set it to LOW, than any time I run the motor I set it to HIGH, and in the part where the moving is set to false, I set the pin back to LOW. So Controller is essentially always off and never heats up. Now technically gpio pins 1 to 15 I think are all pulled HIGH so there is a chance that during boot the controller will on until the code kicks in, I believe gpio 16 is defaulted to LOW, so u could try that to be extra safe.

actually I just checked some resources and they say the D8(got lucky there :)) is being pulled LOW standard, so u good to use that, as GPIO 16 is one of them weird ones, that polly noone should use.

@rixmix123
Copy link

@OOIOIOO Thanks so much! Forgive me for being a noob as this is my first project working with the node mcu's and the programming of them. But do I need to modify any code with your set up?

@rixmix123
Copy link

@OOIOIOO and one more question just to be clear, this set up would prevent the motor from heating up if the node MCU failed or was disconnected? Thanks again!

@OOIOIOO
Copy link

OOIOIOO commented Nov 27, 2021

@OOIOIOO Thanks so much! Forgive me for being a noob as this is my first project working with the node mcu's and the programming of them. But do I need to modify any code with your set up?

yes in a few places where I described above, due to where this stuff is , it will be hard to point u exactly, as I don't know what you have. I will eventually do a pull request with my changes but I'm not done yet. :)
also np buddy, my firs project with this stuff too :)

@rixmix123
Copy link

Thanks again! I'll be on the lookout!

@OOIOIOO
Copy link

OOIOIOO commented Nov 27, 2021

@OOIOIOO and one more question just to be clear, this set up would prevent the motor from heating up if the node MCU failed or was disconnected? Thanks again!

if mcu is disconnected, yes, if it failed .... hopefully, its electronics and you are playing with it, so nothing is for sure, but its better ... to the best of my knowledge. I tested it on my failed items as well and it saved it fixed it there :)

@tkffaul
Copy link

tkffaul commented Feb 17, 2022

@OOIOIOO just wanted to tell you how awesome of an idea this was. I modified the program and wiring like you showed and it works great! I like not having the driver powered up when the blind isnt doing anything, just made a lot of sense! I really think you should push this up as a pull request and have them modify to project!

@rixmix123
Copy link

How do you modify the software? Do you make changes in Arduino code? I have the blinds up and running and connected to Wemo plugs that turn off when not in use, but I'd love another fail safe just in case! 😀

@tkffaul
Copy link

tkffaul commented Feb 18, 2022

Yes you have to modify the programming in Arduino... Here is how I did it... and I'm no expert, but it works...

At the top under the var define section:
#define STEPPER_MICROSTEP_2_PIN 12
#define STEPPER_POWER D8 <-- Add this Line

At the bottom in the setup subroutine:
void setup() {
pinMode(STEPPER_POWER, OUTPUT); <-- Add this Line

Under processStepper Routine:
if (newPosition > currentPosition)
{
digitalWrite(STEPPER_POWER, HIGH); <-- Add this line
Other stuff

if (newPosition < currentPosition)
{
digitalWrite(STEPPER_POWER, HIGH); <-- Add this line
Other stuff

if (newPosition == currentPosition && moving == true)
{
#if DRIVER_INVERTED_SLEEP == 1
shadeStepper.sleepOFF();
#endif
#if DRIVER_INVERTED_SLEEP == 0
shadeStepper.sleepON();
#endif
digitalWrite(STEPPER_POWER, LOW); <-- Add this Line
Other Stuff

This defines STEPPER_POWER as D8 and then activates D8 as an output pin. We then flip it on before a move and shut it down when it reaches its location. Seemed simple enough, and the motor never gets warm.

@rixmix123
Copy link

Awesome! Any chance you can post all the code for reference? I'll try it out!!!

@petereit
Copy link

Curious, did you cut the center trace on the motor's internal PCB as Rob instructed? I was testing adding a second motor in parallel for a very large blind. I forgot to cut that center trace and it got VERY hot. The other motor I was testing had the center trace cut and always remained cool to the touch.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants