1
0
mirror of https://github.com/DCC-EX/CommandStation-EX.git synced 2024-11-26 17:46:14 +01:00
Go to file
Asbelos 6833d82789 Buffer overflow resilience
And diag output of replies
2020-10-26 12:59:40 +00:00
.github/workflows the start of new feature the config.h template including fix for github build action 2020-09-22 14:57:11 -04:00
.vscode Add readme add back extensions and settings from Dave and fix gitignore 2020-07-01 09:06:03 -04:00
ATMEGA328 Embed ArduinoTimers library 2020-08-23 14:14:04 +01:00
ATMEGA2560 Embed ArduinoTimers library 2020-08-23 14:14:04 +01:00
ATMEGA4809 Embed ArduinoTimers library 2020-08-23 14:14:04 +01:00
ATSAMC21G Embed ArduinoTimers library 2020-08-23 14:14:04 +01:00
ATSAMD21G Embed ArduinoTimers library 2020-08-23 14:14:04 +01:00
examples Rename .ino to match folder name and make changes for WiFi 2020-09-18 19:40:18 -04:00
.gitattributes Initial commit 2020-05-25 01:43:34 -06:00
.gitignore the start of new feature the config.h template including fix for github build action 2020-09-22 14:57:11 -04:00
.travis.yml Initial commit 2020-05-25 01:43:34 -06:00
AnalogReadFast.h Motor drivers tested 2020-08-17 15:30:25 +01:00
ArduinoTimers.h Embed ArduinoTimers library 2020-08-23 14:14:04 +01:00
CommandDistributor.cpp Working Wifi ringbuffer implementation 2020-10-13 17:37:40 +01:00
CommandDistributor.h Working Wifi ringbuffer implementation 2020-10-13 17:37:40 +01:00
CommandStation-EX.ino Lcd experimental (#46) 2020-10-12 14:32:47 -04:00
config.example.h Lcd experimental (#46) 2020-10-12 14:32:47 -04:00
DCC.cpp Merge branch 'master' into wifi-reliability2 2020-10-20 12:31:52 +01:00
DCC.h DCC getFn 2020-10-12 22:18:55 +01:00
DCCEX.h Lcd experimental (#46) 2020-10-12 14:32:47 -04:00
DCCEXParser.cpp Bit shuffling for function groups 2020-10-13 23:08:19 +02:00
DCCEXParser.h Wifi reliability (#45) 2020-10-05 13:42:31 -04:00
DCCWaveform.cpp Ack current setable by debug statement D ACK LIMIT n 2020-10-08 23:39:04 +02:00
DCCWaveform.h make volatile because of interrupt routine and optimzer in PIO 2020-10-20 10:55:12 +02:00
defines.h Wifi reliability (#45) 2020-10-05 13:42:31 -04:00
DIAG.h Lcd experimental (#46) 2020-10-12 14:32:47 -04:00
EEStore.cpp D EEPROM command 2020-10-04 21:20:13 +02:00
EEStore.h D EEPROM command 2020-10-04 21:20:13 +02:00
EthernetInterface.cpp Add EthernetInterface (UNTESTED, UNCALLED) 2020-09-26 12:01:00 +01:00
EthernetInterface.h Add EthernetInterface (UNTESTED, UNCALLED) 2020-09-26 12:01:00 +01:00
freeMemory.cpp rewrite freeMemory code 2020-09-22 23:10:52 +02:00
freeMemory.h rewrite freeMemory code 2020-09-22 23:10:52 +02:00
GITHUB_SHA.h V fixes, R command and github sha. 2020-09-20 00:59:07 +01:00
LCD_Implementation.h Lcd experimental (#46) 2020-10-12 14:32:47 -04:00
LCD_LCD.h Lcd experimental (#46) 2020-10-12 14:32:47 -04:00
LCD_NONE.h Lcd experimental (#46) 2020-10-12 14:32:47 -04:00
LCD_OLED.h Lcd experimental (#46) 2020-10-12 14:32:47 -04:00
LCDDisplay.cpp Lcd experimental (#46) 2020-10-12 14:32:47 -04:00
LCDDisplay.h Lcd experimental (#46) 2020-10-12 14:32:47 -04:00
LICENSE Create LICENSE 2020-06-12 22:51:42 -06:00
MemStream.cpp Fixup MemStream warning messages 2020-07-16 14:04:59 +01:00
MemStream.h Minor fixes start Uno Wifi Rev 2 fixes 2020-09-25 13:51:08 -04:00
MotorDriver.cpp current trip values on PROG depending on state 2020-09-27 12:14:25 +02:00
MotorDriver.h Ack current setable by debug statement D ACK LIMIT n 2020-10-08 23:39:04 +02:00
MotorDrivers.h current trip values on PROG depending on state 2020-09-27 12:14:25 +02:00
objdump.bat Add EthernetInterface (UNTESTED, UNCALLED) 2020-09-26 12:01:00 +01:00
objdump.sh fix objdump.sh 2020-09-26 22:28:29 +02:00
Outputs.cpp Cleaning of Turnout/Output/Sensor 2020-09-06 12:44:19 +01:00
Outputs.h Cleaning of Turnout/Output/Sensor 2020-09-06 12:44:19 +01:00
platformio.ini plaformio.ini with monitor flags 2020-09-27 11:03:05 +02:00
PWMServoDriver.cpp I2C diagnostics 2020-09-07 16:19:55 +01:00
PWMServoDriver.h Fix hanging turnouts 2020-07-23 12:48:38 +01:00
README.md better howto in README.md 2020-09-27 00:44:45 +02:00
RingStream.cpp Buffer overflow resilience 2020-10-26 12:59:40 +00:00
RingStream.h Buffer overflow resilience 2020-10-26 12:59:40 +00:00
Sensors.cpp Cleaning of Turnout/Output/Sensor 2020-09-06 12:44:19 +01:00
Sensors.h Cleaning of Turnout/Output/Sensor 2020-09-06 12:44:19 +01:00
StringFormatter.cpp DIAG LCD 2020-10-12 22:18:09 +01:00
StringFormatter.h Lcd experimental (#46) 2020-10-12 14:32:47 -04:00
Timer.cpp revert of timer.cpp 2020-09-28 15:13:48 -04:00
Turnouts.cpp Turnouts stored to EEPROM without trashing other stuff 2020-10-03 14:07:25 +02:00
Turnouts.h Turnouts stored to EEPROM without trashing other stuff 2020-10-03 14:07:25 +02:00
version.h Move version to its own .h file 2020-09-23 21:53:33 -04:00
VirtualTimer.h Embed ArduinoTimers library 2020-08-23 14:14:04 +01:00
WifiInboundHandler.cpp Buffer overflow resilience 2020-10-26 12:59:40 +00:00
WifiInboundHandler.h Buffer overflow resilience 2020-10-26 12:59:40 +00:00
WifiInterface.cpp Wifi reliability (#45) 2020-10-05 13:42:31 -04:00
WifiInterface.h Drop obsolete reference 2020-10-22 20:24:47 +01:00
WiThrottle.cpp Send all functions 2020-10-13 18:01:11 +01:00
WiThrottle.h add support for FireBox_Mk1, reduce heartbeat, separate eStop time (#43) 2020-09-29 11:51:01 -04:00

What's DCC++ EX


DCC++ EX is an open-source hardware and software system for the operation of DCC-equipped model railroads. It expands on the work of Gregg E. Berman's original DCC++ (which can be found here in the BaseStation-Classic repository)

The system consists of two parts, the DCC++ EX Command Station and one of many front end controllers. These controllers can be hardware controllers (called CABs or Throttles), software applications like JMRI, phone apps like Engine Driver, or our exWebThrottle that is a simple application you run in a browser like a web page and control your model trains.

The DCC++ EX Command Station consists of an Arduino micro controller fitted with an Arduino Motor Shield (or other supported motor controllers) that can be connected directly to the tracks of a model railroad.

Whats in this Repository


This repository, CommandStation-EX, contains a complete DCC++ EX Commmand Station sketch designed for compiling and uploading into an Arduino Uno, Mega, or Nano. All sketch files are in the folder named CommandStation-EX and its subforlders. More information about the sketch can be found in the included PDF file.

To utilize this sketch, you can use the following methods:

  • our automated installer
  • download a zip file from this repository (green Code button above) and unzip it
  • use git clone on this repository

With the manual methods you unzip or git clone to the Arduino IDE projects folder and then open the file "CommandStation-EX.ino" in the Arduino IDE. Please do not rename the folder containing the sketch code, nor add any files in that folder. The Arduino IDE relies on the structure and name of the folder to properly display and compile the code. If you do not run the installer, you have to copy config.example.h to config.h. If you do not have the standard config you edit config.h according to the help texts in config.h.

The latest production release of the Master branch is 3.0.1:

  • Supports the Arduino Uno, Arduino Mega, and Arduino Nano
  • Built-in configuration for both the original Arduino Motor Shield, Pololu MC33926 Motor Shield, LMD18200, and BTS7960B
  • Built-in configuration and support of Ethernet Shields and the ESP82266 WiFi module (networking for use with Mega only).

For more information on the overall DCC++ EX system, please follow the links in the PDF file.

Detailed diagrams showing pin mappings and required jumpers for the Motor Shields can be found in the Documentation Repository

The Master branch contains all of the Command Station functionality showed in the DCC-EX YouTube channel.

How to find more information


DCC++ EX WEB Page

The DCC++ EX Discord and live support

TrainBoard DCC++ Forum

-May 2020 !!