Releases: cesanta/mongoose-os
v1.20
- The workflow is changed: instead of selecting a prebuilt firmware and hacking right on device's files, initial setup window now allows to select apps which have prebuilt binaries, and when the setup is done, the app's page is opened, where users can edit it, rebuild, and flash.
- External git binary is not required anymore for the mos tool to work.
- Packages available for Ubuntu 17.10 as well
1.6
1.5
1.4 "Potato", 2017-06-19
- Factored out Mongoose OS functionality to libraries. See https://mongoose-os.com/docs/core_components/apps.html
- Greatly improved documentation
- Added support to config_schema to
mos.yml
- Added Arduino example apps
- Added ESP8285 flashing support
- Added project IDE to the Web UI
- Added MQTT and UDP remote log
- Split cert & key in the JS SSL API
- MQTT publishing on QOS 2 fixes
- Added VFS support, external SPI flash mount, RPC service for mounting FS
- Amazon Greengrass integration
- Many performance and stability fixes
1.3 "Traditional cookadoodadoo", 2017-05-19
mos
tool improvements - build system, UI, better mqtt support- Google IoT support on the device side
- Plenty of bugfixes around stability
- I2C and SPI API. On ESP32, HW is used - it's fast!
- Arduino support - OneWire, Wire, BME280, DHT, SSD1306, Dallas Temp, GFX drivers
- mJS engine improvements. Compilation into byte code and mmap-ing to to save RAM
- Remote logging via UDP and MQTT
- AWS shadow support
- MQTT client improvements, better QOS handling
- Blynk compat & example
- Plenty of improvements in JS API, including RPC outbound API
- MDNS fixes
- Refactored UART API, both C and JS
- Published reference AWS IoT projects
1.2 "Standard size rabbit", 2017-03-08
Overview
- mos utility with UI
- vast amount of documentation added, including videos - https://mongoose-os.com
- mJS engine added with FFI, see https://mongoose-os.com/blog/mjs-a-new-approach-to-embedded-scripting/
- Started on Arduino compatibility layer
- Crypto chip support
1.1 "Smooth Sailing", 2016-07-27
- Big improvements in CC3200 support:
- Cloud console logging
- NWP service pack is now included in FW bundle and flashed together
- Better stability
- Faster updates from cloud IDE
- Improved C API
- JS proxy object API support, allowing implementing JS objects backed by C code
1.0-rc1 "Rushing Mink", 2016-06-28
- OTA update is significantly improved
- Added firmware update support for CC3200
- Improved cloud integration
- Improved JavaScript API
- Bug fixes
- Improved documentation
- Added examples
Beta4 "Junkie Bear", 2016-04-26
Main reason for this release is the Mongoose IoT rebranding. What you are looking at now and what used to be called Smart.js
is now Mongoose IoT Firmware
.
Changes that happened since Beta3:
- Quite a bit if work on TI CC3200
- JS APIs for TCP and UDP
- File API changes (readAll removed)
- GPIO API changes (notably
setmode
->setMode
) - Improved TLS support - a CA bundle (ca.pem) with 10 of most popular roots is now included by default.
Beta3 "Fat Rabbit", 2016-03-24
What's new
Beta3 "Fat Rabbit" is mainly a bug-fix and continuous improvement release. We've been very busy, there are tons of improvements; existing users are encouraged to upgrade. Please also consider upgrading to the most recent FnC flasher tool (https://github.com/cesanta/fnc/releases/latest).
A few highlights:
New features, improvements
- MQTT support
- TLS works on ESP Smart.js
- CC3200 support has been resumed
- ESP8266: Switch to OSS SDK 1.5.2
- ESP8266, LWIP: Adaptive TCP retransmit; faster networking in the face of packet loss
- Most Smart.js library code is now "frozen", i.e. it lives on flash memory. This is a huge saving for some archs such as esp8266.
- Implemented
setInterval
,clearInterval
,clearTimeout
- Symbolic names:
Debug.OFF
,Debug.OUT
,Debug.ERR
, ... Sys.reboot
takes an optional exit code. Useful on "posix" platforms.- More helpers to check for heap corruptions
- ESP8266: Coredump gdb server support Espressif V2 image format (used in OTA builds)
- Improvements to crash reporting when emulating instructions in memory mapping soft handler
- Add
Sys.time
function - ESP8266: Handle 32-bit timer overflow
- ESP8266: Support 8Mbit flash
- CC3200: GPIO support, interrupts.
Backward incompatible changes
- rename
http.port
tohttp.listen_addr
config var - rename
v7_mk_opt
tov7_create_opt
due to a bad rename in Beta2
Bug fixes
Smart.js
- ESP8266: Watchdog timer fix: timeout duration is not reset after each feed.
- Fixed hang caused by a GPIO interrupt happening while the device is writing to flash (e.g. OTA update)
- Fix memory leaks in setTimeout
V7 JavaScript VM
- Fixed JS closures leak
- Smaller function call frame
- Added bcode memory footprint metrics
- Many memory corruption fixes caused by missed GC roots in C code.
Using Cesanta Cloud
Cesanta runs a public cloud service at https://cloud.cesanta.com. To login, all you need is a github or G+ account.
Any other cloud service can be used to store data - please take a look at the Http or WebSocket API.
The Smart.js firmware comes with an implementation of our websocket based protocol that is designed to make your device easily accessible behind NATs and to support disconnected operation by managing the queuing of messages for you:
https://www.cesanta.com/developer/cloud
Write your own handlers on your device and make it respond to commands send by other devices or by software running on your servers and call other device or store data such as metrics on our cloud services:
clubby.oncmd('/v1/MyThing.PokeMySensor', function(cmd, done) {
print('got command:', cmd.args.blah);
GPIO.write(yourLEDPin, true);
clubby.call('//api.cesanta.com', {
cmd: '/v1/Metrics.Publish',
args: {vars: [[{__name__: 'frobulator'}, readFrobulatorValue()]]}
}, function(res) {
GPIO.write(yourLEDPin, false);
done('your response');
});
});
Documentation, examples, tools and firmware
Smart.js reference and examples can be found at https://www.cesanta.com/developer/smartjs
Flashing utility (Flash-n-Chips) can be downloaded from https://github.com/cesanta/fnc/releases
Download the firmware from the release attachments below: