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(""), VERSION, F(GITHUB_SHA)); + StringFormatter::send(stream,F(""), VERSION, F(ARDUINO_TYPE), F(MOTOR_BOARD_TYPE), F(GITHUB_SHA)); // TODO Send stats of speed reminders table // TODO send status of turnouts etc etc return;