What is EtherDune?
EtherDune is a new easy to use TCP/IP library for Arduino that supports ENC28J60. It is perfect if you want to get started very quickly and want to write maintainable, easy to read code in a small size.
Features:
- Event-driven, non-blocking asynchronous API
- Network services architecture:
- Allows sharing hardware in a clean, non-interfering way.
- Only the services you explicitly use in your code (e.g., DHCP, DNS, ICMP, TCP…) are compiled into your binary.
- The services architecture allows you to enable or add new services without having to modify existing code. Need DHCP?: add the module and it will compile right in and configure your connection.
- Extensible: Derive from a class to write your own protocol, at any level, e.g.:
- Derive from NetworkService to implement any Ethernet-level protocol.
- Derive from TCPSocket to implement TCP-based protocols
- Derive from HTTPClient to connect to a web server or implement a specific webservice API client
- And many more: UDPSocket, HTTPServer…
- Use of PROGMEM and facilities to enable you to store IP addresses, MAC addresses in PROGMEM, as well as always accepting PROGMEM-stored strings.
- TCP and UDP support:
- Buffered write, making extensive use of ENC28J60’s RAM
- Multiple simultaneous active sockets.
- Built-in templated write, similar to printf.
- Out-of-the-box: TCP, UDP, DHCP, DNS, ICMP (ping), HTTP client, HTTP server
- ACross-compatible (debug step by step with your computer)
- Logging/tracing support setting the _DEBUG preprocessor variable to 1
- Open source – GPLv2
- Full documentation
- Detailed examples to get you started
Supported hardware:
- Microchip’s ENC28J60
- Tested on Atmel 328p-based Arduinos, but should work on most.
How to install:
- Download dependency libraries from GitHub:
- FlowScanner v0.9– scanf-like state machine for extracting data out of streams
- ACross v0.5– cross-compile toolkit and runtime
- Download EtherDune v0.9 from GitHub
- Install by adding the contents of each .zip file to your Arduino libraries folder
GitHub homepage: https://github.com/epiclabs-io/etherdune
Documentation available here.