October 1, 2022
This release contains changes to the Moddable SDK made between September 1, 2022 and October 1, 2022
Highlights of this release include:
- Raspberry Pi Pico W support!
- HTML standard
URL
module - XS virtual machines on ESP32 can now be over twice as large
- Preloading of regular expressions
- New tests for BLE server and audio output
Note: The original simulator in the Moddable SDK,
screentest
, will be removed from the Moddable SDK in October. The default simulator has beenmcsim
for several months. If you haven't already transitioned tomcsim
, now is the time.
If you have questions or suggestions about anything here, drop by our Gitter to chat about it, start a new Discussion on our GitHub repository, or contact us on Twitter at @moddabletech.
- XS
- Regular Expressions can now be preloaded! This allows regular expressions to be used in more projects by reducing their RAM footprint and moving their initialization from runtime to build-time. Read more about the tiny, but full-featured, regular expression engine in XS, in our blog.
- The XS memory allocator for microcontrollers has been enhanced to support discontiguous allocations. This allows a single virtual machine on ESP32 to allocate unlimited internal ESP32 memory, increasing the maximum VM size to nearly 300 KB from about 128 KB for devices with no PSRAM. Details are in the manifest documentation.
- Fix mistake in operation order in
WeakRef.prototype.deref
- Fixes to snapshot generation to eliminate divergences
- Fixes for several obscure crashes found with Fuzzilli fuzz testing
- Ecma-419
- Initial support for ESP32-C3: Digital, DigitalBank, I²C, SMBus, Serial
- Initial support for Raspberry Pi Pico and Raspberry Pi Pico W – Digital, DigitalBank
- TCP Socket Listener for Linux
- UDP socket for lwip doesn't require
onReadable
callback - UDP socket on macOS and Linux implement
port
property - HTTP server updated to allow
detach
to be called fromonDone
callback to support WebSocket server exploration WebSocketClient
andWebSocket
constructors support attaching to existing socket- Sensor driver for MPU6886 IMU
- Modules
- MCU-optimized implementation of HTML standard
URL
class together with tests. The implementation fully conforms to the standard with two exceptions: Punycode and - IDNA support are unimplemented. These are used primarily for the display and safe handling of user-entered URLs in browsers, which are not generally a concern on embedded systems. With some effort (and increase in code size), the implementation could support both.
modTimerRemove
on Linux doesn't crash onNULL
timer- Add
manifest.json
for AudioOut module for consistency and to simplify builds - AudioOut fixes
- Sample accurate mixing
- Accurate tone generator frequency
- Allow multiple compressed formats on a single channel
- Fix crash on close in NimBLE BLE client if connection never completed
- Add
manifest.json
for CRC module for consistency and to simplify builds #938 structuredClone
fix to reject host objects
- MCU-optimized implementation of HTML standard
- Devices
- Raspberry Pi Pico W support added – Wi-Fi works
- Analog pin support for ESP32-C3
- I²C build fix for ESP32-C3 to account for fewer I²C ports compared to other ESP32 models
- Keeping up with ESP-IDF audio changes
- PDM audio output option for ESP32
- Tests
- Add BLE server module tests
- BLE test client (to support server tests)
- Complete URL module tests
- Add audio output tests for mixer and playback