Coder Social home page Coder Social logo

insanua / ethersia Goto Github PK

View Code? Open in Web Editor NEW

This project forked from njh/ethersia

0.0 1.0 0.0 611 KB

Minimal IPv6 library for Ethernet controllers on Arduino

Home Page: http://www.aelius.com/njh/ethersia

License: Other

C++ 92.45% Ruby 0.26% C 6.41% Makefile 0.88%

ethersia's Introduction

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.

EtherSia is an IPv6 only library. If you are looking for an IPv4 library for ENC28J60, then take a look at EtherCard.

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:

Board Class Tested? CS Pin Hardware MAC Address
Arduino Ethernet Shield EtherSia_W5100 Working 10 None
Arduino Ethernet Shield 2 EtherSia_W5500 Working 10 None
Nanode v5 EtherSia_ENC28J60 Working 8 UNI/O 11AA02E48
Nanode RF / Classic EtherSia_ENC28J60 - 8 MCP79411
Nano Shield EtherSia_ENC28J60 Working 10 None
Velleman KA04/VMA04 EtherSia_ENC28J60 - 10 None
Ciseco Ethernet Shield K016 EtherSia_ENC28J60 - 10 None
Snootlab Gate 0.5 EtherSia_ENC28J60 - 10 None
Testing on Linux EtherSia_LinuxSocket Working - -

License: 3-clause BSD license

ethersia's People

Contributors

njh avatar alexandrecuer avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.