Заменить чип на картридже Samsung как

Некоторые производители лазерных принтеров встраивают в картриджи чипы EEPRОM памяти для хранения актуальной информации о состоянии картриджа. Конкретно здесь рассматривается Samsung MLT-D104X (на 700 страниц) или MLT-D104S (на 1500 страниц) для таких принтеров как Samsung ML-1665. Ситуация с данными картриджами следующая.

В картридж встроен EEPROM чип с интерфейсом I2C… Картриджи стоят достаточно дорого (около 70$), поэтому есть вариант отнести картридж в неофициальный сервис, где его смогут перезаправить, а также сбросить счетчик страниц. При этом сброс счётчика стоит дороже самой заправки! Поэтому возникла идея научиться сбрасывать счетчик самим и отдавать картридж только на перезаправку (примерно за 10 баксов).

Итак, имеем:
Принтер Samsung ML-1665. Картридж Samsung MLT-D104X.

Хотим:
Сбросить счетчик страниц ну или продлить его работу иным способом.

Решение:
Неожиданно возникла идея применить нашу плату для прототипирования роботов Grambo Pi к, казалось бы, проблеме совсем иного рода!

Замена чипа на совместимом картридже Samsung CLT-K404S

Как уже упоминалось в нашей первой статье плата Grambo Pi имеет несколько стандартных аппаратных интерфейсов, в том числе I2C. Поскольку плата сама по себе программируемая, её можно временно превратить в преобразователь USBI2C. Сделать это оказалось неожиданно просто — около одной странички текста на встраиваемом скрипте. К этому дописан GUI скрипт на Питон-е, который, собственно, общается с картриджем и выдаёт, что в нём записано.

image

В общем, картридж подключаем к шине I2C.

image

Контакты на картридже подписаны…, прям как-будто специально, чтобы люди сами EEPROM перезаписывали!

image

Проблемой оказалось установить, что же конкретно за EEPROM чип установлен (т.к. по маркировке в Google ничего не находится). Пришлось действовать перебором всех I2C адресов. Этот конкретный чип откликается на адреса 25, 30 и 40. По адресу 40, по всей видимости, располагается номер страницы памяти, а по адресу 30 оказались сами данные. Прочитав данные 2 раза до и после печати тестовой страницы удалось установить, какие именно байты меняются при печати страниц.

К сожалению, в явном виде выяснить, в каком именно виде закодировано число страниц, не удалось: меняется сразу 4 байта на глаз довольно случайным образом. Пытаться расшифровывать — лень. Поэтому было решено просто сохранить прошивку еще “живого” картриджа, а при приближении к критическим 700 страницам прошивку откатывать до сохранённого значения.

Таким образом, замена картриджа оттягивается на, надеемся, неограниченное время!

Исходные код скрипта для платы Grambo Pi

Как заменить чип в картриджах W1106A и W1106X для принтера HP


#include new ioBuffer[32] read( i2cAddr, chipAddr, cnt ) < new wr[2] wr[0] = chipAddr // IO operation at I2C bus. setLed( 3 ) new res = i2cIo( i2cAddr, wr, 1, ioBuffer, cnt, 500 ) setLed( 0 ) // Operation result. setIo( 1, res ) new i for ( i=0; iwrite( i2cAddr, chipAddr, cnt ) < ioBuffer[0] = chipAddr new i for ( i=0; imain() < new led = 0 // Reset command at the very beginning. setIo( 0, 0 ) setI2cEn( 1 ) for ( ;; ) < new i2cAddr new devAddr new cnt new res // Check if read operation? if ( io( 0 ) == 1 ) < i2cAddr = io( 1 ) devAddr = io( 2 ) cnt = io( 3 ) res = read( i2cAddr, devAddr, cnt ) setIo( 1, res ) setIo( 0, 0 ) >// Else check if write operation? else if ( io( 0 ) == 2 ) < i2cAddr = io( 1 ) devAddr = io( 2 ) cnt = io( 3 ) res = write( i2cAddr, devAddr, cnt ) setIo( 1, res ) // Report operation is completed setIo( 0, 0 ) >// Else it is unrecognized and just reset! else setIo( 0, 0 ) // Some delay. msleep( 50 ) // Blinking LED number 1. setLed( led ) if ( led == 0 ) led = 1 else led = 0 // When IO takes place both LEDs should blink. > >
Исходные код GUI скрипта на Python

#!/bin/python import xmlrpclib from Tkinter import * from time import sleep from supplyctrlusb import * # Data obtained with pages count 580 # 16 32 3 255 254 255 254 51 16 32 3 0 0 0 0 0 0 0 0 0 0 0 8 37 15 232 16 0 0 0 0 0 0 0 0 16 0 0 0 0 0 0 0 0 0 0 28 133 101 101 0 160 0 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 # Data obtained with pages count 581 # 16 32 3 255 254 255 254 51 16 32 3 0 0 0 0 0 0 0 0 0 0 0 8 37 15 232 16 0 0 0 0 0 0 0 0 16 0 0 0 0 0 0 0 0 0 0 28 133 101 101 0 160 0 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 # After zerowing attempt. # 16 32 3 255 124 254 35 255 189 255 124 254 51 16 32 3 0 0 0 0 0 0 0 0 0 0 0 8 37 15 232 16 class Application(Frame): DELAY = 0.1 TRIES = 50 FRAME = 4 def read( self, i2cAddr, devAddr, cnt ): print «read » + str(i2cAddr) + «, » + str(devAddr) + «, » + str(cnt) io = self.io io.setIo( 1, i2cAddr ) io.setIo( 2, devAddr ) io.setIo( 3, cnt ) # Start reading data pp = io.io( 0 ) print «pp = » + str( pp ) io.setIo( 0, 1 ) # Waiting for completion for t in range( self.TRIES ): finished = io.io( 0 ) print «finished = » + str( finished) if ( finished == 0 ): res = io.io( 1 ) print «res = » + str( res ) if res != 0: return (res, []) d = [] for i in range(cnt): v = io.io( 2+i ) d.append( v ) print «data», d return ( res, d ) sleep( self.DELAY ) print «Read timeout» def write( self, i2cAddr, devAddr, data ): io = self.io io.setIo( 1, i2cAddr ) io.setIo( 2, devAddr ) cnt = len( data ) print «write » + str(i2cAddr) + «, » + str(devAddr) + «, » + str(cnt) io.setIo( 3, cnt ) for i in range( cnt ): io.setIo( 4+i, data[i] ) # Start writing data. io.setIo( 0, 2 ) # Waiting for completion for t in range( self.TRIES ): finished = io.io( 0 ) print «finished = » + str( finished) if ( finished == 0 ): res = io.io( 1 ) print «res = » + str( res ) return res sleep( self.DELAY ) print «Write timeout» def readI2c( self ): # Clear output self.text.delete( 1.0, END ) i2cAddr = int( self.i2cAddr.get(), 2 ) # Binary number print «i2cAddr = » + str( i2cAddr ) devAddr = int( self.devAddr.get() ) print «devAddr = » + str( devAddr ) cnt = int( self.bytesCnt.get() ) print «bytesCnt res = » + str( res ) return for k in range( len( data ) ): self.text.insert( END, str( data[k] ) + » » ) def writeI2c( self ): i2cAddr = int( self.i2cAddr.get(), 2 ) # Binary number print «i2cAddr = » + str( i2cAddr ) devAddr = int( self.devAddr.get() ) print «devAddr = » + str( devAddr ) cnt = int( self.bytesCnt.get() ) print «bytesCnt = » + str( cnt ) data = self.text.get( 1.0, END ) print «data = «, data d = data.split() print «data = «, d data = [] for i in range( len(d) ): data.append( int(d[i]) ) print «data res = » + str( res ) return print «Ready» def toString( self ): stri = self.text.get( 1.0, END ) d = stri.split() stri = «» cnt = len( d ) print «Characters cnt = » + str( cnt ) for i in range( cnt ): ch = chr( int( d[i] ) ) print «ch[» + str( i ) + «] = » + str( ch ) stri += ch print stri def createWidgets(self): self.lblI2cAddr = Label( self, text=’I2C addr:’ ) self.lblI2cAddr.grid( row=0, column=0, rowspan=1, columnspan=1 ) self.i2cAddr = Entry( self ) self.i2cAddr.insert( 0, «11110» ) self.i2cAddr.grid( row=0, column=1, rowspan=1, columnspan=1 ) self.lblDevAddr = Label( self, text=’Dev addr:’ ) self.lblDevAddr.grid( row=0, column=2, rowspan=1, columnspan=1 ) self.devAddr = Entry( self ) self.devAddr.insert( 0, «0» ) self.devAddr.grid( row=0, column=3, rowspan=1, columnspan=1 ) self.lblCnt = Label( self, text=’Bytes cnt:’ ) self.lblCnt.grid( row=0, column=4, rowspan=1, columnspan=1 ) self.bytesCnt = Entry( self ) self.bytesCnt.insert( 0, «128» ) self.bytesCnt.grid( row=0, column=5, rowspan=1, columnspan=1 ) self.i2cReadBtn = Button( self, text=’Read I2C’ ) self.i2cReadBtn[«command»] = self.readI2c self.i2cReadBtn.grid( row=1, column=0, rowspan=1, columnspan=1 ) self.i2cWriteBtn = Button( self, text=’Write I2C’ ) self.i2cWriteBtn[«command»] = self.writeI2c self.i2cWriteBtn.grid( row=1, column=5, rowspan=1, columnspan=1 ) self.text = Text( self ) self.text.grid( row=2, column=0, rowspan=5, columnspan=6 ) self.toTextBtn = Button( self, text = ‘To string’ ) self.toTextBtn[«command»] = self.toString self.toTextBtn.grid( row=8, column = 3 ) def __init__(self, master=None): Frame.__init__(self, master) self.pack() self.createWidgets() self.io = Supply() pp = self.io.io( 0 ) print «initial pp = » + str( pp ) #~ for a in range( 24, 127 ): #~ res, d = self.read( a, 0, 4 ) #~ print » addr = » + str( a ) + «, res tm-article-presenter__meta»>

Еще по теме:  Стоит ли покупать Самсунг с9

Источник: habr.com

Обнуление

Обнуление принтера

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

Чип выглядит как микросхема, которая есть на каждом картридже. На этом чипе запрограммирован ресурс службы картриджа, то есть максимум страниц, которые производитель разрешает нам напечатать на нем. Также чип записывает информацию о количестве напечатанных страниц, которая приходит с принтера. После установки нового картриджа в принтер он проходит своеобразную регистрацию, после чего начинается обратный отсчет оставшихся страниц.

Как только объем напечатанных страниц достигает 90% от разрешенного производителем, принтер начинает посылать сообщения о том, что краска заканчивается. Это не всегда правда, потому что не все распечатанные вами страницы содержат картинки или текст на всю страницу – краски вполне может оставаться еще на достаточно долгий срок службы. Но принтер все равно будет требовать замены картриджа, и здесь нам нужно знать, как обнулить картридж на принтере.

Как обнулить чип (счетчик) на картридже?

Обойти это назойливое ограничение можно, если знать, как обнулить счетчик картриджа (информация о максимальном количестве страниц к печати) и, соответственно, как обнулить счетчики на принтере (информация о количестве напечатанных страниц).

Обнуление картриджа лазерного принтера

Можно вскрыть принтер и заменить чип на картридже на универсальную микросхему (способ работает с лазерными принтерами).

Обнуление картриджа струйного принтера

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

Инструкция обнуления здесь разная и зависит от производителя и модели принтера. Выберите свою модель и следуйте изложенным инструкциям обнуления счетчика принтера.

Принтеры и МФУ Epson Принтеры и МФУ Canon Принтеры и МФУ HP Принтеры и МФУ Samsung
Принтеры и МФУ Panasonic Принтеры и МФУ Xerox Принтеры и МФУ Kyocera Принтеры и МФУ Brother

Источник: www.zapravim-sami.com

Принтер самсунг 1640 как обнулить счетчик

Появился еще третий и самый простой вариант (опыт – сын ошибок трудных. ). Если припаять перемычку между 1-й и 4-й ножками все той же микросхемы 93С66, то счетчики будут автоматически сбрасыватья при каждом включении принтера. Все ножки микросхемы остаются на месте припаянными. Проверено все работает.

В чем смысл этой процедуры:

Еще по теме:  Что такое wps на принтере Samsung

Самсунг стал выпускать аппараты поддерживающие демо-режим, то есть аппараты на стартовых картриджах. Стартовый картридж-это картридж который поставляется вместе с аппаратом при покупке. Он без чипа, но с “гвоздем”. “ГВОЗДЬ – обрезок металлического штыря является ИДЕНТИФИКАТОРОМ наличия СТАРТОВОГО картриджа. Им замыкаются контакты разъема DEVE внутри аппарата и аппарат видит, что картридж установлен.”

После распечатки около 1000 листов, принтер блокирует работу. Для продолжения работы необходимо купить новый картридж, который поставляется с чипом. При установке нового картриджа с чипом аппарат работает дальше пока счетчик не достигнет 2000 копий. Подсчет копий делается приблизительно с учетом плотности печати.

Проверка перед процедурой пошивки:

Откройте крышку и выньте картридж:
Если на картридже установлен чип:

необходимо его удалить или заклеить скотчем.
Вставьте картидж обратно в аппарат.

Перед процедурой прошивки распечатаем лист конфигурации аппарата, для того чтобы узнать OS версию, надо вставить лист бумаги, нажать на кнопку и удерживать 3-5 секунд.

Аппарат распечатает лист конфигурации:

В красной рамке это версия ОС, в синей счетчики.

В строчке Total Page Count указывается общий счетчик страниц.

Этот счетчик после нашей процедуры сбрасыватся не будет!

Если OS версия 1.01.00.84 или ниже используем фикс 1.01.00.83.

Если OS версия выше 1.01.00.84 (к примеру 1.01.00.91), то используем 1.01.00.93.

Как создать фикс файл?

Для этого скачиваем архив ml1640.rar и оригинальную прошивку для версии 1.01.00.83 mlxx40fw83.zip или оригинальную прошивку для версии 1.01.00.93 fw_93_84.rar

В данном случае нам нужна прошивка 1.01.00.83.

Распаковываем в отдельню папку архив ml1640.rar. Открываем папку ignordev (в папке ignordev находится фикс-программа которая игнорирует DEVE-разъем, то есть не важно установлен у вас “гвоздь” на картридже или нет):

В папку ignordev распаковываем архив mlxx40fw83.zip, и запускаем соотвествующий bat-файл:

Информация о работе фикса будет выводиться в окно DOS:

. и появление фикс-прошивки:

Все! фикс файл FIX_ML1640_V1010083.fls создан.

Теперь сама процедура прошивки:

  1. Подключите принтер к сети через источник бесперебойного питания.
    Это необходимо для предотвращения неправильной прошивки при сбоях электричества
  2. Отключите от компьютера ВСЕ USB-устройства (принтеры, флешки, модемы и т.д.).
  3. Подключите принтер к компьютеру.
  4. Инсталируйте драйвера (не обязательно).
    (Или откажитесь от установки драйверов, но закончите установку драйвера как неизвестное устройство.)
  5. Для запуска процесса прошивка можно воспользоватся двумя способами:
  6. Перетяните мышкой иконку файла “FIX_ML1640_V1010083.fls” на иконку файла “usbprns2″.
  7. Запустите соотвествующий bat-файл downl1640_83.bat, при условии что вы не изменяли имена файлов!
  8. Откроется окно “MS-DOS” и в этом окне пойдет процесс прошивки.
  9. Через 2-3 секунды окно автоматически закроется.
  10. Смотрим на индикацию аппарата. Могут быть два варианта : первый – аппарат поморгает индикаторами и автоматически перегрузится (пожужжит мотором и войдет в готовность), второй – будет постоянно мигать оранжевый индикатор (ЖДЁМ МИНУТУ НИЧЕГО НЕ ТРОГАЯ, а потом отключаем аппарат от питания и через несколько секунд снова включаем).
  11. После этих процедур аппарат входит в готовность.

Распечатываем тест лист:

Как видим, счетчик тонера сброшен и наименование версии появилась буква f – 1.01.00.83f. А общий счетчик работает дальше и он не влияет на блокировку аппарата!

Счетчик тонера будет постоянно при каждом выключении и включении аппарата.

Внимание : если вдруг произошел какой либо сбой и аппарат не выходит в готовность, попробуйте ввести его принудительно в режим “даунлоадинг” – отключить аппарат от сети, нажать кнопку на аппарате и, удерживая её, включить сетевой выключатель. Как только замигают индикаторы (индикатор “тонер” горит постоянно, инд. “ошибки” мигает попеременно красный/зеленый), кнопку отпустить и повторить процедуру прошивки начиная с п.5.

Читайте так же:
Крутой счетчик для сайта

С наилучшими пожеланиями:

Папа Карла – Андрей Лутов ака alutov

Джузеппе и он же Карабас Барабас – Илья Цветков ака Илья Ц

Артемон, который жал кнопки PrintScreen – Александр ака Banzai

Итак собственно статья. Курсивом обозначены мои правки.

Первым делом распечатайте страницу отчета с кнопки принтера (необходимо нажать кнопку на принтере на несколько секунд, пока не замигают индикаторы). Если в отчете в строке Engine Version указано 1.00.50 и выше, то необходимо перепрошить принтер прилагаемой прошивкой: Статья о прошивках

ML-1640_Release Note.txt – readme к прошивке.

ML1640_V1010060.fls – собственно сама прошивка.

Распаковываем архив в удобную для нас папку. Отключаем от компьютера все устройства USB, естественно, кроме самого принтера. Перезагружаем компьютер. Драйвера на ML-1640 должны быть установлены. Теперь открываем папку с файлами прошивки и просто перетаскиваем мышью файл ML1640_V1010060.fls на usbprns2.exe – это инициирует запуск механизма прошивки принтера.

Откроется окно командной строки в котором будет виден процес прошивки.

Окончание перепрошивки принтер будет индифицировать мигающим оранжевым индикатором. (Но не всегда в моем случае – принтер загорелся оранжевым, а потом красным, что означает ошибку, но прошивка прошла на «Ура!».) Для завершения процесса необходимо просто отключить его от сети и включить снова (но не надо быстро «перещелкивать» тумблер на принтере – выключили, через несколько секунд включили).

Если в отчете Engine Version НИЖЕ 1.00.50, то выполняем следющие действия:

После этого снова распечатываем отчет – в строке Engine Version будет указана уже другая версия – 1.00.41, что нам и нужно для следующих действий. Стоит упомянуть, что одной перепрошивки мало – счетчик как считал так и будет считать страницы. Чтобы отучить счетчик заниматься этим грязным делом производим следующие манипуляции:

  1. Снимаем заднюю крышку аппарата (откручиваем два самореза и отжимаем три защелки).
  2. Аккуратно отключаем разъем «CRUM» (этой процедурой аппарат отучается от чипа).
  3. Также аккуратно отключаем разъем «DEVE» и замыкаем разъем на плате форматтера джампером от винчестера. (этой процедурой аппарат отучается от «гвоздя» – идентификатора стартового картриджа).
  4. Находим на плате микросхему памяти 93С66 (небольшая микросхема, находится пониже центрального процессора).
  5. Предельно осторожно паяльником с тонким жалом запаиваем перемычку между 1 и 4 ножкой микросхемы (см.рисунок). Стоит отметить, что запаивать перемычку нужно аккуратно, не перегревая ножки микросхемы и контактные дорожки на плате – они с легкостью отпадают – тогда появятся настоящие проблемы.
  6. Собираем аппарат.
  7. После вышеупомянутых процедур аппарат перестает реагировать на чип и «гвоздь»-идентификатор.
    Картриджи можно заправлять без проблем. Для сброса счетчика наработки достаточно отключить принтер от сети выключателем и включить его опять. Счетчики будут сброшены. (Примечание: не пугайтесь ускоренной работе счетчиков, после запайки перемычки. Принтер будет считать (ориетнировочно) 1 распечатанный лист = 1% расхода тонера). Также возможно иногда при очередном включении принтера при распечатке страницы отчета в строке Toner Page Count может быть не «0», а огромное число – типа 45124799813 – не пугайтесь, это побочный эффект наших манипуляций и «лечится» он повторным выкл/вкл.
  8. После переделки можно использовать любые картриджи серии ML-1610,1615,2015 и Xerox 3117. Ключа в принтере нет.
Еще по теме:  Как обновить приложение рсхб на телефоне Самсунг

На рисунке ниже – вид принтера сзади, поясняющий все необходимые действия. Щелкните по картинке для увеличения.

Заправлять картридж ML-1640 нужно тонером Static Control ML-4500. Это хороший тонер, показал себя с хорошей стороны. После замены (а она в любом случае будет) фотобарабана можно сыпать неоригинальный тонер Patron Xerox P8e, но первые заправки ним лучше не проводить.

Принтеры серии ML-1640/1641/1645 имеют одну непрятную особенность – при печати больших объемов (от 30 до 50 копий за раз) принтер может «застопорится», загорится желтый индикатор – это сигнал о перегреве. Бороться с этим бестолку – нужно просто выключить его на пару минут, а потом снвоа включить.

Заправка картриджа Samsung MLT-D108S для принтеров ML-1641/ 1645/ 1640/ 2241/ 2245/ 2240

Читайте так же:
Hp счетчик печати 1212

Для того, что бы заправленный картридж работал, необходимо 1 раз выполнить перепрошивку принтера. Перепрошивка выполняется в сервисном центре стоит – 1000 руб.

Вышла самая последняя разработка прошивки, используемая для принтеров SAMSUNG практически всех моделей. Если ваш принтер (модели SAMSUNG ML-1641, Ml-1645, ML-1640, ML-2241, ML-2245, ML-2240) нуждается в перепрошивке, то в нашей мастерской это будет стоить 1000 рублей.

Хотите заправить картридж Samsung MLT-D108S? Отлично! Это обойдется вам всего в 400 рублей. Вы купили новый принтер? Разумеется, это Samsung.

Он нравится вам во всех отношениях: и компактный, и легок в использовании, и удобен. В общем, все просто прекрасно, но есть одна небольшая проблема, а именно: необходимость постоянно заправлять картриджи.

Так как чип новой формации S3CC921 оснащен криптозащитой, то обнуление содержащего картриджа Samsung невозможно. Покупка еще одного оригинального картриджа обойдется вам несколько дешевле, чем покупка нового принтера. Но не все потеряно! Чип картриджа Samsung 1640 (MLT-D108S) можно «надуть». Каким образом?

Очень просто, достаточно лишь осуществить перепрошивку принтера Samsung. Если вы обратитесь к нам, то данная процедура обойдется вам всего в 1000 рублей. Если же вам требуется просто заправить картридж MLT-D108S, то эта услуга будет стоить 400 рублей. В дальнейшем у вас появится возможность осуществлять заправку картриджа Samsung без лишних проблем, так как последующая перепрошивка чипа не потребуется.

Перепрошивка принтеров Samsung ML-1641/ 1645/ 1640/ 2241/ 2245/ 2240

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

Сделав перепрошивку, вы можете пользоваться любыми картриджами из серии Xerox. Например, 3117, ML-1610, 2015, 1615, или SCX-4521. Никаких ключей, обнуление счетчика осуществляется при включении-выключении аппарата. Кроме того, вам не придется создавать себе дополнительные трудности, занимаясь установкой каких-либо кнопок.

Замигала красная лампочка в процессе работы? Просто нажмите на выключатель. Счетчик автоматически обнулится, и вы сможете сразу же вернуться к работе, включив принтер. Обратившись к нам, вы сможете существенно сэкономить и денежные средства, и не менее драгоценное время. Ведь наши мастера прошьют ваш принтер Samsung быстро и качественно.

Итак, мы с удовольствием заправим вам картриджи с криптозащитой для моделей SAMSUNG ML-2241, ML-2240, Ml-1645, ML-1641, ML-1640.

Также мы можем сбросить счетчики SAMSUNG ML-2241, ML-2240, Ml-1645, ML-1641, ML-1640. Вы потратите всего 10-15 минут, не больше.

Оцените статью
Добавить комментарий