Skip to content

Releases: jfpoilpret/fast-arduino-lib

FastArduino 1.10 release

16 May 22:51
Compare
Choose a tag to compare

I am happy to announce the 11th major release of FastArduino platform.

Since release 1.9 (September 2022), the main changes are listed there.

This release brings the following changes and improvements:

  • Generic display API on which LCD devices support can be easily added:
    • 2D drawing primitives: point, line, polyline, polygon, rectange, circle, rounded rectangle
    • Font support
    • Bitmap support
  • Small tools (in Python) to edit fonts and bitmaps for display API
  • Support of well-known Nokia 5110 LCD
  • New functor FlashReader to read an array of items from Flash memory
  • Few utilities added (max and min)
  • Few traits utilities added to find shortest integral type to hold a given constant
  • A few fix or improvements of API documentation
  • Build is now using AVR-GCC 12.1.0 (tested on fedora 37 distribution)

Known bugs and requests for enhancements: https://github.com/jfpoilpret/fast-arduino-lib/issues

The platform is well documented:

  • a tutorial allows developers to discover and learn the platform step by step
  • FastArduino core API is documented through doxygen and documentation is published here
  • FastArduino comes with many examples covering all supported features and devices

I hope you'll enjoy playing with FastArduino platform; please submit enhancements you would like
to see in future versions or report issues you may discover.

FastArduino 1.9 release

25 Sep 13:33
Compare
Choose a tag to compare

I am happy to announce the 10th major release of FastArduino platform.

Since release 1.8 (October 2021), the main changes are listed there.

This release brings the following changes and improvements:

  • Support for Grove 125KHz RFID reader
  • Prevention of dynamic allocation (too dangerous on target AVR MCU)
  • Code and data size improvement by removing virtual methods in Futures, ostreambuf
  • API simplification by removing useless Lifecycle support
  • Improvement of TonePlayer API (new Beat type)
  • Improve I2C support utilities (e.g. with functors)
  • Add new bits utility functions
  • Add swap_bytes() functions for 64-bits words
  • Fix bad includes of "streams.h" in some API (preventing proper use of "empty_streams.h")
  • Fixing various issues in API documentation

Known bugs and requests for enhancements: https://github.com/jfpoilpret/fast-arduino-lib/issues

The platform is well documented:

  • a tutorial allows developers to discover and learn the platform step by step
  • FastArduino core API is documented through doxygen and documentation is published here
  • FastArduino comes with many examples covering all supported features and devices

I hope you'll enjoy playing with FastArduino platform; please submit enhancements you would like
to see in future versions or report issues you may discover.

Notes on upgrading to 1.9 version

Several changes in 1.9 may break some existing programs.

  • dynamic allocation disabled: if your code is using new or delete it will not compile anymore; this decision was made to avoid dynamic allocation in AVR MCU programs, because dynamic allocation may fragment the heap which size is too limited on AVR; it is always preferrable to use static data (or stack data) for everything.
  • ostreambuf virtual methods removed: if you use UART (hardware or software) for serial reception, you will need to register the used UART type as an ostreambuf listener with REGISTER_OSTREAMBUF_LISTENERS().
  • Future virtual methods removed: if you use I2C devices, you will need to call REGISTER_FUTURE_STATUS_LISTENERS(), REGISTER_FUTURE_OUTPUT_LISTENERS(), or their opposites REGISTER_FUTURE_STATUS_NO_LISTENERS(), REGISTER_FUTURE_OUTPUT_NO_LISTENERS().
  • if you use TonePlayer you will need to use new Beat instances (instead of previously integral BPM) to play_xxx() methods.
    You may check updated examples for concrete code showing the new adaptations needed.

FastArduino 1.8 release

10 Oct 17:46
Compare
Choose a tag to compare

I am happy to announce the 9th major release of FastArduino platform.

Since release 1.7 (September 2020), the main changes are listed there.

This release brings the following improvements:

  • Support for VL53L0X Laser Time of Flight distance sensor
  • Improvements to the I2C API:
    • new utility methods in I2CDevice
    • new set of common utilities in relation to Futures
  • Improvements to the Futures API:
    • new reset_() method allowing multiple reuses of a single Future instance
    • changes to AbstractFurutesGroup API
  • Improvements to the utilities API:
    • template method to change endianness of intergal values (useful with I2C devices)
  • Small improvements to the flash API
  • Small improvements to the array API
  • New "memory" API bringing few functions useful for memory issues debugging
  • New "iterator" API, used internally by FastArduino

Known bugs and requests for enhancements: https://github.com/jfpoilpret/fast-arduino-lib/issues

The platform is well documented:

  • a tutorial allows developers to discover and learn the platform step by step
  • FastArduino core API is documented through doxygen and documentation is published here
  • FastArduino comes with many examples covering all supported features and devices

I hope you'll enjoy playing with FastArduino platform; please submit enhancements you would like
to see in future versions or report issues you may discover.

FastArduino 1.7 release

19 Sep 08:16
d7b392d
Compare
Choose a tag to compare

I am happy to announce the 8th major release of FastArduino platform.

Since release 1.6 (November 2020), the main changes are listed there.

This release brings the following improvements:

  • Support for ATmega164,324,644,1284 MCU
  • Improve Future API
    • Add support for optional Future listeners
    • Add new FuturesGroup class, aggregating several Futures
  • Fix small issue on ATtinyX5 Timer1
  • Fix I2C callback wrong argument (with asynchronous I2C Managers)
  • Fix HMC5883L support (inverted Y and Z values)
  • Fix several issues with EEPROM API implementation
    • Values not always properly writtent
    • QueuedWriter writing to wrong EEPROM address sometimes

Known bugs and requests for enhancements: https://github.com/jfpoilpret/fast-arduino-lib/issues

The platform is well documented:

  • a tutorial allows developers to discover and learn the platform step by step
  • FastArduino core API is documented through doxygen and documentation is published here
  • FastArduino comes with many examples covering all supported features and devices

I hope you'll enjoy playing with FastArduino platform; please submit enhancements you would like
to see in future versions or report issues you may discover.

FastArduino 1.6 release

21 Nov 23:12
Compare
Choose a tag to compare

I am happy to announce the 7th major release of FastArduino platform.

Since release 1.5 (January 2020), the main changes are listed there.

This release brings the following improvements:

  • New API for "future" concept
  • New API for "lifecycle" concept and dynamic proxies
  • Global rework of the I2C support in order to allow asynchronous handling (on ATmega architecture only)
  • Small improvements to Timer API
  • Slight improvements to API of GPIO, PCI and PWM
  • New "test" namespace with a few helper function used by some FastArduino test examples

Note that I2C API changes are unfortunately not fully compatible with existing programs:

  1. If your program uses FastArduino provided I2C devices, then small adaptations will be needed. All examples have been adapted to show these changes.
  2. If you have defined your own I2C device support, then you are out of luck: you will have to rewrite most of it, as I2C device API is now based on the new "future" concept.

Other API changes shall have no impact on existing programs.

Known bugs and requests for enhancements: https://github.com/jfpoilpret/fast-arduino-lib/issues

The platform is well documented:

  • a tutorial allows developers to discover and learn the platform step by step
  • FastArduino core API is documented through doxygen and documentation is published here
  • FastArduino comes with many examples covering all supported features and devices

I hope you'll enjoy playing with FastArduino platform; please submit enhancements you would like
to see in future versions or report issues you may discover.

FastArduino 1.5 release

18 Jan 14:02
Compare
Choose a tag to compare

I am happy to announce the 6th major release of FastArduino platform.

Since release 1.4 (September 2019), the main changes are listed there.

This release brings the following improvements:

  • Rework project directory structure to reduce the number of files in project's root directory
  • Update make system to add support for USBtinyISP programmer
  • Add documentation for adding support for new I2C and SPI devices
  • Improve GPIO and PCI API to ease declaration of FastPin and PCISignal instances
    (issue #74 thanks hreintke for this excellent suggestion).
  • Add support for MCP23008 GPIO expander (similar to MCP23017)
  • Add support for MCP3x0x ADC chips family (note that only the MCP3008 chip has been tested; support for other chips has been implemented but could not be tested as I do not have these chips)
  • Fix API documentation issues with some badly generated namespaces

Almost all API changes are compatible with existing programs. Note that if you use MCP23017 device, its namespace has been renamed from mcp23017 to mcp230xx (this new namespace is shared between MCP23017 and MCP23008 devices).

Known bugs and requests for enhancements: https://github.com/jfpoilpret/fast-arduino-lib/issues

The platform is well documented:

  • a tutorial allows developers to discover and learn the platform step by step
  • FastArduino core API is documented through doxygen and documentation is published here
  • FastArduino comes with many examples covering all supported features and devices

I hope you'll enjoy playing with FastArduino platform; please submit enhancements you would like
to see in future versions or report issues you may discover.

FastArduino 1.4 release

22 Sep 09:34
Compare
Choose a tag to compare

I am happy to announce the 5th major release of FastArduino platform.

Since release 1.3 (September 2019), the main changes are listed there.

This release brings the following new features and enhancements:

  • Add support for Timer Input Capture Noise Canceler
  • Add support for Analog Comparator feature
  • Improve tone player API to support simpler transcription of music scores: durations are now based on music theory (whole notes, half notes, dotted notes...); ties, slurs and triplets are also supported; now you can provide a tempo (bpm) to the play API.

Also, in this release, an effort was made to clean up C++ code by explicitly adding declarations for copy constructors and assignment operators.

Do note the following API changes that break compatibility with programs developed with FastArduino 1.3:

  • devices::audio::TonePlay and devices::audio::QTonePlay: these structs do not embed durations in milliseconds any more; they now use the new devices::audio::Duration enum to use music theory notes durations (whole notes, quarters, quavers...)
  • devices::audio::TonePlayer and devices::audio::TonePlayer: additional argument bpm (beats per minute) to all play_XXXX() methods.

All features have been tested on all supported targets.

Known bugs and requests for enhancements: https://github.com/jfpoilpret/fast-arduino-lib/issues

The platform is well documented:

  • a tutorial allows developers to discover and learn the platform step by step
  • FastArduino core API is documented through doxygen and documentation is published here
  • FastArduino comes with many examples covering all supported features and devices

I hope you'll enjoy playing with FastArduino platform; please submit enhancements you would like
to see in future versions or report issues you may discover.

FastArduino 1.3 release

01 Sep 18:35
Compare
Choose a tag to compare

I am happy to announce the 4th major release of FastArduino platform.

Since release 1.2 (June 2019), the main changes are listed there.

This is mainly a release with bug fixes, but it also brings afew enhancements.

Do note the following API changes that break compatibility with programs developed with FastArduino 1.2:

  • devices::audio::ToneGenerator: API removed or updated (no more duration handled here)
  • devices::audio::QTonePlay: structure moved out of devices::audio::TonePlayer
  • devices::audio::TonePlayer: additional template parameter TONE_PLAY (either TonePlay or QTonePlay; now a TonePlayer instance can only play one type of TONE_PLAY.

All features have been tested on all supported targets.

Known bugs and requests for enhancements: https://github.com/jfpoilpret/fast-arduino-lib/issues

The platform is well documented:

  • a tutorial allows developers to discover and learn the platform step by step
  • FastArduino core API is documented through doxygen and documentation is published here
  • FastArduino comes with many examples covering all supported features and devices

I hope you'll enjoy playing with FastArduino platform and submit enhancements you would like
to see in future versions or report issues you may discover.

FastArduino 1.2 release

06 Jun 22:20
Compare
Choose a tag to compare

I am happy to announce the 3rd major release of FastArduino platform.

Since release 1.1 (April 2019), the main changes are listed there.

Do note that the following API changes that break compatibility with programs developed with FastArduino 1.1:

  • all register_XXX() methods but interrupt::register_handler() have been removed from API as now, all ISR registration is implicitly performed by constructors.
  • namespace PWMPin has been replaced with enum class PWMPin to ensure you cannot use any DigitalPin when a PWM pin is required; this allows usage of PWM pins that are linked to more than one timer (e.g. on Arduino LEONARDO and MEGA).
  • namespace InterruptPin has been replaced with enum class InterruptPin to ensure you cannot use any DigitalPin when a PCINT pin is required.
  • namespace ExternalInterruptPin has been replaced with enum class ExternalInterruptPin to ensure you cannot use any DigitalPin when an INT pin is required.

All features have been tested on all supported targets.

Known bugs and requests for enhancements: https://github.com/jfpoilpret/fast-arduino-lib/issues

The platform is well documented:

  • a tutorial allows developers to discover and learn the platform step by step
  • FastArduino core API is documented through doxygen and documentation is published here
  • FastArduino comes with many examples covering all supported features and devices

I hope you'll enjoy playing with FastArduino platform and submit enhancements you would like to see in future versions or report issues you may discover.

FastArduino 1.1 release

25 Apr 22:29
Compare
Choose a tag to compare

I am happy to announce the 2nd major release of FastArduino platform.

Since release 1.0 (February 2018), the following main changes have been implemented:

  • Build is now using C++14, with AVR-GCC 7.2.0 (tested on fedora 28 distribution)
  • Updated Watchdog API to add WatchdogRTT class
  • Reworked sonar API to support timeout, higher performance and higher precision
  • Redesigned ISR registration (no change in API though), reduce macros usage
  • Updated coding guidelines to fit clang-format 6 (latest available package on fedora 28)
  • Implemented MCP23017 chip support
  • Completed core API documentation
  • Completed tutorial for core API

All features have been tested on all supported targets.

Known bugs and enhancements: https://github.com/jfpoilpret/fast-arduino-lib/issues

The platform is well documented:

  • a tutorial allows developers to discover and learn the platform step by step
  • FastArduino core API is documented through doxygen and documentation is published here
  • FastArduino comes with many examples covering all supported features and devices

I hope you'll enjoy playing with FastArduino platform and submit enhancements you would like
to see in future versions or report issues you may discover.