#ifndef version_h #define version_h #include "StringFormatter.h" #define VERSION "4.1.3" // 4.1.3 Bugfix: Ethernet init order // 4.1.2 Bugfix: Ethernet shield W5100 does not report HW or link level // 4.1.1 Bugfix: preserve turnout format // Bugfix: parse multiple commands in one buffer string correctly (ex: ) // Bugfix: command signal status of EX-RAIL tasks or threads // Bugfix: EX-RAIL read long loco addr // Bugfix: Add space character after version string 4.1.1 for JMRI parsing. // Improved display and loop time for signals make service start to be outside the DONT_TOUCH_WIFI_CONF area // Improve WiFi startup by making service start to be outside the DONT_TOUCH_WIFI_CONF area // 4.1.0 ... // UNO Progmem optimized to allow for small EXRAIL Automation scipts // 4.0.2 Command Station and EX-RAIL Ehancements & Additions: // New JA, JR, JT commands availabe for Throttle Developers to obtain Route, Roster and Turnout descriptions for communications // Change ACK defaults now set to LIMIT 50mA, MIN 2000uS, MAX 20000uS for more compatibility with non NMRA compliant decoders // New Commands for the Arduino IDE Serial Monitor and JMRI DCC++ Traffic Monitor // to turn a individual LED Signal On & Off // " // " // command to stop all tasks, and Diagnostic messages when KILL is used // command to obtain current throttle settings // Allow WRITE CV on PROG // Updated CV read command . Equivalent to . Uses the verify callback. // Change callback parameters are now optional on PROG // Code: Fix weak reference to myFilter // myFilter automatic detection (no need to call setFilter) // Improved SIGNALs startup and diagnostics // Incoming LCN turnout throw // Allow turnout ID of "0" // Code: struct TurnoutData to enable EEPROM in v 4.0 format // Broadcast jopin after DriveAway // Corrections to I2C code: // 1) I2CManager_Mega4809.h: Correct bitwise 'and' to logical 'and' - no impact. // 2) I2CManager_Wire.h: Ensure that error codes from Wire subsystem are passed back to caller in queueRequest(). // New EX-RAIL Functions to use in Automation(n), ROUTE(N) & SEQUENCE(N) scripts // Automatically assign a name with ALIAS(name) without having to define it first // ALIAS now has the aility to use Low underscore in keywords e.g., MY_KEYWORD // ATGTE & ATLT wait for analog value, (At Greater Than or Equal and At Less Than a certain value) // FADE command now works for LEDs connected on PCA9685 Servo/Signal board Output vpins // FORGET Forgets the current loco in DCC reminder tables saving memory and wasted packets sent to the track // "IF" signal detection with IFRED(signal_id), IFAMBER(signal_id), IFGREEN(signal_id) // KILLALL command to stop all tasks, and Diagnostic messages when KILL is used // PARSE <> commands in EXRAIL allows sending of DCC-EX commands from EX-RAIL // SERVO_SIGNAL Servo signals assigned to a specific servo turnout // SIGNALH High-On signal pins (Arduino normally handles active LOW signals. This allows for active HIGH) // HIDDEN turnouts (hide a REAL turnout and create a VIRTUAL turnout to handle actions that happen BEFORE a turnout is thrown) // VIRTUAL_TURNOUT definition // README.md: removed misleading "folder/subforlders" (#218) // README.md: fix dead link to rewrite (#217) in notes/rewrite.md // 4.0.1 Additional EXRAIL updates // EXRAIL BROADCAST("msg") // EXRAIL POWERON (only turns on MAIN) // Remove optional EXRAIL/ENDEXRAIL from myAutomation.example.h (#215) // Use "startup sequence" to describe the initial instructions // Add description of display scroll modes // GetLocoCallback() restructured for better readability and put broadcastPower() at right place // 4.0.0 Major Production Release with New Functional and non-functional changes. // Engine Driver "DriveAway" feature enhancement // 'Discovered Server' multicast Dynamic Network Server (mDNS) displays available WiFi connections to a DCC++EX Command Station // New EX-RAIL "Extended Railroad Automation Instruction Language" automation capability. // EX-Rail Function commands for creating Automation, Route & Sequence Scripts // EX-RAIL “ROSTER” Engines Id & Function key layout on Engine Driver or WiThrottle // EX-RAIL DCC++EX Commands to Control EX-RAIL via JMRI Send pane and IDE Serial monitors // New JMRI feature enhancements; // Reads DCC++EX EEPROM & automatically uploades any Signals, DCC Turnouts, Servo Turnouts, Vpin Turnouts , & Output pane // Turnout class revised to expand turnout capabilities, new commands added. // Provides for multiple additional DCC++EX WiFi connections as accessory controllers or CS for a programming track when Motor Shields are added // Supports Multiple Command Station connections and individual tracking of Send DCC++ Command panes and DCC++ Traffic Monitor panes // New HAL added for I/O (digital and analogue inputs and outputs, servos etc) // Automatically detects & connects to supported devices included in your config.h file // Support for MCP23008, MCP23017 and PCF9584 I2C GPIO Extender modules. // Support for PCA9685 PWM (servo) control modules. // Support for analogue inputs on Arduino pins and on ADS111x I2C modules. // Support for MP3 sound playback via DFPlayer module. // Support for HC-SR04 Ultrasonic range sensor module. // Support for VL53L0X Laser range sensor module (Time-Of-Flight). // Added diagnostic command to show configured devices // New Processor Support added // Compiles on Nano Every and Teensy // Native non-blocking I2C drivers for AVR and Nano architectures (fallback to blocking Wire library for other platforms). // Can disable EEPROM code // EEPROM layout change - deletes EEPROM contents on first start following upgrade. // Output class now allows ID > 255. // Configuration options to globally flip polarity of DCC Accessory states when driven from command and command. // Increased use of display for showing loco decoder programming information. // Can define border between long and short addresses // Turnout and accessory states (thrown/closed = 0/1 or 1/0) can be set to match RCN-213 // Bugfix: one-off error in CIPSEND drop // Bugfix: disgnostic display of ack pulses >32kus // Bugfix: Current read from wrong ADC during interrupt // 3.2.0 Development Release Includes all of 3.1.1 thru 3.1.7 enhancements // 3.1.7 Bugfix: Unknown locos should have speed forward // 3.1.6 Make output ID two bytes and guess format/size of registered outputs found in EEPROM // 3.1.5 Fix LCD corruption on power-up // 3.1.4 Refactor OLED and LCD drivers and remove unused code // 3.1.3 Add a loop delay to give more time for sensing an Ethernet cable connection // 3.1.2 Eliminate wait after write when prog is joined or prog power is off // 3.1.1 SH1106 OLED Display Offset Fix // 3.0.16 Ignore CV1 bit 7 read rejected by decoder when identifying loco id. // 3.0.15 only send function commands once, not 4 times // 3.0.14 gap in ack tolerant fix, prog track power management over join fix. // 3.0.13 Functions>127 fix // 3.0.12 Fix HOSTNAME function for STA mode for WiFi // 3.0.11 28 speedstep support // 3.0.10 Teensy Support // 3.0.9 rearranges serial newlines for the benefit of JMRI. // 3.0.8 Includes <* *> wraps around DIAGs for the benefit of JMRI. // 3.0.7 Includes merge from assortedBits (many changes) and ACK manager change for lazy decoders // 3.0.6 Includes: // Fix Bug that did not let us transmit 5 byte sized packets like PoM // 3.0.5 Includes: // Fix Fn Key startup with loco ID and fix state change for F16-28 // 3.0.4 Includes: // Wifi startup bugfixes // 3.0.3 Includes: // command to write loco address and clear consist // command will allow for consist address // Startup commands implemented #endif