Quick wins for a faster PC:
Scan for outdated or missing drivers - takes under a minuteDriver Scan →Repair Windows errors before they cause bigger problemsFix Now →iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more
To build a Raspberry Pi receipt printer, you need a Raspberry Pi with Raspberry Pi OS, an 8 GB-or-larger microSD card, a USB or TTL-serial thermal printer, paper that fits that printer, and a properly rated regulated power supply for the printer. For software, use Python 3 with Adafruit Blinka and its thermal-printer library when your program should control printing directly; choose CUPS when you want queued or networked print jobs. The practical skills are basic Linux setup, finding and configuring a serial device, safe low-voltage wiring, and—if you are making a permanent unit—soldering and enclosure work.
The main compatibility decisions are the printer interface, paper size, power requirements, and whether your application needs direct control or a print queue. Sorting those out before buying parts or wiring the printer avoids the most common project dead ends.
What parts do I need for a Raspberry Pi receipt printer?
A basic build needs a Raspberry Pi, storage and operating system, a compatible thermal printer, matching paper, and power that can handle the printer’s peak demand. The exact power adapter and cables depend on the printer interface and model.
Core parts
- Raspberry Pi computer: It runs the printing program or print server. The parts lists in Adafruit’s guide do not prescribe a particular Pi model.
- microSD card: Use an 8 GB-or-larger card for Raspberry Pi OS. Adafruit’s guide, originally published in 2016 and updated in 2024, gives this as its minimum.
- Thermal receipt printer: Choose a model with USB or TTL serial, and check its supported command language and operating-voltage requirements before settling on software.
- Thermal paper: Mini printers commonly use rolls 58 mm wide (2.25 inches), but paper width and roll diameter must match the printer. Pimoroni’s mini-printer page specifies 2.25-inch paper for its unit.
- Printer power supply: Use a regulated supply that meets the printer’s voltage and peak-current specification. Adafruit’s project guide lists a 5 V supply rated at 2 A or more; Pimoroni specifies 5–9 V DC and at least 1.5 A for its printer during high-current printing. These are model-specific requirements, not interchangeable ratings for every printer.
- Interface cables: A USB cable is appropriate for a USB printer. A TTL-serial printer may need jumper wires, a suitable adapter or a DC barrel-jack adapter, depending on its connectors.
For initial Raspberry Pi setup, plan for a network connection and a monitor, keyboard and mouse, as listed in Adafruit’s guide. You can add a case, mounting hardware, a pushbutton and a status indicator if the printer will become a standalone appliance; those are optional rather than prerequisites for proving that printing works.
#1 Best Overall
- Read Before You Buy — No Video Output: These adapters support charging and USB 2.0 data transfer, but cannot transmit video signals. Except for standard USB webcams (which use USB data only), they are not compatible with HDMI/DisplayPort cables, video-capable USB-C hubs, or docking stations with video output.
- Convert USB-A Ports to USB-C: Designed to connect USB-C earphones, cables, flash drives, card readers, and other USB-C accessories to standard USB-A ports. Plug-and-play with no drivers or software required.
- Aluminum Alloy Housing: Built with a sturdy aluminum alloy shell that aids in heat dissipation and protects against daily wear and scratches. Designed to maintain a stable and secure connection.
- Compact & Travel-Friendly: The ultra-compact design allows the adapter to stay plugged into your device without blocking adjacent ports or adding bulk, reducing wear and tear on your original USB ports.
- 12-Month Warranty: Backed by a 12-month manufacturer warranty for peace of mind. Designed to meet strict quality control standards for reliable everyday performance.
What is not established as a project-wide requirement?
There is no universal parts cost, printing-speed figure or durability estimate for this project. Those depend on the selected Pi, printer, supply, enclosure and workload; the cited project and product documentation does not establish one figure that applies to all builds.
Which thermal printer works with a Raspberry Pi?
A printer can work with a Raspberry Pi if its interface, power requirements and command language match your setup. A USB model is generally the simpler connection; a TTL-serial model offers a direct serial connection but requires careful wiring and serial configuration.
| Choice | What it means for the build | Check before choosing |
|---|---|---|
| USB printer | Connects to a Pi USB port; this is the simpler route when the printer exposes a compatible USB interface. | Confirm that your software or Linux print workflow supports the printer and its command dialect. |
| TTL serial printer | Connects using transmit, receive and ground signals; serial settings such as baud rate must agree. | Check the printer’s voltage/interface details and self-test output. Do not power the print head from a Pi GPIO pin. |
| USB-to-serial adapter | Can bridge a serial printer to USB when the Pi or cable arrangement calls for it. | Confirm that the adapter is appropriate for the printer’s serial interface and that the operating system exposes the expected device. |
Some mini models are designed for 58 mm (2.25-inch) paper, while other printers may use a different width. Do not buy rolls based on the phrase “receipt printer” alone: verify both the paper width and roll diameter in the printer’s specifications. Also check whether a cutter, paper sensor or advanced status feature is present if your application depends on it; these capabilities are not established for every printer in the project guidance.
What power supply does a thermal receipt printer need?
Use a separate regulated supply sized for the printer’s specified voltage and peak print-head current. Do not assume a Pi GPIO pin or the Pi’s own power connection can supply the current the print head needs.
Rank #2
- 5-in-1 USB-C Hub: Experience comprehensive connectivity featuring a Power Delivery input, two USB-A 2.0 ports, a USB-A 3.0 port, and an HDMI port. (Note: The USB-C power delivery input port is only for connecting an external wall charger to power your laptop and cannot power peripheral devices.)
- 90W Pass-Through Charging: Achieve optimal charging with 90W pass-through power to your laptop, supported by a total input of 100W, with the hub reserving 10W for operational efficiency. (Note: Wall charger not included.)
- Quick Data Transfers: Accelerate your productivity with rapid data transfers using a high-speed 5Gbps USB 3.0 port and two 480Mbps USB 2.0 ports.
- 4K HDMI Display: Enhance your visual experience with a hub capable of delivering 4K resolution at 30Hz in both mirror and extend modes. Please note that this hub is compatible with MacBook (macOS 12 and newer), Windows 10 and 11, ChromeOS, and laptops equipped with DP Alt Mode and Power Delivery. Note: This device is not compatible with Linux.
- What You Get: Anker USB-C Hub (5-in-1, 4K HDMI), welcome guide, 18-month warranty, and our friendly customer service.
Requirements vary by model. Adafruit’s build guide lists a 5 V, 2 A-or-larger supply. Pimoroni’s mini printer documentation calls for a regulated 5–9 V DC supply capable of at least 1.5 A during high-current printing. Treat the latter as a specification for that printer, not as a general replacement for checking another model’s label or documentation.
Before connecting power, verify the supply’s output voltage, current rating and connector polarity against the printer’s requirements. A barrel-jack adapter may be needed for a printer with a barrel connector. If the Pi and printer use separate supplies, connect their grounds when required for the serial signal path; do not connect power rails or improvise a shared supply arrangement without checking the device specifications.
How do I connect an ESC/POS printer to Raspberry Pi GPIO?
For a TTL-serial printer, cross the data lines and share ground: printer TX goes to Pi RX, printer RX goes to Pi TX, and printer ground connects to Pi ground. GPIO carries the serial signals; it must not provide print-head power.
The Tool Desk
Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →- Identify the interface and pin labels. Confirm that the printer exposes TTL serial, not a different electrical interface that merely uses a similar connector. Check the printer’s voltage levels and the Pi’s interface requirements before wiring.
- Run the printer’s self-test. Use the printer’s documented self-test procedure before troubleshooting the Pi connection. The resulting page can identify firmware and often report the configured baud rate.
- Make the signal connections. Connect TX to RX, RX to TX, and ground to ground. Keep the printer’s power connection on its rated supply, not on a GPIO pin.
- Set matching serial parameters. Configure the software for the printer’s reported baud rate and the correct serial device. Adafruit’s guidance notes 9,600 and 19,200 as typical baud rates, but the self-test or model documentation should decide the setting for your printer.
- Check the device and permissions. Identify the serial device exposed by Linux and make sure the user or service running the print program can access it. For example, a USB serial adapter may appear as
/dev/ttyUSB0; the actual name depends on the connected hardware. - Send a minimal test before building a receipt. Confirm that a short text job prints correctly before adding formatting, barcodes or other features. This separates connection problems from layout or command-language problems.
A printer described as ESC/POS-compatible may still differ in supported commands or status behavior. Confirm the model’s dialect before relying on features beyond basic output. For a USB printer, use the USB connection rather than wiring its interface to GPIO.
Rank #3
- Sleek 7-in-1 USB-C Hub: Features an HDMI port, two USB-A 3.0 ports, and a USB-C data port, each providing 5Gbps transfer speeds. It also includes a USB-C PD input port for charging up to 100W and dual SD and TF card slots, all in a compact design.
- Flawless 4K@60Hz Video with HDMI: Delivers exceptional clarity and smoothness with its 4K@60Hz HDMI port, making it ideal for high-definition presentations and entertainment. (Note: Only the HDMI port supports video projection; the USB-C port is for data transfer only.)
- Double Up on Efficiency: The two USB-A 3.0 ports and a USB-C port support a fast 5Gbps data rate, significantly boosting your transfer speeds and improving productivity.
- Fast and Reliable 85W Charging: Offers high-capacity, speedy charging for laptops up to 85W, so you spend less time tethered to an outlet and more time being productive.
- What You Get: Anker USB-C Hub (7-in-1), welcome guide, 18-month warranty, and our friendly customer service.
Should I use Python or CUPS for Raspberry Pi receipt printing?
Use Python direct control when a Raspberry Pi application decides what to print and when; use CUPS when print jobs should enter a queue or be shared through a networked workflow. Raw ESC/POS is another route when you need to send printer commands directly and have verified the model’s command set.
| Software path | Best fit | Important considerations |
|---|---|---|
| Python with Blinka and the Adafruit thermal-printer library | Application-controlled receipts, such as output triggered by a local program. | Requires choosing the right serial device and baud rate. The CircuitPython implementation supports text and barcodes, but its bitmap support is limited. |
| CUPS with a thermal-printer filter | Queued, scheduled or networked print jobs. | CUPS provides spooling, scheduling and filtering, including rasterization for thermal output. Printer/filter compatibility still matters. |
| Raw ESC/POS commands | Programs that need direct command-byte control over USB or serial. | Check the printer’s command dialect and status behavior; compatibility should not be inferred from the interface alone. |
What does the Python route involve?
Install Raspberry Pi OS, Python 3, Adafruit Blinka and adafruit-circuitpython-thermal-printer. Then select the serial device and baud rate that correspond to the actual connection and printer configuration. This route is convenient when your own program generates receipts rather than sending documents through a general-purpose queue.
Adafruit describes this path as easy to use with CircuitPython or Python via Blinka. That is a description of the software route, not a guarantee that every thermal printer, connection or feature works identically. In particular, bitmap support in the CircuitPython library is limited, so verify image needs before choosing it for graphics-heavy receipts.
What does the CUPS route involve?
Install Raspberry Pi OS with a CUPS thermal-printer filter, then configure printing through the queue-oriented workflow. CUPS is useful when jobs come from other devices or applications and should be spooled, scheduled or filtered rather than assembled by a single Python program. The project guidance does not identify one universal filter or setup path for every printer, so check that the filter supports the selected model and output format.
Rank #4
- Dual Converters, Infinite Potential:Includes 2× USB C male to USB A female adapters and 2× USB A male to USB C female adapters. Perfect for a wide range of uses—tablets with Bluetooth keyboards, expand USB ports on macbook, and more. Two different converters for all your daily needs
- Next-Level 10Gbps & 3A Charging: No more slow 480Mbps, this usb to usb c adapter has a transfer speed of up to 10Gbps, allowing you to do more transferring in less time. This usb adapter fits both USB A and USB C charger, supporting up to 3A fast charging
- Upgraded Exquisite Craftsmanship: With an aluminum alloy housing and metal connector, the usbc to usb adapter is extremely durable and sturdy. Rigorously tested to withstand more than 10,000 times of plugging and unplugging, ensuring long-lasting performance
- Broad Compatible: The usb c to usb adapter widely supports all USB C/ USB A devices like laptops, tablets, cellphones, car chargers, and phone chargers. Such as compatible with MacBook Pro/Air 2023/2022, Thunderbolt 4/3 Devices,Apple MagSafe Watch 9/8/7/SE/Ultra, iPad Pro 2022/2021, Samsung Galaxy S23/S20/S10, and iPhone 17/16/15 Pro. Plug and play
- Please Note: To reach 10Gbps speed, keep the cable under 3.3 ft. For USB A Male to USB C adapters, try flipping the USB C connector. USB C Male to USB A adapters support bidirectional 10Gbps transfer within 3.3 ft
What skills do I need, and how difficult is the build?
A working prototype is within reach if you can set up Linux, follow a pinout and troubleshoot a device connection. A permanent enclosure adds practical wiring and mechanical work, and may require soldering and strain relief.
- Raspberry Pi OS setup: Flash and configure the operating system, establish network access and use a shell.
- Python basics: Install packages, work with a virtual environment if appropriate, and run a small program that sends a test print.
- Linux device troubleshooting: Identify
/dev/tty*devices, choose the correct port and resolve access permissions. - Serial configuration: Match baud rate and other serial settings to the printer instead of assuming defaults.
- Safe wiring: Recognize TX, RX and ground, use an interface with suitable signal levels, and keep the printer’s high-current power separate from GPIO.
- Receipt design: Fit text to the paper width, test barcode or QR output if needed, and plan for the paper handling and tear-off method.
- Finishing work: Solder and secure connections, add strain relief and mount parts in an enclosure for a durable installation.
Many small printers require manual tearing, so do not assume an automatic cutter. Likewise, a project that prints a line of text has not necessarily validated barcodes, QR codes, graphics, paper sensing or status reporting; test the specific features your finished application will use.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.How should I choose between printer options before buying?
Decide based on the actual application rather than on a generic “Raspberry Pi compatible” label. The following checks turn the project into a manageable compatibility decision.
Recommended Free Tools
- Pick the workflow: Choose direct Python control for application-generated receipts, CUPS for queued or networked jobs, or raw ESC/POS if your application needs command-level control.
- Match the connection: Prefer USB for a simpler connection if the printer supports the workflow you need. Choose TTL serial only if you are ready to cross TX/RX, share ground and configure the port.
- Confirm paper and mechanics: Match roll width and diameter, then check whether the printer has the cutter, sensor or tear-off method your use case requires.
- Size power from the printer’s specification: Match regulated voltage and peak-current rating to the selected model. Do not extrapolate one mini printer’s supply requirement to another.
- Validate software features: Check text, barcode, QR-code and bitmap needs against the library, filter and printer model rather than assuming all thermal printers expose the same capabilities.
- Plan the physical build: Decide whether the prototype will stay on a bench or needs an enclosure, mounting, secured wiring and accessible paper loading.
This sequence matters because printer compatibility is a combination of interface, power, paper and software—not a property of the Raspberry Pi alone. A printer may connect successfully yet still be unsuitable if its paper format, command support or power needs do not fit the intended installation.
Best Value
- 5-in-1 Connectivity: Equipped with a 4K HDMI port, a 5 Gbps USB-C data port, two 5 Gbps USB-A ports, and a USB C 100W PD-IN port. Note: The USB C 100W PD-IN port supports only charging and does not support data transfer devices such as headphones or speakers.
- Powerful Pass-Through Charging: Supports up to 85W pass-through charging so you can power up your laptop while you use the hub. Note: Pass-through charging requires a charger (not included). Note: To achieve full power for iPad, we recommend using a 45W wall charger.
- Transfer Files in Seconds: Move files to and from your laptop at speeds of up to 5 Gbps via the USB-C and USB-A data ports. Note: The USB C 5Gbps Data port does not support video output.
- HD Display: Connect to the HDMI port to stream or mirror content to an external monitor in resolutions of up to 4K@30Hz. Note: The USB-C ports do not support video output.
- What You Get: Anker 332 USB-C Hub (5-in-1), welcome guide, our worry-free 18-month warranty, and friendly customer service.
Frequently Asked Questions
Why does my receipt printer feed paper but print blank?
Check that the roll is thermal paper and loaded with its heat-sensitive side facing the print head; thermal stock can look similar on both sides. If the printer’s self-test is also blank, inspect paper orientation and the printer itself before changing Raspberry Pi software.
Can I print receipts from phones or laptops through a Raspberry Pi?
A CUPS-based setup is the relevant option when you want jobs to be queued or shared across a network. Whether a particular phone or laptop can submit a job depends on its operating system, network-printing support and the filter configured for the printer.
Can I print a logo or QR code with the Python library?
The library guidance supports text and barcodes, while bitmap support in the CircuitPython implementation is limited. Verify QR-code and image output for the exact printer and library version you plan to use rather than assuming that support for one barcode feature means support for every graphic format.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Do I need an automatic paper cutter?
No; many small receipt printers rely on manual tearing. If automatic cutting is essential, verify that the specific printer includes a cutter and that its software path exposes the cut command.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

