diff --git a/conf/modules/mavlink.xml b/conf/modules/mavlink.xml
index da106e7152..2039283c04 100644
--- a/conf/modules/mavlink.xml
+++ b/conf/modules/mavlink.xml
@@ -21,9 +21,15 @@
MAVLINK_BAUD ?= B57600
MAVLINK_PORT_LOWER=$(shell echo $(MAVLINK_PORT) | tr A-Z a-z)
MAVLINK_PORT_UPPER=$(shell echo $(MAVLINK_PORT) | tr a-z A-Z)
+ ifeq ($(MAVLINK_PORT), UsbS)
+ ap.CFLAGS += -DUSE_USB_SERIAL
+ ap.srcs += $(SRC_ARCH)/usb_ser_hw.c
+ ap.CFLAGS += -DMAVLINK_DEV=UsbS
+ else
+ ap.CFLAGS += -DMAVLINK_DEV=$(MAVLINK_PORT_UPPER)
+ ap.CFLAGS += -DUSE_$(MAVLINK_PORT_UPPER)
+ ap.CFLAGS += -D$(MAVLINK_PORT_UPPER)_BAUD=$(MAVLINK_BAUD)
+ endif
-
-
-
diff --git a/sw/airborne/modules/datalink/mavlink.h b/sw/airborne/modules/datalink/mavlink.h
index dd322cb736..84f125d8db 100644
--- a/sw/airborne/modules/datalink/mavlink.h
+++ b/sw/airborne/modules/datalink/mavlink.h
@@ -35,6 +35,9 @@
#if USE_UDP
#include "mcu_periph/udp.h"
#endif
+#if USE_USB_SERIAL
+#include "mcu_periph/usb_serial.h"
+#endif
#include "mcu_periph/uart.h"
/*