Not a request for help but just to make some observations

My project is a tank with two Blynk joysticks one for each track. It is working well and very responsive. I also implemented the Joysticks in Javascript with the ESP8266 as the server handling the http requests from Javascript client but the response was very poor compared with the Blynk version.

However I did find the Arduino code structure to be critical and if wrong led to some odd interaction between the Blynk control and the motors, like the changing the left joystick sometimes moved the right motor and vice-versa. This happened when I tried to get both BLYNK_WRITE(V0) and BLYNK_WRITE(V1) calling the some motor control routine but did not happen if I split the same code into two one for each BLYNK_WRITE. I suspect that this had something to do with the timing between the processing of the two BLYNK_WRITE’s and the frequency that the joystick parameters are sent by the app.

It would be nice to know the communication flow between the app and in my case the ESP8266 and how the request are processed by the ‘hardware’. In conclusion a great application but I am not sure how far it can be pushed for real time continuous control i.e. not just pushing buttons and reading a sensor value without understand more about how it works at a lower level.

The widget value is sent to the Blynk server when it changes.
On the ESP8266, each time the code encounters a Blynk.run() command, it asks the server if it has any updated values. Because the value of the joystick widget has changed, the corresponding BLYNK_WRITE command is called.

My guess is that you’ve structured your code in a way that it doesn’t encounter a new Blynk.run command until after a particular sequence of events have been processed, so the code is unaware of the change in widget status.

Pete.