diff --git a/reform2-keyboard4-fw/src/menu.c b/reform2-keyboard4-fw/src/menu.c
index 92f035e1086465602d963db7fce341b69aacf8cc..a5c1aae0ff5449937c6d7363a71afd2e523b0b58 100644
--- a/reform2-keyboard4-fw/src/menu.c
+++ b/reform2-keyboard4-fw/src/menu.c
@@ -126,6 +126,10 @@ int execute_menu_function(int keycode) {
     // reset the MCU
     rp2040_reset();
   }
+  else if (keycode == KEY_R) {
+    // reset the SOM
+    remote_reset_som();
+  }
   else if (keycode == KEY_T) {
     render_tina();
     logo_timeout_ticks = 10;
diff --git a/reform2-keyboard4-fw/src/remote.c b/reform2-keyboard4-fw/src/remote.c
index 34bf1bf7ae059e40cb167502bb84a27c31fc06ac..15260bbcebafaf097e8004d57e53babd46d21da3 100644
--- a/reform2-keyboard4-fw/src/remote.c
+++ b/reform2-keyboard4-fw/src/remote.c
@@ -294,6 +294,11 @@ int remote_turn_off_som() {
   return 1;
 }
 
+int remote_reset_som() {
+  remote_try_command("2p\r", 0);
+  return 1;
+}
+
 int remote_wake_som() {
   remote_try_command("1w\r", 0);
   return 1;