Firmware upgrade

Posted on
  • Been having fun learning about the Pucks.

    Just noticed that they shipped with 1v88 which is not the latest firmware.

    Upgrading is easy -- follow the instructions at https://www.espruino.com/Puck.js#firmware-updates

    Kind regards

    James

  • Argh! That's so frustrating - Seeed have put the wrong firmware on all the boards, despite being given the up to date one.

    Thanks for letting me know - that could explain a lot. The new one's got a few minor tweaks, but it also sends advertising packets twice as often, which makes it far easier to connect to.

  • I can't figure out how to upgrade the firmware. I've tried nRF Connect for iOS (no upload option), and for OS X desktop (it needs a "serial port" and can see none).

    Do I need to borrow an Android phone, or is there some software I can use to get this done?

    Edit: Aha, you have to use nRF Toolbox on iOS, not nRF Connect!

  • Yes, sorry - nRF Toolbox works on Android too.

    I'd assumed that nRF Connect on iOS was the same - I'll update the docs.

  • using my iPhone to update the puck.js - easy thing - device name is "DfuTarg"

    if you see eg "Puck.js fed2" than you puck.js is not in update mode


    1 Attachment

    • IMG_6395.PNG
  • I received 2 pucks today, tried out the first one. After updating bluez it worked as advertised. Impressed ! No problems connecting.

    Then I applied the 1.89 update. After doing that, it at first wouldn't connect from the IDE. After a couple of retries, it was OK.

    I updated the second puck without first trying it on the old firmware. Afterwards, I found it really difficult to connect - took several tries, and although sending code always seemed to work, the console often got stuck and wouldn't echo. I tried reverting to 1.88 firmware but it wasn't improved, possibly worse - It does occasionally connect and will then accept code, but it ignores the console and doesn't print the banner so I'm not entirely sure whether the 1.88 firmware was written.

    I then returned to the first puck to see if that was working. It seemed fine at first, but after I saved the code (blink example) I couldn't reconnect to the device. It always runs the blink code and I always get 'connection failed'.

  • I tried holding down the button and inserting the battery, stopping the application from running. This got me a connection, I saved the blank code, and stopped it running on startup. But the console connection is still very poor - it seems to hang after a few seconds.

    My host machine is running 64 bit Debian 8 with Bluez 5.43 and Chrome54.0.2840.71 (64-bit)

    I do have various serial and SWI devices around that I can connect if useful, also a Nordic dev board.

  • I think most likely this is a Linux Bluez/driver issue. On one Linux PC it's pretty much ok for me, but on another it's almost unusable (with Bluez 5.43 too) - with the problems you're describing.

    You could try the command-line app (or the instructions for the Pi server work on Linux too): http://www.espruino.com/Puck.js+Quick+Start

    Those use 'noble' and seem a lot more reliable on Linux. I haven't updated the docs yet, but for the command-line app you also need sudo setcap cap_net_raw+eip $(eval readlink -f `which node`)

    You can connect a USB-TTL converter too (I need to add instructions on that), but it kind of defies the point a little :)

  • What would you suggest as the most reliable host BLE implementation ? I'd like to have a 'known reliable' setup to benchmark against, if possible.

  • Right now, I'd say Chromebook and/or Android. Google have been putting a lot of work into it.

    Probably closely followed by MacOS. Raspberry Pi 3 + Node.js Noble also seems relatively good at the moment, once you have it set up

  • Is there a way to update my puck w/o an android or iOS device? I only have windows PCs and a windows phone.

    I found https://github.com/NordicSemiconductor/Windows-nRF-Toolbox but don't actually see it in the store on my phone, so feeling rather stuck at the moment.

  • I'm trying to find out about that now - I'll get back to you when I have a response from Nordic. They should have a Windows application that will handle it.

    The original plan was to have a firmware updater that ran via Web Bluetooth - but that won't help you until Web Bluetooth for Windows gets added to Chrome early next year.

  • Chiming in here, is there a desktop application for Mac? Seems a faff to have to download firmware to smartphone to flash.

  • I just checked and there isn't anything - for Mac or Windows - at the moment. There are some tools but they require a Nordic BLE dongle - which 99% of people won't own and which costs about the same as a cheap Android tablet.

    However I will be trying to add a Web Bluetooth firmware updater at some point soon - so that will solve any issues on Mac/Chromebook, and hopefully Windows won't be too far behind with Web Bluetooth support.

    For now, I'd just try and borrow someone's phone/tablet I'm afraid - or as long as you can connect ok (which I think is fine on windows) 1v88 isn't that different apart from some more helpful error messages.

  • Hi,
    I initially misinterpreted the instructions. To clarify, when re-inserting the battery, if you hold down the button when inserting battery the LED goes green until the button is released. The LED then stays red whether the button is pressed or not.

    While in this state, if I run sudo hcitool lescan on my Raspberry Pi it reports Mac address and DfuTarg.

    I flashed my puck.js using NRF Toolbox on an Android 5.0 Phone. The LED went blow whilst it was flashed.

    James

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

Firmware upgrade

Posted by Avatar for James @James

Actions