@flopes ideally what you want is a NC miniature momentary switch on the RX0 line so you can push for open during sketch uploads. Actually even after years of using the Arduino IDE I still get caught out from time to time with the getsync message as it ends with the regular thank you message and if the bottom window in the IDE is small you think the sketch has uploaded and scratch your head when the Arduino fails to respond to your coding.
@zeeko put up a nice post about Arduino and ESP recently at Esp-01 + Mega... Can't get hard serial working / newb esp questions. I thought it was this thread that warned about having the ESP wired up when you upload sketches to the Arduino but I can’t see it now. Ideally you should disconnect everything but I guess we are all reluctant to do this when we have a working system.
With just the RX0 on the Nano’s disconnected my ESP’s receive the TX signal when I upload sketches (to the Nano) but it doesn’t seem to do any harm. That said I currently only have 2 ESP’s (6 more due in a few days) and one of them has locked up. I would say bricked but I think it is the one that got very hot recently when I mixed up the VCC and GND. After a few days it came back as good as new and I have read that leaving them ‘for some time’ will bring them back to life.
Yes I use Blynk’s virtual LCD and it works. I do have a couple of physical LCD’s but I find them big and bulky so I don’t use them in my projects. As you already use an LCD you are probably aware of what @Lichtsignaal means about ensuring you have well organised code for the menus.
I recently went through and cleaned up my main code but the LCD menu code is dreadful. My project is similar in a way to yours and I have 4 or 5 virtual buttons that bring something up on the LCD.
2 buttons for plus and minus time or temperature, one for stopping and starting the main code and another for choosing the operating mode. I need to sit down and write up a proper menu system without just adding extra lines of code almost on a whim to fix a particular menu ‘bug’.
The screenshot below is my LCD from a few days ago. There are 5 variables shown on the LCD (top row
device on or off, operating mode, current temperature bottom row number of operating minutes and random text). I have several timers that refresh the LCD at different times with various variables and really that is NOT the way to do it. I went this way because I found the Blynk server will sometimes disconnect if I press a virtual button and immediately refresh the LCD. A time delay (with SimpleTimer not delay(x)) of just 100 milliseconds fixed the disconnect problems and they only occurred with the ESP (not USB) and also only with virtual buttons not digital buttons. Still not got to the bottom of this.
I will redesign my LCD menu as soon as I have time with perhaps just one timer rather than two or three.
I’m starting to ramble but just to recap spend time designing a structured LCD menu and be prepared to use SimpleTimer for the periodic writes to the LCD.