Name | Modified | Size | Downloads / Week |
---|---|---|---|
Virtual Stable (Continuous Improvement) Release | 2023-01-06 | ||
Release Candidate | 2021-08-22 | ||
Beta Release | 2021-08-22 | ||
Alpha-Beta (Technical) Release | 2021-08-22 | ||
Schematic and PCB Design (PDF) | 2020-12-02 | ||
README.md | 2023-01-06 | 55.5 kB | |
Totals: 6 Items | 55.5 kB | 1 |
eCxx Release Changelog
Version 1.0.28-vs
Software - All
-
Added a driver implementation to control the CDisplayCtl class from the TTGO_VGA32_Lite library and its test application.
-
Added the previously missing basic utility function eCxx::underlyingType<>().
-
Various enhancements, bug fixes, and cleanups.
Software - NodeMCU
-
[DEPRECATED]
Support for older versions of GCC (pre newlib 4.0.0) has been deprecated and removed. -
[DEPRECATED]
Support for the legacy (older) Non-OS SDK 2.2.1 has been deprecated and will be removed in the next release. -
ESP8266 add-on package version 3.1.0 for Arduino IDE is now supported by the makefile.
-
Added the support for Non-OS SDK 3.0.5; however, until the next release, NONOSDK22x_191122 will still be used by default (NONOSDK305 can be selected by setting the makefile variable USE_NEW_NONOSDK305).
Version 1.0.27-vs
Software - All
-
[BACKWARD INCOMPATIBLE CHANGE]
The RTC-related class DateTime has been renamed to RTCDateTime; in addition, the order of the constructor parameters of the class has been changed. -
[BACKWARD INCOMPATIBLE CHANGE]
The macro PROGMEM_FAR has been renamed to PROGMEM_FFAR. Some other related macros and functions that end with _FAR and _far have also been renamed to end with _FFAR and _ffar. -
There are now three macros that can be used to store string literals in program memory: PGM_STR(), PGM_STR_FAR(), and PGM_STR_FFAR(). Please refer to the README file for more details.
-
A three-wire-interface communication system class (TriWIMaster) has been added.
-
A driver for DS1302 RTC has been added while the drivers for other RTCs have been improved; the RTC test applications have also been updated to test these new features.
-
Various enhancements, bug fixes, and cleanups.
Software - AVR
- DFP support has been tested to work using Atmel.ATmega_DFP.2.0.401.atpack.
Software - NodeMCU
-
[DEPRECATED]
Support for older versions of GCC (pre newlib 4.0.0) has been deprecated and will be removed in the next release. -
A new method, Application::readConfigFile(), has been added. This method can be used to read user-configuration data before calling Application::initialize(). The NVStorage test application for NodeMCU platform has been updated to test this new feature.
-
The support for using custom Xtensa LX106 GCC has been verified to work using the latest GCC 10.3.0 package which is downloaded from [https://github.com/earlephilhower/esp-quick-toolchain/releases/download/3.1.0-gcc10.3/x86_64-linux-gnu.xtensa-lx106-elf-e5f9fec.220621.tar.gz].
Version 1.0.26-vs
Host PC
- The Python and Java based serial console applications have been improved; they can now better detect if the target USB serial port has been disconnected. Please note that some features of the serial console applications may not work properly with some combinations of operating systems and MCU boards.
Software - All
-
Drivers for DS1307, DS3231, and PCF8563 TWI RTCs have been added; new test applications have also been added to test these new features.
-
Various enhancements, bug fixes, and cleanups.
Software - NodeMCU
- From now on the system will restart automatically when OTAError::EndErrorFatal occurs. In case the command line tool reports [ERROR]: Listen Failed on OTA update, please wait a while and try again; if it still reports the same error, please restart the system manually.
Version 1.0.25-vs
Software - All
-
The ColorFX2D<T> class has been improved. It now supports putting 90°, 180°, and 270° rotated sprites. The test application SpriteSheet2DTest has been improved to test this new feature.
-
Support for rotated visual layout (0°, 90°, 180°, and 270°) has been added via the new ColorFX2DPainterVL<T> class; a new test application has also been added to test this new feature.
-
A driver for TLC5615 SPI DAC (TLC5615Driver) has been added; a new test application has also been added to test this new feature.
-
A simple (raw) DMX512 controller class (DMXController) has been added; a new test application has also been added to test this new feature.
-
Various enhancements, bug fixes, and cleanups.
Version 1.0.24-vs
Host PC
- The Python and Java based serial console applications have been improved; user can now select the initial line ending mode via command line. Please note that some features of the serial console applications may not work properly with some combinations of operating systems and MCU boards.
Software - All
-
The ColorFX2DPainter<T> class has been improved. It now supports drawing 90°, 180°, and 270° rotated characters and texts. The test application CFX2DPainterTest has been improved to test these new features.
-
The SSD1327-based OLED display driver has been verified to work with both SPI-based and TWI-based modules.
-
Various enhancements, bug fixes, and cleanups.
Software - NodeMCU
- The support for using custom Xtensa LX106 GCC has been verified to work using the latest GCC 10.3.0 package which is downloaded from [https://github.com/earlephilhower/esp-quick-toolchain/releases/download/3.0.5-gcc10.3/x86_64-linux-gnu.xtensa-lx106-elf-aff7f1b.211127.tar.gz].
Version 1.0.23-vs
Host PC
- The support for command history in the Java based serial console application has been verified to work in Windows 10 using Java Runtime Environment (JRE) 8 update 261 (1.8.0_261-b12) that can be downloaded from [https://www.oracle.com/java/technologies/javase/javase8u211-later-archive-downloads.html] (jre-8u261-windows-x64.exe). Please note that the Python based serial console application still does not support Windows.
Software - All
-
Support for ColorFX2D<T> (images) with packed pixel types (black-and-white, gray 4, and gray 16) have been added.
-
The ColorFX2D<T> class has been improved. It now supports reducing bit depth and dithering for non packed W image variants. The test application ColorFX2DTest has been improved to test this new feature.
-
The ColorFX2DPainter<T> class has been improved. It now supports optional template arguments for defining a custom clip rectangle when drawing.
-
A simple driver for SSD1306-based OLED display has been added; a new test application has also been added to test this new feature.
-
A simple driver for SSD1327-based OLED display has been added; a new test application has also been added to test this new feature.
-
The lighting visualizer system has been improved. It now supports:
- alternative methods to create light sources;
- optional padding to match the aspect ratio of the area and the rendering target.
-
Refactoring of subdirectories for device and driver source code files.
-
Various enhancements, bug fixes, and cleanups.
Version 1.0.22-vs
Host PC
- The Python and Java based serial console applications have been improved; they now can load and save the command history. The command history file name is ".ecxx_serial_console_command_history" (shared by both the Python and Java based applications). Please note that this feature may not work properly in some operating systems and/or Python/JRE versions.
Software - All
-
[BACKWARD INCOMPATIBLE CHANGE]
The integer pow(), log2(), log10(), and roundToTheNextMultipleOf() functions have been renamed to ipow(), ilog2(), ilog10(), and iroundToTheNextMultipleOf() respectively. -
[BACKWARD INCOMPATIBLE CHANGE]
The enumeration members RBDMode::LeftAligned_NoDither and RBDMode::RightAligned_NoDither have been renamed to RBDMode::LeftAligned_NoDithering and RBDMode::RightAligned_NoDithering respectively. -
Some of the lightweight polled-timeout classes (PeriodicTimeout<T>, OneShotTimeout<T>, and OneShotTimeoutExt<T>) have been improved. They can now take an optional template argument to determine the timeout unit (TimeoutUnit::US or TimeoutUnit::MS); by default TimeoutUnit::MS is selected.
-
The ColorFX2D<T> class has been improved. It now supports reducing bit depth and dithering for non packed RGB image variants. The test application ColorFX2DTest has been improved to test this new feature.
-
A driver for AD9833 (programmable waveform generator) has been added; a new test application has also been added to test this new feature.
-
A simple lighting visualizer system for a collection of LED strips/matrixes and high power LED floodlights/spotlights has been added. New test applications have also been added to test this new feature (one of them is for NodeMCU platform only).
-
Various enhancements, bug fixes, and cleanups.
Software - x86
- A function to write a simple BMP file from various ColorFX2D<T> types has been added (all color types will be internally converted to RGBColor before writing). The test application ColorFX2DTest has been improved to test this new feature.
Software - AVR
- The test application ADCFHT has been verified using the sine waves generated using AD9833.
Software - NodeMCU
- The test application SSD1331 has been improved to test dithering.
Version 1.0.21-vs
Software - All
-
Added packed color types (RGB565Color, BGR565Color, and RGB332Color). Some of the test applications have been updated to test this new feature.
-
A simple driver for SSD1331-based OLED display (96x64 pixels) has been added; a new test application has also been added to test this new feature.
-
A simple driver for APDS9960 TWI digital ambient light, RGB, proximity, and gesture sensor (APDS9960Driver) has been added; a new test application has also been added to test this new feature. Please note that in this release, the driver code for the gesture sensor does not produce fully reliable results.
-
Various enhancements, bug fixes, and cleanups.
Software - AVR
- DFP support has been tested to work using Atmel.ATmega_DFP.1.6.364.atpack and Atmel.ATmega_DFP.1.7.374.atpack.
Software - NodeMCU
-
A new test application (DMAI2STone) to test DMA I2S audio output has been added. This test application is verified to work with PCM5102 audio stereo DAC.
-
A new test application (WiFiStationAndUDP) to test user UDP connection has been added.
Version 1.0.20-vs
Software - All
-
The EthUDPClient and WiFiUDPClient classes have been renamed to EthUDP and WiFiUDP respectively.
-
The driver for WiFi modules with Espressif AT firmware (and compatibles) now supports UDP passthrough mode via the new WiFiUDPPassthrough class.
-
New test applications have been added (WIZnetEthNTP, WiFiATWSLite, and WiFiATPass).
-
Added some advanced mathematical utility classes and functions for transforming values; a new test application has also been added to test this new feature.
-
Various enhancements, bug fixes, and cleanups.
Software - AVR
- A new test application for reading TEMT6000 sensor has been added.
Version 1.0.19-vs
Host PC
-
The bytecode compiler for the template text processor system now supports selecting between LZ77 and Heatshrink compression/decompression algorithms.
-
The Python and Java based serial console applications have been improved; they now support command history which is accessible using the up and down arrow keys (the command history will be cleared on application exit).
Software - All
-
The template text processor virtual machine now supports LZ77 and Heatshrink decompression algorithms.
-
A lightweight polled-timeout classes (OneShotTimeoutExt<T>) has been added.
-
A simple WiFi driver implementation (along with its related classes) for WiFi modules with Espressif AT firmware (and compatibles) has been added; new test applications have also been added to test this new feature. Please note that in this release, the performance and reliability of the WiFi driver implementation is not yet fully stable.
-
Various enhancements, bug fixes, and cleanups.
Software - NodeMCU
- ESP8266 add-on package version 3.0.2 for Arduino IDE is now supported by the makefile.
Version 1.0.18-vs
Host PC
- The bytecode compiler for the template text processor system has been improved: the command line options have been made clearer and more explicit; added the support for decoding runtime error values; added the support for uploading a compiled bytecode file.
Software - All
-
A simple ethernet driver implementation (along with its related classes) for some WIZnet chips has been added; a new test application has also been added to test this new feature.
-
A lightweight HTTP request parser and a lightweight web server implementations have been added; new test applications have also been added to test these new features.
-
The template text processor system has been improved: a bytecode reader and a bytecode writer classes for SlotFS are now available for use.
-
Various enhancements, bug fixes, and cleanups.
Software - NodeMCU
- ESP8266 add-on package version 3.0.1 for Arduino IDE is now supported by the makefile.
Version 1.0.17-vs
Host PC
-
A bytecode compiler for the template text processor system has been added. If the target is a NodeMCU platform, the compiler also supports uploading bytecode via TCP connection.
-
Syntax highlighting XML files for Kate (KDE Advanced Text Editor) have been included inside the tools/shf directory.
Software - All
-
Literal operators for creating binary and hexadecimal constants from string literals (which can contain digit separators) have been added; the BasicTest test application has been modified to test this new feature.
-
A simple template text processor system has been added.
-
The RawMemoryCard class has been improved; an alternative SS pin can now be selected.
-
Various enhancements, bug fixes, and cleanups.
Software - NodeMCU
-
A new test application (WebServerTTP) to test the simple template text processor system with web server has been added.
-
The support for using custom Xtensa LX106 GCC has been verified to work using the latest GCC 10.3.0 package which is downloaded from [https://github.com/earlephilhower/esp-quick-toolchain/releases/download/3.0.3-gcc10.3/x86_64-linux-gnu.xtensa-lx106-elf-9bcba0b.210606.tar.gz].
Version 1.0.16-vs
Software - All
-
A simple tasklet implementation (via the TaskletContext, Tasklet<T>, Lock, LockGuard, Mutex, MutexGuard, and Semaphore classes) has been added; new test applications have also been added to test this new feature.
-
A new output formatter class (OutputFormatter) has been added; a new test application has been added and some existing test applications have been modified to test this new feature.
-
The Convert and BasicOutputWriter<T> classes have been improved to properly support printing FixedPoint and Dec24FP instances.
-
Various enhancements, bug fixes, and cleanups.
Software - NodeMCU
-
ESP8266 add-on package version 3.0.0 for Arduino IDE is now supported by the makefile.
-
The support for sending chunked response in the BasicWebServer<T> class has been improved and better tested.
Version 1.0.15-vs
Software - All
-
New CTL container classes (DEVector<T> and SList<T>) have been added; new test applications have also been added to test these new classes.
-
A new class (Span<T>) that can refer to a contiguous sequence of objects has been added; a new test application has also been added to test this new feature.
-
A new class (StringView) that can refer to a constant contiguous sequence of characters has been added; some test applications have been updated and a new test application has also been added to test this new feature.
-
Various enhancements, bug fixes, and cleanups.
Software - AVR
- Initializing watchdog timer to 15 mS and 30 mS are no longer supported.
Software - NodeMCU
- All features from std::* have been replaced with similar features from eCxx::* (all eCxx applications no longer need to be linked with libstdc++.a).
Version 1.0.14-vs
Software - All
-
Three lightweight polled-timeout classes (PeriodicTimeoutPE<T>, PeriodicTimeout<T>, and OneShotTimeout<T>) have been added; the test aplications have been modified to use this new feature.
-
New CTL container classes (Vector<T>, DList<T>, Queue<T>, Stack<T>, Heap<T>, Set<T>, MultiSet<T>, Map<T>, and MultiMap<T>) have been added; new test applications have also been added to test these new classes.
-
A new class for 24-bit decimal floating-point implementation (Dec24FP) has been added; a new test application has also been added to test this new class.
-
The support for aligned memory allocation has been improved.
-
Various enhancements, bug fixes, and cleanups.
Software - NodeMCU
-
The WebServerSSL class now support session (server cache). This would greatly improve the server performance.
-
The Arduino ESP8266 libraries ESP8266WiFi and ESP8266mDNS have been absorbed into the primary eCxx library.
Version 1.0.13-vs
Software - All
-
A simple driver for MCP4725 TWI DAC (MCP4725Driver) has been added; a new test application has also been added to test this new feature.
-
The AT24XXXDriver class has been improved and optimized. It now supports updating one byte, one/partial page, and multiple bytes; the test application has also been improved to test this new feature. In addition, the driver has been verified to work with AT24C02, AT24C08, and AT24C256 EEPROMs.
-
A simple EEPROM cyclic storage implementation (EEPROMCyclicStore) has been added; a new test application has also been added to test this new feature.
-
Support for non-blocking ADC read for the built-in ADCs has been added (it can only read from real ADC pins and not from any internal sensors).
-
Various enhancements, bug fixes, and cleanups.
Software - NodeMCU
- The Arduino ESP8266 libraries ESP8266WebServer and LittleFS have been absorbed into the primary eCxx library.
Version 1.0.12-vs
Host PC
- The included ESP-LINK has been updated to version 3.0.14.
Software - All
-
A utility class (StringUUID) to process UUIDs in string forms has been added.
-
A simple driver for ADS1X15 TWI ADC (ADS1X15Driver) has been added; a new test application has also been added to test this new feature.
-
A simple driver for PCF8591 TWI ADC-DAC (PCF8591Driver) has been added; a new test application has also been added to test this new feature.
-
A simple driver for [AT]24XXX TWI EEPROM (AT24XXXDriver) has been added; a new test application has also been added to test this new feature.
-
A simple reader class for incremental (quadrature) rotary encoder (IncrementalRotaryEncoder) has been added; a new test application has also been added to test this new feature.
-
Various enhancements, bug fixes, and cleanups.
Software - AVR
- Refactoring of source code files related to UART and virtual UART.
Software - NodeMCU
- A new test application for AnalogJoystick<T> class that utilizes ADS1115 has been added.
Version 1.0.11-vs
Software - All
-
The tupleCat<T>(), apply<T>(), and apply_mf<T>() functions are now also working on older versions of GCC.
-
The StringIP class has been improved. It now can also process MAC addresses.
-
The FastHartleyTransform class now supports more lengths (8, 16, 32, 64, and 128).
-
Various enhancements, bug fixes, and cleanups.
Version 1.0.10-vs
Software - All
-
A new main header file (eCxx_Extension.h) has been added. This new header file provides new CTL features similar to the C++ standard library extensions (some with different names). This new header file also provides some other additional features. Please refer to docs/ECXX_HEADER_FILES for more details.
-
A utility class (StringIP) to process IP addresses in string forms has been added.
-
A simple 8-bit FHT (Fast Hartley Transform) implementation has been added; the new class name is FastHartleyTransform. A new test application has also been added to test this new feature.
-
A new ready-to-use animation processor class for the ColorAnimator1D<T> class has been added.
-
The UnipolarNRZLEDDriver class has been verified to work with WS2811 LED strip (only 800 kHz mode is supported); new test applications have been added for this purpose.
-
Various enhancements, bug fixes, and cleanups.
Software - AVR
- The GenericSPILEDDriver<T> class has been verified to work with a P9813 LED. A new test application has been added for this purpose.
Software - NodeMCU
- The support for using GCC 5.2.0 which is downloaded from [https://dl.espressif.com/dl/xtensa-lx106-elf-linux64-1.22.0-100-ge567ec7-5.2.0.tar.gz] has been dropped. It generates larger code that causes many applications not to build properly due to insufficient IRAM.
Version 1.0.9-vs
Software - All
-
Refactoring of the main header files. Please refer to docs/ECXX_HEADER_FILES to find which header files are for which features.
-
Improvements in the ColorFX2D<T> class (blur effects have been added).
-
The WS2812BDriver class has been renamed to UnipolarNRZLEDDriver and improved. In addition, this driver has also been verified to work with SK6812-RGBW LED strip. In the future, more LED types would be supported by this driver.
-
Two major CTL features (FunctionTraits<T> class and bind<T>() function family) have been added.
-
Various enhancements, bug fixes, and cleanups.
Version 1.0.8-vs
Software - All
-
A simple driver for generic, HUB75-based LED panel (GenericHUB75Driver<T>) has been added; new test applications have also been added to test this new feature.
-
Some wrapper classes for convenience shortcuts when using various combinations of ColorFX1D<T>, ColorFX2D<T>, ColorAnimator1D<T>, ColorAnimator2D<T>, and GenericSPILEDDriver<T> classes have been added. Please include the header file eCxx_SPILEDDriver1DShortcut.h or eCxx_SPILEDDriver2DShortcut.h to use them.
-
Various enhancements, bug fixes, and cleanups.
Version 1.0.7-vs
Software - All
-
A simple driver for generic, SPI-like, addressable digital LED (GenericSPILEDDriver<T>) has been added; new test applications (for APA102C LED strip) have also been added to test this new feature.
-
More ready-to-use animation processor classes for the ColorAnimator2D<T> class have been added.
-
Two new special base classes (Uninstantiable and Uncopyable) have been added. Some parts of the source code have been refactored using these new classes.
-
Various enhancements, bug fixes, and cleanups.
Version 1.0.6-vs
Host PC
- The Java based tool for simulating LED strip and matrix (LEDSimulator.java) has been improved. It now supports HSV and HSL color types.
Software - All
-
A 2-dimensional color animator class (ColorAnimator2D<T>) has been added (complete with some ready-to-use animation processor classes). Please include the header file eCxx_ColorAnimator2D.h to use them. A new test application has also been added to test this new feature.
-
A simple color generator class (ColorGenerator2D_OffOn<T>) has been added (for use with some 2-dimensional animation processor implementations).
-
Various enhancements, bug fixes, and cleanups.
Software - x86
-
Some helper functions to generate and execute simulation data files for 2-dimensional LED simulation have been added. Please include the header file eCxx_SDF.h to use this feature. Currently, only simulation data files with RowMajor and HSVColor/HSLColor/WColor/RGBColor/RGBWColor formats can be generated.
-
The helper functions to generate and execute simulation data files for 1-dimensional LED simulation now also support HSVColor, HSLColor, WColor, and RGBWColor formats.
Software - NodeMCU
-
Using classic library and new library (newlib 4.0.0) are now supported (the library selection will depend on the selected GCC that will be used to build eCxx). Due to incomplete header files in older versions of ESP8266 add-on packages for Arduino IDE, the minimum package version currently supported is from version 2.5.0 (previously, it was from version 2.4.0). Please note that using newlib 3.3.0 is no longer supported.
-
Some parts of the networking (WiFi) sub-system have been reimplemented (following some updates from the upstream Arduino ESP8266 GIT repository).
Version 1.0.5-vs
Host PC
- The Java based tool for simulating LED strip and matrix (LEDSimulator.java) has been improved.
Software - All
-
A simple color generator class (ColorGenerator1D_OffOn<T>) has been added (for use with some 1-dimensional animation processor implementations).
-
More ready-to-use animation processor classes for the ColorAnimator1D<T> class have been added.
-
Refactoring of built-in colors; now they are normal global constants (they were functions that return constant color objects).
-
Support for direct digital configure, read, and write have been added to all supported platforms via the PinDDX<T> classes. Please include the header file eCxx_DDX.h to use this feature. New test applications have also been added to test this new feature.
-
All graphics-related header and source files have been moved into their own sub-directories (except for the corresponding eCxx_*.h header files).
-
All pin-mapping-related header files have been moved from src/eCxx/Platform/* directories to include/eCxx/Platform/* directories.
-
Various enhancements, bug fixes, and cleanups.
Software - x86
- Some helper functions to generate and execute simulation data files for 1-dimensional LED simulation have been added. Please include the header file eCxx_SDF.h to use this feature. Currently, only simulation data files with RowMajor and RGBColor formats can be generated.
Version 1.0.4-vs
Host PC
-
The source code files of eCxx's Java based tools are now put inside the tools/src directory.
-
A new Java based tool for simulating LED strip and matrix (LEDSimulator.java) has been added.
Hardware
- The non-development version of JTAG2UPDI and serial bridge board using Arduino Micro and Arduino Pro-Mini (JTAG2UPDI_Serial_Bridge_Micro_ProMini_ND) have been added. In this version, non essential components and connections have been removed. The PCB design is also modified for a normal PCB manufacturing (no longer for perfboard assembly guide).
Software - All
-
A 1-dimensional color animator class (ColorAnimator1D<T>) has been added (complete with some ready-to-use animation processor classes). Please include the header file eCxx_ColorAnimator1D.h to use them. New test applications have also been added to test this new feature.
-
The Application::processEvent() function has been improved. Now, passing false when calling it will cause the system to not blink the activity indicator LED. Therefore, although the system will still blink the activity indicator LED under certain conditions, the user code is free to use the LED in other conditions. These are the conditions when the system will explicitly set the pin that controls the activity indicator LEDs to output mode and blink the LED:
- The user code calls Application::initialize()
- The user code calls Application::halt()
- OTA programming is executed/in progress (for NodeMCU platform only)
-
Refactoring of PinMapping.h and PinName.h header files.
-
Math utility functions for calculating GCD (greatest common divisor ) and LCM (least common multiple) have been added.
-
Various enhancements, bug fixes, and cleanups.
Software - NodeMCU
-
OTA programming callback functions and error message handling have been improved.
-
Following some updates from the upstream Arduino ESP8266 GIT repository, a new makefile variable (MORE_IRAM) has been added. It allows the user to select between balanced mode (32 kB IRAM + 32 kB cache) and more IRAM mode (48 kB IRAM + 16 kB cache) when building eCxx and its test applications and firmware. The default mode is the balanced mode.
-
The hardware and system information class (HWInfo) has been improved (it can now obtain the IRAM and ICACHE sizes). The member function maxFreeBlockSize() has also been renamed to maxHeapFreeBlockSize().
Version 1.0.3-vs
Host PC
- The Python script tools/ResetCaterina.py has been renamed to tools/ResetToBootloader.py.
Hardware
- The schematic and PCB design for JTAG2UPDI and serial bridge board using Arduino Micro and Arduino Pro-Mini (JTAG2UPDI_Serial_Bridge_Micro_ProMini) have been added.
Software - All
-
All hardware UART driver implementations now support changing baudrate without shutting down the UART. Ongoing transmissions of the transmitter and receiver will be corrupted when the baudrate is changed, therefore, an appropriate protocol must be implemented in the user application to handle this.
-
Various enhancements, bug fixes, and cleanups.
Software - AVR (Only for MCUs with Built-In USB Device Modules)
-
A Function (one for each VUART) to set a user callback to be called when the USB host change the serial port setting(s) have been added to the Application class.
-
A function to set a user callback to be called when the USB host opens VUART0 with the magic baudrate and set the DTR line to low has been added to the Application class. If this user callback is set, then instead of resetting the MCU to run the bootloader, the driver will call the user callback.
-
A new firmware (J2U_Ser_Bridge_Micro) has been added. This firmware is for the Arduino Micro part of the JTAG2UPDI and serial bridge board.
Documentation
-
All documentation files that were located in the project's root directory have been moved to the docs directory.
-
The Markdown files of the project's SourceForge wiki pages are now included in the docs directory.
Version 1.0.2-vs
Host PC
- Both the 32-bit and 64-bit versions of mklittlefs are now included in the eCxx distribution package. This will come in handy if the installed Arduino core for ESP8266 WiFi chip does not include the mklittlefs utility.
Software - All
-
A simple driver for MAX72XX-based 7-segment module (MAX72XXSevenSegmentDriver) has been added; new test applications have also been added to test this new feature.
-
More color buffer layout policies have been added.
-
Various enhancements, bug fixes, and cleanups.
Software - AVR
- On AVR MCUs with built-in USB device modules, the eCxx USB driver ignores the serial port settings (baudrate, character size, parity, and the number of stop bits) and always communicates with the host PC using the USB speed. However, because those serial port settings may be needed to implement certain applications (such as USB to serial bridge), new functions to obtain those settings from both virtual UARTs (VUART0 and VUART1) have been added to the Application class.
Software - NodeMCU
-
The PWM generator logic has been reimplemented (following some updates from the upstream Arduino ESP8266 GIT repository).
-
Some NTP (Network Time Protocol) and other date-time related functions have been added in the Application class. The WiFiStation test application has been renamed to WiFiStationAndNTP and updated to test this new feature. Please note that in order to use the predefined timezone names with NTP, the new header file (TZName.h) needs to be included from user applications.
Version 1.0.1-vs
The first virtual stable (continuous improvement) release.
Host PC
- Various enhancements, bug fixes, and cleanups on the build system and tools.
Software - All
- Various enhancements, bug fixes, and cleanups.
Version 1.0.0-rc2
Host PC
-
The build system for the NodeMCU platform has been slightly improved. It now supports uploading compressed user binaries (both signed and unsigned) via the OTA programming support (use the makefile variable COMPRESS_OTA_BINARY to enable it). Although uploading a compressed binary will speed up the upload process, the system restart process will take significantly longer time because the bootloader will need to decompress the binary. This, in turn, will increase the chance of corruption in case of power failure. This is why this feature is not enabled by default. Uploading compressed LittleFS images via over-the-air programming (OTA) support is not supported.
-
A simple Bash script (check_build_all.sh) has been added; this script will help in performing eCxx build checks for all supported platforms with various configurations. You will need to edit the build tool locations, check lists, and other configurations which are defined in the execCheckXXX() functions to match your system configuration.
-
A simple Bash script (tools/tzname/generate.sh) to generate the header file TZName.h has been added. Currently the header file is not yet used.
Software - All
-
The eCxx::function<T> and eCxx::Ext::function<T> classes are now stable and should work properly. However, mixing them with std::function<T> would cause additional overhead.
-
Various enhancements, bug fixes, and cleanups.
Software - NodeMCU
- Starting from this release, WiFi sleep mode is disabled upon application initialization (WIFI_NONE_SLEEP).
Version 1.0.0-rc1
The first release candidate.
Host PC
-
The Bash script (find_tools.sh) has been slightly improved.
-
New makefile targets to create and upload LittleFS images have been added (available for NodeMCU platform only). Uploading signed LittleFS images is not supported.
Software - All
- Various enhancements, bug fixes, and cleanups.
Software - NodeMCU
- Starting from this release, the eagle.flash.4m2m.ld linker script is used (in previous releases eagle.flash.4m1m.ld was used). It means more file system data can be stored in the internal flash (~2 MiB vs ~1 MiB). However, it would also mean that atomic file system updating via OTA programming can no longer be enabled.
Version 0.9.9-beta5
Software - All
- Various enhancements, bug fixes, and cleanups.
Software - NodeMCU
-
The support for IPv6 in lwIP (Lightweight IP stack) is now included with eCxx. Edit the LWIP_IPV6 variable in Makefile.config.nodemcu to enable it.
-
A new member function size_t Application::getNetIfDescList(NetIfDesc* resBuff, size_t buffLen) has been added. This function can be used to get a list of network interface descriptions. The HWInfo test application has also been updated to test this new feature.
-
A new header file eCxx_WebServerStreamSlotFS.h has been added. Include this header file to stream data (file) from SlotFS to web server. A new test application has also been added to test this new feature.
-
A new test application for testing file uploads via a web server (WebServerUpload) has been added.
-
Refactoring of the TCPClient, TCPServer, WebServer, and WebServerSSL classes to minimize symbol pollution.
Version 0.9.9-beta4
Host PC
- A simple Bash script (find_tools.sh) has been added; this script will help finding the latest version of GCC and other build tools in your system.
Software - All
-
The ColorFX2D<T> class has been improved; it now supports:
-
Setting all colors from program memory.
-
Extracting a vertical strip, a horizontal strip, and a block of colors.
-
-
Four new program memory helper functions have been added:
constexpr PGMCharPointer stdPGMCharPointer<ValueT>(const ValueT* ptr);
constexpr PGMCharPointer stdPGMCharPointer<ValueT, N>(const ValueT (&ptr)[N], size_t idx);
constexpr PGMCharPointer stdPGMCharPointerFar<ValueT>(const ValueT* ptr);
constexpr PGMCharPointer stdPGMCharPointerFar<ValueT, N>(const ValueT (&ptr)[N], size_t idx);
-
A new method to put inline string literals in program memory has been added. This new feature needs the N3599 extension (literal operators for string literals) that should be supported by all standard GCC versions in C++14 mode. Please edit the CPP_VER variable in Makefile.main to change c++11 to c++14 (please note that the GCC that is packaged with Arduino core for ESP8266 WiFi chip version 2.7.4 has not yet supported C++14). These are the new literal operators:
inline PGMCharPointer operator"" _pgm();
inline PGMCharPointerFar operator"" _pgmf();
-
Various enhancements, bug fixes, and cleanups.
Note:
- Unlike PGM_PTR<ValueT>(), PGM_PTR<ValueT, N>(), PGM_PTR_FAR<ValueT>(), and PGM_PTR_FAR<ValueT, N>() that will return BasicPGMPointer<const ValueT\*> and BasicPGMPointerFar<const ValueT\*>, the new program memory helper functions will always return PGMCharPointer and PGMCharPointerFar respectively.
Software - AVR
-
A new test application to test a larger (32x16) MAX72XX-based LED matrix has been added. It is an implementation of John Conway's Game of Life.
-
The support ATmega4809 has been verified to work using Arduino Nano Every.
-
DFP support has been tested to work using Atmel.ATmega_DFP.1.4.351.atpack and Atmel.ATmega_DFP.1.5.362.atpack.
Software - NodeMCU
- The support for using custom Xtensa LX106 GCC has been verified to work using the latest GCC 10.2.0 package which is downloaded from [https://github.com/earlephilhower/esp-quick-toolchain/releases/download/3.0.0-gnu13/x86_64-linux-gnu.xtensa-lx106-elf-2f311fd.200918.tar.gz].
Version 0.9.9-beta3
Software - All
-
The MAX72XX-based LED matrix driver (MAX72XXMatrixDriver) has been improved; a new test application has also been added to test this new feature.
-
A simple ColorFX2D<T> based painter (ColorFX2DPainter<T>) has been added; a new test application has also been added to test this new feature.
-
A simple 2D sprite sheet implementation (SpriteSheet2D<T>) has been added; a new test application has also been added to test this new feature.
-
More color buffer layout policies have been added.
-
More utility templates and template functions similar to C++11 have been added (some with different names).
-
Various enhancements, bug fixes, and cleanups.
Version 0.9.9-beta2
Software - All
-
A simple BCM (binary code modulation) waveform generator (BCMOutput) has been added; new test applications have also been added to test this new feature.
-
A simple driver for WS2812B LED strip and matrix (WS2812BDriver) has been added; new test applications have also been added to test this new feature.
-
A simple driver for MAX72XX-based LED matrix (MAX72XXMatrixDriver) has been added; new test applications have also been added to test this new feature.
-
Improvements in the ColorFX1D<T> and ColorFX2D<T> classes; more color buffer layout policies have also been added.
-
Various enhancements, bug fixes, and cleanups.
Note:
- Please include the header file eCxx_LEDDriver.h to use the above waveform generator and LED drivers.
Software - AVR
-
A simple wrapper class for timer/counter 1 (TimerCounter1) has been added; a new test application have also been added to test this new feature.
-
The support for AT90USB646 and AT90USB1286 is no longer experimental.
-
The support for ATmega808, ATmega1608, ATmega3208, ATmega4808, ATmega809, ATmega1609, ATmega3209, and ATmega4809 is no longer experimental.
-
The support for ATmega48PB, ATmega88PB, ATmega168PB, and ATmega328PB is no longer experimental.
Software - NodeMCU
- Bug fix in the TCPConsole class.
Version 0.9.9-beta1
The first beta release.
Software - All
-
Refactoring of the main header file. In all previous alpha-beta releases, only one header file (eCxx.h) needs to be included from user applications in order to use all the eCxx features; from this release onward, the header file has been split into:
-
eCxx.h : for all basic features of eCxx.
-
eCxx_ColorSpace.h : for data types and utility functions related to color spaces and effects.
-
eCxx_InputDevice.h : for analog joystick, keypad, and switch.
-
eCxx_LCD.h : for character LCD driver with its various output methods (4-bit parallel, TWI, and UART).
-
eCxx_MemoryCard.h : for raw memory card access and slot-based file system.
-
eCxx_Server.h : for TCP console, TCP server, and web server.
-
-
The AnalogJoystick<T> class has been improved. It now requires an additional template parameter (ADCDriverT); by default the template parameter is substituted with the Application class. If it needs to be configured to use an external ADC reader/driver, a customized class can be implemented. The class implementation must have at least these static member constants and functions implemented:
using Application_Base::PinMode;
using Application_Base::InvalidPin;
static constexpr uint8_t ADCPinMin = <some value>;
static constexpr uint8_t ADCPinMax = <some value>;
static void setPinMode(uint8_t pin, PinMode mode);
static uint16_t analogRead(uint8_t pin);
-
The Convert and BasicOutputWriter<T> classes have been improved and optimized.
-
Some color space utility functions and color effect classes have been added (complete with their test applications).
-
Various enhancements, bug fixes, and cleanups.
Software - AVR
- A new test application has been added to show how to use bit banging to control WS2812B LEDs.
Software - NodeMCU
- Added simple and thin wrapper classes for NodeMCU's WiFiServer, ESP8266WebServer, and ESP8266WebServerSecure classes so that the public API will look more consistent with other parts of eCxx.
Technical Release 7
With this release, all eCxx primary features are finally complete!
Software - All
-
A one-wire software UART class (OneWireSoftUART) has been added (complete with its test applications).
-
Various enhancements, bug fixes, and cleanups.
Software - AVR
-
A simpler analog comparator class (AnalogComparatorLite) has been added for classic AVR platform (complete with its test application).
-
Fixed watchdog timer initialization on AVRX platform.
-
Fixed SPI frequency initialization on AVRX platform.
-
Added the support for USERROW read and write on AVRX platform.
-
Added the support for power-down and wake-up on AVRX platform.
Technical Release 6
Host PC
-
Two AVRDUDE configuration files are now included (3rd_party/tools/avrdude.conf and 3rd_party/tools/avrdude-legacy.conf), just in case someone needs them. These files are copied from Arduino IDE installation packages.
-
A Python-based UPDI driver/program for programming new tinyAVR and megaAVR devices (pyupdi) has been included as a 3rd-party tool. The makefiles have been modified to support this tool.
-
The source code of a C-based UPDI driver/program for programming new tinyAVR and megaAVR devices (updiprog) has been included as a 3rd-party tool. The makefiles have been modified to support this tool. However, you will need to compile/build and install updiprog yourself.
-
The source code of jtag2updi has been included as a 3rd-party tool. You will need to compile/build and upload it yourself.
Software - All
-
The maximum number of slots that can be opened simultaneously by SlotFS now depends on the total RAM of the target platform.
-
The hardware and system information class (HWInfo) has been improved.
-
Various enhancements, bug fixes, and cleanups.
Software - AVR
-
Fixed errors in calculating total RAM and flash size.
-
The makefiles have been modified to support using optional device pack for newer AVR MCUs.
-
Removed the support for ATmega1281 and ATmega2561.
-
Added the support for AT90USB646 and AT90USB1286 (with the same USB driver as ATmega16U4 and ATmega32U4).
-
Added the support for ATmega48PB, ATmega88PB, ATmega168PB, and ATmega328PB (experimental).
-
Added the support for ATmega808, ATmega809, ATmega1608, ATmega1609, ATmega3208, ATmega3209, ATmega4808, and ATmega4809 (experimental). These MCUs require AVR GCC at least version 8.1.0 or the AVR GCC which is included by Atmel AVR 8-bit Toolchain version 3.6.1 or later.
Software - NodeMCU
-
A simple TCP console class (TCPConsole) has been added (complete with its test application).
-
The RawMemoryCard and SlotFS classes have now been verified to work properly on NodeMCU platform.
Technical Release 5
Host PC
-
The Python and Java based serial console applications now remove their always-on-top window attributes when they get focused for the first time (clicked/activated by the user).
-
Added an INF file tools/eCxx_CDC-ACM.inf (modified from LUFA example INF file). This file might be needed for Windows 8.1 and earlier versions. However, the file has not been verified properly due to the lack of a test PC with Windows 8.1 and earlier versions.
Software - All
-
A simple raw-mode memory card reader and writer class (RawMemoryCard) has been added.
-
A simple slot-based file system class (SlotFS) has been added.
Software - AVR
-
The algorithm for resetting the MCU from the USB driver has been improved. This should prevent spurious resets in operating systems that unintentionally toggle the DTR line multiple times when opening serial ports.
-
Slight code size and RAM usage optimization by making some parts of the TWI driver code from being linked when they are not actually in use.
-
The source code should now compile with older versions of AVR GCC (or some other versions with buggy/incomplete standard C libraries).
-
A minimum LUFA 111009 source code is now included within the eCxx source code tree so that customized versions of Caterina bootloader can be built (they are located in the 3rd_party directory).
Technical Release 4
Host PC
-
Some Python and Java based tools have been added:
-
tools/ResetCaterina.py : reset the attached Arduino Leonardo (and other compatible boards/systems) to run its Caterina bootloader.
-
tools/ResetMCUFromUSB.py : reset the attached MCU to restart the user application (it would not run the Caterina bootloader).
-
tools/SerialConsole.py3 : serial console applications that support both TTY and TCP.
-
tools/SerialConsole.java : serial console applications that support both TTY and TCP.
-
-
The makefiles have been modified to support the above applications. Simply type make and press enter to show all the available targets.
-
The shadow_init.sh Bash script and the makefiles have been improved. They now support building user application in a shadow directory.
Note:
-
Both serial console applications try not to toggle the DTR line when started, except maybe at the first time when the MCU board has just been connected to a USB port and after uploading/programming.
-
The Try Reset MCU button in each serial console application (TTY mode only) can be used to reset the MCU.
-
The Java based serial console application is cross platform. However, in non Linux operating systems, it may always toggle the DTR line when the application is closed.
Hardware
- The ESP01_AVR_Uploader has now been verified to work using eCxx's own firmware.
Software - AVR
-
Added the support for ATmega16U4 and ATmega32U4 with USB driver:
-
The driver supports two virtual UARTs.
-
The USB configuration descriptor might not be compatible with some operating systems. In those operating systems, the virtual UART(s) might not be properly enumerated.
-
In Linux, the first virtual UART would always be enumerated first and thus has a lower device number than the second one (e.g. /dev/ttyACM0 and /dev/ttyACM1). However, in Windows they may be swapped (e.g. COM6 and COM5, instead of COM5 and COM6).
-
Software - NodeMCU
-
The eCxx's own firmware for ESP01_AVR_Uploader is now working. Notable differences between ESP-LINK's and eCxx's firmware:
-
The eCxx's firmware only works in WiFi access point mode. It would limit the number of devices that can connect to the system, hence, improving security.
-
Only one connection can be opened at a time (either serial console or program-uploading port). This behavior mimics the USB-FTDI uploader's behavior.
-
Opening either the serial console or program-uploading port will reset the attached AVR MCU. This behavior also mimics the USB-FTDI uploader's behavior.
-
The eCxx's firmware does not save the UART baudrate. The baudrate can be configured by sending GET request to the embedded web server, for example:
curl http://esp01au.local/upload/baud?rate=57600
curl http://esp01au.local/console/baud?rate=9600
-
Technical Release 3
Hardware
- Fixed wrong legends (can be fatal!) on ATmega1284P_DevBoard PCB.
Software - All
-
eCxx's own implementation of WeakPtr<T> class and its related utilities have been added.
-
BasicOutputWriter<T> now has printfString(), overloaded member functions for 64-bit integer, and overloaded member functions for boolean.
-
More test applications.
-
Various enhancements, bug fixes, and cleanups.
Software - AVR
- Added a simple read-write test application for eCxx IO_Expander board. The design has now been verified to work at 5V.
Software - NodeMCU
-
Added a simple read-write test application for eCxx IO_Expander board. The design has now been verified to work at 3.3V.
-
The support for using custom Xtensa LX106 GCC has been verified to work using the latest GCC 9.3.0 package which is downloaded from [https://github.com/earlephilhower/esp-quick-toolchain/releases/download/3.0.0-gnu7/i686-linux-gnu.xtensa-lx106-elf-1b78db5.1588270932.tar.gz]. Due to the stricter nature of the new version of GCC, many warnings might be generated when compiling.
-
The support for using custom Xtensa LX106 GCC has been verified to work using the latest GCC 10.1.0 package which is downloaded from [https://github.com/earlephilhower/esp-quick-toolchain/releases/download/3.0.0-gnu12/i686-linux-gnu.xtensa-lx106-elf-0474ae9.200706.tar.gz]. Due to the stricter nature of the new version of GCC, many warnings might be generated when compiling.
Technical Release 2
Hardware
- Bug fixes for ESP01_AVR_Uploader schematic and PCB. The design has now been verified to work with ESP-LINK to program AVR MCUs in both 5V and 3.3V modes.
Software - All
-
eCxx's own implementation of NumericLimits<T> classes has been added.
-
eCxx's own implementation of SharedPtr<T> class and its related utilities have been added.
-
eCxx's own implementation of UniquePtr<T> class and its related utilities have been added.
-
A simple reader class for two-axis analog joystick with one switch (push button) has been added.
-
The behavior of KeypadScanner scanner class has been slightly changed. Initialization is now done via the begin() functions instead of constructors.
-
Various enhancements, bug fixes, and cleanups.
Software - NodeMCU
-
Updated to NONOSDK22x_191122 (the original NONOSDK221 is still included and can be selected by setting the makefile variable USE_LEGACY_NONOSDK221).
-
Added the forgotten special C++ ABI code for NodeMCU (copied from Arduino library code).
-
The output-only DMA (I2S) support has been improved. A new test application has been added to show how to use DMA to control WS2812B LEDs.
-
Support for using custom Xtensa LX106 GCC (by setting the makefile variable CUSTOM_GCC_DIR) has been added. It has been verified to partially work using GCC 5.2.0 which is downloaded from [https://dl.espressif.com/dl/xtensa-lx106-elf-linux64-1.22.0-100-ge567ec7-5.2.0.tar.gz]. Because Xtensa LX106 GCC 5.2.0 generates larger code, some applications cannot be properly built due to insufficient IRAM.
Technical Release 1
Host PC
- ESP-LINK is now included as a 3rd-party tool. Support for remote AVR programming using it has been added to the makefiles.
Software - All
-
A hardware and system information class (HWInfo) has been added.
-
The CharacterLCD class and its various output methods should now theoretically support character-LCDs with more than 80 characters (larger than 40x2) by utilizing the RW pin as pin E2.
-
Various software and hardware enhancements, bug fixes, and cleanups.
-
Some directories, files, and code refactoring.
Software - AVR
- More test applications.
Software - NodeMCU
-
TWI communication in slave mode is now working.
-
Binary signing verification for OTA programming is now working.
-
A proper hostname can now be set when configuring the application, hence, mDNS should now function properly.
-
The Application class now supports switching to WiFi station mode.
-
Added the support for output-only DMA (I2S).
-
Arduino library ESP8266WebServer is now included within the eCxx SVN tree.
-
More test applications.
-
The work on eCxx's own firmware for ESP01_AVR_Uploader has been started.
Technical Release 0
The first alpha-beta (technical) release.