Espruino 1v92 released

Posted on
  • I've just released 1v92 - it's been a while coming, but there are now a huge amount of new features:

    • Added Pin.toggle(), eg. LED1.toggle()
    • Added DataView class
    • Add Neopixel/WS281x/APA10x LED writing with require("neopixel").write - works on pretty much all devices
    • A few fixes for potential crashes
    • Fixed implicit casting to bool/number on ArrayBuffers (#1030)
    • Fix E.FFT output (enable magnitude when one array specified)
    • JSON.parse now throws an exception if an incorrect value type is found (fix #1117)
    • Pipe close event handlers now use 'this' arg - solves auto-closing pipe when piping from HTTP
    • Increase max graphics size from 1023 to 32767
    • Add Fat File System support to ESP32
    • Fix so that end of file triggers pipe.end event
    • Fix precedence of 'void' keyword (#1079)

    • Pico/WiFi: Allow USB HID to work on Windows (from @nailxx)

    • Puck.js: Now use 'high drive' mode for GPIOs - provides much more power output on pins

    • Puck.js: tweak IR duty cycle, with high drive GPIO the Infrared range is now ~3x more

    • Puck.js: Allow Puck.IR to take pins for an external IR LED (#927)

    • Puck.js: Allow arbitrary NFC data to be specified (#1021)

    • Puck.js: Allow multiple advertising packets to be set at once with NRF.setAdvertising

    • Puck.js: Add 'properties' object to BluetoothRemoteGATTCharacteristic

    • Puck.js: Perform BLE write without response if that is what is required

    • Puck.js: Add BluetoothRemoteGATTCharacteristic.startN­otifications (#959)

    • Puck.js: Added BluetoothDevice.gattserverdisconnected event

    • Puck.js: Report back reason codes for BLE disconnect

    • Puck.js: char.readValue now returns DataView to be more Web Bluetooth compliant (#1091)

    • Puck.js: Respond to conn_params update request, fix puck-puck disconnection after ~65 sec (#1089)

    • Puck.js: Change connection params for central mode so NRF.setLowPowerConnection affects connection speed

    • Puck.js: Correct reading if using analogWrite to red LED and then using Puck.light()

    • Puck.js: stop app_timer NRF_ERROR_INVALID_PARAM errors (trying to sleep for too little time)

    • Puck.js: Don't get stuck in 'HID Busy' state if a HID send failed

    • Puck.js: Allow services to be advertised (fix #996)

    • ESP8266: Add Wifi.setAPIP() and Wifi.setIP

    • ESP8266: Add i2c clock stretch (#1097)

    • ESP8266: Add ESP8266.deepSleep(micros, option) (#1102)

    It's available from the usual places - if you have an official Espruino Board you can use the Web IDE's update feature, and with Puck.js you can use a phone:­-updates

  • Does the Puck support Central/Peripheral mode? I have read that there are some problems connecting Android devices because they do not support Central mode. Could the Puck work as a Gatt Server and is further configuration required? That should allow more compatibility.

    A nice update, really interesting functions.

  • Yes, Puckjs will do both. When you connect to Puck.js to program it Puck.js is being a GATT Server.

    It'd be worth checking out the Puck.js Bluetooth LE intro for more information:­LE

    If you have other general questions about Puck.js, please can you ask them in a separate thread though? It'll help to use this one purely for questions about the 1v92 release itself.

  • Thank you.

  • I've just tried this update from both nRF Toolbox and nRF Connect on Android and in both cases it results in Puck.js flashing all three LEDs. I can't connect any more. Am I missing something obvious? I've tried various sequences of battery/button but to no avail.

  • Had you upgraded from a 'beta' firmware (eg, not just 1v91)?

    Please could you try this?­303637/#13590078

    So downgrading to 1v91 and the running those commands to clear out some of the other flash memory

  • Thanks Gordon. I'm pretty sure I was on stock 1v91. I followed your steps above and it's working fine now.

  • Great, thanks! Glad you got it sorted!

    Very strange though - I tested the upgrade from 1v91 every way I could think of before the release. If anyone else has this problem, please can they let me know? We could try and dump the contents of Flash so I can figure out what happened.

  • I had the 3 light issue with this code loaded going from 1v91 -> 1v92 if that helps:

    var kb = require("ble_hid_keyboard");
    var on = false;
    function onInit() {
      NRF.setServices(undefined, { hid : });
      setWatch(btnPressed, BTN, {edge:"rising",repeat:true,debounce:50})­;
    function btnPressed() {
      kb.tap(kb.KEY["c"], 0);
    var flashLED = function() {
      on = !on;
      var interval;
      if(on) {
        interval = 5;
      } else {
        interval = 3000;
      setTimeout(flashLED, interval);
  • Please can we stick to discussing this on your original post?­306396/#comment13693521

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

Espruino 1v92 released

Posted by Avatar for Gordon @Gordon