Exit from DFU mode

Try usbble 1 :slight_smile:

Bluetooth does not turn on. Log below:

[15:05:31.552] log
[15:05:31.567] [009877-5820, USB, CLI] Logs enabled
[15:05:38.513] ble_state
[15:05:38.525] [016837-6960, USB, INFO] BLE_STATE: bluetooth_status_flag=disabled
[15:05:38.525] [016837-000, USB, INFO] BLE_STATE: forced_off=no
[15:05:38.527] [016837-000, USB, INFO] BLE_STATE: nrf52_connect_status=not_started
[15:05:38.528] [016837-000, USB, INFO] BLE_STATE: ble_enable_state=UNKNOWN
[15:05:38.528] [016837-000, USB, INFO] BLE_STATE: last_bcts_sent_at=0
[15:05:38.528] [016837-000, USB, INFO] BLE_STATE: last_msg_sent_at=0
[15:05:38.529] [016837-000, USB, INFO] BLE_STATE: last_msg_recvd_at=0
[15:05:38.529] [016837-000, USB, INFO] UUID type 0x00, srv handle 0x0000, conn handle 0x0000
[15:05:38.530] [016837-000, USB, INFO] BCTS char handles: value=0x0000, user_desc=0x0000, cccd=0x0000, sccd=0x0000
[15:05:38.531] [016837-000, USB, INFO] VATS char handles: value=0x0000, user_desc=0x0000, cccd=0x0000, sccd=0x0000
[15:05:38.531] [016837-000, USB, INFO] VATC char handles: value=0x0000, user_desc=0x0000, cccd=0x0000, sccd=0x0000
[15:05:38.532] [016837-000, USB, INFO] first handle=0x0000, last handle=0x0000
[15:05:38.532] [016837-000, USB, INFO] Current mtu 0, payload len 0, bcts enabled0
[15:05:45.112] usbble 1
[15:05:45.134] [023444-6607, USB, DEBUG] Forcing NRF connection off
[15:05:45.136] [023444-000, USB, CLI] BLEUSB:OK
[15:05:52.503] [030822-7378, TRX, DEBUG] Si4460 temperature=34
[15:05:52.510] [030822-000, TRX, DEBUG] RSSI[1]: avg=-121 dBm, last=-121 [min=-128, max=-113], num=16
[15:05:52.512] [030822-000, TRX, DEBUG] RSSI[25]: avg=-124 dBm, last=-123 [min=-129, max=-114], num=16
[15:05:52.514] [030822-000, TRX, DEBUG] RSSI[49]: avg=-85 dBm, last=-84 [min=-94, max=-74], num=16
[15:05:52.516] [030823-001, TRX, DEBUG] FSM: state=FSM_RX_AWAKE, stage=0
[15:05:52.518] [030827-004, TRX, DEBUG] FSM: state=FSM_RX_AWAKE, stage=0
[15:05:52.526] [030831-004, TRX, DEBUG] FSM: state=FSM_RX_AWAKE, stage=0
[15:05:52.528] [030835-004, TRX, DEBUG] FSM: state=FSM_RX_SLEEP, stage=0
[15:06:07.580] [045896-15061, TRX, INFO] INT PREAMBLE_DETECT (Ctrl chn=49)
[15:06:07.586] [045898-002, TRX, DEBUG] FSM: state=FSM_RX_SYNC, stage=0
[15:06:07.618] [045932-034, TRX, INFO] FSM: Timer Expired: FSM_RX_SYNC (pre=1, sync=0)
[15:06:07.621] [045933-001, TRX, DEBUG] FSM: state=FSM_RX_INIT, stage=0
[15:06:07.622] [045937-004, TRX, DEBUG] FSM: state=FSM_RX_AWAKE, stage=0
[15:06:07.627] [045941-004, TRX, DEBUG] FSM: state=FSM_RX_AWAKE, stage=0
[15:06:07.629] [045945-004, TRX, DEBUG] FSM: state=FSM_RX_AWAKE, stage=0
[15:06:07.647] [045949-004, TRX, DEBUG] FSM: state=FSM_RX_SLEEP, stage=0
[15:06:10.845] ble_state
[15:06:10.871] [049169-3220, USB, INFO] BLE_STATE: bluetooth_status_flag=disabled
[15:06:10.871] [049169-000, USB, INFO] BLE_STATE: forced_off=no
[15:06:10.873] [049169-000, USB, INFO] BLE_STATE: nrf52_connect_status=not_started
[15:06:10.874] [049169-000, USB, INFO] BLE_STATE: ble_enable_state=UNKNOWN
[15:06:10.874] [049169-000, USB, INFO] BLE_STATE: last_bcts_sent_at=0
[15:06:10.875] [049169-000, USB, INFO] BLE_STATE: last_msg_sent_at=0
[15:06:10.876] [049169-000, USB, INFO] BLE_STATE: last_msg_recvd_at=0
[15:06:10.877] [049169-000, USB, INFO] UUID type 0x00, srv handle 0x0000, conn handle 0x0000
[15:06:10.878] [049169-000, USB, INFO] BCTS char handles: value=0x0000, user_desc=0x0000, cccd=0x0000, sccd=0x0000
[15:06:10.878] [049169-000, USB, INFO] VATS char handles: value=0x0000, user_desc=0x0000, cccd=0x0000, sccd=0x0000
[15:06:10.879] [049169-000, USB, INFO] VATC char handles: value=0x0000, user_desc=0x0000, cccd=0x0000, sccd=0x0000
[15:06:10.880] [049169-000, USB, INFO] first handle=0x0000, last handle=0x0000
[15:06:10.881] [049169-000, USB, INFO] Current mtu 0, payload len 0, bcts enabled0

Hello!

Do you have any other ideas for activating the bluetooth?

Hello! Are there any other options?

Thank you for this helpful thread. My firmware upgrade from app was failed and i was stuck on DFU mode.

I managed to exit from forced DFU mode, by first activating BLE in USB mode, and then realizing that my nrf52 firmware is bad (from the log), and finally followed @armin’s guide (Exit from DFU mode)

Here’s the log after I entered “usbble 1”

[470767-9868, USB, DEBUG] Forcing NRF connection off
[470767-000, USB, CLI] BLEUSB:OK
[483386-12619, NRF, INFO] NRF52 DFU complete, checking version
[483386-000, NRF, INFO] NRF52 forcing bootloader
[484036-650, NRF, INFO] NRF52 checking version
[484038-002, NRF, ERROR] NRF52 version mismatch: Want 0xb9 got 0x81
[484038-000, NRF, WARN] NRF52 firmware bad, forcing DFU
[490912-6874, TRX, DEBUG] Si4460 temperature=36
[490912-000, TRX, DEBUG] RSSI[1]: avg=-119 dBm, last=-119 [min=-128, max=-110], num=16
[490912-000, TRX, DEBUG] RSSI[25]: avg=-116 dBm, last=-115 [min=-123, max=-107], num=16
[490912-000, TRX, DEBUG] RSSI[49]: avg=-115 dBm, last=-115 [min=-119, max=-109], num=16
[490913-001, TRX, DEBUG] FSM: state=FSM_RX_AWAKE, stage=0
[490917-004, TRX, DEBUG] FSM: state=FSM_RX_AWAKE, stage=0
[490921-004, TRX, DEBUG] FSM: state=FSM_RX_AWAKE, stage=0
[490925-004, TRX, DEBUG] FSM: state=FSM_RX_SLEEP, stage=0

1 Like

Hello all!
Unfortunately, I could not turn on the bluetooth on my device.

[15:05:45.112] usbble 1
[15:05:45.134] [023444-6607, USB, DEBUG] Forcing NRF connection off
[15:05:45.136] [023444-000, USB, CLI] BLEUSB:OK
[15:06:10.845] ble_state
[15:06:10.871] [049169-3220, USB, INFO] BLE_STATE: bluetooth_status_flag=disabled
[15:06:10.871] [049169-000, USB, INFO] BLE_STATE: forced_off=no
[15:06:10.873] [049169-000, USB, INFO] BLE_STATE: nrf52_connect_status=not_started
[15:06:10.874] [049169-000, USB, INFO] BLE_STATE: ble_enable_state=UNKNOWN
[15:06:10.874] [049169-000, USB, INFO] BLE_STATE: last_bcts_sent_at=0
[15:06:10.875] [049169-000, USB, INFO] BLE_STATE: last_msg_sent_at=0
[15:06:10.876] [049169-000, USB, INFO] BLE_STATE: last_msg_recvd_at=0
[15:06:10.877] [049169-000, USB, INFO] UUID type 0x00, srv handle 0x0000, conn handle 0x0000
[15:06:10.878] [049169-000, USB, INFO] BCTS char handles: value=0x0000, user_desc=0x0000, cccd=0x0000, sccd=0x0000
[15:06:10.878] [049169-000, USB, INFO] VATS char handles: value=0x0000, user_desc=0x0000, cccd=0x0000, sccd=0x0000
[15:06:10.879] [049169-000, USB, INFO] VATC char handles: value=0x0000, user_desc=0x0000, cccd=0x0000, sccd=0x0000
[15:06:10.880] [049169-000, USB, INFO] first handle=0x0000, last handle=0x0000
[15:06:10.881] [049169-000, USB, INFO] Current mtu 0, payload len 0, bcts enabled0

Let me know what else i can do?
In the help there is a separate command to launch “bluetooth”, but I do not know the necessary argument.

Hi @Posman,

after entered “usbble 1” did you get error message in gotenna periodical log? such as

[484038-002, NRF, ERROR] NRF52 version mismatch: Want 0xb9 got 0x81
[484038-000, NRF, WARN] NRF52 firmware bad, forcing DFU

i looked at my output logs after entered “ble_state” and it seems that our problem might be the same. here’s my log (before pushing update via nrf tools)

ble_state

[2549463-11072, USB, INFO] BLE_STATE: bluetooth_status_flag=disabled
[2549463-000, USB, INFO] BLE_STATE: forced_off=no
[2549463-000, USB, INFO] BLE_STATE: nrf52_connect_status=not_started
[2549463-000, USB, INFO] BLE_STATE: ble_enable_state=UNKNOWN
[2549463-000, USB, INFO] BLE_STATE: last_bcts_sent_at=0
[2549463-000, USB, INFO] BLE_STATE: last_msg_sent_at=0
[2549463-000, USB, INFO] BLE_STATE: last_msg_recvd_at=0
[2549463-000, USB, INFO] UUID type 0x00, srv handle 0x0000, conn handle 0x0000
[2549463-000, USB, INFO] BCTS char handles: value=0x0000, user_desc=0x0000, cccd=0x0000, sccd=0x0000
[2549463-000, USB, INFO] VATS char handles: value=0x0000, user_desc=0x0000, cccd=0x0000, sccd=0x0000
[2549463-000, USB, INFO] VATC char handles: value=0x0000, user_desc=0x0000, cccd=0x0000, sccd=0x0000
[2549463-000, USB, INFO] first handle=0x0000, last handle=0x0000
[2549463-000, USB, INFO] Current mtu 0, payload len 0, bcts enabled0

this is the log from “output”

[892519-5400, USB, CLI] Device type: goTenna 900
[892519-000, USB, CLI] FW Version : 1.1.8.remotes/origin/mesh-5.0-release-candidate-0-gd438b05 (jenkins@gotenna-buildserver)
[892519-000, USB, CLI] Build Date : Jun 28 2018 12:32:00
[892519-000, USB, CLI] Boot Version: 00.09
[892519-000, USB, CLI] Boot flag: 1c. Firmware CRC: 3d054690
[892519-000, USB, CLI] BLE bootloader version 1, softdevice 0x81
[892519-000, USB, CLI] Features: FEATURE_EXTENDED_BCTS=off, FEATURE_FULL_FREQ_CONFIG=off, FEATURE_GEO_CONFIG=on, FEATURE_MASK_RATE_CONFIG=off, FEATURE_RELAY_MODE=on, FEATURE_RELAY_NODE_LED=on, FEATURE_TX_CHAN_SELECT=off, FEATURE_TX_POWER_CONFIG=off

1 Like

after send “usbble 1” next output (no erorr)
[22:59:57.500] usbble 1
[22:59:57.524] [071251-10420, USB, DEBUG] Forcing NRF connection off
[22:59:57.528] [071251-000, USB, CLI] BLEUSB:OK
[23:01:18.154] dev_info
[23:01:18.177] [151899-990, USB, CLI] SERIAL no: AA12341234
[23:01:18.180] [151899-000, USB, CLI] Bluetooth flag 1
[23:01:18.180] [151899-000, USB, CLI] LED flag 1
[23:01:18.182] [151899-000, USB, CLI] RELAY flag 0
[23:01:18.183] [151899-000, USB, CLI] Device Type goTenna 900
[23:01:36.850] ble_state
[23:01:36.875] [170600-18701, USB, INFO] BLE_STATE: bluetooth_status_flag=disabled
[23:01:36.875] [170600-000, USB, INFO] BLE_STATE: forced_off=no
[23:01:36.878] [170600-000, USB, INFO] BLE_STATE: nrf52_connect_status=not_started
[23:01:36.879] [170600-000, USB, INFO] BLE_STATE: ble_enable_state=UNKNOWN
[23:01:36.879] [170600-000, USB, INFO] BLE_STATE: last_bcts_sent_at=0
[23:01:36.880] [170600-000, USB, INFO] BLE_STATE: last_msg_sent_at=0
[23:01:36.882] [170600-000, USB, INFO] BLE_STATE: last_msg_recvd_at=0
[23:01:36.883] [170600-000, USB, INFO] UUID type 0x00, srv handle 0x0000, conn handle 0x0000
[23:01:36.883] [170600-000, USB, INFO] BCTS char handles: value=0x0000, user_desc=0x0000, cccd=0x0000, sccd=0x0000
[23:01:36.886] [170600-000, USB, INFO] VATS char handles: value=0x0000, user_desc=0x0000, cccd=0x0000, sccd=0x0000
[23:01:36.887] [170600-000, USB, INFO] VATC char handles: value=0x0000, user_desc=0x0000, cccd=0x0000, sccd=0x0000
[23:01:36.887] [170600-000, USB, INFO] first handle=0x0000, last handle=0x0000
[23:01:36.888] [170600-000, USB, INFO] Current mtu 0, payload len 0, bcts enabled0

I tried other console commands. Below output:

[23:03:25.712] touch
[23:03:25.735] [279463-14561, USB, ERROR] invalid evt (0), task_id=7
[23:03:37.469] ps
[23:03:37.487] [291213-11750, USB, CLI] Counters:
[23:03:37.489] [291213-000, USB, INFO] Task activity counters:
[23:03:37.489] MAIN, evts: 1454, msgs: 3, timeouts: 0
[23:03:37.491] FLSH, evts: 0, msgs: 4, timeouts: 0
[23:03:37.491] TRX, evts: 1, msgs: 3, timeouts: 290442
[23:03:37.491] NRF, evts: 0, msgs: 0, timeouts: 0
[23:03:37.492] PRNT, evts: 0, msgs: 2, timeouts: 0
[23:03:37.492] LED, evts: 14438, msgs: 0, timeouts: 0
[23:03:37.493] USB, evts: 0, msgs: 6, timeouts: 29029
[23:03:37.494] SLP, evts: 27297, msgs: 0, timeouts: 152213035
[23:03:37.494] RELAY, evts: 0, msgs: 0, timeouts: 0
[23:03:37.495] NRFSW, evts: 0, msgs: 0, timeouts: 0
[23:03:37.495] DEBUG, evts: 1, msgs: 1, timeouts: 0
[23:03:37.496] EMSPI, evts: 0, msgs: 0, timeouts: 0
[23:03:37.496] [291213-000, USB, CLI] MQX:
[23:03:37.496] MAIN: state=READY, last_pc=0x2, timeout=291213
[23:03:37.497] FLSH: state=READY, last_pc=0xfffffffd, timeout=291213
[23:03:37.498] TRX: state=READY, last_pc=0xfffffffd, timeout=291213
[23:03:37.498] NRF: state=READY, last_pc=0xfffffffd, timeout=291213
[23:03:37.498] PRNT: state=READY, last_pc=0xfffffffd, timeout=291213
[23:03:37.499] LED: state=READY, last_pc=0xfffffffd, timeout=291213
[23:03:37.500] USB: state=READY, last_pc=0xfffffffd, timeout=291213
[23:03:37.500] SLP: state=READY, last_pc=0xfffffffd, timeout=291213
[23:03:37.501] RELAY: state=LWEVENT_BLOCKED, last_pc=0xfffffffd, timeout=538
[23:03:37.502] NRFSW: state=LWEVENT_BLOCKED, last_pc=0xfffffffd, timeout=0
[23:03:37.503] DEBUG: state=LWEVENT_BLOCKED, last_pc=0xfffffffd, timeout=538
[23:03:37.503] EMSPI: state=BLOCKED, last_pc=0xfffffffd, timeout=0
[23:03:37.504] [291214-001, USB, CLI] Sleep: Disabled=1, test_mode=0, MAIN=0, FLSH=1, TRX=0, NRF=0, PRNT=0, LED=1, USB=1, SLP=0, RELAY=0, NRFSW=0, DEBUG=0, EMSPI=0
[23:03:37.506] [291215-001, USB, CLI] Counters: attempt 152213035 sleep 0 wait 27297, denied by test=0 trx=0 led=27297 print=0 usb=0 espi=0
[23:03:37.507] [291215-000, USB, INFO] Flash CB status: maxNumMsgAllowed=230, file_available_capacity=230
[23:03:37.515] [291215-000, USB, INFO] Flash CB status: totalMsgCount=0, msgDeletedCount=0 (diff=0), num_stored=0
[23:03:37.516] [291215-000, USB, INFO] Flash CB status: writableMsgAddress=0x32c000 (in sector 812), firstValidStoredMsg=0x32c000 (in sector 812)
[23:03:37.517] [291215-000, USB, INFO] LED: Last event raised: LED_EVENT_DFU by /var/lib/jenkins/workspace/Firmware-Triggered-Builder/goTenna/Sources/Events.c:254
[23:03:37.519] [291215-000, USB, INFO] LED: Last execution: mask=0x4000, event=LED_EVENT_DFU, pred =0, exec dfu_flash
[23:03:37.521] [291215-000, USB, INFO] LED: State: held=0, in relay confirm=0, current level 0
[23:03:37.521] [291217-002, USB, INFO] Power handler: via_pmic=1, via_usb=0, via_cpu=0
[23:03:37.523] [291217-000, USB, CLI] Emergency beacon status: 0

also in the log there is a periodic debugging:

[23:03:41.178] [294915-3698, TRX, DEBUG] Si4460 temperature=38
[23:03:41.186] [294915-000, TRX, DEBUG] RSSI[1]: avg=-122 dBm, last=-123 [min=-127, max=-116], num=16
[23:03:41.188] [294915-000, TRX, DEBUG] RSSI[25]: avg=-125 dBm, last=-123 [min=-129, max=-120], num=16
[23:03:41.191] [294915-000, TRX, DEBUG] RSSI[49]: avg=-84 dBm, last=-81 [min=-91, max=-73], num=16
[23:03:41.193] [294916-001, TRX, DEBUG] FSM: state=FSM_RX_AWAKE, stage=0
[23:03:41.195] [294920-004, TRX, DEBUG] FSM: state=FSM_RX_AWAKE, stage=0
[23:03:41.214] [294924-004, TRX, DEBUG] FSM: state=FSM_RX_AWAKE, stage=0
[23:03:41.217] [294928-004, TRX, DEBUG] FSM: state=FSM_RX_SLEEP, stage=0

the command “rstdata” and factory reset also does not solved problem

I do not know what else can be done in the console. Maybe developers will be able to help me.

Armin, this worked great!

This didn’t work on my first try. However, I did want to try to intentionally drain the goTenna Mesh’s battery and try the ‘usual’ procedure.

The procedure indicated in the support page - including using an iOS approach didn’t work. However, the nRF procedure (which didn’t work before) worked. Detected the gTm, and I just uploaded the *.zip files as indicated in your post.

Viola! It worked!

Shout out to Nate for being patient with me on email support forum. Many thanks! I was close to mailing back this goTenna Mesh back Stateside.

2 Likes

Thank you Armin!!! It worked flawlessly with Android on a Samsung Galaxy S10…

In my case, same steps but a little different tools flavors. This is what I did (links below):

  1. Dowloaded gotenna.apk from https://apkpure.com/gotenna/com.gotenna.gotenna .

  2. Downloaded nRF Toolbox for BLE from Google Play Store, https://play.google.com/store/apps/details?id=no.nordicsemi.android.nrftoolbox&hl=en .

  3. Downloaded nRF Connect Tool from Google Play Store: https://play.google.com/store/apps/details?id=no.nordicsemi.android.mcp

  4. On a Windows PC used 7-zip tool to Unzip Gotenna.apk. and extract contents to a new folder.

  5. Connect your Android phone to the Windows PC via USB and copy all the nrf52_*.zip files from the extracted files folder to the downloads folder in your Android.

  6. With the GTM unit powered on (obviously) open the nRF Connect Tool downloaded from the Google Play Store installed on the Android phone. Perform a scan and it will find almost any Bluetooth device on your surroundings. The device to we will connect is to the DFUTarg device. Tap over it and click connect.

  7. Once connected, open nRF Tolbox and tap over the DFU button.

  8. Under the DFU menu, tap over “select device” and select/tap the DFUTarg from the displayed list.

  9. Tap over the “select file” , select the “distribution packet (zip)” radio button and navigate to the “downloads” folder and look for the nrf52_*.zip files. Select the first zip file named “nrf52_phase1.zip” (in my case). Once selected, tap over the “upload” button. A progress bar will let you know when the file is uploaded.

  10. Once uploaded, proceed to the next file following the steps 8 & 9 again. In my case the second file was named “nrf52_phase2_part1.zip” and the last one “nrf52_phase2_part2.zip”.

  11. After all .zip files were uploaded, WAIT.

  12. After like 2-3 minutes, the GTM unit installed the new firmware, rebooted and started operating normally. Opened the Gotenna App on my Phone and the it began pairing “automagically” :smiley:

Once again, THANK YOU ARMIN!.

Hope this helps other Android users out there. Cheers!

5 Likes

Armin,
Thanks for this.

First off, I love NRF apps. I am an NRF fanboy and literally use it every day.

I see the DFU Target in NRF connect (The gotenna app is unable to connect).

Why doesn’t gotenna build this feature into their android app? It seems like a TON of people are having this issue, and that’s what DFU mode is for no? @danielagotenna

I’ll wait for a replacement device or the new gotenna “military” device.
until next time

Multihop

THIS WORKED for me! using a gotenna mesh and a Samsung Galaxy S7 Edge.

1 Like

This worked for me for 3 of the 4 GTM units that I have. On one of them after the first attempt, I cannot see a DFUTarg bluetooth device to connect to using nRF Connect. I can get to the serial console on this one device with a USB cable on a Windows PC however - is there a way to force the unit back into DFU mode through the serial console?

New out of box got stuck upgrading 1 unit.
With the same ID
AA12341234

Solution. Had to use IPhone was able to finish the firmware update as it allows Bluetooth bootloader.

1 Like

Thanks!
You saved my gotenna.
I failed with a FW upgrade and this method brought it back again. I am using an android phone and the nrf toolbox.
/Claes

Hello All! I updated this topic.

I could not get the my GM out of the DFU mode. Probably something happened with bluetooth. I did not manage to stability run BLE for updating using the tools of the NRF Tool.

After activating bluetooth, the NRF connect scanner sees the device only a couple of seconds. At the same time, I see an error in the log output: GATT Error 133. Disconnected.
I do not know what else can be done. I have only access to the GM console.

If someone has ideas for solving my problem, please let me know about them. Thanks!

I have a gtm in this same situation. I can comm in the USB serial console but that’s it, can’t see it with nrf tools. same output.

How did you got to comm with your gtm through USB? Which are the steps?

You need install the usb serial console on your phone and try to connect in usb cable.
After connecting, you can display the device log with a list of available commands.

1 Like

I was hoping that updating the firmware to 1.1.12 would be able to restore my GM, but I still could not find a solution to restore BLE. Maybe Gotenna representatives recommend something else…