Hi Dani,
first thing to be said, I like Pimoroni and I bought stuff from their website in the past… but those boards are really overpriced! See here or here
Regarding your circuit, I would connect your power in a different way. The Vin pin is the input to the onboard voltage regulator. Your board would say what is the max voltage you can apply. Normally 10V. The regulator then regulates down to 3.3V for the board to function. That’s why you can supply 5V at the micro USB port and your board will not fry. When you connect a USB cable, you can access the 5V supply from the Vin pin. Essentially you can connect up to (probably) 10V to your Vin pin to power your board and the regulator would do the rest.
Now the 3.3V pins on your board, are the output from the voltage regulator and give you a nice 3.3V regulated voltage from whatever you connected at the Vin pin.
So basically in your circuit the power flow is ‘reversed’. By connecting your battery straight to your 3.3V pins, you are essentially applying up to 4.2V (when battery is fully charged) to the OUTPUT of your regulator! I am not sure but you could actually damage the board this way!
Also, you are feeding the sensors more than 3.3V, meaning that if you get max output form them, you are plugging up to 4.2V into your D4 pins and you could fry them!
What I would do, is to check the minimum voltage you can plug into your nodeMCU board. If 3.7V is an option, I would connect that to your Vin pin and then power the sensors from the 3.3V pins.
if you need 5V minimum, I would use a 5V battery to power your boards from the Vin pins.
Hope this makes sense. So in general, the Vin pin is used to power the boards and it is the input to the on board voltage regulator. You shouldn’t power the sensors or the driver from that pin.
On the servos side, same thing. Turn things round. You can actually ditch the 3.7V battery there. You can plug the 5V battery to the power rail of your breadboard. From there you can power the nodemcu, the servos and the the driver.
You can also not use the driver. You can use the standard Servo library and PWM. Just make sure you power the servos straight from the 5V battery and NOT from the nodemcu itself. Connect the servo power to 5V and ground on the rail and the signal (yellow) cables to one for the digital pins. You will then tell the servo library to use that pin to control the servo.
However, you may run into a problem: the servos are powered at 5V, your control signal would be 3.3V. Your servos could actually then malfunction. Start with the driver and see if distributing the power better helps.
In the example, the servo is connected straight to the arduino. You need to connect the servo to the battery instead and make sure you connect the ground of the nodemcu to the same ground on the power rail (where the battery is connected).
If you want to keep the driver and already have the code for it, you can keep the 5V battery and power the Vin pin on the nodemcu, the V+ pin on the driver and the servos. You can then use the 3.3V pin on the nodemcu to power the driver on the Vcc pin. Connect all grounds together on the power rail.
Hope this makes sense, if you send me your code I can also have a look at it.
How are you connecting the boards on the network? Do you have an external WiFi network? Are you using a client/server structure?
Michele