2020-09-24 03:53:33 +02:00
|
|
|
#ifndef version_h
|
|
|
|
#define version_h
|
|
|
|
|
|
|
|
#include "StringFormatter.h"
|
|
|
|
|
2024-07-04 18:20:37 +02:00
|
|
|
#define VERSION "5.2.65"
|
|
|
|
// 5.2.65 - Speedup Exrail SETFREQ
|
2024-07-01 04:29:34 +02:00
|
|
|
// 5.2.64 - Bugfix: <0 PROG> updated to undo JOIN
|
2024-06-29 10:22:23 +02:00
|
|
|
// 5.2.63 - Implement WIFI_LED for ESP32, ESPduino32 and EX-CSB1, that is turned on when STA mode connects or AP mode is up
|
|
|
|
// - Add BOOSTER_INPUT definitions for ESPduino32 and EX-CSB1 to config.example.h
|
|
|
|
// - Add WIFI_LED definitions for ESPduino32 and EX-CSB1 to config.example.h
|
2024-06-18 22:21:51 +02:00
|
|
|
// 5.2.62 - Allow acks way longer than standard
|
2024-06-13 14:08:40 +02:00
|
|
|
// 5.2.61 - Merg CBUS ACON/ACOF/ONACON/ONACOF Adapter interface.
|
|
|
|
// - LCC Adapter interface throttled startup,
|
|
|
|
// (Breaking change woith Adapter base code)
|
2024-05-23 22:46:47 +02:00
|
|
|
// 5.2.60 - Bugfix: Opcode AFTEROVERLOAD does not have an argument that is a pin and needs to be initialized
|
|
|
|
// - Remove inrush throttle after half good time so that we go to mode overload if problem persists
|
2024-05-22 01:16:25 +02:00
|
|
|
// 5.2.59 - STM32 bugfix correct Serial1 definition for Nucleo-F401RE
|
|
|
|
// - STM32 add support for ARDUINO_NUCLEO_F4X9ZI type to span F429/F439 in upcoming STM32duino release v2.8 as a result of our PR
|
2024-05-21 21:04:11 +02:00
|
|
|
// 5.2.58 - EXRAIL ALIAS allows named pins
|
2024-05-09 17:11:09 +02:00
|
|
|
// 5.2.57 - Bugfix autoreverse: Apply mode by binart bit match and not by equality
|
2024-05-07 12:20:37 +02:00
|
|
|
// 5.2.56 - Bugfix and refactor for EXRAIL getSignalSlot
|
2024-05-07 09:12:37 +02:00
|
|
|
// 5.2.55 - Move EXRAIL isSignal() to public to allow use in STEALTH call
|
2024-05-07 05:29:49 +02:00
|
|
|
// 5.2.54 - Bugfix for EXRAIL signal handling for active high
|
2024-05-07 05:13:19 +02:00
|
|
|
// 5.2.53 - Bugfix for EX-Fastclock, call I2CManager.begin() before checking I2C address
|
2024-05-07 05:10:39 +02:00
|
|
|
// 5.2.52 - Bugfix for ADCee() to handle ADC2 and ADC3 channel inputs on F446ZE and others
|
|
|
|
// - Add support for ports G and H on STM32 for ADCee() and MotorDriver pins/shadow regs
|
2024-04-21 19:41:30 +02:00
|
|
|
// 5.2.51 - Bugfix for SIGNAL: Distinguish between sighandle and sigid
|
2024-04-13 11:16:26 +02:00
|
|
|
// 5.2.50 - EXRAIL ONBUTTON/ONSENSOR observe LATCH
|
2024-04-13 10:14:55 +02:00
|
|
|
// 5.2.49 - EXRAIL additions:
|
|
|
|
// ONBUTTON, ONSENSOR
|
2024-04-12 11:25:00 +02:00
|
|
|
// 5.2.48 - Bugfix: HALDisplay was generating I2C traffic prior to I2C being initialised
|
2024-04-09 21:59:57 +02:00
|
|
|
// 5.2.47 - EXRAIL additions:
|
|
|
|
// STEALTH_GLOBAL
|
|
|
|
// BLINK
|
|
|
|
// TOGGLE_TURNOUT
|
|
|
|
// FTOGGLE, XFTOGGLE
|
|
|
|
// Reduced code-developmenmt DIAG noise
|
2024-04-07 00:49:26 +02:00
|
|
|
// 5.2.46 - Support for extended consist CV20 in <R> and <W id>
|
|
|
|
// - New cmd <W CONSIST id [REVERSE]> to handle long/short consist ids
|
2024-04-06 19:48:02 +02:00
|
|
|
// 5.2.45 - ESP32 Trackmanager reset cab number to 0 when track is not DC
|
|
|
|
// ESP32 fix PWM LEDC inverted pin mode
|
2024-04-05 14:06:36 +02:00
|
|
|
// ESP32 rewrite PWM LEDC to use pin mux
|
2024-04-02 00:05:30 +02:00
|
|
|
// 5.2.42 - ESP32 Bugfix: Uninitialized stack variable
|
2024-03-23 04:31:34 +01:00
|
|
|
// 5.2.41 - Update rotary encoder default address to 0x67
|
2024-03-18 21:18:57 +01:00
|
|
|
// 5.2.40 - Allow no shield
|
2024-03-11 14:54:18 +01:00
|
|
|
// 5.2.39 - Functions for DC frequency: Use func up to F31
|
2024-03-08 21:33:11 +01:00
|
|
|
// 5.2.38 - Exrail MESSAGE("text") to send a user message to all
|
|
|
|
// connected throttles (uses <m "text"> and withrottle Hmtext.
|
2024-02-24 20:57:38 +01:00
|
|
|
// 5.2.37 - Bugfix ESP32: Use BOOSTER_INPUT define
|
2024-02-20 15:06:07 +01:00
|
|
|
// 5.2.36 - Variable frequency for DC mode
|
2024-02-17 18:52:48 +01:00
|
|
|
// 5.2.35 - Bugfix: Make DCC Extended Accessories follow RCN-213
|
2024-02-16 13:36:33 +01:00
|
|
|
// 5.2.34 - <A address aspect> Command fopr DCC Extended Accessories
|
|
|
|
// - Exrail ASPECT(address,aspect) for above.
|
|
|
|
// - EXRAIL DCCX_SIGNAL(Address,redAspect,amberAspect,greenAspect)
|
|
|
|
// - Exrail intercept <A ...> for DCC Signals.
|
2024-02-09 12:54:53 +01:00
|
|
|
// 5.2.33 - Exrail CONFIGURE_SERVO(vpin,pos1,pos2,profile)
|
2024-02-09 11:30:08 +01:00
|
|
|
// 5.2.32 - Railcom Cutout (Initial trial Mega2560 only)
|
2024-02-09 11:15:23 +01:00
|
|
|
// 5.2.31 - Exrail JMRI_SENSOR(vpin [,count]) creates <S> types.
|
|
|
|
// 5.2.30 - Bugfix: WiThrottle sendIntro after initial N message as well
|
2024-02-03 20:05:56 +01:00
|
|
|
// 5.2.29 - Added IO_I2CDFPlayer.h to support DFPLayer over I2C connected to NXP SC16IS750/SC16IS752 (currently only single UART for SC16IS752)
|
|
|
|
// - Added enhanced IO_I2CDFPLayer enum commands to EXRAIL2.h
|
|
|
|
// - Added PLAYSOUND alias of ANOUT to EXRAILMacros.h
|
|
|
|
// - Added UART detection to I2CManager.cpp
|
2024-01-21 21:11:57 +01:00
|
|
|
// 5.2.28 - ESP32: Can all Wifi channels.
|
|
|
|
// - ESP32: Only write Wifi password to display if it is a well known one
|
2024-01-18 08:22:28 +01:00
|
|
|
// 5.2.27 - Bugfix: IOExpander memory allocation
|
2024-01-14 21:20:22 +01:00
|
|
|
// 5.2.26 - Silently ignore overridden HAL defaults
|
|
|
|
// - include HAL_IGNORE_DEFAULTS macro in EXRAIL
|
2024-01-14 03:09:22 +01:00
|
|
|
// 5.2.25 - Fix bug causing <X> after working <D commands
|
2024-01-14 03:03:42 +01:00
|
|
|
// 5.2.24 - Exrail macro asserts to catch
|
|
|
|
// : duplicate/missing automation/route/sequence/call ids
|
|
|
|
// : latches and reserves out of range
|
|
|
|
// : speeds out of range
|
2024-01-10 13:01:40 +01:00
|
|
|
// 5.2.23 - KeywordHasher _hk (no functional change)
|
2024-01-10 08:20:14 +01:00
|
|
|
// 5.2.22 - Bugfixes: Empty turnout descriptions ok; negative route numbers valid.
|
2024-01-09 01:41:29 +01:00
|
|
|
// 5.2.21 - Add STARTUP_DELAY config option to delay CS bootup
|
2024-01-08 13:20:29 +01:00
|
|
|
// 5.2.20 - Check return of Ethernet.begin()
|
2024-01-07 22:24:15 +01:00
|
|
|
// 5.2.19 - ESP32: Determine if the RMT hardware can handle DCC
|
2024-01-03 02:44:15 +01:00
|
|
|
// 5.2.18 - Display network IP fix
|
2023-12-25 17:49:16 +01:00
|
|
|
// 5.2.17 - ESP32 simplify network logic
|
2023-12-18 22:30:15 +01:00
|
|
|
// 5.2.16 - Bugfix to allow for devices using the EX-IOExpander protocol to have no analogue or no digital pins
|
2023-12-13 11:41:57 +01:00
|
|
|
// 5.2.15 - move call to CommandDistributor::broadcastPower() into the TrackManager::setTrackPower(*) functions
|
|
|
|
// - add repeats to function packets that are not reminded in accordance with accessory packets
|
2023-11-30 20:56:58 +01:00
|
|
|
// 5.2.14 - Reminder window DCC packet optimization
|
|
|
|
// - Optional #define DISABLE_FUNCTION_REMINDERS
|
2023-11-30 12:32:39 +01:00
|
|
|
// 5.2.13 - EXRAIL STEALTH
|
2023-11-30 07:38:16 +01:00
|
|
|
// 5.2.12 - ESP32 add AP mode LCD messages with SSID/PW for
|
|
|
|
// - STM32 change to UID_BASE constants in DCCTimerSTM32 rather than raw hex addresses for UID registers
|
|
|
|
// - STM32 extra UART/USARTs for larger Nucleo models
|
2023-11-27 08:15:07 +01:00
|
|
|
// 5.2.11 - Change from TrackManager::returnMode to TrackManager::getMode
|
2023-11-26 13:31:41 +01:00
|
|
|
// 5.2.10 - Include trainbrains.eu block unoccupancy driver
|
|
|
|
// - include IO_PCA9555
|
2023-11-23 15:15:58 +01:00
|
|
|
// 5.2.9 - Bugfix LCD startup with no LCD, uses <@
|
|
|
|
// 5.2.9 - EXRAIL STASH feature
|
2023-11-23 10:49:15 +01:00
|
|
|
// 5.2.8 - Bugfix: Do not turn off all tracks on change
|
|
|
|
// give better power messages
|
2023-11-21 23:04:05 +01:00
|
|
|
// 5.2.7 - Bugfix: EXRAIL ling segment
|
|
|
|
// - Bugfix: Back out wrongly added const
|
|
|
|
// - Bugfix ESP32: Do not inverse DCX direction signal twice
|
2023-11-21 11:54:43 +01:00
|
|
|
// 5.2.6 - Trackmanager broadcast power state on track mode change
|
2023-11-20 09:32:22 +01:00
|
|
|
// 5.2.5 - Trackmanager: Do not treat TRACK_MODE_ALL as TRACK_MODE_DC
|
2023-11-17 11:45:36 +01:00
|
|
|
// 5.2.4 - LCD macro will not do diag if that duplicates @ to same target.
|
|
|
|
// - Added ROUTE_DISABLED macro in EXRAIL
|
2023-11-16 08:38:39 +01:00
|
|
|
// 5.2.3 - Bugfix: Catch stange input to parser
|
2023-11-15 20:41:56 +01:00
|
|
|
// 5.2.2 - Added option to allow MAX_CHARACTER_ROWS to be defined in config.h
|
2023-11-14 00:06:53 +01:00
|
|
|
// 5.2.1 - Trackmanager rework for simpler structure
|
2023-11-11 08:15:15 +01:00
|
|
|
// 5.2.0 - ESP32: Autoreverse and booster mode support
|
2023-11-10 21:13:33 +01:00
|
|
|
// 5.1.21 - EXRAIL invoke multiple ON handlers for same event
|
2023-11-10 20:28:29 +01:00
|
|
|
// 5.1.20 - EXRAIL Tidy and ROUTE_STATE, ROUTE_CAPTION
|
2023-11-06 22:14:39 +01:00
|
|
|
// 5.1.19 - Only flag 2.2.0.0-dev as broken, not 2.2.0.0
|
|
|
|
// 5.1.18 - TURNOUTL bugfix
|
2023-10-23 11:45:52 +02:00
|
|
|
// 5.1.17 - Divide out C for config and D for diag commands
|
2023-10-16 21:08:04 +02:00
|
|
|
// 5.1.16 - Remove I2C address from EXTT_TURNTABLE macro to work with MUX, requires separate HAL macro to create
|
2023-10-13 14:59:06 +02:00
|
|
|
// 5.1.15 - LCC/Adapter support and Exrail feature-compile-out.
|
2023-10-12 20:37:38 +02:00
|
|
|
// 5.1.14 - Fixed IFTTPOSITION
|
2023-10-12 05:28:39 +02:00
|
|
|
// 5.1.13 - Changed turntable broadcast from i to I due to server string conflict
|
2023-10-11 18:06:56 +02:00
|
|
|
// 5.1.12 - Added Power commands <0 A> & <1 A> etc. and update to <=>
|
|
|
|
// Added EXRAIL SET_POWER(track, ON/OFF)
|
|
|
|
// Fixed a problem whereby <1 MAIN> also powered on PROG track
|
|
|
|
// Added functions to TrackManager.cpp to allow UserAddin code for power display on OLED/LCD
|
|
|
|
// Added - returnMode(byte t), returnDCAddr(byte t) & getModeName(byte Mode)
|
2023-10-02 06:04:47 +02:00
|
|
|
// 5.1.11 - STM32F4xx revised I2C clock setup, no correctly sets clock and has fully variable frequency selection
|
2023-09-28 11:43:22 +02:00
|
|
|
// 5.1.10 - STM32F4xx DCCEXanalogWrite to handle PWM generation for TrackManager DC/DCX
|
|
|
|
// - STM32F4xx DCC 58uS timer now using non-PWM output timers where possible
|
|
|
|
// - ESP32 brakeCanPWM check now detects UNUSED_PIN
|
|
|
|
// - ARM architecture brakeCanPWM now uses digitalPinHasPWM()
|
|
|
|
// - STM32F4xx shadowpin extensions to handle pins on ports D, E and F
|
2023-09-23 21:25:10 +02:00
|
|
|
// 5.1.9 - Fixed IO_PCA9555'h to work with PCA9548 mux, tested OK
|
2023-09-23 21:18:59 +02:00
|
|
|
// 5.1.8 - STM32Fxx ADCee extension to support ADCs #2 and #3
|
|
|
|
// 5.1.7 - Fix turntable broadcasts for non-movement activities and <JP> result
|
2023-09-13 10:46:36 +02:00
|
|
|
// 5.1.6 - STM32F4xx native I2C driver added
|
2023-09-09 23:18:54 +02:00
|
|
|
// 5.1.5 - Added turntable object and EXRAIL commands
|
|
|
|
// - <I ...>, <JO ...>, <JP ...> - turntable commands
|
|
|
|
// - DCC_TURNTABLE, EXTT_TURNTABLE, IFTTPOSITION, ONROTATE, ROTATE, ROTATE_DCC, TT_ADDPOSITION, WAITFORTT EXRAIL
|
2023-09-07 21:27:25 +02:00
|
|
|
// 5.1.4 - Added ONOVERLOAD & AFTEROVERLOAD to EXRAIL
|
2023-08-30 23:57:49 +02:00
|
|
|
// 5.1.3 - Make parser more fool proof
|
2023-08-25 19:14:03 +02:00
|
|
|
// 5.1.2 - Bugfix: ESP32 30ms off time
|
2023-08-24 10:09:38 +02:00
|
|
|
// 5.1.1 - Check bad AT firmware version
|
2023-08-18 12:40:34 +02:00
|
|
|
// - Update IO_PCA9555.h reflecting IO_MCP23017.h changes to support PCA9548 mux
|
2023-08-24 10:09:38 +02:00
|
|
|
// 5.0.1 - Bugfix: execute 30ms off time before rejoin
|
2023-08-11 00:07:02 +02:00
|
|
|
// 5.0.0 - Make 4.2.69 the 5.0.0 release
|
2023-08-04 14:45:05 +02:00
|
|
|
// 4.2.69 - Bugfix: Make <!> work in DC mode
|
2023-08-02 10:00:43 +02:00
|
|
|
// 4.2.68 - Rename track mode OFF to NONE
|
2023-08-02 01:12:32 +02:00
|
|
|
// 4.2.67 - AVR: Pin specific timer register seting
|
|
|
|
// - Protect Uno user from choosing DC(X)
|
|
|
|
// - More Nucleo variant defines
|
|
|
|
// - GPIO PCA9555 / TCA9555 support
|
2023-07-25 11:30:08 +02:00
|
|
|
// 4.2.66 - Throttle inrush current by applying PWM to brake pin when
|
|
|
|
// fault pin goes active
|
2023-07-09 12:04:40 +02:00
|
|
|
// 4.2.65 - new config WIFI_FORCE_AP option
|
2023-07-07 21:52:55 +02:00
|
|
|
// 4.2.63 - completely new overcurrent detection
|
2023-07-06 15:19:44 +02:00
|
|
|
// - ESP32 protect from race in RMT code
|
2023-06-30 21:18:45 +02:00
|
|
|
// 4.2.62 - Update IO_RotaryEncoder.h to ignore sending current position
|
|
|
|
// - Update IO_EXTurntable.h to remove forced I2C clock speed
|
|
|
|
// - Show device offline if EX-Turntable not connected
|
2023-06-26 20:01:56 +02:00
|
|
|
// 4.2.61 - MAX_CURRENT restriction (caps motor shield value)
|
2023-06-23 12:08:05 +02:00
|
|
|
// 4.2.60 - Add mDNS capability to ESP32 for autodiscovery
|
2023-06-23 01:47:20 +02:00
|
|
|
// 4.2.59 - Fix: AP SSID was DCC_ instead of DCCEX_
|
2023-06-22 22:57:59 +02:00
|
|
|
// 4.2.58 - Start motordriver as soon as possible but without waveform
|
2023-06-21 10:49:49 +02:00
|
|
|
// 4.2.57 - New overload handling (faster and handles commonFaultPin again)
|
|
|
|
// - Optimize analog read STM32
|
2023-06-20 11:32:43 +02:00
|
|
|
// 4.2.56 - Update IO_RotaryEncoder.h:
|
|
|
|
// - Improved I2C communication, non-blocking reads
|
|
|
|
// - Enable sending positions to the encoder from EXRAIL via SERVO()
|
2023-06-19 00:09:27 +02:00
|
|
|
// 4.2.55 - Optimize analog read for AVR
|
2023-06-03 22:01:14 +02:00
|
|
|
// 4.2.54 - EX8874 shield in config.example.h
|
|
|
|
// - Fix: Better warnings for pin number errors
|
2023-05-29 09:48:22 +02:00
|
|
|
// - Fix: Default roster list possible in Withrottle and <jR>
|
|
|
|
// - Fix: Pin handling supports pins up to 254
|
2023-05-20 23:15:15 +02:00
|
|
|
// 4.2.53 - Fix: Fault pin handling made more straight forward
|
2023-05-20 14:57:00 +02:00
|
|
|
// 4.2.52 - Experimental support for sabertooth motor controller on ESP32
|
2023-05-09 14:11:18 +02:00
|
|
|
// 4.2.51 - Add DISABLE_PROG to disable programming to save RAM/Flash
|
2023-05-08 00:22:31 +02:00
|
|
|
// 4.2.50 - Fixes: estop all, turnout eeprom, cab ID check
|
2023-05-02 23:02:52 +02:00
|
|
|
// 4.2.49 - Exrail SPEED take notice of external direction change
|
2023-05-02 13:29:03 +02:00
|
|
|
// 4.2.48 - BROADCAST/WITHROTTLE Exrail macros
|
2023-04-19 12:18:47 +02:00
|
|
|
// 4.2.47 - Correct response to <JA 0>
|
2023-04-17 23:40:48 +02:00
|
|
|
// 4.2.46 - Support boards with inverted fault pin
|
2023-04-12 13:11:43 +02:00
|
|
|
// 4.2.45 - Add ONCLOCKMINS to FastClock to allow hourly repeat events
|
2023-04-11 04:01:25 +02:00
|
|
|
// 4.2.44 - Add PowerShell installer EX-CommandStation-installer.exe
|
2023-04-10 01:47:00 +02:00
|
|
|
// 4.2.43 - Fix STM32 set right port mode bits for analog
|
2023-04-08 18:22:39 +02:00
|
|
|
// 4.2.42 - Added EXRAIL TURNOUTL Macro definition
|
2023-04-06 00:19:43 +02:00
|
|
|
// 4.2.41 - Move HAl startup to ASAP in setup()
|
|
|
|
// - Fix DNOU8 output pin setup to all LOW
|
2023-04-05 23:03:59 +02:00
|
|
|
// 4.2.40 - Automatically detect conflicting default I2C devices and disable
|
2023-03-31 17:40:40 +02:00
|
|
|
// 4.2.39 - DFplayer driver now polls device to detect failures and errors.
|
2023-03-29 22:54:18 +02:00
|
|
|
// 4.2.38 - Clean up compiler warning when IO_RotaryEncoder.h included
|
2023-03-27 13:39:11 +02:00
|
|
|
// 4.2.37 - Add new FLAGS HAL device for communications to/from EX-RAIL;
|
|
|
|
// - Fix diag display of high VPINs within IODevice class.
|
2023-03-25 12:14:58 +01:00
|
|
|
// 4.2.36 - do not broadcast a turnout state that has not changed
|
2023-03-27 16:44:47 +02:00
|
|
|
// - Use A2/A3 for current sensing on ESP32 + Motor Shield
|
2023-03-23 20:52:49 +01:00
|
|
|
// 4.2.35 - add <z> direct pin manipulation command
|
2023-03-20 22:04:08 +01:00
|
|
|
// 4.2.34 - Completely fix EX-IOExpander analogue inputs
|
2023-03-20 10:05:53 +01:00
|
|
|
// 4.2.33 - Fix EX-IOExpander non-working analogue inputs
|
2023-03-19 23:06:02 +01:00
|
|
|
// 4.2.32 - Fix LCD/Display bugfixes from 4.2.29
|
2023-03-18 19:52:01 +01:00
|
|
|
// 4.2.31 - Removes EXRAIL statup from top of file. (BREAKING CHANGE !!)
|
2023-03-27 16:44:47 +02:00
|
|
|
// Just add AUTOSTART to the top of your myAutomation.h to restore this function.
|
2023-03-18 16:05:21 +01:00
|
|
|
// 4.2.30 - Fixes/enhancements to EX-IOExpander device driver.
|
2023-03-15 16:41:02 +01:00
|
|
|
// 4.2.29 - Bugfix Scroll LCD without empty lines and consistent
|
2023-03-15 10:39:30 +01:00
|
|
|
// 4.2.28 - Reinstate use of timer11 in STM32 - remove HA mode.
|
|
|
|
// - Update IO_DFPlayer to work with MP3-TF-16P rev3.
|
2023-03-14 20:50:24 +01:00
|
|
|
// 4.2.27 - Bugfix LCD showed random characters in SCROLLMODE 2
|
2023-03-14 10:04:08 +01:00
|
|
|
// 4.2.26 - EX-IOExpander device driver enhancements
|
|
|
|
// - Enhance I2C error checking
|
|
|
|
// - Introduce delays to _loop to allow room for other I2C device comms
|
|
|
|
// - Improve analogue read reliability
|
2023-03-11 23:46:11 +01:00
|
|
|
// 4.2.25 - Bugfix SAMD21 Exrail odd byte boundary
|
|
|
|
// 4.2.24 - Bugfix Ethernet shield: Static IP now possible
|
2023-03-07 16:20:00 +01:00
|
|
|
// 4.2.23 - Bugfix signalpin2 was not set up in shadow port
|
2023-03-06 12:57:14 +01:00
|
|
|
// 4.2.22 - Implement broadcast of Track Manager changes
|
2023-03-04 09:55:13 +01:00
|
|
|
// 4.2.21 - Implement non-blocking I2C for EX-IOExpander device driver
|
2023-03-02 14:03:05 +01:00
|
|
|
// 4.2.20 - <JG> & <JI> commands for multi-track gauges
|
|
|
|
// - Reinstate <c> but remember its a bit useless when TM involved.
|
|
|
|
// 4.2.19 - Bugfix for analog reading of track current sensor offset.
|
2023-02-22 22:28:16 +01:00
|
|
|
// 4.2.18 - I2C Multiplexer support through Extended Addresses,
|
|
|
|
// added for Wire, 4209 and AVR I2C drivers.
|
|
|
|
// - I2C retries when an operation fails.
|
|
|
|
// - I2C timeout handling and recovery completed.
|
|
|
|
// - I2C SAMD Driver Read code completed.
|
|
|
|
// - PCF8575 I2C GPIO driver added.
|
|
|
|
// - EX-RAIL ANOUT function for triggering analogue
|
|
|
|
// HAL drivers (e.g. analogue outputs, DFPlayer, PWM).
|
2023-02-23 12:13:05 +01:00
|
|
|
// - EX-RAIL SCREEN function for writing to screens other
|
|
|
|
// than the primary one.
|
2023-02-22 22:28:16 +01:00
|
|
|
// - Installable HALDisplay Driver, with support
|
|
|
|
// for multiple displays.
|
|
|
|
// - Layered HAL Drivers PCA9685pwm and Servo added for
|
|
|
|
// native PWM on PCA9685 module and
|
|
|
|
// for animations of servo movement via PCA9685pwm.
|
|
|
|
// This is intended to support EXIOExpander and also
|
|
|
|
// replace the existing PCA9685 driver.
|
|
|
|
// - Add <D HAL RESET> to reinitialise failed drivers.
|
2023-02-23 12:13:05 +01:00
|
|
|
// - Add UserAddin facility to allow a user-written C++ function to be
|
|
|
|
// declared in myHal.cpp, to be called at a user-specified frequency.
|
|
|
|
// - Add ability to configure clock speed of PCA9685 drivers
|
|
|
|
// (to allow flicker-free LED control).
|
|
|
|
// - Improve stability of VL53L0X driver when XSHUT pin connected.
|
|
|
|
// - Enable DCC high accuracy mode for STM32 on standard motor shield (pins D12/D13).
|
|
|
|
// - Incorporate improvements to ADC scanning performance (courtesy of HABA).
|
2023-02-12 20:35:57 +01:00
|
|
|
// 4.2.17 LCN bugfix
|
2023-02-12 01:36:26 +01:00
|
|
|
// 4.2.16 Move EX-IOExpander servo support to the EX-IOExpander software
|
2023-02-09 04:15:04 +01:00
|
|
|
// 4.2.15 Add basic experimental PWM support to EX-IOExpander
|
2023-02-06 10:39:25 +01:00
|
|
|
// EX-IOExpander 0.0.14 minimum required
|
2023-01-29 08:50:19 +01:00
|
|
|
// 4.2.14 STM32F4xx fast ADC read implementation
|
2023-01-29 08:13:52 +01:00
|
|
|
// 4.2.13 Broadcast power for <s> again
|
2023-01-27 18:42:26 +01:00
|
|
|
// 4.2.12 Bugfix for issue #299 TurnoutDescription NULL
|
2023-01-27 17:03:39 +01:00
|
|
|
// 4.2.11 Exrail IFLOCO feature added
|
2023-01-26 09:53:25 +01:00
|
|
|
// 4.2.10 SIGNAL/SIGNALH bug fix as they were inverted
|
|
|
|
// IO_EXIOExpander.h input speed optimisation
|
2023-04-08 18:22:39 +02:00
|
|
|
// ONCLOCK and ONCLOCKTIME command added to EXRAIL for EX-FastCLock
|
|
|
|
// <JC> Serial command added for EX-FastClock
|
|
|
|
// <jC> Broadcast added for EX-FastClock
|
|
|
|
// IO_EXFastClock.h added for I2C FastClock connection
|
2022-12-26 12:06:42 +01:00
|
|
|
// 4.2.9 duinoNodes support
|
2022-12-16 14:14:48 +01:00
|
|
|
// 4.2.8 HIGHMEM (EXRAIL support beyond 64kb)
|
|
|
|
// Withrottle connect/disconnect improvements
|
|
|
|
// Report BOARD_TYPE if provided by compiler
|
2022-12-04 20:12:04 +01:00
|
|
|
// 4.2.7 FIX: Static IP addr
|
2022-12-05 15:52:23 +01:00
|
|
|
// FIX: Reuse WiThrottle list entries
|
2022-11-18 20:19:53 +01:00
|
|
|
// 4.2.6 FIX: Remove RAM thief
|
|
|
|
// FIX: ADC port 8-15 fix
|
2022-11-09 00:52:07 +01:00
|
|
|
// 4.2.5 Make GETFLASHW code more universal
|
|
|
|
// FIX: Withrottle roster index
|
2022-11-04 16:08:43 +01:00
|
|
|
// Ethernet start improvement and link detection
|
2022-08-30 22:45:10 +02:00
|
|
|
// 4.2.4 ESP32 experimental BT support
|
|
|
|
// More DC configurations possible and lower frequency
|
2022-09-18 22:30:19 +02:00
|
|
|
// Handle decoders that do not ack at write better
|
2022-08-23 07:56:56 +02:00
|
|
|
// 4.2.3 Bugfix direction when togging between MAIN and DC
|
|
|
|
// Bugfix return fail when F/f argument out of range
|
|
|
|
// More error checking for out of bounds motor driver current trip limit
|
|
|
|
// 4.2.2 ESP32 beta
|
|
|
|
// JOIN/UMJOIN on ESP32
|
2022-08-02 21:56:06 +02:00
|
|
|
// 4.2.1 ESP32 alpha
|
|
|
|
// Ready for alpha test on ESP32. Track switching with <=> untested
|
|
|
|
// Send DCC signal on MAIN
|
|
|
|
// Detects ACK on PROG
|
2022-06-11 21:40:08 +02:00
|
|
|
// 4.2.0 Track Manager additions:
|
2022-06-10 13:22:28 +02:00
|
|
|
// Broadcast improvements to separate <> and Withrottle responses
|
2022-06-06 18:37:23 +02:00
|
|
|
// Float eliminated saving >1.5kb PROGMEM and speed.
|
2022-03-28 15:53:16 +02:00
|
|
|
// SET_TRACK(track,mode) Functions (A-H, MAIN|PROG|DC|DCX|OFF)
|
|
|
|
// New DC track function and DCX reverse polarity function
|
|
|
|
// TrackManager DCC & DC up to 8 Districts Architecture
|
2022-03-24 16:35:00 +01:00
|
|
|
// Automatic ALIAS(name)
|
2022-03-28 15:56:27 +02:00
|
|
|
// Command Parser now accepts Underscore in Alias Names
|
2022-05-07 08:47:34 +02:00
|
|
|
// 4.1.1 Bugfix: preserve turnout format
|
2022-05-13 16:21:15 +02:00
|
|
|
// Bugfix: parse multiple commands in one buffer string correct
|
2022-05-18 18:44:41 +02:00
|
|
|
// Bugfix: </> command signal status in Exrail
|
2022-05-07 08:47:34 +02:00
|
|
|
// 4.1.0 ...
|
|
|
|
//
|
2022-03-18 14:43:15 +01:00
|
|
|
// 4.0.2 EXRAIL additions:
|
2022-04-27 17:38:00 +02:00
|
|
|
// ACK defaults set to 50mA LIMIT, 2000uS MIN, 20000uS MAX
|
2022-04-19 12:34:57 +02:00
|
|
|
// myFilter automatic detection (no need to call setFilter)
|
2022-04-18 17:50:05 +02:00
|
|
|
// FIX negative route ids in WIthrottle problem.
|
|
|
|
// IFRED(signal_id), IFAMBER(signal_id), IFGREEN(signal_id)
|
|
|
|
// </RED signal_id> </AMBER signal_id> </GREEN signal_id> commands
|
2022-04-13 00:32:23 +02:00
|
|
|
// <t cab> command to obtain current throttle settings
|
|
|
|
// JA, JR, JT commands to obtain route, roster and turnout descriptions
|
|
|
|
// HIDDEN turnouts
|
|
|
|
// PARSE <> commands in EXRAIL
|
2022-03-24 12:56:06 +01:00
|
|
|
// VIRTUAL_TURNOUT
|
2022-03-31 23:04:40 +02:00
|
|
|
// </KILL ALL> and KILLALL command to stop all tasks.
|
2022-03-24 12:56:06 +01:00
|
|
|
// FORGET forgets the current loco in DCC reminder tables.
|
2022-03-18 14:43:15 +01:00
|
|
|
// Servo signals (SERVO_SIGNAL)
|
|
|
|
// High-On signal pins (SIGNALH)
|
|
|
|
// Wait for analog value (ATGTE, ATLT)
|
2022-03-24 14:56:01 +01:00
|
|
|
// 4.0.1 Small EXRAIL updates
|
|
|
|
// EXRAIL BROADCAST("msg")
|
2022-03-07 17:30:47 +01:00
|
|
|
// EXRAIL POWERON
|
2022-02-16 18:02:11 +01:00
|
|
|
// 4.0.0 Major functional and non-functional changes.
|
|
|
|
// Engine Driver "DriveAway" feature enhancement
|
2022-03-24 16:35:00 +01:00
|
|
|
// '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
|
2021-09-22 15:00:05 +02:00
|
|
|
// 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).
|
2022-03-24 16:35:00 +01:00
|
|
|
// Added <D HAL SHOW> 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
|
2021-09-22 15:00:05 +02:00
|
|
|
// EEPROM layout change - deletes EEPROM contents on first start following upgrade.
|
|
|
|
// Output class now allows ID > 255.
|
2022-03-24 16:35:00 +01:00
|
|
|
// Configuration options to globally flip polarity of DCC Accessory states when driven from <a> command and <T> command.
|
2021-09-22 15:00:05 +02:00
|
|
|
// Increased use of display for showing loco decoder programming information.
|
2021-11-30 20:11:45 +01:00
|
|
|
// Can define border between long and short addresses
|
2021-12-02 08:35:42 +01:00
|
|
|
// Turnout and accessory states (thrown/closed = 0/1 or 1/0) can be set to match RCN-213
|
2021-12-21 13:26:16 +01:00
|
|
|
// Bugfix: one-off error in CIPSEND drop
|
2022-01-17 16:56:16 +01:00
|
|
|
// Bugfix: disgnostic display of ack pulses >32kus
|
2022-03-24 16:35:00 +01:00
|
|
|
// Bugfix: Current read from wrong ADC during interrupt
|
|
|
|
// 3.2.0 Development Release Includes all of 3.1.1 thru 3.1.7 enhancements
|
2021-11-07 16:04:49 +01:00
|
|
|
// 3.1.7 Bugfix: Unknown locos should have speed forward
|
2021-07-31 15:40:32 +02:00
|
|
|
// 3.1.6 Make output ID two bytes and guess format/size of registered outputs found in EEPROM
|
2021-07-22 22:49:09 +02:00
|
|
|
// 3.1.5 Fix LCD corruption on power-up
|
2021-07-13 22:15:38 +02:00
|
|
|
// 3.1.4 Refactor OLED and LCD drivers and remove unused code
|
2021-06-11 01:03:38 +02:00
|
|
|
// 3.1.3 Add a loop delay to give more time for sensing an Ethernet cable connection
|
2021-06-10 20:23:57 +02:00
|
|
|
// 3.1.2 Eliminate wait after write when prog is joined or prog power is off
|
2021-06-10 20:06:59 +02:00
|
|
|
// 3.1.1 SH1106 OLED Display Offset Fix
|
2021-05-11 14:33:57 +02:00
|
|
|
// 3.0.16 Ignore CV1 bit 7 read rejected by decoder when identifying loco id.
|
2021-05-09 20:04:16 +02:00
|
|
|
// 3.0.15 only send function commands once, not 4 times
|
2021-05-07 19:24:34 +02:00
|
|
|
// 3.0.14 gap in ack tolerant fix, prog track power management over join fix.
|
2021-04-27 16:45:26 +02:00
|
|
|
// 3.0.13 Functions>127 fix
|
|
|
|
// 3.0.12 Fix HOSTNAME function for STA mode for WiFi
|
2021-05-07 19:24:34 +02:00
|
|
|
// 3.0.11 28 speedstep support
|
2021-03-31 00:19:32 +02:00
|
|
|
// 3.0.10 Teensy Support
|
2021-03-30 23:01:37 +02:00
|
|
|
// 3.0.9 rearranges serial newlines for the benefit of JMRI.
|
|
|
|
// 3.0.8 Includes <* *> wraps around DIAGs for the benefit of JMRI.
|
2021-03-24 11:36:26 +01:00
|
|
|
// 3.0.7 Includes merge from assortedBits (many changes) and ACK manager change for lazy decoders
|
2021-03-12 22:12:13 +01:00
|
|
|
// 3.0.6 Includes:
|
|
|
|
// Fix Bug that did not let us transmit 5 byte sized packets like PoM
|
2021-03-09 03:50:11 +01:00
|
|
|
// 3.0.5 Includes:
|
|
|
|
// Fix Fn Key startup with loco ID and fix state change for F16-28
|
Nano every2 (#129)
* Start adding back unowifi stuffz
* Uno Wifi compiling
* Fixes for compile arduino unowifi r2
* FlasString and Timers for Uno Wifi
ALL these changes should be portable back to master
* Remove extra timer that was already added
* Changed to EveryTimerB
* Add everytimerb.h
* Cleanup
* Linear address <a> cmd
* Allow lower case keywords
* Add the F define to be on safe side if it is not present in the library core code
* Clean simple Timer interface
Removes overkill files, puts all timer in a single small file. (DCCTimer)
* Timer port
* Timer working
And slow wave command removed
* Correcting non-portables merged from master
* Wave-state machine ( part 11)
* Microtuning waveform
Significant reduction in code paths and call overheads
* Current check cleanup
* Fix no-loco id
Has to handle -1 correctly
* fix wrong format letter
* redo flow through wifisetup again
* version++
* bugfixes wifi setup
* Retry harder for AP mode
* Remove unued if
* DIO2 replacement
Currently for writing signal pins during waveform.
* Drop analogReadFast (see DCCTimer)
AnalogRead speed set in DCCTimer for ease of porting.
Code tidy and diagnostics in MotorDriver
* UNTESTED fast power,brake,fault pins
* Distunguish between in/out of FASTPIN
* minor performance tweaks
* Config comments and example use
* Config/example loading
* IP/PORT on LCD
* Ethernet simulated mac
Plus fixed listening port
* Github SHA
* Committing a SHA
* Fix for nano compile
* Comments and a reliability fix.
* UnoRev2 protection
* PWM pin implementation
* fix wifi setup issue
* Reinstate IP_PORT
* Wifi channel and code cleaninga
* Reduce duplicated F() macros
Compiler isn't as clever as one might expect
* Committing a SHA
* Update config.example.h
Add comment to wifi channel section
* Committing a SHA
* Handle shields with common fault pins (Pololu)
* Committing a SHA
* remove warning
* Committing a SHA
* only do the sha generation on master
* yaml syntax
* Fast SSD1306 OLED driver
Incorporate code from SSD1306Ascii library to speed up OLED screen updates, reduce memory requirements and eliminate some library dependences.
* Fix auto-configure from cold boot.
Add call to Wire.begin().
* Update comment for OLED_DRIVER define.
* Update MotorDrivers.h
Add a motor board definition for using the IBT_2 board for a high current to the main track and keep the Arduino Motor Shield for operating the programming track.
* Committing a SHA
* Fix missing F in motor drivers
* JOIN relay pin
* Swap Join Relay high/low
* Hide WIFI_CONNECT_TIMEOUT
This is not what the config suggests it is... The timeout is in the ES and defaults to 15 seconds. Abandoning it early leads to confused setup.
* Enhance OLED/LCD speed
Write one character or position command per loop entry so as not to hold up the loop. Add support for SH1106 OLED as 132x64 size option.
* Enhance OLED/LCD speed
* Delete comment about OLED on UNO.
* Trim unwanted code
* Handle display types correctly
* Update comments
* Speed up OLED writes
Add new flushDisplay() to end any in-progress I2C transaction. Previously, an redundant command was sent that ended the in-progress transaction but also sent another complete, but unnecessary, transaction.
* Comments and copyright update
* Reduce RAM and flash requirement a few more bytes.
* Move statics into LCDDisplay class, and reduce RAM.
Some state variables were static in LCDDisplay.write(). Moved to class members. Also, types of data items like row, column & character position changed to int8_t to save a few bytes of RAM.
* Type lcdCols and lcdRows to unsigned.
Since lcdCols is normally 128, it needs to be uint8_t, not int8_t.
* remove timeout from user config
* faultpin is common only if it exists ; make code prettier
* Rationalisation of SSD1306 driver
Merge SSD1306AsciiWire.cpp into SSD1306Ascii.cpp and rename SSD1306AsciiWire.h as SSD1306Ascii.h.
Merge allFonts.h into System5x7.h and rename as SSD1306font.h.
Move all SSD1306 files into root folder to facilitate compilation in Arduino IDE.
* Fix some font attributes as const.
* Remove unused initialisation sequences for tiny oled screens
* Add m_ to variables
* Bump up I2C speed
Speed was 100kHz (default). Max for OLEDis 400kHz.
* Revert "Bump up I2C speed"
This reverts commit 1c1168f43314d3a6855738fbc406d5654e801831.
* Bump up I2C speed
Speed was 100kHz (default). Max for OLEDis 400kHz.
* Drop duplicate DIAG
* ignore mySetup.h files
* Restore uno to default_envs
Restore uno (previously commented out) to default_envs.
* Update objdump.bat
Allows other editors as Notepad is very slow on large files
* Prog Track overload during cv read
* Faster LCD Driver
Extract LCD driver from library;
Trim unused functionality;
Reduce I2C communications to minimum;
Speed up I2C clock to 400kHz.
* Update config.example.h
Add IBT_2_WITH_ARDUINO to example config
* Update config.example.h
* Screen enhancements (#126)
* Add I2CManager to coordinate I2C shared parameters.
* Add use of I2CManager, and experimental scrolling strategies.
New scrolling capability by defining SCROLLMODE in Config.h to 0 (original), 1 (by page) or 2 (by line). If not defined, defaults to 0.
* Scrolling updates
New scrolling capability by defining SCROLLMODE in Config.h to 0 (original), 1 (by page) or 2 (by line). If not defined, defaults to 0.
Reformat.
* Add I2CManager calls. Remove unnecessary delays.
* Add I2CManager calls, remove unnecessary I2C delays.
* SSD1306: Move methods from .h to .cpp and reformat.
* Fix compiler warning in LiquidCrystal_I2C
* Allow forcing of I2C clock speed.
New method forceClock allows the I2C speed to be overridden. For example, if the I2C bus is long then the speed can be forced lower. It can also be forced higher to gain performance if devices are capable.
* Make Config.h conditionally included.
Allow for non-existence of Config.h.
* Correct scrolling and allow longer messages
Correct the handling of scrolling in scrollmode 1 to avoid a blank page being displayed. Also, allow MAX_MSG_SIZE to be optionally configured to override maximum message length on screens.
* compiler warning on uno
Co-authored-by: dexslab <dex35803@gmail.com>
Co-authored-by: Asbelos <asbelos@btinternet.com>
Co-authored-by: Harald Barth <haba@kth.se>
Co-authored-by: Neil McKechnie <neilmck999@gmail.com>
Co-authored-by: Neil McKechnie <75813993+Neil-McK@users.noreply.github.com>
2021-03-07 21:58:35 +01:00
|
|
|
// 3.0.4 Includes:
|
|
|
|
// Wifi startup bugfixes
|
2021-01-21 12:10:52 +01:00
|
|
|
// 3.0.3 Includes:
|
|
|
|
// <W addr> command to write loco address and clear consist
|
|
|
|
// <R> command will allow for consist address
|
|
|
|
// Startup commands implemented
|
2020-09-24 03:53:33 +02:00
|
|
|
|
2020-10-22 20:38:10 +02:00
|
|
|
#endif
|