Sming

Sming - powerful open source framework simplifying the creation of embedded C++ applications.

LGPL-3.0 License

Stars
1.4K
Committers
103

Bot releases are hidden (Show)

Sming - 5.1.0 Latest Release

Published by slaff 10 months ago

We are happy to announce Sming version 5.1.0 - a new major release and our present for you this Christmas.

image

What's Changed

New features

Improvements

Bug fixes

Breaking Changes

New Contributors

Full Changelog: https://github.com/SmingHub/Sming/compare/5.0.0...5.1.0

Sming - 5.0.0

Published by slaff over 1 year ago

5.0.0 is our fist major release in the 5 series.

Thanks to our great contributors and special thanks to @mikee47's for his fantastic work.

What is New

It marks the beginning of some very useful and important features that have landed in Sming.
Some of these that might be interesting to you are and are listed below.

Support for RP2040 architecture

Sming 5.0.0 has support for RP2040 architecture. This means that your Sming application can run on a RP2040 board. For that you need to install the RP2040 toolchain using our installation tool. The toolchain is available for both Linux and Windows. And on Linux can be installed with the following command:

./Tools/install.sh rp2040

And then you can recompile your favorite application for this architecture using the make flag SMING_SOC=rp2040. For example the Basic_Blink app can be compiled with the following commands:

cd $SMING_HOME/../samples/Basic_Blink
make SMING_SOC=rp2040

ESP32 support for ESP-IDF version 4.3, 4.4 and 5.0

ESP-IDF is Espressif's IoT Development Framework for ESP32 development. Upgrading to newer versions of IDF can be painful. Unless you have a Sming application. If you already have developed a Sming application for ESP32 then its upgrading it can be as simple as downloading the new IDF version and recompiling the application with that version. IDF versions are available for both Linux and Windows. On Linux version 5.0 for example can be installed using the command below:

INSTALL_IDF_VER=5.0 ./Tools/install.sh esp32

More details can be found in our documentation.

ChangeLog

New features

  • Initial RP2040 networking support #2607
  • Add Esp32 IDF v5.0 support #2614
  • Add ESP32 support for IDF v4.4 #2612
  • Add FlashIP library to support Rp2040 firmware updates #2629
  • Add USB library #2623
  • Initial functioning version of ESP32 HardwarePWM. #2599
  • Add ARM toolchain support #2647

Improvements

  • RP2040: Bypass cache when reading flash memory directly #2601

Bug fixes

  • Fix Esp32 flashing #2613
  • Fix SOC support checks #2610
  • RP2040 fix RTC get/set time methods #2609
  • ESP32 Station::isEnabledDHCP() returns incorrect value. #2604
  • Fix build issues #2603
  • RP2040: Fix uf2conv USB drive enumeration for linux #2602
  • Esp32 Wifi Station Implementation bugfix #2600
  • Fix Rp2040 IRAM issues #2640

New Contributors

@pljakobs made his first contribution in https://github.com/SmingHub/Sming/pull/2599

All PRs that were merged in this release can be seen from here.

For a complete list of changes run the following command:

git log 4.7.0..5.0.0

Thanks to everyone who helped us make this release happen!

Full Changelog: https://github.com/SmingHub/Sming/compare/4.7.0..5.0.0

Sming - 4.7.0 - Xmas2

Published by slaff almost 2 years ago

We are happy to announce Sming version 4.7.0 - Xmas2 a new major release and our present for you this Christmas :).
Thanks to our great contributors and special thanks to @mikee47's and his fantastic work.

santa-is-coming free image from www.animatedimages.org

Some of the highlights in this version

  • Feature: Bluetooth Low Energy (BLE) support for Esp32 #2499
  • Initial board-level configuration support #2530
  • Add general UUID / GUID support #2552
  • Add disk storage support (SD cards) #2584

Improvements

  • Revise station configuration to support BSSID #2522
  • Updated Bearssl. #2520
  • Installer: More flexible Linux distribution detection. #2523
  • Allow use of static and global File, Directory objects #2529
  • Implement basic ESP32 deep sleep #2527
  • Update System.h with info about the deep sleep mode. #2526
  • Fixes for latest ESP32 SDK 4.3 #2534
  • Add support for TX_DONE interrupt for ESP32 in IOControl modbus #2535
  • Fix valgrind invocation when ENABLE_HOST_UARTID is defined #2537
  • Add 64-bit mprintf support #2549
  • Add basic C++ output streaming support #2551
  • Improve HashMap memory usage, add sorting capability #2556
  • Tidy up and improve Vector class memory usage #2558
  • Add ESP32 task watchdog reset to flash routines #2562
  • Revise Partition in-memory storage mechanism #2564
  • Add Host stubs for RTC mem read/write #2588
  • Remove CustomDevice, use editablePartitions() method #2572
  • Add Github actions support for library CI testing #2577

Bug fixes

  • Fix ObjectList inheritance #2582
  • Partition method fixes #2585
  • Esp32 fixes #2528
  • Fix smg_uart_uninit() from blocking subsequent re-initialisation #2560
  • Fix ESP32 system restart problems #2543
  • Fix pulseIn() #2538
  • Fix RbootUpgrader to take notice of RBOOT_RTC_ENABLED #2525
  • Fix rp2040 tx done interrupt #2531
  • Fix Partition == operator #2533
  • Fix Ultrasonic_HCSR04 sample #2539
  • Fix Storage partition issues #2548
  • Catch Range::random() divide-by-zero condition, fix off-by-1 error #2559
  • Fix minor filesystem bugs #2563
  • Fix Uuid comparison for PROGMEM usage #2567
  • Fix make[1]: cc: Command not found during clean #2568
  • Newer version of GCC complain about usage of printf(string-or-var) without … #2586
  • Fix issue with esp32 paths. #2580

All PRs that were merged in this release can be seen from here.

For a complete list of changes run the following command:

git log 4.6.0..4.7.0

Thanks to everyone who helped us make this release happen!

Full Changelog: https://github.com/SmingHub/Sming/compare/4.6.0...4.7.0

Sming - 4.6.0

Published by slaff over 2 years ago

We are happy to announce Sming version 4.6.0 - a new major release.
Thanks to all contributors and especially to our core team member @mikee47's for his fantastic work.

Some of the highlights are:

  • Implemented Smart Config for ESP32 #2474
  • Implemented SPI for Rp2040 #2466
  • Initial Rp2040 Network framework #2467
  • AnimatedGIF library support #2495

More information can be found here.

All PRs that were merged in this release can be seen from here.

For a complete list of changes run the following command:

git log 4.5.0..4.6.0

Thanks to everyone who helped us make this release happen!

Sming - 4.5.0 - codename XMAS

Published by slaff almost 3 years ago

We are happy to announce Sming version 4.5.0 - XMAS a new major release and our present for you this Christmas :).
"M" in the codename as before is used to signify a high-quality release and X is used to signify adding additional features that allow eXtending Sming to realms far beyond a simple embedded framework
Thanks to @mikee47's and his fantastic work.

santa-is-coming free image from www.animatedimages.org

Some of the highlights in this release:

  • Initial support for Rp2040 architecture #2392
  • Added Kconfig support #2374
  • Added MHZ19 CO2 sensor library #2415
  • Added SoC configurations and SMING_SOC setting #2421
  • VM: Added rBPF containers #2422
  • VM: Added JavaScript VM #2432

Removal of multiple deprecated features and a lot of improvements. The complete list is given below:

New Contributors

Improvements

  • Change uart settings values and use enums #2387
  • Rationalise compiler flags and esp32 improvements #2388
  • Added support for creating Eclipse project meta files. #2390
  • Updated Adafruit_BME280 to latest, add Adafruit_BusIO #2407
  • Updated TwoWire class to support multiple instances #2405
  • Allow partition build config to be embedded #2404. Allows file system layout to be defined directly in the hardware configuration Instead of using separate file. Intended to simplify use for minimal FWFS definitions.
  • Add Basic_Templates sample with CSV reader class #2403
  • Improve TemplateStream tag recognition #2400
  • Updated Graphics library with support ST7789V display ... #2396
  • Add library CI support #2434
  • Update landing pages, plus doc fixes #2443
  • Multiple documentation fixes #2453

Bug fixes

  • Fix Hosted operation for Windows #2378
  • clang-format-8 is optional and should not prevent the installation. #2381
  • Fix for SPI debug. #2382
  • WDT::alive() calls wrong function #2383
  • String::replace not using memmove #2384
  • Fix edge case in String::replace #2401
  • Fix hwconfig option handling, add 1m, 2m hwconfig options and spiffs-2m.hw #2385
  • Fix bugs in si2c twi_status() timeout and host uart/timer. #2389
  • Fixes compilation of Ota library for Esp32. #2391
  • Fix some codacy advisories #2393
  • HttpServer: Fixed a bug with request headers not being reset. #2424
  • Fix make ide-vscode for Esp32/Windows #2410
  • RP2040 fixes #2402
  • Cs5460 fix #2418
  • OTA Deployer should exit when there is an error. #2420
  • HttpServer: Fixed a bug with request headers not being reset. #2424
  • Fixed bit-length bugs in Esp32 SPIClass #2438
  • Fix receive interrupt bug in Esp32 uart driver #2446
  • Better spelling #2444
  • Fix SmingTest to handle floating-point values #2447

Changes

  • Move Network-related classes into Network Component #2386

Deprecations

  • Undeprecated HttpRequest::getQueryParameter and ... #2379

Breaking Changes

  • Drop support for old esp8266 toolchain (UDK / esp-open-sdk) #2430
  • Removed old deprecated items #2379
  • Removed eclipse project files #2412. Files can be generated for any project using make ide-eclipse so do not need to be kept in the repository.

All PRs that were merged in this release can be seen from here.

For a complete list of changes run the following command:

git log 4.4.1..4.5.0

Thanks to everyone who helped us make this release happen!

Full Changelog: https://github.com/SmingHub/Sming/compare/4.4.1...4.5.0

Sming - 4.4.1

Published by slaff about 3 years ago

This version contains minor changes related to the documentation build system and ESP32 compilation.
For a complete list of changes run the following command:

git log 4.4.0..4.4.1
Sming - 4.4.0 - codename M32

Published by slaff about 3 years ago

We are happy to announce Sming version 4.4.0 - a new major release containing new features, improvements and bug fixes.
This release is code-named "M32". Where "M" and "32" stand for high-quality contributions and improved ESP32 support.
Thanks to @mikee47's and his fantastic work.

Some of the highlights in this release:

  • Improved ESP32 support with support for different ESP32 variants.
  • Moved from IDF v.4.1 to IDF v.4.3.
  • Asynchronous Graphics Library.
  • Support for LittleFS.
  • Sming Host Emulator: Enabled Host access to physical COM ports.
  • Sming Host Emulator: allows running the main logic in the Host emulator while running parts of the hardware dependent code directly on a real micro-controller

And a lot more. The complete list can is given below:

New features

  • Added LittleFS support #2304
  • Asynchronous Graphics Library #2357
  • Updated ESP32 to build with IDF v4.3 #2358
  • Added Ethernet support for ESP32 #2361
  • Sming Host Emulator: Enabled Host access to physical COM ports #2326
  • Feature: hosted - allows running the main logic in the Host emulator while running parts of the hardware dependent code directly on a real micro-controller #2305
  • Feature: hosted serial #2312 - allows communication over physical communication port.
  • Moved Core/Network into separate Component #2316
  • IFS attribute enumeration support #2318
  • FWFS Mountpoint Support #2315
  • FWFS stores objectIDs as offsets #2321
  • FWFS streaming filesystem backup support #2323
  • Over-The-Air (OTA) for all supported architectures #2332
  • HttpServer plugins #2354
  • Added DISABLE_NETWORK and SDK_CUSTOM_CONFIG settings #2362
  • Added verifyflash build target #2368

Improvements

  • Storage, rBoot and profile editor updates #2302
  • Little FS improvements and IFS revisions to support user metadata #2308
  • Added support for zsh in export.sh script (#2340)
  • Added support for sending streams directly from TcpClient. #2341
  • Improved Websocket Connection to allow sending of huge payloads. #2342
  • Added method to return a list of stations connected to an Access Point(AP). #2346
  • Add SPIClass::setup method for ESP32 #2360
  • ESP32 improvements for c3 and s2 variants. #2365

Bug fixes

  • Fixed base64 encode length calculation to account for padding #2307
  • ESP32 network fixes #2325
  • Fixed Basic_IFS sample and TemplateStream #2324
  • Fixed bug in StreamTransformer - ending fragment not getting sent #2317
  • Fixed vscode GDB launch configuration #2319
  • No-WiFi flash fixes #2353 , #2347
  • Fixed ArduinoJson6 serialisation bug and update from v6.13 to v6.15.2 #2363

Deprecations

  • Disabled old MqttClient calls by default. #2343

Security

  • Updated axTLS to latest version. #2372

All PRs that were merged in this release can be seen from here.

For a complete list of changes run the following command:

git log 4.3.0..4.4.0

Thanks to everyone who helped us make this release happen!

Sming - 4.3.0

Published by mikee47 over 3 years ago

We are happy to announce Sming version 4.3.0 - a new major release containing new features, improvements and bug fixes.
This release contains braking changes related to spiffs handling.
So either make sure to read our migration document or use our LTS version.

Some of the highlights in this release include:

(A)mazing highlights

Sming is powering applications in smart barbecues, unique adventure rooms, small RC cars AND satellites!
Soon Sming will be used in a popular car producer, smart coffee machines from a renown Italian producer and even matrix printers.
Stay tuned for more details coming in the next months!

Other highlights

  • Partition table: The layout of flash memory has been revised and is now managed via partition table.
    For more details read Storage Management documentation.
  • Installable File System (IFS): Sming now supports multiple filesystems via Installable File System (IFS). See Basic IFS for a demonstration.
  • Over-The-Air upgrades via MQTT
  • Chromecast client allowing you to control your Smart Android TV from Sming
  • Updated mDNS library with support for querying

Details

New features

  • Partition tables #2171 with rBoot support #2258
  • Installable File System (IFS) #1579
  • Added protocol buffers support using nanopb. #2217, #2233
  • Provide LinkedObject for general use #2234
  • Google-cast client #2227
  • Updated mDNS library with query support #2237
  • Added hardware configuration option support #2266
  • Added rBoot partition support #2258
  • Added graphical hardware profile editor #2274
  • Library support for flatbuffers #2252
  • Faster Over-The-Air upgrades via MQTT #2269
  • Added support for repeated HTTP header fields #2290

Improvements

  • Improved FTP server #2271
  • Revise install scripts and documentation #2204
  • MacOS build fixes #2212
  • Added web test support to HostTests CI application #2228
  • Added vscode configuration support #2231
  • Updated bearssl to its latest version. #2240
  • Added setMacAddress() method to Station and AccessPoint #2249
  • Rewrote MDNS responder #2248
  • Easier voltage reading for ESP8266. #2264
  • Updated ArduinoFFT library to latest #2285
  • MultiStream & StreamTransformer improvements #2288
  • Sming Host Emulator: Allow control over host debug messages #2289

Bug fixes

  • Fix bug in smg_uart_set_tx() #2210
  • Replaced toString(uint8_t) with template to avoid unintentional truncation of values #2229
  • Multiple minor fixes to documentation and samples #2239
  • Python3 migration: Replaced SimpleHTTPServer with http.server #2244
  • ScreenOLED_SSD1306 sample compiles also with newer compilers #2259
  • Fixed publishing MQTT messages having a stream as payload. #2278
  • Compilation fixes for ESP8266 EQT toolchain. #2287
  • Fixed SMTP issues #2280

Breaking Changes

  • Feature: mqtt connection error event #2279
    The connection event handler will be called also when the connection fails. You can use the return_code to check if the connection was successful or there was an error.
  • Upgraded to clang-format 8 #2268 for coding style.

Security

  • Fixed base64 size calculations #2283

All PRs that were merged in this release can be seen from here

For a complete list of changes run the following command:

git log 4.2.0..4.3.0

Thanks to everyone who helped us make this release happen and especially to mikee47 for his quality features and constant devotion!

PS: Everything except parts from the (A)mazing section is true. Happy April 1st :)

Sming - 4.2.0 - codename "MK"

Published by slaff almost 4 years ago

We are happy to announce Sming version 4.2.0 - a new major release containing new features, improvements and bug fixes. This release is codenamed "MK". Where "M" and "K" stand for high-quality major release. Thanks to @mikee47's and his fantastic work.

This release will be our new Long Term Release (LTS) which will be supported until 1st of February, 2022.

Some of the highlights in this release include:

  • Starting with this version a GCC compiler version 8 or newer is highly recommended
  • Initial support for ESP32
  • UPnP framework coming with code generation. Translated into plain English this means that with Sming's help it is now very easy to create an application that controls a UPnP device as for example your SmartTV or printer and create devices that are discoverable in the local internet and easy to work with. As for example a new smart switch.
  • Improved overall performance and memory usage

New features

  • Initial support for ESP32 #2076 #2151
  • UPnP framework #2115
  • UPnP code generation #2154
  • CS5460 Arduino library #2106, #2174
  • Support command line parameters for Host applications #2134
  • Added CString class #2112
  • Add BitSet class template #2115 & #2131
  • Core Task class to support co-operative multitasking #2148
  • Hardware SPI library #2150
  • DIAL client #2152 (Using UPnP )
  • Sample demonstrating connecting to Amazon Web Services #2149

Improvements

  • Revisions to SPI classes #2130
  • Updated Infrared library and sample #2083
  • Stream optimisations #2123
  • Applied String move semantics to reduce memory re-allocations #2119
  • Refactored FTP classes #2125
  • Websocket: Added pong delegate support for websocket connection and resource #2156
  • MqttClient revisions #2157
  • HttpClient improvements.
    • Added support for servers that do not support connection reuse. #2132, #2163, #2175
    • SSL sample changes: #2173
  • Added Esp32 gdbstub Component and fix Esp8266 syscall errno handling #2169
  • Add iterator support for HashMap and Vector, with basic tests #2167
  • Templates engine improvements: Added dataset templating support #2164
  • LimitedMemoryStream: Allocates memory buffer on demand and not upfront. #2153

Bug fixes

  • Fixed appveyor crashing issue and use latest MinGW #2124

Security

  • Added workaround for CVE-2020-12638 #2107

All PRs that were merged in this release can be seen from here

For a complete list of changes run the following command:

git log 4.1.1..4.2.0

Thanks to everyone who helped us make this release happen!

Sming - 4.1.1

Published by slaff over 4 years ago

We have a new minor release thanks to the efforts from @aemseemann, @kmihaylov and @mikee47 and other contributors.

New features

  • Added Modbusino - simple modbus rtu library. #2043
  • Added make target python-requirements to install Python requirements of project. #2019
  • Added support for Arduino's TensorFlow Lite. #2063
  • Added distance measurement using vl53l0x sensor. #2050
  • Added OTA upgrade as a component. #2006
  • Added Blake2s to Crypto component. #2033

Improvements

  • Build.mk changes to allow the use of CPPFLAGS, CFLAGS and CXXFLAGS. #2065
  • Updated DHTesp to latest version. #2057
  • Updated BearSSL to latest. #2056
  • Updated NON-OS SDK to 3.0.3 #2055
  • Updated ws-parser to latest version. #2054
  • Updated http-parser to version v2.9.4. #2053
  • Changed Rboot to be optional component. #2066

Bug fixes

  • ModbusMaster fixes. #2059
  • Fix to the Travis-CI scripts #2052
  • Fixed axtls-8266 patch to work on all supported Windows platforms. #2048

All PRs that were merged in this release can be seen from here

For a complete list of changes run the following command:

git log 4.1.0..4.1.1

Thanks to everyone who helped us make this release happen!

Sming - 4.1.0

Published by slaff over 4 years ago

We are happy to announce Sming version 4.1.0 - a new major release containing new features, improvements and bug fixes. Some of them are listed below:

New features

  • No-WiFi build option #2004 - get more resources if your application is not using WIFI.
  • Multiple SSL adapters based on axTLS and BearSSL. #1999
  • Added basic Crypto support library #2014
  • Updates framework to build using GCC 9.2.0 toolchain for C++17. #1825
  • Modbus master #1992
  • Implemented Small String Optimisation (SSO). #1951
  • Webcam stream and sample webcam web server. #1981
  • Allow HTTP connections to ignore rejected body content #1928

Improvements

  • Some improvements to multipart parser #2007
  • Update ArduinoJson to 6.13.0 #1979
  • Added precaching from Arduino for ESP8266. #1965
  • Add support for 'Expect: 100-continue' in HTTP server. #1931
  • Upgrade to FlashString Library #1974, #2013

Bug fixes

  • Updated mqtt-codec to allow publish messages without payload. #1976
  • HttpConnection freed twice. #1938
  • Hangs at startup when custom heap enabled. #1996
  • Fix issues reported by valgrind #2017

Breaking changes and Migration

All PRs scheduled for this release can be seen from here

For a complete list of changes run the following command:

git log 4.0.0..4.1.0

Thanks to everyone who helped us make this release happen!

Sming - 4.0.0

Published by slaff almost 5 years ago

This is a major new version of Sming Framework. If your application was based on older version of Sming you should read the migration guide. We also provide 3.8.x LTS version - currently 3.8.1 for those that haven't had the time to upgrade yet. The LTS version will be supported until 1st of April, 2020.

Below you will find an impressive list of new features, improvements and bug-fixes in Sming 4.0.0.

New features

  • Initial support for multiple architectures. At the moment ESP8266 and Host with ESP32 coming soon. ( #1675 )
  • Modular build system ( #1724 ). Beware of changed behaviour when using environmental variables ( #1758 ).
  • Host Emulator (#1692)
  • Added support for both ArduinoJson version 6 and 5 ( #1752 ). The default version is now version 6.
  • New documentation system based on sphinx ( #1766 ). The new documentation is located at https://sming.readthedocs.io/en/latest/.
  • Clock framework and Polled Timers ( #1821 )
  • Integrated libsodium v1.0.18 as a component ( #1797)
  • Added support for time zones and sunrise/sunset calculation #1840
  • File upload support in the HttpServer. #1792
  • I2S driver + Basic Audio sample (#1862).
  • RingTone Player sample plus libraries (#1864).
  • Added support for BME280 and MCP23008 arduino libraries. #1763
  • Initial CAN Bus support. #1646
  • Added malloc_count Component to track heap usage #1743
  • Enforced C11 standard #1695

Improvements

  • WiFi improvements ( #1812, #1802 )
  • Unified Callback Timer API ( #1831 )
  • Updating internal SDK to NON-OS version 3.0.1. ( #1832 )
  • BodyParser improvements. ( #1823, )
  • Fixed Esp8266 partitions, added 8Mbyte and 16Mbyte device support #1800
  • Decreased latency in MqttClient publishing. Latency is less than 1ms. #1761
  • Fixed custom heap #1745
  • Updated servo library and sample (#1870).
  • Updated ArduinoJson6 to current version 12.0 (#1885).
  • Improvements to the tcp connection handling and axTLS.

Breaking Changes

  • For Architecture:Esp8266 only NON-OS SDK version 3.0.1 is officially supported (#1878).

Bug fixes

  • Fixed array bounds issue detected via GCC-8 on Host build #1709
  • Fixed memory leak in MqttClient #1742
  • Fixed UpdServer_Echo. #1775

All PRs that were merged in this release can be seen from here

For a complete list of changes run the following command:

git log 3.8.0..4.0.0

Thanks to everyone who helped us make this release happen and especially to @mikee47 for working so hard on multiple new features, improvements and bug fixes!

Sming - v3.8.1

Published by slaff almost 5 years ago

Sming version 3.8.1 is a minor update to the previous 3.8.0 version. 3.8.x releases are our Long Term Support (LTS) releases. 3.8.x will be supported until 1st of April, 2020. It is for those who have not had the time to migrate their application to Sming 4.0.0.

This release contains stability improvements and bug fixes. There are no new features. If you want to have the latest and greatest features from our develop branch we highly recommend migrating to Sming 4.0.x due to its major improvements in build system, platform support, performance, security and code quality.

All PRs that were merged in this release can be seen from here
For a complete list of changes run the following command:

git log 3.8.0..3.8.1

Thanks to everyone who helped us make this release happen!

Sming - 4.0.0 - Release Candidate 4

Published by slaff almost 5 years ago

This is the fourth and most probably the last pre-release for the upcoming 4.0.0 version of Sming Framework.
It contains mainly improvements and bug-fixes.

Improvements

  • Improved the automatic release process
  • Bugfixes for RELEASE builds
  • Fixing issues reported by Coverity in our Sming/Core code. (#1917, #1916, #1913)
  • Bugfix for using SPIFF in slots other than 0 (#1923).

Deprecations

  • Deprecated DNSServer. Use DnsServer instead. (#1915)

For a complete list of changes run the following command:

git log 4.0.0-rc3..4.0.0-rc4
Sming - 4.0.0 - Release Candidate 3

Published by slaff almost 5 years ago

This is the third pre-release to prepare you for the upcoming 4.0.0 version of Sming Framework.
It contains mainly improvements and bug-fixes.

The biggest change in terms of release deployments is that the code of the submodules will NOT be included in the master repository. An archive of the patched submodules will be attached as an asset to every new release.

For a complete list of changes run the following command:

git log 4.0.0-rc2..4.0.0-rc3
Sming - 4.0.0 - Release Candidate 2

Published by slaff about 5 years ago

This is the second pre-release to prepare you for the upcoming 4.0.0 version of Sming Framework.
Below you will find a list of new features, improvements and bug-fixes in comparison to version 4.0.0-rc1 .

New features

  • I2S driver + Basic Audio sample (#1862).
  • RingTone Player sample plus libraries (#1864).

Improvements

  • Updated servo library and sample (#1870).
  • Updated ArduinoJson6 to current version 12.0 (#1885).
  • Improvements to the tcp connection handling and axTLS.

Breaking Changes

  • For Architecture:Esp8266 only NON-OS SDK version 3.0.1 is officially supported (#1878).
Sming - 4.0.0 - Release Candidate 1

Published by slaff about 5 years ago

This is a pre-release to prepare you for the upcoming 4.0.0 version of Sming Framework.
Below you will find an impressive list of new features, improvements and bug-fixes.

New features

  • Initial support for multiple architectures. At the moment ESP8266 and Host with ESP32 coming soon. ( #1675 )
  • Modular build system ( #1724 ). Beware of changed behaviour when using environmental variables ( #1758 ).
  • Host Emulator (#1692)
  • Added support for both ArduinoJson version 6 and 5 ( #1752 ). The default version is now version 6.
  • New documentation system based on sphinx ( #1766 ). The new documentation is located at https://sming.readthedocs.io/en/latest/.
  • Clock framework and Polled Timers ( #1821 )
  • Integrated libsodium v1.0.18 as a component ( #1797)
  • Added support for time zones and sunrise/sunset calculation #1840
  • File upload support in the HttpServer. #1792
  • Added support for BME280 and MCP23008 arduino libraries. #1763
  • Initial CAN Bus support. #1646
  • Added malloc_count Component to track heap usage #1743
  • Enforced C11 standard #1695

Improvements

  • WiFi improvements ( #1812, #1802 )
  • Unified Callback Timer API ( #1831 )
  • Updating internal SDK to NON-OS version 3.0.1. ( #1832 )
  • BodyParser improvements: ( #1823, )
  • Fixed Esp8266 partitions, added 8Mbyte and 16Mbyte device support #1800
  • Decreased latency in MqttClient publishing. Latency is less than 1ms. #1761
  • Fixed custom heap #1745

Bug fixes

  • Fixed array bounds issue detected via GCC-8 on Host build #1709
  • Fixed memory leak in MqttClient #1742
  • Fixed UpdServer_Echo. #1775

All PRs that were merged in this release can be seen from here

Sming - v3.8.0 - codename "Double M"

Published by slaff over 5 years ago

We are happy to announce Sming version 3.8.0 - a new major release containing new features, improvements and bug fixes. This release is codenamed "Double M". Where "M" stands for high-quality major release. Thanks to @mikee47's and his fantastic work.

Some of the highlights in this release include:

  • a new WIFI Sniffer.
  • better live debugging support with support for GDB Host I/O and File I/O extensions.
  • better UART support
  • a new OS Message Interceptor that is helping the discovery of problems reported from the underlying system.
  • better SSL handling.
  • network improvements to FTP, Websocket, HTTP and MQTT protocols.
  • fixed formatting ranges on SPIFFS creation

A longer list with more details and merged PR is given below.

New features

  • Interceptor for system messages #1613
  • Introduce ObjectMap #1638
  • Add optional deferMillis parameter to System::restart() #1611
  • Expand SSLSessionId structure to manage allocated memory. #1614
  • Adafruit_SSD1306 library add support for 64 × 48 pixels OLED Shield #1622
  • WifiSniffer #1647

Improvements

  • GDB and exception handling improvements. #1655
  • A couple of general additions to uart driver for reporting error status and handling line breaks #1655
  • Better handling of out-of-memory issues in axTLS #1651
  • Add support for escaped URLs #1642
  • Refactor Ftp classes #1633
  • WebsocketConnection improvements #1632
  • DateTime fixes & improvements #1625
  • Add HttpClientConnection class #1624
  • Improve memory management of SSL fingerprint data #1618
  • Http connection base improvements #1601
  • Improvements to the ssl structure management #1600 #1606
  • General tidy of Netutils module #1599
  • HttpServer_Websockets sample: wait 1 second before calling server.shutdown() #1598
  • TCP improvements #1595
  • StreamTransformer improvements #1593
  • Change use of ReadWriteStream* to IDataSourceStream* where appropriate #1588
  • Change fileSetContent() to return a result #1657

Bug fixes

  • Fixes to the SPIFFS size calculation. #1653
  • Fix map() bug in WMath.cpp #1636
  • Fix: HttpConnection memory leak #1639
  • Fix: HardwareSerial interrupt callback code not in IRAM #1610
  • Fix mqtt fifo memleak #1612
  • Fix file stream size tracking #1608
  • Fix signed/unsigned bug introduced in #1599 and highlighted by codacy #1605
  • MqttClient memory leak #1594
  • Updated the mqtt-codec version with fixes to the remaining length cal… #1591
  • Revert to default MAC string format for getMAC method... #1584 #1583
  • Do not flash blankfs.bin if SPIFFS is disabled #1586
  • Fix for the compilation of esp-gdbstub with SDK 3.0.0 in strict mode. #1582
  • MqttClient bugfix: payloadStream discarded #1587
  • SPIFFS updated to its latest version #1664

Coding style

  • Ensure all core code has standard header and consistent guard naming #1630
  • Enforce code deprecation and virtual methods
    #1629
  • Coding style changes: deprecated and override #1620
  • Switched to clang-format v6 #1589

All PRs that were merged in this release can be seen from here
For a complete list of changes run the following command:

git log 3.7.1..3.8.0

Thanks to everyone who helped us make this release happen and especially to @mikee47 for working so hard on multiple improvements and bug fixes!

Sming - v3.7.0 - codename "M"

Published by slaff almost 6 years ago

This is a major release containing new features, fixes and breaking changes. This is a very important new release as it marks the start of polishing the existing components, improving their quality and paving the way for version 4.

This release is codenamed "M" which might stand for Mini, Maxi or @mikee47 - our new top contributor who made a lot of changes in this release that led to substantial list of improvements and more free memory heap for your applications based on Sming Framework.

This release is worth trying! And the next one is promising to be even better :).

Without further ado here are some of the highlights ( full list is here ):

New features

  • Allowed the use of multiple DS18S20 sensors #1440.
  • Experimental support for SDK 3.0 for rBoot apps. #1470
  • Added TM1637 7-segment led display library #1512

Improvements

  • Optimised HashMap to use pass-by-reference where possible. #1455
  • Improved uri escaping / unescaping #1457
  • More free heap due to moving constant data in flash #1438 #1459
  • Improvements to the String class and added support for binary strings #1437. Revised SplitString #1508
  • HttpHeaders #1461 #1463. HttpRequest improvements and HttpParams as a separate module #1498
  • Rewritten flashmem driver to cope with misaligned RAM buffers #1490
  • Upgrades to the serial port driver #1493
  • Various improvements to NtpClient class #1482
  • Updated AxTLS with fixes related to CVE-2018-16150 and CVE-2018-16149 #1506
  • Streaming support for flash data. Changes to FileStream class #1510
  • Fixed Basic_WebSkeletonApp body parsing #1516

Refactoring

  • Stream classes #1488, #1496
  • Refactored TemplateFileStream class using TemplateStream #1500
  • Refactored websocket client and server #1514
  • Refactored http connections for better code reuse #1515

Deprecations

  • As per our poll results: Deprecate non-rBoot apps #1513
  • Hardware_Timer is deprecated. You should use HardwareTimer instead
  • HttpResponse::hasHeader() - this method is deprecated since quite some time and will be removed in the next version.

Breaking Changes

  • SystemClock::now() returns time_t instead of DateTime.

If you use Websocket functionality make sure to read the notes below.

  • Renamed Websocket related types, classes and methods. We used to have WebSocket and Websocket. From now on only Websocket will be used. Example WebsocketConnection::getActiveWebSockets is now WebsocketConnection::getActiveWebsockets.

  • WebsocketConnection
    Renamed the method making the binding to a http server socket to be called bind.

  • WebsocketClient
    All methods starting with setWebSocket are shortened to set. Example: setWebSocketMessageHandler is renamed to setMessageHandler.

All PRs merged in this release can be seen from here

For a complete list of changes run the following command:

git log 3.6.1.2..3.7.0

Thanks to everyone who helped us make this release happen and especially to @mikee47 for working so hard on multiple improvements and bug fixes!

Sming - v3.6.1

Published by slaff about 6 years ago

This is a minor release containing fixes, new features and coding style rules.

Coding Style Rules

  • This is the first version in which we started forcing our coding style rules. The coding style rules are applied to the SmingCore and samples directories and their sub-directories. The coding style rules use clang-format to automate the process. You should format your code changes before submitting a PR. This can be done, after installing the clang-format application, with the command
cd $SMING_HOME
make cs

More information about the coding style and ways to integrate automatic fixes in your Eclipse IDE can be found in our Wiki page.

Features

  • Added support for the DFPlayerMini ( #1408 )

Bug fixes and small improvements

  • Fix to the SmtpClient default port allocation (#1409).
  • Fix to the MqttClient and the allowed schemas in the connection URL (#1410).
  • Removed unused or deprecated code. DrivePWM is no longer in the code. Use HardwarePWM instead. (#1423).

Automation

  • Added automatic check for coding style rules
  • Added automatic generation of chocolatey packages on new release (#1406).

All PRs merged in this release can be seen from here

For a complete list of changes run the following command:

git log 3.6.0..3.6.1.2

Thanks to everyone who helped us make this release happen.