ok by now I finally got the Blynk server running. The ESP is connected, the IP address does show up in the arduino IDE, but when I start uploading the compilation I get:
20:28:02 [ERROR]: No Answer
20:28:02 [ERROR]: No Answer
anyone got an Idea how to solve this? or how to send updates OTA ?
But I also only use basic OTA, pushed via the IDE and not specific to Blynk, so if you are doing that supposed “Device reads/pulls update from Blynk Server” method, then there may be some other issue??
Are your devices on the same network as the server?
AFAIK Im using the default OTA (the functions all start with ArduinoOTA.etc. and the included lib is also ArduinoOTA) and yes everything is on the same network…
@wolph42, Arduino OTA just works (for everyone? ). If t is visible in network, it works (mostly). Are you sure you put all the necessary “blocks” into the code? It happened to me (I forgot to add just a simple, yet important ArduinoOTA.handle();) so I guess it may happen to everyone
And aside from its needed presence in the void loop() I have found that a sufficient “blocking” function or long processing routine can interfere with its ability to ‘answer’ the call from the IDE.
I have been able to mitigate that in situations like RGB lighting routines by adding a few ArduinoOTA.handle(); commands in strategic places of long running functions.
@marvin7: given the fact that I updated it over the air and THEN I got the ‘no answer’ I’m fairly certain that I have the OTA setup correctly.
the remaining possibility is that as @Gunner pointed out, perhaps I need to add some handles in the code.
I have to say though that there’s not much going on in the code, so I’m not sure thats the issue.
Ok 've been able to solve this. Basically it boils down to ‘try several times’ and lower the overal poweroutput of the ESP’s. They are WAY too strong and cause too much interference which is one of the reasons this failure happened.
@Gunner: preferably I would like to update the ArduinoOTA.handle() routine to increase the signal strengths when an OTA request happens. The weird thing is tough: I can’t find it in my libraries. Do you know where I should look?
Look for ArduinoOTA.h… although since I believe it is part of the ESP Arduino Core libraries, it might be in the core install folders? Just run a PC search for that file.
EDIT, yep… for me it is here: D:\Users\Gunner\Documents\Arduino\hardware\espressif\esp32\libraries\ArduinoOTA\src
But consider that since the command needs to sit in the void loop() anyhow… you would be adjusting the signal strength thousands of times a second.
void ArduinoOTAClass::handle() {
if (_state == OTA_RUNUPDATE) {
setOutputPower(20);
_runUpdate();
_state = OTA_IDLE;
setOutputPower(0); //or something close to 0
}
}
The only problem is that I can’t find any routine that shows you the current poweroutput. Its possible that different esps will have different outputs depending on their position, so I need to know that value before I change it to max.
Well, interesting concept… let us know how it works.
Meanwhile I have like five ESP8266 & ESP32 modules all running 24/7 in a 1x2 square foot space (30.5x61cm) of my little workbench, all updatable with OTA without any notable issues, so I am unsure that WiFi power is necessarily tissue.
But interference between them and the router… yes, that I have ran into that… neighbor’s WiFi on same channel and testing old WiFi cameras in close proximity.
I have not 5 but 11 ESP’s and during one test setup i turned them all on (while on the table so in real close proximity of eachother) and a couple started to have communication issues
the sensor in the thermostats is infuenced by the heat generated from the ESP’s. I’ve placed it as far away as possible with a couple of barriers between, but its still influenced. Hence i want the ESP’s a ‘quiet’ as possible.
That and I’ve heard that they’re actually ‘badly’ engineered such that they generate WAY too much power and can cover a range of 350 yards (didn’t test this,but it does sound way over the top for my purpose).
indeed it would, but they don’t get ‘hot’ they get ‘warm’, more exactly the combination of the ESP8266 (wemos D1) and an OLED shield gets 30C (with infrared measurement), I believe the OLED gets the ‘hottest’ of the two, but I recall that the ESP also goes between 25 and 30C I don’t think these values are cause for any alarm, but in an ambient T of 20 they ARE of influence on my sensor. (somewhere between 0.5C and 3C, depending on the type of box I use)
I’ve noticed, ESP may get hotter while some connections issues appears. But it never got “hot” actually - I was always able to touch it without any harm. Under normal conditions it is just slightly warm (ESP01) or barely noticeable (metal-shielded ESP’s) but I assume network activity influenced by our code play a major role here too.
I wouldn’t also go that far stating that they are ‘badly engineered’, @wolph42 . I can’t say they aren’t, but hey: look at their antenna interface - there is mostly ONLY single capacitor! Now look at any properly designed antenna interface inside some branded AP or WiFi router. With its output power (relatively high, as for WiFi) and ONLY a capacitor as an antenna interface there might be some interferences, although I’ve never met any trouble.
well, as said, they don’t get hot, they get warm, but warm enough to be of influence
after reading A LOT about them, this is what I came across, so not my words. Point is that they have a HUGE range, so you could argue that they’re greatly engineered, but as they’re mainly used for IoT, which usually is ‘short’ range: 10-50m, 350m range is a bit much.
Certainly I’m not in a position to argue, but as long as they are allowed to sell all over the world, I must assume the chip is properly designed. This doesn’t necessarily count for modules using ESP - this is totally different world.
Can’t say anything about a range (in my case at most 100m - the most distant sensor) but I’m happy they have enough power to handle “difficult” places with weak wifi.
Anyway I’ve updated the handler and it ‘works’. ‘Works’ because I do not have the equipment to check whether it actually works as intended, but no errors, so it appears to be going smooth.
void ArduinoOTAClass::handle() {
if (_state == OTA_RUNUPDATE) {
Serial.print("OTA RAISES WIFI POWER OUTPUT");
WiFi.setOutputPower(20);
_runUpdate();
_state = OTA_IDLE;
}
}
note that the default for an esp is 20 and if you change it in the code it will change back to the intended value on boot (which happens automatically after OTA) so you only need to set it high.