The Spark Gap Podcast - Episode 12

Direct Download Link

Show Synopsis

Karl and Corey talk about the advantages and challenges of adding Ethernet capability to an embedded system.


A very popular opensource TCP/IP stack is uIP.

One of the nice things about this stack is how many times it has been ported.

TI ported it to their Stellaris Microcontrollers.

It has been ported to NXP’s LPC2124 and TI’s MSP430 too.

And many, many others.

uIP is now part of the Contiki OS.


LwIP is another popular stack.
LwIP has its own very nice Wiki as well as a mailing list.

  • LwIP’s own wiki page: LwIP

Seems the major diffenece between uIP and LwIP is: LwiP is more complete, interrupt driven, but requires more RAM.

Microchip’s TCP/IP stack

Microchip’s TCP/IP stack used to use BSD sockets. Their stack has gone through multiple versions though.

Additional Stacks

Ofcourse there are other TCP/IP stacks.
I am just not very familiar with them.

BSD Sockets

One of the simplest ways to send information over ethernet is to use BSD style sockets.


Curl can be used with a lot of different protocols to send data.


A look at the differences between UDP and TCP protocols.

RJ45 connectors

Raspberry Pi Populated the wrong RJ45 jack and delayed shipment.

TI Connected Launchpad

Texas Instrument’s Launchpad uses a non-magnetic RJ45 connector and a Pulse magnetics chip.

Ethernet PHY Interfaces


Just the wikipedia entry on MII and RMII.
From what I gather, there are no negatives to using RMII besides the increased cost of the crystal.

Power over Ethernet

Obligatory wikipedia article:

There are ofcourse Arduino POE shields.