Skip to content

/work · v0.1.0 on GitHub

prindeck

A Linux control panel for the Brother MFC-L2710DW: SNMP status and toner, eSCL scanning, CUPS printing in one native window, with no vendor drivers anywhere.

Rust · Tauri 2 · eSCL · SNMP · CUPS

Problem

Brother's client application iPrint&Scan exists for Windows and macOS. For Linux the vendor ships drivers only: printer driver, scanner driver, scan-key-tool, all deb packages. Control then scatters across the web panel in a browser, simple-scan, and the lp and scanimage command line. A single window holding status, supplies, scan, print and history does not exist.

The shortcut through open protocols sits nearby: the device speaks eSCL over HTTP, SNMP for state and supplies, and prints through any CUPS queue. None of those paths needs a vendor binary package.

Architecture: three open protocols

Status runs over SNMP: one batched GET per poll reads Brother's OID table, and a small parser turns the binary records into toner and drum percentages, page and duplex counters, and drum pages remaining. The values land in local SQLite and feed the 90-day history chart plus a toner-pages estimate computed from the configured cartridge yield.

Scanning runs over eSCL, the same protocol sane-airscan speaks: create a scan job with POST, fetch pages, cancel with DELETE. Platen or the 50-sheet feeder, 100 to 600 dpi, JPEG or a multi-page PDF. The print side does not replace system printing; it hands files to the existing CUPS queue and shows the job list with a cancel action.

The shell is Tauri 2: Rust for device communication, TypeScript for the window, WebKitGTK for rendering. Tray icon with a status colour, background polling with notifications for low supplies and outages, optional autostart, one instance.

What the device actually does

The MFC-L2710DW departs from the specification in four places, and each departure is now encoded in the app: 150 dpi does not exist, the device silently substitutes 300. The colour mode BlackAndWhite1 with JPEG output answers with HTTP 409 although the combination is representable in the job XML. The firmware assembles the whole feeder stack into a single PDF, so a cancelled job keeps the pages already received. And a tray icon on Linux needs a menu attached or it stays invisible; Tauri's documentation notes an empty one is enough.

A discovery pass against the live device, run before the application existed, found all four. The read-only probe scripts for eSCL and SNMP ship in the repository.

Scope and roadmap

Version 0.1.0 supports exactly one device, the MFC-L2710DW, because that is the printer every claim was tested against. The release notes list the rough edges openly: the offline screens need a cleanup pass, the .rpm arrives in v0.1.1, and seven of the ten interface languages are community drafts.

The project is solo-maintained, MIT-licensed, and not affiliated with Brother. The next step, more Brother MFC and DCP models, depends on interest: support „arrives sooner with every star“, as the README puts it.