Альтернативные прошивки MegaD

Обсуждение статей, технологий домашней автоматизации, программных и аппаратных решений
GruNT
Сообщения: 281
Зарегистрирован: 27 авг 2014, 16:42

Альтернативные прошивки MegaD

Сообщение GruNT » 19 ноя 2014, 15:22

Создание и обсуждение альтернативных прошивок для оригинальной MegaD и иных ее реализаций.
Решил создать новую тему, чтобы другие не засорять))).
Разрабатываю прошивку на базе оригинальной 3.25b1. Конструирую 1-Ware. Думаю отдать под нее 2 порта :roll: .
А еще... а еще web-интерфейс в перспективе (внешний) с новым API.

В данный момент мучаю поиск устройств 1-Ware в сети...
P.S. Стоит ли делать внешний web-интерфейс? Будет много желающих - сделаю)))

alexsis_76

Re: Альтернативные прошивки MegaD

Сообщение alexsis_76 » 19 ноя 2014, 17:32

В данный момент мучаю поиск устройств 1-Ware в сети...
возьмите за основу Application Note 187. 1-Wire Search Algorithm там исходный код есть , рабочий , все ищет , работает на меге почти без переделок

kod.begemot
Сообщения: 400
Зарегистрирован: 21 сен 2013, 00:38

Re: Альтернативные прошивки MegaD

Сообщение kod.begemot » 19 ноя 2014, 17:56

Внешний интерфейс - хранящийся в отдельной EEPROMке? Тогда я за! Место освободится, можно ещё функций напихать...
Насчет функций пожелание - хочется расширить функционал Action - во первых увеличить длину полей, а во вторых - увеличить их количество - просто "Action", как сейчас, "Netaction" - тоже сохранить, но и добавить "Action always" - выполняющиеся даже если есть связь с сервером, и "NetAction slawe" - выполняющееся если не доступен сервер.

GruNT
Сообщения: 281
Зарегистрирован: 27 авг 2014, 16:42

Re: Альтернативные прошивки MegaD

Сообщение GruNT » 19 ноя 2014, 19:01

kod.begemot писал(а):Внешний интерфейс - хранящийся в отдельной EEPROMке? Тогда я за! Место освободится, можно ещё функций напихать...
Насчет функций пожелание - хочется расширить функционал Action - во первых увеличить длину полей, а во вторых - увеличить их количество - просто "Action", как сейчас, "Netaction" - тоже сохранить, но и добавить "Action always" - выполняющиеся даже если есть связь с сервером, и "NetAction slawe" - выполняющееся если не доступен сервер.
В контроллере хочу оставить только UDP и убрать HTML. Web - интерфейс будет отдельным и становиться будет на комп (лучше на сервер).
Плюсы:
-не тратим память на файловую систему в случае EEPROM,
-вся валидация форм ввода будет осуществляться "сайтом",
-освободится куча места (т.к. МК не будет заниматься ни каким "графическим" выводом) по разные новые плюшки))).
-интерфейс станет динамичным.

kID
Сообщения: 69
Зарегистрирован: 29 май 2013, 19:36
Откуда: Новосибирск

Re: Альтернативные прошивки MegaD

Сообщение kID » 19 ноя 2014, 19:47

GruNT писал(а): Разрабатываю прошивку на базе оригинальной 3.25b1. Конструирую 1-Ware. Думаю отдать под нее 2 порта :roll: .
А какая схемотехника планируется для Вашей реализации? Два транзистора как в варианте THK (кстати у меня заработало только с биполярниками) или вариант DOCSIMUSA на шине I2C через DS2482S. (мне кажется более надежным вариантом, хоть и дороже)

GruNT
Сообщения: 281
Зарегистрирован: 27 авг 2014, 16:42

Re: Альтернативные прошивки MegaD

Сообщение GruNT » 19 ноя 2014, 20:32

Пока что реализация программной части на оригинальном железе megaD (схемы). Щас работаю в протеусе на порте PC0 без всякой обвязки. Уже есть сканирование и запоминание в EEPROM списка обнаруженных устройств, работает определений температуры для ds18d20. Хочу сделать чтоб была поддержка всех плюшек портов и на 1-ware тоже, но мало памяти. Проведя оптимизацию (писал в теме: Прошивка MegaD-328 (релизы, обсуждения, предложения) ) с добавленными функциями, занято 94,7 %. Видать придется во внешний интерфейс уходить. :roll:
DS2482S - заинтриговала, особенно DS2482S-800, вот только цена кусается (420р. для 800). Попробую, посмотрим что получиться. Плату нарисовал для корпуса D3MG. МК'ы - все SMD. Трансформатор внешний. Плата двухсторонняя. Хотелось пока что определиться с функциями чтоб не переделывать плату потом. :).

kID
Сообщения: 69
Зарегистрирован: 29 май 2013, 19:36
Откуда: Новосибирск

Re: Альтернативные прошивки MegaD

Сообщение kID » 19 ноя 2014, 20:47

Ну ds2482s-800 это конечно перебор - целый "сервер" 1-wire
А ее маленький собрат позволит избавиться от головной боли с уровнями и таймингами, попутно чуть разгрузив основную мегу.
По поводу платы, наверно видели мою реализацию в корпусе D2MG viewtopic.php?f=1&t=6&start=1880#p13500
и хотя чуток тесновато, но иногда одно сэкономленное место здорово помогает

GruNT
Сообщения: 281
Зарегистрирован: 27 авг 2014, 16:42

Re: Альтернативные прошивки MegaD

Сообщение GruNT » 19 ноя 2014, 20:52

kID писал(а):Ну ds2482s-800 это конечно перебор - целый "сервер" 1-wire
А ее маленький собрат позволит избавиться от головной боли с уровнями и таймингами, попутно чуть разгрузив основную мегу.
По поводу платы, наверно видели мою реализацию в корпусе D2MG viewtopic.php?f=1&t=6&start=1880#p13500
и хотя чуток тесновато, но иногда одно сэкономленное место здорово помогает
Да, да! Видел))) Собственно из-за нее так и сделал. Вот только поставил разъем IDC-20 вместо IDC-40. И стоит он сверху. Сбоку не рискнул, т.к. не вариант что исполнительный модуль будет сбоку и что вообще он 1 будет)))

P.S. Где так платы делаете? На заводе что-ли)))?

kID
Сообщения: 69
Зарегистрирован: 29 май 2013, 19:36
Откуда: Новосибирск

Re: Альтернативные прошивки MegaD

Сообщение kID » 19 ноя 2014, 21:04

Всемогущий Китай, отправляешь герберы и через месяц печатки в руках.
По поводу исполнительного модуля - я исходно планировал делать много маленьких модулей а шину делать проходную через все, но пока родился только один большой. Но в скорости планирую его значительно прорядить, оставив только 3 симмисторных канала, те что PWM, остальными при помощи PL2003 щелкать релюшками или SSR.

GruNT
Сообщения: 281
Зарегистрирован: 27 авг 2014, 16:42

Re: Альтернативные прошивки MegaD

Сообщение GruNT » 19 ноя 2014, 22:40

kID писал(а):Всемогущий Китай, отправляешь герберы и через месяц печатки в руках.
По поводу исполнительного модуля - я исходно планировал делать много маленьких модулей а шину делать проходную через все, но пока родился только один большой. Но в скорости планирую его значительно прорядить, оставив только 3 симмисторных канала, те что PWM, остальными при помощи PL2003 щелкать релюшками или SSR.
ЫЫЫ. Где заказывали именно????))) Пайка ваша?
У меня вообще идея есть глобального характера))). А что если сделать модули общающиеся по какому нибудь собственному протоколу? На одной atmega тогда вообще хоть 1000 каналов сделать можно. Отдельно блок входов, отдельно блок выходов. Внутри каждого какой нибудь самый дешевый mega и регистры, регистры и еще раз регистры +релюхи и еще что там захочется)). Командует парадом MegaD (у него есть LAN). Собственно у него также и настраивается что какой порт делать будет (из этой 1000!). А там если протокол есть, то хоть дисплеи хоть драйвера двигателей цепляй (отдельные модули естественно).
Сервер дает команду MegaD, а тот смотрит что же за модуль может такую команду выполнить и дает команду модулю. Тот считывает/выставляет и говорит Mega'е что якобы все - закончил все делать, а та ему... ну раз все, так я серверу докладываю что "ОК" (или вызываю другой модуль)! Едем дальше)))
Кстати ваша шина бы в этом варианте точно пригодилась)))

kod.begemot
Сообщения: 400
Зарегистрирован: 21 сен 2013, 00:38

Re: Альтернативные прошивки MegaD

Сообщение kod.begemot » 19 ноя 2014, 23:43

А мне всё-же кажется что изначальная концепция (много MegaD общаются по сети и между собой) более перспективна и расширяема.
Я для себя потихоньку добавляю некое подобие PoE в старенький 3COM - подаю на "лишние" пары 24 вольта. Меги планирую тоже собирать с отдельным трансом и разъёмом, из которого нетрудно эти 24 вольта изъять. Витую пару можно кинуть куда угодно. И можно располагать близко к месту применения. Можно же собирать модули ввода/вывода и 0I/14O или 14I/0O, а связь между ними держать по сети. Только вот тогда ну очень пригодятся расширенные Actions'ы (о чем я писал ранее), с ними система, на мой взгляд, будет максимально близка к идеалу.

comparator
Сообщения: 516
Зарегистрирован: 20 окт 2012, 12:40
Откуда: Мюнхен

Re: Альтернативные прошивки MegaD

Сообщение comparator » 19 ноя 2014, 23:51

Да, мысли сходятся.
GruNT писал(а):В контроллере хочу оставить только UDP и убрать HTML. Web - интерфейс будет отдельным и становиться будет на комп (лучше на сервер)
Все что вы только собираетесь сделать, у нас уже реализовано.
Через пару дней выложу обновленную версию. Так-же используется стек по мотивам LifeLover'a. Но с динамическим выделением памяти, и капитальным рефакторингом.
GruNT Может просто присобачите туда 1Wire? А то у меня на него стойкая аллергия.

Кстати что подразумевается под 1Wire ? Полный спектр, или только DS18B20 ?

Немного картин с выставки, что должно быть в распредящике :lol:
Kasten.jpg
Kasten.jpg (162.68 КБ) 17040 просмотров

Andrey_B
Администратор
Сообщения: 5327
Зарегистрирован: 18 мар 2011, 12:06

Re: Альтернативные прошивки MegaD

Сообщение Andrey_B » 20 ноя 2014, 00:25

comparator, как-то непатриотично менять Augustiner, Paulaner, Hofbr?u, Spaten, Franziskaner, Andechs, Ayinger на продукт из Bad Blankenburg (Тюрингия). ;)
Извините, не удержался...

Sergey Borovkov
Сообщения: 77
Зарегистрирован: 22 ноя 2013, 03:17

Re: Альтернативные прошивки MegaD

Сообщение Sergey Borovkov » 20 ноя 2014, 02:58

UDP - довольно нестандартная штука для передачи данных. Чем удобен http? Один file_get_contents и имеешь результат. И так не только на php, но и на куче других языков. Да хоть на баше wget. Точно так же в обратную сторону. LAMP в руки - и все. Ставится одной командой.
Поэтому я бы предпочел иметь api на http.

А поддержки ds18b20 на megad мне очень не хватает. Причем даже в самом простом варианте - 1 штука 18b20 на 1 пин меги. Причем там можно сделать интересно - мегад получает запрос, сначала считывает текущее значение и потом посылает команду на преобразование. Таким образом, опросив дважды с промежутком 2 секунды гарантированно получишь текущую температуру, а для API - всего добавление типа цифрового датчика.

kID
Сообщения: 69
Зарегистрирован: 29 май 2013, 19:36
Откуда: Новосибирск

Re: Альтернативные прошивки MegaD

Сообщение kID » 20 ноя 2014, 07:30

GruNT писал(а): ЫЫЫ. Где заказывали именно????))) Пайка ваша?
http://pcb.hqew.net/calculator.html судя по сайту и отзывам можно заказать и полностью собранные платы. Но сам не пробовал, собирал сам.
GruNT писал(а): У меня вообще идея есть глобального характера))). А что если сделать модули общающиеся по какому нибудь собственному протоколу? На одной atmega тогда вообще хоть 1000 каналов сделать можно. Отдельно блок входов, отдельно блок выходов. Внутри каждого какой нибудь самый дешевый mega и регистры, регистры и еще раз регистры +релюхи и еще что там захочется)). Командует парадом MegaD (у него есть LAN). Собственно у него также и настраивается что какой порт делать будет (из этой 1000!). А там если протокол есть, то хоть дисплеи хоть драйвера двигателей цепляй (отдельные модули естественно).
Это уже другое устройство. Сам мегадевайс это законченная конструкция со своей идеологией (единственное что ему не хватает это поддержки 1-wire)

GruNT
Сообщения: 281
Зарегистрирован: 27 авг 2014, 16:42

Re: Альтернативные прошивки MegaD

Сообщение GruNT » 20 ноя 2014, 23:54

comparator писал(а):Кстати что подразумевается под 1Wire ? Полный спектр, или только DS18B20 ?
Sergey Borovkov писал(а):А поддержки ds18b20 на megad мне очень не хватает. Причем даже в самом простом варианте - 1 штука 18b20 на 1 пин меги. Причем там можно сделать интересно - мегад получает запрос, сначала считывает текущее значение и потом посылает команду на преобразование. Таким образом, опросив дважды с промежутком 2 секунды гарантированно получишь текущую температуру, а для API - всего добавление типа цифрового датчика.
И так. Планирую полную поддержку. На данный момент уже определяются ds18s20, ds18b20, ds1990 (botton). Atmega включает сканирование сети при нажатии соответствующей кнопки в интерфейсе порта.
Найденные устройства сохраняются в EEPROM в виде массива. Для датчиков температуры раз в секунду идет измерение температуры и запись показаний в EEPROM. При вызове (?1w=t) возвращает массив температур всех датчиков с ихними адресами))). В перспективе создание запросов для получения значений отдельно взятых датчиков. Для других устройств 1 ware в зависимости от их назначения хочу сделать похожий алгоритм работы. В итоге все значения всегда будут в eeprom (alarm,temp,status). Сервер получает данные с устройства без задержек))))

GruNT
Сообщения: 281
Зарегистрирован: 27 авг 2014, 16:42

Re: Альтернативные прошивки MegaD

Сообщение GruNT » 21 ноя 2014, 00:07

Sergey Borovkov писал(а):UDP - довольно нестандартная штука для передачи данных. Чем удобен http? Один file_get_contents и имеешь результат. И так не только на php, но и на куче других языков. Да хоть на баше wget. Точно так же в обратную сторону. LAMP в руки - и все. Ставится одной командой.
Поэтому я бы предпочел иметь api на http.
Вы правы. Но вопрос в отказе от встроенного интерфейса назрел как никогда((
Принимаю предложения по дизайну будущего Web-интерфейса (в виде микросайта). Я в данный момент склоняюсь к вертикальному списку портов в формате "аккордеон". При нажатии мыши на вкладку порта, панель с настройками порта выезжает снизу. Цвет вкладок зависит от наличия ШИМ и АЦП. Правая часть вкладки указывает вид порта, статус порта и его значение. Обновление данных раз в 1 сек. Дабы страница весила меньше, все постараюсь уместить в одном html файле)))). А ну да... раз php не будет (дабы работало это творение без сервера) придется юзать cookes.
Жду предложений и идей.

asteroid
Сообщения: 42
Зарегистрирован: 13 апр 2013, 02:16

Re: Альтернативные прошивки MegaD

Сообщение asteroid » 21 ноя 2014, 03:54

GruNT писал(а): В итоге все значения всегда будут в eeprom (alarm,temp,status).
Как то у меня была на меге 8 прошивка "часы" где каждую секунду сохранялись показания в EEPROM.
То и года не жила. Заявленные 100000 раз быстро уходили.

alexsis_76

Re: Альтернативные прошивки MegaD

Сообщение alexsis_76 » 21 ноя 2014, 05:37

Жду предложений и идей.
т.е. вы все таки решили запихать страницу в EEPROM ?
В итоге все значения всегда будут в eeprom
а зачем хранить текущее значение температуры в EEPROM ?

GruNT
Сообщения: 281
Зарегистрирован: 27 авг 2014, 16:42

Re: Альтернативные прошивки MegaD

Сообщение GruNT » 21 ноя 2014, 10:11

asteroid писал(а):
GruNT писал(а): В итоге все значения всегда будут в eeprom (alarm,temp,status).
Как то у меня была на меге 8 прошивка "часы" где каждую секунду сохранялись показания в EEPROM.
То и года не жила. Заявленные 100000 раз быстро уходили.
alexsis_76 писал(а):а зачем хранить текущее значение температуры в EEPROM ?
Вы правы))). Не подумал....Значит хранение тогда отпадает. Хотел чтоб без задержек опрос был. Планирую до 10 устройств вешать.
alexsis_76 писал(а): т.е. вы все таки решили запихать страницу в EEPROM ?
Нет. Страница будет на компе. Запустил... Ввел ip и настраивай как хочешь. Все будет динамически с Ajax на одной странице.
Внешняя память я считаю-это усложнение. Все равно по сути настраивать часто что-то не придется. Один раз сделал и забыл.
К тому же с динамической HTML будет намного удобнее работать, а все введенные ip (если устройство в сети не одно) будут
храниться в cookes. Между устройствами можно будет переключаться)))). Ну и оформление красивое...
Думаю что объем страницы получиться большой для atmega (я читал что больше одного пакета она сейчас не пересылает).

Ответить