Thingy:52 DFU 2.04

Posted on
  • Got my Thingy:52 in the mail this morning, and trying to put esprunio on it,

    I couldn't see a softdevice file in /binaries for 2.04 so i used the 1.99 one and then put the espruino_1v99_thingy52_app.zip build onto it which worked fine, however I'd now like to update it to 2.04, but using the espruino_2v04_thingy52.zip file I get an Error 'Invalid Object' with DFU from nrfConnect on iOS.

  • That's really strange. You wouldn't need a new softdevice as it's the same one for all versions of Espruino.

    Just as a sanity check, could you try downloading it and re-flashing again? I just checked the zip files and the format seems almost identical, so it seems strange the upload would fail.

    just to add: As you have an nRF52DK you could always upload the hex file - you just need one of the 10 pin small ribbon cables

  • Still same issue, I also tried using my android device and nrfConnnect on there

  • I have the exact same issue. @sammachin did you manage to flash the version 2.04? I noticed that the instructions in https://www.espruino.com/Thingy52 ask you to download a file like espruino_*_thingy52_app.zip but the version 2.04 doesn't have a _app.zip suffix. Is it in a different format maybe? Is there a way to build the right one?

  • I also found out that the two files inside the 1.99_app.zip have version 1.98. It's like somehow it might have been built by hand. I cloned the espruino repository, checked out tag for version 1.99 and tried to build the zip with this:

    make clean && DFU_UPDATE_BUILD=1 BOARD=THINGY52 RELEASE=1 make

    but I've got a zip file that, like 2.04, doesn't work either. However, just to verify that I hadn't reached an invalid state, I retried the 1.99_app.zip from the espruino's download section and it worked like a charm. Any ideas?

  • Any ideas?

    When examining the 1.99 and 2.04 zip packages via nrfutil command I see one difference - the fw_version. For older 1.99 _app package fw is set to value 7, see below. v2.04 has it set to fw_version: 0x000000FF (255). Maybe it could make difference, maybe not. Otherwise it looks same for both. Required softdevice version is the same 0x8c= S132 3.0.0

    $ nrfutil pkg display espruino_1v99_thingy52_app.zip
    
    DFU Package: <espruino_1v99_thingy52_app.zip>:
    |
    |- Image count: 1
    |
    |- Image #0:
       |- Type: application
       |- Image file: espruino_1v98_thingy52_app.bin
       |- Init packet file: espruino_1v98_thingy52_app.dat
          |
          |- op_code: INIT
          |- signature_type: ECDSA_P256_SHA256
          |- signature (little-endian): 7f0399ea98381d2422df261c10376236d888f52c­73bf370a2066c4b1d410f1dd72fff6fab493a091­c0cd2fe57892c1c86965c35e382a8ce4d0584cb6­1c2095ca
          |
          |- fw_version: 0x00000007 (7)
          |- hw_version 0x00000034 (52)
          |- sd_req: 0x8C
          |- type: APPLICATION
          |- sd_size: 0
          |- bl_size: 0
          |- app_size: 253952
          |
          |- hash_type: SHA256
          |- hash (little-endian): fbb0f7848bdf4184e0254c56040636871fdc1216­bd6184bb1ed18bfc7faba244
          |
          |- boot_validation_type: []
          |- boot_validation_signature (little-endian): []
          |
          |- is_debug: False
    
  • make clean && DFU_UPDATE_BUILD=1 BOARD=THINGY52 RELEASE=1 make

    You could try to modify boards/THINGY52.py and set --application-version to 0x07

         'DFU_SETTINGS=--application-version 0xff --hw-version 52 --sd-req 0x8C',
    
  • Post a reply
    • Bold
    • Italics
    • Link
    • Image
    • List
    • Quote
    • code
    • Preview
About

Thingy:52 DFU 2.04

Posted by Avatar for sammachin @sammachin

Actions