Skip to content

Releases: cesanta/mongoose-os

Mongoose OS 2.3

18 Jun 10:34
Compare
Choose a tag to compare
  • A lot of work on STM32 (but not ready yet)
  • mos: Reduce default ESP flashing baud rate. This will make flashing slower by default but hopefully more reliable. use --esp-baud-rate to set higher.
  • mos: Fix path mapping in debug-core-dump
  • Add a knob for enabling autocommit on ota-update (shadow.autocommit)
  • Update the C UART example to show how to process input line by line.
  • Introduce "params" as alias for "args" in RPC to make our RPC
  • Move docs to cesanta/mongoose-os-docs
  • WiFi: Reduce rate of reconnects when not connected
  • vfs-dev-spi-flash: SFDP 1.6 and DPD support
  • Add Bearer auth for WS RPC channel
  • Move Docker images to docker.io/mgos
  • wifi: Fix crash in ent auth when user is not set
  • Add MGOS_TIMER_RUN_NOW flag
  • Add FS.Rename
  • mos: Support globs in init_deps entries
  • rpc: Fix memory leak in RPC auth over HTTP
  • RPC UART: One frame per line
  • rpc-uart: Add a simple tool to make RPC requests
  • Add OTA.{Begin,Write,End}

Mongoose OS 2.2

14 May 17:01
Compare
Choose a tag to compare

New features

  • IBM Watson IoT Platform support: mos watson-iot-setup, watson library, RPC channel support (mos call --port watson://...). See library README for details.
  • mos debug-core-dump, automatic core dump analysis from mos console: cesanta/mos-tool@9991c58
  • Multiple WiFi station configurations (see here)
  • Implement JS apply()

Fixes and minor changes

  • Fix timezone support on ESP8266
  • CC3220: Speed up first boot after flashing
  • CC3220: Fix wifi scan
  • CC32xx: Support WiFi channels 12-14
  • mos: Increase default RPC timeout to 20s
  • mos: Don't fail GCP setup if rpc-mqtt is not there
  • Fix a bug in mgos_uart_config_set_tx_params
  • ESP32 IDF update to espressif/esp-idf@22fbcd2
  • Fix a leak in mgos_azure_send_d2c_msgf
  • WiFi: Fixed WiFi reconnect timeout handling
  • rpc-service-wifi: Add BSSID to Wifi.Scan results, change result to array
  • dns-sd: Fix name comparison
  • mjs: Allow null as char and void pointers in FFI
  • Fix issues with JS SPI bindings
  • Add shadow.ota_enable knob, per AWS request
  • Improve OTA progress reporting
  • ESP32: Disable WiFi power saving for now
  • Add timeout field to OTA.Update
  • Update ESP8266 SDK to fix WiFi regression

Mongoose OS 2.1

18 Apr 13:44
Compare
Choose a tag to compare

New features

  • Azure IoT Hub support: easy onboarding (mos azure-iot-setup) and a library Cloud-to-Device and Device-to-Cloud messaging, Device Twin shadow support, Direct Method invocation and RPC over Direct Method (including mos call support).
  • Multiple WiFi STA config support (currently 3). mOS will cycle through the list until successful connection. Last successful config index will be saved to make connection faster after reboot.

Important API changes

  • BREAKING: Change shadow API to return state object. See here for details.

Fixes and minor changes

  • mjs: Add String.indexOf
  • mjs: Add s2o(), a way to convert structs to objs (see here)
  • Add mg_url_encode_opt() - a parametrized version of mg_url_encode()
  • Add json_{sprintf,vsprintf}()
  • Add mgos_mqtt_pubf() - a helper to pub JSON messages
  • CC32XX SSL/TLS refactoring. Make CC3220 use mbedTLS for TLS.
  • CC3220 SDK update (to 2.10.00.04)
  • DNS-SD: Add an option to hide info from adv, add mgos_dns_sd_advertise(), mgos_dns_sd_goodbye()
  • Fix mg_http_parse_header(): treat ";" as a delimiter.
  • Add shadow.enable knob to control the shadow lib
  • MQTT: Only PUBACK if the message's QoS is > 0
  • mos: Use --timeout for config and file ops
  • Add ability to remove event handlers
  • Add M5stack demo app.

v2.0

04 Apr 10:30
Compare
Choose a tag to compare

License change

Mongoose OS 2.0 introduces license change:

  • Mongoose OS Community Edition - Apache License Version 2.0
  • Mongoose OS Enterprise Edition - Commercial License

See Licensing section for details.

Technical changes

  • ESP32: Add ability to reference partitions in fw manifest
  • Fix buffer size passed to inet_ntop()
  • vfs-dev-spi-flash: Fix handling of SFDP PT0 versions > 1.0
  • Fix mg_socketpair for lwip + UDP
  • Fix button debouncing logic
  • Add clock mode selection knob for ESP32
  • ESP32: Add half-duplex UART mode
  • Resurrect MGOS_UPD_EV_BEGIN, add MGOS_OTA_STATE_BEGIN, allow rejecting updates
  • Fix invoking mgos_clear_timer() with an invalid ID.
  • Add mgos_config_get("key") / _set("key", "value"): An easy way to get stringified config value and set value of a config key from string.
  • Fix mongoose_schedule_poll on CC32xx
  • Move MDNS to DNS-SD lib, fix init, add example app
  • Only send config diff during mos config-set
  • ESP32 SDK update, to espressif/esp-idf@8478823. Also includes fix for heap free space fragmentation.
  • Optimize UART TX path on ESP
  • Update ESP build images - updated ourTLS (rebased to mbedtls-2.8.0).
  • Add SNTP as a dependency for GCP
  • mos: Do not generate init code for libs with no sources
  • Remove mongoose.{c,h} from the mongoose-os repo; mongoose library should be used instead.
  • ESP8266 SDK update (2.2.1, upstream commit 6f57c05)
  • Fix an edge case in multipart HTTP upload parsing
  • Mongoose net_if and ssl_if refactoring

v1.26

08 Feb 18:37
Compare
Choose a tag to compare

Firmware

  • Allow use of GPIO9 and 10 on ESP8285
  • Allow up to 10Mbit UART speeds on ESP32
  • Fix OOB access in mg_match_prefix_n().
  • Show stringified event number in debug
  • Make AWS init less noisy
  • Implement the Bluetooth current time service (https://github.com/mongoose-os-libs/bt-service-time)
  • Add mgos_dash_callf_noreply() API to dash library
  • Make mgos_rlock_* functions public
  • Fix make debug_coredump for esp32 and esp8266

mJS:

  • Fix stack underflow on an empty block
  • fix a bug which could cause string data corruption in certain circumstances
  • Fix a few modulo-related issues
  • Handle the wrong return expression properly
  • Fix handling of invalid JSON strings
  • Fix JSON parsing which leads to string buffer reallocaction

Mongoose Web Server:

  • Fix socket leak when there are too many open file descriptors
  • Fix publish-subscribe example
  • Fix mg_parse_multipart in case of malformed request
  • Websocket: Respond to Ping with Pong
  • Websocket: Properly close a connection with Close frame (in response to a client's close and when protocol failure is detected)
  • Websocket: Fix support of fragmented messages
  • Websocket: Add support for control frames interjected in the middle of a fragmented message
  • Digest authentication: Fix nonce validity check (expired nonce or nonce from the future did not cause the the check to fail)
  • Digest authentication: Fix nonce request value; it worked before because nonce validity check was broken as well
  • Digest authentication: Add nonce argument to mg_http_create_digest_auth_header(): clients should use the value received from the server's authentication request.
  • Fail if passed a NULL handler to mg_bind or mg_bind_opt.
  • Publish sources and tests
  • Remove tunneling functionality which was used by nobody
  • Add UDP client example
  • Don't use user_data in mqtt server
  • Deprecate mg_http_parse_header() and implement mg_http_parse_header2() instead, which allocates a new buffer if the client-provided one is not large enough (similarly to asprintf).
  • Fix limitations of header value lengths, e.g. when parsing authentication headers such as nonce, etc.

mos tool:

v1.25

25 Jan 15:50
Compare
Choose a tag to compare

Mongoose OS:

  • Add GPIO open-drain output mode
  • Rewrite bitbang I2C to use open-drain output, make frequency adjustable
  • CC3200: Fix OTA regression, which caused OTA to fail
  • CC3220: Update SDK to 1.60.00.04
  • Fix bluetooth support: subscribing to notifications resulted in a
    crash
  • Fix emitting device config; the bug doesn't cause problems as
    long as config structure doesn't contain empty objects.
  • Fix TCP RX path regression in SSL mode
  • Close undrained and stuck http connections
  • Replace esp_bd_addr_t with generic mgos_bt_addr
  • Make BT UUID utility functions platform-independent
  • Refactor neopixel to a separate lib and add C API, add a C example app (example-neopixel-c)
  • Do not put sys config schema defs on the device FS by default
  • Add a simple heap-backed VFS device, mostly for testing

Mos tool:

  • Default location for all modules, including mongoose-os, is now "deps", so one could place under deps all libs, mongoose-os (and maybe mjs_module), and have a hermetic reproducible build.
  • Do shallow clone for the mongoose-os repo

v1.23

02 Jan 10:30
Compare
Choose a tag to compare

Mos tool:

  • Fix brew build: mos shouldn't check for updates because when installed via
    brew it should be updated also via brew

Firmware:

  • BREAKING: SNTP is now factored out to a separate library, so apps should include it explicitly if that functionality is needed.
  • Implemented mgos_event_add_group_handler() in C and
    Event.addGroupHandler() in mJS
  • BREAKING: mgos_net_add_event_handler() is deprecated in favor of mgos_event-based
    API. See comment for MGOS_EVENT_GRP_NET for the example.
  • Increased CC32xx UART buffer size
  • Many improvements in dashboard support (and in the dashboard itself)
  • Added DigiCert root

v1.22.1

19 Dec 23:22
Compare
Choose a tag to compare

Fix brew build: mos shouldn't check for updates because when installed via brew it should be updated also via brew

v1.22

15 Dec 23:52
Compare
Choose a tag to compare

Mos tool:

  • Fix aws thing name for the cases when it's not the default <arch>_<mac>

Firmware:

  • BT: Add API for managing pairing; improve security
  • ESP32: update ESP-IDF
  • ota-aws-shadow library improved and renamed to ota-shadow
  • Add events API, see mgos_event.h
  • Add wifi.ap.hostname: e.g. if it's set to foo.com, then all clients connected to the device's wifi AP
    would be able to use the hostname foo.com instead of the device's IP 192.168.4.1.

v1.20.1

17 Nov 12:02
Compare
Choose a tag to compare

This is a bugfix release.

  • Fetching prebuilt apps during initial setup was failing;
  • For local builds, --libs-dir didn't work correctly for libs which aren't git repositories.