Again, the serial number thing might be specific to the Minimaker. XYZprint tries to download http://xyzwebsite.blob.core.windows.net/sw-mmof/SN.DAT and if it succeeds and finds a match, it will seemingly only proceed with a downgrade to 1.1.4. At least that’s what it did for me, even after I updated to 3.2.4, as long as the printer had its original serial number.
As can be seen in the Open Tag Firmware PDF from XYZ, upgrading to 3.2.4 clears the unique part of the serial number (with 0xFF bytes). So it should be restored using the other tools linked to in the PDF for the ”open tag” to be properly recognized. However, to circumvent the serial number check, I tweaked the serial number slightly.
I noticed that the serial number my machine responded with differed slightly from that printed on a sticker on the machine. Specifically, the ”ZZX” part from the sticker was ”EU4”, so I assume ”ZZ” gets replaced with a country or region code. I had a hunch the region could be important, so I kept that but changed the ”4” to ”X”. This worked.
So now you have a choice. You can either extract the 3.2.4 firmware from the exe file, as I did, and again use the ”XYZ Firmware Flash Tool”, then set a tweaked serial number. Or you can try to fool XYZprint, in a couple of different ways, and let it do the update.
If you choose to fool XYZprint, you need to prevent the matching of serial numbers. I have only partly tried this because I went the other route, but in principle it should work. One obvious way is to change the serial number before the update, as you’ll have to do after the update anyway.
But the other way is to prevent download of the ”real” SN.DAT file. Simply turning the network off might initially seem to work, at least it did for me, as XYZprint suggested the update to 3.2.4. But the update couldn’t be completed. I’m not sure why, but do know that XYZprint tries some HTTPS api calls to developer.xyzprinting.com, and might have gotten stuck there.
So, an option could be to point xyzwebsite.blob.core.windows.net somewhere else, typically by editing the hosts file (”C:\Windows\system32\drivers\etc\hosts" on Windows) to point it to localhost. This may or may not be sufficient, as it keeps trying to access port 80 forever. You could start a HTTP server to make it stop though. Something like ”python3 -m http.server 80” in an empty directory could suffice. It stops trying after a 404. Alternatively, an empty ”sw-mmof/SN.DAT” file might allow the desired code path. (SN.DAT normally contain just lower case ASCII hex digits.)
Sorry, that wasn’t so brief, but I hope it helps.