Sep 5 – 7, 2025
Asia/Kolkata timezone

Behaviorally Accurate Simulator for Multifunction Printers and Scanners

Sep 6, 2025, 5:30 PM
40m
Room 2: Breakout

Room 2: Breakout

Talk (40 min) OpenPrinting

Speaker

Alexander Pevzner

Description

Although driverless printing and scanning are governed by standards and specifications, real hardware implementations often include unique details that can deviate from these specifications, affecting the accuracy of our printing and scanning implementations.

Our years of experience in developing and supporting the Linux driverless printing and scanning stack (CUPS, sane-airscan, ipp-usb) have shown that many issues arise from discrepancies between real-world hardware implementations and the specifications they claim to follow.

Compounding the problem is the fact that printing and scanning hardware is expensive, bulky, and heavy, making it difficult to maintain a representative collection of physical devices for testing.

The solution here would be to implement a realistic hardware simulator capable of emulating not only standard protocol behavior but also device-specific deviations.

This project is currently under active development by OpenPrinting.

The simulator consists of a core engine and a collection of hardware models. A model can be complex, defining every aspect of the hardware’s behavior, or simple, reproducing only the specific issue being investigated.

Each hardware model includes a configuration (represented by parameters such as paper size, supported resolutions, color models, etc.) and optional Python scriptlets that define device-specific behavioral quirks.

The simulation core interprets these models. To simplify model creation, the core provides an "ideal," fully standards-compliant printer or scanner as a base, configurable via the model’s parameters. Small Python hooks then allow deviations from this ideal behavior, which the simulation core automatically applies.

This approach keeps models relatively straightforward. We believe that in cases of printing or scanning issues, system administrators and advanced users will be able to replicate problems using these hardware models, enabling remote troubleshooting without physical access to the device.

The simulation core is written in Go, while Python is used exclusively for hardware models due to its widespread familiarity.

The author specializes in systems programming (C and Go) and is known in the open-source community as the creator of ipp-isb and sane-airscan

Session author's bio

Software professional (systems programmer and architect) with over 30 years of experience. Author of the ipp-usb and sane-airscan packages, which are included in all major Linux distributions and *BSD systems. sane-airscan is also part of Google ChromeOS. Develops systems software in C and Go.

Level of Difficulty Intermediate
Agree to Privacy Policy and Notice I agree
In Person Attendance In-person
Please confirm that there are included headshots of all speakers in their profiles Yes

Presentation materials