Sming Versions Save

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

5.1.0

3 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

5.0.0

10 months 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

4.7.0

1 year 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

4.6.0

1 year 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!

4.5.0

2 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

4.4.1

2 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

4.4.0

2 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!

4.3.0

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 :)

4.2.0

3 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!

4.1.1

3 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!