1
0
mirror of https://github.com/DCC-EX/CommandStation-EX.git synced 2024-12-25 21:41:23 +01:00
CommandStation-EX/version.h

335 lines
19 KiB
C
Raw Normal View History

2020-09-24 03:53:33 +02:00
#ifndef version_h
#define version_h
#include "StringFormatter.h"
2024-03-23 04:31:34 +01:00
#define VERSION "5.2.41"
// 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)
// 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
// 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
// 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
// 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
// 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
// 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
// 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
// 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
// 5.1.9 - Fixed IO_PCA9555'h to work with PCA9548 mux, tested OK
// 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
// 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
// 5.1.1 - Check bad AT firmware version
// - Update IO_PCA9555.h reflecting IO_MCP23017.h changes to support PCA9548 mux
// 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
// 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)
// 4.2.60 - Add mDNS capability to ESP32 for autodiscovery
// 4.2.59 - Fix: AP SSID was DCC_ instead of DCCEX_
// 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
// 4.2.53 - Fix: Fault pin handling made more straight forward
// 4.2.52 - Experimental support for sabertooth motor controller on ESP32
// 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
// 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
// 4.2.43 - Fix STM32 set right port mode bits for analog
// 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
// 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
// 4.2.37 - Add new FLAGS HAL device for communications to/from EX-RAIL;
// - Fix diag display of high VPINs within IODevice class.
// 4.2.36 - do not broadcast a turnout state that has not changed
// - 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
// 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 !!)
// 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.
// 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.
// 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
// 4.2.23 - Bugfix signalpin2 was not set up in shadow port
// 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
// 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
// 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
// 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
// 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
// 4.2.0 Track Manager additions:
// 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
// Automatic ALIAS(name)
// Command Parser now accepts Underscore in Alias Names
// 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
// 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")
// EXRAIL POWERON
// 4.0.0 Major 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 <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
// 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 <a> command and <T> command.
// 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
// 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
// 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
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
// 3.1.5 Fix LCD corruption on power-up
// 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
// 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
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
// 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