Как перепрограммировать чип картриджа принтера
превращаем его в ручной принтер / Хабр

Ещё с юности, когда у нас был старый DeskJet, меня интересовали картриджи струйных принтеров. Эти картриджи казались очень интересными и как только в них заканчивались чернила, я сразу забирал их себе. В то время я не мог сделать с ними ничего, кроме как разобрать и пачкать руки… Хоть я и знал, что там внутри есть какая-то сложная электроника, но при касании контактов батарейкой не происходило ничего интересного, а моих знаний по электронике на большее не хватало.
Чуть позже, когда я стал студентом, мне удалось раздобыть старый струйный принтер. В то время сам я пользовался лазерным принтером, поэтому он мне был не очень интересен, зато было любопытно исследовать картриджи и попытаться выполнить их реверс-инжиниринг. Я в самом деле написал статью об управлении этими картриджами, и хотя они работали достаточно хорошо, были и недостатки: мне так и не удалось выяснить точный порядок сопел, картридж был только монохромным (печатал маджентой), к тому же довольно старым, а потому разрешение оказалось довольно низким.
Недавно моя девушка занялась рисованием, поэтому это стало хорошим оправданием для возврата к струйным картриджам в надежде, что и мне удастся нарисовать что-то на холсте. На этот раз мне повезло: удалось найти способ привязки всех сопел к правильным сигналам. Кроме того, сегодня картриджи принтеров управляют бОльшим количеством сопел используя меньшее количество сигналов, что упрощает управление картриджем и увеличивает поверхность, которую можно покрыть за один проход.
Мне наконец-то удалось получить управление трёхцветным картриджем и печатать в полном цвете!
Если вы хотите пройти со мной путь от кучи принтеров до полного контроля над картриджем принтера, то я делал доклад об этом на Hackaday Supercon 2018. Видеозапись выступления добавлена ниже. Если вам интересны подробности реверс-инжиниринга, то посмотрите его. В статье я расскажу о технических деталях созданной мной электроники, а также конкретные подробности управления картриджем, чтобы вы сами смогли нарисовать Nyancat при помощи ESP32 или другого микроконтроллера.
Если вы не смотрели видео, то вот его содержание вкратце: я разобрал цветной картридж для принтера HP1112 (в Китае это картридж HP 803, но артикул зависит от региона), сделал снимки кристалла и пытался разобраться, как он работает. Когда мне не удалось выяснить многого, я начал считывать сигналы, передаваемые между принтером и картриджем, разобрался, какие сигналы нужно отправлять, чтобы картридж подчинялся моим приказам, а затем распечатал Nyancat и другие забавные штуки.
Часть исследования, посвящённая таймингам сигналов, в основном была процессом проб и ошибок. Я могу только догадываться, какая связь существует между сигналами, поэтому было довольно сложно разобраться в порядке между фронтами и в том, какие сигналы можно отложить, а какие нужно передавать вовремя. Для получения этой информации я изучил кремний картриджа. Оказалось, что мне и в самом деле удалось получить её, засунув картридж под микроскоп, но совсем не так, как я ожидал.
До выступления на Supercon я в изучал цветные картриджи, потому что они казались мне самыми интересными. После возвращения с Supercon мне захотелось выполнить обратную разработку и чёрного картриджа: его печатающая головка крупнее, чем у цветного картриджа, поэтому за раз я мог бы печатать больше. Вероятно, добавить поддержку и этого картриджа будет не так сложно: расположение контактов кажется таким же, и я знал, что протокол, скорее всего, будет похожим, потому что уже пробовал подключать чёрный картридж к своему «железу». Даже несмотря на то, что ПО передавало цветные изображения, ему всё равно удавалось что-то печатать.
Вот что я сделал с цветным картриджем: засунул его под микроскоп, убрал силиконовое покрытие с контактов, подготовился к соединению нескольких снимков в одно крупное изображение. Однако чёрный картридж отличался от цветного тем, что на его металлической пластине с соплами было больше надписей: под силиконовым покрытием скрывались названия сигналов для всех контактов!

(Кстати, если вы хотите посмотреть полные снимки с микроскопа во всём 40-мегапиксельном величии, то вот shield и кремний цветного картриджа! Полюбуйтесь на сложность сопел и снимка кристалла чёрного картриджа!)
Хотя может показаться, что это не так уж и много, в море немаркированных печатных плат, чипов без справочных материалов и артикулов, которые никуда не ведут, названия нескольких сигналов — это настоящая находка. По наитию я вбил отдельные названия сигналов с названием «Hewlett Packard» в Google Patents и обнаружил конкретный патент (и другой, более старый, на который ссылается первый) с чётким описанием технологий и сигналов, используемых в картриджах. Это бы сэкономило мне так много времени, когда я боролся с таймингами картриджа… ну да ладно. Могу искренне сказать, что эту подсказку найти было очень сложно: сигналы были не только покрыты силиконовой плёнкой, но и оказались крошечными: буквы имеют размер всего 30 микрометров, а это меньше, чем толщина человеческого волоса.
Патент описывает внутреннюю работу картриджа и его стоит прочитать (если вам удастся разобраться в использованном там юридическом жаргоне) просто чтобы понимать, насколько странную логику иногда применяет HP для управления всеми соплами. Сам по себе патент полезен, но его недостаточно для управления картриджем; по крайней мере, основная часть предпринятых мной трудов по реверс-инжинирингу всё равно была бы необходима, даже если бы у меня был этот патент.
Здесь и ниже я буду использовать названия сигналов и контактов, применяемые в патенте. Учтите, что в коде всё равно могут встречаться мои собственные названия сигналов; таблицу переводов я включу вместе с документацией.

Итак, вот как выглядят исследуемые картриджи. При поверхностном взгляде это довольно простые устройства: внутри они почти полностью состоят из пропитанной чернилами губки. В случае с картриджем, поставляемым в комплекте с принтером, чернил очень мало: губками занята всего половина места в картридже, а сами губки тоже наполовину пусты:

На боку есть 16 контактов, идущих снизу, где находится печатающая головка. Как можно было увидеть на снимках с микроскопа, в печатающей головке чёрного картриджа примерно 336 сопел, а в цветном картридже — 612 сопел. На печатающей головке сопла расположены вертикальными рядами, и каждым соплом можно управлять электроникой, чтобы оно выстреливало крошечной капелькой чернил вниз, в сторону вставленной в принтер бумаги. Перемещая головку по вертикали, принтер может печатать «полосу» или любое другое изображение; эта полоса в случае чёрного картриджа имеет длину примерно 15 мм, а для цветного картриджа — 8 мм.
Очевидно, что соплами можно управлять с помощью контактов. Согласно крошечным надписям на печатающей головке, контакты содержат следующие сигналы:

Так как контактов всего 16, должна существовать какая-то схема мультиплексирования для управления всеми соплами. В патенте объясняется, как это работает: управление соплами разделено на 14 отдельных групп. Эти группы срабатывают последовательно: сначала получает свои данные и срабатывает группа 1, затем группа 2, и так далее. Каждая группа управляет максимум 24 соплами, а данные для них передаются по трём шинам передачи данных. В случае цветного картриджа данные в трёх шинах соответствуют цветам: D1 — это данные жёлтого цвета, D2 — данные мадженты, а D3 управляет соплами, печатающими цианом.
В патенте работа подробно описывается на примере одной шины данных. На этом рисунке из патента показаны используемые сигналы:

В шине данных содержится восемь байтов, 0-7. Чётные байты управляются задним фронтом DCLK, нечётные байты — задними фронтами S1-S4. Сопла, данные которых управляются первыми четырьмя байтами, можно включить подачей питания по шине питания F3; сопла, связанные с последними четырьмя битами, включаются шиной F5.
Я понятия не имею, почему HP решила использовать для управления данными в соплах такой сложной схемой. Можно сказать, что здесь бы вполне нормально сработало нечто очевидное, вроде регистра сдвига. Я понимаю, что HP использует свои патенты как оружие против компаний, занимающихся перезаправкой картриджей; возможно, кто-то уже запатентовал более простое решение, и им пришлось придумать это более сложное решение, чтобы быть уникальными.
На этом графике, сделанном мной на логическом анализаторе, несложно найти сигналы, описанные в патенте:

Кроме управления соплами, картриджу также требуется сигнал (csync) для перехода к следующей группе сопел или для сброса и возврата к первой группе. Его можно увидеть на изображении с логического анализатора: на нём показаны предпоследняя и последняя группы из 14, а сигнал csync имеет в последней группе узнаваемую форму; он выполняет «сброс» картриджа, чтобы следующей получала данные первая группа. Этот сигнал также можно использовать для обхода групп сопел в обратном порядке; это полезно, когда печатающая головка ходит и слева направо, и справа налево. Хотя во втором патенте описывается, как это работает, я решил просто закодировать переход к следующей группе и выполнять сброс сигналов, показанных на моих изображениях линией csync.
Заметьте, что всё это происходит с довольно большой скоростью; задержка между двумя передними фронтами сигнала DCLK примерно равна 0,4 мкс, а расстояние между группами примерно равно 4 мкс.
Теперь мы знаем, что каждый бит в этих трёх шинах данных из 14 байт содержит команду срабатывания для одного сопла. Если бит равен 0, то соответствующее ему сопло срабатывает; если равен 1, то сопло не срабатывает. Чего мы не знаем, так это соответствия между битами и соплами. Если вы смотрели презентацию, то знаете, как мне удалось в этом разобраться: я распечатал на работающем принтере известный мне паттерн, перехватывая сигналы с помощью логического анализатора, а затем разобрался, каким должен быть порядок сигналов, чтобы декодировать сигналы обратно исходное изображение
.
К сожалению, соответствие битов соплам кажется довольно постоянным, но не полностью логичным. Похоже, что в основном это вызвано необходимостью физического отдаления на достаточное расстояние одновременно срабатывающих сопел (чтобы избежать перегрева или возникновения локального вакуума в ёмкости с чернилами). Кроме того, я также выяснил, что простота маршрутизации сигналов в картридже может сделать сопоставление битов и сопел довольно запутанным. В своей прошивке я просто реализовал это сопоставление как набор таблиц поиска.
Теперь, когда мы знаем, как работают сигналы, мы можем управлять картриджем принтера с помощью простого микроконтроллера, верно? Ну, не сразу. В картридже принтера не используется простая логика на 5 В или 3,3 В. Шины данных управляются шинами на 16 В или 9 В. Шины питания тоже управляются 16 В и на самом деле в зависимости от количества срабатывающих сопел их можно подтянуть до тока источника питания. Нам нужно выполнить преобразование уровней.
В качестве преобразователя уровней я выбрал MC14504. Это старый однонаправленный шестнадцатеричный чип преобразования уровней, который может повышать напряжение до 18 В. Хоть этот чип и работает, оглядываясь назад, могу сказать, что это был не лучший выбор: он может подавать на выход всего несколько мА и имеет довольно большую задержку распространения. Думаю, он обеспечивает задержку некоторых выходных сигналов в зависимости от картриджа и подаваемой на выводы чипа нагрузки. У меня есть по крайней мере один картридж, которому требуется для работы сигналов небольшая регулировка таймингов, и я думаю, что причина в этом. К сожалению, готовые преобразователи уровней на 16 В сегодня не так доступны, поэтому я не могу заменить его чем-то получше. Впрочем, этого классического чипа с небольшой регулировкой оказывается вполне достаточно.
С шинами питания всё немного сложнее. Кроме того, что эти контакты забирают большую долю тока, также они непосредственно подключены к резисторам включенных сопел: если по каким-то причинам питание будет подаваться слишком долго, то эти крошечные резисторы перегорят и сопло полностью выйдет из строя. К тому же, этого «слишком долго» достичь довольно просто: достаточно включить сопла всего на несколько микросекунд, а если подать питание всего на миллисекунду, то они просто испарятся, полностью сломав сопло. Чтобы этого не происходило из-за программного бага или плохого соединения, я добавил аппаратной логики, обеспечивающей ограничение импульса небольшой величиной, кратной 10 мкс.

В первом прототипе я оставил несколько преобразователей уровней и не знал, как проявит себя ПО, поэтому решил проблему настоящим однотактным мультивибратором. В этой схеме два использованы мультивибратора в 74HC123, генерирующие импульсы, ширина которых задаётся сочетанием R/C, подключённого к контакту RCExt. Получившийся импульс генерируется только при возрастающем входном сигнале, поэтому постоянно высокий сигнал не приведёт ни к чему, кроме точно заданного, но паразитного импульса на выходе. После этого канал MC14504 используется как преобразователь уровней для поднятия напряжения до +16 В, а P-канальный МОП-транзистор обеспечивает необходимый ток.

На второй печатной плате я понял, что если изменю логику контактов питания так, чтобы они не использовали два канала схемы сдвига уровня, то достаточно будет всего двух чипов MC14504. Теперь у меня есть достаточно хороший программный контроль над шириной импульса, но мне всё равно хочется иметь защиту от постоянно высокого сигнала входного контакта. Вот схема, к которой я пришёл. Она работает так: в нормальном состоянии при низком сигнале PWRB_IN конденсатор C28 пуст, потому что любое напряжение в нём медленно стекает по R20 и R21: затвор транзистора Q4 имеет высокий уровень, а PWRB_OUT отсоединён от шины питания 16 В. Как только в PWRB_IN появляется высокий сигнал, Q6 заземляет один из концов C28; так как напряжение по нему равно 0 В, изначально это также подтягивает вниз другую его сторону, которая соединена с затвором Q4. Подтягивание затвора Q4 вниз делает его проводимым, и это позволяет току течь от +16 В к PWRB_OUT. В обычном состоянии PWRB_IN достаточно быстро снова переходит в состояние с низким уровнем, закрывая затвор Q4 и прерывая ток. Однако пока PWRB_IN имеет состояние low, C28 медленно заряжается: одна его сторона заземлена Q6, а другая подключена к 16 В через R21 и R31. Когда конденсатор достаточно зарядится, Q4 «увидит» высокий уровень на своём затворе и перекроет ток в PWRB_OUT, даже если PWRB_IN по-прежнему находится в состоянии с высоким сигналом. Этот механизм гарантирует, что PWRB_OUT будет подавать питание только в ограниченный промежуток времени.
В схеме также имеется небольшой резистор, соединённый последовательно с шиной питания 16 В (R31), а также небольшой конденсатор, подключенный параллельно к выходному сигналу (C15). Они нужны для «снятия напряжения» сигнала питания: без них резкое включение и отключение Q4 будет индуцировать кучу электромагнитных помех, искажающих сигналы, передаваемые в картридж.
Кроме этой логики больше особо ничего не требуется. Очевидно, что необходимы преобразователи уровней на +9 В и +16 В. Источник питания +9 В должен быть довольно скромным: я не замечал, чтобы эти шины в целом использовали больше нескольких мА. Так как он питает резисторы сопел, источник 16 В должен чуть более сильным: я сделал так, чтобы мой мог обеспечивать непрерывно не менее 400 мА, а также добавил довольно много развязывающей ёмкости.
Наконец, самая важная нагрузка по обработке изображений и генерации сигналов ложится на плечи микроконтроллера. Для этой цели я выбрал ESP32, в основном потому, что взял несколько штук с работы, но ещё и потому, что в нём есть довольно мощный контроллер I2S, в котором используется очень удобный параллельный режим: по сути, мы можем просто задать тактовую частоту, указать контроллеру I2S область памяти, и он будет параллельно выводить эти байты. Благодаря этому он идеально подходит для генерации необходимых сигналов управления; то, что у него есть два мощных ядра на 240 МГц, также помогает в обработке изображений.
Разумеется, несколько преобразователей и МОП-транзисторов сами по себе не могут стать работающим контроллером картриджа принтера. Поэтому я создал отдельное устройство, задуманное как платформа для экспериментов с картриджем и его возможностями. Оно имеет модуль ESP32, логику, необходимую для управления картриджем, а также несколько источников питания для работы от литий-ионной ячейки. Также оно оснащено несколькими датчиками, призванными компенсировать неидеальные движения рук человека, а также кнопками и дисплеем, обеспечивающим обратную связь о печатаемых изображениях. Давайте разберём компоненты, возможно, для кого-то это станет источником вдохновения для хакинга картриджей:


Давайте начнём с источника питания. Питание поступает от литий-ионной ячейки и преобразуется в 3,3 В, 16 В и 9 В. Напряжение 3,3 В необходимо для датчиков и ESP32; оно генерируется с помощью простого LDO-регулятора HT7833. Напряжения 9 В и 16 В генерируются двумя повышающими преобразователями, созданными на основе чипа повышающего преобразователя XR2203. Учтите, что источник питания 16 В должен трудиться намного усерднее, чем источник питания 9 В; картридж потребляет от 9 В всего несколько миллиампер. Два повышающих преобразователя созданы на одном чипе просто потому, что мне достаточно было купить для обоих один тип компонентов.
Так как всё устройство питается от литий-ионной ячейки, нам нужно как-то заряжать и её. У меня осталось немного места, поэтому я добавил зарядное устройство литий-ионных аккумуляторов на основе TP4056, чтобы можно было подзаряжать аккумулятор от любого USB-источника питания.

Интеллектуальность устройства обеспечивается модулем ESP-Wrover32. Я использовал вариант с 8 МиБ флеш-памяти и 8 МиБ ОЗУ SPI; вполне достаточно для выполнения сложной обработки изображений. Ещё у модуля есть 5-контактный разъём, позволяющий программировать и отлаживать прошивку, а также две кнопки, которые можно использовать для выбора опций и запуска отрисовки при работающей прошивке.

Выбранные опции отображаются на небольшом цветном ЖК-экране размером 160x80. Экран имеет соединение SPI и может напрямую управляться одним из периферийных SPI-разъёмов, имеющихся в ESP32.

Это интерфейс картриджа. Как сказано выше, он не особо сложен. Уровень всех сигналов преобразуется парой MC14504, один для сигналов 9 В и один для сигналов 16 В. Также на схеме видна схема сдвига уровня/защиты, управляющая двойными шинами питания.



Вот три использованных мной типа датчиков. Все они подключены с помощью одной шины I2C, то есть в ESP32 они занимают всего два GPIO. Это блок инерциальных датчиков MPU9250 (акселерометр, гироскоп и цифровой компас) для измерения движения, три лазерных датчика расстояния VL53L0X (показан только один), направленные вверх, влево и вправо. Идея заключается в том, что комбинируя эту информацию, теоретически можно определить абсолютное положение картриджа. Это полезно, например, при рисовании больших изображений свободным движением руки. Последний — это цветовой датчик TCS3472. Цветовой датчик расположен рядом с белым светодиодом; его можно использовать для «копирования» цвета с объекта или для компенсации цвета носителя, на котором мы печатаем.

Так как мне нужны были дополнительные GPIO, я подключил к шине расширитель GPIO. Он контролирует шины сброса для трёх датчиков расстояния, шину сброса для ЖК-экрана, включение повышающего преобразователя и два МОП-транзистора (не показаны), которые управляют белым светодиодом, используемым для освещения цели для цветового датчика, и подсветку ЖК-экрана. Датчикам расстояния нужна отдельная шина сброса, потому что они включатся по тому же I2C-адресу. Однако у них есть команда, изменяющая I2C-адрес после включения. Включая и перемещая их один за другим по разным I2C-адресам, я могу контролировать все три по одной I2C-шине.

Вот печатная плата, которую я спроектировал на основе схемы. Она имеет странную форму, потому что должна быть разделена на четыре отдельные платы и «окружить» картридж принтера. Они соединены электрически и физически; преимущество этого в том, что производители печатных плат не считают такую схему четырьмя отдельными платами и платить нужно только за одну.

Ещё одно преимущество в том, что я могу собирать плату как один элемент, а затем протестировать её, когда все компоненты находятся на одной плоскости. Это позволяет мне не заниматься тщательной балансировкой собранного устройства при отладке. Небольшое примечание: датчики VL53L0X используют инфракрасный лазерный луч; похоже, он достаточно силён, чтобы пробить фильтр защиты от ИК-излучения в моей «зеркалке» и проявляется в кадре как небольшие фиолетовые пятна света.

И вот каким будет конечный результат после сборки. Заметьте, что при разделении плат соединения между ними оказались разорванными. У плат есть небольшие площадки для пайки, к которым можно припаять небольшой кусок провода и загнуть его. Очевидно, что для производственного уровня нужно будет использовать технологии наподобие FPC PCB или flex-rigid PCB, но для дешёвого прототипа это вполне сойдёт.
Если вы хотите использовать этот прототип для справки или поэкспериментировать с ним, то можете скачать файлы проекта KiCad (там же лежат схема в pdf и gerber) и собрать его самостоятельно, или использовать его подсистемы.
Так как это прототип, ПО довольно… неоднородно. Я дам ссылку на репозиторий, в котором его разрабатывал, но учтите, что это слепок почти всего цикла разработки, поэтому в нём содержится всё по порядку, от записей сигналов логическим анализатором до распечатанных Nyancat и Моны Лизы. К сожалению, поэтому код представляет собой почти недокументированный хаос с наполовину завершёнными путями и остатками старого кода. Если вы всё ещё хотите изучить его, то можете склонировать в git этот этот URL.
Однако если вас больше интересует ПО, способное с лёгкостью управлять картриджем принтера с помощью ESP32 (и содержащее полезные процедуры для управления им через другой микроконтроллер), то продолжайте чтение.
Чтобы упростить для других умельцев использование принтерных картриджей в их собственных проектах, я также создал минимальную работающую версию драйвера. В нём отсутствует поддержка всей периферии и хаки из кода прототипа, но архитектура подчищена и поэтому может стать прочным фундаментом для дальнейшего развития. В драйвере есть простой пример программы, печатающей при нажатии кнопки «HELLO!» цветным или чёрным картриджем.
Я не создал для него специализированного оборудования, но по сути вы можете заново использовать «железо» из предыдущего раздела: просто возьмите источник питания, ESP32
и преобразователи уровней и примените их в собственной схеме. Также можно полностью использовать описанный в предыдущем разделе прототип: достаточно просто обеспечить постоянный высокий сигнал BOOST_EN, чтобы повышающие преобразователи 9 В/16 В были всегда включены. (Таким образом я отлаживал код.)
Сам код можно найти на Github, он структурирован стандартно для проекта ESP-IDF. Основной код драйвера находится в components/printcart; код, считывающий кнопку и решающий, когда включать сопло, а также код инициализации содержится в main/main.c. В примере данные сопел считываются из встроенного rgb-изображения.
Система имеет следующую архитектуру: printcart_i2s.c содержит простой драйвер для параллельного режима периферийных разъёмов I2S контроллера ESP32. Он выделяет два буфера и передаёт из буферов 16-битные слова с частотой 3,3 МГц контактам GPIO (максимум 16 контактам). (Здесь эти контакты GPIO соединены с преобразователями уровней, управляющими картриджем.) При каждом опустошении буфера драйвер выполняет обработчик события для заполнения буфера.
Обработчик события находится в printcart_buffer_filler.c. Он получает данные сопел из очереди данных сопел и передаёт их в функцию в printcart_genwaveform.c, которая по шаблону преобразует эти данные сопел в сигналы. Шаблон зависит от типа картриджа (цветной или чёрный), и его можно изменять, загружая в браузер tools/waveform_editor.html.
С другой стороны очереди данных сопел находится процедура цикла в main.c. Она ожидает нажатия кнопки, и при нажатии генерирует данные сопел парсингом простого файла изображения, преобразованного в сырые данные rgb и встроенного в прошитый двоичный файл, сканируя данные слева направо. Благодаря этому можно нажать кнопку, проводя картриджем над бумагой, и распечатать содержимое изображения в виде полосы чернил.
Конечный результат выглядит примерно так:

Тут сильно заметно, что чёрный картридж печатает примерно в два раза больше по высоте, чем цветной (0,7 см и 1,5 см), поэтому если вам не нужен цвет и требуется хорошая видимость, то лучше выбирать чёрный картридж. Также стоит заметить, что в main.c есть define, переключающийся между двумя картриджами; код может работать с обоими. Не совсем понятно, почему на чёрном изображении есть смазанные линии: возможно, в моём сигнале есть ошибка, а может быть, картридж немного устал от тестирования. Как бы то ни было, распечатанные данные красивы и хорошо узнаваемы.
Реверс-инжиниринг этих картриджей принтера был долгим приключением, но в конце концов моя работа оказалась плодотворной; хоть и осталось несколько загадок (например: что делает контакт ID?), я считаю, что хорошо разобрался с загадками сигналов, используемых в картридже. Надеюсь, что опубликовав код и схемы этого проекта, я добавлю в инструментарий умельцев, хакеров и творцов использование принтерных картриджей. Не могу дождаться, когда увижу интересные примеры использования, которые придумает сообщество. Если вам удастся сделать что-то интересное с моей работой, то обязательно пришлите мне сообщение.
Что же касается моего намерения творить искусство… эммм… вот это можно так назвать?

Как я могу сбросить уровень чернил в картридже HP до полного?
Что такое чип картриджа и как взломать картриджи HP Instant Ink
Большинство струйных картриджей HP поставляются со встроенными микросхемами, например, более старая модель 564, 920 или более новая 932, 933, 950, 951. Эти чипы выполняют две основные функции. . Одна из функций - подсчет количества напечатанных страниц и предотвращение того, чтобы в принтере закончились чернила. В принтере нет «датчика чернил» или «датчика чернил» даже для таких продвинутых моделей, как 6700, 8610 или 8620.Принтер оценивает уровень чернил, подсчитывая напечатанные страницы. Затем чип сохраняет информацию, и выполняется оценка. Если вы перенесете картридж во второй принтер, принтер оценит тот же уровень чернил.
Основная функция чипа - подсчитывать количество напечатанных страниц и угадывать, сколько чернил осталось в резервуаре.
Картридж не имеет «датчика чернил» или «датчика чернил», даже для продвинутых принтеров, таких как 6700, 8610 или 8620. Оценка производится чипом.Он просто рассчитывается путем подсчета количества страниц, напечатанных принтером, которое регистрируется чипом. Например, если ваш пурпурный картридж 564 предназначен для печати 300 страниц, а ваш картридж - 150 страниц, тогда принтер скажет, что он наполовину пуст. Следовательно, у вас может быть много чернил, когда HP сообщает, что ваш картридж пуст. С другой стороны, у вас может не быть чернил, но HP утверждает, что они все еще есть. Чтобы решить эту проблему, HP делала картриджи 564 и 920 с маленькими окошками по бокам.
Другая функция чипа - предотвращение повторной заправки картриджа.
HP защитила данные чипа с помощью 128-битного шифрования, что сделало невозможным сброс номера страницы. Даже если картридж заправлен полностью, принтер все равно запомнит старый номер страницы. Если вы зайдете в этот блог, чтобы узнать, как сбросить чип, вы можете расслабиться, потому что на взлом шифрования уйдут миллионы лет.
Однако HP позволит вам заправлять свои картриджи.
Как это хорошо? Раньше с HP не было так хорошо. В 2010 году коллективный иск обвинил HP в том, что в принтерах мало чернил, даже если это не так. Во втором коллективном иске утверждалось, что HP отключила картриджи, даже когда остались чернила. После проигрыша обоих судебных исков и выплаты миллионов долларов HP теперь позволяет картриджу продолжать печать с «пустыми» чипами, но потребители должны выяснить, как отключить монитор уровня чернил на принтере. В судебном иске утверждается, что HP смешивает цветные чернила для печати черным, поэтому клиенты не могут просто печатать черными и не покупать цветные чернила. Подробную информацию можно найти в Consumer Reports и HPPrinterSettlement.com. Плата за новый картридж за большее количество чернил расточительна, если картридж идеально подходит для повторного использования, а также стоит дорого, если учесть цены HP на новый картридж. Есть два способа отказаться от дорогих чернил HP. Вы можете просто заправить оригинальный картридж HP. На веб-сайте BCH есть подробные инструкции, как это сделать. Вы также можете использовать перезаправляемый картридж стороннего производителя или систему непрерывной подачи чернил, также известную как CIS.
Take-home Message
Таким образом, все (или почти все) картриджи HP можно заправлять.Не все чипы можно сбросить или изменить, но HP всегда предоставит вам решение для пополнения. В противном случае они будут не уважать постановление суда. В 2016 году HP случайно отключила все чипы сторонних производителей в моделях 934, 935 и 950. Они немедленно принесли извинения и выпустили прошивку , позволяющую использовать чипы картриджей сторонних производителей. Вот их письмо с извинениями (извинения HP за то, что не позволяют клиентам использовать повторно заправленные картриджи). У нас есть снимок экрана:
Конечно, это письмо с извинениями было озаглавлено «Посвящается наилучшему опыту печати."Спасибо за опыт, HP! Так что выход есть всегда; вам просто нужно знать это. Иногда вам нужно обновить или понизить версию прошивки или сбросить настройки до заводских. Кстати, не обращайте внимания на Срок годности чернил. Это просто произвольная дата, когда HP не соблюдает свои гарантии.
Три вида картриджей
1. Встроенный картридж
Эти картриджи имеют печатающую головку, встроенную в каждый блок. бесхитростные патроны и чрезвычайно легкое поражение.Примеры этих картриджей: 21, 51, 60, 61 (например, HP OfficeJet 1000, 3831, 4500), 62, 63 (4650), 64 и 65.
Эти микросхемы просты. В некоторых более ранних моделях Deskjet принтер отслеживает только два-три картриджа. Если вы перевернете несколько наборов картриджей, принтер покажет полный уровень чернил. Также вы можете вынуть из принтера аккумулятор материнской платы и получить тот же результат. Эти приемы не работают в новых моделях.
С новыми моделями, такими как HP 60, HP 61, HP 62, HP 63, HP 64, HP 65, вы не можете обмануть принтер, заменив наборы картриджей.Однако принтер задает только два набора вопросов:
1) «Обнаружен использованный или поддельный картридж, вы хотите его использовать? Да или ОК». Вам следует нажать «ОК» на ЖК-экране или кнопку ОК.
2) «Кто-то продал вам их как новые и оригинальные HP?» (Спрашивается только в принтерах с большими ЖК-экранами) Щелкните №
Тогда принтер позволит вам печатать вечно с этим картриджем. Уровень чернил не будет отображаться после порогового значения, но вы можете продолжить печать, и никаких программных или аппаратных средств не требуется.В прошивке HP есть ошибка, из-за которой кнопка «ОК» не отображается или не активируется физической кнопкой. Это случается не часто. Если это произойдет, попробуйте сделать несколько действий, чтобы прервать работу принтера. Примеры включают включение и немедленное нажатие кнопки «Домой», чтобы вы могли перейти на другой экран, а затем обратно на этот экран. Вы можете обнаружить, что этот экран «ОК» перезагружен и работает нормально.
2. Емкости для чернил с губкой.
Эти картриджи имеют чернильницу на одном конце и камеру для губки на другом.Примерами будут HP 564 (HP PhotoSmart 6520, 6525), 920 (OfficeJet 6000), как в HP 6500, 902 (например, OfficeJet Pro 6820, 6954, 6960, 6968, 6978), 934/935 (например, 6830, 6970). беспроводной). Нет никакой разницы между установочным картриджем и обычным картриджем, но картриджи XL имеют другую физическую конструкцию.
В настоящее время существует два различных типа решений для этих принтеров.
2.2 Одно из решений - использовать оригинальный чип HP.
Вы можете удалить чип OEM, а затем перенести его на картридж стороннего производителя.Одним из плюсов этого пути является то, что чип произведен HP. Кроме того, вы знаете, что он работал раньше и совместим. Чип HP тоже не портится, так что он будет как новый. Однако минус в том, что HP изменила дизайн чипа. Картриджи нового типа будут оснащены несъемными чипами, которые изображены ниже, чтобы вы не могли сделать то, что мы предлагаем выше. Съемный чип «старого образца» становится все более редким, а цена растет, поэтому поиск одного из них - не лучшее решение.Есть новые способы удаления чипа, но они по-прежнему дороги.
Для микросхемы нового типа вы можете использовать вращающийся инструмент, чтобы вырубить адаптер для микросхемы своими руками:
2.2 Другой вариант - использовать сторонний чип «ARC».
Аббревиатура ARC означает «чип с автосбросом». Эти чипы обычно бывают зелеными и производятся в Китае. HP шифрует данные, и нет возможности сбросить чип, и нет устройства сброса, которое могло бы обойти защиту.Следовательно, слово «ARC» неправильно истолковано.
Передняя и задняя части микросхемы HP564 ARC
Передняя и задняя части микросхемы BCH 564
|
|
Доступны два типа чипов «ARC». Один из них - « ARC Chip без уровня чернил ». Эти фишки заполнены случайными данными. Поскольку устройства HP не могут распознавать данные, но принтеру даны инструкции для печати, вы можете заставить его работать, выключив монитор уровня чернил.Плюсы этого чипа в том, что это новые чипы. Это может быть важно для тех, кто не любит подержанные или подержанные вещи. Минусы в том, что частота ошибок чипа выше, чем у двух других решений. Вы можете обнаружить, что принтер не считывает микросхему после установки. Как только вы заставите его работать, он будет не хуже оригинального чипа.
Другой чип «ARC» называется « ARC Chip с уровнем чернил ». Эта микросхема более сложная, чем упомянутая выше.Этот чип «ARC» содержит копии всех данных HP, помещенных производителем на новый чип. Эти чипы сначала показывают полный уровень чернил, а по мере использования будут отражать точный уровень чернил, как и обычный чип HP. Плюсы в том, что он новый и показывает полный бак. Кроме того, он более стабилен и безошибочен, чем «Чип ARC без уровня чернил», благодаря предоставленным ему данным. Однако, если вы ищете что-то экономичное, недостаток этого чипа в том, что он дороже, чем чип OEM и ARC без уровня чернил.
Внутри полиграфической отрасли люди называют эти сторонние чипы, совместимые с Hewlett Packard, « Gray Chips », потому что это не полное решение, но люди могут с ним жить. В следующий раз, когда вы увидите, как люди рекламируют чипы «ARC» для HP, вы теперь будете знать, что они имеют в виду, что это постоянный чип. Даже если принтер может выдавать сообщения об ошибках, мигать индикаторы, выполнять ненужное выравнивание страниц и отображать угрожающие предупреждения, вы можете продолжить печать.
3. Резервуар для чистых чернил
В этих картриджах нет губки, иначе говоря, без губки. Примеры: HP 932/933 (HP 6100, 7612), 950/951 (HP Oficejet 8600, 8610, 8615), 952/953. По модели принтера: HP Officejet 6600, 6700, 8620, a910 ...
1). Ранние модели, такие как HP 88, 940, Office jet 8500, 8500a, 8100, позволят вам печатать вечно, как и Sponge Ink Tank.
2) Начиная с HP 8600 Pro или Premium, HP предпочитает, чтобы у вас был чип стороннего производителя, не принадлежащий HP. Он покажет, что картридж xxx закончился, и вы не сможете печатать со старым (серым) чипом.Единственным исключением является картридж HP 952 (7740, 8720), серый чип которого все еще работает, когда мы пишем этот блог. Мы будем держать его в курсе.
Существует два типа микросхем сторонних производителей:
- Одноразовая микросхема. Их часто можно увидеть на «восстановленных» картриджах. Уровень чернил будет полным при первой установке и будет израсходован, как в настоящем картридже HP.
- микросхема ARC. Уровни чернил этого чипа можно сбросить. Сброс запускается принтером. Как только произойдет сброс чипа, принтер покажет «xxx чип поврежден».Причина в том, что принтер не может понять, почему у вас новый картридж, не открывая и не закрывая дверцу принтера. Итак, вы открываете и закрываете дверцу принтера, и вы обнаруживаете, что уровень чернил снова полный.
Для HP 952 HP по-прежнему позволяет заправлять оригинальный картридж и использовать его для печати, по крайней мере, на данный момент. ARC находится в разработке и выйдет через несколько месяцев.
10 мая 2016 г. BCH Technologies
.lugu / toner_chip_reset: Советы по сбросу тонер-чипа с помощью Arduino
перейти к содержанию Зарегистрироваться- Почему именно GitHub? Особенности →
- Обзор кода
- Управление проектами
- Интеграции
- Действия
- Пакеты
- Безопасность
- Управление командой
- Хостинг
- мобильный
- Истории клиентов →
- Безопасность →
- Команда
- Предприятие
- Проводить исследования
- Изучите GitHub
Как устранить неполадки в микросхеме картриджа Canon | Small Business
Чипы картриджей с чернилами в продуктах Canon служат нескольким целям. Сюда входит предотвращение установки картриджей сторонних производителей в принтеры Canon, а также выявление ошибок и отправка сообщений об ошибках на дисплей принтера. Большинство проблем с картриджами возникает из-за ошибок пользователя, таких как неправильная установка. Вы можете устранить неполадки в микросхеме картриджа Canon, наблюдая и понимая сообщения об ошибках, которые появляются на дисплее принтера.
Извлеките чернильный картридж Canon из принтера. Выключите принтер и выньте вилку кабеля питания из розетки. Подождите несколько секунд, затем подключите принтер и включите его.
Установите чернильный картридж в принтер. Подождите две минуты, пока картридж зарядится и инициализируется.
Проверьте дисплей принтера на наличие кода ошибки E5. Этот код ошибки в принтере Canon означает, что чернильный картридж был установлен неправильно. Чтобы устранить эту ошибку, повторите предыдущие шаги и установите картридж правильно, убедившись, что этикетка на картридже обращена вверх.
Проверьте дисплей принтера на наличие кода E8, если вы правильно установили картридж и не можете печатать. Код E8 означает, что поглотитель отработанных чернил валика заполнен. Чтобы устранить ошибку E8, откройте защитную крышку принтера, пока печатающая головка не переместится полностью влево. Выключите принтер и отключите его от источника питания. Снимите картридж с чернилами и защитную крышку принтера, нажав на две удерживающие защелки по бокам. Используя пинцет, снимите войлочные подушечки с поглотителя отработанных чернил валика; этот лоток находится под держателем чернильных картриджей.Промойте подушечки теплой водой и промокните насухо бумажными полотенцами. Дайте колодкам высохнуть на воздухе, а затем повторите действия по разборке в обратном порядке, чтобы установить их на место.
Проверьте дисплей принтера на наличие кода E4. Этот код означает, что в картридже нет чернил и его необходимо заменить.
Проверьте дисплей принтера на наличие кода ошибки E6502. Эта ошибка указывает на ошибку положения чернильницы. Чтобы устранить ошибку, переустановите картридж с чернилами, убедившись, что он правильно выровнен в держателе.
.Как сделать принтер Epson бесчиповым? Отключите микросхемы чернильных картриджей IC. Принтеру больше не нужны чернильные картриджи!
Как сделать принтер Epson бесчиповым? Отключите микросхемы чернильных картриджей IC. Принтеру больше не нужны чернильные картриджи!
28 августа 2017 г., ДжонНовая утилита сброса WIC позволяет некоторым моделям принтеров сделать их бесчиповыми .
Что это значит? Принтер
будет показывать 100% уровень чернил все время, когда вы его используете.
Вы можете достать чернильные картриджи или просто микросхемы IC, и принтер будет печатать как обычно.
После того, как вы измените прошивку принтера на Chipless Firmwar e - принтеру не нужно будет сбрасывать картриджи с чернилами, принтеру не нужно будет использовать чипы автосброса или чипы СНПЧ - больше не потребуется ни одного типа чипов картриджей!
Что для этого нужно?
1. Утилита последней версии WIC.
2. Принтер, поддерживаемый WIC и имеющий встроенное ПО без чипа.Например WF3620 -
3. Компьютеры с ОС Windows или MAC.
Начнем.
1. Подключите принтер к компьютеру с помощью кабеля USB и запустите утилиту WIC. Отключите все остальные принтеры от вашего ПК.
2. Нажмите кнопку Изменить версию прошивки .
3. Переведите принтер в режим обновления микропрограммы, следуя инструкциям для этой модели принтера.
После того, как вы переведете принтер в режим обновления прошивки, он будет отображаться как MFP-IPL - обратите на это внимание.
4. После этого необходимо открыть раскрывающийся список Версии прошивки с отключенными картриджами и выбрать модель подключенного принтера.
5. Введите ключ микропрограммы и нажмите ОК.
6. Подождите, пока не появится подтверждающее сообщение.
7. Выключите принтер и снова включите.
Вот и все. Теперь Вашему принтеру не потребуются картриджи с чернилами.
Таким образом, вы можете использовать картриджи с чернилами, перезаправляемые картриджи, СНПЧ или другие картриджи, какие захотите.
Принтер никогда не остановится из-за ошибки «чернила закончились» или «не оригинальные чернила».
Загрузите последнюю версию WIC здесь - загрузите здесь
Купить ключи прошивки, чтобы сделать принтер бесчиповым - Купить ключ прошивки
Есть вопросы?
Свяжитесь с нами:
Live Help - здесь
Printer Chipless Forum - перейдите сюда