{"id":21542705,"url":"https://github.com/sedrubal/brother_printer_fwupd","last_synced_at":"2025-04-07T09:19:38.524Z","repository":{"id":44576601,"uuid":"185090423","full_name":"sedrubal/brother_printer_fwupd","owner":"sedrubal","description":"Script to update the firmware of some Brother printers","archived":false,"fork":false,"pushed_at":"2025-01-05T01:56:07.000Z","size":367,"stargazers_count":45,"open_issues_count":1,"forks_count":5,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-31T07:08:27.086Z","etag":null,"topics":["brother","firmware","mfc","printer","snmp","updater"],"latest_commit_sha":null,"homepage":"https://pypi.org/project/brother_printer_fwupd/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sedrubal.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-05-05T22:41:01.000Z","updated_at":"2025-03-12T21:21:55.000Z","dependencies_parsed_at":"2024-05-20T21:49:05.896Z","dependency_job_id":"5f174361-1eb1-4ec1-8c3c-bd38a0980e0d","html_url":"https://github.com/sedrubal/brother_printer_fwupd","commit_stats":{"total_commits":36,"total_committers":5,"mean_commits":7.2,"dds":0.2777777777777778,"last_synced_commit":"ef079ecdbcd9a7dd4c07d282b77ea8370c6ee46a"},"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sedrubal%2Fbrother_printer_fwupd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sedrubal%2Fbrother_printer_fwupd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sedrubal%2Fbrother_printer_fwupd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sedrubal%2Fbrother_printer_fwupd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sedrubal","download_url":"https://codeload.github.com/sedrubal/brother_printer_fwupd/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247622983,"owners_count":20968575,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["brother","firmware","mfc","printer","snmp","updater"],"created_at":"2024-11-24T05:10:49.699Z","updated_at":"2025-04-07T09:19:38.501Z","avatar_url":"https://github.com/sedrubal.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Brother Printer Firmware Update Tool\n\nScript to update the firmware of some Brother printers (e.g. MFC).\n\n## Idea:\n\nBrother provides drivers etc. for Linux but when you want to update the firmware of your printer,\nBrother only provides ugly programs for Windows or Mac OS.\nI think, you should do firmware upgrades from time to time, because the supported printers have\nadvanced network functionality, like SNMP, HTTP Web Management UI, and much more.\nSome of them can be connected with Ethernet and some of them with WiFi.\nThe more features a system has, the greater is the risk of bugs.\n\nYou could try to use the official tools. You could try to run the Windows EXE in Wine for example.\nFirst it seemed to work, but then it crashed - like almost always I tried to run programs in wine.\nYou could also extract the jar from the Mac OS DMG as described [here](https://avandorp.wordpress.com/2009/07/21/brother-printer-firmware-update-with-linux-brother-druckerfirmware-update-mit-linux/).\nBut unfortunately this tool didn't find my printer and I had no chance to debug the problems as it\ndidn't give me any hint, what it is trying to do.\n\nThen I found blog posts like\n[this](https://www.earth.li/~noodles/blog/2015/11/updating-hl3040cn-firmware.html), that described a\nway to update the firmware with only standard Linux tools.\nI tried it and it worked :tada:\n\nTo make it a bit easier, I wrote this simple script.\n\n## See also\n\n- https://github.com/CauldronDevelopmentLLC/oh-brother\n- https://cbompart.wordpress.com/2014/05/26/brother-printer-firmware-part-2/\n\n## What the script does:\n\n1. Optional (if no IP is given): Discover the printer using MDNS\n2. Get printer info (like model name, firmware versions, etc.) with SNMP (v2c)\n3. Query the firmware download URL from Brother API server\n4. Download the firmware\n5. Upload the firmware to the printer over port 9100 (PDL-Datastream / jetdirect)\n\n*Note: Make sure the required protocols are enabled in the printer settings*\n\n## Tested with:\n\n- DCP-9020CDW\n- DCP-9022CDW\n- HL-5370DW\n- MFC-9142CDN\n- MFC-9332CDW\n- MFC-L3750CDW\n\n## Usage\n\n### A: Run with docker / podman:\n\nThe image is published on [hub.docker.com](https://hub.docker.com/r/therealsedrubal/brother-printer-fwupd).\n\n```bash\npodman run --rm -it --network=host therealsedrubal/brother-printer-fwupd\n```\n\n### B: Run package using `pipx`:\n\n```shell\npipx run brother-printer-fwupd[autodiscover]\n```\n\n### C: Install package using `pip`:\n\n```shell\npip install --user --upgrade brother-printer-fwupd[autodiscover]\n```\n\n*If this does not work, try `pip install --user --upgrade brother_printer_fwupd`.*\n\n### D: Development installation:\n\n1. Clone the repo\n2. Install system dependencies: `libxslt-dev`, `libxml2-dev`\n3. `uv sync --all-extras`\n4. `uv run brother-printer-fwupd --help`\n5. `uv run brother-printer-fwupd-autodiscover --help`\n6. `uv run brother-printer-fwupd-snmp-info --help`\n\nUse at your own risk!™\n\nContributions welcome.\n\n## Unit tests\n\nStart the simulator in a second terminal:\n\n```bash\ncd ./simulator/\nuv run ./run.py\n```\n\nMake sure, that you have all python interpreter versions installed. Then, run the unit test:\n\n```bash\nuv run tox\n```\n\n## License\n\n[© 2025 sedrubal (GPLv3)](./LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsedrubal%2Fbrother_printer_fwupd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsedrubal%2Fbrother_printer_fwupd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsedrubal%2Fbrother_printer_fwupd/lists"}