diff --git a/rampinglight.c b/rampinglight.c
index 974a938dede72e9b7e87591575f0adf7640c8363..5dc51ddc862cac4e2af440fdb475f906956c3255 100644
--- a/rampinglight.c
+++ b/rampinglight.c
@@ -18,6 +18,7 @@
 // Optional features
 #define BATTCHECK
 #define BEACON
+#define STROBE
 #define LOW_VOLTAGE_PROTECTION
 
 #include <avr/io.h>
@@ -84,6 +85,9 @@ enum State {
 #ifdef BEACON
   kBeacon,
 #endif  // ifdef BEACON
+#ifdef STROBE
+  kStrobe,
+#endif  // ifdef STROBE
 };
 
 /**
@@ -96,6 +100,7 @@ typedef union {
     unsigned mode_memory : 1;
     unsigned freeze_on_high : 1;
     unsigned start_high : 1;
+    unsigned strobe : 1;
   };
 } Options;
 
@@ -389,7 +394,11 @@ int main(void) {
   }
 
   if (coldboot) {  // Initialize state after the flashlight was switched off for some time
+#ifdef STROBE
+    state = options.strobe ? kStrobe : kDefault;
+#else
     state = kDefault;
+#endif  // ifdef STROBE
     fast_presses = 0;
     ramping_up = 1;
 
@@ -540,6 +549,14 @@ int main(void) {
         break;
 #endif  // ifdef BEACON
 
+#ifdef STROBE
+      case kStrobe:
+        set_pwm(TURBO_PWM);
+        blink(8,2);
+        blink(8,4);
+        break;
+#endif  // ifdef STROBE
+
       case kConfig:
         disable_output();
         set_pwm(FLASH_PWM);
@@ -548,10 +565,14 @@ int main(void) {
         state = kDefault;  // Exit config mode after one iteration
 
         // This assumes that the bit field starts at the least significant bit
-        toggle_option(options.raw ^ 0b00000001, 1);  // Fixed mode
-        toggle_option(options.raw ^ 0b00000010, 2);  // Mode memory
-        toggle_option(options.raw ^ 0b00000100, 3);  // Freeze on high
-        toggle_option(options.raw ^ 0b00001000, 4);  // Start with high
+        uint8_t flashes = 1;  // Removed by compile time calculation
+#ifdef STROBE
+        toggle_option(options.raw ^ 0b00010000, flashes++);  // Start with strobe
+#endif  // ifdef STROBE
+        toggle_option(options.raw ^ 0b00000001, flashes++);  // Fixed mode
+        toggle_option(options.raw ^ 0b00000010, flashes++);  // Mode memory
+        toggle_option(options.raw ^ 0b00000100, flashes++);  // Freeze on high
+        toggle_option(options.raw ^ 0b00001000, flashes++);  // Start with high
 
         set_level(output);  // Restore previous level