diff --git a/communications/include/serial_console.h b/communications/include/serial_console.h
index c2c1d0f98afe511c8367d8a7f0de89b63837cf3f..dae9cb9834d42afc589bdd3e0144440489b6dac3 100644
--- a/communications/include/serial_console.h
+++ b/communications/include/serial_console.h
@@ -9,6 +9,7 @@ extern "C" {
 #include <avr/interrupt.h>
 
 void serial_console_init(uint32_t baudrate);
+int printf(const char *fmt, ...);
 
 #ifdef __cplusplus
 }
diff --git a/communications/src/serial_console.c b/communications/src/serial_console.c
index 64fa7f4ecc58828bdbcadd8d31eb4787ac52d085..89bfd5267a1e5026dc20fad1e602129abd2cb8c2 100644
--- a/communications/src/serial_console.c
+++ b/communications/src/serial_console.c
@@ -1,6 +1,7 @@
 #include "comm_cfg.h"
 #include "serial_console.h"
 #include <stdio.h>
+#include <stdarg.h>
 
 /* private variables */
 volatile uint8_t serial_console_rx_buffer[SERIAL_CONSOLE_MAX_BUFFER_LEN];
@@ -138,3 +139,14 @@ void serial_console_init(uint32_t baudrate)
   serial_console_set_baudrate(baudrate);
   device=fdevopen(serial_console_putchar,serial_console_getchar);
 }
+
+int printf(const char *fmt, ...)
+{
+  va_list ap;
+  int i;
+
+  va_start(ap,fmt);
+  i = vfprintf(stdout, fmt, ap);
+  va_end(ap);
+  return i;
+}
diff --git a/examples/pan_tilt/pan_tilt.c b/examples/pan_tilt/pan_tilt.c
index 8b3ec676826bace4fdcb945b2a3f3c96445eddec..9c0e48663178438a2fe5d86a471626ef0e837aff 100644
--- a/examples/pan_tilt/pan_tilt.c
+++ b/examples/pan_tilt/pan_tilt.c
@@ -1,5 +1,4 @@
 #include <util/delay.h>
-#include <stdio.h>
 #include "cm510.h"
 #include "balance.h"
 #include "exp_board.h"
@@ -36,6 +35,7 @@ void user_loop(void)
                        }
                        else
                          state=wait_start;
+                       printf("wait_start %d\n",(int)state);
                        break;
       case wait_cmd: if(is_button_rising_edge(BTN_LEFT))
                      {