Skip to main content

Script to update the firmware of some Brother printers (e. g. MFC).

Project description

Brother Printer Firmware Update Tool

Script to update the firmware of some Brother printers (e.g. MFC).

Idea:

Brother provides drivers etc. for Linux but when you want to update the firmware of your printer, Brother only provides ugly programs for Windows or Mac OS. I think, you should do firmware upgrades from time to time, because the supported printers have advanced network functionality, like SNMP, HTTP Web Management UI, and much more. Some of them can be connected with Ethernet and some of them with WiFi. The more features a system has, the greater is the risk of bugs.

You could try to use the official tools. You could try to run the Windows EXE in Wine for example. First it seemed to work, but then it crashed - like almost always I tried to run programs in wine. You could also extract the jar from the Mac OS DMG as described here. But unfortunately this tool didn't find my printer and I had no chance to debug the problems as it didn't give me any hint, what it is trying to do.

Then I found blog posts like this, that described a way to update the firmware with only standard Linux tools. I tried it and it worked :tada:

To make it a bit easier, I wrote this simple script.

See also

What the script does:

  1. Optional (if no IP is given): Discover the printer using MDNS
  2. Get printer info (like model name, firmware versions, etc.) with SNMP (v2c)
  3. Query the firmware download URL from Brother API server
  4. Download the firmware
  5. Upload the firmware to the printer over port 9100 (PDL-Datastream / jetdirect)

Note: Make sure the required protocols are enabled in the printer settings

Tested with:

  • DCP-9020CDW
  • DCP-9022CDW
  • HL-5370DW
  • MFC-9142CDN
  • MFC-9332CDW
  • MFC-L3750CDW

Usage

A: Run package using pipx:

pipx run brother-printer-fwupd

B: Install package using pip:

pip install --user --upgrade brother-printer-fwupd

If this does not work, try pip install --user --upgrade brother_printer_fwupd.

C: Development installation:

  1. Clone the repo
  2. Install system dependencies: libxslt-dev, libxml2-dev
  3. uv sync --all-extras
  4. uv run brother-printer-fwupd --help
  5. uv run brother-printer-fwupd-autodiscover --help
  6. uv run brother-printer-fwupd-snmp-info --help

Use at your own risk!™

Contributions welcome.

Unit tests

uv run tox

License

© 2025 sedrubal (GPLv3)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

brother_printer_fwupd-0.8.0.tar.gz (29.7 kB view details)

Uploaded Source

Built Distribution

brother_printer_fwupd-0.8.0-py3-none-any.whl (32.0 kB view details)

Uploaded Python 3

File details

Details for the file brother_printer_fwupd-0.8.0.tar.gz.

File metadata

File hashes

Hashes for brother_printer_fwupd-0.8.0.tar.gz
Algorithm Hash digest
SHA256 02730520e97c46d02d17e8063681fa0c81431d5f48ecacd8af5319bd28a16fe6
MD5 9285eb3138343d486c116ec972883514
BLAKE2b-256 0f9a4d415f189b8d524738b25d9d86c51b377e85989c4e38c9c614ddf73b4938

See more details on using hashes here.

File details

Details for the file brother_printer_fwupd-0.8.0-py3-none-any.whl.

File metadata

File hashes

Hashes for brother_printer_fwupd-0.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e17ac1a96defb5862d5beea137dc658e09b7b461af334d22044d5b12cd8cb3bc
MD5 9383a4459c19c0430c59e8f9df378ee1
BLAKE2b-256 f7ee6e2d849bada002c97181c6a32a1c3e2d2ba2a7f77d11030ec103565657b8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page