diff --git a/include/arch.h b/include/arch.h
index b588e66f901b0f5a2fbdb24bb52a5f8061741342..70bc41c271148385503d381ff7ec4e5524b96748 100644
--- a/include/arch.h
+++ b/include/arch.h
@@ -9,6 +9,7 @@ class Arch {
 		Arch () {}
 		void setup();
 		void idle_loop();
+		void delay_us(unsigned char const us);
 };
 
 extern Arch arch;
diff --git a/src/arch/arduino-nano/arch.cc b/src/arch/arduino-nano/arch.cc
index f35cb1dd378bea3b8f5e229eb93918ad093ce4f8..16d09fb33708701c3678ba7b930e836ed9835e27 100644
--- a/src/arch/arduino-nano/arch.cc
+++ b/src/arch/arduino-nano/arch.cc
@@ -1,6 +1,7 @@
 #include "arch.h"
 #include <avr/io.h>
 #include <avr/interrupt.h>
+#include <util/delay.h>
 
 void Arch::setup(void)
 {
@@ -54,6 +55,11 @@ void Arch::idle_loop(void)
 	}
 }
 
+void Arch::delay_us(unsigned char const us)
+{
+	__builtin_avr_delay_cycles(1600);
+}
+
 Arch arch;
 
 #if defined(WITH_LOOP) || defined(TIMER_S)