ensure USB config numbers always start from 1

Depending on which features (and thus USB configurations) are included
in the firmware, we need to re-define the ordering of the configuration
numbers, as the Atmel USBD driver simply assumes that configurations are
numbered 1..N without any gaps in the sequence.
diff --git a/firmware/src_simtrace/main.c b/firmware/src_simtrace/main.c
index 9686949..852b2f4 100644
--- a/firmware/src_simtrace/main.c
+++ b/firmware/src_simtrace/main.c
@@ -6,6 +6,7 @@
 #define TRACE_LEVEL 5
 
 #include "board.h"
+#include "simtrace.h"
 #include "utils.h"
 #include "req_ctx.h"
 
diff --git a/firmware/src_simtrace/mode_cardemu.c b/firmware/src_simtrace/mode_cardemu.c
index 96ecca6..3b0c3d2 100644
--- a/firmware/src_simtrace/mode_cardemu.c
+++ b/firmware/src_simtrace/mode_cardemu.c
@@ -1,4 +1,6 @@
 #include "board.h"
+#include "simtrace.h"
+#include "ringbuffer.h"
 #include "card_emu.h"
 #include "iso7816_fidi.h"
 #include "utils.h"
diff --git a/firmware/src_simtrace/simtrace.h b/firmware/src_simtrace/simtrace.h
index df5f01b..725ef41 100644
--- a/firmware/src_simtrace/simtrace.h
+++ b/firmware/src_simtrace/simtrace.h
@@ -2,6 +2,7 @@
 #define SIMTRACE_H
 
 #include "ringbuffer.h"
+#include "board.h"
 
 /* Endpoint numbers */
 #define DATAOUT     1
@@ -37,7 +38,20 @@
 extern const Pin pinPhoneRST;
 
 enum confNum {
-    CFG_NUM_SNIFF = 1, CFG_NUM_CCID, CFG_NUM_PHONE, CFG_NUM_MITM, NUM_CONF
+	CFG_NUM_NONE	= 0,
+#ifdef HAVE_SNIFFER
+	CFG_NUM_SNIFF,
+#endif
+#ifdef HAVE_CCID
+	CFG_NUM_CCID,
+#endif
+#ifdef HAVE_CARDEM
+	CFG_NUM_PHONE,
+#endif
+#ifdef HAVE_MITM
+	CFG_NUM_MITM,
+#endif
+	NUM_CONF
 };
 
 /// CCIDDriverConfiguration Descriptors
diff --git a/firmware/src_simtrace/simtrace_iso7816.c b/firmware/src_simtrace/simtrace_iso7816.c
index 0c4a096..c24ac0a 100644
--- a/firmware/src_simtrace/simtrace_iso7816.c
+++ b/firmware/src_simtrace/simtrace_iso7816.c
@@ -32,6 +32,8 @@
  *------------------------------------------------------------------------------*/
 
 #include "board.h"
+#include "simtrace.h"
+#include "ringbuffer.h"
 #include "iso7816_fidi.h"
 
 #include <string.h>
diff --git a/firmware/src_simtrace/usb.c b/firmware/src_simtrace/usb.c
index 6b57b1b..3d69780 100644
--- a/firmware/src_simtrace/usb.c
+++ b/firmware/src_simtrace/usb.c
@@ -32,6 +32,7 @@
  *----------------------------------------------------------------------------*/
 
 #include "board.h"
+#include "simtrace.h"
 #include "utils.h"
 
 #include <cciddriverdescriptors.h>