1
0
mirror of https://github.com/DCC-EX/CommandStation-EX.git synced 2024-12-23 21:01:25 +01:00
Go to file
mstevetodd b9fdfdd71c
FIX: return WiThrottle speedstep, not DCC speedstep, in response to speed change request (#105)
* FIX: return WiThrottle speedstep, not DCC speedstep, in response to speed change request.

Should close #104

* use int, not byte for witSpeed
2020-12-11 14:20:13 -05: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
examples Rename .ino to match folder name and make changes for WiFi 2020-09-18 19:40:18 -04:00
Release - Architecture Doc Partially fixed alignment issue. 2020-11-25 19:02:14 -06:00
.gitattributes do not touch CR or CRLF of svg files 2020-11-26 15:55:52 +01: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 Remove all boards but Uno, Mega, and Nano 2020-11-15 16:21:25 -07:00
ArduinoTimers.h Remove all boards but Uno, Mega, and Nano 2020-11-15 16:21:25 -07:00
CommandDistributor.cpp Passing Strteamer correctly 2020-10-26 13:58:25 +00:00
CommandDistributor.h Passing outbound Ring to Withrottle 2020-10-26 13:31:51 +00:00
CommandStation-EX.ino experimental 2020-10-30 13:00:02 +00:00
config.example.h Merge branch 'wifitimeout' into candidate 2020-11-26 16:17:17 +01:00
CONTRIBUTING.md Create CONTRIBUTING.md 2020-12-08 07:34:59 -05:00
DCC.cpp Merge branch 'master' into wifi-reliability2 2020-10-20 12:31:52 +01:00
DCC.h Remove all boards but Uno, Mega, and Nano 2020-11-15 16:21:25 -07:00
DCCEX.h Lcd experimental (#46) 2020-10-12 14:32:47 -04:00
DCCEXParser.cpp Merge branch 'ackdiag' into candidate 2020-11-26 16:20:34 +01:00
DCCEXParser.h Mcommand (#100) 2020-11-24 07:49:15 -05:00
DCCWaveform.cpp ack pulse length configurable from diag 2020-11-24 21:39:21 +01:00
DCCWaveform.h ack pulse length configurable from diag 2020-11-24 21:39:21 +01:00
defines.h experimental 2020-10-30 13:00:02 +00:00
DIAG.h Lcd experimental (#46) 2020-10-12 14:32:47 -04:00
EEStore.cpp better isprint instead 2020-10-28 23:19:55 +01:00
EEStore.h D EEPROM command 2020-10-04 21:20:13 +02:00
EthernetInterface.cpp Working Ethernet!! 2020-11-05 10:54:16 +00:00
EthernetInterface.h experimental 2020-10-30 13:00:02 +00: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 special treatment for Pololu board 2020-11-01 10:16:29 +01:00
MotorDriver.h different approach to Polplu board and UNUSED_PIN=127 2020-10-31 22:45:06 +01:00
MotorDrivers.h different approach to Polplu board and UNUSED_PIN=127 2020-10-31 22:45:06 +01: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 Update Outputs.cpp 2020-10-28 14:27:16 -04: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 Update README.md 2020-11-14 04:24:07 -07:00
RingStream.cpp Ring count improvements 2020-10-27 10:38:30 +00:00
RingStream.h Ring count improvements 2020-10-27 10:38:30 +00:00
Sensors.cpp no float in Sensor no more 2020-10-26 09:10:45 +01:00
Sensors.h no float in Sensor no more 2020-10-26 09:10:45 +01:00
StringFormatter.cpp experimental 2020-10-30 13:00:02 +00:00
StringFormatter.h experimental 2020-10-30 13:00:02 +00:00
Timer.cpp Remove all boards but Uno, Mega, and Nano 2020-11-15 16:21:25 -07: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 prepare version for release 2020-10-22 20:38:10 +02:00
VirtualTimer.h Embed ArduinoTimers library 2020-08-23 14:14:04 +01:00
WifiInboundHandler.cpp Cleaner purge after error or connect fail 2020-10-27 12:33:01 +00:00
WifiInboundHandler.h Compiler warning 2020-11-05 10:53:55 +00:00
WifiInterface.cpp Merge branch 'wifitimeout' into candidate 2020-11-26 16:17:17 +01:00
WifiInterface.h DONT_TOUCH_WIFI_CONFIG feature 2020-11-14 13:17:47 +01:00
WiThrottle.cpp FIX: return WiThrottle speedstep, not DCC speedstep, in response to speed change request (#105) 2020-12-11 14:20:13 -05:00
WiThrottle.h Passing Strteamer correctly 2020-10-26 13:58:25 +00:00

What is DCC++ EX?

DCC++ EX is the organization maintaining several codebases that together represent a fully open source DCC system. Currently, this includes the following:

  • CommandStation-EX - the latest take on the DCC++ command station for controlling your trains. Runs on an Arduino board, and includes advanced features such as a WiThrottle server implementation, turnout operation, general purpose inputs and outputs (I/O), and JMRI integration.
  • exWebThrottle - a simple web based controller for your DCC++ command station.
  • BaseStation-installer - an installer executable that takes care of downloading and installing DCC++ firmware onto your hardware setup.
  • BaseStation-Classic - the original DCC++ software, packaged in a stable release. No active development, bug fixes only.

A basic DCC++ EX hardware setup can use easy to find, widely avalable Arduino boards that you can assemble yourself.

Both CommandStation-EX and BaseStation-Classic support much of the NMRA Digital Command Control (DCC) standards, including:

  • simultaneous control of multiple locomotives
  • 2-byte and 4-byte locomotive addressing
  • 128-step speed throttling
  • Activate/de-activate all accessory function addresses 0-2048
  • Control of all cab functions F0-F28
  • Main Track: Write configuration variable bytes and set/clear specific configuration variable (CV) bits (aka Programming on Main or POM)
  • Programming Track: Same as the main track with the addition of reading configuration variable bytes

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.

To utilize this sketch, you can use the following:

  1. (beginner) our automated installer
  2. (intermediate) download the latest version from the releases page
  3. (advanced) use git clone on this repository

Not using the installer? 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. Rename or copy config.example.h to config.h. If you do not have the standard setup, you must edit config.h according to the help texts in config.h.

What's new in CommandStation-EX?

  • WiThrottle server built in. Connect Engine Driver or WiThrottle clients directly to your Command Station
  • WiFi and Ethernet shield support
  • No more jumpers or soldering!
  • Direct support for all the most popular motor control boards
  • I2C Display support
  • Improved short circuit detection and automatic reset from an overload
  • Current reading, sensing and ACK detection settings in milliAmps instead of just pin readings
  • Improved adherence to the NMRA DCC specification
  • Complete support for all the old commands and front ends like JMRI
  • Railcom cutout (beta)
  • Simpler, modular, faster code with an API Library for developers for easy expansion
  • New features and functions in JMRI
  • Automation (coming soon)

NOTE: DCC-EX is a major rewrite to the code. We started over and rebuilt it from the ground up! For what that means to you, click HERE.

More information

You can learn more at the DCC++ EX website

  • November 14, 2020