MetaMotion R+ stuck in MetaBoot Mode

edited December 2018 in Firmware

Hello,

I had tried a few weeks ago to do a firmware update on the device using the metabase app after unboxing.

However, after the update it turned to "Metaboot" mode and now it is not recognised by the metabase app (although it does appear as a bluetooth device).

I had seen many similar issues to this one on this forum, and I tried to follow the instructions in this one:
https://mbientlab.com/community/discussion/2677/metamotionr-stuck-in-metaboot-mode#latest

But after that firmware.zip file was "uploaded" by the nRF connect app, there was no effect on the device (still in metaboot mode).

Below are a few screenshots of the device on the nRF connect app (Using an Android phone):



«1

Comments

  • Hello,

    I had tried a few weeks ago to do a firmware update on the device using the metabase app after unboxing.

    However, after the update it turned to "Metaboot" mode and now it is not recognised by the metabase app (although it does appear as a bluetooth device).

    I had seen many similar issues to this one on this forum, and I tried to follow the instructions in this one:
    https://mbientlab.com/community/discussion/2677/metamotionr-stuck-in-metaboot-mode#latest

    But after that firmware.zip file was "uploaded" by the nRF connect app, there was no effect on the device (still in metaboot mode).

    Below are a few screenshots of the device on the nRF connect app (Using an Android phone):



  • Here is the log of the firmware upload to the MetaWear using nRF connect:

    nRF Connect, 2018-11-21
    MetaBoot (E3:C3:50:5F:49:77)
    V 10:03:25.439 Connecting to E3:C3:50:5F:49:77...
    D 10:03:25.439 gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE)
    D 10:03:25.747 [Callback] Connection state changed with status: 0 and new state: CONNECTED (2)
    I 10:03:25.747 Connected to E3:C3:50:5F:49:77
    D 10:03:25.782 [Broadcast] Action received: android.bluetooth.device.action.ACL_CONNECTED
    V 10:03:25.798 Discovering services...
    D 10:03:25.798 gatt.discoverServices()
    D 10:03:25.854 [Callback] Services discovered with status: 0
    I 10:03:25.854 Services discovered
    V 10:03:25.884 Generic Access (0x1800)

    • Device Name [R W] (0x2A00)
    • Appearance [R] (0x2A01)
    • Peripheral Preferred Connection Parameters [R] (0x2A04)
    • Central Address Resolution [R] (0x2AA6)
      Generic Attribute (0x1801)

    • Service Changed [I] (0x2A05)
      Client Characteristic Configuration (0x2902)
      Device Firmware Update Service (00001530-1212-efde-1523-785feabcd123)

    • DFU Packet [WNR] (00001532-1212-efde-1523-785feabcd123)

    • DFU Control Point [N W] (00001531-1212-efde-1523-785feabcd123)
      Client Characteristic Configuration (0x2902)

    • DFU Version [R] (00001534-1212-efde-1523-785feabcd123)
      Device Information (0x180A)

    • Manufacturer Name String [R] (0x2A29)

    • Model Number String [R] (0x2A24)
    • Serial Number String [R] (0x2A25)
    • Hardware Revision String [R] (0x2A27)
    • Firmware Revision String [R] (0x2A26)
      D 10:03:25.884 gatt.setCharacteristicNotification(00002a05-0000-1000-8000-00805f9b34fb, true)
      D 10:03:25.887 gatt.setCharacteristicNotification(00001531-1212-efde-1523-785feabcd123, true)
      V 10:04:08.484 [DFU] DFU service started
      V 10:04:08.484 [DFU] Opening file...
      I 10:04:08.577 [DFU] Firmware file opened successfully
      V 10:04:08.577 [DFU] Connecting to DFU target...
      D 10:04:08.599 [DFU] gatt = device.connectGatt(autoConnect = false)
      I 10:04:08.599 [DFU] Connected to E3:C3:50:5F:49:77
      V 10:04:08.599 [DFU] Discovering services...
      D 10:04:08.599 [DFU] gatt.discoverServices()
      I 10:04:08.633 [DFU] Services discovered
      D 10:04:08.686 [DFU] wait(1000)
      V 10:04:09.685 [DFU] Reading DFU version number...
      D 10:04:09.685 [DFU] gatt.readCharacteristic(00001534-1212-efde-1523-785feabcd123)
      I 10:04:09.755 [DFU] Read Response received from 00001534-1212-efde-1523-785feabcd123, value (0x): 08-00
      A 10:04:09.755 [DFU] Version number read: 0.8
      D 10:04:09.755 [DFU] wait(1000)
      V 10:04:10.756 [DFU] Enabling notifications for 00001531-1212-efde-1523-785feabcd123
      D 10:04:10.756 [DFU] gatt.setCharacteristicNotification(00001531-1212-efde-1523-785feabcd123, true)
      D 10:04:10.756 [DFU] gatt.writeDescriptor(00002902-0000-1000-8000-00805f9b34fb, value=0x01-00)
      I 10:04:10.826 [DFU] Data written to descr.00001531-1212-efde-1523-785feabcd123, value (0x): 01-00
      V 10:04:10.826 [DFU] Notifications enabled for 00001531-1212-efde-1523-785feabcd123
      A 10:04:10.826 [DFU] Notifications enabled
      D 10:04:10.826 [DFU] wait(1000)
      V 10:04:11.823 [DFU] Writing to characteristic 00001531-1212-efde-1523-785feabcd123
      D 10:04:11.823 [DFU] gatt.writeCharacteristic(00001531-1212-efde-1523-785feabcd123)
      I 10:04:11.885 [DFU] Data written to 00001531-1212-efde-1523-785feabcd123, value (0x): 01-04
      A 10:04:11.885 [DFU] DFU Start sent (Op Code = 1, Upload Mode = 4)
      V 10:04:11.885 [DFU] Writing to characteristic 00001532-1212-efde-1523-785feabcd123
      D 10:04:11.885 [DFU] gatt.writeCharacteristic(00001532-1212-efde-1523-785feabcd123)
      I 10:04:11.885 [DFU] Data written to 00001532-1212-efde-1523-785feabcd123, value (0x): 00-00-00-00-00-00-00-00-00-F1-01-00
      A 10:04:11.885 [DFU] Firmware image size sent (0b, 0b, 127232b)
      I 10:04:12.566 Notification received from 00001531-1212-efde-1523-785feabcd123, value: (0x) 10-01-01
      A 10:04:12.566 "Response for: Start DFU
      Value: Success" received
      I 10:04:12.575 [DFU] Notification received from 00001531-1212-efde-1523-785feabcd123, value (0x): 10-01-01
      A 10:04:12.575 [DFU] Response received (Op Code = 1 Status = 1)
      A 10:04:12.575 [DFU] Writing Initialize DFU Parameters...
      V 10:04:12.575 [DFU] Writing to characteristic 00001531-1212-efde-1523-785feabcd123
      D 10:04:12.575 [DFU] gatt.writeCharacteristic(00001531-1212-efde-1523-785feabcd123)
      I 10:04:12.628 [DFU] Data written to 00001531-1212-efde-1523-785feabcd123, value (0x): 02-00
      V 10:04:12.628 [DFU] Writing to characteristic 00001532-1212-efde-1523-785feabcd123
      D 10:04:12.628 [DFU] gatt.writeCharacteristic(00001532-1212-efde-1523-785feabcd123)
      I 10:04:12.628 [DFU] Data written to 00001532-1212-efde-1523-785feabcd123, value (0x): 05-00-03-00-FF-FF-FF-FF-01-00-A8-00-96-8E
      V 10:04:12.628 [DFU] Writing to characteristic 00001531-1212-efde-1523-785feabcd123
      D 10:04:12.628 [DFU] gatt.writeCharacteristic(00001531-1212-efde-1523-785feabcd123)
      I 10:04:12.713 Notification received from 00001531-1212-efde-1523-785feabcd123, value: (0x) 10-02-01
      A 10:04:12.713 "Response for: Initialize DFU Parameters
      Value: Success" received
      I 10:04:12.718 [DFU] Notification received from 00001531-1212-efde-1523-785feabcd123, value (0x): 10-02-01
      I 10:04:12.718 [DFU] Data written to 00001531-1212-efde-1523-785feabcd123, value (0x): 10-02-01
      A 10:04:12.718 [DFU] Initialize DFU Parameters completed
      A 10:04:12.718 [DFU] Response received (Op Code = 2, Status = 1)
      V 10:04:12.718 [DFU] Writing to characteristic 00001531-1212-efde-1523-785feabcd123
      D 10:04:12.718 [DFU] gatt.writeCharacteristic(00001531-1212-efde-1523-785feabcd123)
      I 10:04:12.799 [DFU] Data written to 00001531-1212-efde-1523-785feabcd123, value (0x): 03
      A 10:04:12.799 [DFU] Receive Firmware Image request sent
      A 10:04:12.806 [DFU] Uploading firmware...
      V 10:04:12.806 [DFU] Sending firmware to characteristic 00001532-1212-efde-1523-785feabcd123...
      I 10:07:24.954 Notification received from 00001531-1212-efde-1523-785feabcd123, value: (0x) 10-03-01
      A 10:07:24.954 "Response for: Receive firmware image
      Value: Success" received
      I 10:07:24.969 [DFU] Notification received from 00001531-1212-efde-1523-785feabcd123, value (0x): 10-03-01
      A 10:07:24.969 [DFU] Response received (Op Code = 3, Status = 1)
      A 10:07:24.969 [DFU] Upload completed in 189243 ms
      V 10:07:24.969 [DFU] Writing to characteristic 00001531-1212-efde-1523-785feabcd123
      D 10:07:24.969 [DFU] gatt.writeCharacteristic(00001531-1212-efde-1523-785feabcd123)
      I 10:07:25.023 [DFU] Data written to 00001531-1212-efde-1523-785feabcd123, value (0x): 04
      A 10:07:25.023 [DFU] Validate request sent
      I 10:07:25.043 Notification received from 00001531-1212-efde-1523-785feabcd123, value: (0x) 10-04-01
      A 10:07:25.043 "Response for: Validation firmware
      Value: Success" received
      I 10:07:25.061 [DFU] Notification received from 00001531-1212-efde-1523-785feabcd123, value (0x): 10-04-01
      A 10:07:25.061 [DFU] Response received (Op Code = 4, Status = 1)
      V 10:07:25.068 [DFU] Writing to characteristic 00001531-1212-efde-1523-785feabcd123
      D 10:07:25.068 [DFU] gatt.writeCharacteristic(00001531-1212-efde-1523-785feabcd123)
      I 10:07:25.112 [DFU] Data written to 00001531-1212-efde-1523-785feabcd123, value (0x): 05
      A 10:07:25.112 [DFU] Activate and Reset request sent
      D 10:07:25.162 [Callback] Connection state changed with status: 19 and new state: DISCONNECTED (0)
      W 10:07:25.162 Connection terminated by peer (status 19)
      I 10:07:25.162 Disconnected
      D 10:07:25.163 gatt.refresh() (hidden)
      I 10:07:25.172 [DFU] Disconnected by the remote device
      D 10:07:25.172 [DFU] gatt.refresh() (hidden)
      D 10:07:25.212 [Broadcast] Action received: android.bluetooth.device.action.ACL_DISCONNECTED
      D 10:07:25.262 [DFU] gatt.close()
      D 10:07:25.262 [DFU] wait(1400)
      D 10:07:25.262 [DFU] [Broadcast] Action received: android.bluetooth.device.action.ACL_DISCONNECTED
      D 10:07:26.639 gatt.close()
      D 10:07:26.640 wait(200)
  • V 10:07:26.842 Connecting to E3:C3:50:5F:49:77...
    D 10:07:26.842 gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE)
    D 10:07:27.101 [Callback] Connection state changed with status: 0 and new state: CONNECTED (2)
    I 10:07:27.101 Connected to E3:C3:50:5F:49:77
    D 10:07:27.132 [Broadcast] Action received: android.bluetooth.device.action.ACL_CONNECTED
    V 10:07:27.151 Discovering services...
    D 10:07:27.151 gatt.discoverServices()
    D 10:07:28.077 [Callback] Services discovered with status: 0
    I 10:07:28.078 Services discovered
    V 10:07:28.094 Generic Access (0x1800)

    • Device Name [R W] (0x2A00)
    • Appearance [R] (0x2A01)
    • Peripheral Preferred Connection Parameters [R] (0x2A04)
    • Central Address Resolution [R] (0x2AA6)
      Generic Attribute (0x1801)

    • Service Changed [I] (0x2A05)
      Client Characteristic Configuration (0x2902)
      Device Firmware Update Service (00001530-1212-efde-1523-785feabcd123)

    • DFU Packet [WNR] (00001532-1212-efde-1523-785feabcd123)

    • DFU Control Point [N W] (00001531-1212-efde-1523-785feabcd123)
      Client Characteristic Configuration (0x2902)

    • DFU Version [R] (00001534-1212-efde-1523-785feabcd123)
      Device Information (0x180A)

    • Manufacturer Name String [R] (0x2A29)

    • Model Number String [R] (0x2A24)
    • Serial Number String [R] (0x2A25)
    • Hardware Revision String [R] (0x2A27)
    • Firmware Revision String [R] (0x2A26)
      D 10:07:28.094 gatt.setCharacteristicNotification(00002a05-0000-1000-8000-00805f9b34fb, true)
      D 10:07:28.096 gatt.setCharacteristicNotification(00001531-1212-efde-1523-785feabcd123, true)
    • What's the hardware and firmware revision of your board?
    • Do not copy + paste long log files. Attach them to the post or post them to online paste tools
  • Thanks for the reply. And sorry about posting the log files.

    I would like to get the hardware and firmware information of the board, but the metawear doesn't show up on the metabase app on my android phone. Is there another way to obtain this information without using the metabase app?

    I might also try to use it and install metabase on another phone when I get home later tonight. If I'm successful, I will post the hardware and revision information on here.

  • @nmsilva said:
    Thanks for the reply. And sorry about posting the log files.

    Please fix your posts

  • @Eric said:

    @nmsilva said:
    Thanks for the reply. And sorry about posting the log files.

    Please fix your posts

    I would like to fix them, but I can't find an option anywhere on here to edit those posts. I'll attach the same log file to this post if that helps.

    I also tried installing the Metabase app on another android phone (Huawei Mate 10 Lite), but it was also not able to detect the MetaWear.

    Thus, if the Metabase app doesn't detect the MetaWear (now "MetaBoot") - I don't know how to obtain hardware and firmware revision of the board?

    The only closest detail I was able to find regarding this information, are these entries in the nRF log file:

    Manufacturer Name String [R] (0x2A29)
    Model Number String [R] (0x2A24)
    Serial Number String [R] (0x2A25)
    Hardware Revision String [R] (0x2A27)
    Firmware Revision String [R] (0x2A26)
    
  • Read those characteristics with the nRF Connect app

  • Found it finally:

    Hardware revision: 0.3
    Firmware revision: 0.3.2

  • edited November 2018

    @nmsilva said:
    Found it finally:

    Hardware revision: 0.3
    Firmware revision: 0.3.2

    Try uploading this firmware file with the nRF Connect app:
    https://mbientlab.com/releases/metawear/0.3/5/vanilla/1.4.2/firmware.zip

  • @Eric said:

    @nmsilva said:
    Found it finally:

    Hardware revision: 0.3
    Firmware revision: 0.3.2

    Try uploading this firmware file with the nRF Connect app:
    https://mbientlab.com/404/releases/metawear/0.3/5/1.4.2/vanilla/firmware.zip

    This link leads me to a "404" page could not be found. Did the link expire?

  • @nmsilva said:
    This link leads me to a "404" page could not be found. Did the link expire?

    Fixed the link in my post.

  • Thanks. What should I do after uploading the firmware?

    Should I just wait or press the reset button?

  • @nmsilva said:
    Thanks. What should I do after uploading the firmware?

    Should I just wait or press the reset button?

    You don't need to do anything, just left nRF Connect do its thing.

  • So I have done the following:

    1. Downloaded the firmware.zip file from the link.
    2. Opened the nRF app, and connected to the "MetaBoot" device.
    3. Selected the MetaBoot device, and clicked the small "DFU" button in the top right corner of the nRF app.
    4. Then, selected to upload a .zip file package and selected the "firmware.zip" file.
    5. nRF App began uploading the firmware.
    6. Upload finished upon reaching 100%, but the device remained listed as "MetaBoot".
    7. I disconnected the device from the nRF app.

    The nRF app still lists the Hardware Revision as 0.3, and the firmware revision as 0.3.2.

    The MetaBase app still can't see the device in the "Devices" list.

    I am also attaching the nRF log file for the steps that I've listed above.

  • What Android phone and OS are you using? Can you try the same steps on an iOS device?

  • I am using an Oukitel K6000 pro under android version 6.0. Unfortunately, I can't reach anyone right now that had a iOS device.

    I am attaching an image of the phone details as detected by the nRF app.

  • Any ideas on anything I can try, in case I can't find someone with an iOS device?

  • Try with a different Android device. We've had good experiences with Samsung or Google (nexus / pixel) devices

  • Hi,

    We are playing around with some MetamotionR boards.

    We are having some problems with the board stuck in “Metaboot” mode.

    We searched the forum and found someone had the same problem (in this thread: https://mbientlab.com/community/discussion/2750/metamotion-r-stuck-in-metaboot-mode-not-recognised-by-metabase)

    We checked that the hardware version is 0.3 and the firmware version is 0.3.2.

    We followed all your instructions in that thread.

    We tried it on different phones, iphones, android phones.

    The result is same as what nmsilva mentioned, which is the following:

    So I have done the following:
    1. Downloaded the firmware.zip file from the link.
    2. Opened the nRF app, and connected to the "MetaBoot" device.
    3. Selected the MetaBoot device, and clicked the small "DFU" button in the top right corner of the nRF app.
    4. Then, selected to upload a .zip file package and selected the "firmware.zip" file.
    5. nRF App began uploading the firmware.
    6. Upload finished upon reaching 100%, but the device remained listed as "MetaBoot".
    7. I disconnected the device from the nRF app.
    The nRF app still lists the Hardware Revision as 0.3, and the firmware revision as 0.3.2.
    The MetaBase app still can't see the device in the "Devices" list.

    Please advise what to do next.

    Cheers,

    Blake

  • Try refreshing the gatt services with the nRF connect app.

  • edited April 15

    Hi, I've recently encountered the same issue where my MetamotionR turns into Metaboot.

    Since this device was bought this year around February, should i upload the firmware.zip file from the link given above (https://mbientlab.com/releases/metawear/0.3/5/vanilla/1.4.2/firmware.zip) or is there a newer version that I should use?

    I have tried the troubleshoot part of soft reset and it did not work. So I plan to follow the nRF app to I think update or fix it. However, the link from above for the discussion board (https://mbientlab.com/community/discussion/2677/metamotionr-stuck-in-metaboot-mode#latest) seems to be deleted.

    By the way, from nRF phone app,
    Hardware version 0.3
    Firmware version 0.3.2

    Do help advise on what I should do, thanks.

  • edited April 16

    I've entered the post and tried to load my metaboot on my metabase app, but the metabase app is unable to detect my Metamotion R.

    I did try to reinstall my metabase app, but still the same. Am currently using Redmi Note 4 phone.

    But below is a screenshot of the device information obtained from nRF.

  • edited April 16

    Please do a hard reset: www.mbientlab.com/troubleshooting.
    Then try to do a fresh metabase install on an iPhone 7 or newer and update firmware on your board (please ONLY use an IOS device that has not been used before - borrow from a friend or colleague if you have to).

  • edited April 16

    I've tried the hard reset according to the datasheet on pin 4 and 7 and also 11 and 4, But my LED didn't flash up at all.
    tried while it wasn't charging and while it was chargning.

  • edited April 16

    The LED might not flash and that's ok. Just short pin 4 and 7 real quick (for just 1ms or less). Once the reset is done, try to connect to the board with a fresh iPhone + metabase combo. This has worked for 100% of people that have had issues.

  • I am also concerned your battery is dead and that could be why you don't see the LED flash. In that case, your board isn't in metaboot because it is stuck, it is in that mode because the battery is dead/over-depleted.
    In that case, you will need to replace the battery.

  • edited April 16

    @Laura said:
    I am also concerned your battery is dead and that could be why you don't see the LED flash. In that case, your board isn't in metaboot because it is stuck, it is in that mode because the battery is dead/over-depleted.
    In that case, you will need to replace the battery.

    But if the battery is dead, I wouldn't be able to like see it in metaboot right?
    I remembered it having about 50++% battery on the metabase app slightly before it became metaboot.

    @Laura said:
    The LED might not flash and that's ok. Just short pin 4 and 7 real quick (for just 1ms or less). Once the reset is done, try to connect to the board with a fresh iPhone + metabase combo. This has worked for 100% of people that have had issues.

    I will try to get an iPhone to test this out ASAP and let you know the outcome. Thanks

  • edited April 16

    If it doesn't work and am not able to fix it with an iPhone, do you mind telling me the next step? As where I'm staying, it's past midnight to when you all are online, and it would take another 24 hours to know what to do next.
    Thanks

Sign In or Register to comment.