Changelog

This is the changelog of LcdMenu library. It contains information about the changes between versions.

LcdMenu v5.2.0

New Features

  • Add Support for LCDs using SSD1803 controller by @forntoh in #243

  • Add View Shifting to MenuRenderer for Handling Long Text by @forntoh in #241

Enhancements

  • Delegate Rendering of Separator and Value to Renderer by @forntoh in #240

Chore Updates

  • Add release notes generation by @forntoh in #239

  • Add tagging options for PR types and update checklist. by @forntoh in #238

Documentation Updates

  • Fix typo in character-display.rst by @forntoh in #242

  • Update API references to use C++ syntax for better clarity and consistency by @forntoh in #237

Full Changelog: https://github.com/forntoh/LcdMenu/compare/5.1.0…5.2.0

LcdMenu v5.1.0

New Features

  • [Feat] Add Menu Renderer by @forntoh in #233

Enhancements

  • Patch/remove screen row dependency in renderer by @forntoh in #235

  • Remove itemIndex dependency from renderer by @forntoh in #234

Full Changelog: https://github.com/forntoh/LcdMenu/compare/5.0.0…5.1.0

LcdMenu v5.0.0

New Features

  • Feature/move control to items by @ShishkinDmitriy in #199

  • Feature/eliminate types by @ShishkinDmitriy in #213

  • Feature/introduce menu screen by @ShishkinDmitriy in #216

  • [Feat] Add Digital Input Adapter for Enhanced Menu Navigation by @forntoh in #214

  • Feature/refactor items by @ShishkinDmitriy in #221

  • [feat] Replace ItemProgress with Item[type]Range by @forntoh in #228

Enhancements

  • Replace SimpleNavConfig with KeyboardAdapter by @forntoh in #218

  • Replace DigitalInputAdapter with ButtonAdapter by @forntoh in #223

  • Update various item setters by @forntoh in #225

  • Enable jumping to upper bound when lower bound reached by @forntoh in #226

  • Isolate constants by @forntoh in #227

Bug Fixes

  • Bugfix/stuck on submenu enter by @ShishkinDmitriy in #219

Chore Updates

  • [chore] Improved Debug Logging by @forntoh in #220

Documentation Updates

  • LcdMenu 5.0.0 Documentation by @forntoh in #230

  • Update Code Documentation by @forntoh in #224

Breaking Changes

Full Changelog: https://github.com/forntoh/LcdMenu/compare/4.2.0…5.0.0

LcdMenu v4.2.0

New Features

  • Replace RotaryNavConfig with RotaryInputAdapter by @forntoh in #206

  • Add SimpleNavConfig and deprecate processMenuCommand by @forntoh in #189

Bug Fixes

  • Remove dependencies [fix for #203] by @forntoh in #215

  • Make global util functions inline by @ShishkinDmitriy in #192

Full Changelog: https://github.com/forntoh/LcdMenu/compare/4.1.0…4.2.0

LcdMenu v4.1.0

New Features ⭐️

  • Menu Command Processor Helper for Rotary Encoder by @forntoh in #185 A helper function was added to handle menu navigation using a rotary encoder. This makes it easier for developers to implement rotary-based navigation for their LCD menus, streamlining the interaction process. It allows smoother scrolling through menu items and simplifies input with just a rotary encoder.

Enhancements:

  • Examples: Added [basic rotary encoder](examples/SimpleInput/SimpleInput.ino) and [input rotary](examples/InputRotary/InputRotary.ino) examples to demonstrate functionality.

Bug Fixes:

  • Code Cleanup: Removed unused print statements to improve code quality.

Full Changelog: https://github.com/forntoh/LcdMenu/compare/4.0.0…4.1.0

LcdMenu 4.0.0

This release introduces a major refactor of the display management system, aimed at making it more modular and flexible. The key change is the introduction of a display interface abstraction that decouples the display logic from the specific hardware, allowing for easier integration of different display types.

What’s Changed

  • Display Interface Abstraction: * A new DisplayInterface class has been introduced to define a common interface for all display types. * This interface allows developers to easily swap out display implementations (e.g., LCD, OLED) without modifying the core logic.

  • Implemented LiquidCrystalI2CAdapter to support LiquidCrystal_I2C displays.

  • Implemented LiquidCrystalAdapter to support LiquidCrystal displays.

  • Improved Modularity and Flexibility: * By decoupling the display management logic from the specific hardware, the system is now more modular and easier to extend with new display types. * The menu and cursor handling logic has been adapted to work seamlessly with the new interface, ensuring backward compatibility while providing enhanced flexibility.

  • Debug mode is now turned off by default

Bug Fixes and Improvements

  • Memory Management: Optimized the handling of dynamic memory allocation to prevent memory leaks and improve stability.

  • Code Cleanup: Refactored the codebase for better readability and maintainability. Deprecated functions and variables have been removed or replaced with more efficient alternatives.

  • Documentation: Updated and expanded the documentation to reflect the new architecture and features.

Breaking Changes

  • API Changes: The introduction of the DisplayInterface class and its implementation may require changes to existing projects. Users must update their code to work with the new interface and adapters.

  • Some methods and features directly tied to the LiquidCrystal_I2C library have been refactored or removed. Please review [the migration guide](https://lcdmenu.forntoh.dev/reference/migration-guide) for details on how to update your code.

Full Changelog: https://github.com/forntoh/LcdMenu/compare/3.5.6…4.0.0

LcdMenu 3.5.6

Chore Updates

  • Make isAtTheStart and isAtTheEnd public by @forntoh in #172

Full Changelog: https://github.com/forntoh/LcdMenu/compare/3.5.5…3.5.6

LcdMenu 3.5.5

  • #167 Update condition to check if cursor is at the top and bottom. by @forntoh in #170

Full Changelog: https://github.com/forntoh/LcdMenu/compare/3.5.4…3.5.5

LcdMenu 3.5.4

  • BugFix: After setCursorPosition navigation is broken by @forntoh in #165

Full Changelog: https://github.com/forntoh/LcdMenu/compare/3.5.3…3.5.4

LcdMenu 3.5.3

  • BugFix: Fixed setText and getSubMenu not working by @forntoh in #164

Full Changelog: https://github.com/forntoh/LcdMenu/compare/3.5.2…3.5.3

LcdMenu 3.5.2

  • BugFix - Charset Input value copied to all Input items on screen by @forntoh in #159

Full Changelog: https://github.com/forntoh/LcdMenu/compare/3.5.1…3.5.2

LcdMenu 3.5.1

  • BugFix - Update ItemList only in edit mode by @forntoh in #154

  • Add more logging functions by @forntoh in #155

  • Do not update screen anymore when bounds reached for ItemProgress by @forntoh in #156

Full Changelog: https://github.com/forntoh/LcdMenu/compare/3.5.0…3.5.1

LcdMenu 3.5.0

  • Added menu event serial logs by @forntoh in #151

  • ⭐️ ⭐️ ⭐️ Added Menu Control Helpers by @forntoh in #152 As of today, you no longer need to manage navigation commands on the menu yourself, a few helpers were added to help reduce the amount of code you write, check the [docs](https://lcdmenu.forntoh.dev/controls) to see how to use them.

Full Changelog: https://github.com/forntoh/LcdMenu/compare/3.4.0…3.5.0

LcdMenu 3.4.0

  • Moved utils and constants to utils directory by @forntoh in #149

  • Allow a current progress to be set on ItemProgress by @PaulEmich in #150

  • @PaulEmich made their first contribution in #150

Full Changelog: https://github.com/forntoh/LcdMenu/compare/3.3.4…3.4.0

LcdMenu 3.3.4

  • fix: compilation error with standard lcd by @andcan in #142

  • @andcan made their first contribution in #142

Full Changelog: https://github.com/forntoh/LcdMenu/compare/3.3.3…3.3.4

LcdMenu 3.3.3

  • Update bug_report.yml by @forntoh in #130

  • Separated utils definition from declaration by @forntoh in #135

Full Changelog: https://github.com/forntoh/LcdMenu/compare/3.3.2…3.3.3

LcdMenu 3.3.2

  • Update callback function parameter types to use uint16_t instead of uint8_t. by @forntoh in #126

Full Changelog: https://github.com/forntoh/LcdMenu/compare/3.3.1…3.3.2

LcdMenu 3.3.1

  • Update LICENSE by @forntoh in #115

  • added stale bot by @forntoh in #122

  • #113 started using no display and display to turn off display by @forntoh in #123

Full Changelog: https://github.com/forntoh/LcdMenu/compare/3.3.0…3.3.1

LcdMenu 3.3.0

  • Progress, Integer and Float values support by @forntoh in #114

  • Added custom edit mode cursor by @forntoh in #110

  • Fix callback for item list not executed by @forntoh in #111

  • Fixed Arduino runs out of memory when typing by @forntoh in #112

Full Changelog: https://github.com/forntoh/LcdMenu/compare/3.2.0…3.3.0

LcdMenu 3.2.0

  • Update bug_report.yml by @forntoh in #103

  • Fixed ItemSubMenu text not displayed by @forntoh in #102

  • Added LCD Timeout by @forntoh in #104

  • Fixed Can’t cycle through items in ItemList by @forntoh in #107

  • Update version in bug report template automation by @forntoh in #108

Full Changelog: https://github.com/forntoh/LcdMenu/compare/3.1.1…3.2.0

LcdMenu 3.1.1

  • Fixed compile warnings related to ItemList by @forntoh in #101

Full Changelog: https://github.com/forntoh/LcdMenu/compare/3.1.0…3.1.1

LcdMenu 3.1.0

  • added unit testing and changed most instances of String to char* by @forntoh in #86

Full Changelog: https://github.com/forntoh/LcdMenu/compare/3.0.1…3.1.0

LcdMenu 3.0.1

  • Fixed library unusable without I2C 🐛 by 🫡 @dejanmeznarc in #93

  • @dejanmeznarc made their first contribution in #93

  • Updated bug report template by @forntoh in #91

  • Updated feature request template by @forntoh in #92

Full Changelog: https://github.com/forntoh/LcdMenu/compare/3.0.0…3.0.1

LcdMenu 3.0.0 🚀

In previous versions of LcdMenu, the menu used a lot of memory since space has to be reserved for every field on the menu even if it is not used, this release fixes that by allowing the user to import only MenuItems which is needed.

You can expect to save up to 10% on memory usage (or even more 😎), depending on which menu item types you use.

There’s also a new way to create menus, check the readme.

  • Memory optimization 🚀🌕 by @forntoh in #82

  • Update issue templates by @forntoh in #83

  • Update README.md by @forntoh in #87

Full Changelog: https://github.com/forntoh/LcdMenu/compare/2.1.3…3.0.0

LcdMenu 2.1.3

  • add isSubMenu by @thijstriemstra in #81

  • example: fix typo by @thijstriemstra in #78

  • add setCursorPosition by @thijstriemstra in #80

  • ci: update dependencies by @thijstriemstra in #77

  • add public reset method by @thijstriemstra in #79

Full Changelog: https://github.com/forntoh/LcdMenu/compare/2.1.2…2.1.3

LcdMenu 2.1.2

  • doc-fix by @forntoh in #70

  • Made menu update() public by @forntoh in #71

Full Changelog: https://github.com/forntoh/LcdMenu/compare/2.1.1…2.1.2

LcdMenu 2.1.1

  • menu layout fix by @sennederent in #61

  • @sennederent made their first contribution in #61

Full Changelog: https://github.com/forntoh/LcdMenu/compare/2.1.0…2.1.1

LcdMenu 2.1.0

#### What’s Changed

  • Input characters from a charset.

  • Bug fix: displaying menu items that doesn’t exists when number of items below lcd maxRows by @edanp in #40

#### New Contributors * @edanp made their first contribution in #40

Full Changelog: https://github.com/forntoh/LcdMenu/compare/2.0.0…2.1.0

LcdMenu 2.0.0

#### What’s new 😍

  • The callback functions now contain arguments that can be used (for ItemList : index int is available at the callback execution site, for ItemInput : value string and for ItemToggle : isOn int 0 or 1). No need to call menu.getItemAt(menu.getCurrentPosition()) before getting the data you need from the item on callback execution, you already have what you need 😊

  • Support for lists of values added. 🥳

  • Added toggleBacklight function (JIC 🤷‍♂️)

  • Examples no longer require Keypad, NeoTimer and IRRemote dependencies (testing is now possible just with serial)

#### Fixed

  • Fixed CI workflow.

  • Messed up versioning in PlatformIO Library manager 😪 _(now has to start at 2.0.0)_ _Because I abandoned the feature I was working on in 2.0.0-beta, it always shows on the top even though it’s not the latest version_

LcdMenu 1.2.0

Abandoned menu generator 😞