sedrubal / brother_printer_fwupd

Script to update the firmware of some Brother printers
https://pypi.org/project/brother_printer_fwupd/
GNU General Public License v3.0
30 stars 5 forks source link

MFC-L3750CDW #19

Closed skissane closed 8 months ago

skissane commented 8 months ago

This tool doesn't work with MFC-L3750CDW – but https://github.com/CauldronDevelopmentLLC/oh-brother does

The difference seems to be in the XML request being sent:

  1. In <MODELINFO>, your tool sends <SERIALNO></SERIALNO>, that other tool sends <SELIALNO> (yes terrible spelling is necessary) with the actual printer serial as contents
  2. Your tools sends <DRIVER></DRIVER>, theirs sends <DRIVER>EWS</DRIVER>

Your tool doesn't get back a response, that other tool gets something like this:

<?xml version="1.0" encoding="UTF-8" ?><RESPONSEINFO><FIRMUPDATEINFO><VERSIONCHECK>0</VERSIONCHECK><MEMORYVERSION>a</MEMORYVERSION><FIRMID>MAIN</FIRMID><LATESTVERSION>ZD2307031905</LATESTVERSION><PATH>http://update-akamai.brother.co.jp/CS/D00KJY_ZD.djf</PATH><DLTIME>180000</DLTIME></FIRMUPDATEINFO></RESPONSEINFO>
sedrubal commented 8 months ago

Thank you very much! :tada:

I published a new version (0.6.0), which sends a request with the old XML (because it worked before for some models) and if it fails, if applies the modifications that you mentioned. With this changes, I could successfully download the firmware for MFC-L3750CDW.

dlenski commented 6 months ago

As described in https://github.com/sedrubal/brother_printer_fwupd/issues/20#issuecomment-2078379285, this hack was also necessary for my HL-L2360DW printer.

  1. In <MODELINFO>, your tool sends <SERIALNO></SERIALNO>, that other tool sends <SELIALNO> (yes terrible spelling is necessary) with the actual printer serial as contents
  2. Your tools sends , theirs sends EWS

At least for my printer, the "SELIALNO" misspelling isn't necessary to be able to fetch its firmware files, only the <DRIVER>EWS</DRIVER> change is needed.

Given that https://github.com/sedrubal/brother_printer_fwupd/commit/565ef037ea8fd9ccc6bd0b03dd7c18120f7f17e6 didn't actually implement sending the printer's serial number as the tag contents, and that some of Brother's own tools send it and others don't, it's a pretty good indication that the SERIALNO/SELIALNO bit is not necessary.

sedrubal commented 6 months ago

Thanks @dlenski for this hint. I'll have a look 😉