Espruino 2v02 released

Posted on
  • It's time for a release again (it's been a while since the last one, so this is pretty big).

    2v02 is available from or from the Web IDE if you've got an official board.

    Note: Where there's a hashed number in brackets after a bug it refers to a numbered GitHub issue


    • Graphics functions return a Graphics instance so calls can now be chained like g.clear().flip() (#1580)
    • Graphics.clear(true) will reset state (font, color, etc) to default as well as clearing the screen (#1615)
    • Lots more documentation, linking and code examples in the reference
    • Add I2C/SPI baud rate sanity checks (#1619)
    • There are now builds for Smartibot
    • We now save file modification time with FAT
    • Remove limit on the number of scopes that can be searched - you can now nest as many callbacks as you want (#948)
    • Added RegExp | operator (#1503)
    • Switch ARM toolchain to gcc-arm-none-eabi-8-2018-q4-major for faster/smaller binaries
    • Big software serial reliability improvements, and input buffer size raised to 64 bytes (#1654)

    Device specific additions

    • nRF52: NFC is now working on all devices
    • nRF52: Add Bluetooth passkey authentication in both central and peripheral via NRF.setSecurity
    • nRF52: startNotifications uses Indicate if Notify doesn't exist (as per spec)
    • nRF52: Added active option to NRF.setScan/findDevices/requestDevices to allow scan response packets to be requested
    • nRF52 better reporting of softdevice errors
    • nRF52: Add setAdvertising({},{scannable:false}) for disabling scan response
    • nRF52: Add FAT Filesystem support to MDBT42Q module
    • nRF52: Add NRF.getSecurityStatus to allow devices to detect the current state of the connection
    • nRF52840 SDK 15 improvements/fixes
    • nRF5x: Add security options to NRF.setSecurity (courtesy of @vkolotov)
    • nRF5x: Allow Serial1.setup(...) with only TX or RX pins

    • STM32: Add E.setRTCPrescaler to allow the RTC to be calibrated on Espruino Pico (#1607)

    • STM32F4discovery: Add Filesystem module

    • ESP32 now uses esp-idf V3.1.3

    • ESP8266: shrinking build size with different compiler options (#1622)

    • ESP8266: add Wifi.connect options channel and bssid for faster AP connects (#1595, #1640)


    • Regex String replace/split now works better (#1602)
    • DataView.byteOffset/byteLength is always set even if not specified (#1567)
    • Fix sign of RSSI reporting with setRSSIHandler
    • nRF52: Disconnect RX pin after UART test at boot (saves power when in deep sleep)
    • Serial.unsetup now sets pin state to UNDEFINED, which disconnects the pins internally
    • Removed modulo on new Date h/m/s/ms arguments since desktop JS is fine with out of range values
    • nRF52: Fix slow Bluetooth connection if previously disconnected while using low power connection interval (#1605)
    • Added HttpServerResponse.setHeader, and now automatically send Connection:close unless overridden (fix #1596)
    • nRF52: Fix setScanResponse regression from 2v00
    • nRF5x: Execute SWI1_IRQHandler when radio turns off instead of on+off. More efficient, fixed multiple advertising.
    • Fix segfault if .clone is called with this==undefined (#1628)
    • Fix issue outputting char codes <8 after outputting hex char codes
    • nRF52: Don't allow NRF.updateServices while a BLE restart for setServices is queued
    • nRF5x: Don't sleep immediately if we received any events since last sleep (#1572)
    • Improve handling of timeouts for RAK8212 GPS
    • STM32: Fix issue where occasionally STM32 would be ~0.2s late waking from light sleep
    • Fix index in E.mapInPlace and improve docs


    Unfortunately the vector font has now had to be removed from the Espruino Original WIZnet build due to lack of spare flash memory, however the non-WIZnet build still contains everything.

  • @Gordon, congrats... a lot of things moved in and up...

    EDIT: Video Chat Recording link at­480/

    Details regarding Removal:

    Non-WIZnet build meant usually a CC3000 build. So what is going on there? three builds:

    • non-Wiznet, non-CC3000 build
    • Wiznet build - without vector font on Original board
    • CC3000 build - with(?) vector font on Original board

    I assume with the planned option of easy self-build of custom builds with custom required components - as announced to be presented in Patreon
    Video Chat, Thurs 2nd May 20:00 UK (19:00 GMT, 12:00 PDT) - reduction of prebuilt builds is not an issue. - * SEE LINK OF RECORDING ABOVE *

  • As of 2v01 I think the Original Espruino board only comes with builds for:

    • AT command only (everything is in that build)
    • WIZnet W5500

    I had to drop CC3000 support - TI stopped selling and supporting their own chip several years ago. You should still be able to build for it yourself though - and I'll try and cover that in the Patreon video :)


    2v02 has an issue with NRF.setAdvertising - if you call setAdvertising while connected via Bluetooth, the data supplied will be ignored. However if you're advertising at the time then it will work as intended.

    This behaviour is fixed in cutting edge builds, and will also be fixed in the 2v03 release when it is made.

  • Hi Gordon,

    Could you clarify what is meant by, nrf52832 and Thing52, "no longer supported", v2.02?


  • Some companies pay a small amount per month to get their boards listed in "Third Party Boards" in - this means getting a page on the Espruino site, and getting a maintained build so there's always an up to date firmware available in a release or 'cutting edge' build:

    Nordic decided not to renew that in March, so there aren't new builds going forward. The old ones will continue to work.

    However last week a few people complained on Twitter and that was enough to change Nordic's mind within just a few hours - but only for Thingy:52. That'll be back for 2v03 and later (hopefully today).

    If you care about this, let Nordic know. seems to be the best way - if nobody tells them then they don't think Espruino is being used and seem less inclined to support it.

    The same applies for other companies and boards too. Want the nRF52840 Dongle supported? Ask them. EspressIf have expressed zero interest in supporting the work on Espruino for ESP32/ESP8266 - if they were contacted by a few more users that might change their minds.

  • I tweeted as follows ...

    "Disappointed to see the Nordic nRF52832-DK not being supported going forward for new builds of Espruino. I've bought literally dozens of nRF based products because it's so easy to test the Espruino code, drop and add, to the nRF52-DK, and I would think it's a great platform going forward, esp. on the nRF52840 dongle. Get a lot of new players into coding your great products..."


  • That's perfect, thanks!

  • Ok, 2v03 is now released - Thingy:52 support has been added as well.

  • Post a reply
    • Bold
    • Italics
    • Link
    • Image
    • List
    • Quote
    • code
    • Preview

Espruino 2v02 released

Posted by Avatar for Gordon @Gordon