Ще один термопринтер, zhevak

Виявляється, що термопринтери бувають різні, точніше - можуть мати різні модифікації.

Ще один термопринтер, zhevak

Наприклад, ось у цього термопринтера

- інтерфейс послідовний з рівнями сигналів +3.3.

А ось термопринтер, який я сьогодні забрав на пошті, має інтерфейс RS232. Цей принтер я замовляв тут:

І хоча в його описі сказано «RS232 TTL», але розтин показав, що поряд з роз'ємом знаходиться мікросхема SIPEX SP3232EEN, яка і забезпечує стандартні рівні напруг для RS232.

Ще один термопринтер, zhevak

Взагалі враження від принтера у мене склалося неоднозначне. І я зараз поділюся своїми міркуваннями.

2. Приємна ціна принтера. Я купував принтери по $ 25, зараз вони стали трохи дорожче - $ 27. Але це все одно в два рази дешевше, ніж принтер, який я придбав півроку назад через ebay.

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

4. Корпуси принтерів зроблені з білої пластмаси. На фотках вони виглядають чудненько. Власне, мені це сподобалося, тому я замовив саме білі.

Але у корпусів білого кольору виявилася пара недоліків. На білому корпусі дуже чітко видно темні не зовсім рівні щілини прилягання кришки для рулону паперу. Це виглядає якось не дуже красиво. І я так підозрюю, що і бруднитися білий корпус буде досить швидко і набагато помітніше.

5. З позитивних моментів можу відзначити, що у корпуса відсутня технологічна діра, яка у його темного брата сором'язливо прикрита шматком матовою товстої плівки. У цього (білого) весь корпус цілісний, без дірки.

Ще один термопринтер, zhevak

Але ось, з низу плату з мікро контролером у білого братика прикриває не металева пластина, а якийсь шматочок несерйозно-тонкого пластику, я б сказав - шматочок плівочки. Як би - «не вселяє!»

Ще один термопринтер, zhevak

(Щоб сфотать цю білу плівку нормально довелося покласти її на синю зошит.)

6. У «білого» принтера замість двох роз'ємів - для харчування та для інтерфейсу, присутній тільки один. Документації на плату немає, але це не проблема.

Я відкрив кришки у білого і чорного принтерів що б порівняти їх плати.

Ще один термопринтер, zhevak

Друковані плати виявилися абсолютно однакові! Різниця тільки в припаяних на них елементах. Що називається - «знайди сім відмінностей» (фотки клікабельні!):

Ще один термопринтер, zhevak

Ще один термопринтер, zhevak

На платі принтера з інтерфейсом RS232 присутній мікросхема SP3232, а на платі принтера з інтерфейсом UART замість мікросхеми впаяні резистори-перемички і відсутні конденсатори, які потрібні для конвертерів напруги цієї мікросхеми.

Інакше кажучи, ніщо не заважає перетворити ці принтери c інтерфейсом RS232, в принтери з інтерфейсом UART. Напевно я так і зроблю.

Я відкрутив плату.

Ще один термопринтер, zhevak

На звороті плати назви контактів виявилися підписані:

Ще один термопринтер, zhevak

І хоча в комплекті з принтерами йшли кабелі до гнізда, я вирішив-таки прибрати цей роз'єм:

Ще один термопринтер, zhevak

Перед фотосесією флюс не змиваються, тому вийшло не зовсім презентабельно. Але з іншого боку - життя-то вона така і є - брутальна.

Продавець Andrew Wu надіслав могутнє лист - аж на 11 мегабайт з документацією англійською та китайською мовами. У листі були також фотки принтера, частина з них я вже розмістив в цій статті.

Документацію англійською помістив сюди:

Доку на китайському я вирішив не викладати в загальний доступ. Не бачу в цьому сенсу.

І нарешті, я скористався прогой, яку мені прислала Shirly Wu, і зрадив їх установки. Я встановив принтерів швидкість 115200 і кодову таблицю CP1251. Для реконфигурирования принтерів я підключився до харчування копмпа + 5В і до роз'єму послідовного порту RS232 (COM-port). Все пройшло дуже легко і гладко і без будь-яких натяків на проблеми.

І наостанок скажу ще пару слів як оживити принтер під Лінукс. Я це зробив за допомогою програми на Python. Ось вона:

Потрібно зберегти цей текст у файлі (наприклад, hello.py).

Ось тут слід зробити невеличкий але дуже потрібне зауваження.

Справа в тому, що принтер розуміє кирилицю тільки кодових таблиць CP1251 (Windows), CP866 (DOS) і ще доісторичну ЯКІ-8, яка панувала на компах до епохи IBM PC. Але принтер геть відмовляється працювати з кодуванням utf-8, яка використовується в Лінуксі.

Але не варто впадати в паніку і проклинати Лінукс. Лінукс всеїдний. Він жере навіть те, від чого обличчя Шіндовс стає синім і вона вмирає.

Я довше пояснюю прості істини. Коротше, при збереженні тексту цієї пітоновской програми вам просто потрібно вказати в якому кодуванні зберегти файл:

Ще один термопринтер, zhevak

Не дивлячись на те, що кодування файлу віндового, Лінукс проте буде працювати з цим файлом як з рідним. Якщо ви не спеціально не звернете свою увагу на кодування файлу, то ви цю обставину ніяк не знайдете.

Після збереження файлу потрібно за допомогою команди:

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

Перший рядок говорить оболонці (bash), як правильно запустити цю програму (цей файл). Конкретно - спочатку запустити команду env, яка знайде в системі Python і «згодувати» йому цей файл.

Тобто, для запуску програми вам досить набрати її ім'я в командному рядку:

Для тих, хто в Лінуксі недавно, це може здатися дещо заплутаним - мовляв, навіщо так складно? Насправді це не складно. Якщо вас це морально напружує, ви це ж саме можете зробити руками:

Наступний рядок дозволить Python-у правильно працювати з кирилицею.

Далі, для роботи з послідовним портом нам необхідний модуль serial, який ми імпортуємо наступним рядком в програмі.

Створить об'єкт послідовного порту / dev / ttyS0 і призначить йому (об'єкту) ім'я sp. Порт буде відкритий на швидкості 115200 Бод, з таймаут 1 секунда.

Тепер можна в порт писати все, що російській душі заманеться. За правилом програміста етикету після закінчення роботи з ресурсами потрібно за собою прибрати - закрити відкриті порти і повернути захоплену пам'ять.

Ось, мабуть це все, що потрібно для старту. Бажаю вам приємного та корисного проведення часу!

16 responses to "Ще один термопринтер"

Я замовляв такий же і там же, після прочитання вашого поста. Мій прийшов уже досить давно. Мій з інтерфейсом rs232. Підключав його до винде як Generic text only printer. Схема підключення є, можу скинути. Там в роз'ємі є проводок 2 CTS, як його можна використовувати програмно?

1. VH, the power supply for the board
2. CTS, Paper detector (Default) or CTR flow control (GS a command set)
3. TXD, the transmit pin for UART
4. RXD, the receive pin for UART
5. GND

// Для торгівлі я б не радив його використовувати, зі свого досвіду можу передбачити, дівки-продавщиці його миттю угробити.

1. Спасибі за інформацію по роз'єму.

У мене трохи інша цоколевка. Я витягнув з принтера плату. Виявилося, що роз'єм підписаний на зворотній стороні плати:

2. Взагалі сигнал CTS потрібно використовувати як сигнал для пригальмовування компа при відправці даних в принтер. Тобто він призначений для повідомлення комп'ютера стану принтера, що він (принтер) не може приймати дані. Якщо комп проігнорує це сигнал, то принтер просто ці дані відкине.

Однак залишається питання - а ПО принтера використовує цей сигнал або він тільки фізично присутній на платі принтера? Це потрібно перевірити. Напевно я це теж зроблю. Цікаво ж! Та й певна користь теж є.

3. Я не займаюся торгівлею. У мене нсколько інша специфіка.

>> Як думаєте, заведеться на старих бібліотеках?
Вибачте, не зрозумів про які бібліотеки йдеться.

>> У Вас на одному ПО обидва працюють?
Я і тут не зовсім зрозумів Вас. Якщо Ви маєте на увазі ПО, яке зашито в мікроконтролері принтера, то я не можу відповісти на Ваше питання. Я не знаю що конкретно робить програма Ширлі Ву - злівает вона тільки конфігураційні дані в принтер (ну, може бути ще таблиці растеризации символів) або вона цілком перепрошивати все ПО принтера (за винятком завантажувача). Єдине що я можу Вам сказати - так це тільки те, що програмою Ширлі Ву я програмував обидва типи принтерів. Обидва принтера програмуються нормально.

Різниця між двома типами принтерів полягає тільки в рівні і полярності сигналів, якими вони зв'язуються із зовнішнім світом.

TTL-версія принтера за допомогою сигналів мікроконтролерів безпосередньо. Тобто рівень логічного нуля дорівнює 0 Вольт. Рівень логічної одиниці дорівнює +3.3 В.

Версія RS232 принтера використовує рівні сигналів стандарту RS232 (вибачте за тавтологію!). Тут рівень логічного нуля - це напруга від плюс 3 до плюс 15 Вольт. Рівень логічної одиниці - напруга від мінус 3 до мінус 15 Вольт.

Мікросхема, відсутня на платі принтера версії TTL, як раз займається тупим перетворенням рівнів сигналів. Таким чином, для підключення до комп'ютера потрібно використовувати версію принтера з інтерфейсом RS232. Якщо потрібно підключити принтер безпосередньо до саморобного пристрою на базі мікроконтролера, то краще використовувати TTL-версію принтера. Але якщо з якихось причин під рукою виявилася не та версія принтера, то переробити її в потрібну, я думаю, не повинно становити великої праці для людини, яка знає електроніку і вміє паяти.

-----------------
На жаль, Ваш лист не може бути доставлено одному або декільком одержувачам:

Схоже лайка йде на зіповать архів з програмою. Зараз я ще раз спробую відправити лист, тільки вкладу файл не .zip файл, а перейменують його в .jpeg. Може проковтне 😦

Що стосується TTL і RS232, то я розумію різницю. Тим більше, я хочу замовити принтер без RS232 відразу з TTL - у них є така опція. Занепокоєння викликала саме ПО зашите в принтер. Елементна ж база ідентична, як я розумію. Питання наскільки вони різняться на рівні роботи з Python.

Думаю, треба замовити а там розберуся 🙂

Я не знайомий з бібліотекою Adafruit. Назва це я начебто вже десь бачив, але де, згадати не можу. А шукати не охота.

Елементна база принтерів ідентична, за винятком установки компонент, що відповідають за тип інтерфейсу. Друкована плата (малюнок, доріжки) - одна і та ж.

Ви можете замовити принтер з інтерфейсом RS232, а потім феном «здути» мікросхему. А коли знадобиться, заново запаяти її.

Схема принтер дуже стандартна. Ніяких вишукувань в схемотехніці немає.

Прийшов такий, список тесту узагалі не друкує, друкує половину першого рядка, після цього порожнеча.

Змінив кодування на 1251, після цього на тестовій сторінці друкує «cp1251» з нового рядка нескінченно і все.

Драйвера під Віндоус встановив, що не друкує нічого, кодування, блокноти, то застряє друкувати, то друкує пусте, все бестолку.

Мікроконтролер приїде не скоро, хочеться друкувати засобами пк, чи не підкажіть як?

Так ж не знаю що і сказати!

Може блок живлення слабенький? У Вас є чим поміряти напругу харчування під час друку? Звичайно, краще б подивитися осциллографом.

Спробуйте паралельно харчуванню увіткнути електролітичний конденсатор на 1000-5000 мкФ.

Таким чином, робоча схема виходить тільки тоді, коли з білого роз'єму все підключено до перехідника UART на пк (включаючи харчування, не тільки txd, rxd) і плюс до цього використовується зовнішнє живлення. Так і має бути?

Отже. При підключенні ланцюгів RxD і TxD потрібно підключити ще і загальний провід. Ви це зробили?

Наступний момент - провід RxD від конвертера USB-UART потрібно підключити на точку TxD у принтера. І навпаки - TxD на RxD. У Вас так само?

Зверніть увагу, що і напруга живлення, і рівні сигналів у принтера і у конвертера повинні бути однаковими. Небажано підключати 5-вольта перехідник до 3.3-вольтової принтеру. Можливо навіть буде працювати, але краще не ризикувати. Я не знаю мікроконтролер LPC, який застосовується в принтері. Висновки у нього можуть бути толерантні до 5-вольта сигналам, а можуть і ні. З кого попит, якщо Ваш конвертер виявиться 5-вольта?

Контакти G (GND) на роз'ємах харчування і сигнальному - пов'язані один з одним. Контакти VH також пов'язані один з одним. Тому можна їх використовувати хоч на тому, хоч на іншому роз'ємі.

З мене поганий шаман. Я не вмію ставити точні діагнози дистанційно. Вибачте, якщо щось не так.

Тобто що мене дивує, що на схемах, які я знаходив rxt і txd кидалися на Ардуіно, а харчування VH G прокидає або на зовнішнє харчування, або на VH G Ардуіно. З пк так не вийшло, довелося підключати всі одночасно.

Харчування VH має бути 9-12В і забезпечувати хороші струми. Зараз на вскидку не скажу скільки, але 1-2 ампера напевно потрібно забезпечити. Інакше світлодіоди в друкованій голівці не створять потужного випромінювання і не розігріють папір.

Якщо Ви спробували живити принтер взагалі від USB, який видає всього 5 В, і струм не більше 0.1 мА (0.5 мА - за запитом), то, природно, цей варіант не пройде.

Вітаю!
А у Вас ще збереглася програма від Shirly для зміни швидкості передачі цього принтера?