diff --git a/Arcrail/boards/loconet-turnout-decoder-rev-a.h b/Arcrail/boards/loconet-turnout-decoder-rev-a.h new file mode 100644 index 0000000..93216f2 --- /dev/null +++ b/Arcrail/boards/loconet-turnout-decoder-rev-a.h @@ -0,0 +1,71 @@ +#pragma once + +#include "Arduino.h" + +//=========================================================================== +//======================== Loconet ========================================== +//=========================================================================== + +#define USE_LOCONET +#define PIN_LOCONET_RX 8 +#define PIN_LOCONET_TX 6 + +//=========================================================================== +//======================== Outputs ========================================== +//=========================================================================== + +#define USE_OUTPUTS +#define OUTPUT_COUNT 20 + +// outputs 1-20 (no output number 0 because they are labelled on the pcb) +#define OUTPUT_1 10 +#define OUTPUT_2 11 +#define OUTPUT_3 12 +#define OUTPUT_4 13 +#define OUTPUT_5 25 +#define OUTPUT_6 26 +#define OUTPUT_7 14 +#define OUTPUT_8 15 +#define OUTPUT_9 16 +#define OUTPUT_10 17 +#define OUTPUT_11 18 +#define OUTPUT_12 19 +#define OUTPUT_13 0 +#define OUTPUT_14 1 +#define OUTPUT_15 2 +#define OUTPUT_16 7 +#define OUTPUT_17 3 +#define OUTPUT_18 4 +#define OUTPUT_19 23 +#define OUTPUT_20 24 + +// create output pin array +// TODO: Create array in configuration.h with C preprocessor macro +const uint8_t OUTPUTS[OUTPUT_COUNT] = { + OUTPUT_1, + OUTPUT_2, + OUTPUT_3, + OUTPUT_4, + OUTPUT_5, + OUTPUT_6, + OUTPUT_7, + OUTPUT_8, + OUTPUT_9, + OUTPUT_10, + OUTPUT_11, + OUTPUT_12, + OUTPUT_13, + OUTPUT_14, + OUTPUT_15, + OUTPUT_16, + OUTPUT_17, + OUTPUT_18, + OUTPUT_19, + OUTPUT_20}; + +//=========================================================================== +//======================== LEDs ============================================= +//=========================================================================== + +#define STATUS_LED +#define PIN_STATUS_LED 5 diff --git a/Arcrail/configuration.h b/Arcrail/configuration.h index 95cb20b..56e5147 100644 --- a/Arcrail/configuration.h +++ b/Arcrail/configuration.h @@ -13,6 +13,7 @@ // #define BOARD_LOCONET_ACCESSORY_DECODER_REV_D // #define BOARD_LOCONET_FEEDBACK_DECODER_REV_A // #define BOARD_LOCONET_FEEDBACK_DECODER_REV_B +// #define BOARD_LOCONET_TURNOUT_DECODER_REV_A #ifdef BOARD_ARDUINO_UNO #include "boards/arduino-uno.h" @@ -24,6 +25,8 @@ #include "boards/loconet-feedback-decoder-rev-a.h" #elif defined BOARD_LOCONET_FEEDBACK_DECODER_REV_B #include "boards/loconet-feedback-decoder-rev-b.h" +#elif defined BOARD_LOCONET_TURNOUT_DECODER_REV_A + #include "boards/loconet-turnout-decoder-rev-a.h" #else #error No board defined #endif diff --git a/boards/loconet-turnout-decoder-rev-a.json b/boards/loconet-turnout-decoder-rev-a.json new file mode 100644 index 0000000..3a5f113 --- /dev/null +++ b/boards/loconet-turnout-decoder-rev-a.json @@ -0,0 +1,35 @@ +{ + "build": { + "core": "arduino", + "f_cpu": "16000000L", + "mcu": "atmega328pb", + "variant": "standard" + }, + "bootloader": { + "efuse": "0xFD", + "file": "optiboot/optiboot_atmega328.hex", + "hfuse": "0xDE", + "lock_bits": "0x0F", + "lfuse": "0xFF", + "unlock_bits": "0x3F" + }, + "debug": { + "simavr_target": "atmega328pb", + "avr-stub": { + "speed": 115200 + } + }, + "frameworks": [ + "arduino" + ], + "name": "Loconet Turnout Decoder Rev A", + "upload": { + "maximum_ram_size": 2048, + "maximum_size": 32256, + "protocol": "arduino", + "require_upload_port": true, + "speed": 115200 + }, + "url": "https://github.com/markatk/loconet-turnout-decoder", + "vendor": "MarkAtk" +} diff --git a/platformio.ini b/platformio.ini index d60d0d1..aca80f3 100644 --- a/platformio.ini +++ b/platformio.ini @@ -48,3 +48,7 @@ build_flags = -D BOARD_LOCONET_FEEDBACK_DECODER_REV_B [env:loconet-feedback-decoder-rev-b-168A] board = loconet-feedback-decoder-rev-b-168A build_flags = -D BOARD_LOCONET_FEEDBACK_DECODER_REV_B + +[env:loconet-turnout-decoder-rev-a] +board = loconet-turnout-decoder-rev-a +build_flags = -D BOARD_LOCONET_TURNOUT_DECODER_REV_A