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 The ENC28J60 library is from Guido Socher. The uipv6 library was isolated by

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.

As 2022 starts, let’s take some time to share our goals for CircuitPython in 2022. Just like past years (full summary 2019, 2020, and 2021), we’d like everyone in the CircuitPython community to contribute by posting their thoughts to some public place on the Internet. Here are a few ways to post: a video on YouTub, a post on the CircuitPython forum, a blog post on your site, a series of Tweets, a Gist on GitHub. We want to hear from you. When you post, please add #CircuitPython2022 and email to let us know about your post so we can blog it up here.

Stop breadboarding and soldering – start making immediately! Adafruit’s Circuit Playground is jam-packed with LEDs, sensors, buttons, alligator clip pads and more. Build projects with Circuit Playground in a few minutes with the drag-and-drop MakeCode programming site, learn computer science using the CS Discoveries class on, jump into CircuitPython to learn Python and hardware together, TinyGO, or even use the Arduino IDE. Circuit Playground Express is the newest and best Circuit Playground board, with support for CircuitPython, MakeCode, and Arduino. It has a powerful processor, 10 NeoPixels, mini speaker, InfraRed receive and transmit, two buttons, a switch, 14 alligator clip pads, and lots of sensors: capacitive touch, IR proximity, temperature, light, motion and sound. A whole wide world of electronics and coding is waiting for you, and it fits in the palm of your hand.

Join 32,000+ makers on Adafruit’s Discord channels and be part of the community!

Have an amazing project to share? The Electronics Show and Tell is every Wednesday at 7pm ET! To join, head over to YouTube and check out the show’s live chat – we’ll post the link there.

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

CircuitPython – The easiest way to program microcontrollers –

Maker Business — Pololu’s account of the chip shortage

Wearables — Monster-inspired costuming!

Electronics — How to make your own magnetic field probe!

Python for Microcontrollers — Python on Microcontrollers Newsletter: New Releases of MicroPython and CircuitPython and more! #Python #CircuitPython @micropython @ThePSF

Adafruit IoT Monthly — 2021 in Recap!

Microsoft MakeCode — MakeCode Thank You!

EYE on NPI — Maxim’s Himalaya uSLIC Step-Down Power Module #EyeOnNPI @maximintegrated @digikey

New Products – Adafruit Industries – Makers, hackers, artists, designers and engineers! — New Products 1/19/22 Feat. Adafruit 7-Segment LED Matrix Backpack – STEMMA QT / qwiic!

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

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.