Welcome to Sming Framework

Let’s do smart things!!!

Sming is an asynchronous embedded C/C++ framework with superb performance and multiple network features. Sming is open source, modular and supports multiple architectures including ESP8266 and ESP32.

samples

Summary

  • Superb performance and memory usage (Sming compiles to native firmware!)

  • Fast and user friendly development

  • Integrated host emulator to assist with developing, testing and debugging libraries and applications on a PC before uploading them to an actual microcontroller. Try it out online here.

  • Built-in powerful wireless modules

  • Compatible with standard Libraries - use popular hardware in few lines of code

  • Simple yet powerful hardware API wrappers

    • Standard Arduino-style wrappers for simplicity and flexibility

    • HardwareSPI library provides advanced asynchronous SPI device master capability including use of ESP8266 ‘overlapped’ mode for reduced pin usage and dual/quad I/O support.

    • Sming Graphics Library implements asynchronous display control model with low memory usage, transparency (alpha-blending) and flexible scripted resource management.

  • Modular C++ installable file system interface

    • Supports popular SPIFFS and LittleFS filing systems

    • New FWFS read-only filesystem can be used as base file system, with read/write filesystems mounted in sub-directories

    • Integrated metadata support (file times, security descriptors, user metadata)

    • Access to Host (linux / Windows / MacOS) filing system via same API

    • Integrated streaming archival system to support backups or file system compaction operations

  • Powerful asynchronous (async) network stack including:

    • Async TCP and UDP stack based on LWIP.

    • With clients supporting: HTTP, MQTT, WebSockets and SMTP.

    • And servers for: DNS, FTP, HTTP(+ WebSockets), Telnet.

    • With SSL support for all network clients and servers. Based on axTLS and BearSSL.

    • Over-The-Air (OTA) firmware upgrades via HTTP(S) and MQTT(S).

  • Universal Plug and Play (UPnP) framework supports both standard and custom devices with full ControlPoint support.

    • Generates C++ code from standard UPnP XML schema.

    • Companion SSDP library independently supports discovery on local network.

    • GoogleCast library allows control of ChromeCast devices or smart TVs supporting the GoogleCast protocol.

    • Hue Emulator provides simple way to implement devices compatible with Amazon Alexa.

  • ESP8266 features

  • ESP32 features

Indices and tables