Releases: cesanta/mongoose-os
Releases · cesanta/mongoose-os
Mongoose OS 2.3
- 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
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 frommos 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
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 (includingmos 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 ofmg_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
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
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 tomg_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
ormg_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 implementmg_http_parse_header2()
instead, which allocates a new buffer if the client-provided one is not large enough (similarly toasprintf
). - Fix limitations of header value lengths, e.g. when parsing authentication headers such as nonce, etc.
mos tool:
- The mos tool is factored out from the mongoose-os repo to a separate repo https://github.com/cesanta/mos-tool, see its release notes there: https://github.com/cesanta/mos-tool/releases/tag/1.26
v1.25
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 genericmgos_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
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 ofmgos_event
-based
API. See comment forMGOS_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
v1.22
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 tofoo.com
, then all clients connected to the device's wifi AP
would be able to use the hostnamefoo.com
instead of the device's IP192.168.4.1
.