Опрос


Что для Вас Умный Дом?


Результаты

Перепрошивка MegaD-328/2561 по сети

20/02/2014 10:20:42

ВНИМАНИЕ! Прежде чем прошивать устройство, тщательно ознакомтесь с инструкцией. Если вы не уверены, ВСЕГДА используйте ключ --ee (стирание EEPROM), что приведет к сбросу всех настроек на заводские с изменением IP-адреса на 192.168.0.14. Но если вы этого не сделаете, то при обновлении на версию, в которой были изменения в работе с энергонезависимой памятью, устройство перестанет нормально функционировать, что потребует перепрошивку в "режиме восстановления".

Начиная c ревизии 5.1 контроллера MegaD-328 (и для всех ревизий MegaD-2561) для перепрошивки не нужен программатор! В контроллер уже зашит загрузчик, позволяющий обновлять программное обеспечение по сети Ethernet. Это крайне важная и необходимая функция, поскольку дает возможность загружать прошивку в работающие устройства без демонтажа или подключения программатора.

Для обновления прошивки в устройстве MegaD-328 я подготовил небольшой PHP-скрипт, работающий из командной строки. Почему именно PHP-скрипт, а не какое-нибудь Desktop-приложение? Дело в том, что, во-первых, предложенный скрипт будет одинакого работать в любой операционной системе: Windows (протестировано в Windows 7), Linux, MacOS, FreeBSD. То есть, это решение кросс-платформенное. Во-вторых, вы можете модифицировать его по собственному желанию как угодно, добавив свою функциональность. Скрипт не кодирован и открыт под лицензией GPL 2. А, в-третьих, его можно легко интегрировать в Web-систему Умного дома. Тогда обновить прошивку можно прямо со страниц домашнего Web-сайта.

Для MegaD-328. Скачать megad-cfg (Текущая версия 1.38 от 23.09.2015).
http://ab-log.ru/files/File/megad-cfg/megad-cfg.zip
Для MegaD-2561. Скачать megad-cfg-2561 (Текущая версия 2.04 от 12.12.2016).
Для MegaD-2561 обязательно использование версии не ниже 2.03 !
http://ab-log.ru/files/File/megad-cfg/megad-cfg-2561.zip

Но прежде, чем приступить к описанию функций скрипта, пару слов об установке PHP.
В Linux это делается очень просто

apt-get install php5 php5-cli (из командной строки или из любого менеджера пакетов)

Для установки PHP в ОС Windows 7, необходимо скачать с официального сайта какую-нибудь из последних версий и распаковать содержимое архива куда-нибудь на диск. Например C:PHP
Инструкция по установке PHP в Windows. Чтобы не указывать каждый раз полный путь к php.exe можно прописать путь в переменную окружения PATH.
Важно! В файле php.ini (настройки PHP) необходимо найти и раскомментировать строчку extension=php_sockets.dll
Далее в статье я буду указывать примеры запуска скрипта в Linux. Для Windows необходимо изменить php на php.exe
Например,
php megad-cfg.php
на
php.exe megad-cfg.php


Сканирование всех устройств типа MegaD-328 в сети
 

php megad-cfg.php --scan

Скрипт отобразит IP-адреса всех подключенных в сеть Ethernet-устройств, даже если они находятся в другой IP-сети. Это важная функция, так как адрес устройства по умолчанию 192.168.0.14, а у пользователя может использоваться другая сеть, например 192.168.1 или 10.0.0. В этом случае данная команда позволяет произвести поиск доступных устройств.


Изменение IP-адреса устройства
 

php megad-cfg.php --ip 192.168.0.14 --new-ip 10.0.0.14 -p sec

--ip - Текущий IP-адрес устройства
--new-ip - Новый IP-адрес устройства
-p - Текущий пароль (по умолчанию пароль "sec")


Перепрошивка устройства
 

php megad-cfg.php --ip 192.168.0.14 --fw megad-328.hex -p sec

--ip - Текущий IP-адрес устройства
--fw - Путь к скомпилированной прошивке в формате HEX
-p - Текущий пароль

ВНИМАНИЕ! Если в новой прошивке были изменения в работе с EEPROM (например, добавлены новые опции в конфигурацию) ОБЯЗАТЕЛЬНО необходимо обновлять прошивку с очисткой EEPROM с применением ключа --ee. Это актуально для всех примеров, которые приведены ниже. Если вы не уверены или не знаете - были ли изменения в работе с EEPROM лучше прошивать устройство с этим ключом. Очистка EEPROM приведет к сбросу всех настроек, в том числе IP-адреса на заводской: 192.168.0.14.

Пример:

php megad-cfg.php --ip 192.168.0.14 --fw megad-328.hex -p sec --ee

Не обязательно скачивать прошивку вручную. Скрипт megad-cfg.php может загрузить прошивку с сайта самостоятельно!

php megad-cfg.php --ip 192.168.0.14 -p sec -w

-w - Скачать последний релиз прошивки с сайта ab-log.ru

Очень часто на сайте публикуются тестовые прошивки, так называемые "бета-прошивки". Если с ключом "-w" скачивается релиз, то дополнительно указав ключ "-b" можно загрузить "бету"

php megad-cfg.php --ip 192.168.0.14 -p sec -w -b

При использовании указанных выше ключей, обновление прошивки происходит без сброса настроек устройства. Однако иногда в прошивке происходят кардинальные изменения в работе с энергонезависимой памятью (EEPROM), в которой хранятся настройки. В этом случае необходимо сбросить все настройки и сконфигурировать устройство заново. Для стирания EEPROM необходимо использовать ключ "--ee"

php megad-cfg.php --ip 192.168.0.14 --fw megad-328.hex -p sec --ee


А если у меня ревизия MegaD-328 более ранняя, чем 5.1, я не смогу перепрошивать устройство по сети?

Сможете! Но в вашем случае сперва необходимо установить загрузчик. А вот для этого потребуется любой программатор, поддерживающий atmega328.
Это одноразовая операция. По сути аппаратно 5.1 полностью соответствует 5.0. Разница лишь в том, что в 5.1 загрузчик устанавливается при производстве.

Для начала необходимо скачать и прошить файл загрузчика
http://ab-log.ru/files/File/megad-boot/megad-boot_15.zip

Теперь необходимо выставить fuse-bits, чтобы сконфигурировать микроконтроллер на выполнение программы с адреса загрузчика.
Low: 0x60
High: 0xD8 (было 0xD9)
Вот пример для avrdude и AVRISP mkII

avrdude -c avrispmkII -P usb -p m328p -U lfuse:w:0x60:m -U hfuse:w:0xD8:m

Для популярного программатора USBASP необходимо вместо avrispmkII указать usbasp вот так:

avrdude -c usbasp -P usb -p m328p -U lfuse:w:0x60:m -U hfuse:w:0xD8:m

Внимание! Указаны fuse-bits для atmega328. Для тех, кто самостоятельно собирает аналог MegaD-2561, fuse-bits другие: L:60 / H:DA

Теперь записываем загрузчик:

avrdude -c avrispmkII -P usb -p m328p -e -U flash:w:megad-boot.hex

После того, как прошит загрузчик и установлены fuse-bits, можно отключать программатор. Больше он не понадобится. Но при первой загрузке прошивки, так как основной программы нет, а стало быть, нет и IP-адреса, необходимо воспользоваться специальным ключом "-f".

php megad-cfg.php --fw megad-328.hex -f -e

Важно! Версия прошивки должна быть 3.14 или более новая.


В процессе загрузки новой прошивки произошел сбой. Устройство не отвечает. Все пропало?

Режим восстановления

Нет, ничего не пропало! Для таких случаев предназначен особый режим. Дело в том, что в момент включения устройства, загрузчик передает управление основной программе не сразу, а спустя примерно секунду. В течение этой секунды он ждет специального пакета от megad-cfg. Если такой пакет получен, автоматически начнется процесс прошивки заново. То есть алгоритм следующий:

1. Запускаем megad-cfg с ключем "-е"

megad-cfg.php --fw megad-328.hex -f -e
или (если хотим загрузить прошивку с сайта)
megad-cfg.php -w -f -e

Скрипт отобразит на экране "Connecting..." и начнет постоянно слать в сеть специальные пакеты.

2. Выключаем "сломанное" устройство и включаем его снова.
Скрипт автоматически соединится с программой загрузчика и попытается перепрошить устройство заново.

 

Работа с настройками

При использовании ключа --ee (стирание EEPROM), часто необходимого при обновлении прошивки, из памяти устройства удаляется вся текущая нстройка портов. Это очень неудобно после перепрошивки восстанавливать настройки устройства и портов. Поэтому начиная с версии 1.1 скрипта megad-cfg.php была предусмотрена функция считывания и записи текущих настроек.

 

Считывание конфигурации устройства и запись в файл megad.cfg
php megad-cfg.php --ip 192.168.0.14 --read-conf megad.cfg -p sec
Считывание конфигурации из файла и запись в устройство
php megad-cfg.php --ip 192.168.0.14 --write-conf megad.cfg -p sec

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

php megad-cfg.php --ip 192.168.0.14 -p sec -w --ee --read-conf megad.cfg --write-conf megad.cfg

В результате мы получим на экране примерно следующий лог работы программы.

Reading configuration... OK
Downloading firmware... OK
Connecting... OK
Erasing firmware... OK
Writing firmware... OK
Erasing EEPROM... OK
Restarting device... OK
Writing configuration... OK

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

 

Автор: Andrey_B
Любое использование материалов сайта возможно только с разрешения автора и с обязательным указанием источника.



Добавить комментарий:



Сортировка комментариев: Последние сверху | Первые сверху

2017-05-15 11:19:22 | Andrey_B
Bonefolder, подойдет для чего, для перепрошивки?
У меня есть Mac. PHP в нем уже установлен. Пробовал запускать скрипт на нем. Все работает. Ничего дополнительно не ставил.
Вот ссылка на форуме.


2017-05-14 23:07:16 | Bonefolder
для Мас этот вариант проще, для простых смертных /php.net/manual/ru/install.macosx.bundled.php


2017-05-14 20:57:58 | Bonefolder
Андрей, подскажите пожалуйста, этот вариант подойдет?
https:/habrahabr.ru/post/217245/


2017-04-29 13:40:03 | Andrey_B
Lomaster, попробуйте указать локальный ip-адрес через опцию --local-ip


2017-04-29 11:30:32 | Lomaster
Пытаюсь освоить прошивку по сети по этой инструкции (в Windows 7).

1. Скачиваю PHP c офф.сайта - нет там php.ini. Есть .ini-development и .ini-production.
2. php.exe megad-cfg-2561.php --scan выдает фатал еррор
php-win.exe megad-cfg-2561.php --scan выдает пустоту
Подсеть 192.168.1.Х, адрес устройства изменен на 192.168.1.14
Брандмауеры отключены, всё воткнуто в тупой Switch (не роутер).

Что я делаю не так?


2017-04-07 13:48:17 | sau
У меня из под Windows сработали только такие схемы действий:

1. Обновление прошивки в Меге 4.0 программатором USBASP .
avrdude -c usbasp -P usb -p m328p -U lfuse:w:0x60:m -U hfuse:w:0xD8:m
avrdude -c usbasp -P usb -p m328p -e -U flash:w:megad-boot.hex
php.exe megad-cfg.php --fw megad-328.hex -f -e --ee

Обновление по сети:
php.exe megad-cfg.php --ip 192.168.0.210 --read-conf megad210.cfg -p sec
php.exe megad-cfg.php --ip 192.168.0.210 --new-ip 192.168.0.14 -p sec
php.exe megad-cfg.php --ip 192.168.0.14 --fw megad-328.hex -p sec --ee
php.exe megad-cfg.php --ip 192.168.0.14 --new-ip 192.168.0.210 -p sec
php megad-cfg.php --ip 192.168.0.210 --write-conf megad210.cfg -p sec

Причем для обоих типов обновлений компьютер должен напрямую подключаться к Меге. В противном случае процесс заливки новой прошивки застревает на этапе "Writing configuration...". По всей видимости роутер блокирует хост.


2017-03-19 21:00:08 | Andrey_B
sau, последнюю прошивки для MegaD-328 на контроллер Ver 4.0 прошить, конечно же, можно.


2017-03-19 19:53:17 | sau
Не подскажете, можно ли с помощью программатора прошить самую последнюю версию на контроллер Mega328 v4.0?


2017-02-13 15:45:24 | Сергей
Да, так и настроил, запуская команду megad-cfg.php --scan я так понимаю должно его найти, но в ответ нечего, просто новая строка


2017-02-13 14:58:18 | Andrey_B
Сергей, надеюсь у вас прописана на компьютере сеть 192.168.0.0/24 ?
То есть на ПК должен быть прописан адрес, например, 192.168.0.15


2017-02-13 14:03:52 | Сергей
php.exe D:OpenServermodulesphpPHP-7.1-x64megad-cfg.php --fw megad-328.hex -f -e --ee
Connecting... OK
Checking firmware... OK
Erasing firmware... OK
Writing firmware... OK
Erasing EEPROM... OK
Restarting device... OK
Получилось результат выше, но не пингует 192.168.0.14


2017-02-13 13:04:23 | Andrey_B
Сергей, попробуйте подключить устройство непосредственно к компьютеру.
Обычно сбои в прошивки бывают, когда в качестве коммутатора между компьютером и устройством используются роутеры. Они как-то не очень "дружат" с интенсивным широковещательным трафиком.


2017-02-13 11:44:11 | Сергей
День добрый, подскажите пожалуйста в чем может быть проблема мега д 328 самоклеп, питаюсь залить прошивку командой megad-cfg.php --fw megad-328.hex -f, а в ответ Connecting... FAULT, тогда попытался отправить эту команду megad-cfg.php --fw megad-328.hex -f -e --ee, в ответ я получил
Connecting... OK
Checking firmware... OK
Erasing firmware... OK
Writing firmware... FAULT
Erasing EEPROM... OK
Restarting device... OK
Отказ на прошивку, да еще куда нужно поместить НЕХ файл? может я не туда его приткнул


2017-02-12 22:28:09 | Роман
Я думал командная строка пускается с пуска


2017-02-12 20:59:06 | Andrey_B
Роман, сообщение "Could not open input file" генерирует php.exe, когда не может найти файл скрипта.
Вы запускаете php.exe из той папке, в которой лежит скрипт?


2017-02-12 15:30:48 | Роман
Вот
php.exe megad-cfg.php --fw megad-328.hex -f


2017-02-11 22:11:10 | Andrey_B
Роман, вы бы указали, что именно вы вводите в командой строке...


2017-02-11 21:07:30 | Роман
Добрый вечер, помогите пожалуйста, собрал megad 328 залил новый ботлоадер установил php чтобы прошить по сети, на команды в командной строке выдает мне такое could not open input file(не может открыть входной файл) пол дня потратил так и не разобрался


2016-11-14 15:42:47 | Andrey_B
Denis, повреждение загрузчика при перепрошивке маловероятно или даже практически невозможно. А значит всегда остается возможность прошить в режиме восстановления. Попробуйте подключить устройство напрямую к компьютеру.
Также можно воспользоваться ISP-программатором или выслать устройство нам на перепрошивку.


2016-11-14 14:34:50 | Denis
Andrey_B
Конечно же, я пытался. Результат тот же


2016-11-14 12:05:11 | Andrey_B
Denis, нужно перепрошить устройство в режиме восстановления. В статье есть информация о том, как это сделать.


2016-11-14 07:46:24 | Denis
при установки прошивки в 328 вер 5.2, что то пошло не так, перепрошился с перезаписью EEPROM, и теперь мега она не коннектится. айпи в сеть не показывает
ни на винде7 напрямую патчкордом, ни на маке достучаться до нее не могу - айпи не найден, коннекта нет. линк на меге весело мигает.
Есть какие то не очевидные способы попасть в нее по сети еще, или теперь только программатором?


2016-10-14 09:31:22 | Andrey_B
Pavel, для загрузки новых прошивок необходимо установить новый загрузчик (бутлоадер). Я писал об этом на форуме. Это особенность первого выпуска. Все модули, отгруженные после 28 сентября не имеют этой проблемы.
Прошить загрузчик можно самостоятельно (но в этом случае нужен программатор) или отправить модуль мне для перепрограммирования.
Чтобы модуль в вашем случае снова заработал, необходимо снова загрузить прошивку версии 4.03.
Да, ключ очистки EEPROM --ee (то есть две черточки), а не -e.


2016-10-14 01:23:33 | Pavel
Разобрался...простите меня не грамотного. появилась следуюшая проблемка
При обновлении с 4.03b2 на более свежую появляется
WARNING! Please upgrade bootloader!


2016-10-14 00:43:45 | Pavel
Прошил MegaD-2561 случайно с ключом "бета-прошивки".
в итоге устройство получило не известный IP адрес, php megad-cfg.php --scan выдает пустую строку, megad-cfg.php -w -f -e -ee - все норм прошивает но ип поумолчанию не получает и скан так же не находит устройства. Подскажите решение.


2016-09-05 18:23:53 | Andrey_B
Дмитрий, добавил.


2016-09-05 15:29:01 | Дмитрий
Проверил свой php.ini - да, как только добавил extension=php_sockets.dll, ошибка пропала
Может стоит добавить это в инструкцию выше? Я думаю я буду не один такой далекий от ПХП, кому понадобиться помощь.


2016-09-02 16:46:39 | Andrey_B
Дмитрий, я использую десятки датчиков DS18B20. Ни разу не наблюдал ситуацию, чтобы показания плавали в пределах 2-х градусов.


2016-09-02 13:27:24 | Дмитрий
по возможности проверю, что у меня php.ini (пока мой комп не доступен) тогда отпишусь

Что касается датчиков температуры, то они конечно может быть и контрафактные, только как это определить?
Ну и то что есть проблема с паразитным питанием меня не так сильно напрягает, можно и подать питание на датчик с испольнительного блока (возможность то такая есть :). Но насколько это нормально что показания с датчика плавают в пределах 2х градусов? Я считал, что если этот датчик называется калиброванным, то показаниям можно доверять чуть ли не как эталону. Я ошибался?


2016-08-29 11:46:35 | Andrey_B
Проверил работу скрипта в Windows 10.
Никаких проблем! Никаких ошибок! Все прошивается в штатном режиме.
В файле php.ini раскоментирована строка:
extension=php_sockets.dll
Больше никаких нюансов нет.


2016-08-29 10:48:15 | Andrey_B
Дмитрий, вы правильно подключили датчик? Подключение датчика по схеме паразитного питания подразумевает соединение ноги Vcc и GND. Качественный ли вы используете датчик? В последнее время участились случаи контрафактных изделий от китайских производителей. Положение конфигурационного джампера на модуле MegaD-14-IN для используемого порта нижнее?
Работу скрипта megad-cfg с ОС Windows 10 проверю.


2016-08-28 13:27:32 | Дмитрий
(не уверен, что об этом надо писать сюда, но...)

столкнулся с двумя ошибками/проблемами:

1) подключил датчик DS18B20 по схеме с паразитным питанием, в итогк вижу температуру - 0.00. Прошивка 3.43
Если дать нормальное питание на датчик, то уже вижу что-то похожее на реальную температуру, правда показания скачут в диапазоне 2х градусов.

2) хотел обновить прошивку, а получил сообщение об ошибке в строке 55 (ниже уже об этом писали). Win 10. Ничего из рекомендаций оставленных ниже не помогло. (да, про линукс знаю, однажды попробую, но думаю это не хорошо, когда такая ошибка в принципе есть)


2016-07-24 23:48:03 | Максим
Андрей,не буду спорить. Я писал про свои мучения.По поводу блока питания.Во всех своих случаях был один и тот же.Пока не поменял "алгоритм" действий не чего не получалось.


2016-07-08 12:31:45 | Andrey_B
Максим, наличие или отсутствие "пинга" никак не определяет возможность перепрошивки, так как перепрошивку обеспечивает загрузчик, а в нем просто нет реализации icmp протокола. Что касается "досчитал до трех". Если вы используете блок питание от MeanWell, то после выключения питания 220В он выключается не сразу, а спустя 1-2 секунды. Нужно действительно убедиться, что индикатор на устройстве и блоке питания погас. В статье нет никаких принципиальных ошибок.


2016-07-02 13:14:43 | Максим
спасибо всем.ПРОШИЛ.

miniAdmin@MINIADMINACER c:xampp
php.exe megad-cfg.php --fw megad-328.hex -f -e --ee
Connecting... OK
Checking firmware... OK
Erasing firmware... OK
Writing firmware... OK
Erasing EEPROM... OK
Restarting device... OK

1 категорическая ошибка в настройках всего процесса (я пишу про свои мучения)
2014-12-22 23:20:33 | Andrey_B
Антон,
1. Выключаете устройство
2. Запускаете скрипт megad-cfg.php --fw megad-328.hex -f -e --ee
3. Включаете устройство
Все.

Вот это в корне не верно!!!!!
не запуститься вся команда пока пинга не будет до устройства.
Как делал я. включил мегадевайс. запустил на компе (подключен на прямую к меге) ping ip -t
убедился что пинг есть точно (пару раз вкл выкл мегу)
запустил на компе megad-cfg.php --fw megad-328.hex -f -e --ee
выскочила конект....
выключил мегу,досчитал до трех.включил мегу и перепрошилась.

исходные данные
1 мега не пускала в себя ip -192.168.88.125 шлюз 192.168.88.1
2 ноут подключен напрямую к меге (все карты выключены кроме той что подключена к меге ЭТО ОБЯЗАТЕЛЬНО).соответственно инета нет и прошивку ставим локально а не тянем с инета ip ноута 192.168.0.4 маска 255.255.255.0 шлюз не указан.

прошиваем именно с ключами --ee
ВНИМАТЕЛЬНО КОПИРУЕМ ВСЮ КОМАНДУ
для винды php.exe megad-cfg.php --fw megad-328.hex -f -e --ee
про линукс писать не буду не пробовал но вроде так php megad-cfg.php --fw megad-328.hex -f -e --ee
ВНИМАНИЕ-все настройки после успешной прошивки стираются
применяются заводские 192.168.0.14/sec

УСПЕХОВ!!! 18 часов посветил трахонью с этим чудо девайсом


2016-07-01 21:44:05 | Максим
Добрейшего дня. Тема интересная (про перепрошивки).А можно попросить сделать одну маленькую но полезную вещь. Я дятел и по сети не получается перепрошить. Проблема в авторизации (как у многих).Доходит то коннект и все. Можно ли от Вас получить 100% инструкцию как перепрошить прогромматором. А то это слово тут попадается часто,а что это может половина не знать. Инструкция для чайников. Типо лезим на ебей и покупаем вот такую железку,далее качаем вот это и это,подключаем как на картинке и прошиваем.


2016-06-04 11:31:52 | Andrey_B
Миша, поправил


2016-06-03 21:54:29 | Миша
Все! Отлично! Получилось! Все-таки посоветовал бы Вам немного подправить название параграфа: "А если у меня релиз не 5.1, я не смогу перепрошивать устройство по сети?"
на что-то, вроде "Если ревизия моего контроллера более ранняя чем 5.1?"

И. Что б такие чайники(дотошные к инструкции), как я, не задавали одни и те же вопросы, предлагаю, все же добавить в инструкцию команду записи загрузчика:
avrdude -c avrispmkII -P usb -p m328p -e -U flash:w:megad-boot.hex

Спасибо за отличные устройства!


2016-06-03 19:21:14 | Andrey_B
Миша, все зависит от используемого ПО и программатора.
Запись загрузчика ничем не отличается от записи прошивки. Для avrdude и программатора avrISP mkII
avrdude -c avrispmkII -P usb -p m328p -e -U flash:w:megad-boot.hex


2016-06-03 19:19:06 | Andrey_B
Дмитрий, в любые контроллеры (не важно какой ревизии) на базе atmega328/atmega328p можно записать загрузчик. С этой точки зрения старые ревизии контроллеров никак не отличаются от новых.


2016-06-03 03:47:32 | Миша
Андрей, подскажите команду прошивки загрузчика. Вверху в статье не нашел. Там установка фьюз-битов и усе.


2016-06-02 20:30:59 | Александр
Ну раз пока не получилось, то и ладно. Хотя для таких как я это не проблема - я в свой Веб-сайт вставил. Ну или автоматом все устройства обновляю с консоли.


2016-06-02 20:27:28 | Дмитрий
Андрей, простите. Но я задал вопрос, как обычный Ванька-дурак, зная ответ заранее. Суть в том-то и состоит, что четко это не написанно в статье. Только с ревизии 5.1 или же все старые тоже.


2016-06-02 18:10:39 | Andrey_B
Александр, пока не сделал. Как-то все не до этого было. Да и нет у меня информации, насколько активно используется MegaD-Panel. Это все-таки штука больше для обучающей цели придумана.


2016-06-02 18:09:20 | Andrey_B
Дмитрий, загрузчик можно записать и в старые контроллеры. Никаких проблем с этим нет. Но для этого нужен программатор. В статье же описано как и что делать в этом случае.


2016-06-02 18:05:25 | Andrey_B
Максим, необходимо перепрошить устройство в режиме восстановления.
Ключи: -f -e --ee
Последовательность действий описана в статье.


2016-06-02 06:26:21 | Александр
Здравствуйте Андрей!

Пару лет назад где-то на форуме читал, что Вы собирались встроить функцию обновления в MegaD Panel. Таки сделали или нет?


2016-06-02 06:20:52 | Дмитрий
Андрей, Вы пишите:
"Начиная c ревизии 5.1 контроллера MegaD-328 для перепрошивки не нужен программатор!"

А как быть с более ранними ревизиями? У меня например есть пара Ver 2.0.


2016-05-31 21:55:07 | Максим
господа, нужна помощь!!!
В majordomo случайно клацнул по "Сохранить" в разделе firmware . Clear EEPROM естественно не стояло. Как следствие, сейчас не могу найти на устройство.
Пароль не менялся. Но при вводе выдает unauthoized.
Скан проходит нормально - все меги включая проблемную видны.
Перепрошивка не проходит - опять же unauthorized.
перепрошивка с ключем -e не проходит - линк на девайсе загарается, но комп дальше connecting не идет...
Что можно сделать? лезть на полку за программатором?


2016-02-23 02:41:49 | Роман
Слэш забыл :) php.exe C:/megad-cfg.php --scan


2016-02-22 14:47:05 | Роман
megad-cfg.php работает корректно.Путь к файлу megad-cfg.php должен быть абсолютным:скачали,разархивировали и положили его на диск С.При перепрошивке пишем так php.exe C:megad-cfg.php --scan


2016-02-22 12:43:50 | Andrey_B
Lewcom, рекомендации прежние. Я же написал, что скрипт не всегда корректно работает в Windows XP со старой версией загрузчика. Также про --local-ip. Кроме того, всегда есть возможность подключить ISP-программатор и перепрошить им.


2016-02-22 11:26:13 | Lewcom
Вижу второй комент не сохранился.
Пробовал и winXP и мега + комп (без посредников, только одна сетевая),
скрипт выдает
C:PHP>php megad-cfg.php --scan

C:PHP>
ничего.
На меге исправно мигает лан порт(раньше она работала в системе с мажордомо)
IPсканером находит все, кроме меги.
Высылать к вам - накладно (Украина)


2016-02-21 23:33:46 | Andrey_B
Lewcom,
1. Были сообщения от некоторых пользователей, что скрипт megad-cfg.php не всегда корректно работает в Windows 10 и Windows XP. Попробуйте Windows 7 или Linux. В Linux он работает всегда. Кстати, если не пробовали, попробуйте установить Linux как вторую ОС или в виртуальной машине. Может быть, вам понравится. Начать можно с чего-нибудь более дружелюбного типа Mint MATE или Ubuntu.
2. Подключите устройство напрямую к компьютеру патч-кордом. Линк на сетевом разъеме компьютера и устройства должен гореть.
3. Если на компьютере несколько сетевых интерфейсов (беспроводных или проводных), то иногда помогает указать --local-ip IP-адрес локального интерфейса, к которому подключена сеть/устройство.
4. Крайний вариант, всегда можно выслать устройство нам, мы загрузим самую последнюю прошивку, при необходимости обновим бутлоадер, проверим все функции, установим нужный IP-адрес и вернем обратно.


2016-02-21 22:10:35 | Lewcom
Приблизительно год не пользовался MegaD.
Соответственно забыл IP. Пробовал востанавливать через megad-cfg.php" --scan получил PHP Fatal error: Call to undefined function socket_create () in C:phpmegad-cfg.php on line 55.
в php.ini раскомментировал строчку
extension=php_sockets.dll
результат
C:PHP>php megad-cfg.php
MegaD-328 management script Ver 1.38
Available options:
--scan (Scanning network for MegaD-328 devices)
--ip [current IP address] --new-ip [new IP address] -p [] (Changing IP-address)
--ip [IP address] --fw [HEX-file] -p [] (Upgrade firmware. Normal mode)
--ip [IP address] -w -p [] (Upgrade firmware ab-log.ru. Add -b for beta. Normal mode)
--fw [HEX-file] -f (Upload firmware. Empty flash, bootloader mode)
--fw [HEX-file] -f -e (Upload firmware. Broken firmware)
--ee (Optional! Erase EEPROM)
--read-conf [filename] (Read configuration: device to file)
--write-conf [filename] (Write configuration: file to device)

C:PHP>php megad-cfg.php --scan


2016-01-04 10:50:18 | Алексей
Как выяснилось, роутеры Mikrotik в режиме точки доступа не являются препятствием для прошивки устройства по сети. Достаточно во вкладке IP->Firewall разрешить forward UDP-пакетов.
А вот тот же роутер в режиме Wi-Fi бриджа проблемой является, так как при его настройке обычно забывают настроить Firewall а после переключения в режим бриджа это уже невозможно сделать извне.


2015-12-07 12:30:22 | Леонид
Андрей, спасибо за вашу работу и за подробное описание. Если в данном описании в разделе про фьюзы "avrdude -c avrispmkII -P usb -p m328p -U lfuse:w:0x60:m -U hfuse:w:0xD8:m
добавите что "-U lfuse:w:0x60:m" следует выполнять только при тактировании от внешнего источника, это сэкономит много времени другим. Лично я потратил день чтобы разобраться, на форуме решение есть (/www.ab-log.ru/forum/viewtopic.php?f=1&t=6&start=2000p17832), но я нашел его позже. Может плохо искал...


2015-11-30 12:04:35 | Andrey_B
Илья, ниже в комментариях я уже отвечал.


2015-11-29 18:35:52 | Илья
Подскажите в командной строке под Win 7 делаю C:phpphp.exe "C:phpmegad-cfg.php" --scan
PHP Fatal error: Call to undefined function socket_create () in C:phpmegad-cfg.php on line 55
Подскажите решения данной проблемы?


2015-10-11 20:31:57 | Andrey_B
Тимофей, если в вашем устройстве нет загрузчика (а судя по версии прошивки его нет), то необходимо его установить с помощью программатора, как описано в статье.


2015-10-11 14:21:46 | Тимофей
Могу ли я как-нибудь прошить устройство с версией прошивки 3.09?


2015-06-06 11:28:46 | Andrey_B
Сергей, это неправильное исправление, так как в этом случае конфигурация сохраняется некорректно. В данном случае нужно либо несколько переделать функцию считывания конфигурации, либо процедуру установки пресета в прошивке микроконтроллера. Я вообще планирую отказаться от реализации пресета в микроконтроллере, так как на подходе несколько разных исполнительных модулей. В общем, подумаю.


2015-06-04 12:52:41 | Сергей
Андрей, возможно нашёл ошибку в строке 138.
Было:
$page = file_get_contents("/".$options['ip']."/".$options['p']."/?cf=1&pr=0");
Изменил на:
$page = file_get_contents("/".$options['ip']."/".$options['p']."/?cf=1&pr=".$stored_preset);

Возможно, не прав, но у меня до исправления чтение конфигурации сбивало режимы работы входов с P&R на P.


2015-02-01 19:16:19 | Bernard
Вот такая проблема тоже была у меня - "Connecting... включил и ничего" и --scan тоже ничего не выдавал.
Оказалось, что скрипт прошивки видит только ту подсетку, в которой находится комп, где запускается скрипт. У меня Мегадевайсы вынесены в отдельную подсетку и их скрипт не видел.

Исправил строку в скрипте
$broadcast_ip = preg_replace("/(d+).(d+).(d+).(d+)/", "$1.$2.$3.255", $local_ip);
на
$broadcast_ip = preg_replace("/(d+).(d+).(d+).(d+)/", "$1.$2.255.255", $local_ip);
и все заработало


2015-01-13 12:57:35 | Andrey_B
Дмитрий, значит что-то блокирует пакеты. Например, роутер, если он используется в качестве Ethernet-коммутатора.
Попробуйте подключить устройство к серверу напрямую или заменить коммутатор на максимально простой. В последних версиях прошивки были сделаны некоторые изменения для решения проблемы с роутерами.


2015-01-13 11:43:13 | Дмитрий
Так и делал.
выключил
набрал
root@raspberrypi:~ php /var/www/html/megad-cfg.php -w -f -e --ee
Downloading firmware... OK
Connecting...
включил
и ничего


2015-01-13 11:13:02 | Andrey_B
Дмитрий,
1. Выключаем устройство
2. Запускаем сприпт
megad-cfg.php -w -f -e --ee
Скрипт напишет Connecting...
Так и оставляем.
3. Включаем устройство. Должен начаться процесс прошивки.
После этого IP-адрес может сброситься на тот, что по умолчанию.
Скрипт желательно взять свежий с сайта.


2015-01-13 10:42:43 | Дмитрий
Андрей, помогите!
Устройство на всех страницах пишет 401 Unauthorized . Но если прямой ссылкой обратиться на нужную страницу после сброса питания например /192.168.13.81/sec/?cf=1 и поменять там что-нибудь то примет. Прошить командой php megad-cfg.php --fw megad-328.hex -f -e --ee пробовал зависает на слове Connecting.... . Устройство пингуется нормально. Блок питания сменил на другой, пробовал с другого компа. пробовал с Windows и Debian... нникак. Еще не на одной из машин не получилось увидеть адреса устройства командой php megad-cfg.php --scan - просто ни чего не выдает на экран ни ошибки ни адреса.


2014-12-22 23:20:33 | Andrey_B
Антон,
1. Выключаете устройство
2. Запускаете скрипт megad-cfg.php --fw megad-328.hex -f -e --ee
3. Включаете устройство
Все.


2014-12-22 17:12:20 | Антон
Андрей, т.е. команда сброса будет:
megad-cfg.php --fw megad-328.hex -f --ee
или какая?


2014-12-22 17:11:19 | Andrey_B
Антон, ключ сброса в заводские не "-e", а "--ee".


2014-12-22 15:25:40 | Антон
добрый день Андрей
при попытки попытки обновления прошивки через сеть
скриптом с сайта
php megad-cfg.php --ip 192.168.1.248 -p sec -w -ee
вроде все прошло нормально везде выдало - ОК
единственное, что насторожило это то что устройство не скинулось по умолчанию.
оно так же пингуется по сети, отвечает по WEB, но не принимает пароль.
перепрошивка после сбоя (megad-cfg.php --fw megad-328.hex -f -e) дает тот же эфект везде все ОК но пароль не принемается и к настройкам по умолчанию не возвращается.

Как сбросить устройство на заводские настройки не зная пароль?


2014-11-12 20:56:17 | Andrey_B
Артем, прошивка загрузчика ничем не отличается.
Например
avrdude -c avrispmkII -P usb -p m328p -e -U flash:w:megad-boot.hex


2014-11-12 14:21:57 | Артём
Андрей, напишите, пожалуйста, пример для прошивки загрузчика для avrdude и AVRISP mkII.
Спасибо.


2014-11-09 11:27:25 | Alex
Здравствуйте,Андрей!
Огромное спасибо за Ваш труд! Портировал прошивку на контроллер Mega2560 в виду большего количества портов, думал обновиться до версии с прошивкой по сети,нооо.... в загрузчике видимо по-другому подцеплен сетевой модуль на иные порты нежели у меня,можно ли каким-то образом поменять/посмотреть код загрузчика для портирования на мегу2560?


2014-10-26 17:53:50 | Денис
Большое спасибо за все что делаете.
По поводу сетевого перепрошиватора - где все таки можно глянуть исходники. Пытаюсь засунуть его на девайсик с атмегой 328. вроде все ок, прошивка залилась, после чего признаков жизни не подает. подключена к ноуту с WinXP через тупой хаб, адрес на ноуте выставлен руцями, в получившейси мини сетке - только два вышеозначеных девайса.
А, забыл указаьб, что Ваша прошивка начиная с версий 3.06 на сем девайсе работает безукоризненно.


2014-07-07 18:00:10 | Andrey_B
Александр, да, возможно.


2014-07-07 12:37:01 | Александр
Возможно ли прошить по сети устройство v.4.0 после установки загрузчика.


2014-04-27 08:35:01 | Илья
Андрей, спасибо за ответ.
>>"кирпич" при таком виде "прошивания" получить трудно, так как всегда остается загрузчик и режим "-e".
Режим -e приводил к результатам:
На медиасервере с debian 6.0:
root@BOX:~/mega php megad-cfg.php -w -f -e
Downloading firmware... OK
Connecting... OK
Erasing firmware... OK
Writing firmware... FAULT
Restarting device... OK

На ноуте с Win8.1
C:PHP>php.exe megad-cfg.php -w -f -e
Downloading firmware... OK
Connecting... OK
Erasing firmware... OK
Writing firmware... FAULT
Restarting device... FAULT

На какой-то момент после "n" попытки с "n" конфигурацией думал что все - кирпич

Потом достал бубен и в итоге, починив сокеты на Win и подключив к простейшему сетевому концентратору ТОЛЬКО MegaD и ноутбук мне удалось все прошить скриптом из данной темы. Естественно, при таком варианте подключения ни о каком роутере с DHCP речь не шла, максимально все упрощалось до "круглого коня в вакууме".


2014-04-26 21:31:01 | Andrey_B
Илья, "кирпич" при таком виде "прошивания" получить трудно, так как всегда остается загрузчик и режим "-e".
Call to undefined function socket_create() (для Windows)
Нужно в php.ini раскомментировать строчку
extension=php_sockets.dll
Прошивать через роутер dd-wrt не пробовал. Не исключаю, что бродкасты могут частично или полностью блокироваться. Возможно, это настраивается. С любыми обычными коммутаторами (или как вы их назвали хабами) никаких проблем нет.
Был также зафиксирован у одного пользователя сбой прошивки при наличии активного широковещательного стриминга медиа-контента, когда элементарно совпали заголовки пакетов. Но ситуация скорее из разряда исключительных. Насчет DHCP не понял. Если у вас роутер является DHCP-сервером, то если вы подключите его к "хабу", сервис должен работать.


2014-04-26 15:03:20 | Илья
Разобрался.
Прошивка по сети возможна ТОЛЬКО при подключении к обычному хабу (с роутером dd-wrt не вышло) ТОЛЬКО контроллера и компьютера, с которого осуществляется прошивка. IP адрес компьютера вбиваете вручную т.к. DHCP скорее всего не будет доступен.


2014-04-26 14:22:22 | Илья
C:PHP>php.exe megad-cfg.php -w -f -e

Fatal error: Call to undefined function socket_create() in C:PHPmegad-cfg.php
on line 55

Из-под винды ошибка.


2014-04-26 13:29:31 | Илья
root@BOX:~/mega php megad-cfg.php -w -f -e
Downloading firmware... OK
Connecting... OK
Erasing firmware... OK
Writing firmware... FAULT
Restarting device... OK

Кирпич :(


2014-04-11 09:54:48 | evgen
добрый день
а где посмотреть исходники загрузчика


2014-02-20 13:31:47 | andvas
Cпасибо