Прошивка ML-2160 V1.01.02.00 с понижением через JTAG
Статья описывает процесс прошивки принтеров серии ML-2160 с текущей версией V1.01.02.00, V1.01.02.01 и выше на программаторе JTAG.
Какие модели прошиваются через JTAG
- ML-2160, ML-2165, ML-2167 с версиями V1.01.02.00, V1.01.02.01; (кроме ML-2165W и ML-2168W, у них SPI Flash, также попадаются ML-2160 с версией 1.01.02.03, по отзывам никто не смог понизить);
- ML-1610, ML-1640, ML-1660, ML-1670, ML-1860, ML-1910, ML-2015, ML-2040, ML-2520;
- Phaser 3140, Phaser 3155, Phaser 3160.
Информация в статье касается только серии ML-2160, для других моделей необходимо искать схему подключения JTAG, загрузчик, а также список команд.
Что потребуется
- Программатор J-Link v8. Оригинальный стоит более 300$, но китайские клоны на Aliexpress продаются за 10-15$ и отлично подходят для нашей задачи. Из внушающих доверие лотов мы нашли такой или еще дешевле без переходников (не понадобятся)
- Паяльник с тонким жалом, навыки аккуратной пайки т.к есть сложный момент с отпаиванием ножки процессора.
- Компьютер с ОС Windows XP, 7, 8, 10 (x64/x86) и ПО на программатор (скачать можно ниже).
- Оригинальная прошивка версии 1.01.01.11 (скачать).
Подготовка к прошивке
- В комплекте с программатором J-Link находится 20-контактный шлейф с двумя разъёмами. С одной стороны необходимо отрезать разъём и подготовить провода (залудить, лишние загнуть) по этой схеме:
Фото выше обрезано для наглядности, не отрезайте шлейф до такой степени! Также не вырезайте неиспользуемые провода: по отзывам появляются наводки, которые могут помешать процессу - Устанавливаем JLinkARM 4.24f. После запуска может появиться сообщение "A new firmware version is available..." — откажитесь от обновления, если не уверены, что программатор оригинальный, иначе может не пройти проверку по серийному номеру (в версии 4.24f такой проверки нет).
- Скачиваем загрузчик boot.bin и сохраняем в корень диска C (путь получится C:\boot.bin).
Прошивка на примере ML-2160 V1.01.02.00
Есть несколько вариантов подключения. Мы описываем тот, в котором после подключения JTAG плата форматирования устанавливается обратно в принтер, debug-интерфейс при этом не используется, внешнее питание на плату подавать не нужно.
- Выводы № 1, 2 на шлейфе объедините между собой, заизолируйте и загните в сторону шлейфа: эти контакты не будут использоваться в нашем варианте подключения.
- Снимите боковую крышку принтера со стороны USB-порта (сзади один болт, остальное — защёлки).
- Отключите все разъёмы от платы форматирования, извлеките плату.
- Выводы № 3, 5, 9, 13 припаяйте в соответствии с фото:
- Вывод № 20 — к земле, например на контакт debug:
- Вывод № 7 шлейфа самый ответственный: его нужно подключить к одной ножке процессора, предварительно аккуратно отпаять и слегка (1-2 мм, не больше) приподнять от платы, чтобы не было контакта. Далее к ней припаять тонкий гибкий провод и зафиксировать (можно клеем к плате, скотчем), а уже к нему подцеплять 7-ой вывод шлейфа.
Очень важно не отломать ножку. В противном случае потребуется тратить время и подручными средствами (булавкой например) пытаться подключаться к остаткам от ножки. После прошивки припаивать ножку к плате не обязательно: на работоспособность принтера она не влияет. - Проверьте ещё раз правильность подключения всех контактов, установите плату форматирования обратно в принтер и подключите все разъёмы.
- Подключите программатор и сам принтер к USB-портам компьютера (желательно использовать качественные USB-кабели, длиной не более 1,2 м).
- Включите принтер в принудительном режиме: удерживая кнопку "Печать экрана" (выше кнопки включения) нажмите один раз кнопку питания, кнопку "Печать экрана" продолжайте удерживать 3 секунды, затем отпустите. Если сделали правильно — не должно быть звука работы двигателя, индикатор питания должен непрерывно гореть зелёным.
- Запустите J-link Commander из меню Пуск.
- Должен определиться процессор: Found ARM with core Id 0x07926F0F (ARM9) .
- Если у вас так, как на скриншоте выше — введите h и нажмите Enter:
- Набираем be и Enter.
- Вводим loadbin c:\boot.bin, 0x40700000 (файл boot.bin скачивали заранее), нажимаем Enter и ожидаем приглашения на ввод следующей команды.
- Команда setpc 0x40700050 и нажимаем Enter.
- Последняя команда — g . Принтер должен вернуться в принудительный режим загрузки. Если вы не вынимали картридж, то можете услышать, как двигатель крутится в обратную сторону, это нормально.
- Ничего не отключая, сразу прошиваем оригинальной или фикс-прошивкой более низкой версии (перетаскиваем файл прошивки на usbprns2.exe).
- После автоматической перезагрузки принтера проверьте версию прошивки, если она понизилась — поздравляем, процесс завершён удачно :) Можно отключать JTAG от платы (двигатель перестанет крутиться в обратную сторону) и закрывать крышку. Напоминаем, что припаивать ножку процессора обратно к плате смысла нет.
Благодарим пользователя под ником Гоги за информацию о понижении через JTAG!
извините пожалуйста не как не магу прошить вроде всегда получалось с этим прогроматером
при открытии приложение пишет что (no device found on swd) я прошиваю уже 10 раз но такое в первые. подскажите пожалуйста
Нам тоже такая ошибка никогда не попадалась. Можем только посоветовать проверять подключение…
SEGGER J-Link Commander V4.92 (‘?’ for help)
Compiled Sep 30 2014 09:33:51
DLL version V4.92, compiled Sep 30 2014 09:33:42
Firmware: J-Link ARM V8 compiled Sep 22 2014 23:26:43
Hardware: V8.00
S/N: 99991999
Feature(s): RDI,FlashDL,FlashBP,JFlash,GDBFULL
VTarget = 3.338V
Info: TotalIRLen = ?, IRPrint = 0x..000000000000000000000000
Info: TotalIRLen = ?, IRPrint = 0x..000000000000000000000000
No devices found on JTAG chain. Trying to find device on SWD.
No device found on SWD.
Failed to identify target. Trying again with slow (4 kHz) speed.
Info: TotalIRLen = ?, IRPrint = 0x..000000000000000000000000
Info: TotalIRLen = ?, IRPrint = 0x..000000000000000000000000
No devices found on JTAG chain. Trying to find device on SWD.
No device found on SWD.
No device found at all. Selecting JTAG as default target interface.
J-Link>
показывает такое сообщение, и принтер трещит а если отсоеденить от JTAg крутит нормально
Можем посоветовать только проверить эти пункты https://overchip.net/faq/jtag_no_devices/
Всем добрый день. нужен совет. принесли модель 2165W отчет пишет v3.00.02.05. вскрыли аппарат думали сработаем по оисанной выше схеме а там — опаньки. на наклейке на форматера v3.00.01.10 а на плате ARM S4LJ162X01Y0 в корпусе BGA. да и сам форматер выглядит совсем иначе. скорее всего обновился принтер. если надо фото форматера сделал. кто сталкивался с таким случаем, какое решение?
Здравствуйте. У вас ML-2165W (модель с Wi-Fi), прошивка хранится не в процессоре, а в микросхеме 25Q64. Вам сюда.
спасибо. пошли по ссылке
Добрый день, версия прошивки V1.01.02.03
все манипуляции провожу, но принтер не начинает прошиваться. Просто ничего не происходит после того как бросаешь файл на usbprns2.exe
в чём может быть проблема?
Спасибо.
Здравствуйте. Такая версия нам еще не попадалась. Даже на официальном сайте последняя 1.01.02.01. Возможно из-за этого.
Можно попробовать подключить debug, вдруг в логе будет что-то полезное.
Skip Download
Press any key to execute Monitor Program within 1 sec…
Ver : Bluejay_China SEC Enc.V6.10 2013-09-03
pROBE+> fl
Ready to download from Parallel/Usb/Serial (0x40400000)
USB down
[[512104 Bytes received]]
NG Img
И все? Дальше нет лога?
Нет, больше ничего.
Подозреваем, что причина либо в новой прошивке V1.01.02.03, либо производитель изменил схему платы форматирования.
Также странно, что пишет Ver : Bluejay_China (а обычно Ver : Bluejay SEC). Посмотрите вот это сообщение. Наверное единственный вариант.
Запустил с архива ML216x_V1.01.02.01.exe программа показала что принтер прошит,а принтер стоит пол часа и не шевелится. Но показывает что прошит.
После этого вы загружали 11 версию через JTAG? Есть успехи?
Please, can you help me?
MODEL: ML-2160
FIRMWARE: V1.01.02.00 09-09-2013
CRUM: 131111D3159
email: [email protected]
How we can help you?
Do you have a JTAG programmer like J-Link v8?
Приветствую, при прошивке отключился свет, после этого, при включении на кнопку вкл не реагирует, индикаторы не загораются. компом не определяется.
распаял на j-tag, программатором определился, но после проведения всех манипуляций описанных в статье по понижению версии прошивки принтер не выходит после команды g в режим принудиловки.
не мог бы подробно описать, какие команды нужно ввести в терминале джлинк коммандера, чтобы оживить сей чудный девайс?
SEGGER J-Link Commander V4.24f (‘?’ for help)
Compiled Mar 29 2011 15:37:59
DLL version V4.24f, compiled Mar 29 2011 15:37:40
Firmware: J-Link ARM V8 compiled Jan 31 2011 18:34:52
Hardware: V8.00
S/N: 304427281
Feature(s): RDI,FlashDL,FlashBP,JFlash,GDBFULL
VTarget = 3.293V
Info: TotalIRLen = 4, IRPrint = 0x01
Info: CP15.0.0: 0x41069265: ARM, Architecure 5TEJ
Info: CP15.0.1: 0x1D0D20D2: ICache: 4kB (4*32*32), DCache: 4kB (4*32*32)
Info: Cache type: Separate, Write-back, Format C (WT supported)
Found 1 JTAG device, Total IRLen = 4:
#0 Id: 0x07926F0F, IRLen: 04, IRPrint: 0x1, ARM926EJ-S Core
Found ARM with core Id 0x07926F0F (ARM9)
JTAG speed: 100 kHz
J-Link>h
Info: J-Link: ARM9 CP15 Settings changed: 500F8 from 78, MMU Off, ICache Off, DC
ache Off
PC: (R15) = 00000004, CPSR = 000000DB (UNDEF mode, ARM FIQ dis. IRQ dis.)
R0 = 2C008038, R1 = 2C13E220, R2 = 25C5DE68, R3 = AAC7C561
R4 = 50A86159, R5 = 29D602F6, R6 = D4C83008, R7 = 4B304300
USR: R8 =0B90181F, R9 =A4A5900B, R10=8E72FC17, R11 =1C09F010, R12 =E1E293E0
R13=A48E0090, R14=F984A40E
FIQ: R8 =01060230, R9 =0EC5627A, R10=A5E6A232, R11 =24D06015, R12 =51C1A900
R13=702B8763, R14=F61666EA, SPSR=00000010
SVC: R13=107900F8, R14=64123D1C, SPSR=00000010
ABT: R13=9F1095B5, R14=77800D18, SPSR=00000010
IRQ: R13=4D61C507, R14=ECFD22E1, SPSR=00000010
UND: R13=FCC21F2F, R14=00000008, SPSR=000000DB
J-Link>be
J-Link>loadbin c:\boot.bin, 0x40700000
Loading binary file… [c:\boot.bin]
Writing bin data into target memory @ 0x40700000.
J-Link>setpc 0x40700050
J-Link>g
J-Link>
Здравствуйте. У нас таких случаев ещё не было. Единственная идея — подключить debug-кабель и наблюдать состояние после ввода команды g, если конечно будет выдавать что-нибудь…
DEBUG ничего не выдаёт вообще, как будто и нет принтера. На другом сайте посоветовали через jtag нужно стереть все (spi и еепром) и залить все по новой. Но проблема в том, что я не знаю команд для этого. Если такие есть, поделитесь. По своему состоянию принтер — кирпич. Наверное придётся менять пф.
Небольшой некропостинг, тут видимо речь про 24 и 25 память которая была на предыдущей ревизии.
SPI у этой модели нет, иначе бы было легко стереть память и записать повторно. Но у простого ML-2160 прошивка хранится в процессоре и похоже, что всё сводится к командам JTAG.
К сожалению, у нас команд для этих процедур нет, в интернете тоже не удалось найти. Может быть на форумах смогут подсказать? Например тут testcopy.ru/forum/viewtopic.php?p=84530
EEPROM не может влиять на включение принтера как нам известно, а SPI у этой модели нет, иначе бы было всёпрошивка хранится в процессоре. Но похоже, всё сводится к командам JTAG. К сожалению, у нас команд для этих процедур нет, в интернете тоже не удалось найти. Может быть на форумах смогут подсказать, например тут testcopy.ru/forum/viewtopic.php?p=84530
Здравствуйте
Подскажите, из за чего может такое бить? Writing target memory failed.
вот скрин
Здравствуйте. Такая ошибка нам не попадалась. Возможно дело в пайке, но если не поможет, то думаю придется подключать debug с внешним питанием и пробовать с ним.
Итак, в первую очередь хочу поблагодарить за помощь и своевременные ответы на мои посты.
И хотел бы рассказать как у меня получилось прошить мой ML-2160:
Программатор был куплен на али экспресс без переходников,пришел довольно быстро — около 20 дней(http://ru.aliexpress.com/item/ARM-Emulator-supports-ARM7-ARM9-ARM11-Cortex-M3-core-ADS-IAR-STM32-JTAG-interface-Double-buffered/32262558292.html)
Ногу у процессора к сожалению не уберегли,поэтому помог термоклей и булавка с припаянным к ней проводом.
Все определилось со второго раза,после того как вскрыл корпус программатора и переставил джампер в другое положение(https://drive.google.com/file/d/0B9hr2ByEcht4NkI4aXJTaXJJX0U/view?usp=sharing).
Но столкнулись с проблемой, описанной ниже…решить ее удалось так:
На официальном сайте скачал апдейт для моего принтера до последней прошивки(https://drive.google.com/file/d/0B9hr2ByEcht4bDE0WkZSR0RERUE/view?usp=sharing),с помощью него прошил принтер в обычном режиме до версии 1.01.02.01(там кстати и показывается какая версия прошивки в принтере на данный момент и можно с помощью апдейтера в итоге увидеть прошился ли принтер дальше).
Дальше все как было указано в этой гайде, после команды «g» перетащил скачанную с этого сайта прошивку для 11 версии на установщик,подождал пару минут и принтер перезагрузился сам, дальше убедился с помощью оригинального апдейтера что понижение удалось и радостный отправил запрос на покупку фикса прошивки. Дальше уже прошился фиксом,и принтер ожил.
Мои контакты для помощи в «унижении» самсунгов в городе Уфа: [email protected]
Всем удачных прошивок!
Здравствуйте. Очень признательны, что вы поделились опытом! А насчёт повышения версии до 1.01.02.01 — это уже второй случай, о котором сообщают здесь в комментариях, поэтому мы обновили небольшой FAQ, который идёт сразу после статьи.
Здравствуйте! В общем постигла такая неудача — попался принтер с прошивкой v1.01.02.00.
При попытке понизить прошивку(через JTAG) после команды «g» принтер перезагружается и загораются красным оба светодиода.И дальше никакой реакции.В чем может быть проблема?
Здравствуйте. Похоже, что принтер перезагрузился в принудительном режиме прошивки, как и должен. После этого вы делали пункт 17 инструкции? Перетаскивали оригинальную прошивку версии 11 на usbprns2.exe?
Да перетаскивал — 0 реакции.А принудительный режим это разве не просто горящий зеленый светодиод?
Еще такой момент — теперь даже при простом включении щелкает реле,но двигатель не срабатывает,и загораются 2 красных светодиода.Я так понимаю принтер заблокировался,но не понимаю почему не шьется — все идет по инструкции,процессор видит(кстати,на самом программаторе был джампер не правильно установлен,поначалу из-за этого процессор не видел).Все файлы были скачаны с вашего сайта,пытался и 11 версию,и 8. После перетаскивания файла на «usbprns2.exe» ждал минут по 10,но как загорались красные светодиоды после ребута,так и горели…где то читал,что после команды «g», ребута и перетаскивании файла один светодиод должен начать моргать сигнализируя о том что принтер
«шьется»…
В принудительном оба индикатора горят непрерывно и принтер не выключается через кнопку.
Возможно дело в драйверах, USB-кабеле (попробуйте поменять) или что-то в компьютере. Потому как если другие этапы прошли без проблем, то должен теперь принять прошивку.
Понятно,будем дальше значит пробовать,а то уже думал избавляться от принтера физическим путем:)
Только такой вопрос — после того как принтер перезагрузился в принудительном режиме,и перетаскивании файла на «usbprns2.exe», должно что нибудь происходить кроме выскакивания черного окна на 1-2 секунды?светодиоды не должны сигнализировать прошивку?
Под рукой нет ML-2160, проверить не могу, но вроде как индикаторы остаются гореть, пока прошивка грузится.
В крайнем случае можно подключить debug-кабель и с ним уже точно видно идёт процесс или нет.
Попробуйте еще загрузчик другой: overchip.net/files/usblist2.exe
Добрый день, получил вот такой вот лог терминала:
SEGGER J-Link Commander V4.24f (‘?’ for help)
Compiled Mar 29 2011 15:37:59
DLL version V4.24f, compiled Mar 29 2011 15:37:40
Firmware: J-Link ARM V8 compiled Dec 6 2011 18:57:44
Hardware: V8.00
S/N: **********
Feature(s): RDI,FlashDL,FlashBP,JFlash,GDBFULL
VTarget = 3.235V
Info: TotalIRLen = 4, IRPrint = 0x01
Info: Using DBGRQ to halt CPU
Info: Resetting TRST in order to halt CPU
Info: CP15.0.0: 0x78563412: Unknown implementer code, Architecure 5TEJ
Info: J-Link: ARM9, 341 core
****** Error: Unable to halt CPU core
Found 1 JTAG device, Total IRLen = 4:
#0 Id: 0x07926F0F, IRLen: 04, IRPrint: 0x1, ARM926EJ-S Core
Found 1 JTAG device, Total IRLen = 4:
#0 Id: 0x07926F0F, IRLen: 04, IRPrint: 0x1, ARM926EJ-S Core
Found ARM with core Id 0x07926F0F (ARM9)
J-Link>
У кого нить есть какие идеи по этому поводу?
Здравствуйте. Если понимать ошибку «Unable to halt CPU core» буквально, то он не смог остановить процессор, а без этого процесс не пойдёт.
В принудительный режим точно получилось войти (пункт 9 инструкции)? Вы не слышали звук работы движка?
Вывод микросхемы не имеет контакта с платой (приподнять нужно было)?
И о каком ещё RST-TRST джампере идёт речь? Где этот джампер — на плате или в J-link?
Более вероятно, что на плате адаптера JTAG. Попробуйте разобрать, посмотреть какие там джамперы есть.
Спасибо за совет! Действительно, разобрав адаптер, я увидел отверстия для установки штырьков PLS под джамперы. Перемкнув два нужных контакта я действительно избавился от ошибки «Reset pin is high but should be low».
Теперь ошибка другая: «Too few devices on JTAG chain. Expected 3, found 1.» Самостоятельно я никакой информации по этой ошибке не нашел, впрочем, неудивительно, ведь я совершенно ничего не знаю о JTAG. Подскажите, пожалуйста, что может это означать и что можно было бы предпринять?
Прошу прощения, пропустил ваше сообщение и не ответил. Удалось избавиться от ошибки?
Здравствуйте. У меня J-Link никак не хочет видеть аппарат. Пишет:
Reset pin is high but should be low.
Please ensure that jumper RST-TRST is not set.
Конечно, я проверил, как припаян провод TRST — всё в полном порядке, впрочем, как и со всеми другими контактами. И на контакте TRST напряжение 3.3 вольта — действительно высокий уровень. Что ещё можно сделать, проверить?
Здравствуйте. Увы, подобных ошибок нам не попадалось. Google тоже не помог. Можем посоветовать только такие варианты. Особенно пункт № 1 попробуйте.
Здравствуйте. Долго мучился, но все же получилось. Ножку таки сломал. Пришлось скальпелем проточить паз и подключаться с помощью медицинской иглы.
Вопрос такой — Понижается только до 12 версии. Почему?
Здравствуйте. Какую ошибку пишет при попытке загрузить например 11 версию? Или вы 11 не пробовали?
Я пробывал 8-ю на которые уже есть бесплатные фикс прошивки. Ошибок никаких не выдает, просто процесс загрузки проходит очень быстро ( не как когда прошиваешь 12 версию)
Есть предложение, что дело в boot.bin, может он сделан под 11, 12 версии.
Здравствуйте.
Видимо так и есть. Я скачивал с одного сайта, где и предлогалось установить 11 или 12 версию. Видимо, если загрузчики отличаются, то можно и 8 версию залить.
Спасибо за помощь. Буду пробывать
Вроде бы все по инструкции сделал не показывает джи линк коммандор модел процессора вчем может быт
Какую ошибку пишет? CPU core not found?
Добрый день. Пише что проц не оприделился и это типа нет дивайса SWD.
Попробуйте эти советы overchip.net/faq/jtag_cpu-not-found/
Проверил все подпаено хорошо и правельно. Поменял джапер все тоже самое.
А J-Link Commander запускаешь сразу после включения принтера с зажатой кнопкой printscreen?
Извините, других идей у нас нет :(
Как не крути не как не получилось, от злости плату сломал, это было в прошлый раз,
а в это раз получилось только с другим программатором аж не верилось, Спасибо большое Автору
Как вариант, мог быть бракованный программатор, если речь идет о китайском клоне J-Linк v8.
Спасибо за информацию!
… даунгрейд до v1.01.01.11 всё-же, состоялся)
благодарю за статью.
Отлично :)
кстати, до того как пришел успех,..
была отломлена нога, пришлось арм зубным буром увечить, что-б до дорог добраться, кое как прихватился.
а поломал из за суеты и потому, что на раб. столе и в пуске у меня были ярлыки всего, акромя коммандера, а поскольку ярлыки одинаковые, я машинально запускал все, кроме того что нужно… а потому видел всевозможные ошибки. — нет серийника, флэш не найдена, не найдено ни одного девайса, не найден кпу, 9 low и т.д.
может кому полезно будет, внимательнее при запуске commndera!
з.ы. шил одним из предложенным китайских аналогов и кстати обновился без проблем.
Спасибо за информацию, пригодится :)
Подскажите как с эти бороться «tck (pin 9) low but should be high» ?
И процессор не определяется? Проверьте подключение, шлейф. Из-за некачественной пайки может быть или если использовали не заводской шлейф, а самодельный.
Теперь такая проблема, после команды G принтере не переходит в принудительный режим загрузки.
Человек ниже в комментариях отписывался, что помогло сначала обновление до прошивки .02.01, а затем уже понижение.
Можно пробовать подключать debug и смотреть, что там происходит.
по поводу TCK 9pin low — разобрал китайский программатор j-tag и переставил перемычку питания 3.3v.
Спасибо, добавили в FAQ под статьей
Добрый день! Я первый раз буду понижать. Вопрос а картридж должен стоять в принторе или нет. Т.к. пишут что он при прошивке крутит двигло в обратную сторону. Спасибо
Здравствуйте. По идее, не обязательно, чтобы был картридж. Без него тоже должно понизиться нормально. Правда, мы не проверяли этот момент лично, но думаю проблем не будет.
Значит все токи с картриджом. Спасибо.
Мы не проверяли, но скорее всего и без него получится.
А ещё вопрос. На принтер надо устанавливать дройвера или нет. Спасибо.
Подойдут стандартные Windows-овские. Главное, чтобы принтер определялся системой, не выдавал ошибку «Неизвестное устройство» или «Не установлены драйверы».