Да, я таки купил себе первый “взрослый” осциллограф :). Давно была такая мысль; вроде как часто и не требуется, но захотелось себя порадовать. Была мысль взять сразу DSO2D15 – версию на 150 МГц + генератор, но пока собирался – продавец на olx’е поднял цену. Что ж, так даже лучше – в итоге взял на 60$ дешевле (в итоге – за чуть меньше, чем 200$), чем планируемый изначально вариант; в описании лота было сходу сказано, что возможна перепрошивка. Получил на следующий день после заказа, чуть поразглядывал и сходу занялся перепрошивкой.
Базовым материалом послужила статья на Mysku – когда-то выискивал описание осциллографа, да она так и осталась в истории браузера. В целом, все весьма просто; однако статья частично рассчитана на использование с компьютером с виндой. Думал в этом случае использовать VirtualBox, но все оказалось не так плохо.
Фактически, куча описанных в статье шагов сводится к возне с драйверами под винду и дампу флешек в осциллографе. Технически, непосредственно перепрошивка сводится к закидыванию файла “dso3kb_2D15_conversion.upk” на USB-флешку и выбор этого файлика в меню “Update” осциллографа. Тот меняет необходимую настройку – и все, у нас DSO2D15.
Если все же хочется сделать все правильно, то вполне можно обойтись без винды. Рассмотрим процесс поближе. В упомянутой статье необходимо скачать каталог с dsoflash с Google Drive. Внутри у нас исходники dsoflash с Makefile под cygwin (что сразу натолкнуло на мысль попробовать собрать это нативно) и отдельно архив с собранным dsoflash и sunxi-fel. Для сборки dsoflash под Linux меняем 3 строки в Makefile:
- CROSS := x86_64-linux-gnu-
- CROSS_DIR := /usr/lib/x86_64-linux-gnu
- LIBS := -lusb-1.0
В системе, соответственно, должен стоять gcc, make и libusb-1.0-0-dev (делалось на Debian 11). Выполняем make – и вот у нас уже есть бинарник dsoflash.
Вот теперь можно перевести осциллограф в режим работы с флешкой так, как описано в статье на Mysku – зажимаем кнопку на дне осциллографа и включаем его. Загорятся все кнопки, а экран останется темным. Подключаем осциллограф по USB и проверяем его доступность:
$ sudo ./dsoflash detect
В ответ команда вернет тип установленной флеш-памяти:
Found spi nand flash 'W25N01GV' with 138412032 bytes
Если внимательно порассматривать каталог с готовой сборкой, где лежат bat-файлы, то erase делается напрямую вызовом dsoflash (с параметром erase), а вот read/write идут с вызовом sunxi-fel. Команда находится в пакете sunxi-tools и доступна в репозитории. Соответственно, аналог read.bat будет такой:
sudo sunxi-fel writel 0x01c13040 0x29860
sleep 3
sudo ./dsoflash read backup.bin
Собственно, sunxi-fel переводит USB-порт из режима USB 1.1 в режим USB 2.0. Работать все будет в любом случае, но в первом варианте вычитка памяти будет делаться примерно 25 минут.
Однако не стоит торопиться с этой командой. Во-первых – да, команда перевела порт в режим USB 2.0 – и все, dsoflash больше не хотел работать с осциллографом. Во-вторых – вычитка в режиме USB 1.1 была со скоростью около 90 КБ/сек, что намного ниже предельной скорости для порта даже в этом режиме. Т.е., перевод в режим 2.0 особо ничему не поможет и sunxi-fel можно вообще не использовать. Поэтому вводим только последнюю команду и идем пить чай.
Шаг 6 из статьи на сейчас, похоже, неактуален, так как dso3kb_backup_builder.upk из Backup builder‘а делает 3 файла – в том числе и копию EEPROM.
Как уже говорил, это все были страховочные шаги, после которых можно просто закинуть dso3kb_2D15_conversion.upk на USB-флешку и через штатное меню обновления выбрать этот файл. Несколько секунд – и у нас DSO2D15.
Кнопка генератора стала активна, а внизу экрана появилось дополнительное поле.
Update: весьма рекомендую тред на 4pda. Там в том числе отписывается автор dsoflash.
https://github.com/AndrewBCN/Hantek_DSO2x1x_Linux – запуск Linux на осциллографе
https://www.youtube.com/embed/FC8schDdvf8 – сравнение DSO5102 и DSO2C10