arduino_uip

UIPEthernet: A plugin-replacement of the stock Arduino Ethernet library for ENC28J60 shields and breakout boards. Full support for persistent (streaming) TCP-connections and UDP (Client and Server each), ARP, ICMP, DHCP and DNS. Build around Adam Dunkels uIP Stack. Further developed version can be found on https://github.com/UIPEthernet/UIPEthernet

Stars
489

Bot releases are visible (Hide)

arduino_uip - UIPEthernet_v1.09 - for Arduino IDE 1.0.x Latest Release

Published by ntruchsess about 10 years ago

arduino_uip - UIPEthernet_v1.09_ext - extended API

Published by ntruchsess about 10 years ago

extended version of UIPEthernet_1.09:
(contains functionality that is not part of official Ethernet-api)

UIPClientExt: nonblocking connect, read of local- and remote port
UIPServerExt: returns instances of UIPClientExt
example code: https://github.com/ntruchsess/arduino_uip/blob/ext/examples/NonBlockingTcpClient/NonBlockingTcpClient.ino

arduino_uip - UIPEthernet_v1.59 - for Arduino 1.5.x

Published by ntruchsess about 10 years ago

same as UIPEthernet_v1.09 but for Arduino-IDE Version 1.5.5 and higher

arduino_uip - UIPEthernet_v1.08 - for Arduino IDE 1.0.x

Published by ntruchsess about 10 years ago

  • Decrease TCP response-time by implementing a per-client send timer (configurable via define UIP_CLIENT_TIMER in utility/uipethernet-conf.h)
  • Fix ENC28J60 receivebuffer overflow caused by invalid handling of wraparound
  • Fix ENC28J60 crash caused by sending zero-length packet
arduino_uip - UIPEthernet_v1.58 - for Arduino 1.5.x

Published by ntruchsess about 10 years ago

same as UIPEthernet_v1.57 but for Arduino-IDE Version 1.5.5 and higher

arduino_uip - UIPEthernet_v1.08_ext - extended API

Published by ntruchsess about 10 years ago

extended version of UIPEthernet_v1.08:
(contains functionality that is not part of official Ethernet-api)

UIPClientExt: nonblocking connect, read of local- and remote port
UIPServerExt: returns instances of UIPClientExt
example code: https://github.com/ntruchsess/arduino_uip/blob/ext/examples/NonBlockingTcpClient/NonBlockingTcpClient.ino

arduino_uip - UIPEthernet_v1.07 - for Arduino IDE 1.0.x

Published by ntruchsess about 10 years ago

  • reduce flash footprint
  • add powerOff, powerOn, getrev and linkStatus to Enc28J60 class
  • add Print::write and Print::print to UIPClient and UIPServer
  • fix a leak of connections (tcp)
  • auto-free udp-blocks.
arduino_uip - UIPEthernet_1.07_ext - extended API

Published by ntruchsess about 10 years ago

extended version of UIPEthernet_1.07:
(contains functionality that is not part of official Ethernet-api)

UIPClientExt: nonblocking connect, read of local- and remote port
UIPServerExt: returns instances of UIPClientExt
example code: https://github.com/ntruchsess/arduino_uip/blob/ext/examples/NonBlockingTcpClient/NonBlockingTcpClient.ino

arduino_uip - UIPEthernet_v1.57 - for Arduino 1.5.x

Published by ntruchsess about 10 years ago

same as UIPEthernet_v1.07 but for Arduino-IDE 1.5.5

arduino_uip - UIPEthernet_v1.56 - Bugfix release

Published by ntruchsess over 10 years ago

  • same as UIPEthernet_v1.06 but for Arduino-IDE 1.5.5
arduino_uip - UIPEthernet_v1.06 - Bugfix release

Published by ntruchsess over 10 years ago

  • fixed DNS not working if DNS is not same ip as router (#43)
  • fixed NTP not working if not using DHCP, UDP not working if ARP is not yet resolved. (all fixed in #45)
  • fixed race-condition in UIPClient::close() causing leak of connection-associated memory (#44)
  • stabilize UDP potentially using to much memory(https://github.com/ntruchsess/arduino_uip/commit/6aed921a9cf298ba42bedf036dfc8d1cfb7d35ee)
  • fixed various compiler-warnings (#46, #48, #49).
  • saved nearly 500kb of Flash (when using both TCP and UDP)
arduino_uip - UIPEthernet_v1.05 - Arduino 1.0.5

Published by ntruchsess almost 11 years ago

fixes for #27 and #28

arduino_uip - UIPEthernet_v1.52 - Arduino 1.5.5 and DUE Support

Published by ntruchsess almost 11 years ago

Fixes for #27 and #28

arduino_uip - Arduino 1.5.x and DUE support

Published by ntruchsess almost 11 years ago

This release supports the 1.5rev2 library-format as specified in https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5:-Library-specification
Tested on Arduino 1.5.5

To install UIPEthernet into your Arduino 1.5.5 download and unpack the src-zip (or tar.gz). Then choose 'Sketch'->'import Library'->'add Library' from the menu. In the dialog that opens navigate to the directory where you unpacked the source-zip. Select the folder 'UIPEthernet' that was contained the source-zip and click 'open' to install.

arduino_uip - UIPEthernet V1.04: stabilize Memory use

Published by ntruchsess almost 11 years ago

  • use static (allocated by declaration) instead of dynamic memory.
  • fix use of other values for ENC28J60_CONTROL_CS in Enc28J60Network.h
arduino_uip - Arduino 1.5.x support

Published by ntruchsess almost 11 years ago

This release supports the 1.5rev2 library-format as specified in https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5:-Library-specification
Tested on Arduino 1.5.5

To install UIPEthernet into your Arduino 1.5.5 download and unpack the src-zip (or tar.gz). Then choose 'Sketch'->'import Library'->'add Library' from the menu. In the dialog that opens navigate to the directory where you unpacked the source-zip. Select the folder 'UIPEthernet' that was contained the source-zip and click 'open' to install.

  • this release is based on the 'static-memory'-branch.
arduino_uip - UIPEthernet Experimental 1.03

Published by ntruchsess almost 11 years ago

This release contains features that are not (yet) included in the stock Ethernets lib API, so they remain subject to change when they eventually will be merged into master.

this adds operator==, localPort, remoteIP and remotePort to EthernetClient
see https://github.com/ntruchsess/arduino_uip/compare/master...experimental
pull-request against stock Arduino: https://github.com/arduino/Arduino/pull/1700

and here an example of its use: https://github.com/ntruchsess/arduino_uip/blob/experimental/examples/AdvancedChatServer/AdvancedChatServer.ino#L70

arduino_uip - UIPEthernet V1.03: Stability Fixes

Published by ntruchsess almost 11 years ago

memory-pool-size for enc28j60-internal ram is now based on number of configured connections and maximum number of packets per connection.

UIPClient.write() is now blocking if UIP_SOCKET_NUMPACKETS are ready to send (waiting for ACK). Number of reattempts is configurable.

Configure in utility/uipethernet-conf.h

/* for TCP */
UIP_SOCKET_NUMPACKETS 5
UIP_CONF_MAX_CONNECTIONS 4

/* for UDP */
UIP_CONF_UDP 1
UIP_CONF_BROADCAST 1
UIP_CONF_UDP_CONNS 4
UIP_UDP_NUMPACKETS 5

/* number of attempts on write before returning number of bytes sent so far /
/
set to -1 to block until connection is closed by timeout */
#define UIP_ATTEMPTS_ON_WRITE -1