YAWSWS

Joseph S. Barrera III (joe@barrera.org)
Wed, 27 Oct 1999 17:24:57 -0700


(Yet Another World's Smallest Web Server)

http://people.ne.mediaone.net/fwhite/ace/index.html

webACE Web Server
World's Smallest?

In the photo above is the webACE: a Fairchild ACE1101MT8 microcontroller
programmed as a Web server and containing two tiny web pages in its on-chip
memory. Since the ACE1101MT8 is the smallest available microcontroller, I
believe that this is (at least for the moment) the World's Smallest Web
Server.

Besides being a wonderful little microcontroller, the ACE1101 is
approximately half the size of the previous record holder, a Microchip
PIC12C509A/SN, as we see here (the ACE is on the left and the PIC on the
right). The ACE occupies about 65% of the area and about 46% of the volume
of the PIC.

The webACE server implements a special-purpose TCP/IP "stack", with a number
of restrictions, but which suffices for serving small web pages. It connects
to the Internet via a standard SLIP link.

I apologize for the quality of the photos. No matter how I tried, I could
not get the markings on the ACE1101 chip to show up.

Try it out!

The webACE server's home page is here. There is also one other page. The web
pages aren't much to look at, but they demonstrate the principle. Note that
the home page is dynamic. Imagine the hit counter replaced with the current
temperature inside your fridge, or whatever.

The server also responds to pings. I get a ping round-trip time of around
50ms from my local LAN. Web service maxes out at about 3 hits/second.

I will try to keep the server up and running as much as possible; however, I
have to turn it off to do development work. I'll try to maintain its current
status below.
00:30 20-Oct-99: The webACE server is UP.

The Hardware

The actual running server hardware (click on the photo for a better view)
consists of just an ACE1101 microcontroller, two LEDs, and an RS232
interface chip. The red LED flashes as packets arrive and the green LED is
controlled from a link on the home page. A 57.6Kbps SLIP line connects the
server to a Linux host, which serves as a bridge between SLIP and an
ethernet LAN. The LAN then connects via a NAT firewall and cable modem to
the Internet.

I purchased the ACE1101MT8 from Pioneer for $2.12. The Maxim chip is a free
sample.
Note: The firewall passes only HTTP and ping packets. Although the server
correctly sends an RST for packets on unknown TCP ports, you can't send it
such a packet from the outside.

The Software
Some code statistics:
Startup 36 bytes
Serial 179
SLIP 91
IP 144
ICMP 47
TCP 188
Checksum 132
Application 193

Totals:
454 instructions
912 instruction bytes
98 data bytes
1010 total bytes
2.01 bytes/inst average

Update: I forgot to include the on-chip "data eeprom" in the totals above.
This adds another 64 data bytes, for a grand total of 1074 bytes.

NMAP thinks the server is a trivial joke!

Send me an email if you would like a copy of the source code.

I created an unmoderated egroups mailing list, acex-users, in case anyone is
interested in discussing the problems and features of the ACEx[tm]
microcontrollers. ACEx is a trademark of Fairchild Semiconductor
Corporation.

Other Servers

Some other tiny web servers on the net:
Matchbox Webserver -- started the madness
iPic -- the previous record holder
iReady
wwwPIC
TINI
picoWeb
uClinux

fmw@pobox.com
Copyright 1999 Fredric White
Created: Oct 13, 1999
Last Updated: Oct 27, 1999