I bought a Brother MFC-L2710DW multi-function laser printer and scanner. I bought it in Germany. When I turned on the machine for the first time it asked me to pick my country. The only options were Germany and Austria.
There was no option to change the language on the LCD panel away from German. I guessed that the firmware was region-specific and I would have to load a different one. Turns out I was wrong, but more on that later.
After much searching and I came across a thread on printerforums.net which led me to the solution: Maintenance mode.
I wanted to summarise the solution and include the region codes for reference.
- Wake up the machine by pressing the Stop button.
- Press: Menu, Start, Up, Up, Up, Up (or in icon speak: 🛠 Start 🠱🠱🠱🠱).
- Now your machine should say MAINTENANCE.
- Press 74 and then the existing code is displayed.
- Enter the new code (see below).
- Press Start to accept the change. PARAMETER INIT briefly displays.
- Press 99 to apply changes and restart the machine.
If you accidentally erase the A, you can re-enter it using #1.
Region codes for the MFC-L2710DW only. Each machine model has its own region codes. See the archive on manualslib for other models.
* Picking this will prompt you for a more specific country when the machine resets.
Dead end: changing the firmware
As mentioned, my first thought was that the firmware on the machine was region-specific and I’d have to download one and shoe-horn it onto the printer.
I setup mitmproxy including trusting its SSL root certificate on my machine that was running the Brother Firmware Updater. This allowed me to inspect the traffic to their update server.
I was hoping there would be some obvious region marker in the request for the firmware
update or in the filename, such as
DE for Germany. There was nothing obvious.
It was at this point I searched around more and found the proper solution above. In case it’s interesting for someone, I wanted to preserve my findings from the firmware updater.
These are what the captured streams looked like:
POST https://firmverup.brother.co.jp/kne_bh7_update_nt_ssl/ifax2.asmx/verCheck accept: */* content-type: application/x-www-form-urlencoded accept-encoding: gzip;q=1.0, compress;q=0.5 user-agent: Brother Firmware Update Tool/1.0 (jp.ne.rio.FirmwareUpdateTool; build:1; OS X 10.16.0) Alamofire/4.8.2 accept-language: en-GB;q=1.0 content-length: 362 <?xml version="1.0" encoding="UTF-8"?> <REQUESTINFO> <FIRMUPDATETOOLINFO> <FIRMCATEGORY>MAIN</FIRMCATEGORY> <OS>MAC_10.10</OS> <AREA>ALL</AREA> <INSPECTMODE>null</INSPECTMODE> </FIRMUPDATETOOLINFO> <FIRMUPDATEINFO> <MODELINFO> <NAME></NAME> </MODELINFO> </FIRMUPDATEINFO> </REQUESTINFO>
This request then repeated again with
Both times, the API responded with a list of every available model.
Next, the tool sent information about the device and received a response with a firmware update file download URL:
POST https://firmverup.brother.co.jp/kne_bh7_update_nt_ssl/ifax2.asmx/fileUpdate accept: */* content-type: application/x-www-form-urlencoded accept-encoding: gzip;q=1.0, compress;q=0.5 user-agent: Brother Firmware Update Tool/1.0 (jp.ne.rio.FirmwareUpdateTool; build:1; OS X 10.16.0) Alamofire/4.8.2 accept-language: en-GB;q=1.0 content-length: 803 <?xml version="1.0" encoding="UTF-8"?> <REQUESTINFO> <FIRMUPDATETOOLINFO> <FIRMCATEGORY>MAIN</FIRMCATEGORY> <OS>MAC_10.10</OS> <OSVERSION>10.16</OSVERSION> <INSPECTMODE>null</INSPECTMODE> </FIRMUPDATETOOLINFO> <FIRMUPDATEINFO> <MODELINFO> <SELIALNO>E78295G1N405094</SELIALNO> <NAME>MFC-L2710DW series</NAME> <SPEC>0A03</SPEC> <DRIVER>MFC-L2710DW series</DRIVER> <FIRMINFO><FIRM> <ID>MAIN</ID> <VERSION>U2104191922</VERSION> </FIRM><FIRM> <ID>SUB5</ID> <VERSION>1.04</VERSION> </FIRM></FIRMINFO> </MODELINFO> <DRIVERCNT>1</DRIVERCNT> <LOGNO>2</LOGNO> <ERRBIT></ERRBIT> <NEEDRESPONSE>1</NEEDRESPONSE> </FIRMUPDATEINFO> </REQUESTINFO>
<?xml version="1.0" encoding="UTF-8" ?> <RESPONSEINFO> <FIRMUPDATEINFO> <VERSIONCHECK>0</VERSIONCHECK> <MEMORYVERSION>a</MEMORYVERSION> <FIRMID>MAIN</FIRMID> <LATESTVERSION>V2106151824</LATESTVERSION> <PATH>http://update-akamai.brother.co.jp/CS/D00L6U_V.djf</PATH> <DLTIME>65000</DLTIME> </FIRMUPDATEINFO> </RESPONSEINFO>
With the benefit of hindsight I realise that the
was telling the server what region my device was. I tried re-running this request
with the UK region code
0A04 which responded with the same update file path,
strongly suggesting that the firmware is the same for all (or most) regions.
The firmware file name led me to a list of all Brother firmware files on the Brother Germany website.