[Nokia 7.1 Questions & Answers] weslowsk:
I haven't taken out the battery yet. I wanted to try a few more things and gather more diagnostic data.

This happens after the device hasn't been plugged into the computer for several minutes, then plugging the device into the computer, not holding any physical buttons, and waiting about 60 seconds:

Waiting for EDL device
/dev/bus/usb/003/012
HELLO version: 0x2 compatible: 0x1 max_len: 1024 mode: 0
READ64 image: 13 offset: 0x0 length: 0x40
READ64 image: 13 offset: 0x40 length: 0xe0
END OF IMAGE image: 13 status: 40
received non-successful result

If I unplug the device, don't wait several minutes, and then plug it in again, I instantly get this response:

Waiting for EDL device
/dev/bus/usb/003/014

Through trial and error, I discovered that I don't have to wait "several minutes" to plug it in again to get the "HELLO" response. Instead, while the device is unplugged, I can hold the power button for about 10 seconds and then wait a few more seconds. This seems to put it back into that original state (powered off?). Plugging it in again and then waiting the obligatory 60 seconds will yield the same result:

Waiting for EDL device
/dev/bus/usb/003/012
HELLO version: 0x2 compatible: 0x1 max_len: 1024 mode: 0
READ64 image: 13 offset: 0x0 length: 0x40
READ64 image: 13 offset: 0x40 length: 0xe0
END OF IMAGE image: 13 status: 40
received non-successful result

After reading some articles, I thought I would try some different qdl parameters. I changed B2N-0-415C-devcfg.mbn to B2N-0-415C-prog_emmc_ufs_firehose_Sdm660_ddr.elf.

I saw some examples out there where an .elf file was passed instead of the .mbn and I also saw some .mbn files passed that had filenames looked more like the .elf file I had (i.e. "prog", "firehose", etc.).

So, that's why I changed that.

Just to be clear, here's what my qdl command looks like now:

sudo /home/kevin/HDD1/git/android/Qualcomm/qdl/qdl --debug --include '/mnt/HDD1/temp/FIHSW_CTL-415C-0-00WW-B03_600WW_10_20200501.full.lzma2.786e65af1f0e0b8bb0077f8de8e2b3ed8190435e0f8c1b0031b7ec90abd5785c' '/mnt/HDD1/temp/FIHSW_CTL-415C-0-00WW-B03_600WW_10_20200501.full.lzma2.786e65af1f0e0b8bb0077f8de8e2b3ed8190435e0f8c1b0031b7ec90abd5785c/B2N-0-415C-prog_emmc_ufs_firehose_Sdm660_ddr.elf' '/mnt/HDD1/temp/FIHSW_CTL-415C-0-00WW-B03_600WW_10_20200501.full.lzma2.786e65af1f0e0b8bb0077f8de8e2b3ed8190435e0f8c1b0031b7ec90abd5785c/B2N-1-415C-rawprogram0.xml' '/mnt/HDD1/temp/FIHSW_CTL-415C-0-00WW-B03_600WW_10_20200501.full.lzma2.786e65af1f0e0b8bb0077f8de8e2b3ed8190435e0f8c1b0031b7ec90abd5785c/B2N-1-415C-patch0.xml'

I was surprised by the response I got when plugged in the device again and waited the obligatory 60 seconds:

Waiting for EDL device
/dev/bus/usb/003/019
HELLO version: 0x2 compatible: 0x1 max_len: 1024 mode: 0
READ64 image: 13 offset: 0x0 length: 0x40
READ64 image: 13 offset: 0x40 length: 0x2d8
READ64 image: 13 offset: 0x1000 length: 0x1000
READ64 image: 13 offset: 0x2000 length: 0xac8
READ64 image: 13 offset: 0x3000 length: 0x1000
READ64 image: 13 offset: 0x4000 length: 0x1000
READ64 image: 13 offset: 0x5000 length: 0x1000
READ64 image: 13 offset: 0x6000 length: 0x1000
READ64 image: 13 offset: 0x7000 length: 0x1000
READ64 image: 13 offset: 0x8000 length: 0x1000
READ64 image: 13 offset: 0x9000 length: 0x1000
READ64 image: 13 offset: 0xa000 length: 0x1000
READ64 image: 13 offset: 0xb000 length: 0x1000
READ64 image: 13 offset: 0xc000 length: 0x1000
READ64 image: 13 offset: 0xd000 length: 0x1000
READ64 image: 13 offset: 0xe000 length: 0x1000
READ64 image: 13 offset: 0xf000 length: 0x1000
READ64 image: 13 offset: 0x10000 length: 0x1000
READ64 image: 13 offset: 0x11000 length: 0x1000
READ64 image: 13 offset: 0x12000 length: 0x1000
READ64 image: 13 offset: 0x13000 length: 0x1000
READ64 image: 13 offset: 0x14000 length: 0x1000
READ64 image: 13 offset: 0x15000 length: 0x1000
READ64 image: 13 offset: 0x16000 length: 0x1000
READ64 image: 13 offset: 0x17000 length: 0x1000
READ64 image: 13 offset: 0x18000 length: 0x1000
READ64 image: 13 offset: 0x19000 length: 0x1000
READ64 image: 13 offset: 0x1a000 length: 0x1000
READ64 image: 13 offset: 0x1b000 length: 0x1000
READ64 image: 13 offset: 0x1c000 length: 0x1000
READ64 image: 13 offset: 0x1d000 length: 0x1000
READ64 image: 13 offset: 0x1e000 length: 0x1000
READ64 image: 13 offset: 0x1f000 length: 0x1000
READ64 image: 13 offset: 0x20000 length: 0x1000
READ64 image: 13 offset: 0x21000 length: 0x1000
READ64 image: 13 offset: 0x22000 length: 0x1000
READ64 image: 13 offset: 0x23000 length: 0x1000
READ64 image: 13 offset: 0x24000 length: 0x1000
READ64 image: 13 offset: 0x25000 length: 0x1000
READ64 image: 13 offset: 0x26000 length: 0x1000
READ64 image: 13 offset: 0x27000 length: 0x1000
READ64 image: 13 offset: 0x28000 length: 0x1000
READ64 image: 13 offset: 0x29000 length: 0x1000
READ64 image: 13 offset: 0x2a000 length: 0x1000
READ64 image: 13 offset: 0x2b000 length: 0x1000
READ64 image: 13 offset: 0x2c000 length: 0x1000
READ64 image: 13 offset: 0x2d000 length: 0x1000
READ64 image: 13 offset: 0x2e000 length: 0x1000
READ64 image: 13 offset: 0x2f000 length: 0x1000
READ64 image: 13 offset: 0x30000 length: 0x1000
READ64 image: 13 offset: 0x31000 length: 0x1000
READ64 image: 13 offset: 0x32000 length: 0x1000
READ64 image: 13 offset: 0x33000 length: 0x1000
READ64 image: 13 offset: 0x34000 length: 0x1000
READ64 image: 13 offset: 0x35000 length: 0x1000
READ64 image: 13 offset: 0x36000 length: 0x1000
READ64 image: 13 offset: 0x37000 length: 0x1000
READ64 image: 13 offset: 0x38000 length: 0x1000
READ64 image: 13 offset: 0x39000 length: 0x1000
READ64 image: 13 offset: 0x3a000 length: 0x1000
READ64 image: 13 offset: 0x3b000 length: 0x1000
READ64 image: 13 offset: 0x3c000 length: 0x1000
READ64 image: 13 offset: 0x3d000 length: 0x1000
READ64 image: 13 offset: 0x3e000 length: 0x1000
READ64 image: 13 offset: 0x3f000 length: 0x1000
READ64 image: 13 offset: 0x40000 length: 0x1000
READ64 image: 13 offset: 0x41000 length: 0x1000
READ64 image: 13 offset: 0x42000 length: 0x1000
READ64 image: 13 offset: 0x43000 length: 0x1000
READ64 image: 13 offset: 0x44000 length: 0x1000
READ64 image: 13 offset: 0x45000 length: 0x1000
READ64 image: 13 offset: 0x46000 length: 0x1000
READ64 image: 13 offset: 0x47000 length: 0x1000
READ64 image: 13 offset: 0x48000 length: 0x1000
READ64 image: 13 offset: 0x49000 length: 0x1000
READ64 image: 13 offset: 0x4a000 length: 0x1000
READ64 image: 13 offset: 0x4b000 length: 0x1000
READ64 image: 13 offset: 0x4c000 length: 0x1000
READ64 image: 13 offset: 0x4d000 length: 0x1000
READ64 image: 13 offset: 0x4e000 length: 0x1000
READ64 image: 13 offset: 0x4f000 length: 0x1000
READ64 image: 13 offset: 0x50000 length: 0x1000
READ64 image: 13 offset: 0x51000 length: 0x1000
READ64 image: 13 offset: 0x52000 length: 0x1000
READ64 image: 13 offset: 0x53000 length: 0x1000
READ64 image: 13 offset: 0x54000 length: 0x1000
READ64 image: 13 offset: 0x55000 length: 0x1000
READ64 image: 13 offset: 0x56000 length: 0x1000
READ64 image: 13 offset: 0x57000 length: 0x1000
READ64 image: 13 offset: 0x58000 length: 0x1000
READ64 image: 13 offset: 0x59000 length: 0xa90
READ64 image: 13 offset: 0x59a90 length: 0x1000
READ64 image: 13 offset: 0x5aa90 length: 0x1000
READ64 image: 13 offset: 0x5ba90 length: 0x1000
READ64 image: 13 offset: 0x5ca90 length: 0x1000
READ64 image: 13 offset: 0x5da90 length: 0x1000
READ64 image: 13 offset: 0x5ea90 length: 0x1000
READ64 image: 13 offset: 0x5fa90 length: 0x1000
READ64 image: 13 offset: 0x60a90 length: 0x1000
READ64 image: 13 offset: 0x61a90 length: 0xfe8
READ64 image: 13 offset: 0x62a80 length: 0x1000
READ64 image: 13 offset: 0x63a80 length: 0x1000
READ64 image: 13 offset: 0x64a80 length: 0x1000
READ64 image: 13 offset: 0x65a80 length: 0x1000
READ64 image: 13 offset: 0x66a80 length: 0x1000
READ64 image: 13 offset: 0x67a80 length: 0x1000
READ64 image: 13 offset: 0x68a80 length: 0x1000
READ64 image: 13 offset: 0x69a80 length: 0x1000
READ64 image: 13 offset: 0x6aa80 length: 0x1000
READ64 image: 13 offset: 0x6ba80 length: 0x908
READ64 image: 13 offset: 0x6c390 length: 0x1000
READ64 image: 13 offset: 0x6d390 length: 0xe7c
READ64 image: 13 offset: 0x6e210 length: 0x1000
READ64 image: 13 offset: 0x6f210 length: 0x1000
READ64 image: 13 offset: 0x70210 length: 0x1000
READ64 image: 13 offset: 0x71210 length: 0x1000
READ64 image: 13 offset: 0x72210 length: 0x1000
READ64 image: 13 offset: 0x73210 length: 0x1000
READ64 image: 13 offset: 0x74210 length: 0x1000
READ64 image: 13 offset: 0x75210 length: 0x1000
READ64 image: 13 offset: 0x76210 length: 0x1000
READ64 image: 13 offset: 0x77210 length: 0x1000
READ64 image: 13 offset: 0x78210 length: 0x1000
READ64 image: 13 offset: 0x79210 length: 0x1000
READ64 image: 13 offset: 0x7a210 length: 0x1000
READ64 image: 13 offset: 0x7b210 length: 0x1000
READ64 image: 13 offset: 0x7c210 length: 0x1000
READ64 image: 13 offset: 0x7d210 length: 0x1000
READ64 image: 13 offset: 0x7e210 length: 0x1000
READ64 image: 13 offset: 0x7f210 length: 0x1000
READ64 image: 13 offset: 0x80210 length: 0x1000
READ64 image: 13 offset: 0x81210 length: 0x1000
READ64 image: 13 offset: 0x82210 length: 0x1000
READ64 image: 13 offset: 0x83210 length: 0x1000
READ64 image: 13 offset: 0x84210 length: 0x1000
READ64 image: 13 offset: 0x85210 length: 0x1000
READ64 image: 13 offset: 0x86210 length: 0x8e8
READ64 image: 13 offset: 0x86b00 length: 0x1000
READ64 image: 13 offset: 0x87b00 length: 0x1000
READ64 image: 13 offset: 0x88b00 length: 0x1000
READ64 image: 13 offset: 0x89b00 length: 0x1000
READ64 image: 13 offset: 0x8ab00 length: 0x1000
READ64 image: 13 offset: 0x8bb00 length: 0x1000
READ64 image: 13 offset: 0x8cb00 length: 0x1000
READ64 image: 13 offset: 0x8db00 length: 0x1000
READ64 image: 13 offset: 0x8eb00 length: 0x1000
READ64 image: 13 offset: 0x8fb00 length: 0x1000
READ64 image: 13 offset: 0x90b00 length: 0x1000
READ64 image: 13 offset: 0x91b00 length: 0x1000
READ64 image: 13 offset: 0x92b00 length: 0x1000
READ64 image: 13 offset: 0x93b00 length: 0x1000
READ64 image: 13 offset: 0x94b00 length: 0x1000
READ64 image: 13 offset: 0x95b00 length: 0x1000
READ64 image: 13 offset: 0x96b00 length: 0x1000
READ64 image: 13 offset: 0x97b00 length: 0x1000
READ64 image: 13 offset: 0x98b00 length: 0x1000
READ64 image: 13 offset: 0x99b00 length: 0x180
END OF IMAGE image: 13 status: 0
DONE status: 1
FIREHOSE READ: <?xml version="1.0" encoding="UTF-8" ?>
<data>
<log value="Binary build date: Apr 23 2020 @ 21:40:34"/>
</data>
LOG: Binary build date: Apr 23 2020 @ 21:40:34
FIREHOSE READ: <?xml version="1.0" encoding="UTF-8" ?>
<data>
<log value="Chip serial num: 0 (0x0)"/>
</data>
LOG: Chip serial num: 0 (0x0)
FIREHOSE READ: <?xml version="1.0" encoding="UTF-8" ?>
<data>
<log value="Supported Functions: program configure nop firmwarewrite patch setbootablestoragedrive ufs emmc power benchmark read getstorageinfo getsha256digest erase "/>
</data>
LOG: Supported Functions: program configure nop firmwarewrite patch setbootablestoragedrive ufs emmc power benchmark read getstorageinfo getsha256digest erase
qdl: failed to read: Connection timed out
FIREHOSE WRITE: <?xml version="1.0"?>
<data><configure MemoryName="ufs" MaxPayloadSizeToTargetInBytes="1048576" verbose="0" ZLPAwareHost="1" SkipStorageInit="0"/></data>

FIREHOSE READ: <?xml version="1.0" encoding="UTF-8" ?>
<data>
<log value="Calling usb_al_bulk_set_zlp_mode(TRUE) since ZlpAwareHost='1'"/>
</data>
LOG: Calling usb_al_bulk_set_zlp_mode(TRUE) since ZlpAwareHost='1'
FIREHOSE READ: <?xml version="1.0" encoding="UTF-8" ?>
<data>
<response value="ACK" MinVersionSupported="1" MemoryName="UFS" MaxPayloadSizeFromTargetInBytes="4096" MaxPayloadSizeToTargetInBytes="1048576" MaxPayloadSizeToTargetInBytesSupported="1048576" MaxXMLSizeInBytes="4096" Version="1" TargetName="MSM8996" DateTime="Apr 23 2020 - 21:40:34" />
</data>
[CONFIGURE] max payload size: 1048576
FIREHOSE WRITE: <?xml version="1.0"?>
<data><program SECTOR_SIZE_IN_BYTES="512" num_partition_sectors="5010" physical_partition_number="0" start_sector="585728" filename="B2N-0-415C-xbl.elf"/></data>

FIREHOSE READ: <?xml version="1.0" encoding="UTF-8" ?>
<data>
<log value="ERROR: Failed to initialize (open whole lun) UFS Device slot 0 partition 0"/>
</data>
LOG: ERROR: Failed to initialize (open whole lun) UFS Device slot 0 partition 0
FIREHOSE READ: <?xml version="1.0" encoding="UTF-8" ?>
<data>
<log value="ERROR: Failed to open the device 3 slot 0 partition 0"/>
</data>
LOG: ERROR: Failed to open the device 3 slot 0 partition 0
FIREHOSE READ: <?xml version="1.0" encoding="UTF-8" ?>
<data>
<log value="INFO: Device type 3, slot 0, partition 0, error 0"/>
</data>
LOG: INFO: Device type 3, slot 0, partition 0, error 0
FIREHOSE READ: <?xml version="1.0" encoding="UTF-8" ?>
<data>
<log value="WARN: Get Info failed to open 3 slot 0, partition 0, error 0"/>
</data>
LOG: WARN: Get Info failed to open 3 slot 0, partition 0, error 0
FIREHOSE READ: <?xml version="1.0" encoding="UTF-8" ?>
<data>
<log value="storage_device_get_num_partition_sectors FAILED!"/>
</data>
LOG: storage_device_get_num_partition_sectors FAILED!
FIREHOSE READ: <?xml version="1.0" encoding="UTF-8" ?>
<data>
<log value="parseSectorValue could not handle start_sector value"/>
</data>
LOG: parseSectorValue could not handle start_sector value
FIREHOSE READ: <?xml version="1.0" encoding="UTF-8" ?>
<data>
<response value="NAK" />
</data>
[PROGRAM] failed to setup programming

So, way more output, but still ends in failure.

Using sudo seems to be necessary because when I don't use it, I get responses like:

Waiting for EDL device
/dev/bus/usb/003/020

As opposed to the much longer responses when I use sudo.

Based on all this, I don't think it's necessary for me to disconnect the battery, as earlier suggested because I just changed a qdl parameter and that seemed to make a noticeable difference. Or, do I still need to disconnect the battery?

Any other thoughts? What else should I try? Different .mbn/.elf files? Is this looking like a hardware failure? How would I know?