Skip to content

Releases: afpineda/OpenSourceSimWheelESP32

New performance improvement

16 Apr 15:57
Compare
Choose a tag to compare
  • The code for active wait has been revised for even better accuracy.
  • Documentation updates.

Full Changelog: 7.1.0...7.1.1

Improved performance for LED strips

15 Apr 07:03
Compare
Choose a tag to compare
  • The code for LED strips no longer require context switching to display all pixels.
    Active wait is used instead with nanosecond precision.
    This should improve performance.
  • Active wait is also more accurate,
    improving performance a bit for button matrices,
    analog multiplexers and shift registers.
  • Documentation updates.

Full Changelog: 7.0.2...7.1.0

Bug fixes (again)

24 Mar 17:55
Compare
Choose a tag to compare
  • Important bug fixes affecting some "ready-to-deploy" designs based on ESP32S3 boards.
  • Some "ready-to-deploy" hardware designs have changed:
    "Setup5" and "Setup7".

Full Changelog: 7.0.1...7.0.2

Bug fixes

24 Mar 09:43
Compare
Choose a tag to compare
  • Important bug fixes affecting some "ready-to-deploy" designs based on pure ESP32 boards.

Major release for testability, extensibility, maintainability and new features

21 Mar 16:09
Compare
Choose a tag to compare
  • TL;DR

    • The code will check that you are not doing stupid things in your custom firmware.
    • You will have to rewrite your custom code, but the setup is more intuitive.
    • New features:
      • Virtual neutral gear.
      • Configurable default input map.
    • Huge improvement in testability, extensibility and maintainability.
  • This is a huge rewrite that affects the system architecture and most of the code base.

  • The code will perform new checks to prevent a non-functional custom firmware, regarding:

    • Unusable, reserved, incapable, reused or non-existent GPIO pins.
    • Invalid input numbers.
    • Mapping non-existent hardware inputs to firmware features.
    • Incompatible firmware features.
  • Error reporting no longer requires configuration in the Arduino IDE.

  • Testability and extensibility improved with new architectural patterns:

    • Publish-Subscribe.
    • Dependency injection.
  • Half of the code has been more or less rewritten to remove dependencies
    with embedded libraries. This has deep consequences:

    • This code can compile and run in a PC workstation,
      container or virtual machine.
    • Some test units are now automated, and do not require ESP32 hardware.
    • New hardware independent test units are available.
    • A custom CD/CI chain has been developed to take advantage of this.
      No external build tools are required other than the GNU C++ compiler.
  • The old C-style code was rewritten in modern C++ style.
    User-defined code is more intuitive and expressive.
    Global variable declarations are no longer required
    (one less point of failure).

  • A "virtual" button is available (optional).
    You can map a combination of hardware inputs to this "virtual" button.
    This is intended for shift paddles and neutral gear.
    You can map the engagement of both paddles to a neutral gear button.

  • Now you can customize a default input map.
    This way, you are not forced to use the full range of 128 gamepad buttons
    if you only have a few physical buttons.
    This feature does not interfere with the ability to set a different input map
    using the companion app.

  • Each UI instance runs on its own thread with its own stack size.

  • The telemetry display using RGB LED strips has been removed,
    as pixel control is a better option.

  • Analog multiplexers, button matrices and shift registers
    now actively wait for signal propagation with nanosecond precision
    and no context switching.
    This should improve the responsiveness of the switches.

  • A migration guide is available.

Thanks to @ArtTales for a lot of suggestions.

Full Changelog: 6.11.4...7.0.0

Fixed wrong queue size for rotary encoders

09 Feb 12:29
Compare
Choose a tag to compare

The queue size for rotary encoder events should be 64, but it was 8.

Full Changelog: 6.11.3...6.11.4

Pixel control performance boost

08 Feb 10:48
Compare
Choose a tag to compare
  • The HID specification for pixel control has been changed to
    remove the use of feature reports for pixels::show().
    For unknown reasons, feature reports perform worse than output reports in Windows 11.
    For this to work, you will need to update the SimHub plugin as well.
  • BatchCompile.ps1 has been updated for a better look.

Full Changelog: 6.11.2...6.11.3

Minor bug fix

31 Jan 14:44
Compare
Choose a tag to compare
  • Fix minor compiler error on ESP32-C3 boards.
  • Battery capacity is explicitly advised.
  • Other minor documentation updates.

Full Changelog: 6.11.1...6.11.2

Bug fix

26 Jan 16:23
Compare
Choose a tag to compare
  • A very small but important bug in the battery monitor API has been fixed.
  • Additional advice is given to avoid LED strip burnout.
    Thanks to @ArtTales for reporting this.
  • Minor errata fix.

Full Changelog: 6.11.0...6.11.1

Improved rotary encoder behaviour

25 Jan 08:26
Compare
Choose a tag to compare
  • For better host-side detection of rotation events,
    the behaviour of rotary encoders has been improved.
  • The default pulse width of the rotary encoders
    has been increased to 100 ms pressed and 100 ms released.
  • The pulse width of all encoders can now be set as a time multiplier
    using HID reports (x1, x2, etc.).
  • The new feature has been synchronously updated in the companion app.
  • All relevant unit and integration tests have been updated.
  • Minor documentation updates.

Full Changelog: 6.10.0...6.11.0