diff --git a/CommandStation-EX.ino b/CommandStation-EX.ino
index 3bc52ff..d9e16ac 100644
--- a/CommandStation-EX.ino
+++ b/CommandStation-EX.ino
@@ -146,7 +146,7 @@ void setup()
// Optionally a Timer number (1..4) may be passed to DCC::begin to override the default Timer1 used for the
// waveform generation. e.g. DCC::begin(STANDARD_MOTOR_SHIELD,2); to use timer 2
- DCC::begin(MOTOR_SHIELD_TYPE);
+ DCC::begin(MOTOR_BOARD);
}
void loop()
diff --git a/DCC.h b/DCC.h
index 00f402d..4e1053c 100644
--- a/DCC.h
+++ b/DCC.h
@@ -139,4 +139,31 @@ private:
static const byte BIT_OFF=0x00;
};
+#ifdef ARDUINO_AVR_MEGA // is using Mega 1280, define as Mega 2560 (pinouts and functionality are identical)
+ #define ARDUINO_AVR_MEGA2560
+#endif
+
+#if defined(ARDUINO_AVR_UNO)
+ #define ARDUINO_TYPE "UNO"
+#elif defined(ARDUINO_AVR_NANO)
+ #define ARDUINO_TYPE "NANO"
+#elif defined(ARDUINO_AVR_MEGA2560)
+ #define ARDUINO_TYPE "MEGA"
+#else
+ #error CANNOT COMPILE - DCC++ EX ONLY WORKS WITH AN ARDUINO UNO, NANO 328, OR ARDUINO MEGA 1280/2560
+#endif
+
+#if defined(STANDARD_MOTOR_SHIELD)
+ #define MOTOR_BOARD_TYPE "Ardu"
+#elif defined(POLOLU_MOTOR_SHIELD)
+ #define MOTOR_BOARD_TYPE "Polo"
+#elif defined(FUNDUMOTO_SHIELD)
+ #define MOTOR_BOARD_TYPE "Fundu"
+#elif defined(FIREBOX_MK1)
+ #define MOTOR_BOARD_TYPE "FireBox1"
+#elif if defined(FIREBOX_MK1S)
+ #define MOTOR_BOARD_TYPE "FireBox1S"
+#endif
+
+
#endif
diff --git a/DCCEXParser.cpp b/DCCEXParser.cpp
index 80b08da..69e3dc1 100644
--- a/DCCEXParser.cpp
+++ b/DCCEXParser.cpp
@@ -304,7 +304,7 @@ void DCCEXParser::parse(Print * stream, byte *com, bool blocking) {
case 's': //
StringFormatter::send(stream,F("
"),DCCWaveform::mainTrack.getPowerMode()==POWERMODE::ON );
- StringFormatter::send(stream,F("