EncoderTool Versions Save

The EncoderTool is a library to manage and read out rotary encoders connected either directly or via multiplexers to ARM based boards. Encoder push buttons are supported. Callback functions can be attached to encoder changes and button presses to allow for event driven applications

v3.2.2

3 weeks ago
  • Fixes issue with one wrong count directly after power up
  • Fixes a few typos in code comments and documentation

v3.2.0

1 year ago

Switches from std::function to stdex::inplace_function for callbacks fixes a namespace issue when using the encodertool together with the timertool

v3.0.1

2 years ago

Changes

  • Platform independent hardware layer. Digital reading and writing was optimized for T3.x, T4.x, SEED_Xiao, and the 8bit AVR boards. Other boards fall back to normal digitalRead/digitalWrite calls.

Breaking changes

  • The default setting for the callback system changed to void(*)() functions. std::function callbacks are still supported but need to be activated in the config file.

Open

  • Adapt and improve documentation

The changes were quite massive and some bugs are likely. -> Please do report any bugs, observations and not supported boards

v2.3.1

2 years ago

Fixed an error in library.json preventing installation in platformIO. Needed to retag to trigger a library scan in PIO

Full Changelog: https://github.com/luni64/EncoderTool/compare/v2.3.0...v2.3.1

v2.2.1

3 years ago

New features:

  • Compatibility to T-LC
  • Reduced memory footprint

Bugfixes:

  • Selecting plain vanilla void(*)(...) callbacks works now and is recommended for memory challenged boards.

V2.1.0

3 years ago

v2.0.0

3 years ago

New features

  • The standard single encoder (class Encoder) is now interrupt based (no need to call encoder.tick() in loop anymore)
  • The original polling version is available with the class PollingEncoder
  • The 'all encoder callback' of the multiplexed encoder classes now also has a delta parameter
  • Breaking change: The count mode parameter of the multiplexed classes moved from the constructor to the begin function to be symmetric to the single encoder classes.
  • Examples adapted to the new constructors

Bug fixes

  • Fixed a bug in libraries.properties

v1.0.0

3 years ago

Key Features

  • Supports directly connected and multiplexed encoders
  • Supports all common types of encoders, i.e., full (no detents, 4 counts per period, quad (1 detent per period) and half (two detents per period) and some variants of those
  • A callback mechanism allows for easy event based menu systems.
  • Callbacks use std::function and can call non static member functions.
  • Fully bounce free without additional hardware
  • Provides hard and cyclic count limits
  • Currently 74165 and 4067 based multiplexers are supported but the class structure allows for easy extension to any other multiplexer.
  • Schematics and Eagle files for multiplexed encoders available in the Extras folder

ToDo

  • Finalize documentation
  • Add additional examples