Old Digium-era 1.4.2.1 D70 Firmware update failed

Hello,

I’m testing a recent FreePBX 17 with its embedded EPM module and an old Digium-era D70 phone. This one has 1.4.2.1 firmware. If I’m not mistaken, this phone is binded to an internal extension number.

In EPM, I selected 1.83 value in Firmware Slot 1 field and left Firmware Slot 2 field empty.

When connecting it to a switch, I can see “Updating phone firmware” progressing up to 236% then “The firmware update failed” message.

How can I debug or work around this ? My plan would be to either skip firwmare updating entirely, or configure this phone to upgrade to a compatible firmware as I hope such firmware exists.

Best regards

I don’t have one of those phones myself BUT assuming this is proper firmware for it, I have had phones randomly fail firmware updates because the flash chip in the phone has broken.

Most flash out there comes in 2 flavors NAND and NOR. NAND flash is error correcting so when a phone uses it they can just write out a firmware file to it and if a bit fails the chip takes care of it. However, as bits keep failing and the chip has to do more and more substitutions it eventually runs out of spare room then basically goes into read-only mode. In that case you will see this kind of problem during a firmware update - the flash chip will accept a “write” but then ignore it completely - so you see a firmware update progress bar to a certain point then a failure message when the write is “completed” and the update process then attempts to check the CRC which of course fails because the phone firmware hasn’t actually changed at all.

If you keep trying to force it eventually if the NAND chip relents and accepts an actual write, then it will likely hit the failing bit and then trash the entire firmware update and then you will have a non-working phone.

Some phone makers do a thing where they partition the flash to 2 banks and will only write the inactive bank then switch booting over to it when the write is completed and checks out. But then if the inactive bank develops an uncorrectable bit error the same thing happens - the alternate bank fails a write and the phone won’t allow you to write over the active bank - so you are stuck with the old firmware.

The same exact thing happened with reflashing routers to dd-wrt or openwrt or fresh tomato. This is just one of the things that comes with the territory of old gear that the original owners never bothered upgrading during it’s warranty lifetime.

The D70 runs for around $30 off Ebay. If I was in your shoes I would just buy another one and see if it updates or not. If it does then ewaste the failing phone. If not then I’d assume I was running into an issue where the firmware updates need to be stepped and you have to update to an intermediate firmware before updating to 1.83

I restarted my FreePBX instance from scratch and then, for an unknown reason my old D70 could update itself to firmware 2.9.25.

So obviously, my previous FreePBX install didn’t provide the files it should.

Unfortunately, I can’t access my previous FreePBX anymore (its disk crashed) so I can’t investigate.

Thanks for replying.

When you do a new FreePBX install from scratch it automatically loads all of the Sangoma phone firmware updates into the tftp server directory under Debian and configures the tftp server to serve them out. I think the installer copies those files off of Sangoma’s server so possibly during your testing install of FreePBX it got a bad file that didn’t match CRC? Glad you got it sorted out!