Repolode
ngxson

ngxson/esp32-usb-to-airprint

Turns a USB-only Canon PIXMA printer into a wireless AirPrint and AirScan device using a cheap ESP32-S3 board.

Stars
284
Forks
36
Open issues
6
Last commit
3 days ago

What is it?

This project adds wireless printing and scanning to USB-only Canon PIXMA printers. An ESP32-S3 board plugs into the printer's USB port and joins your WiFi network, then presents the printer to iPhone, iPad, Mac, Android (via Mopria) and Linux clients without drivers or apps.

Beyond printing, the board serves a web app where you can print PDFs and images, scan from a browser, keep scanned files, and combine pages into a PDF with rotate, crop and ID-card copy options. A button on the board triggers scans, and an optional SSD1315 OLED screen can be added.

The firmware detects the connected printer and selects a matching driver from components/printers. Many MG, E, MP, MX, iP and TS series models are listed as expected to work, with only a few validated on real hardware. A host emulator lets developers work on the web app and firmware without a board.

Key features

  • 01Wireless printing for iPhone, iPad, Mac, Android and Linux with no drivers
  • 02AirScan scanning from browsers, Image Capture and Preview
  • 03Built-in web app for printing PDFs and images and scanning
  • 04PDF assembly with rotate, crop and ID-card copy options
  • 05Hardware button to start scans, print a test page or cancel
  • 06Optional SSD1315 OLED screen and extra buttons

Use cases

  • Giving an old USB-only Canon printer wireless AirPrint access for a home network
  • Scanning documents from a Mac or browser without a printer driver
  • Adding a shared wireless print and scan point to a small office or household

Quick start

  1. 1

    Plug the ESP32-S3 into your computer via the COM port (not the port labelled USB)

  2. 2

    Build once to create the .env file, then edit it with your WiFi and printer settings

    pio run
  3. 3

    Connect the board's COM port and flash the firmware

    pio run -t upload

Things to know

  • Only the MG2500 is validated on real hardware; other listed printers are untested.
  • Requires a separate ESP32-S3 dev board and some soldering for the optional USB-OTG bridge.
  • Printer support is limited to the listed Canon PIXMA and related models.

In collections

Topics

#esp32#printer#airprint#airscan#embedded#iot#usb#wifi

FAQ

What is esp32-usb-to-airprint?
Turns a USB-only Canon PIXMA printer into a wireless AirPrint and AirScan device using a cheap ESP32-S3 board. This project adds wireless printing and scanning to USB-only Canon PIXMA printers. An ESP32-S3 board plugs into the printer's USB port and joins your WiFi network, then presents the printer to iPhone, iPad, Mac, Android (via Mopria) and Linux clients without drivers or apps.
Is esp32-usb-to-airprint free to use? What license does it have?
esp32-usb-to-airprint is open source under the MIT license. Check the license terms before using it in commercial products.
Is esp32-usb-to-airprint still maintained?
Actively maintained. The last commit to esp32-usb-to-airprint was on Nov 3, 2026.
What can I use esp32-usb-to-airprint for?
Giving an old USB-only Canon printer wireless AirPrint access for a home network Scanning documents from a Mac or browser without a printer driver Adding a shared wireless print and scan point to a small office or household
How do I install esp32-usb-to-airprint?
Plug the ESP32-S3 into your computer via the COM port (not the port labelled USB) Build once to create the .env file, then edit it with your WiFi and printer settings: pio run Connect the board's COM port and flash the firmware: pio run -t upload
Where can I get esp32-usb-to-airprint?
The source code and installation instructions are on GitHub: https://github.com/ngxson/esp32-usb-to-airprint

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects