M5StackでEthernetが使えない問題


(2019.5/5現在)対処方法

恐らく一時的に使えないだけでで今後改善されるはず。

追記 esp32パッケージ、1.0.2にするとcliant.hでコンパイルエラー
ひとまず1.0.1に落とす必要がありそう

現象環境
ArduinoIDE(Arduino1.8.9)
ボードのパッケージ(esp32 1.0.1)

w5500のLANModuleを接続。
M5Stackのサンプルコード(Module/ws5500/WebServer.ino)を使用するとコンパイルが通らない。

cannot declare variable ‘server’ to be of abstract type ‘Ethernet2.h’

抽象型を宣言できないぞと怒られます。
サンプルコードのコメント通りにServer.hを変更しようにもそこには何もない。

/*
  Web Server
  Need to install Ethernet2 arduino library
  If new arduino esp32 or make error, need go to c:\Program Files (x86)\Arduino\hardware\espressif\arduino-esp32\cores\esp32\Server.h 
  Change virtual void begin(uint16_t port = 0) = 0; to virtual void begin() = 0;
  Other example can see https://github.com/adafruit/Ethernet2
 */

結果
ここにありました。

C:\Users\(UserName)\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.1\cores\esp32\Server.h

virtual void begin(uint16_t port = 0) = 0;
から
virtual void begin() = 0;
に書き換えます。

以下詳細

原因

ESP32のArduino開発環境にはボードマネージャからインストールできるようになったため。(M5Stackの中身)
今まではGitHubからZipを落としてget.exeを実行する必要がありました。

この変更で\Arduino\hardware以下が移動している。
これにEthernet2ライブラリが対応できていないのが現状です。

しかしArduinoでは大本のEthanetが動くようになったのでEthernet2は更新停止...でもM5Stackは2を使ったまま。
はて、どこにプルリクすればいいのやら。

折角モジュールとして販売しているのにArduinoIDEで使えないのでは勿体ない
もしかすると、このまま更新されることない可能性もあるため書いた次第です。

経緯

MakerFairKyotoで昨日入手できたので試してみたら動かない...
はて、ESP32インストールをコケたかなと思い、最新環境にしても変わらず躓いてました。

そもそもESP32ならばWiFi付いてるじゃん。という話ですが。

人が多く長距離でUDPを使うとき、どうしても有線が必要になる...
そこをArduinoレオナルド辺りでやっていましたが、UIがあるとセッティングが楽なのでちょっと検証してみた次第。

こういう側面もあるので今後PoE対応モジュールとかが出るといいなぁと思うのですが...