ASK AN EDUCATOR! – “How can I get my Arduino to use IPv6”

Mike asks:

With IPV6, it looks like I can have unique internet addresses for all my Internet of Things/Web of Things. How can I get my Arduino projects to use IPV6

Interesting question Mike! But first, for those of us who are not familiar with IPv6:

IPv6 or Internet Protocol version 6 is the most recent standard communications protocol for the internet. This version solves many of the protocol problems faced with IPv4 including support for an almost unlimited number of unique device addresses….2^128 or 340,282,366,920,938,463,463,374,607,431,768,211,456 devices. Phew. Considering that the World’s population is 6,973,738,433 (from Google) would mean that each person could have approximately 4.9 x 10^28 uniquely addressed, internet-connected devices. With numbers like this, its not hard to imagine a future where every electronic device is capable of interfacing with the internet, maybe even your coffee maker.

Now, about getting IPv6 running on your Arduino. There are already a few libraries that make this possible, and most rely on the Arduino Ethernet Shied:

Reflected Heat Technologies

The official Arduino Ethernet Shield is based on the WizNet 5100 chip, which implements the IPv4 protocol stack in silicon. As a consequence, the Arduino Ethernet Shield cannot be used to implement an IPv6 stack.

To implement an IPv6 stack, it is necessary to use a shield based on hardware that permits the management of IP and Ethernet layer functions. Shields based on the MicroChip ENC28J60 chip (such as those sold by Ekitszone and Nuelectronics) are suitable for the implementation of an IPv6 or dual IPv4/IPv6 stack. This approach requires the TCP state machine to be implemented in software and results in more complex arduino code.


I ported the uipv6 network stack from http://www.sics.se/contiki/. The ENC28J60 library is from Guido Socher. The uipv6 library was isolated by http://www.shapeshifter.se/code/uipv6/.

I wrote an additional wrapper class with initialization methods, so the sketch files should be pretty simple. Included in the library you will find the following examples:

IPv6TelnetServer, where you can put/get the status of an attached LED and where you can get information about the free RAM bytes.
IPv6WebServer, where you can get the current values of the analog input pins.


In Telecom Bretagne, we love open source and IPv6. That’s why we decided to port the Contiki OS network stack (6LoWPAN/IPv6 + RPL + CoAP) to our favorite prototyping platform : Arduino.

We released a first example which demonstrates the use of IPv6 stack library : IPv6UDPexample.ino In this example, you will need two Arduino Mega with Wireless Proto Shield and Xbee Series 1 mounted.

I hope this has helped steer you in the right direction and best of luck with your Internet of Things things 🙂

Don’t forget, everyone is invited to ask a question!

Click here!

“Ask an Educator” questions are answered by Adam Kemp, a high school teacher who has been teaching courses in Energy Systems, Systems Engineering, Robotics and Prototyping since 2005.

Make a robot friend with Adafruit’s CRICKIT – A Creative Robotics & Interactive Construction Kit. It’s an add-on to our popular Circuit Playground Express, FEATHER and other platforms to make and program robots with CircuitPython, MakeCode, and Arduino. Start controlling motors, servos, solenoids. You also get signal pins, capacitive touch sensors, a NeoPixel driver and amplified speaker output. It complements & extends your boards so you can still use all the goodies on the microcontroller, now you have a robotics playground as well.

Join 7,500+ makers on Adafruit’s Discord channels and be part of the community! http://adafru.it/discord

CircuitPython in 2018 – Python on Microcontrollers is here!

Have an amazing project to share? Join the SHOW-AND-TELL every Wednesday night at 7:30pm ET on Google+ Hangouts.

Join us every Wednesday night at 8pm ET for Ask an Engineer!

Follow Adafruit on Instagram for top secret new products, behinds the scenes and more https://www.instagram.com/adafruit/

Maker Business — Fewer startups, and other collateral damage from the 2018 tariffs

Wearables — Light as a Worbla feather

Electronics — How to make your own magnetic field probe!

Biohacking — The State of DNA Analysis in Three Mindmaps

Python for Microcontrollers — One year of CircuitPython weeklies!

Get the only spam-free daily newsletter about wearables, running a "maker business", electronic tips and more! Subscribe at AdafruitDaily.com !

1 Comment

  1. Hopefully the ethernet shield will get a revision that supports IPv6. This should be something that is already done.

Sorry, the comment form is closed at this time.