diff --git a/extra_script.py b/extra_script.py
new file mode 100644
index 00000000..3eec6a4f
--- /dev/null
+++ b/extra_script.py
@@ -0,0 +1,37 @@
+from datetime import datetime
+
+Import("env")
+
+HASP_VERSION_MAJOR=0
+HASP_VERSION_MINOR=0
+HASP_VERSION_REVISION=0
+
+now = datetime.utcnow() # current date and time
+BUILD_TIMESTAMP=now.strftime("%Y-%m-%d %H:%M:%S")
+
+# Setting datetime each time triggers a full recompile always
+# env.Append(CPPDEFINES=[('BUILD_TIMESTAMP', BUILD_TIMESTAMP)])
+
+# env.Append(CPPDEFINES=[('HASP_VERSION_MAJOR', HASP_VERSION_MAJOR)])
+# env.Append(CPPDEFINES=[('HASP_VERSION_MINOR', HASP_VERSION_MINOR)])
+# env.Append(CPPDEFINES=[('HASP_VERSION_REVISION', HASP_VERSION_REVISION)])
+
+buildFlags = env.ParseFlags(env['BUILD_FLAGS'])
+# print(buildFlags)
+
+print("*******************************************************")
+# Using for loop
+for item in buildFlags.get("CPPDEFINES"):
+ if (type(item) is list):
+ if (item[0]=="HASP_VERSION_MAJOR"): HASP_VERSION_MAJOR = item[1]
+ if (item[0]=="HASP_VERSION_MINOR"): HASP_VERSION_MINOR = item[1]
+ if (item[0]=="HASP_VERSION_REVISION"): HASP_VERSION_REVISION = item[1]
+ print(" * %s = %s" % (item[0],item[1]))
+ else:
+ print(" * %s" % item)
+
+# access to global build environment
+#print(env.Dump())
+print("*******************************************************")
+
+env.Replace(PROGNAME="%s_v%s.%s.%s" % (env['PIOENV'],HASP_VERSION_MAJOR,HASP_VERSION_MINOR,HASP_VERSION_REVISION))
\ No newline at end of file
diff --git a/include/hasp_conf.h b/include/hasp_conf.h
index afaf3102..bcdad641 100644
--- a/include/hasp_conf.h
+++ b/include/hasp_conf.h
@@ -1,10 +1,6 @@
#ifndef HASP_CONF_H
#define HASP_CONF_H
-#define HASP_VERSION_MAJOR 0
-#define HASP_VERSION_MINOR 1
-#define HASP_VERSION_REVISION 0
-
#define HASP_USE_APP 1
/* Network Services */
diff --git a/platformio.ini b/platformio.ini
index 3451f5fa..6972e23f 100644
--- a/platformio.ini
+++ b/platformio.ini
@@ -68,6 +68,9 @@ build_flags =
-Og ; Code Debug Optimization
;-w ; Suppress warnings
-D CORE_DEBUG_LEVEL=1 ; Errors
+ -D HASP_VERSION_MAJOR=0
+ -D HASP_VERSION_MINOR=1
+ -D HASP_VERSION_REVISION=2
-D LV_CONF_INCLUDE_SIMPLE
-D LV_LVGL_H_INCLUDE_SIMPLE ; for lv_drivers
-D SPIFFS_TEMPORAL_FD_CACHE ; speedup opening recent files
@@ -80,6 +83,8 @@ build_flags =
src_filter = +<*> -<.git/> -<.svn/> - - - - -
+extra_scripts = pre:extra_script.py
+
; -- Platform specific build flags
[flags]
esp8266_flags=