Разгон осциллографа Hantek DSO5102P до 200МГц

Dec 31, 2019 01:27

Данный хак работает на Hantek DSO5102P с последней прошивкой 2019-10-24. На других годах и моделях не проверялся. Все что вы делаете с осциллографом, вы делаете на свой страх и риск.



внешний вид Hantek DSO5102P

Первый известный мне метод расширения полосы пропускания осциллографа заключается в переименовании файла dst1102b в dst1202b. Недостаток хака в том, что после восстановления/recovery или перепрошивки устройства, осциллограф откатывается назад на 100МГц.

Совсем недавно чешский товарищ Tefatronix победил эту проблему. Недостаток метода - запутанное описание и сложность реализации хака. Пользуясь его инструкцией я легко окирпичил свой DSO5102P отправив его в бесконечный reboot. Повезло - сохранил оригинальный i2c.log и вернул осциллограф к жизни.

И вот буквально вчера юзер Mr.dUSHA с 4PDA расковырял последнюю прошивку и разобрался как работает механизм восстановления/recovery. Процесс восстановления запускается выключением и повторным включением прибора в течении 1-2сек. При запуске восстановления с recovery раздела запускается Linux, который выполняет скрипт /recover/recover.sh. В зависимости от нажатой кнопки F1, F2 или F3 скрипт выполняет нужные действия. Если выбрано F2 "восстановление", он раскатывает бэкап ядра /recover/kernel.bin в раздел mtd4, а потом форматирует mtd5 и раскатывает на него полный бэкап рабочего корня из файла /rootfs/rootfs.tar.bz. После восстановления раздела rootfs из бэкапа, скрипт принудительно стирает на нём файл i2c.log. Дальше запускается dso.exe, который восстанавливает i2c.log из EEPROM, распяной на плате осциллографа. Затем, ориентируясь на значение [bw]xxx i2c.org, dso.exe сам корректирует все остальные файлы. Если выбрано F3 "обновление раздела восстановления", скрипт сливает текущую систему в бэкапы - kernel.bin и rootfs.tar.bz. То есть для хака нужно подправить значение [bw]100 на [bw]200 в EEPROM, все остальное dso.exe сделает за нас. Поехали...

Перед любыми манипуляциями с linux делаем backup. Для осциллографов 5000P серии, выпущенных с 2017 года делается это так. Копируем утилиту dso5kp_backuptool_new в корень USB-флешки, вставляем в порт на передней панели и запускаем "update software". Процесс занимает около 5 минут. По завершению на флешке появится директория /dump, в которой будет 36 файлов *.bin. Для того, чтобы сформировать из каши образы, копируем в директорию dump файл fw_backup.bat и запускаем его. В итоге получится fwbackup.bin - полный дамп NAND флеш памяти осциллографа и еще 8-файлов дампов отдельных разделов.

С официального сайта качаем USB драйвера для DSO5102P и устанавливаем. Качаем DSO-USB-Tool, австрийского разработчика Peter Dreisiebner. В Log(F10) ставим галочку "Use USB", идем в закладку Shell(F2) и набираем команду ls, жмем Send. Если до этого все сделано правильно, осциллограф отдаст список файловой системы Linux, расположенной на NAND флешке.



DSO-USB-Tool
Один backup хорошо, а два лучше. Вставляем в DSO5102P флешку до 32ГБ отформатированную в FAT32 и сохраняем 9 файлов:

cp i2c.log /mnt/udisk/i2c.log
cp sys.inf /mnt/udisk/sys.inf
cp logotype /mnt/udisk/logotype
cp logotype.dis /mnt/udisk/logotype.dis

cp tdc_edge125M /mnt/udisk/tdc_edge125M
cp tdc_overtime125M /mnt/udisk/tdc_overtime125M
cp tdc_pulse125M /mnt/udisk/tdc_pulse125M
cp tdc_slope125M /mnt/udisk/tdc_slope125M
cp mult_adc.log /mnt/udisk/mult_adc.log

Первый файл содержит серийный номер вашего осциллографа. Последние пять - это уникальные данные заводской калибровки. Без них ваш DSO5102P превратится в показометр. Проверяйте размеры файлов, они не должен быть нулевыми, DSO-USB-Tool иногда глючит.

Открываем i2c.log в notepad++ или AkelPad и удаляем мусор, оставляя только текст и 18-ю строчку пустой, меняем [bw]100 на [bw]200. Пересохраняем как i2c.org. Обращаем внимание на кодировку - Ins, Unix, 65001, (UTF-8) without BOM. Вот тут я уже все сделал за вас в правильной кодировке. Надо только вместо XXX XXXXXX подставить свой серийник и проверить остальные поля. Сохраняем, повторно открываем файл и проверяем не слетела ли кодировка. Неправильная кодировка в 99.99% приведет к окирпичиванию девайса!!!



было i2c.log



стало i2c.org
Копируем i2c.org на USB флеш, вставляем в DSO5102P, переносим файл на NAND, форматируем eeprom и перегружаем осциллограф следующими командами:

cp /mnt/udisk/i2c.org i2c.org
touch i2c.format
sync
reboot

После reboot исполняемый файл dso.exe обнаружив eeprom пустым, начнет искать текстовый файл HDVersion.set или i2c.org и на его основе перезапишет eeprom и заново создаст i2c.log. А увидев строчку [bw]200 сам изменит название на DSO5202P и исправит ВСЕ сопутствующие файлы (logotype.dis и тд). Делаем второй reboot, чтоб все новые файлы нормально подгрузились. Теперь на 2nS развертке в меню Utility должен появится фильтр 200MHz. Скинуть настройки в default. Дать осциллографу прогреться и запустить self calibration. Все. Спасибо dvk80 и Mr. dUSHA за открытие.

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

UDP: Ради спортивного интереса скачал с оф. сайта прошивку от DSO5202P и перезалил - ничего не слетело, 200МГц есть.

осциллограф

Previous post Next post
Up