Epson TM-T88III – друк ESC/POS кодами

Попав у руки термо принтер Epson TM-T88III для друку на термо папері шириною 80 мм. Має вбудований відсікач стрічки. Про кросплатформенний друк без драйверів у замітці.

Якісний принтер, може бути змонтований на стіну через перехідну пластину.

Проста і надійна механіка.

По кнопці подачі паперу можна приблизно оцінити пробіг.

Має пам’ять фото (максимум 256KB), для швидкого друку чеку. Завантажується за допомогою утиліти win утиліти TM Flash Logo Setup або через ESC код.

Із інтерфейсів може бути serial, parallel, usb, ethernet (UB-E03, C32C824541), bluetooth (UB-B03, C32C824621), WIFi (UB-R04, C32C824612) залежно від плати розширення. Мій із serial – RS-232C інтерфейсом: 25 піновий мама (UB-S01, M111A, SKU: C32C823361).

Інтерфейсні плати підключаються через 30 піновий системний роз’єм. В процесі: вивести +5V (на 11, 18 чи 25 пін) для живлення Bluetooth адаптера.

Материнська плата.

Все легко розбирається, чиститься і замінюється.

Із роз’ємів конектор для відкриття cash холдера і роз’єм живлення. Рекомендований блок живлення PS-180 (24V 2.5A), в мене працює від БЖ із 1,1А. Розпіновка роз’єму живлення:

Було написано інтеграцію із системою продажу квитків. При натисканні у веб інтерфейсі на кнопці друку перепустки принтер друкував тимчасовий білет, для відвідувачів які не мають друкованого квитка або QR коду на телефоні. Містить логотип, текстові поля, штрих-код.

Бінарний файл (складається із ESC/POS команд) друку формується на сервері і переправляється на локальний серійний порт.

<?php
$out=chr(27).chr(64); //INIT PRINTER - ESC @
$out.=chr(28).chr(112).chr(1).chr(0); //Print Logo
$out.=chr(27).chr(116).chr(17); // Set Code Page - ESC t 17
$out.=$name.chr(10);
$out.='Badge # '.$badgeID.chr(10);
$out.=chr(29).chr(119).chr(4); //ширина штрихкоду 150 px - GS w 4
$out.=chr(29).chr(104).chr(150); //вистота штрихкоду 150 px - GS h 150
$out.=chr(29).chr(107).chr(2).$barcode.chr(0); //друк штрихкоду - GS k 2
$out.=chr(29).chr(86).chr(66).chr(42); //обрізка - GS V B 42
?>

Принтер має вбудований кириличний шрифт, тому паралельно перекодовуємо текстові строки із кодування UTF-8 на WINDOWS-1251 кодування.

Для перенаправлення файлу із сервера на serial порт найпростіше зробити це на BAT або bash SH файлі. Для windows, epson.bat:

mode COM37 BAUD=38400 PARITY=n DATA=8
:loop
wget -O \\.\COM37 http://uaid.net.ua/EPSON/
timeout 1
goto loop

Використовувався із перехідником USB-RS232 на мікросхемі CH340. Для виставлення швидкості знизу під металевою кришкою має набір перемикачів, якими виставляються необхідні параметри.

Підтримки 2D кодів (у мікропрограмі) принтер не має, тільки лінійні 1D, або формувати як зображення.

Використання фотографій або текстового контенту на інших ресурсах без клікабельного індексованого посилання заборонено.