-
Notifications
You must be signed in to change notification settings - Fork 30
UIPEthernet
The original library by Norbert Truchsess in arduino-uip repository was named UIPEthernet. As Norbert Truchsess stopped to maintain the library in 2014 a copy emerged as UIPEthernet/UIPEthernet repository in 2016.
The name UIPEthernet is based on the uIP TCP/IP stack library merged in the library.
The original library supports only AVR boards because it uses peripheral registers for SPI communication. The UIPEthernet/UIPEthernet library uses SPI library to support other Arduino architectures. And it has support for use of the library with Mbed. UIPEthernet/UIPEthernet is available in Library Manager.
I [J.A] took over the maintenance of UIPEthernet/UIPEthernet in 2019 after I found and fixed some serious bugs in the library as I attempted to use it in an Arduino project.
In August 2020 I decided to create a new library based on the original Norbert Truchsess repository. The reason for a new library were things which would be breaking changes in UIPEthernet/UIPEthernet.
I transfered applicable fixes and enhancements from developed of EthernetENC to UIPEthernet/UIPEthernet.
Differences between EthernetENC and UIPEthernet/UIPEthernet:
- EthernetENC uses SPI transactions to share the SPI bus with devices requiring different bus settings
- EthernetENC uses flush() to send the buffer immediately. UIPEthernet has flush() to discard unread data (it is a before Arduino 1.0 behavior).
- EthernetENC doesn't receive UDP broadcast messages and uses unicast mode to receive DHCP responses
- EthernetENC has some uipethernet-conf.h settings changed
- EthernetENC doesn't support Mbed
- EthernetENC doesn't have code to guess the CS pin for different boards (Ethernet.init is used to set the pin from sketch)
- EthernetENC is build with arduino's
dot_a_linkage
flag for efficient linking. UIPEthernet can't use it, because of the old library format with source codes in projects root and not in src folder