I am getting pretty familiar with microcontrollers and now want to connect it to the internet. What are the minimum requirements for a microcontroller to be able to do this, specifically, an AVR one if possible. Secondly, what else is required? I read about ethernet controllers, but am not really sure exactly what they do and how they are to be interfaced with the micocontroller.

What are the needed components to get a micocontroller online (no Arduino shields)?

  • 1
    \$\begingroup\$ serial dial up modem.... I am dating myself? \$\endgroup\$
    – kenny
    Commented Jan 27, 2012 at 15:00
  • 2
    \$\begingroup\$ You seem to be using ethernet and internet interchangeably. You may not realize it, but they are not the same at all. Having an ethernet connection does not mean you have internet, and having internet does not mean you have an ethernet connection. What is it specifically that you are wanting to do? \$\endgroup\$
    – Kellenjb
    Commented Jan 27, 2012 at 15:25
  • 1
    \$\begingroup\$ Yes. You are right. What I want is an ethernet connection along with all the other stuff (DHCP, TCP/IP, ...) to get an internet connection. \$\endgroup\$
    – Alexis K
    Commented Jan 27, 2012 at 20:04
  • 1
    \$\begingroup\$ But what is it that you are actually wanting to do? If you want to host a web server there will be a lot different requirements then if you are wanting to pull one byte off of a website from time to time. What makes you want to stick with wired ethernet and not do something with WiFi or 3G? \$\endgroup\$
    – Kellenjb
    Commented Jan 28, 2012 at 0:35

2 Answers 2


I believe that to have a more or less productive path you should start by adding a separated spi to ethernet IC, such as the ENC28J60 and improve from there. Such chip will abstract OSI layers 1 and 2.

Once you have the hardware I believe that certainly programming will be the most challenging part, as you'll have to understand the details of the IP, TCP and whatever protocol you'll use.

Probably you'd prefer to learn by example before digging into all the theoretical details, so I believe that taking a look at what is made on sites such as tuxgraphics (article on avr web-server, with code - open-source), embeddedmarket (check their user-manual for the schematics). Also check this blog post.

Surely you will need as much RAM and EEPROM as you can, you can do it with a device of the 8bit family.

Also don't forget that you can start with something quite simple (no web-server, just an telnet-like connection, or raw (simply transferring your current serial interface into one based on sockets), and use software such as putty to connect into it).

On a final note, in case you need a quick solution, you can also use a drop-in converter for your serial/ttl communication port. There are versions for consumers (digi one SP, moxa Nport5150, etc) and others to integrate on your project (from moxa, hw-group, and others). These completely abstract the osi layers 1, 2, 3, 4. Well, they abstract everything.

Hope this helps getting you on track.


The open-source Nanode project pretty much implements the bare minimum hardware required to connect an Arduino to the internet - an ATMega328 microcontroller, an ENC28J60 ethernet controller, a 74HC125 level converter (so that the Mega328 can still operate at 5v and talk to the ENC28J60 running from 3.3V), and a Ethernet Jack (with internal magnetics), along with the relevant power and passive circuitry. You can read lots more about it on the web, including it's solderpad page. It was also voted the 2011 Best IoT Open Source Project, for what it's worth.

Full disclosure - I sell this product at Wicked Device.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.