Resources
POS hardware reference
A reference for the hardware layer under a retail counter: the ESC/POS command set that receipt printers implement, the peripheral classes that sit around a till, and the interfaces each one runs over. It is an engineering reference rather than a product pitch.
Peripheral classes
Six classes of device on a retail counter
Each class has a different job, a different interface, and its own list of things that go wrong. The printer is the device that speaks ESC/POS. The others either feed it data or take a signal from it.
Thermal receipt printer
The printer the sale ends with. It burns dots into heat sensitive paper, so there is no ink, toner or ribbon, and the only consumable is the roll. On most counters it also drives the cash drawer.
Typical interface
- USB
- Serial (RS-232)
- Ethernet
- Bluetooth
Check before buying
- Paper width. The two widths sold are 80mm and 58mm, and a receipt laid out for one does not fit the other.
- A built in auto cutter. Without one the cashier tears the paper by hand, and the tear line becomes the top of the next receipt.
- Command coverage. Text, line feeds and the cut command are close to universal. Raster graphics, 2D barcodes and a status back channel are not.
- The drawer kick port on the unit you are quoted, because one model number is often sold with and without it.
Barcode scanner
A reader that turns a printed barcode into characters. Most units ship configured so the characters arrive at the till exactly as typed keys would, which is why a scanner needs no driver.
Typical interface
- USB-HID (keyboard wedge)
- USB virtual COM
- Serial (RS-232)
- Bluetooth
Check before buying
- 1D or 2D. A 1D laser or LED unit reads the striped barcodes on packaged goods. A 2D imager also reads QR codes and codes shown on a phone screen.
- Keyboard wedge or serial. In HID mode the scanner types into whichever field has focus, so the till has to be waiting on the right field. In serial mode the software reads a stream.
- The suffix it appends. Most scanners send a carriage return at the end of each scan, and a till that expects a different terminator needs that set on the scanner rather than in code.
- Cabled or cordless. Cordless units come with a base that presents to the till as a USB keyboard, so the pairing is between the scanner and the base.
Cash drawer
A lockable steel tray with a solenoid latch instead of a key. It has no data interface at all. The latch is tripped by a short electrical pulse, and on a retail counter that pulse is generated by the receipt printer, never by the till.
Typical interface
- Kick cable from printer
- RJ11 / RJ12
Check before buying
- Coil voltage. The solenoid inside the drawer is rated for a voltage, commonly 12V or 24V, and the printer kick port has to supply that rail. A mismatch either fails to open the drawer or pulls more current than the port can deliver.
- The cable and the connector. Drawers ship with a cable that ends in a connector shaped for a printer kick port, and RJ11 and RJ12 do not always interchange.
- A status switch, if the software is to know whether the drawer is open. Without one, an open drawer is invisible to the system.
Customer display
A small screen on a pole that faces the customer and shows the running total and the last item scanned. Two kinds behave very differently: character displays that take lines of text, and graphic panels the software has to draw to.
Typical interface
- Serial (RS-232)
- USB virtual COM
- Ethernet
Check before buying
- Character or graphic. A character display takes text commands and is the cheaper, more predictable option. A graphic panel can show a logo or a QR code, and needs the software to render to it.
- The command set. Character displays do not use ESC/POS and there is no shared standard across makers, which makes this the peripheral most likely to need a per model driver or an adapter.
- Pole height and mounting, which decide whether the customer can read it across the counter. This is the part that gets ordered wrong.
Label printer
A printer that produces adhesive labels: shelf edge prices, markdowns, stock and asset tags. It is a different job from a receipt, because it has to stop at the same point on every label instead of running continuously.
Typical interface
- USB
- Serial (RS-232)
- Ethernet
- Bluetooth
Check before buying
- Gap or mark sensing. A dedicated label printer reads the gap between labels, or a black mark on the backing, and uses it to line each label up. Label stock through a receipt printer depends on the same sensor being present.
- Direct thermal or thermal transfer. Direct thermal labels fade with heat and light, which suits a short lived price tag. Thermal transfer uses a ribbon and lasts, and the ribbon becomes a consumable to stock.
- Head resolution. A 203 dpi head lays down 8 dots per millimetre, which covers text and a 1D barcode. A dense 2D code needs more dots in the same space, which is what a 300 dpi head gives.
Card terminal
The card reader supplied by a bank or an acquirer. It talks to their switch rather than to the till, and it produces its own approval slip or reference. Most sit beside the POS as a separate device.
Typical interface
- Serial (RS-232)
- USB virtual COM
- Ethernet
- Bluetooth
Check before buying
- Who supplies and controls it. In Nigeria the terminal usually comes from the acquirer, and the firmware, the settlement cycle and the supported card schemes are theirs to change.
- Whether it can take the amount from the till. That integration exists on some terminals, and it is agreed with the acquirer and built to their interface document rather than bought off a shelf.
- What the receipt has to carry. The card slip and the POS receipt are two documents, so if the two are to reconcile, the approval reference has to be recorded against the sale.
- The network the terminal uses. One on a SIM keeps working when the fixed line is down, which is a reason to leave it standalone.
Interfaces
The link is separate from the command set
A printer can speak ESC/POS over USB, serial, Ethernet or Bluetooth. Which one you choose changes what fails, and how loudly it fails.
| Capability | USB (cable) | Serial (RS-232) | Ethernet (LAN) | Bluetooth | USB-HID |
|---|---|---|---|---|---|
| Thermal receipt printer | Common | Common on older units | Common on LAN models | Portable units | Not used |
| Barcode scanner | Common | Industrial units | Fixed mount units | Cordless units | Very common, arrives as keystrokes |
| Cash drawer | No data port | No data port | No data port | No data port | No data port |
| Customer display | Some units | Common | Some units | Rare | Not used |
| Label printer | Common | Industrial units | Common | Some units | Not used |
| Card terminal | Some units | Common | Common | Some units | Not used |
The table describes the class, not the box. Most of these devices are sold in several interface variants under one model number, so confirm the variant that is on the quotation. The cash drawer is the exception in a different way: every column reads the same because it has no data port at all, and its only electrical connection is the kick cable to the printer.
ESC/POS describes the commands. It says nothing about the cable, so the interface is chosen to suit the counter: a fixed cable where the printer sits next to the till, and a network connection where it does not.
Local constraints
What a Nigerian counter actually runs into
Four conditions decide whether a receipt printer holds up here: the paper supply, the mains, the network, and the fact that the cash drawer answers to the printer.
Thermal paper comes in two widths
Receipt paper is sold at 80mm and 58mm. The number is the paper width, not the print width: the head does not reach the edge of the roll, so an 80mm roll gives about 72mm of printable width and a 58mm roll gives about 48mm.
That difference decides the layout. A head printing at 203 dpi lays down 8 dots per millimetre, and the standard font is 12 dots wide per character, so 72mm carries 48 characters across and 48mm carries 32. A receipt designed at 48 characters a line does not fit a 58mm printer unless it is redesigned.
What to check
Pick one width for the estate and stay with it rather than running both. Confirm your supplier holds that width continuously, in the core diameter the printer takes, and that the roll works with the paper end sensor rather than letting the printer run on and print a blank tail.
Power cuts land in the middle of a print job
A receipt reaches the printer as a stream of bytes, and the printer prints from that stream as the bytes arrive. When the mains drops partway through, the head has already fired for the lines on the paper, so the customer is holding a receipt that stops mid item and the printer holds no record of the rest.
Two things decide how bad that is. A printer with a receive buffer large enough to hold the whole job can take the entire receipt before it starts, so a cut leaves either a complete receipt or nothing at all. And software that keeps the job can reprint it, which is what the cashier actually needs in the moment.
What to check
Ask what happens on power loss, then test it: pull the plug mid receipt on a sample unit and see what comes out of the printer and what the till can do about it. Put the printer and the till on the same backup supply, and size that supply for the printer as well, because the head pulls current in bursts as it fires and a marginal inverter will drop the printer before it drops the till.
A network print job is a byte stream, and a drop truncates it
On an Ethernet or Wi-Fi printer the till writes bytes into a socket. That write succeeds as soon as the bytes leave the till, so the sale closes whether or not the printer received the whole job. If the link drops in between, what the printer does with the part it has is down to the printer: some print what arrived, some hold the buffer and print nothing, and neither is a fault.
The failure is quiet. The cashier sees a completed sale and no receipt, or half a receipt, and the gap surfaces at the end of the day when the totals are counted.
What to check
Confirm three things on a sample unit: whether the software can reprint the last receipt, whether the printer reports status back to the till so a failed job is visible rather than silent, and whether the main counter can be on a fixed cable instead of Wi-Fi.
The drawer opens because the printer was told to open it
The till never talks to the cash drawer. The till sends the printer a command, and the printer fires the pulse down the kick port. Everything electrical after that happens inside the printer.
ESC p m t1 t2
Generate pulse. m selects which pin on the kick connector fires, and t1 and t2 set the on and off times of the pulse.
The consequence is that the drawer depends on the printer being alive. If the printer is off, unreachable on the network, or the kick cable is not fitted, no pulse is sent and the drawer stays shut even though the sale completed. Some printers also decline to fire the kick while they are in an error state, so the printer status light is the first thing to read when a drawer stops opening.
A drawer can always be opened by hand: the key lock at the front, or the release lever underneath. That is the fallback for a counter whose printer has failed, and staff should be shown where it is on the first day.
What to check
Confirm that the printer you are quoted has the kick port fitted, since the same model is often sold without it. Then confirm the drawer coil voltage matches what the port supplies, commonly 12V or 24V, and test a cash sale that opens the drawer from the printer rather than from the key.
Scope and limits
The standard, not a tested compatibility list
ESC/POS describes a command set. It does not certify a printer, and neither does this page.
What this page does and does not say
ESC/POS is the command set Epson published for receipt printers. Epson published it and a large number of manufacturers have implemented it, which is the reason software written to drive one printer can drive another maker hardware at all. It is a specification, not a certification, and no body tests printers against it.
Implementations differ in coverage. One printer will print text, feed and cut and stop there. Another will also take raster graphics, print a 2D barcode, report status back to the till and fire the drawer kick. Those differences live in the command reference for each model, and a marketing sheet will not mention them.
So this page names classes and interfaces rather than models. It does not list any printer, scanner or terminal as tested, certified or verified against SenForge POS. We have not tested every unit on the market, and a list of model numbers published here would be out of date within a year while still reading as a claim about hardware we do not supply. Treat compatibility as a question to settle per model, with the unit in front of you.
How to confirm a model
- Ask the supplier for the ESC/POS command reference for the model, and read which commands it lists. A marketing sheet will not tell you.
- Print a real receipt on a sample unit: your longest product name, your VAT line, a logo if you print one, a barcode if your receipts carry one, and the cut.
- Open the drawer from a cash sale on that unit, with the printer in the state it will be in on the counter.
- Pull the power mid receipt and watch what the printer and the till each do about it.
- Run one unit at one counter for a week before ordering for the rest of the estate.
- Send us the hardware list before you buy, and we will compare the commands a model supports against the ones the software sends.
The last step is the cheapest. A quotation is easier to change than a delivery.
Before you buy
Send the hardware list before the purchase order
A quotation with model numbers on it is the cheapest moment to catch a peripheral that will not do the job. Send yours and we will go through the interfaces, the paper width, the drawer kick and the print behaviour with you before anything is ordered.
