EtherSia

A minimal IPv6 library for an Arduino with an ENC28J60, W5500 or W5100 Ethernet controller
ORIGINAL POST
By Nicholas Humfrey
components
Hardware Components
Software Apps and online services
Nicholas Humfrey
details

W5500 Ethernet Shield.png ArduinoEthernetShieldV3.jpg

EtherSia

A minimal IPv6 library for an Arduino with an ENC28J60, W5500 or W5100 Ethernet controller.

Features

  • SLAAC (Neighbour Discovery Protocol / Stateless Auto-configuration)
  • HTTP Server
  • UDP Client and Server
  • DNS Client

Design Decisions

  1. Optimised for Arduino – not a general purpose library
  2. Should be easy to use – this is what Arduino is all about
  3. Should work within the constraints of an Uno – 32k ROM and 2k RAM
  4. Should follow the Style Guide and avoid using complex C features like Pointers and Callbacks
  5. Decouple the core from protocols where possible, to allow for program size optimisations
  6. Only use statically allocated memory to avoid leaks and keep memory usage down

Limitations

  • Ethernet only
  • No DHCPv6
  • No Routing or RPL
  • No TCP Client
  • Stateless TCP in HTTP Server (single packet request/response)
  • No fragmentation support
  • A single local router on the network is assumed
  • The network prefix length is assumed to be /64

If you need a more fully functional IPv6 stack, then take a look at Contiki.

Compatibility

EtherSia should work on any Arduino board with ENC28J60, W5500 or W5100 based network interface. There are the results of boards I have tested with:

BoardClassTested?CS PinHardware MAC Address
Arduino Ethernet ShieldEtherSia_W5100Working10None
Arduino Ethernet Shield 2EtherSia_W5500Working10None
Nanode v5EtherSia_ENC28J60Working8UNI/O 11AA02E48
Nanode RF / ClassicEtherSia_ENC28J608MCP79411
Nano ShieldEtherSia_ENC28J60Working10None
Velleman KA04/VMA04EtherSia_ENC28J6010None
Ciseco Ethernet Shield K016EtherSia_ENC28J6010None
Snootlab Gate 0.5EtherSia_ENC28J6010None
Testing on LinuxEtherSia_LinuxSocketWorking

License: 3-clause BSD license

 

 

documents
Code
Nicholas Humfrey

COMMENTS

Please Login to comment
  Subscribe  
Notify of