USB thermal printer prints squares — wrong emulation (ESC/POS vs Star/ZPL)
Joe B.
Reviewed for technical accuracy
Specialities: USB/POS receipt printers, ESC/POS & Star Line emulation, code pages, Windows POS drivers, serial/USB virtual COM
USB thermal printer prints squares or blocks — wrong ESC/POS emulation, random characters, gibberish on receipts
Quick answer: the accepted fix
Accepted fix when a USB thermal printer prints squares / random characters: put the printer into the same emulation your POS expects (usually ESC/POS receipt mode, not Star Line or label/ZPL), install the correct **USB receipt-printer driver** instead of Generic/Text Only, and set a matching **code page** so special characters don’t become blocks. After that, configure the POS to send **raw ESC/POS** to the right USB/COM port.
Why thermal receipt printers print squares (emulation vs encoding)
When a POS receipt printer prints gibberish — lines of boxes, random letters, or Chinese-looking symbols — it’s usually not “broken hardware”. Most USB thermal printers support multiple **command languages / emulations** such as ESC/POS, Star Line mode, and label protocols like ZPL/EPL. If your POS sends ESC/POS while the printer is in Star Line or label mode, every ESC/POS control byte is drawn as a literal character, so you see **squares instead of text**. A second layer is **character encoding**: if the POS sends UTF-8 but the printer’s **code page** is set to CP437/CP850/CP858 incorrectly, accented characters and symbols like £ or € also show as boxes.
How to test your USB thermal printer for the correct emulation
To confirm you’ve fixed the **wrong emulation** problem, print three things: the printer’s **self-test page**, a **Windows test page**, and a **receipt from the POS**. The self-test should clearly state Emulation: ESC/POS (or the language your POS is configured to use), along with baud rate and code page. The Windows test page should show clean English text with no boxes. Finally, the POS test ticket should display normal receipt layout, barcodes, and special characters without **blocks or random characters**. If the self-test says Star Line or label mode or the receipt still shows gibberish, go back and re-align the emulation, driver and POS profile until all three tests match.
USB thermal printer prints squares — quick troubleshooting tips
Most “prints squares or random symbols” cases are just wrong emulation, driver, or code page — not a dead printer.
Quick path: print the **self-test** and confirm the printer is in ESC/POS receipt mode, not Star Line or label. Install a proper **USB ESC/POS driver** (Epson/Star/Bixolon or the clone vendor), and in your POS, choose a **receipt printer / ESC-POS profile** with raw output to the correct USB or virtual COM port. Finally, set the **character table/code page** so £, €, and accented letters render correctly. This sequence fixes the majority of POS receipt printer prints blocks / gibberish issues on Windows and many Mac/Linux setups.
Disclaimer: This information is AI-generated and intended for general guidance only. For advice specific to your environment, please consult a verified expert on Whizz-Tech before making decisions.
Getting Started Is Easy
Ask for help, 24/7
Members enjoy round-the-clock access to 12,000+ verified Experts, including tech support, mechanics, vets, and more.
Expert will respond in minutes
We match you with an Expert who specializes in your situation. Talk, text, or chat — whichever you prefer.
Save time & money
No scheduling hassles or expensive consults. Membership can save you significant time and money each month.
FAQ
Why does my USB thermal printer print squares or random characters?
Most of the time your receipt printer prints squares because the **emulation / printer language** doesn’t match what your POS is sending. For example, the printer is in Star Line, label, or page mode while the POS sends ESC/POS commands, so control bytes are rendered as blocks. A mismatched **code page/encoding** (UTF-8 vs CP437/CP858) can also make certain characters appear as boxes.
How do I change the emulation mode on a thermal receipt printer?
Print the **self-test** by holding FEED while powering on. It will show “Emulation: ESC/POS / Star Line / ZPL …”. Use either **DIP switches** on the bottom or the vendor’s **configuration utility** to switch into the emulation your POS expects (usually ESC/POS or Star Line). Power-cycle, print self-test again, and confirm the new emulation before testing receipts.
Can I use a Generic / Text Only driver for ESC/POS printers?
Generic/Text Only can work in simple setups, but it often re-encodes data or strips control codes, which leads to **gibberish, missing cuts or no cash-drawer kick**. For reliable ESC/POS printing, it’s safer to use a **vendor or ESC/POS driver** on the correct USB/COM port and configure the POS for **raw ESC/POS output**.
Will this fix work for POS apps like Square, Odoo, Loyverse, etc.?
Yes — the same principles apply: make sure the **POS printer profile** is set to a model/emulation your printer supports (ESC/POS vs Star/label), install the correct driver, and confirm the receipt test prints text instead of blocks. Each POS labels the setting differently, but the root cause is still **wrong emulation or encoding** between app and printer.
Sources
- BlueDiamond Support — Receipt printer printing blocks and random characters
- SambaPOS Forum — Star TSP printers, ESC/POS vs Star Line mode (DIP switch emulation)
- Honeywell Support — ESC/POS printers printing incorrect or random characters
Filed under: Label / thermal / POS / shipping labels
Related articles
- UPS thermal label prints inverted — ZPL mirror
- Pharmacy thermal prints overlapping NDC — font mapping
- The Real Fix for a Printer That Trips a UPS — Inrush Current and Curve Selection Explained
- Bluetooth label printer drops after sleep — connection persistence
- Hospital wristband printer produces unreadable barcodes
- Warehouse label printer delay = packing line stalled — how to speed up Zebra/thermal printing
- Retail receipt printer auto-cut mid-line — buffer timing
- Restaurant label printer won’t calibrate (Deli/Bakery)