-
Notifications
You must be signed in to change notification settings - Fork 36
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add support for MKR ETH Shield #40
Comments
Good Morning 👋 ☕ |
Hello @aentinger, Thank you for looking into this topic. I will gladly prepare something for you in as much detail as I can provide (with the obvious interest in seeing a future solution). I understand the prevailing priorities that may be imposed upon you owing to the popularity of some of the other options. Please allow me a day or two to DRAFT something. In the interim if you have any suggestion/template please let me know; I'm truly a novice in matters related to GitHub. Thanks again. Kind regards. |
That sounds great 🚀 Meanwhile I've gotten myself 2 MKR ETH shields for testing 😉 |
Arduino PR Cloud MKR ETH library.docx Hello @aentinger, Here is my 1st DRAFT of the proposal. Please correct me if I am not on the right track. Thanks again for all your help and guidance: Request for an Ethernet library to support MKR1000 using MKR ETH shieldIntroductionThis document was prepared in response to a suggestion. It is intended for review by Arduino development staff to provide support for future extensions to Arduino IoT Cloud solutions. BackgroundThere are many industrial environments where WiFi is impractical or LAN connectivity is well established. Some examples of these environments are very diverse indeed from petrochemical plants to multi-storied buildings with robust infrastructure. In order to facilitate rapid deployment of Arduino boards it is desirable to leverage the existing infrastructure from simple proof-of-concept to full-fledged production use. Goals/ObjectivesThe primary objective is to support the Arduino MKR ETH shield in Arduino IoT Cloud solutions. A key goal would be to support TCP and UDP connectivity along the same lines as supported presently with MKR1000 board for use external to Arduino IoT Cloud. Limitations to Goals/ObjectivesThe request is limited to support for MKR ETH shield. There are many chip-sets that may merit future consideration but since these chip-sets do not meet the security considerations for Arduino IoT Cloud, there is no requirement to support these chip-sets (e.g. Wiznet W5500 series with Arduino Nano). Use CasesThe following use cases are annotated below:
BasicThe basic scenario requires support for:
The assumption being that Currently a standard example has the following declaration: WiFiClient client; The ensuing Ethernet client; The thinking here is that Arduino IoT Cloud “could” support MKR ETH Shield in a similar way. (pardon my ignorance here, please) UDPThere is a simple example in the Arduino Ethernet library that illustrates the use UDP for NTP synchronization. The author has embed the concepts from this example to support a Stratum peer server in a local infrastructure. While this use has no bearing on Arduino IoT Cloud directly it is hoped that UDP support should not be a handicap for any enhancements. On a personal note, using a stationary GPS with PPS signal will improve time synchronization tasks in my infrastructure. I am using an Arduino board to leverage a low cost ublox GPS chip-set that does not have PPS signal. The IoT applications will benefit from this data. Code conceptsEthernetClient LANclient; // instantiate Ethernet network client
PubSubClient MQTTclient(LANclient); // partially initialized client instance
EthernetUDP Udp; // for NTP use to avoid TCP overhead
…
Udp.beginPacket(address, 123); // send request using default port 123
Udp.write(packetBuffer, NTP_PACKET_SIZE);
Udp.endPacket(); MQTTFor some sites it may be preferable to route messages to Arduino IoT Cloud through an on-site MQTT service broker. The library should permit the equivalent of the following declaration: Ethernet LANclient;
PubSubClient MQTTclient(LANclient); such that AcknowledgmentThis document was prepared owing to a note from Alexander Entinger. Errors and omissions in this document arise solely from the author's limited experience in these matters. |
Hi @baqwas 👋 ☕ Thank you very much for your detailed request and reasoning behind your desire to have Ethernet support for Arduino IoT Cloud ;) I've got to be honest, I was rather expecting a code contribution but all in all it should not be too difficult to extend Cheers, Alex |
Hello @aentinger, Thanks for the super fast turnaround. As I had mentioned previously, I am a total newbie with GitHub operations (that is why I completely misunderstood your acronym PR). I can follow your instructions with some more details, please. Thanks for your patience. What you have described will work very nicely for me if I can have access to the Arduino_EthernetConnectionHandler .cpp and .h files, please. Which branch do I need to clone? Thanks for your understanding. Kind regards. |
Hi, If you use this link you directly download the version including the What board are you typically using for this? It must be a MKR ZERO because all other MKR boards have some form of connectivity and you just need Ethernet - am I right? |
Hello!
Is there any equivalent statement for the MKR ETH shield for the MKR1000 WiFi mode:
WiFiConnectionHandler ArduinoIoTPreferredConnection(SSID, PASS);
Need to use MKR1000 with already tested MKR ETH shield. Thanks.
Kind regards.
The text was updated successfully, but these errors were encountered: