Exit from DFU mode

Hello to all! I ask for help!

Upgrading software to v.1.1.8 of my mesh with the number AA12341234 left the device in DFU mode. Now the app can not pair GM. The activation bluetooth on my phone shared the DFUTarg device occurs only for 3-4 seconds. The application writes “device disconnected”.

Unfortunately, the support service could not help me. I also cannot send the device for check or replacement, but I can definitely tell you that the devices worked properly before the software update.

Maybe someone to share experiences solving such problems.
Maybe there is a hardware or other option of reset GM?

I tried to install the sundry versions of application both on Android and iPhone devices.

I would gratefull all advice!

Our team did work with you for about a week to try to resolve this but we were unable to diagnose what is going on. Unfortunately, we believe that since you bought these used on eBay there may have been issues when you received them from the seller. If someone else on here is able to help you that’d be great, but not even our QA team was able to figure it out – apologies.

1 Like

If you want a warranty with anything on ebay, make sure you buy from an authorized ebay retailer that states specifically that what they sell is covered by a manufacturer’s warranty. The follwing piece of advice is from here:
https://community.ebay.com/t5/Bidding-Buying/Do-manufacturers-warrantied-apply-on-new-items-sold-on-items/qaq-p/23465826

From one of the replies:

No, they should not considered to be valid, even if the item is sold as new. Contact the seller if the listing states otherwise, or if the seller offers a warranty of their own in the description.

Even if the seller is an authorized dealer, the warranty may not be good if the item is bought on ebay if the item is a return being sold as new, if the item was a demo, or if the item has been refurbished. If the seller is an authorized dealer, you should buy directly from their website to ensure the warranty will not be considered void by the manufacturer (due to ebay being considered a secondary market).

If the seller is an authorized dealer in a different country, the warranty will likely be void when you import the item to your country.

2 Likes

Above, I already reported that the purchased devices before the upgrade were fully functional!
You should think about the mode of saving or updates via usb. Unfortunately, I lost one working device (

By the way, what does the support do with such blocks? How do you update meshes from DFU?
Can your developers prompt the necessary instructions? I have rapsberry with Debian.

I, for one, don’t know what DFU mode is… or reset GM. If the units were purchased on eBay… it’s possible that they are set for a different country.

Again! The devices worked before the upgrade. It is somewhat strange that the support does not even want to help the owners of the devices except for recommendations for restarting and reinstalling the application.

DFU - device firmware update mode.

1 Like

@Posman If I may, I think you’re being unfair… as noted in this thread earlier:

My own thoughts: You bought your units used and they may have been damaged in some way — who knows how. Nevertheless, the goTenna team seems to have worked with you for a week to resolve and ran out of options. You say for some reason:

Why not? Not saying goTenna would be able to help you as your units are presumably not covered by warranty because you bought them used, second-hand so they can’t replace them outright for you (which they do for others in merited situations as you & I have seen on this board elsewhere).

Anyway, it seems to me they did the best they could under the circumstances. Just buy new devices directly from them! If you sign up for the email newsletter on their site, you get an instant discount code too.

1 Like

I don’t know what has been tried so far, but here’s the outline of my procedure for fixing bricked Bluetooth firmware on the GTM in case you find it useful. I have sent a more detailed write-up to the wiki, should go live in a few days.

  • get an Android device
  • sideload a copy of the nRF toolbox from https://github.com/NordicSemiconductor/Android-nRF-Toolbox
  • on your computer, download a copy of the goTenna APK (same version you were running at the time of the fupdate) and unzip it
  • transfer only the files nrf52_*.zip to the Android device
  • in the nRF toolbox, select the nrf52_phase1 file, then select the bricked GTM device (DFUTARG), click Upload and wait
  • repeat for the remaining files in order
  • if successful, the GTM will reboot in an operational state

Standard disclaimer applies, the instructions above may fubar your GTM, but since you’re already there, why not give it a desperate try :slight_smile: and let us know how you go.

5 Likes

Hello Armin!

Thank you very much for your recommendations! I will try to use them and report the result.

I have a few questions:

  1. I updated the GM firmware via my Iphone 6. Why do I need an APK Gotenna under Android phone?
  2. I have already tried to use bluetooth device scanners and noted that the GM activates the RF signal only for 3-4 seconds (I’m not sure that I will have time to transfer something from the files.
  3. I did not find the file “nrf52 _ *. zip” on the link to Github indicated. There are only the following:
    ble_app_hrs_dfu_all_in_one_sdk_v9_0
    ble_app_hrs_dfu_s110_v8_0_0_sdk_v8_0
    ble_app_hrs_dfu_s110_v8_0_0_sdk_v9_0

I’m sorry if my message was a bit unclear on this. The nrf52* files (Bluetooth firmware) that you need are located inside the gotenna APK.
You need to unzip the gotenna APK in order to retrieve these files. This step is best done on a normal computer.

You will need an Android device >4.4 to run the nRF toolbox utility from Github. The utility talks with the Bluetooth chip in DFU mode and doesn’t require pairing.

1 Like

I do not have time to copy files. The device reports: DFU device disconnetcted.

DFU mode is activated only 3-4 seconds, then I do not see the device with a scanner. Maybe you can transfer the file through usb?

Sounds like a different problem then. What firmware version did you say you were running?

1.1.18 looks like a possible typo, did you mean 1.1.8 or 1.1.12?

I tried to update the firmware to version 1.1.8

Please consider correcting the version typo in your message at the top of this thread. You can edit your message using the little pencil icon.

You’re lucky, version 1.1.8 has a serial console.
Try to plug your powered on GTM into a USB port, start a serial terminal at 9600/8n1/noecho, type “log” and press Enter. You should see a lot of system messages, some of them relevant to your problem. “NRF52” and “DFU” are some keywords to look for.

below is the console output. What should I choose?

[22:58:36.569] log
[22:58:36.585] [320708-9651, USB, CLI] Logs enabled
[22:58:52.259] ?
[22:58:52.277] [336398-15690, USB, CLI] ?: Print a help message
[22:58:52.279] [336398-000, USB, CLI] ps: Print useful task stats
[22:58:52.280] [336398-000, USB, CLI] touch: Send a message to all tasks. May fix a stuck task
[22:58:52.281] [336398-000, USB, CLI] version: Print firmware version
[22:58:52.281] [336398-000, USB, CLI] power: Reset the device
[22:58:52.282] [336398-000, USB, CLI] rstreason: Print the reason for the last reset, and any fault info
[22:58:52.283] [336398-000, USB, CLI] rst_stats: Reset system wide messaging stats
[22:58:52.284] [336398-000, USB, CLI] get_stats: Print system wide messaging stats
[22:58:52.285] [336399-001, USB, CLI] shout: Send a shout
[22:58:52.285] [336399-000, USB, CLI] morse: Send morse <text_to_send>
[22:58:52.286] [336399-000, USB, CLI] emergency: Send an emergency
[22:58:52.291] [336399-000, USB, CLI] beacon: Enable or disable the Emergency Beacon
[22:58:52.293] [336399-000, USB, CLI] set gid: Set the GID, specify with decimal
[22:58:52.294] [336399-000, USB, CLI] set_pub: Set the pub key
[22:58:52.295] [336399-000, USB, CLI] set_gidhex: Set the GID, specify with hex string
[22:58:52.295] [336399-000, USB, CLI] clear gid: Clear any configured GIDs
[22:58:52.296] [336399-000, USB, CLI] del gid: Delete a specific GID
[22:58:52.296] [336399-000, USB, CLI] disp-gid: Print all currently configured GIDs
[22:58:52.297] [336399-000, USB, CLI] count 0: Reset the counter responsible for e.g. timestamps
[22:58:52.297] [336399-000, USB, CLI] bat: Print the current battery level in ADC units
[22:58:52.298] [336399-000, USB, CLI] flash: Check ext flash OK
[22:58:52.298] [336399-000, USB, CLI] clrflash: Erase the external flash
[22:58:52.299] [336399-000, USB, CLI] clrmsg: Delete all currently stored messages
[22:58:52.299] [336400-001, USB, CLI] print_filter : Filter selected print messagelevels
[22:58:52.300] [336400-000, USB, CLI] set_serial : Set the BLE serial ID
[22:58:52.301] [336400-000, USB, CLI] get_serial: Get the BLE serial ID
[22:58:52.301] [336400-000, USB, CLI] dev_info: Get the device info
[22:58:52.301] [336400-000, USB, CLI] getmsg: Get the first message from the receive FIFO and print it with textified fields
[22:58:52.302] [336400-000, USB, CLI] getmsgbinary: Get the first message from the receive FIFO and print it in its binary representation
[22:58:52.303] [336400-000, USB, CLI] getmsgcount: Print whether there are more messages
[22:58:52.303] [336400-000, USB, CLI] delmsg: Delete the first message in the Rx FIFO
[22:58:52.304] [336400-000, USB, CLI] getdiag: Print diag info
[22:58:52.304] [336400-000, USB, CLI] clrdiag: Reset diag info
[22:58:52.310] [336400-000, USB, CLI] rstdata: Reset the device to factory settings
[22:58:52.311] [336400-000, USB, CLI] force-mode : Forcibly change the operation mode of the device
[22:58:52.312] [336400-000, USB, CLI] getgid: Print the primary GID and its public key
[22:58:52.312] [336401-001, USB, CLI] setfreqs : Configure device frequency settings
[22:58:52.313] [336401-000, USB, CLI] txpower : Configure device output power
[22:58:52.313] [336401-000, USB, CLI] relay_hist : Configure whether the relay should keep history
[22:58:52.314] [336401-000, USB, CLI] relay_led : Configure relay LED behavior
[22:58:52.315] [336401-000, USB, CLI] relay_print : Control whether relayed messages should be printed
[22:58:52.315] [336401-000, USB, CLI] relay_method : Set the Relay/Trx protocol method: 1 or 2
[22:58:52.316] [336401-000, USB, CLI] relay_info: Print the configurable relay settings
[22:58:52.316] [336401-000, USB, CLI] relay_reset: Reset the relay data base
[22:58:52.316] [336401-000, USB, CLI] trx_hist : Configure whether the TRX should keep a history of message hashes
[22:58:52.317] [336401-000, USB, CLI] trx_turbo : Set TRX turbo mode: trx_turbo <shout_value>
[22:58:52.317] [336401-000, USB, CLI] trx_corrupt: Set TRX corruption mode: trx_corrupt <packet_type> <number_byte>
[22:58:52.318] [336401-000, USB, CLI] trx_intf: Force the TRX state machine into V4_INTF_TX
[22:58:52.318] [336401-000, USB, CLI] trx_time: Force a timesync across the network
[22:58:52.319] [336401-000, USB, CLI] trx_rate: []: Change the bit rate
[22:58:52.319] [336402-001, USB, CLI] trx_prop_set: : write a set property cmd with group, number, value all in hex
[22:58:52.320] [336402-000, USB, CLI] relay_mode: []: Change the relay_mode
[22:58:52.320] [336402-000, USB, CLI] relay_flood: : request a full flood
[22:58:52.321] [336402-000, USB, CLI] relay_prune: : request a prune flood
[22:58:52.321] [336402-000, USB, CLI] relay_prune_rule: : set prune threshold
[22:58:52.322] [336402-000, USB, CLI] relay_bcast: : enable broadcast shout
[22:58:52.322] [336402-000, USB, CLI] trx_reset: Reset the TRX state machine
[22:58:52.323] [336403-001, USB, CLI] trx_calib: Request a Si4460 fine calibration
[22:58:52.323] [336403-000, USB, CLI] ctx : Run a continuous transmission on a channel or frequency
[22:58:52.324] [336403-000, USB, CLI] tx-ber : Transmit a PN9 pattern to check bit error rate on a channel or frequency
[22:58:52.329] [336403-000, USB, CLI] ber: Transmit/Receive a PN9 pattern to check bit error rate on a channel or frequency
[22:58:52.329] [336403-000, USB, CLI] rx-ber : Expect to receive a PN9 pattern, to check RX BER on a channel or frequency
[22:58:52.330] [336403-000, USB, CLI] temp: Print the RF chain temperature
[22:58:52.330] [336403-000, USB, CLI] set_region : Set geofencing (will change frequencies and power on applicable configs)
[22:58:52.331] [336403-000, USB, CLI] rssi : Print the RSSI on the specified channel or frequency
[22:58:52.331] [336403-000, USB, CLI] rf_spi : Print the status of the RF SPI bus
[22:58:52.332] [336403-000, USB, CLI] set_pap : immediately set the Si4460 pap, but dont store the config
[22:58:52.332] [336403-000, USB, CLI] ant : Configure whether an antenna or test connector is expected
[22:58:52.333] [336403-000, USB, CLI] test : Disable or enable test mode (sleep)
[22:58:52.333] [336403-000, USB, CLI] z: Set test 2 with only one character
[22:58:52.333] [336404-001, USB, CLI] ble_state: Print various pieces of state for the BLE task
[22:58:52.334] [336404-000, USB, CLI] ble_dtm : Handle BLE DTM commands
[22:58:52.334] [336404-000, USB, CLI] ble_mac: Print the MAC address of the BLE
[22:58:52.335] [336404-000, USB, CLI] bluetooth : Enable or disable the bluetooth, and store the config
[22:58:52.335] [336404-000, USB, CLI] toggle_led : Enable or disable the LED globally and store the config
[22:58:52.335] [336404-000, USB, CLI] echo: Echo and flash
[22:58:52.336] [336404-000, USB, CLI] dumpfreqs: Print the current channel configuration
[22:58:52.336] [336404-000, USB, CLI] trx_info: Print the current trx configuration
[22:58:52.336] [336404-000, USB, CLI] trx_prop: Print the current trx properties
[22:58:52.336] [336404-000, USB, CLI] get_bcts: Print the BCTS that will be sent to a BLE client next
[22:58:52.337] [336404-000, USB, CLI] latched : Manipulate system latched errors
[22:58:52.337] [336404-000, USB, CLI] getsysinfo: Print system info as sent to the app
[22:58:52.337] [336404-000, USB, CLI] profile : Take a profiling action: start, stop, print, bin, reset
[22:58:52.338] [336404-000, USB, CLI] log: Toggle general logging to this interface
[22:58:52.338] [336405-001, USB, CLI] usbble : Allow BLE to be active when USB is connected and talking
[22:58:52.339] [336405-000, USB, CLI] lsble: Communicate with the NRF to get all GATTS statuses
[22:58:52.339] [336405-000, USB, CLI] corrupt_message: Corrupt the RAM copy of a message to test a handler
[22:58:56.940] [341070-4665, TRX, DEBUG] Si4460 temperature=39
[22:58:56.946] [341070-000, TRX, DEBUG] RSSI[1]: avg=-123 dBm, last=-119 [min=-130, max=-115], num=16
[22:58:56.949] [341070-000, TRX, DEBUG] RSSI[25]: avg=-124 dBm, last=-126 [min=-130, max=-117], num=16
[22:58:56.951] [341070-000, TRX, DEBUG] RSSI[49]: avg=-78 dBm, last=-75 [min=-95, max=-68], num=16
[22:58:56.952] [341071-001, TRX, DEBUG] FSM: state=FSM_RX_AWAKE, stage=0
[22:58:56.954] [341075-004, TRX, DEBUG] FSM: state=FSM_RX_AWAKE, stage=0
[22:58:56.963] [341079-004, TRX, DEBUG] FSM: state=FSM_RX_AWAKE, stage=0
[22:58:56.964] [341083-004, TRX, DEBUG] FSM: state=FSM_RX_SLEEP, stage=0

1 Like

maybe rstdata command?

bluetooth probably does not work. How to turn it on?

[00:08:10.213] ble_state
[00:08:10.230] [900225-19780, USB, INFO] BLE_STATE: bluetooth_status_flag=disabled
[00:08:10.230] [900225-000, USB, INFO] BLE_STATE: forced_off=no
[00:08:10.232] [900225-000, USB, INFO] BLE_STATE: nrf52_connect_status=not_started
[00:08:10.233] [900225-000, USB, INFO] BLE_STATE: ble_enable_state=UNKNOWN
[00:08:10.233] [900225-000, USB, INFO] BLE_STATE: last_bcts_sent_at=0
[00:08:10.234] [900225-000, USB, INFO] BLE_STATE: last_msg_sent_at=0
[00:08:10.235] [900225-000, USB, INFO] BLE_STATE: last_msg_recvd_at=0
[00:08:10.235] [900225-000, USB, INFO] UUID type 0x00, srv handle 0x0000, conn handle 0x0000
[00:08:10.236] [900225-000, USB, INFO] BCTS char handles: value=0x0000, user_desc=0x0000, cccd=0x0000, sccd=0x0000
[00:08:10.237] [900225-000, USB, INFO] VATS char handles: value=0x0000, user_desc=0x0000, cccd=0x0000, sccd=0x0000
[00:08:10.238] [900225-000, USB, INFO] VATC char handles: value=0x0000, user_desc=0x0000, cccd=0x0000, sccd=0x0000
[00:08:10.239] [900225-000, USB, INFO] first handle=0x0000, last handle=0x0000
[00:08:10.239] [900225-000, USB, INFO] Current mtu 0, payload len 0, bcts enabled0

and next

23:58:46.654] [336632-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:58:46.655] [336632-000, USB, CLI] Counters: attempt 185800412 sleep 0 wait 0, denied by test=0 trx=0 led=0 print=0 usb=0 espi=0
[23:58:46.656] [336633-001, USB, INFO] Flash CB status: maxNumMsgAllowed=230, file_available_capacity=230
[23:58:46.656] [336633-000, USB, INFO] Flash CB status: totalMsgCount=0, msgDeletedCount=0 (diff=0), num_stored=0
[23:58:46.657] [336633-000, USB, INFO] Flash CB status: writableMsgAddress=0x32c000 (in sector 812), firstValidStoredMsg=0x32c000 (in sector 812)
[23:58:46.657] [336633-000, USB, INFO] LED: Last event raised: LED_EVENT_DFU by /var/lib/jenkins/workspace/Firmware-Triggered-Builder/goTenna/Sources/Events.c:254
[23:58:46.658] [336633-000, USB, INFO] LED: Last execution: mask=0x4000, event=LED_EVENT_DFU, pred =0, exec dfu_flash
[23:58:46.659] [336633-000, USB, INFO] LED: State: held=0, in relay confirm=0, current level 0
[23:58:46.659] [336635-002, USB, INFO] Power handler: via_pmic=1, via_usb=0, via_cpu=0