FW version not visible in Shipment

we have FW in a define (in the same .h file as the template id etc) :

But this does not show in the back-end in shipments:

(We are not using edgent yet)

Any idea why? And if it is not shown how does the shipping condition “Apply update if the device has” check this?

I don’t know if it’s important to how the library parses the data, but try this…

Delete the existing firmware version line, and copy/paste this one and place it immediatly after your #define BLYNK_DEVICE_NAME line of code…


(this has more spaces between BLYNK_FIRMWARE_VERSION and the literal string version number).


We looked into this a bit further and it most likely has to do with the .h file where you put the #define.

We are using platformio and have now placed the FW define in platformio.ini, but needed to change something within the Blynk library, and made a pull request for it:

In the Edgent examples (which is the only place where Blynk have added support for Blynk.Air OTA) the #defines live at the top of the .ino file, not in one of the .h files.

Have you tried moving these back top the .ino?


Hi Pete,

Our setup probably varies a bit from the standard use of blynk (1 sw project/compilation for many of the same devices) and we are figuring things out as we go which makes my question a bit fuzzy… sorry for that.

We have a solution that is based on a framework containing multiple libraries which is used for multiple types of devices. The functionality of the device is based on a “sensor config” that is stored in spiffs.

Maybe it works if we put the define in our main.cpp but sw-version control would not be manageable for different types of devices so we are looking for a way to define Blynk variables (like template id) outside the source code (or at least in a device specific .h file).


I think that the problem you’re likely to have with that approach is that the Blynk library looks for certain pieces of information (Template ID for example) and compiles the code differently if it finds that in the first few lines of code in the .ino file. I’m guessing that the same applies to the Firmware Version.


Version is parsed directly from the binary file. However, I’m not sure the exact place does matter. @vshymanskyy could you please advise?

this was solved by using:


in stead of