The NanodeUIP web server provides a mobile-optimized web page to control and monitor your Ethernet-connected Arduino. All you need is an Arduino and an ENC28J60-based Ethernet shield, or get a Nanode which combines the two together.
The home page shows the three functions the webserver can handle:
- Monitor Buttons
- Control Lights
- Monitor Sensors
I’ve seen plenty Internet Radio examples out there on various platforms, but none on Arduino. Is 2K memory just too little to stream radio effectively? Thought it was time to find out. Turns out it’s no problem at all. Using uIP on ENC28J60 for networking and VS1053 for playback, a stock ATmega328p-based Arduino can stream Internet Radio no problem with plenty RAM to spare.
The example sketch discussed here is something of a “Hello, world.” of Internet Radio. It starts up, connects to a single hard-coded stream, and plays it forever. This makes it simple! Plug and listen. For this example, I’ll use the stream from www.c895.org, “Seattle’s Hottest Music” 🙂
Ken Boak at the London Hackerspace recently sent over a Nanode to try out. This is a handy combination of Arduino and ENC28J60 Ethernet in one package. My mission is to try it out with Jee Labs’ EtherCard library. This code is by far the most mature, stable, and easiest to use ENC28J60 driver for Arduino.
I’m happy to report that the 7752 revision of EtherCard works perfectly out of the box with NO changes. Even the SPI chip select pin is right, because Jee Labs’ EtherCard hardware uses pin 8, just like Nanode.
Today’s goal is to get my Arduino on the wired Ethernet for cheap. There are basically two options in Arduino-land for Ethernet, Wiznet 5100 or ENC28J60. The Wiznet solution is the easiest and consequently it’s the standard for Arduino Ethernet. It’s also expensive. $45! I bet we can do better.
Electronics Kits Zone sells an ENC28J60-based Ethernet Shield Kit for $19. Stand-alone modules can be found cheaper still such as this $17 module from mdfly.com, but you still have to interface it with the Arduino and convert the voltage down.
Of course, all cheap hardware comes with a price. It requires a TCP/IP stack in software, as opposed to the Wiznet which implements it in hardware. This is not a trivial problem! We expect a full working TCP/IP stack on our PCs, but on a memory-constrained microcontroller, it’s another story entirely. None of the available stacks implement it fully, they all take some shortcuts. Worse, I could never find one that has been ‘tested by fire’ as much as a PC (or Mac or Linux) stack. They seem to still be fairly immature. This translates into a serious pain to use. You have been warned!