94 Commits
Author SHA1 Message Date
Alex Shepherd 954e2b3525 bump version to 2.0.17 2024-08-24 12:40:04 +12:00
Alex Shepherd f994cab0c5 Changes the return from NmraDcc::process() to be the number of times a DCC Packet is ready to be able to detect DCC packet buffer overflow. 2024-08-24 12:39:03 +12:00
Alex Shepherd ee89abe4d7 Test adding support for Arduino UNO R4. Code now compiles ok, but needs testing 2024-06-16 23:31:52 +12:00
Alex Shepherd 885cf9fc64 bump version to 2.0.16 2023-07-13 21:12:29 +12:00
Alex Shepherd 08da67f3c6 removed conditional compilation to no longer disable interrupts during EEPROM.comit() for the ESP32 2023-07-13 21:11:10 +12:00
Alex Shepherd b1cd7622e3 added some final tweaks to chang ethe addressing to better suit 2023-07-13 21:09:47 +12:00
Alex Shepherd 159a4bc5bf added Seeed SAMD M0 Xiao + Xiao Expansion board specific example
bumped version to 2.0.15
2023-02-15 23:37:33 +13:00
Alex Shepherd 5b681f49de oops missed the use of #ifdef ARDUINO_SAMD_ZERO 2023-02-08 00:12:21 +13:00
Alex Shepherd 02be948ed2 added support for the SAMD_21 chip with no EEPROM using the FlashStorage_SAMD emulated EEPROM library
added disable interrupts on the ESP8266 and ESP32 to avoid a crash during FLASH Write of emulated EEPROM
bumped version to 2.0.14
2023-02-07 23:58:45 +13:00
Alex Shepherd 24d6689b24 added DCC Message Debug code to Fahrstuhl example to assist with debugging initial setup
bumped to version 2.0.13
2022-07-30 15:39:39 +12:00
Alex Shepherd f1f214af3a Added FLAGS_OUTPUT_ADDRESS_MODE to Dcc.init() to make it work again after the DCC Addressing changes 2022-07-30 14:54:12 +12:00
Alex Shepherd e1080f28fd change default board settings to Uwe 2022-07-24 22:54:46 +12:00
Alex Shepherd 54c56b7cda Added DCC Decoder logic to move levels 2022-07-24 22:52:45 +12:00
Alex Shepherd 2e1f9098ad Changed Interrupt handling for RP2040 architectures to be similar to ESP32
Added check for proper USB Serial initialisation to examples
2022-07-23 20:26:32 +12:00
Alex Shepherd 37b66af743 Got Manual Operation and Home Sensor working 2022-07-02 23:49:44 +12:00
Alex Shepherd 4cf529e8c5 bump version to 2.0.11 2022-03-12 21:34:39 +13:00
Alex Shepherd cea2913e8a Fix example DCCInterface_TurntableControl.ino sketch to work with library changes 2022-03-12 21:30:12 +13:00
Alex Shepherd ae9afe9c24 added CV_MANUFACTURER_START 2022-02-27 18:35:58 +13:00
Alex Shepherd afe488d792 bumbump version to 2.0.10 to force update of Arduino Library Manager Indexer 2021-08-30 22:48:44 +12:00
Alex Shepherd 61a730bf82 unified example folder/sketch name that was detected by the arduino-lint utility 2021-08-30 17:55:25 +12:00
Alex Shepherd b0b27ce0cc bump version to 2.0.9 2021-08-30 14:14:38 +12:00
Alex Shepherd c3dc28479a corrected Fwd/Rev LED logic in NmraDccMultiFunctionMotorDecoder example
added conditional compilation to use the newer Dcc.pin() method that used digitalPinToInterrupt() to determine the Ext Interrupt Number based on Arduino Pin to reduce confusion
2021-08-30 14:11:54 +12:00
Alex Shepherd a05c12ce95 tidied up Ardunio Every and Raspberry Pi Pico attachInterrupt() function calls 2021-07-23 21:38:24 +12:00
Alex Shepherd 0a72fc610b reformatted the NmraDcc.h & NmraDcc.cpp files using the astyle rules in the new file: .astyle as per the PR from David Zuhn (davidzuhn) 2021-05-09 16:56:08 +12:00
Alex Shepherd ad5ce96253 after making a mess of a PR from davidzuhn and not having the git skills to fix it, I've resorted to simply copying the desired files from his PR.
I've excluded his reformatted NmraDcc.h NmraDcc.cpp because there were too many merge conflicts now, so I'll reapply his formatting rules in another commit
2021-05-09 16:51:08 +12:00
Alex Shepherd 1e81b95044 removed incorrect comment about notifyDccAccTurnoutOutput() callback function 2021-05-02 23:06:59 +12:00
Alex Shepherd 84fdf45dce added support for the Arduino AVR Nano Every 2021-05-02 23:02:37 +12:00
Alex Shepherd 681b362811 Added MACROs CALC_MULTIFUNCTION_EXTENDED_ADDRESS_MSB and CALC_MULTIFUNCTION_EXTENDED_ADDRESS_LSB to correctly compute the DCC Address for CV storage
Corrected bug:  ESP32 version stops working when loosing interupts or signal is bad (#48)
bumped version to 2.0.7
2021-04-04 14:01:35 +12:00
Alex Shepherd 7e3b3e3469 Changed how INPUT_PULLUP is done to be compatibile with ESP32
Bumped version to 2.0.6
2020-10-20 09:42:00 +13:00
Alex Shepherd a09c6b1002 bumped NMRADCC_VERSION to 205 2020-06-02 09:50:12 +12:00
Alex Shepherd 29bc2aa1c0 default to DISABLE_OUTPUTS_IDLE uncommented 2020-06-01 19:04:56 +12:00
Alex Shepherd 3abb683d8d improved DCCInterface_TurntableControl example to:
- Added selectable Movement Strategy: Positive Direction Only, Negative Direction Only, Shortest Distance
- Made Disabling Output on Idle optional
2020-06-01 18:49:00 +12:00
Alex Shepherd f3da07c739 added Franz-Peter's changes to pass NMRA Tests ( always search for preamble ) 2020-05-31 20:14:28 +12:00
Alex Shepherd dead808af2 added work-around for ATtiny1614 range of chips that have a bug in: eeprom_is_ready() 2020-05-30 16:14:27 +12:00
Alex Shepherd 38194c0148 Correct the inconsistent license text in the source files to be the Lesser GPL as was intended by the LICENSE file and the repo classification 2020-02-03 22:16:00 +13:00
Alex Shepherd 7819716ac0 manually merged in Franz-Peter's changes as his PR#30 pull-request had too many differences to merge once I'd already solved the advancedAck issue.
This commit contains the remaining relevant changes after doing a manual diff of the library files
2020-01-10 17:33:09 +13:00
Alex Shepherd 5349a21e2e fix bug caused when AdvancedCVAck logic was added as the CV Programming code was shared between Service Mode and Ops Mode programming. 2020-01-10 15:30:30 +13:00
Alex Shepherd 36418f4d66 fixed a bug with the Extended DCC Packet Decoder Reset command was only handling the Hard Reset but not the Soft Reset 2019-11-23 14:25:28 +13:00
Alex Shepherd a8081526ba Merge commit '71bb657e3a7d80edc096094564f5d279e8a1fb69'
* commit '71bb657e3a7d80edc096094564f5d279e8a1fb69':
  Esp32 iram attr (#26)

The merge adds extra STM32 handling

Als manually resolved the conflict around the type for lastMicros, to now be:

	    static unsigned int  lastMicros = 0;

Howefully this does the right thing on each platform
2019-10-28 18:58:02 +13:00
Alex Shepherd 7063e4e7e7 Merge branch 'master' of https://github.com/mrrwa/NmraDcc
* 'master' of https://github.com/mrrwa/NmraDcc:
  Update NmraDcc.cpp
  Update NmraDcc.cpp (#28)
2019-08-19 19:08:28 +12:00
Alex ShepherdandGitHub d8fb99ed91 Update NmraDcc.cpp
Added some more comments to the ServiceMode programming DCC Packet comparison logic
2019-08-19 19:04:51 +12:00
Alex Shepherd 1542a6fe6c Merge branch 'AdvancedCVAck'
* AdvancedCVAck:
  corrected method description
  split out ServiceMode ackCV from Ops Mode AdvancedCVAck as doing a ackCV in Ops Mode is wrong and adds 6ms busy delay add cache of CV29 value
2019-08-09 08:20:45 +12:00
Alex Shepherd 828b1feaba corrected method description 2019-08-09 08:19:53 +12:00
Alex Shepherd f3a2b87693 split out ServiceMode ackCV from Ops Mode AdvancedCVAck as doing a ackCV in Ops Mode is wrong and adds 6ms busy delay
add cache of CV29 value
2019-08-06 00:22:04 +12:00
Alex Shepherd e06f6b3bce bumped version to 2.0.2 2019-08-05 21:34:48 +12:00
Alex Shepherd 6a7e206032 reverted changes around lastMicros 2019-08-05 21:30:39 +12:00
Alex Shepherd 6d12e6cd3f added conditional compilation for ESP8266 to add ICACHE_RAM_ATTR to ExternalInterruptHandler
changed storage for Micros to unsigned long
2019-05-25 15:52:55 +12:00
Alex Shepherd b249762550 changed the version to 201 in the header 2019-05-02 21:42:59 +12:00
Alex ShepherdandGitHub 5cee0d28ed Merge branch 'master' into ESP32-IRAM_ATTR 2019-05-02 19:11:05 +12:00
Alex Shepherd 5ba1ee3e8e added another example of s simple DCC Multifunction (Locomotive) decoder 2019-05-02 11:13:22 +12:00
Alex Shepherd 865d919802 Added IRAM_ATTR changes for the ESP32 from Hans Tanner
bumped version to 2.0.1
2019-02-16 22:09:19 +13:00
Alex Shepherd 7a3845cbdf Changed the architectures to now be * as we're no longer tied to AVR specific hardware, however I've listed the architectures its been tested on
Fixed a bug with CV bit-write
2018-07-08 00:54:21 +12:00
Alex Shepherd 1717a2efb0 Made some minor tweaks / tidy-ups after committing Franz-Peter's changes 2018-07-07 19:21:48 +12:00
Alex Shepherd f171dd3894 Added new FLAGS_AUTO_FACTORY_DEFAULT flag to enable checking CV 7 & 8 and if value of both is 255 then call notifyCVResetFactoryDefault() if defined 2018-04-18 23:53:01 +12:00
Alex Shepherd 0fbe2a13d1 Changed version to 2.0.0
Added more detail to the README.md
NOT READY FOR PRODUCTION YET, needs more checking and change to provide some backwards compatibility for call-backs that had been removed
2018-03-06 18:48:43 +13:00
Alex Shepherd 369786325f updated the examples to reflect the removal of support for the two call-back functions: notifyDccAccState(), notifyDccSigState() 2018-03-01 00:00:15 +13:00
Alex Shepherd ec801bf463 updated the examples to reflect the removal of support for the two call-back functions: notifyDccAccState(), notifyDccSigState() 2018-02-28 23:50:59 +13:00
Alex Shepherd 90470987a8 Merge branch 'AddOutputModeAddressing'
AddOutputModeAddressing:
  Fixed off-by-one (x4) error with DCC Accessory Output Mode Addressing. Made compatible with the DCC Spec for DCC Accessory Output Mode Addressing CV storage in CV 1 & 9. Its a bit wierd but...
  Added heaps of DEBUG PRINT to the Accessory Decoder section to follow/test the various test cases through the code and to figure out how to make this stuff work. Added more code to make the existing supported functions to be more selective about which packet bits patterns they take notice of as it was too broad previously Will remove some of the notifyCall-Back functions as some were not well conceived at the time and now need to go Testing is NOT complete as there were issues in JMRI that also need to be resolved in sync with this so we're not quite there yet..
  With eeprom_is_ready() for AVR-processors (#13)
  Fixed some bugs around DCC Accessory Output Mode Addressing and handling of edge cases Add function to set Accessory Decoder Address from next received Accessory Decoder command and new notify call-backs when a new address is set Added new notifyDccSigOutputState() with no OutputIndex parameter Bumped version but have NOT tagged the library as it needs more testing and checking for breakage
Added NmraDcc.h documentation changes and logic changes to correct a couple of issue that arose from Ken West performing a standard NMRA DCC Decoder Confirmance test. Added his test sketches and output reports
2017-12-24 16:53:22 +13:00
Alex Shepherd 9294aa29e5 Merge branch 'ESU_ECoS_CV_Programming'
* ESU_ECoS_CV_Programming:
  Added ESU ECoS CV Programming support
2017-12-24 15:25:17 +13:00
Alex Shepherd 844171f2ac Fixed off-by-one (x4) error with DCC Accessory Output Mode Addressing.
Made compatible with the DCC Spec for DCC Accessory Output Mode Addressing CV storage in CV 1 & 9. Its a bit wierd but...
2017-06-25 20:13:19 +12:00
Alex Shepherd 0656f58c5b Added heaps of DEBUG PRINT to the Accessory Decoder section to follow/test the various test cases through the code and to figure out how to make this stuff work.
Added more code to make the existing supported functions to be more selective about which packet bits patterns they take notice of as it was too broad previously
Will remove some of the notifyCall-Back functions as some were not well conceived at the time and now need to go
Testing is NOT complete as there were issues in JMRI that also need to be resolved in sync with this so we're not quite there yet..
2017-06-08 09:58:41 +12:00
Alex Shepherd 07933e42a8 Fixed some bugs around DCC Accessory Output Mode Addressing and handling of edge cases
Add function to set Accessory Decoder Address from next received Accessory Decoder command and new notify call-backs when a new address is set
Added new notifyDccSigOutputState() with no OutputIndex parameter
Bumped version but have NOT tagged the library as it needs more testing and checking for breakage
2017-04-27 01:26:25 +12:00
Alex Shepherd 8c782d5f15 Added ESU ECoS CV Programming support 2016-11-27 22:25:12 +13:00
Alex Shepherd dafa1c9964 Merged Geoff's Update-Examples-5.4 branch 2016-11-27 19:49:29 +13:00
Alex ShepherdandGitHub dcbd20ef7e Merge pull request #11 from mrrwa/Update-Examples-5.4
V5.4 Bug Fixes and Minor Chages
2016-11-27 19:42:57 +13:00
Alex Shepherd 4c1d5fd6e4 changed version to 1.4.1 as a bug fix as something changed in the ESP8266 Core 2016-11-16 10:03:36 +13:00
Alex Shepherd 3a5986d10d added esp8266 to supported architectures
added addition #include file for esp8266 to resolve missing SPI_FLASH_SEC_SIZE symbol
2016-11-16 10:01:36 +13:00
Alex Shepherd 9035e55930 Added Sven to contributors and incremented the version 2016-08-20 17:46:29 +12:00
Alex Shepherd 3eee73f6cd replaced '4096' with definition SPI_FLASH_SEC_SIZE from header file 2016-08-20 17:36:47 +12:00
Alex ShepherdandGitHub 0c3385b27d Merge pull request #4 from MicroBahner/master
Update DCC bit decoding
2016-07-23 19:48:42 +12:00
Alex Shepherd 47d052a939 Added Franz-Peter Müller to the authors list 2016-06-11 16:21:48 +12:00
Alex Shepherd 275dc8ea94 Updated description paragraph to mention that we no longer use the Timer0 Compare MatchB interrupt 2016-06-11 15:58:53 +12:00
Alex Shepherd dc45375a5a Changed version to 1.3.0 2016-06-11 15:47:03 +12:00
Alex Shepherd 9e656f49c6 Commented out #define NMRA_DCC_ENABLE_14_SPEED_STEP_MODE 2016-06-11 15:46:05 +12:00
Alex Shepherd 2c55e735b7 Added Geoff's 5.1 changes 2016-06-11 15:31:34 +12:00
Alex Shepherd 515e56d918 Merge branch 'master' into MicroBahner-Without-use-of-HW-timers
* master:
  Fixed issue reported by lucari Despite the values set for F0-4, a packet with all fields set to zero is received. The problem seems to be related to NrmaDcc.cpp and a hidden 'break' statement at line 484. This should be swapped with the #endif on the next line. The result is that when a Speed packet is processed, it drops through to the next case statement and sends an empty DCCFunc command.
  Added Iowa Scaled Engineering ARD-DCCSHIELD example
  fixed call-back function void notifyDccFunc and changed version to 1.2.1
2016-05-17 12:09:50 +12:00
Alex Shepherd ebfb58c1fb Fixed issue reported by lucari
Despite the values set for F0-4, a packet with all fields set to zero is received. The problem seems to be related to NrmaDcc.cpp and a hidden 'break' statement at line 484. This should be swapped with the #endif on the next line. The result is that when a Speed packet is processed, it drops through to the next case statement and sends an empty DCCFunc command.
2016-05-11 20:53:06 +12:00
Alex Shepherd f50fea1a85 Added Iowa Scaled Engineering ARD-DCCSHIELD example 2016-04-09 13:06:05 +12:00
Alex Shepherd 1a60cb8cf6 fixed call-back function void notifyDccFunc and changed version to 1.2.1 2016-03-28 11:10:09 +13:00
Alex Shepherd b8dac78697 merged in master and added initAccessoryDecoder method 2016-03-25 17:46:22 +13:00
Alex Shepherd e087dc9052 Merge branch 'master' into MicroBahner-Without-use-of-HW-timers 2016-03-24 18:51:12 +13:00
Alex Shepherd 8dc6ee950f fixed call-back function void notifyDccFunc( uint16_t Addr, DCC_ADDR_TYPE AddrType, FN_GROUP FuncGrp, uint8_t FuncState) to include the new parameter: DCC_ADDR_TYPE AddrType 2016-03-20 20:45:33 +13:00
Alex Shepherd c4e693550c reversed a change to the state parameter of the notifyDccAccState() call-back that may have broken compatibility with existing code
more improvements to the NmraDccAccessoryDecoder_Pulsed_8 example code
2016-03-20 19:58:03 +13:00
Alex Shepherd 4e4007ebf7 Added new call-back functions: notifyDccAccTurnoutBoard and notifyDccAccTurnoutOutput
Added new example NmraDccAccessoryDecoder_Pulsed_8
changed version to 1.2.0
2016-03-19 23:24:55 +13:00
Alex Shepherd 70b44eb5d4 Added a MultiFunction decoder example and change the name of the other to Accessory decoder 2016-02-13 23:34:14 +13:00
Alex Shepherd 3a293152fc Merge pull request #1 from mrrwa/SMA_Examples_Update
Bug fix line 625- missing break statement added
2015-12-20 23:57:32 +13:00
Alex Shepherd ed03e292e4 corrected information in the file headers to reflect change to MRRwA from OpenDCC 2015-11-29 16:34:10 +13:00
Alex Shepherd d0b4f71282 Added missing example sketches 2015-11-17 08:02:31 +13:00
Alex Shepherd f903b3ab53 Added in enhancements from Martin Pischky for 14 & 28 speed steps and merged in more examples from Geoff into the examples/SMA folder 2015-11-16 23:49:12 +13:00
Alex Shepherd 8f6fbdead1 Added extern "C" wrapper around C call-back functions 2015-09-27 09:36:25 +13:00
Alex Shepherd e19dd605c4 Added Geoff Bunza to Authors list 2015-05-14 00:23:28 +12:00
Alex Shepherd b01ca7f31e Initial checkin to git and added library.properties 2015-05-12 18:46:14 +12:00
Alex Shepherd 0091ab0cd9 Update README.md 2015-05-12 18:42:06 +12:00
Alex Shepherd 9406265156 Initial commit 2015-05-12 18:40:22 +12:00