Skip to content

UIPEthernet

Juraj Andrassy edited this page Sep 20, 2020 · 3 revisions

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
Clone this wiki locally