diff --git a/ampel-firmware/ampel-firmware.ino b/ampel-firmware/ampel-firmware.ino
index 4d3ba2e1a884dd93ebdd41e79cf91b915c9fb982..39f6b0c3b9ede61f313a190e4c292eb6c9bde408 100644
--- a/ampel-firmware/ampel-firmware.ino
+++ b/ampel-firmware/ampel-firmware.ino
@@ -67,14 +67,17 @@ void setup() {
 
   pinMode(0, INPUT); // Flash button (used for forced calibration)
 
-  led_effects::setupRing();
-
-  sensor::initialize();
-
+  Serial.println();
   Serial.print(F("Sensor ID: "));
   Serial.println(ampel.sensorId);
   Serial.print(F("Board    : "));
   Serial.println(ampel.board);
+  Serial.print(F("Firmware : "));
+  Serial.println(ampel.version);
+
+  led_effects::setupRing();
+
+  sensor::initialize();
 
 #ifdef AMPEL_CSV
   csv_writer::initialize(ampel.sensorId);
diff --git a/ampel-firmware/util.h b/ampel-firmware/util.h
index db424db6892d1beea14f3e4151c91356af464e4e..60406a891a776132bf936ee3b454304b5b74b5b7 100644
--- a/ampel-firmware/util.h
+++ b/ampel-firmware/util.h
@@ -38,6 +38,7 @@ class Ampel {
 private:
   static void showFreeSpace();
 public:
+  const char *version = "v0.1.0"; // Update manually after significant changes.
   const char *board;
   const char *sensorId;
   uint32_t max_loop_duration;
diff --git a/ampel-firmware/web_server.cpp b/ampel-firmware/web_server.cpp
index 98d18fb6f98e6573f9df8d1689037833e341fbb3..b17e666d08ca932290d15f56061fd1d65ac4f8ea 100644
--- a/ampel-firmware/web_server.cpp
+++ b/ampel-firmware/web_server.cpp
@@ -115,6 +115,7 @@ namespace web_server {
             "<tr><td>Largest heap block</td><td>%6d bytes</td></tr>\n"
             "<tr><td>Max loop duration</td><td>%5d ms</td></tr>\n"
             "<tr><td>Board</td><td>%s</td></tr>\n"
+            "<tr><td>Ampel firmware</td><td>%s</td></tr>\n"
             "<tr><td>Uptime</td><td>%2d d %4d h %02d min %02d s</td></tr>\n"
             "</table>\n"
             "<div id='log' class='pure-u-1 pure-u-md-1-2'></div>\n"
@@ -239,7 +240,7 @@ namespace web_server {
 #endif
         config::temperature_offset, config::auto_calibrate_sensor ? "Yes" : "No", ampel.sensorId, ampel.sensorId,
         wifi::local_ip, wifi::local_ip, ESP.getFreeHeap(), esp_get_max_free_block_size(), ampel.max_loop_duration,
-        ampel.board, dd, hh, mm, ss);
+        ampel.board, ampel.version, dd, hh, mm, ss);
 
     //    Serial.print(F(" - Body size : "));
     //    Serial.print(strlen(content));