I am using Arduino ide version 2.3.2 .I have a webserver to upload sketch file and filesystem. The webpages are stored in the spiffs using Littlefs .So when i need to upload sketch file i also add the server codes with it so i don't loss the webserver.It worked fine when i export the bin file in my system the upload it .the code changes and the webserver loads fine .But when my coworker tried to upload the bin file with same code as mine .I lost the webserver connection . It does not loading the webpages .When i checked the serial monitor it shows it failed to load the webpages .But in the spiff the files are there.
The difference was he was using older version of Arduino ide 1.8.19 .I checked it multiple uploads .The issue was with versions .
Now i want to solve this issue .I have some ideas but i dont know it will work or not can some one help me with it
Can the bin file generated using different version of Arduino IDE be same.
Is there a way to print Arduino IDE version so i can cross check and avoid wrong uploads
Or any other ways ...
Note: I am using this on ESP8266 and ESP32 boards with Littilefs as File system
I would expect them to be different. They are using an optimizing compiler and they could have different switches set, interpret something differently. The result is code that will run on the processor it was compiled for. The same code compiled on two different IDEs would more then likely the binaries be different.
The developer of each Arduino boards platform has the freedom to configure their platform as they like, but there is a convention to define a macro named ARDUINO that contains the version number, using the runtime.ide.version platform property:
the version number of the Arduino IDE as a number (this uses two digits per version number component, and removes the points and leading zeroes, so Arduino IDE 1.8.3 becomes 01.08.03 which becomes runtime.ide.version=10803 ). When using Arduino development software other than the Arduino IDE, this is set to a meaningless version number.
So if you compile a sketch with Arduino IDE 1.8.19 for any board from a platform that follows this convention (which the "esp32" and "esp8266" boards platforms do) then the value of the ARDUINO macro will be set to 10819.
Unfortunately the developers stopped maintaining this version number system at the beginning of the Arduino IDE 2.x development. So when you compile using any version of Arduino IDE from the 2.x series the value of the ARDUINO macro will be 10607. This is not ideal. However, you can be fairly confident that if you see the value 10607 then this indicates some version of Arduino IDE 2.x was used to compile the sketch since Arduino IDE 1.6.7 (which will also set the value of the ARDUINO macro to 10607) is eight years out of date, and was not a very significant version, so I doubt many people are still using that specific version of Arduino IDE.
One thing you should note is that it is more likely that the boards platform version is the significant variable; not the IDE version. You should check whether you have the same version of the boards platform installed on your computer as your co-worker. You can see the installed version number in the Arduino IDE Boards Manager.