diff --git a/components/badge23/espan.c b/components/badge23/espan.c
index efc9e7bfb9c1f99824c70e1654adfd0ba781b2dd..6ea9db68b7a89da2706c7ac84c8cee4aa1200caf 100644
--- a/components/badge23/espan.c
+++ b/components/badge23/espan.c
@@ -54,6 +54,8 @@ void os_app_main(void)
     leds_init();
     captouch_init();
 
+    if(portexpander_rev6()) printf("REV6\n"); else printf("REV5\n");
+
     vTaskDelay(2000 / portTICK_PERIOD_MS);
     //set_global_vol_dB(0);
 
diff --git a/components/badge23/include/badge23/portexpander.h b/components/badge23/include/badge23/portexpander.h
index 105293ff46016c5cc86df6936b1a626bcbcd81fd..8dfed44c759f83441dd56df4f51c0a10b2d939e2 100644
--- a/components/badge23/include/badge23/portexpander.h
+++ b/components/badge23/include/badge23/portexpander.h
@@ -5,4 +5,5 @@
 void portexpander_set_badgelink(const bool enabled);
 void portexpander_set_leds(const bool enabled);
 void portexpander_set_lcd_reset(const bool enabled);
+bool portexpander_rev6(void);
 void portexpander_init(void);
diff --git a/components/badge23/portexpander.c b/components/badge23/portexpander.c
index 6543230bf2af728efcd22aa5d5eec8441b661e6f..1a0fa45bdf671e5b1424e7138774d5d02326121a 100644
--- a/components/badge23/portexpander.c
+++ b/components/badge23/portexpander.c
@@ -34,6 +34,17 @@ static esp_err_t pca9557_i2c_read(const uint8_t addr, const uint8_t reg, uint8_t
     return ret;
 }
 
+static bool pca9557_detect(const uint8_t addr)
+{
+    uint8_t data;
+    esp_err_t ret = pca9557_i2c_read(addr, 0, &data);
+    if(ret == ESP_OK) {
+        return true;
+    } else {
+        return false;
+    }
+}
+
 static uint8_t pca9557_get(const uint8_t addr)
 {
     uint8_t pins;
@@ -85,6 +96,11 @@ void portexpander_set_lcd_reset(const bool enabled)
     pca9557_set(PEX2, pex2_state);
 }
 
+bool portexpander_rev6(void)
+{
+    return pca9557_detect(PEX1);
+}
+
 void portexpander_init(void)
 {
     pca9557_set_polarities(PEX1, 0);