Mongoose OS 2.17.0
Notable changes
Apple's official HomeKit Accessory Development Kit library has been ported to Mongoose OS, monoose-os-libs/homekit-adk.
file-logger library has been revamped.
New features
- mjs: frozen: Even stricter compiler settings and a small fix (cesanta/mjs@2379272)
- mjs: Add mg_strcasecmp() (cesanta/mjs@f34d4f9 mongoose-os-libs/mongoose@df3cc5d)
- mongoose-os: LFS support for ESP8266 (cesanta/mongoose-os@934053e mongoose-os-libs/vfs-common@1d044ac mongoose-os-libs/vfs-fs-lfs@e3d568c mongoose-os-libs/vfs-fs-spiffs@b0eb7ba)
- mongoose-os: Add cs_hex_decode() (cesanta/mongoose-os@4d80044)
- mongoose-os: Add unsigned int config type ("ui") (cesanta/mongoose-os@cabac8c)
- mongoose-os: ubuntu: Add C++ compilation, fix header dependencies (cesanta/mongoose-os@8d8117e)
- mongoose-os: Add helpers for parsing, copying and freeing config sub-sections (cesanta/mongoose-os@f39a7df)
- mongoose-os: ubuntu: Support CPU profiling (--build-var PROF=1) (cesanta/mongoose-os@7a68d14)
- mongoose-os: Add log level to MGOS_EVENT_LOG (cesanta/mongoose-os@c8b8fc2)
- mongoose-os: Add mgos_time_micros() (cesanta/mongoose-os@868ea09)
- mongoose-os: Support MGOS_GPIO_INT_EDGE_ANY for mgos_gpio_set_button_handler (cesanta/mongoose-os@3948c6b)
- dns-sd: dns-sd: Support additional user-provided instances (mongoose-os-libs/dns-sd@2a49fa0)
- mqtt: Refactor to support multiple connections (mongoose-os-libs/mqtt@a8f2b0e)
- mqtt: Buffer and re-publish QoS 1+ messages until acked (mongoose-os-libs/mqtt@e3e6f3a)
- shadow: Add shadow.get_on_connect to control whether GET on connect is performed (mongoose-os-libs/shadow@0be68ca)
- mos: mos: Add flash-write command for ESP (mongoose-os/mos@cf67f5f)
- mos: mos atca-gen-key: Support generating random non-ECC keys (mongoose-os/mos@51708b2)
- mbedtls: mbedtls 2.16.3-cesanta3: ATECC608 AES support, use TEMPKEY for ECDH (mongoose-os-libs/mbedtls@2416c72)
- mbedtls: mbedTLS 2.16.3-cesanta4: Enable Curve25519, add mbedtls_ecp_read_key() (mongoose-os-libs/mbedtls@1e8f18c)
- mbedtls: mbedTLS 2.16.3-cesanta6: Enable ChaCha20-Poly1305 algorithm (mongoose-os-libs/mbedtls@ca09d77)
- mbedtls: mbedTLS 2.16.3-cesanta5: Restore mbedtls_ecdh_get_params() API (mongoose-os-libs/mbedtls@295a5d9)
- mbedtls: mbedTLS 2.16.3-cesanta8: Set MBEDTLS_NO_UDBL_DIVISION. Speeds up soft MPI by ~2x. (mongoose-os-libs/mbedtls@9ae4fbf)
- mbedtls: mbedTLS 2.16.3-cesanta9: Optimize ECP performance by inlining MPI values in a few key places (mongoose-os-libs/mbedtls@ec0fd0c)
- mbedtls: Add a variable to build without ATECCx08 support (mongoose-os-libs/mbedtls@9637f90)
- rpc-common: Support keep-alive connections for HTTP (REST) channel (mongoose-os-libs/rpc-common@7f1fa52)
Misc
- mongoose: Fix value of MG_MQTT_DUP (mongoose-os-libs/mongoose@7940702)
- mongoose-os: Add source dirs to list of include paths (cesanta/mongoose-os@80a5edf)
- mongoose-os: Update frozen.c (cesanta/mongoose-os@3e5ad05)
- mongoose-os: Fix root FS options on ESP32 (cesanta/mongoose-os@868797e)
- mongoose-os: Sync mg_str.h (cesanta/mongoose-os@513fde3)
- mongoose-os: Hide git errors when creating fw id (cesanta/mongoose-os@b5147e3)
- mongoose-os: Add mgos_ro_vars.h to mgos.h (cesanta/mongoose-os@4b57bdf)
- mongoose-os: Use clang in ASAN mode (cesanta/mongoose-os@a83c1bd)
- mongoose-os: Add missing function mgos_gpio_read_out() (cesanta/mongoose-os@6b9bb80)
- mongoose-os: Add avahi-client to Ubuntu image (cesanta/mongoose-os@5ee4ee8)
- mongoose-os: Add binary builds of Mongoose without SSL (cesanta/mongoose-os@d526725)
- mongoose-os: Fix Ubuntu builds without ASAN (cesanta/mongoose-os@f268b30)
- mongoose-os: Fix ASAN build (cesanta/mongoose-os@1d99257)
- mongoose-os: Fix partial config management (cesanta/mongoose-os@a060c3c)
- mongoose-os: Temporarily lower log level in mgos_debug_write() (cesanta/mongoose-os@0d552e3)
- mongoose-os: Various minor fixes (cesanta/mongoose-os@d43e69d)
- mongoose-os: Generate sha256 sums for firmware parts (cesanta/mongoose-os@e130856)
- example-arduino-ds3231-js: Add sntp sync (mongoose-os-apps/example-arduino-ds3231-js@ae869dc)
- example-arduino-ds3231-js: Merge pull request #2 from nliviu/sntp (mongoose-os-apps/example-arduino-ds3231-js@1564b17)
- fingerprint-demo: initial checkin (mongoose-os-apps/fingerprint-demo@e020f47)
- fingerprint-demo: Add LICENSE and copyright (mongoose-os-apps/fingerprint-demo@9c56df7)
- fingerprint-demo: clang-format (mongoose-os-apps/fingerprint-demo@d1711f4)
- fingerprint-demo: Add enroll and erase handlers; Implement enroll state machine (mongoose-os-apps/fingerprint-demo@0ba00e0)
- fingerprint-demo: Some aesthetic fixes (mongoose-os-apps/fingerprint-demo@14bac0a)
- fingerprint-demo: Add youtube video + screenshot (mongoose-os-apps/fingerprint-demo@250bead)
- fingerprint-demo: Switch to mgos_fingerprint_svc_*() (mongoose-os-apps/fingerprint-demo@8b01278)
- fingerprint-demo: Catch and extract ev_data for MATCH_OK and ENROLL_OK events (mongoose-os-apps/fingerprint-demo@9db83c7)
- fingerprint-demo: Add log if fingerprint failed to match; re-enter ENROLL mode upon enroll success and error (mongoose-os-apps/fingerprint-demo@dd185b4)
- fingerprint-demo: Update mos.yml (mongoose-os-apps/fingerprint-demo@d5afc75)
- imu-demo: Fully qualify library origin for
imu
(mongoose-os-apps/imu-demo@4dd4048) - sonoff-basic-openhab: code clean up and some doc update (mongoose-os-apps/sonoff-basic-openhab@c87a1fb)
- sonoff-basic-openhab: change blink interval add local sntp server instead of default update gitignore (mongoose-os-apps/sonoff-basic-openhab@5aa97e7)
- sonoff-basic-openhab: update clock sync check remove rcp-ws (mongoose-os-apps/sonoff-basic-openhab@4f55d82)
- sonoff-basic-openhab: start night mode logic (mongoose-os-apps/sonoff-basic-openhab@380234a)
- sonoff-basic-openhab: simplify night mode logic (mongoose-os-apps/sonoff-basic-openhab@da72c70)
- sonoff-basic-openhab: add night mode to doc (mongoose-os-apps/sonoff-basic-openhab@a9b3b67)
- sonoff-basic-openhab: code clean up (mongoose-os-apps/sonoff-basic-openhab@ffde21f)
- sonoff-basic-openhab: enable local timed schedule (mongoose-os-apps/sonoff-basic-openhab@e0522ae)
- sonoff-basic-openhab: Merge pull request #12 from michaelfung/tz (mongoose-os-apps/sonoff-basic-openhab@ad37ae4)
- ads7843-spi: Fix unknown types (mongoose-os-libs/ads7843-spi@a3805e0)
- ads7843-spi: Update .clang-format (mongoose-os-libs/ads7843-spi@a8d05c7)
- atca: atca: Update CryptoAuthLib to 20190903 (mongoose-os-libs/atca@7c26596)
- atca: Make things great again (mongoose-os-libs/atca@f84be8d)
- atca: atca: Added example config for ATECC608A, with AES slots (mongoose-os-libs/atca@8cb688b)
- atca: Add a couple helpers to support mbedtls changes (mongoose-os-libs/atca@9bad8ba)
- atca: Reinstate atca_delay_ms() and atca_delay_us() as previous commit broke the build. (mongoose-os-libs/atca@1a6d044)
- atca: Merge pull request #2 from pjaos/master (mongoose-os-libs/atca@f3661cd)
- atca: Move hal functions to mgos_atca_hal.c (mongoose-os-libs/atca@0979543)
- atca: Implement a bunch more HAL functions (mongoose-os-libs/atca@0830fd7)
- atca: FIx build on TI compiler (mongoose-os-libs/atca@8fc5370)
- aws: Remove update queueing from AWS shadow, MQTT handles it now (mongoose-os-libs/aws@a79bb29)
- aws: Remove tracking of current version (mongoose-os-libs/aws@102e14d)
- aws: Use shadow.get_on_connect in AWS shadow (mongoose-os-libs/aws@9b27a5c)
- azure: Use shadow.get_on_connect in Azure shadow impl (mongoose-os-libs/azure@3680202)
- ca-bundle: ca-bundle: Add Google's LTS root CA (mongoose-os-libs/ca-bundle@09e7104)
- ca-bundle: Add ISRG Root X1 to the bundle (mongoose-os-libs/ca-bundle@c6a3cae)
- core: Add LFS to ESP8266 build (mongoose-os-libs/core@6fac1cc)
- core: core: Add device.sn (mongoose-os-libs/core@3d5e875)
- core: Add debug.event_level option (mongoose-os-libs/core@c7359ef)
- crontab: Exposed API call to remove all jobs and load jobs from json file (mongoose-os-libs/crontab@c53af5b)
- dash: Support fs type migrations on platforms other than ESP32 (mongoose-os-libs/dash@28b419f)
- dns-sd: Re-advertise when instances are added or updated (mongoose-os-libs/dns-sd@95ca603)
- dns-sd: dns-sd: Change TXT value to mg_str, add mgos_dns_sd_remove_service_instance() (mongoose-os-libs/dns-sd@e17c823)
- dns-sd: Move things around a bit (mongoose-os-libs/dns-sd@a6f9c1c)
- dns-sd: Add a basic Avahi-based implementation for Ubuntu (mongoose-os-libs/dns-sd@85e36e7)
- dns-sd: Check for wifi.ap.keep_enabled when checking for wifi AP+STA mode (mongoose-os-libs/dns-sd@6c4bd39)
- file-logger: A number of improvements (mongoose-os-libs/file-logger@06fa794)
- file-logger: Add API and RPC service (mongoose-os-libs/file-logger@c265dd4)
- file-logger: Expose buffering settings (mongoose-os-libs/file-logger@df2fab1)
- file-logger: Add FileLog.Status and a script to fetch logs from the device (mongoose-os-libs/file-logger@5aa8876)
- file-logger: Remove some noise (mongoose-os-libs/file-logger@e27a7f0)
- file-logger: Implement set/sequencer scheme to ensure proper rollover (mongoose-os-libs/file-logger@a1964ec)
- fingerprint: Initial checkin (mongoose-os-libs/fingerprint@9fcce5c)
- fingerprint: Add datasheets for my reference units (mongoose-os-libs/fingerprint@9501afd)
- fingerprint: Add mgos_fingerprint_svc_init() with event handler callback (mongoose-os-libs/fingerprint@51e87d1)
- fingerprint: Add service library notes (mongoose-os-libs/fingerprint@befcedf)
- fingerprint: Pass ev_data to caller; Remove LL_INFO log levels, as these messages can and should be generated by the caller (mongoose-os-libs/fingerprint@90479c1)
- fingerprint: Stay in enroll mode after enrolling finished (mongoose-os-libs/fingerprint@4cb38fb)
- fingerprint: Add state transition timestamp (mongoose-os-libs/fingerprint@0ebb1d3)
- fingerprint: Add enroll timeout, defaulting to 5 secs (mongoose-os-libs/fingerprint@3a0ebc8)
- gcp: gcp: Fix a memory leak in mgos_gcp_mqtt_connect (mongoose-os-libs/gcp@db11315)
- gcp: Set connect function after configuring MQTT (mongoose-os-libs/gcp@abefb99)
- gcp: Add gcp.ca_cert to further split GCP config from generic MQTT (mongoose-os-libs/gcp@5783969)
- hd44780: Initial commit and implementation (mongoose-os-libs/hd44780@4a3c372)
- http-server: Fix build with MGOS_ENABLE_WEB_CONFIG: 1 (mongoose-os-libs/http-server@0561999)
- http-server: Fix build with MGOS_ENABLE_WEB_CONFIG: 1. Make it less noisy (mongoose-os-libs/http-server@6a20d5c)
- http-server: Move dns-sd registration to http-server (mongoose-os-libs/http-server@b48a2e7)
- http-server: Add http.index_files setting (mongoose-os-libs/http-server@0d04893)
- i2c: mgos_i2c_setbits_reg_w endianness bug - byte are exchanged each time the function is called on little-endian cpus (mongoose-os-libs/i2c@749b01c)
- mbedtls: mbedTLS 2.16.3-cesanta7: Backport more patches required by HomeKit (mongoose-os-libs/mbedtls@9462016)
- mdash-api: Set most of widget.enable to false (mongoose-os-libs/mdash-api@0f8c9cf)
- mongoose: Fix ota-shadow logic (mongoose-os-libs/mongoose@918f626)
- mongoose: Add mg_dns_encode_name_s for non-NUL terminated strings (mongoose-os-libs/mongoose@6a2a073)
- mongoose: Fix a leak when CA certificate file is invalid (mongoose-os-libs/mongoose@6ad252b)
- mongoose: Move ssl_if_data to the end of mg_connection (mongoose-os-libs/mongoose@486c325)
- mongoose: Keep the size of the structure the same in non-SSL build (mongoose-os-libs/mongoose@08dafbf)
- mqtt: Fix connection config memory management (mongoose-os-libs/mqtt@f43cd39)
- mqtt: Check config for NULL before checking if it's enabled (mongoose-os-libs/mqtt@998dcb9)
- mqtt: Re-work retransmit logic to avoid duplicates (mongoose-os-libs/mqtt@2f0d64e)
- mqtt: Don't start draining the queue until CONNACK is received (mongoose-os-libs/mqtt@8d66444)
- prometheus-metrics: Allow all 2XX return codes to count as success (mongoose-os-libs/prometheus-metrics@efd22a2)
- prometheus-sensors: Add .clang-format (mongoose-os-libs/prometheus-sensors@3a8773f)
- rpc-service-atca: Build fixes for new cryptoauthlib, add key block to SetKey (mongoose-os-libs/rpc-service-atca@f73d716)
- rpc-service-atca: rpc-service-atca: AES support for SetKey, ATCA.AES method (mongoose-os-libs/rpc-service-atca@0aed922)
- rpc-service-fs: Use ftell() to get file size (mongoose-os-libs/rpc-service-fs@7edeeca)
- vfs-common: vfs-common: Try to probe fs_type on mount (mongoose-os-libs/vfs-common@52a96fe)
- vfs-common: vfs-common: Hide special entries from readdir() output (mongoose-os-libs/vfs-common@6e0af5a)
- vfs-fs-lfs: vfs-fs-lfs: Optimize default parameters a bit (mongoose-os-libs/vfs-fs-lfs@4f20275)
- vfs-fs-lfs: vfs-fs-lfs: Update littleFS to 2.1.4 (mongoose-os-libs/vfs-fs-lfs@f5d1ef5)
- vfs-fs-lfs: Forgotten file (mongoose-os-libs/vfs-fs-lfs@a2f1656)
- vfs-fs-lfs: vfs-fs-lfs: Added mgos_vfs_fs_lfs_probe() (mongoose-os-libs/vfs-fs-lfs@40a4728)
- vfs-fs-lfs: Fix detection of LFSv2 (mongoose-os-libs/vfs-fs-lfs@e59c301)
- vfs-fs-lfs: Add some debugging statements (mongoose-os-libs/vfs-fs-lfs@445f61c)
- vfs-fs-lfs: Add LFS_NO_VALIDATE (mongoose-os-libs/vfs-fs-lfs@c62bb1e)
- vfs-fs-spiffs: vfs-fs-spiffs: Added mgos_vfs_fs_spiffs_probe() (mongoose-os-libs/vfs-fs-spiffs@a74b4f0)
- vfs-fs-spiffs: Break out of readdir loop (mongoose-os-libs/vfs-fs-spiffs@a2ea467)
- wifi: Catch if cfg->protocol not set (#33) (mongoose-os-libs/wifi@bdc9eed)
- wifi: wifi: Disable WPA entrprise on ESP8266 by default.
It's not viable anyway due to huge memory usage and is also buggy (crashes).
If you really want it, re-enable with MGOS_ESP8266_WIFI_ENABLE_WPAENT cdef,
otherwise enjoy extra 60K of space. (mongoose-os-libs/wifi@c7c4634) - wifi: esp8266: Allow empty wifi.ap.gw (mongoose-os-libs/wifi@851f55f)
- mos: mos: Add support for AES key type in ATECC608 config file (mongoose-os/mos@a6866df)
- mos: mos: Support AES key in atca-set-key (mongoose-os/mos@da4ce74)
- mos: Add TLS-ECDHE-RSA-WITH-AES-128-GCM-SHA256 to ATCA cipher suites (mongoose-os/mos@2377e26)
- mos: Replace cesanta.errors with juju/errors (mongoose-os/mos@3aa13f0)
- mos: mos: Minor fixes to create-fw-bundle (mongoose-os/mos@463a002)
- mos: Don't use Ansible for uploading binaries (mongoose-os/mos@200658f)
- mos: Common Makefile for mos, fwbuild-manager and fwbuild-instance (mongoose-os/mos@8092c94)
- mos: Add builds for Ubuntu 20.04 Focal Fossa (mongoose-os/mos@81b36fc)
- mos: Fix path to version.json (mongoose-os/mos@a6eba41)
- mos: Check GitHub SSH access when deploying release (mongoose-os/mos@7ab4901)
- mos: Fix command invocation (mongoose-os/mos@c548613)
- mos: Ignore pkg.* files (mongoose-os/mos@d9e64e4)
- mos: More deps shuffling (mongoose-os/mos@de8e9dc)
- mos: Always regenerate version when updating HB (mongoose-os/mos@2f91ec8)
- mos: Use logging.info instead of print (mongoose-os/mos@c1dbbef)
- mos: Ubuntu build fixes (mongoose-os/mos@82338ce)
- mos: Make mos by default (mongoose-os/mos@53df43a)
- mos: Add a warning if device is not responding to handshakes over serial (mongoose-os/mos@9c7bfeb)
- mos: Add pull action to fwbuild-manager (mongoose-os/mos@85680a0)
- mos: fwbuild-manager: Pull images once an hour by default (mongoose-os/mos@ef52591)
- mos: fwbuild-manager: Print version and build info on startup (mongoose-os/mos@06467aa)
- mos: Remove dependency on Ansible during deployment (mongoose-os/mos@451940c)
- mos: gcp-iot-setup: Report error from device creation, not deletion (mongoose-os/mos@49ca459)
- mos: Do not ignore libs_handled in test manifest output (mongoose-os/mos@a6f7ce8)
- mos: Added ability to override lib variants from conds in app manifest (mongoose-os/mos@61481fa)
- mos: Fix -latest binary libs update logic (mongoose-os/mos@d8178be)
- mos: gcp-iot-setup: Use LTS MQTT endpoint (mongoose-os/mos@981a8e2)
- mos: Disable stringer generation for now (mongoose-os/mos@157f3d6)
- mos: Remove build's dependency on generate (mongoose-os/mos@0b059d1)
- mos: Sync deps before building (mongoose-os/mos@91b5057)
- mos: Always restart fwbuild-manager (mongoose-os/mos@6a24f13)
- mos: fwbuild-manager: Also pull mos image (mongoose-os/mos@dcda324)
- mos: Write results of get to output in chunks as they arrive (mongoose-os/mos@5ca977b)
- mos: Support --gh-token=@/path/to/file_with_token (mongoose-os/mos@67d3323)
- mos: Override app name, description and version from app's conds (mongoose-os/mos@bb2f974)
- mos: Add --build-dir to override default build directory location (mongoose-os/mos@18c1939)