The World's Smallest Webserver (s)
The always excellent Russ Nelson sent us a report on the competition for the lucrative title of "World's Smallest Web Server". Apparently there are a few folks going for it. He writes "HP has one. Dallas Semiconductor has one (only $50). MMC Embedded
has one that isn't even
in the running, although it does have COM1-4 and LPT1. Dawning
Technologies' entry is a
joke: far too big to be "smallest". Stanford has one which is best known.
And Rt-Control has one named
uCsimm because it fits in a SIMM module. The latter two get bonus
points for running Linux. Phar Lap claims to have one, but it's a non-starter,
being PC-104 based. Dekad Ltd says theirs is really small, but
they don't have an Ethernet interface. The one from iReady really seems to
be the smallest, but it too lacks Ethernet. Emware's one is so small it
doesn't need any hardware (how they claim it's smallest without
reference to any hardware, I'll never know). "
They're refering only to the software. As in, Apache is a web server.
They say it needs only 750 bytes of ROM and 28 of RAM which astounds me, but whatever..
- Give a man a fire and he's warm for a day, but set him on fire and he's warm for the rest of his life.
I came up with a use for it: (stretching a bit)
You wear eyeglasses with a camera in the middle (pricy, but available and very discreet), and have the world's smallest server and a good wireless transmitter hidden in your clothing/pockets. You then broadcast the premiere (or better yet one of the early test showings!) of the next Star Wars and other movies through video streaming in real time from the theater, which is then extended through repeaters througout the world (sit really still, and don't comment!). I'm sure Lucas would be thrilled about that one!
To up the ante, I offer a $250 prize to the first person who can prove they pull it off (but I assume no liability for their actions!). And here's my email (remove the !'s) to prove I mean it:
!rickyray!@!patrickhayes!.!com!
Wheee! We've Slashdotted the world's smallest server. "You big bullies! Pick on something your own size!"
~ Give me 101 plastic soldiers, and I will conquer the world.
There was another posted to slashdot only a few weeks ago called iPic. It's smaller than any of the ones mentioned here, I think. The URL is http://www-ccs.cs.umass.edu/~shri/iPic. html. The page has even been updated (new picture, more info) since it was first posted.
This is a hoax: if you've ever used 12c508/9's you'll know a few things.
1. No UART. You have to do it yourself in software. He's using the internal RC oscilliator which does NOT give enough tolerance to run at 115,200bps which he claims it does.
2. A software UART which will give byte in/byte out will take around 100 instructions. Oh, and you can't receive any data whilst you're processing other stuff, which makes it hard with bytes end to end - remembering also that 115,200bps is a bit every 10us or so, and that a 4Mhz 12c509 only manages 1 instruction per us.
3. The RAM is patently too small to do *any* of this. You have something like 20 bytes of RAM on the PIC, even the default ICMP ping packet is around 56 bytes of payload, not taking into account the IP or ICMP headers. You need to copy the ping packet's data portion byte-for-byte when you do a ping reply - how are you going to do this when you can't even hold a single packet in RAM?
etc etc etc. It's a hoax. You couldn't even get a RFC-compliant IP (let alone TCP/IP) stack on a 16f84, and this is a LOT bigger/faster. People have got limited TCP/IP functionality on 6502's (in 32k RAM) - but not host RFC compliant, just enough to do Telnet.
Hugo