3
votes

I'm new to arduino and I'm trying to use IPv6 with arduino UNO and ethernet shield(W5100).

I have found EtherSia IPv6 (https://github.com/njh/EtherSia) library and run MiniHTTPServer.ino sketches.

The serial monitor always print link-local address. I can't find a way to set global address.

[EtherSia MiniHTTPServer]
Failed to configure Ethernet
Our link-local address is: fe80:0000:0000:0000:9cb3:19ff:fec7:1b10
Our global address is: 0000:0000:0000:0000:0000:0000:0000:0000
Ready.

Any suggestions for IPv6 ethernet shield or IPv6 library for Arduino?

2

2 Answers

4
votes

EtherSia library says that it does NOT support DHCPv6.

You may want to check if your local network environment is configured with DHCPv6.

"PHPoC Shield for Arduino" may be what you are looking for. Of course, it supports IPv6 including DHCPv6.You can get the detailed information about this library from the below.

Just check "ChatServerIPv6" sketch for testing IPv6.

1
votes

EtherSia indeed does not support DHCPv6, but it does support SLAAC - Stateless Auto-configuration, which is widely supported and enabled by routers.

What type of router do you have?

An alternative is to configure the address and router statically:

// Configure a static global address and router addresses
ether.setGlobalAddress("2001:1234::5000");
if (ether.setRouter("fe80::f4c0:4ff:fefb:4186") == false) {
    Serial.println("Failed to configure router address");
}

This is from the example here:

https://github.com/njh/EtherSia/blob/master/examples/MinimalStatic/MinimalStatic.ino