Releases: DccPlusPlus/BaseStation
Releases · DccPlusPlus/BaseStation
The 3 R's
Improvements and Bug Fixes to CV Reading, Writing, and Arithmetic
Major:
- Complete overhaul of the internal logic and computations for reading CVs (on the Programming Track, of course). Should hopefully be much more robust than original method (see commit of Dec 13, 2015, for detailed info)
Also:
- Added check to ensure UNO is always configured for Serial (not Ethernet)
- Added support for Ethernet-2 Shield from Arduino.org
Bug Fixes:
- Re-ordered setup() code so that values previously saved in EEPROM are loaded before Ethernet is initialized (which could take 5+ seconds)
- Fixed bug in CV-reading logic so that upon an error it returns a -1 (as documented) instead of 255 (which is otherwise a valid value)
- Fixed bug in setting parameters for Programming Track OC3B-Timer on Mega (introduced when Prog Signal moved from OC0B to OC3B)
- Fixed bug in Short-Circuit detection logic for Mega (introduced when Prog Signal moved from OC0B to OC3B)
Ethernet Networking
DCC++ now supports Ethernet Networking!
With this release you can add an Ethernet Shield to your DCC++ Base Station (Arduino Mega only). When configured as such, all communication occurs over the Ethernet network instead of the Serial Port. Multiple connections are permitted allowing simultaneous use of more than one controlling interface. Note: the DCC++ Controller has likewise been updated to utilize Ethernet communications with the Base Station).
Other significant features in this release include:
- Creation of a Config.h file to store all user-definable settings (e.g. whether to use Ethernet or Serial communications)
- New functionality to define and control OUTPUT pins using a command
Minor features include:
- A new command that returns sensor status
- An initial status message written to the Serial Port, regardless of whether Ethernet or Serial communication is selected, and that includes a response indicating the type of communication selected, and the IP address if Ethernet is active.
- A fix that allows for compilation under a Mega 1280 as well as the usual Mega 2560
CHANGES:
- To avoid conflict with the Ethernet Shield's use of pin 4, the Programming Track Logic Signal is now generated on Pin 2, instead of Pin 4. This means that Pin 2 must be connected to Pin 13 when using an Arduino Motor Shield (previously Pin 4 needed to be connected to Pin 13). This only applies to DCC++ Base Station compiled for the Arduino Mega. Pins and connections for the Arduino Uno are unchanged (and are not presently compatible with use of an Ethernet Shield).
- DCCpp_Uno.h now includes logic that adds an Ethernet Library only when Ethernet Networking is selected in the Config.h file. This logic requires the latest version of the Arduino IDE - version 1.6.6. This release will not properly compile under Arduino IDE 1.6.5.
The Grand Configurator
This update dramatically improves the methods used to configure DCC++
- Auto detect and compile-time configuration of Signal Pins for either Arduino Mega 2560 or Arduino Uno
- Compile-time setting to configure Motor Shield Pins for either Arduino or Pololu MC33926
- New methods for creating Turnout and Sensor definitions (see comments in Accessories.cpp and Sensor.cpp):
- existing command now has variations to add/edit/delete Turnouts
- new
command to add/edit/delete Sensors
- New and commands to store and clear Turnout and Sensor definitions in EEPROM
- Improved Sensor checking:
- is returned when Sensor Pin changes from HIGH to LOW state (same as in previous version)
- is returned when Sensor Pin changes back from LOW to HIGH state (new feature)
Initial Release
First public release of the DCC++ Base Station for Arduino Uno.