Приобрел для коллекции Советский струйный принтер или, если быть точнее, устройство вывода информации печатающее ЭЛЕКТРОНИКА МС-6312 производства ПО «Радий». Мне достался «старичок» 90-го года выпуска.

Родной печатающей головки мне найти не удалось, поэтому я поставил HP 51604А. Хотя и её пришлось тоже поискать. Чтобы чужеродный картридж запустился необходимо поднять ему напряжение. Для этого рекомендуют заменить стабилитрон КС162А на Д814Д. У меня такого не оказалось поэтому заменил на КС213Б. В результате получил на выходе 26,5 В. Больше ничего менять не пришлось, даже электролитические конденсаторы не успели высохнуть. Ну если только чуть-чуть.)
С портом LPT у меня дома тоже напутано, а переходник заказывать долго. Всё это привело к вопросу: а что если запустить его через Arduino NANO? Тем более помимо демонстрации, можно поискать и практическое применение, например, печатать показания датчиков. Для примера написал программу, которая примерно раз в секунду считывает напряжения на аналоговом пине А0 и выводит его на печать.

Принтер поддерживает семи битные кодировки КОИ-7 Н0, КОИ-7 Н1 и КОИ-7 Н0/1. В данном примере использовалась КОИ-7 Н1. Передача данных происходит после того как принтер по линии ЗАНЯТ подал низкий уровень. Ардуино устанавливает нужные уровни на шине ДАННЫЕ и после чего подает СТРОБ низким уровнем.

Назначение |
Номер контакта 25-ти контактного соединителя принтера |
Пины Ардуино |
ЗАНЯТ |
3 |
D7 |
Д7 |
5 |
D4 |
Д6 |
6 |
D3 |
Д5 |
7 |
D2 |
Д4 |
8 |
D12 |
Д3 |
9 |
D11 |
Д2 |
10 |
D10 |
Д1 |
11 |
D9 |
Д0 |
12 |
D8 |
СТРОБ |
13 |
D5 |
ОБЩИЙ |
14 |
GND |
Вот вроде все хорошо, но чего-то не хватает. Очень хочется распечатать графику. Заливаем в Ардуинку программку. А на компьютере запускаем написанную на Python программу. И через нее отправляем на принтер картинку. Качество преобразования цветной картинки в чёрно-белую приемлемое, но если нужно лучше, то необходимо подготовить картинку с помощь сторонних программ для ЧПУ выжигания.

Файлы проекта:
https://disk.yandex.ru/d/eICt2rAyT9V2ew
Так что не только галоши делали в СССР ;-)
Автор: Попов Николай