Nodemcu boot problem - TIP120 to control ground project

Apologies as this question is not purely Blynk related, however perhaps someone has a workaround that I’ve missed.

The task is to control a digital servo which, after it’s job is completed, needs to de-power (in order to be moved manually). Since the project space is limited, I’ve decided to use a TIP120 transistor to interrupt the ground as I did with higher voltage applications.

BLYNK_WRITE(V4)
  button = param.asInt();  
  if ( button == 1 )
   digitalWrite(breakPin, HIGH);
    timer.setTimeout(1000L, servoMove);
     timer.setTimeout(5000L, servoDis);
  }
 else
   digitalWrite(breakPin, HIGH);
    timer.setTimeout(1000L, servoMove1);
     timer.setTimeout(2000L, servoDis);
     
}

Code is messy but kind of works.

The problem is, nodemcu will not boot unless I physically remove power from the servo before it starts.
If I fire up the nodemcu first, then connect power to the servo, it works great.
And it doesn’t matter if the power sources for the nodemcu and servo are the same or different (ground is always common). Also power supplies were checked and provide more than enough juice to run both the board and the servo.
I’m out of ideas and it’s probably something really simple and/or stupid. Anything that leads to achieving the goal without a relay is highly appreciated.

Simple diagram (not mine) explaining how tip120 works in this application.
In my case D8 is controlling the servo, D6 is controlling the transistor.
12v%20nodemcu

Pin D8 (GPIO15) must be LOW during boot.
It’s difficult to tell from your diagram (which uses an Arduino Mini) and your description exactly how this is wired, but I suspect that D8 is being pulled HIGH, preventing the NodeMCU from booting in the correct mode.

See this for more info:

Pete.

Thanks for the table Pete! Told you it must be something silly …
Sorry for the diagram, just something I googled quickly to show what I’m trying to do. I’ll make a proper one if your solution doesn’t fix it and report back.

1 Like