``How do you get an elephant into a matchbox ?
You first take out all the match-sticks, then you get it in.''

(Photo courtesy of UMass News Office)

IPic - A Match Head Sized Web-Server

The chip in the picture above is a complete web-server.
It is about the size of a mere match-head.

(Photo courtesy of Cris Pedregal-Martin)

The single chip computer in the above picture runs the iPic web-server, the world's tiniest implementation of a TCP/IP stack and a HTTP web-server. The chip above is a complete micro-computer, and it includes all components of a complete computer on a single tiny micro-chip (this includes the CPU (central processing unit), memory, serial port interface circuitry, and clock oscillator).

The chip is connected directly to an Internet router, which is essentially the same as an Internet connection from an ISP. When you visit the iPic Web-server, by clicking on this demonstration link, (or this mirror), your web-browser connects to the chip shown in these photographs and the web-pages you see are sent to your web-browser directly from the tiny chip.

Note: The serial link to the iPic demo site is currently offline but will be back up shortly. The iPic demo link connects to the iPic connected on a serial line. In case the link to the iPic is overloaded, please browse the mirrored files at this mirror.

Parts of the iPic web-server

(Photo courtesy of Stephen Bannasch)

This is a close-up picture of the iPic web-server that you can connect to at this demonstration link, (or this mirror). The above is a picture of a laboratory prototype -- the chips are so tiny, so they are soldered onto those very fine yellow and blue wires which are holding them up in the air. In a final production verison, the chips can be directly bonded to a circuit board, and the entire web-server can fit in an area the size of a match-head.

The chip on the left is the iPic microcomputer, based on a PIC 12C509A, in a tiny 8-pin SO8 package. The chip to its right is a 24LC256 EEPROM chip -- it holds all the files that the iPic web-server serves out -- this is roughly like the hard disk on a regular sized computer. The tiny component at the bottom serves as the power-supply regulator.

The tiny IPic TCP/IPstack

It is based on the world's smallest implementation of a TCP/IP stack -- which is implmented on a small 8-pin low-power microcontroller .. using a mere 512 words of program ROM. If IPic can fit in a PIC, it can fit in just about anything.

The TCP/IP code itself fits in about 256 bytes (12-bit), and the rest is some extra salt-and-pepper and miscellaneous code.

  1. The chip is a PIC 12C509A, running at 4MHz (Internal RC clock).
  2. implementing the IPic tiny TCP/IP stack,
  3. a HTTP 1.0 compliant web-server,
  4. a simple telnet server (for editing files on the chip),
  5. an 24LC256 i2c EEPROM

This is true real TCP/IP: Despite its small size, this wee tee cee pee is a true implementation of very carefully hand-packed TCP/IP stack. Perhaps I dont need to tell you any more than to say that it is compliant with all applicable requirements of RFC-1122, Host Requirements Document, the current standard which all implementations of TCP/IP on all hosts on the Internet are required to meet in order to be connected to the Internet.

The Tiny Web-Server Serves Many Files

Running over this tiny TCP/IP stack, this chip includes a web-server, which I do believe to be the smallest web-server -- in physical size as well as in code-size. Also included is a real filesystem to manage multiple files on a tiny EEPROM chip, and some miscellaneous management code. All of this adds another 256 instructions. (This still leaves about half the microprocessor available for whatever apps you may desire -- ie. user code.)

Links :

Here is a link to a live iPic chip ..
Please browse around the files at the tiny web-server

Also, here is a mirror of all the files on the iPic server: A complete byte-to-byte mirror of the iPic on www-ccs.cs.umass.edu (with only the URL links fixed up to local links) is now in place. The content is identical - the mirror was constructed by dumping the EEPROM contents.

The iPic web-server has been in continuous operation since 10 AM, 14 July 1999. Here is a copy of the original web-pages describing the iPic web-server.

What can one do with it ?

Oh plenty ..

I'd like to think of this as John Romkey's Toaster-Net come to reality. I could now Internet-enable every bulb socket in my house, perhaps?

Serving out web-pages from files is only a very small part of the story. Remember that a web-browser not only shows you information it has fetched from a web-server, but it can also be used to make selections, click on swicthes and check-boxes, enable or disable features and change settings and send them over to the remote computer and have the settings take effect.

With the iPic, that remote computer now has shrunk to the size of a match-head, and costs less than a dollar. This means that you can connect practically any device or appliance to a network, and you can control it from the network.

At Home:

We live in a sometimes bewilderingly complex world, -- our everyday appliances have become quite sophisticated and complex to operate. There are many examples at home which illustrate this -- microwave ovens, electronically controlled bread makers, coffee makers, VCRs, DVD players, television sets, automatic timers, security devices and burglar alarms, cellular phones and answering machines just to name a few. Each device comes with its own confusing array of buttons and lights that make you run for the user manual each time you wish to change a setting or two.

The web-browser changes all this. It has a large screen, user friendly menus and buttons and helpful information and wizards to guide you through the process is just a mouse-click away. However, such a screen and interface would be too expensive to incorporate into every such appliance.

The iPic bridges this gap. At a dollar a piece, or less, the iPic chip can be embedded in every appliance and every lamp socket in the house. These devices and appliances can all then be controlled from your web-browser. With a few mouse-clicks you can navigate to the particular lamp in your patio, or the clean cycle setting of your oven or the recording time settings on your VCR. The appliance in question provides your web-browser, to which it is now talking, with a web-page and Java applets that allow you enter the new settings and also to check on things inside that appliance.

Appliances that are equipped with the iPic web-server and appropriate transceiver could communicate with any computer in the same house through the mains/power wiring -- you just plug the appliance into its utility power socket, and the control panel of that appliance can now be accessed from your web-browser. Further, these appliances can talk to each other through the house wiring already in place.

Once this is all set up, you do not need the computer to control the appliances -- they can communicate with each other through the power wiring and co-ordinate each other's activities. For instance, your alarm clock might tip off the rest of the house that its alarm time-setting has changed. The alarm clock can pass-on its new settings to set up the coffee maker in the kitchen and the heater in the bathroom to your new wake-up time. Gone is that frosty January morning when you are loathe to get out of bed and drag yourself to work. You could instead wake up to find a warm bath and the aroma of freshly brewed coffee greeting you as you start your morning.

In the Office and Industry:

So many appliances in the office, at work, and in the industry are controlled by micro-computers. All of these devices can be connected to the Internet using the iPic technology.

Here is a for-instance. Consider your laser printer. It connects to your computer or to your department or office network. It has but a couple of buttons and selection keys, but a complex multi-level set of menus that you need to walk through to change fonts, paper trays and other settings on the printer. You need to walk up to the printer to read the error messages it is flashing on its tiny LCD screen, whether it is out of paper, or is having trouble with its toner or has a paper jam. Once equipped with the iPic, all of this information can be now available at your computer screen, just by clicking on your web-browser.

Many industrial computers and devices are equipped with their own remote management facilities. With technology like the iPic they can be connected to common network facilities, instead of using dedicated wires and a dedicated control terminal, for each device or equipment. All these devices, which may include HVAC equipment, climate control in offices and large buildings, lighting and power management, security surveillance and monitoring, process control equipment, and many others can now all be controlled and managed using a unified terminal and with simplified procedures. This can lead to lower costs, better management, and sometimes, even increased safety.

On the Road:

The Web is a unifier of all media. Radio, television, text, audio, music, photographs, printable material (and some not so printable material as well sometimes) all find their place on the web.

However, cellular phones, pagers and personal organisers have so far been rather out of this loop. The reason for this is the complexity of the TCP/IP protocols, which forms the language of the Internet. This situation is now changed if you consider possible applications of the iPic technology.

The shrinking of the TCP/IP stack into such a small size and low power requirements means that every cellular phone could be equipped with a built in Web-browser, and every pager could become a full-fledged e-mail terminal.

Other Applications:

I wrote up a couple of Application Notes giving a couple of examples of using the IPic firmware core to do something really useful. You can download the PostScript files from the Download Area on the iPic web-server (naturally, where else would I want to put the files?)

If you prefer the Adobe Acrobat format, you can download these pdf format copies of the same documents (from the mirror).

Technical Information:

How the iPic connects to the 'Net

The iPic web-server is connected directly to a router running SLIP at 115200bps. There is no intermediary host, no protocol converter, no proprietary magic, ... no sleight of hand ., all the packets from your client are processed direcly on the PIC, and all the web-files, pictures, java applets, sound and PostScript files on the web-server are all served directly from the PIC chip.

At 115200bps, the web-server should be able to service about 7200 hits per hour, give or take some. The code itself spends most of its time sitting in the UART which is implemented by bit-banging.

More technical details can be found here.

Questions? Comments? Interesting ideas??

Thanks for visiting!!

-- //Shrikumar

Note: Due to the volume of e-mail, it has not been possible for me to personally answer most of the messages, therefore, please allow me to thank you in advance for your comments.

Please bookmark or pass-on the URL of this page


in preference to the link to the PIC (in "demo" above), or any of the links from the PIC chip itself. The little PIC chip has been temporarily installed at its current location, and is likely to be moved around sometime.

Links to other "world's smallest web-servers"

Links To Some Other Tiny TCP/IP stacks