Ардуино + ENC28J60
- Войдите на сайт для отправки комментариев
Всем доброго дня!
Не серчайте, если не в ту ветку форума залез. Вопрос у меня уже заезженный и замыленный, но решить его я не могу.
Суть вопроса: Есть у меня Ардуино Уно и Нано и микросхема ENC28J60. Использую стандартную библиотеку ethernet.h и взятую на стороне EtherCard.h. В качестве скетча беру стандартные примеры из этих библиотек для реализации Web-сервера. Задаю IP-адрес в рамках своей подсети. Пины использую в соответствии с описанием библиотек. Для Нано пришлось стабилизировать напряжение, так как пип 3.3В проседал до 2В. В общем с моей точки зрения все сделано корректно. Лампочки на ENC28J60 вроде бы все горят правильно (красная на плате и желтая+зеленая при подключении сетевого кабеля) Но ПК не видит мой Web-сервер при работе как через Уно так и через Нано. Команда ping пишет либо "Превышен интервал ожидания" либо "Сервер (или адрес, не помню) не доступен". Пакетов получено 0, отправлено 4. За все время тестирования только один раз был получен один пакет из четырех (наверное случайно).
Предположения: Предположений три. Первое - кривые руки. Второе - неисправная плата ENC28J60 (хотя судя по лампачкам она что то делает и работает). Третье - Не может это быть связано с сетью? IP распределяются маршрутизатором динамически, а тут статический адрес. Я подключаю свое устройство не к ПК, а непосредстенно к маршрутизатору. Может что то нужно прописать в маршрутизаторе?
Если кто то сталкивался с подобным, пожалуйста, подскажите, что сделали и на что обратить внимание.
Никто не будет гадать, что вы там написали, выкладывайте скетч
Ip адрес который вы в скетче назначаете должен быть из подсети настроенной на роутере при этом он не должен конфликтовать с другими устройствами. Обычно это решается прописыванием фиксированного IP на конкретный MAC адресс в настройках роутера. MAC адрес тоже должен быть уникальный в подсети
Для Нано пришлось стабилизировать напряжение, так как пип 3.3В проседал до 2В.
Вы что, питаете модуль от ардуиновских 3.3В? Вы смотрели какой ток нужен модулю и какой может обеспечить ардуино? Пересадите модуль на нормальное питание, тогда поговорим.
Если не поможет, выкладывайте и схему подключения, и скетч.
Использую стандартный скетч:
Питание от USB через преобразователь Lm2596. Вот ссылка: http://ru.aliexpress.com/item/LM2596S-ADJ-DC-DC-adjustable-step-down-module-IN3-OUT1-5-35-40-v/32561997940.html?btsid=c9e4ad96-ab0a-4cb5-a3d9-362716494421&s=p&ws_ab_test=searchweb201556_0%2Csearchweb201602_3_10039_10048_10037_10017_10046_10045_10032_10040%2Csearchweb201603_1&spm=2114.03020208.3.11.TlFi4H
Думаю, что это идея, попробовать прописать фиксированный IP на конкретный MAC адрес в настройках роутера.
И да, команда
Ethernet.localIP() выдает результат 0.0.0.0
И да, команда
Ethernet.localIP() выдает результат 0.0.0.0
Ардуина к роутеру цепляется? Пробуйте сначала по DHCP получить IP-адрес:
И да, команда
Ethernet.localIP() выдает результат 0.0.0.0
Ардуина к роутеру цепляется? Пробуйте сначала по DHCP получить IP-адрес:
Спасибо, попробую!
По моему ошибка кроется вот здесь
Эта библиотека если не ошибаюсь для W5100
а для ENC28J60 вот эта https://github.com/jcw/ethercard
О, точняк, чего-то я протупил жёстко, в названии темы ведь указано ENC28J60. Повёлся на сам код :)
По моему ошибка кроется вот здесь
Эта библиотека если не ошибаюсь для W5100
а для ENC28J60 вот эта https://github.com/jcw/ethercard
Ура! Это чудо, заработало!!!
Причем я этот пример тестил и пин 10 менял на пин 8, но не работало. Как я думаю, возможно, причина в питании. Я питал схему от USB ПК, но когда подключал модуль к роутеру, брал USB переходник от самсунга, а на нем выходное напряжение, оказывается 4.75В. Еще раз всем большое спасибо! Ура!
Ура! Это чудо, заработало!!!
Причем я этот пример тестил и пин 10 менял на пин 8, но не работало. Как я думаю, возможно, причина в питании. Я питал схему от USB ПК, но когда подключал модуль к роутеру, брал USB переходник от самсунга, а на нем выходное напряжение, оказывается 4.75В. Еще раз всем большое спасибо! Ура!
Так в чем причина? в питании? и чудо что библа к 5100 заработала с 28j60?
Ура! Это чудо, заработало!!!
Причем я этот пример тестил и пин 10 менял на пин 8, но не работало. Как я думаю, возможно, причина в питании. Я питал схему от USB ПК, но когда подключал модуль к роутеру, брал USB переходник от самсунга, а на нем выходное напряжение, оказывается 4.75В. Еще раз всем большое спасибо! Ура!
Так в чем причина? в питании? и чудо что библа к 5100 заработала с 28j60?
Не, заработало то точняк с Ethercard, просто я перебирал несколько библиотек, а о том, что Ethernet.h для 5100 и не подозревал )). Похоже здесь был дабл косяк. Неверное напряжение + неверная библиотека. ))
А дабл косяк по определению сложнее одинарного косяка и хуже решается))
UIPEthernet.h это работает, но памяти жрет много.
UIPEthernet.h это работает, но памяти жрет много.
Ethercard насколько я понял жрет еще больше
по крайней мере автор uipethernet утверждает, что его библиотека использует 8к встроенных в enc28j60, а ethercard нет
опять же в ethercard нет dhcp и что еще хуже она не совместипа с ethernet.h, а значит чужие библиотеки расчитанные на ethernet.h сходу не заработают
Только что делал девайс с enc28j60 с mqtt, начал было с ethercard но потом переключился на uip
Всем доброго дня!
Не серчайте, если не в ту ветку форума залез. Вопрос у меня уже заезженный и замыленный, но решить его я не могу.
Суть вопроса: Есть у меня Ардуино Уно и Нано и микросхема ENC28J60. Использую стандартную библиотеку ethernet.h и взятую на стороне EtherCard.h. В качестве скетча беру стандартные примеры из этих библиотек для реализации Web-сервера. Задаю IP-адрес в рамках своей подсети. Пины использую в соответствии с описанием библиотек. Для Нано пришлось стабилизировать напряжение, так как пип 3.3В проседал до 2В. В общем с моей точки зрения все сделано корректно. Лампочки на ENC28J60 вроде бы все горят правильно (красная на плате и желтая+зеленая при подключении сетевого кабеля) Но ПК не видит мой Web-сервер при работе как через Уно так и через Нано. Команда ping пишет либо "Превышен интервал ожидания" либо "Сервер (или адрес, не помню) не доступен". Пакетов получено 0, отправлено 4. За все время тестирования только один раз был получен один пакет из четырех (наверное случайно).
Предположения: Предположений три. Первое - кривые руки. Второе - неисправная плата ENC28J60 (хотя судя по лампачкам она что то делает и работает). Третье - Не может это быть связано с сетью? IP распределяются маршрутизатором динамически, а тут статический адрес. Я подключаю свое устройство не к ПК, а непосредстенно к маршрутизатору. Может что то нужно прописать в маршрутизаторе?
Аналогичная проблемы была пока не взял от ардуинки не 3 вольта а 5, как только провод перекинул на 5 вольтвсе заработало
Только что делал девайс с enc28j60 с mqtt, начал было с ethercard но потом переключился на uip
axill, а можете поделиться, на каком процессоре и как именно Вы связали enc28j60 с mqtt? Код было бы идеально :)
У меня сейчас работает связь по mqtt на меге2560 через w5100 и Ethernet.h (сервер на распберри). Надо перейти на мини про.
Пробовал и ethercard и uip, но пока что получилось только сервер запустить....
uipethernet.h такая библеотека дает возможность 28j60 работать как с W5100. Единственное я заметил что при автообновлении страници виснет после нескольких обновлений, если отключить то работает
C UIPEthernet.h и правда заработало. Одно но... В локальной сети все отлично, а на удаленный сервер команды не проходят. При этом с компьютера из той же сети все доходит.
Есть мысли, в чем может быть дело? Может таймауты какие-то?
C UIPEthernet.h и правда заработало. Одно но... В локальной сети все отлично, а на удаленный сервер команды не проходят. При этом с компьютера из той же сети все доходит.
Покажите свой Ethernet.begin
Ethernet.begin(mac).
Вот весь код:
Должно работать, если DHCP раздает правильный default gateway.
Но я бы не использовал с UIPEthernet данный функционал (DHCP), а брал бы статический адрес, отключив заодно UDP полностью.
Кстати, попробуйте запустить со статическим адресом, в таком формате: Ethernet.begin(mac, ip, dns, gateway, subnet). У меня месяцами работает в режиме сервера и проблем с доступом из других подсететей я не наблюдаю.
я подключал так
Проверял все самописными программами
Сервер и клиент на Delphi
Не могу не отметить, что вариант DESArt будет работать только в том случае, если оба хоста (и клиент и сервер) в одной ip-подсети или роутер имеет адрес 192.168.1.1.
да так и есть
Про клиента:
Мне нужно определить если сервер отключил клиента, или произошел какой то сбой
не срабатывает почему то
sadman41, чего-то я запутался... Какие значения адресов нужно вводить?
Есть роутер с белым IP 223.322.223.322, который преренаправляет с порта 1883 на сервер с MQTT 192.168.123.112:1883.
Правильно ли я настраиваю UIP?
Повторюсь, если меняю
на
то все работает.
Есть роутер с белым IP 223.322.223.322, который преренаправляет с порта 1883 на сервер с MQTT 192.168.123.112:1883.
Всем привет!
В общем, пол года назад я начинал эту тему )). Проблема подключения Ардуино + ENC28J60 решилась использованием корректного напряжения и правильной библиотеки с нужной распиновкой (8 пин, а не 10…). Стандартный пример rbbb_server библиотеки EtherCard.h запустился на ура. Я обрадовался и отложил работу над устройством на некоторое время.
Сейчас вернулся к работе над своим мини сервером и обнаружил следующую проблему: стандартный rbbb_server работает, но как только я начинаю дописывать выводимую html страницу проект начинает как то нестабильно работать. То есть то запускается, то вообще нет, при этом устройство даже не пингуется.
Я понял, что проблема в строчке
Код HTML страницы в примере rbbb_server составляет с пробелами и ковычками 198 символов, то есть до 500 байт. Мой код занимаем 910 символов. Буфер я выставил на 1000 байт. Если выставить на 1200, среда разработки предупреждает, что начинаются проблемы с памятью и программа может работать некорректно.
В общем, при буфере 1000 байт устройство работает как повезёт. Если залить код и сайт откроется, то он и дальше будет открываться, а если с первого раза не открылся, то и дальше не будет открываться. Какая то ерунда... Не подскажите, в чем может быть дело?
P.S. Мне сильно понравилась библиотека
UIPEthernet.h, но её примеры моя
ENC28J60вообще не отрабатывает, устройство даже не пингуется.
P.S. P.S. Возвращаясь к питанию, в интернете видел статью, где автор утверждает, что с ардуино нано 3.3В для питания ENC28J60 брать нельзя, а с ардуино уно можно и его будет достаточно. Корректно ли данное утверждение?
P.S. P.S. P.S. Я вот все таки немного грешу на питание, дело в том, что я питаю ENC28J60 не с пина 3.3В, а с пина 5В, но через конвертор напряжения. На выходе имею стабильно 3.3В. Можно ли так делать или лучше 5В брать не с ардуино, а непосредственно с источника питания?
P.S. P.S. P.S. P.S. И еще, у меня на модуле ENC28J60 горят при включении зеленая и желтая лампочки. Это ж правильно?
Заранее всем спасибо за ответы!
P.S. Мне сильно понравилась библиотека ENC28J60 UIPEthernet.h, но её примеры моя ENC28J60 вообще не отрабатывает, устройство даже не пингуется.
Насчет конкретно ваших примеров я не в курсе, но знаю, что UIPEthernet организует внутренние буферы по ~100б на сокет. И при достижении определенного лимита свободной памяти (та цифра, что показывает компилятор) действительно перестает работать даже ping. Конкретно в моем проекте эта граница в районе 260байт. Чуть выше - пинг есть, ниже - молчок. Причем сама ардуина вполне себе работает, не висит.
Вообще - если не сильно хотите вникать во всю эту кухню, лучше сразу взять W5100 mini - чуть дороже, но не будет всех тех проблем, с которыми вы будете маяться месяцами, используя ENC. И памяти у вас свободной больше останется и progmem space.
P.S. P.S. Возвращаясь к питанию, в интернете видел статью, где автор утверждает, что с ардуино нано 3.3В для питания ENC28J60 брать нельзя, а с ардуино уно можно и его будет достаточно. Корректно ли данное утверждение?
И да и нет.
Суть тут вот в чем: чип ENC28J60 требует, по-моему, 250ma в режиме максимальной производительности. Т.е. источник питания, к которому вы подключаете сетевой модуль, должен его обеспечивать. Как правило Nano имеет штатный стабилизатор на 5V/800ma, а 3,3V - это побочный эффект, производимый чипом usb-интерфейса. Т.е. лучше считать, что 3,3V на Nano нет.
Однако я знаю одну модификацию Nano, имеющую на борту дополнительный стабилизатор на 3.3V/500ma - это Arduino Nano board от RobotDyn. Вот с ней ENC28J60 будет работать спокойно.
Так что для понимания того, будет ли работать ENC28J60 с Uno, нужно рассматривать конкретный экземпляр платы, так как там тоже может стоять отдельный стабилизатор или наоборот - он может быть выпилен для снижения стоимости.
Так же стоит знать, что встречаются модули на базе ENC28J60 с набортным стабилизатором. Такой модуль можно тупо присоединить к пину +5V платы Arduino (если, конечно, вы не превышаете суммарную нагрузку). Подобные модули так же доступны у RobotDyn и у других производителей. Отличить их можно по дополнительному трехногому таракану на плате (xx1117, как правило).
Можно и так и сяк. Пока на пин +5V не навешано потребителей, требующих больше чем 800ma - всё должно работать. Но всё же лучше оставить ардуину в покое, если вы имеете возможность не пускать через ее стабилизатор любые дополнительные нагрузки. В теории это должно уменьшить нестабильность работы АЦП микроконтроллера (analogRead() будет поточнее работать).
P.S. P.S. P.S. P.S. И еще, у меня на модуле ENC28J60 горят при включении зеленая и желтая лампочки. Это ж правильно?
Одна из них Link, вторая Activity. Если линк горит при отсутствии воткнутого провода, то, конечно, это ненормально.
Sadman41, большое спасибо за развернутый ответ. Когда брал плату что то и не думал честно говоря, какую беру. Посмотрел, библиотеки есть, примеры есть, ну и хорошо. А оказывается дело в нюансах... Хотелось бы конечно немного свою страничну наполнить информацией, чтоб не совсем пустая была.
И еще, правильно ли я понимаю, что W5100 это шилд специльно для ардуино? То есть можно расчитывать на большую стабильность? А какой объем страницы типовой для него?
У меня в планах сделать страницу по наполняемости аналогичную главной странице http://arduino.ru/. То есть как бы не пусто, но и не густо. А картинки, понятное дело, будут загружаться с интернета. Как думаете хватит возхможности для этого у W5100?
Заранее спасибо!
Интересное видео про ENC, W5100 и вообще - https://youtu.be/LwDDEIx63cA
Если под фразой "специльно для ардуино" понимать "не работает ни с чем, кроме как платы Arduino", то нет. Работает и с STM и прочими чипами, которые быстро шевелят ногами, изображая SPI-шину.
"Большая стабильность" в общеупотребительном значении обычно означает "напихаю столько HTML-а, что по швам рваться начнет, но не лопнет". Так вот, напихать в W5100 (и в любой сетевой чип) вы ничего не сможете. Он будет отправлять то, что ему будет совать МК. Если МК сует быстрее, чем работает сеть (удаленный абонент, например, подключен через GPRS), то данные будут складыватся во внутренний буфер и отправляться по мере возможности.
Так же сетевой чип будет принимать, складывая в свой буфер, всё, что лезет из сети и адресовано его MAC-адресу. Будет МК забирать данные или не будет - это дело второе. Чип начнет слать отказы в соединении всем, как только заполнится его внутренний буфер.
Теперь, что касается более узкого понимания "стабильность". Я считаю, что W5100 более стабилен в работе за счет того, что у него больше буфера (просто реже ошибка переполнения буфера будет возникать. Вплоть до того, что вы ее можете никогда за свою жизнь не получить) и аппаратный TCP/IP, который писали не любители, а оплачиваемые специалисты. Т.е., в принципе, более качественный и вылизанный код работает с сетью. С ENC28J60 тоже можно добиться определенной стабильности, вопрос только в том сколько времени из своей жизни вы готовы вычеркнуть только для того, чтобы эта гадина перестала вешаться без видимых простому пользователю Arduino IDE причин раз в день или две недели.
У меня в планах сделать страницу по наполняемости аналогичную главной странице http://arduino.ru/. То есть как бы не пусто, но и не густо. А картинки, понятное дело, будут загружаться с интернета. Как думаете хватит возхможности для этого у W5100?
Полагаю, что насчет взаимосвязи объёма страницы и применяемого сетевого модуля вы поняли - ее нет. Объемы вы будете хранить в микроконтроллере или на SD-карте, которую будет читать микроконтроллер. А вот сколько в МК останется места под ваш HTML - как раз зависит от сетевого чипа и библиотек, через которые вы с ним будете работать. Оценить это можно просто: открываете пример Webserver для библиотеки Ethernet и такой же пример для библиотеки UIPEthernet. Компилируете первый, записываете занятый объём Progmem и RAM, компилируете второй, записываете те же параметры. Вычитаете первое из второго и получаете значения ресурсов, сэкономленных при переходе с ENC на Wiznet. Их вы можете истратить на более полезное мигание светодиодом или пару сотен HTML-тэгов.
Насчет планов страницы, подобной arduino.ru - думаю, что вы собрались слишком широко шагать. Во-первых за простой страничкой кроется как минимум LAMP на сервере с гигабитной картой и процессором Xeon. А он, процессор, даже по чистому весу раз в 10 тяжелее вашей ардуины. Во-вторых вы точно так же можете прикинуть на что вам хватит вашей Uno - просто сохраните страничку на жесткий диск, удалите все картинки и посмотрите объём папки с остатками. Теперь посмотрите на объём progmem space вашего МК. Остается что-нибудь на pinMode()/digitalWrite()?
К слову, если вы собрались делать что-то на Uno, то более удобен будет Ethernet shield (тот же самый W5100, но в другом формате). W5100 mino более интересен для мелких вещей в сочетании с Nano или Mini Pro.
Интересное видео про ENC, W5100 и вообще - https://youtu.be/LwDDEIx63cA
Да, видео неплохое, но оно про W5500. W5100 победнее немного по ресурсам. А у W5500 свои закидоны есть, кроме того, что он тупо дороже ;)
К тому же непонятно, какой лопух прикладывал ютьюбер к своему ENC28J60 - библиотечки различаются кардинально. Где-то одни глюки, где-то другие. И то, что он не поимел проблем с ним за два дня, по большому счету ничего не значит для других счастливых владельцев модулей, построенных на этом чипе.
Еще раз спасибо за дельные советы! Наверное в последний раз задам свои глупые вопросы).
Во-вторых вы точно так же можете прикинуть на что вам хватит вашей Uno - просто сохраните страничку на жесткий диск, удалите все картинки и посмотрите объём папки с остатками. Теперь посмотрите на объём progmem space вашего МК. Остается что-нибудь на pinMode()/digitalWrite()?
Если мы будем хранить нашу HTML страницу на карте памяти? Мы ее можем выводить конечному пользователю построчно (наверное это будет влиять на скорость отображения страницы пользователю)? Тогда бы мы использовали минимум памяти контроллера. Или все таки нужно загружать всю страницу в память ардуинки?
Если мы будем хранить нашу HTML страницу на карте памяти? Мы ее можем выводить конечному пользователю построчно (наверное это будет влиять на скорость отображения страницы пользователю)? Тогда бы мы использовали минимум памяти контроллера. Или все таки нужно загружать всю страницу в память ардуинки?
Можете выводить и построчно и побайтово. Браузер же перед анализом их все равно соберет в кучу. Тут вас скорее всего будет поджидать еще и проблема обработки многопоточных запросов. HTML видели? Там ссылки на css и пр. Всё это будет запрашиваться не последовательно, а одновременно. Но так, как МК однопоточный (и библиотечки тоже сделаны таковыми), то отдавать сможете только один "файл". Будете медленно отдавать - остальные коннекты отлетят по таймауту и часть данных не прогрузится. Страница покривеет в лучшем случае. Т.е. всё передавать одной страницей что ли с погруженным css/js... Опять же - SD-карта и сетевой чип будут делить SPI-шину. Т.е. вы или читаете или передаете (или наворачиваете программную эмуляцию второй SPI-шины). Следовательно - сколько-то байт нужно будет сначала слить с карты в память, переключиться на сетевой модуль и выплюнуть. Затем повторить. Вобщем, тут много проблем придется решать. Но я построением веб-серверов на МК не увлекаюсь, поэтому советов давать не буду. Хотя нет, один могу дать - Raspberry Pi или что-то из этого семейства гораздо выгоднее использовать для устройства вебсервера, если вам непременно хочется засунуть его в мыльницу.
Sadman41, спасибо за консультацию! Как попробую, обязательно отпишусь, что и как у меня получилось!
Всем привет!!!
Заказал я W5100 себе с Китая, но пока она идет, решил поработать с ENC28J60 и пришел наконец к некоторому рабочему состоянию))).
Вот код:
Я установил, что оптимальный размер буфера 1300 байт. Как я понимаю, размер страницы соответственно болжен быть как минимум не больше размера буфера. Поэтому все картинки подгружаем с интернета. Еще с типового примера rbbb_server нужно убрать обновление страницы раз в секунду или сделать его продолжительнее по времени, например раз в 30 секунд и т.д.
Еще показаолсь, что работоспособность зависит от версии компилятора, я использовал 1.8.1. Не знаю, может быть и нет, но на версии 1.6 работало как то косячнее (ИМХО).
В общем то, что написано, работает пока на ура! Открываются все ссылочки)) и даже передается запрос по нажатию кнопки для страницы settime.html. Правда запрос пока не отрабатывал. Но, это уже "it's easy".
Свой код постарался урезать, оставив в нем только необходимую рабочую структуру. Кому нужно, пользуйтесь, пожалуйста)).
Если можно несколько bfill.emit_p() подряд вызывать, а потом инициировать отсылку httpServerReply(), то в первом приближении можно сэкономить progmem space за счет последовательного вызова: header-emit, функции с css-emit, и, в конце, body+footer-emit. Ну, и index.html у вас не отдается, а ссылки на него формируются.
Если можно несколько bfill.emit_p() подряд вызывать, а потом инициировать отсылку httpServerReply()
А вот это кстати идея, мне кажется у меня так получалось, случайно по ошибке. Нужно вдумчиво над этип поэкспериментировать. И если получится, можно таким образом страницу загружать с карты памяти, подгружая по 1300 байт. Тогда можно наполнить её поинтереснее.
А index.html да в запросе участвует, но так как контроллер ничего не находит, он передает управление на homePage().
И кстати интересно бы узнать, как пользователю по запросу с сайта передавать файлы, размещенные на карте памяти... А-ля мини хранилище. Нужно будет погуглить.
орый день. Вопрос следующего характера.
При прошивке выдает следующее.
Имеем Arduino IDE 1.8.2, Arduino pro mini, ethernet shild ENC28J60. Зашиваю с помощью USBASP.
Сам скетч собственно
Заранее спасибо за помощь!
Привет! А текста страницы не много? Я, конечно, использовал другую библиотеку, но работоспособность на прямую зависила от размера буфера.
Попробую буфер увеличить, но тут интересно почему выводит такое
Я, конечно, не занимался своим устройством уже месяц как, но вот строчки мне кажутся знакомыми:
У меня 1.8.1. Я еще помню, что они появились, когда я перешел с версии 1.6. Но так как проект у меня работает, я на них не обращал внимание)).
Так что к вопросу присоединяюсь).
И кстати:
Почему не "Обновить"? У меня с кодировкой все корректно отображается.
да просто было лень раскладку переключать ) да и не особо люблю русский в коде )
С этим (Invalid version found: 1.04) разобрался. в библиотеке UIPEthernet, в library.properties 9-я строчка вроде, надо поправить на 1.0.4 Пропущена точка
Скетч зашивается, но пинга блин почемуу-то нет(( Уже и не знаю в чем дело. Пробовал на прямую от USB подключать шилд и Pro mini. Пинга нету. Правда шилд греется сильно.
ENC28J60 действительно греется как печка, 60C возле чипа для нее, наверное, норма.
Автор давно не занимается библиотекой, поэтому все нововведения в Arduino IDE (указание в файле library.properties категории, к которой относится библиотека и версии в правильном формате) не учтены в текущей UIPEthernet. Если вы включите более подробный уровень отладки - увидите еще больше предупреждений. Однако я не могу сказать, что это как-то мешает работе. Со своей стороны могу посоветовать вам использовать стабильный бранч https://github.com/ntruchsess/arduino_uip/tree/fix_errata12 и откомпилировать стандартный пример типа ChatServer. С ним все пинги должны идти правильно. Есть, конечно, одна ловушка - когда меняете IP-адрес отдельно от MAC. Тогда, конечно, случаются проблемы с ARP, которые рассасываются как только ваш роутер зафлушит свой кэш. Однако это не проблема UIPEthernet или чипа ENC.
ICMP действительно давится, если остается мало реальной памяти в скетче. операции с типами String могут ее пожрать в runtime. Так что сначала проверяйте на стандартном примере, потом уже копайтесь в своем.
Ну и, конечно, есть вариант с неправильным соединением. Если localIP() показал что-то невообразимое - то это проблема с модулем/чипом/соединением. К тому же непонятно, что у вас за сетевой модуль. Их несколько видов. Если вы питаете модуль без набортного стабилизатора от 5V, то у вас, безусловно не только будут проблемы, но и может даже пойти дым из него.
При нормальном отношении модуль будет работать с UIPEthernet. У меня уже отработал > 100 дней.
Спасио попробую сегодня с фиксом что скинули. Шилд без стаба набортного, попробую сегодня его питать от лабораторного блока. Дело в том что он пинговался от скетча из примеров. После того как залил свой пинг пропал. И теперь если заливаю из примера, то тоже пинга нету. Думаю что косяк с питаловом. Одним словом буду дальше пробовать. Шилд вот такой
http://s1.micp.ru/Yv7rq.png
http://s3.micp.ru/N11p3.png