diff --git a/platformio.ini b/platformio.ini
index 42c1088..af24af1 100644
--- a/platformio.ini
+++ b/platformio.ini
@@ -18,8 +18,9 @@ board_build.filesystem = littlefs
monitor_speed = 115200
upload_speed = 921600
;monitor_filters = send_on_enter
-build_src_filter =
- +
+extra_scripts = pre:scripts/git_version.py
+build_src_filter =
+ +
-
lib_deps =
lovyan03/LovyanGFX @ ^1.2
diff --git a/scripts/git_version.py b/scripts/git_version.py
new file mode 100644
index 0000000..bf19bb4
--- /dev/null
+++ b/scripts/git_version.py
@@ -0,0 +1,19 @@
+Import("env")
+
+import subprocess
+
+
+def git(*args):
+ try:
+ return subprocess.check_output(
+ ["git"] + list(args), stderr=subprocess.DEVNULL
+ ).strip().decode("ascii")
+ except Exception:
+ return None
+
+# count number of commits.
+build_number = git("rev-list", "--count", "HEAD") or "0"
+
+env.Append(BUILD_FLAGS=[
+ "-DBUILD_NUMBER=%s" % build_number
+])
diff --git a/src/meshberry/main.cpp b/src/meshberry/main.cpp
index de6d223..1bd73e6 100644
--- a/src/meshberry/main.cpp
+++ b/src/meshberry/main.cpp
@@ -11,8 +11,14 @@
BleKeyboard bleKeyboard;
+#ifndef BUILD_NUMBER
+#define BUILD_NUMBER 0
+#endif
+
void setup() {
Serial.begin(SERIAL_BAUD);
+ Serial.printf("Build #%d\n", BUILD_NUMBER);
+
esp_sleep_wakeup_cause_t cause = esp_sleep_get_wakeup_cause();
if (cause == ESP_SLEEP_WAKEUP_EXT1 || cause == ESP_SLEEP_WAKEUP_TOUCHPAD) {
Serial.println("[wake] resumed from deep sleep");