Releases: DCC-EX/CommandStation-EX
EX-CommandStation 5.6.0 Production Release
Version 5.6.0 Release Notes
The DCC-EX Team is pleased to release CommandStation-EX v5.6.0 as a Production Release for the general public.
This is a Major new release, with bug fixes as well as major new features.
Read on below, and also please ensure you review our newly updated documentation at https://dcc-ex.com
EX-CommandStation features, fixes, and enhancements
-
Beta support for Nucleo-144 boards, specifically the Ethernet-equipped F429ZI and F439ZI
-
Discontinued support for UNO and Nano Arduino platforms, due to both RAM and FLASH limitations on these models. The version 5.4.x series is the last series that supports UNO and Nano Arduino platforms.
-
Add Booster mode support for the EX-CSB1, enabling DCC waveform replication out of up to 4 DCC outputs on an EX-CSB1
-
Add Sniffer mode support for the EX-CSB1, enabling merging of DCC commands from any legacy DCC command station, with the DCC packet queue on the EX-CSB1
-
Add further I2C device support, including: Adafruit NeoDriver board for driving NeoPixels and WS2811 compatible RGB LED strings up to 500 LEDs per device, DS1307 Real Time Clock, SC16IS752 single and dual UART driving DFPlayer modules
-
Add Momentum feature for the Command Station, that does not rely on CV values, and can operate on DCC or DC driven locos
-
Add Consist feature for the Command Station, that does not rely on CV values. All throttle commands to the nominated lead loco are sent to the remaining locos in the consist
-
RailCom cutout implemented on mega2560 with EX8874 motor shield, support for ESP32 and STM32 platforms is under development
-
DCC packet queue (DCC packet sending optimization and added 5ms gap due to new RCN requirement)
-
EXRAIL compile time checking of errors in EXRAIL code, looking for duplicate and missing IDs for automation, routes, sequences, calls, latches and reserves that are out of range, and speeds out of range
-
Dynamic allocation of loco table entries
-
ESP32 can turn wifi off, which may be useful when used in Booster mode, or when only managed via its USB port (JMRI etc.)
New DCCEX Protocol Messages:
- R LOCOID and R CONSIST
- @ for LCD
- ^ for consist
- k and K for block enter/exit
- m for momentum
- !P !R !Q (estop functions)
- y sound controls
- JM stash functions
- A send extended accessory signal aspect packets
- o NeoPixel/RGB LED control
Bugfixes:
- ESP32 packet generation could miss packets
- DFPlayer bugs fixed
- STM32 DCC waveform gaps fixed
- ESP32 WIFI AP mode was not always selected when requested
- Number of active mobile decoders tuned dynamically according to available RAM
Known Issues
- Installer v0.20 does not support some CSB1 specific
config.hoptions: BOOSTER_INPUT, WIFI_LED - Installer v0.20 does not support some nucleo boards
EXRAIL enhancements
For details on these changes and new commands, refer to the documentation.
- Add
STASHcommand to save a loco - Add
ROUTE_DISABLEDmacro - Add
STEALTHmacro to allow arbitrary C++ code to be embedded as a single step in an EXRAIL sequence. Serious engineers only. - Add
STEALTH_GLOBALmacro to insert code such as static variables and functions that may be utilized by multiple STEALTH operations. ADVANCED C++ users only. - Add
HAL_IGNORE_DEFAULTSmacro to turn off the built-in default I2C device definitions - Add
JMRI_SENSORmacro can now create an entire range of sensor IDs - Add
CONFIGURE_SERVOmacro as a more convenient means of configuring servos in myAutomation.h - Add
ASPECTmacro to set aspect on a DCC accessory signal - Add
DCCX_SIGNALmacro for defining a signal - Add
BLINKcommand to blink a vpin in a pattern defined by the milliseconds it will be on and off - Add
FTOGGLEcommand to toggle a function on the current loco - Add
XFTOGGLEcommand to toggle a function on the named loco - Add
TOGGLE_TURNOUTtoggles the named turnout - Add
ONBUTTONmacro to start a task once a button input passes the debounce criteria - Add
ONSENSORmacro to start a task based on a sensor change - Add
NEOPIXELmacro to control NeoPixels/RGB LEDs - Add
NEOPIXEL_SIGNALmacro to control single NeoPixel/RGB LED signals
See also: https://github.com/DCC-EX/CommandStation-EX/blob/v5.6.0-Prod/version.h
We recommend to use our installer v0.20 now or v0.21 when available to install or upgrade to this release for the EX-CSB1 and Mega platforms
We have an EX-Installer update coming (v0.21) to handle the additional Nucleo options. In the meantime, we recommend Visual Studio Code with PlatformIO for those, and most other DIY options.
Other methods are shown below for your reference.
You can get the source code from GitHub with GitHub Desktop:
- Install GitHub Desktop using this URL: https://desktop.github.com/download/
- Select Clone Repository from the File menu
- Click on the URL tab
- Paste in the DCC-EX EX-CommandStation URL: https://github.com/DCC-EX/CommandStation-EX.git
- Select a folder for the Local Path into which the repository will be cloned, use a final folder name of CommandStation-EX if you intend to use the Arduino IDE, or anything you like if using Visual Studio Code and PlatformIO
- Click Clone
- Once downloaded, choose v5.6.0-Prod in the Current Branch drop-down
You may then open the Arduino IDE and point it at the CommandStation-EX folder, or Visual studio code (GitHub Desktop can launch VSC for you.)
You can also get the source code from GitHub with git from command line like this:
git clone https://github.com/DCC-EX/CommandStation-EX.git
cd CommandStation-EX
git checkout v5.6.0-Prod
If you already have git in use, a git pull command is needed to update your local files, and then the last command above to checkout the tag (or branch) you want to use.
Or from the archive files below (choose one of the two first files, zip or tar.gz, NOT the two at the end which are autogenerated by github and contain the wrong directory name)
Be sure to unpack into a new folder, not over the top of an old install.
EX-CommandStation v5.4.19 Production Release
This is a bugfix release. Fixes are:
- PCA9685 driver did not handle mux I2C addresses for writing registers
- EXRAIL failed TURNTABLE create commands (I2C off) can crash CS
- EXRAIL deref nullptr failure
- Replace the SC power status with something better
- Update SensorCAM from version 305 to 308
See as well https://github.com/DCC-EX/CommandStation-EX/blob/v5.4.19-Prod/version.h
We recommend to use our installer to install or upgrade to this release
Other ways are shown below.
You can get the source code from github with git from command line like this:
git clone https://github.com/DCC-EX/CommandStation-EX.git
cd CommandStation-EX
git checkout v5.4.19-Prod
If you already have git in use, only the last command is needed to update your local files.
or from the archive files below (choose one of the two first, zip or tar.gz, not the two at the end which are autogenerated by github and contain the wrong directory name)
Be sure to unpack at a new place, not over an old install.
EX-CommandStation v5.4.15 Production Release
This is a bugfix release. Major fixes are:
- Fix overflow when all speedtable entries were used up
- Keep power status of track when doing join/unjoin, new keep power option for setTrackMode()
- Bug fix for SSD1309 OLED controllers
- Negative route ids managed correct now
- Compile optimization: RailcomTimer not started on Uno
- Make sniffer more robust against loop() not keeping up.
- Do not hardcode SNIFFER_LED pin
The full list of changes can be found in the https://github.com/DCC-EX/CommandStation-EX/blob/v5.4.15-Prod/version.h file.
We recommend to use our installer to install or upgrade to this release
Other ways are shown below.
You can get the source code from github with git from command line like this:
git clone https://github.com/DCC-EX/CommandStation-EX.git
cd CommandStation-EX
git checkout v5.4.15-Prod
or from the archive files below (choose one of the two first, zip or tar.gz, the two at the end are autogenerated by github)
EX-CommandStation v5.4.10 Production Release
This is a bugfix release
Bugfixes:
-
Due to an internal timing error, on AVR (Mega, Uno) sometimes DCC-idle instead of DCC-mobile decoder refresh packets were sent. (Bug introduced in 5.2.13)
-
Handle error cases of
<W CONSIST longaddr> -
Remind all function groups in same way
-
EXRAIL: Fix typo in
CLEAR_ALL_STASHcommand
Enhancements:
-
Handle address read of decoders that do report invalid values of
CV20. CV20 is eiter NMRA reserved or has to RCN a max value of 120. -
Insert idle packet once per reminder loop for decoders that rely
on receiving such packets to do their own housekeeping.
The list of changes can as well be found in the https://github.com/DCC-EX/CommandStation-EX/blob/v5.4.10-Prod/version.h file.
You can get the source code from github with git
git clone https://github.com/DCC-EX/CommandStation-EX.git
cd CommandStation-EX
git checkout v5.4.10-Prod
or from the archive files below (choose one of the two first, zip or tar.gz)
EX-CommandStation v5.4.6 Production Release
This is a bugfix release
Fixed:
- DCCEX Parser should not drop further commands when they are sent in same packet (read from TCP stream in the same read)
Other enhancements:
- Handle power better for joined tracks
- Report power status "joined" last if there is a joined track (makes parsing easier for throttles)
A full list of changes can be found in the version.h file.
You can get the source code from github with git
git clone https://github.com/DCC-EX/CommandStation-EX.git
cd CommandStation-EX
git checkout v5.4.6-Prod
or from the archive files below
EX-CommandStation v5.4.4 Production Release
This release is NOT recommended. Please use a newer one
Version 5.4.4 Release Notes
This is a Major new release, including all changes of the v5.2 devel series and major new features.
This release supports the following hardware:
- Arduino Uno, Arduino Nano, Arduino Mega 2560
- ESP32 boards EX-CSB1 and ESPduino32
- STM32 boards F411RE and F446RE
This release has the following major new features:
- Autoreverser mode for all platforms
- Various HAL drivers for TCA8418, I2C DFPlayer, Adafruit NeoDriver NeoPixel board, TM1638, EX-FastClock, EX-SensorCAM
- EXRAIL extensions
- JMRI specific enhancements
A full list of changes can be found in the version.h file.
You can get the source code from github with git
git clone https://github.com/DCC-EX/CommandStation-EX.git
cd CommandStation-EX
git checkout v5.4.4-Prod
or from the archive files below
EX-CommandStation v5.0.7 Production Release
The DCC-EX Team is pleased to release CommandStation-EX v5.0.7 as a Production Release for the general public.
This release is a Bugfix release to fix various issues.
EX-CommandStation features, fixes, and enhancements
- Execute 30ms off time prior to re-JOIN of PROG to MAIN on ESP32 hosts
- Check WiFi AT firmware revisions, specifically looking for v2.2.0.0-dev as this is non-functional
- Correct command missing default roster
- Correct lost TURNOUTL description
- Correct myHal.cpp_example.txt to include PCA9555 header, and correct the HALDisplay create call
- Correct issue with command parsing
- Add list of OPCODEs for DCCEXParser.cpp
Full Changelog: v5.0.0-Prod...v5.0.7-Prod
EX-CommandStation v5.0.0 Production Release
Version 5.0.0 Release Notes
The DCC-EX Team is pleased to release CommandStation-EX v5.0.0 as a Production Release for the general public.
This is a Major new release, including some breaking changes as well as major new features.
Read on below, and also please ensure you revise our newly updated documentation at https://dcc-ex.com
NEW EX-Installer
NEW Please try our newly re-created EX-Installer!
We'll still provide the source archives with this release, but our newly created EX-Installer is all you should need to get up and running with EX-CommandStation, and it will also let you install some of our other new products such as EX-IOExpander and EX-Turntable.
EX-CommandStation features, fixes, and enhancements
- NEW TrackManager - Run both DC and DCC trains from the same controller and switch your tracks between DC and DCC modes live
- Beta support for new, 32 bit microcontrollers including ESP32 WROOM and some STMicroelectronics Nucleo boards
- Extensive optimisation of HIGHMEM useage to free up PROGMEM below the 64kb and increase the useful life of the AVR Mega2560 platform
- Add option to disable programming to allow limited platforms such as the Arduino Uno to run limited EXRAIL scripts
- Add support for our new fast clock EX-FastClock
- Add support for our new I/O expander EX-IOExpander
- Add support for our new turntable controller EX-Turntable
- Add support for duinoNodes
- Add support for a rotary encoder
- Add support for PCF8575 and PCA/TCA9555 GPIO devices
- Enhanced overcurrent detection, including enhancing the behaviour to deal with inrush current issues
- Moved startup of the HAL earlier in the boot sequence
- Improved performance for ADC (analogue to digital) reads
- Enhancements to I2C bus retries and timeouts
- Support for I2C multiplexers to help with devices with static or limited address ranges
- Support for multiple I2C displays
- Improved handling of conflicting I2C addresses and Vpin allocations
- Enhanced DFPlayer error handling
- Add
<JG>and<JI>for multi-track gauges to support TrackManager - Improved stability for the VL53L0X ToF sensor
- Bugfix for signals being inverted (active high was actually active low and vice versa)
- Bugfix for Ethernet allowing a static IP address to be set
Known Issues
- We have one known issue in version 5 where DFPlayer doesn't work correctly in some circumstances, which we are investigating and will fix soon
EXRAIL enhancements
For details on these changes and new commands, refer to the documentation.
- BREAKING CHANGE Removed implicit
AUTOSTARTfrom myAutomation.h, simply addAUTOSTARTto the beginning of the file to restore this - Enhance
SPEEDcommand to respond to external direction changes - Add
DCC_SIGNALcommand to control DCC Accessory based signals - Add
VIRTUAL_SIGNALcommand to enable user-defined signal sequences - Add
ONGREEN,ONAMBER, andONREDsignal event handlers to respond to signal changes - Add
TURNOUTLcommand to enable using a linear DCC address for DCC Accessory turnouts - Add
MOVETTcommand to enable controlling an EX-Turntable - Add
IFREcommand to test the position of a rotary encoder - Add
ONCHANGEevent handler to respond to a position change of a rotary encoder - Add
ONCLOCKTIMEandONCLOCKMINSevent handlers to respond to EX-FastClock times - Add
IFLOCOcommand to test if the provided loco ID is used in the sequence - Add
FORGETcommand to drop the provided loco ID from reminder tables - Add
SET_TRACKcommand to configure TrackManager in sequences - Add
SERIAL4,SERIAL5, andSERIAL6to support newer microcontrollers with more/different interfaces - Add
SCREENcommand to display messages on multiple displays - Add
POWERONandPOWEROFFcommands to control track power
Answer to the frequently asked question
We've been asked a lot about the new Arduino Uno R4 and Arduino Giga. These aren't just a "new revision" of existing platforms and are significantly different, meaning we have no immediate plans to support these.
Read our news article No support planned for the Uno R4 or Giga
Version 4.2.54 Devel release
Download Links:
Changes since last tagged devel version:
- EX8874 shield in config.example.h
- Fix: Better warnings for pin number errors
- Fix: Default roster list possible in Withrottle and
- Fix: Pin handling supports pins up to 254
- Fix: Fault pin handling made more straight forward
- Experimental support for sabertooth motor controller on ESP32
- Add DISABLE_PROG to disable programming to save RAM/Flash
- Fixes: estop all, turnout eeprom, cab ID check
- Exrail SPEED take notice of external direction change
- BROADCAST/WITHROTTLE Exrail macros
- Correct response to <JA 0>
- Support boards with inverted fault pin
Version 4.1.6 release note
The DCC-EX Team is pleased to release CommandStation-EX v4.1.6 as a Production Release for the general public.
- Contains motor shield definition for the DRV8874 based EX8874 motor shield.
- Bugfix for WiThrottle turnout command.