Skip to content

Releases: bxparks/AceButton

1.10.1 - fix conflict with ArduinoCore-API boards

25 May 16:51
333a2be
Compare
Choose a tag to compare
  • 1.10.1 (2023-05-25)
    • Remove unnecessary declaration of __FlashStringHelper in AceButton.h.
      • Breaks boards using the ArduinoCore-API, which moved the
        __FlashStringHelper to the arduino:: namespace, while polluting
        the global namespace anyway with a using arduino::__FlashStringHelper shim in an attempt to provide backwards
        compatibility, which doesn't always work.
      • See Issue#120.

1.10.0 - add back SAMD21, SAMD51 to Tier 1; move Teensy boards to Tier 2; add HeartBeat event

24 May 18:22
07d1392
Compare
Choose a tag to compare
  • 1.10.0 (2023-05-24)
    • Add AceButton::eventName(event) lookup function
      • Translates the event integer constant (e.g. kEventDoublePressed)
        into a human readable string (e.g. "DoublePressed").
      • Intended for development and debugging.
    • Update supported boards and tiers
      • Add SAMD21 and SAMD51 boards to Tier 1
        • Add 2 SAMD boards from 2 different companies, to test their
          Arduino Core software:
          • Seeeduino XIAO M0 (SAMD21 48MHz ARM Cortex-M0+)
          • Adafruit ItsyBitsy M4 (SAMD51 120MHz ARM Cortex-M4)
        • SAMD21 and SAMD51 boards are back in Tier 1, as long as they use
          the traditional Arduino API instead of the new
          Arduino-Core.
        • Fortunately most third party SAMD21 and SAMD51 boards continue to
          use the traditional Arduino API.
      • Move Teensy 3.2 to Tier 2
        • This board is entering end-of-life.
        • As well, the Teensyduino environment integrates with the Arduino
          IDE and CLI in a way that's different than all other third-party
          Arduino boards. Some of my automation scripts do not work with
          Teensyduino, so it becomes very time consuming to test the Teensy
          boards.
        • All Teensy boards are now in Tier 2 ("Should work but not tested
          often").
    • Add HeartBeat event
      • AceButton::kEventHeartBeat event
      • ButtonConfig::kHeartBeatInterval (default 5000)
      • ButtonConfig::setHeartBeatInterval(uint16)t)
      • ButtonConfig::getHeartBeatInterval()
      • See the Heart Best section in the README.md,
        and the examples/HeartBeat sample application.
      • Memory size impact
        • Increases flash size of ButtonConfig by ~150 bytes on AVR, and
          ~50 bytes on 32-bit processors.
        • Increases RAM size of AceButton by 3 bytes on AVR, and 4 bytes
          on 32-bit processors.
    • Binary Encoded Buttons
      • Derive formula of the number of diodes required to implement
        binary encoded buttons for N lines.
      • total diodes = N * (2^(N-1) - 1)
    • Add extensive Bugs and Limitations section
      in the README.md.
    • Update examples/SimultaneousButtons
      • Simplify transition logic, removing 'concurrent event' option, which
        is too difficult to get right in the time

v1.9.2 - upgrade toolchain; downgrade SAMD21 support; no functional change

11 Feb 00:49
e755bcf
Compare
Choose a tag to compare
  • 1.9.2 (2022-02-10)
    • Fix incorrect subtraction of 2 uint16_t integers in
      various examples and README.md docs for 32-bit processors.
      • On 8-bit processors with sizeof(int) == 2, a uint16_t - uint16_t
        returns a uint16_t.
      • But on 32-bit processors with sizeof(int) == 4, a uint16_t - uint16_t returns an int, which returns a negative number if the
        unsigned integer rolled over.
      • The solution is to explicitly add a (uint16_t) cast, which is
        harmless on 8-bit processors, but is required to produce the correct
        value on 32-bit processors.
    • Upgrade various tool chains:
      • Arduino IDE from 1.8.13 to 1.8.19
      • Arduino CLI to 0.20.2
      • Arduino AVR from 1.8.3 to 1.8.4
      • STM32duino from 2.0.0 to 2.2.0
      • ESP8266 from 2.7.4 to 3.0.2
      • ESP32 from 1.0.6 to 2.0.2
      • Teensyduino from 1.53 to 1.56
      • No signficant changes except for LadderButtonConfig on ESP8266
        (faster) and ESP32 (slower).
    • Downgrade support for SAMD21 boards to new "Tier 3: May work but
      unsupported".
      • I can no longer flash my SAMD21 boards as of Arduino IDE 1.8.19.
    • This is a maintenance release. No functional change.

v1.9.1 - upgrade STM32duino to 2.0.0, SparkFun SAMD core to 1.8.3

10 Aug 19:54
e21058a
Compare
Choose a tag to compare
  • 1.9.1 (2021-08-10)
    • Upgrade STM32duino Core from 1.9.0 to 2.0.0.
      • MemoryBenchmark: Flash usage increases by 2.6kB across the board, but
        static RAM goes down by 250 bytes.
      • AutoBenchmark: No change.
      • Very little change to AceButton code itself.
    • Upgrade SparkFun SAMD Core from 1.8.1 to 1.8.3.
      • No change observed in MemoryBenchmark or AutoBenchmark.
    • Add examples/SimultaneousButtons, showing how to detect the simultaneous
      press of 2 buttons.

v1.9 - support ATtiny85; support digitalWriteFast libraries; better LadderButtonConfig support

02 Jun 01:24
7f68bb8
Compare
Choose a tag to compare
  • 1.9 (2021-06-01)
    • Split LadderButtonCalibrator
      from LadderButtons for convenience.
    • Add preliminary support for ATtiny85 using
      SpenceKonde/ATTinyCore.
    • Add LadderButtonsTiny, a demo of attaching
      2 buttons to the RESET/A0 pin of the ATtiny85 micrcontroller using
      a resistor ladder. This avoids wasting the RESET pin, freeing the other 5
      GPIO pins for other purposes.
    • Update docs and examples for LadderButtonConfig and
      EncodedButtonConfig to prevent the creation of the unused
      SystemButtonConfig.
      • Uses the 4-parameter AceButton() constructor to set the
        buttonConfig parameter explicitly to nullptr.
      • Saves 30 bytes of flash and 26 bytes of RAM on AVR (e.g. ATmega328,
        ATtiny83) processors.
    • Split off examples/Encoded4To2Buttons from
      examples/Encoded8To3Buttons to make the usage of the
      Encoded4To2ButtonConfig and Encoded8To3ButtonConfig classes more
      clear.
    • Add ButtonConfigFast1, ButtonConfigFast2, and ButtonConfigFast3.
      • Implementations of ButtonConfig which use the digitalWriteFast
        library.
      • Saves 100-400 bytes of flash on AVR processors.
      • See README.md#DigitalWriteFast.

v1.8.3 - advise rate-limiting LadderButtonConfig due to problems with analogRead()

18 Apr 22:56
60beb73
Compare
Choose a tag to compare
  • 1.8.3 (2021-04-18)
    • AceButton now has a
      GitHub Discussion.
      • Use that for general questions and discussions.
      • Reserve GitHub Issues
        for bugs and feature requests.
    • Add Rate Limit
      warning on LadderButtonsConfig::checkButtons() should be limited to
      about 200 samples/second. This reduces the overhead of the slow
      analogRead() function, and avoids triggering a bug that disconnects the
      WiFi on the ESP8266.
    • Add general Sampling Rate recommendation to
      sample at about 5 ms intervals, or 200 samples/second. Add code sample
      using non-blocking delay.
    • Update Makefiles used by EpoxyDuino for better compatibility with FreeBSD.
    • Update ESP32 Arduino Core from v1.0.4 to v1.0.6.

v1.8.2 - Update UnixHostDuino 0.4 to EpoxyDuino 0.5

22 Jan 19:53
32679ea
Compare
Choose a tag to compare
  • 1.8.2 (2021-01-22)
    • Update UnixHostDuino 0.4 to EpoxyDuino 0.5.
    • Re-add Teensy 3.2 in AutoBenchmark.
    • No functional change in this release.

v1.8.1 - officially support STM32

19 Jan 06:14
883faf4
Compare
Choose a tag to compare
  • 1.8.1 (2021-01-18)
    • Add official support for STM32 by validating on a "Blue Pill" board.
    • Add scripts to automate collection of AutoBenchmark data. Add
      benchmarks for STM32 microcontroller.
    • No functional change in this release.

v1.8 - add kEventLongReleased event when kEventReleased is suppressed for LongPress

22 Nov 02:03
3d27683
Compare
Choose a tag to compare
  • 1.8 (2020-11-21)
    • Add kEventLongReleased event type which is triggered after a
      kEventLongPressed as a substitute for kEventReleased when
      kFeatureSuppressAfterLongPress is used to suppress the kEventReleased
      event. See the new Distinguishing Pressed and
      LongPressed
      section in the README.md and
      the new examples/PressedAndLongPressed
      sample code.
    • Potentially Breaking: Completely remove
      src/ace_button/AdjustableButtonConfig.h. It was deprecated over 2 years
      ago in v1.3.

v1.7.1 - add Table of Contents to README.md

13 Nov 01:01
2e28c24
Compare
Choose a tag to compare
  • 1.7.1 (2020-11-12)
    • Add Table of Contents to README.md.
    • Regenerate MemoryBenchmark numbers for v1.7.
    • No functional change in this release.