Slashdot Mirror


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). "

6 of 73 comments (clear)

  1. Emware's server by Otto · · Score: 2

    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.
    1. Re:Emware's server by bob · · Score: 2
      I (or my office, more properly) have a development license for emWare, and I've built a couple of devices that work with it. Basically, they provide some Win32 DLLs that will front end some low-overhead back-end networks: RS-232, multidrop/full-duplex RS-485, modem... also ethernet is supported, and I think that there's an X10 port of the protocol. The microcontrollers run a fairly light-weight software called emMicro; it is coded as an event loop that, each time through, does basic housekeeping -- doing all the stuff that microcontrollers do -- but also checking for requests coming in on the network. The protocol provides for the Win32 host to discover the capabilities of the controller, and then to access those capabilities over the link; on that level it works sort of like an ORB or portmapper.

      On the Win32 side, they provide a special-purpose proxy service that, on the one side, talks http to a TCP/IP network, and on the other it talks to the back end network (called emNet -- what else) to service requests coming in from the TCP/IP network. One could probably do the same sort of thing by devising a lightweight protocol to talk over a dedicated network of microcontrollers, and then writing service routines that were callable by CGI scripts off of Apache (that's what I was going to do before I found this software -- emWare probably took the better part of a year off my development schedule). Nevertheless, that would be a bunch of work, and emWare's already done it. Main downside is that it only runs on Win32 (95/58, NT & CE). The thing I like most about it is that you can focus on what the controller is supposed to be doing, and you don't have to screw around with matrix keypads and LCD displays and such. Once you get over the big hump in the learning curve, adding new functions is a breeze.

      In addition to the http interface, they also have some Java Bean controls, and an API callable from C++.

      I have it working on PICs (16C76) and some Hitachi H8 units (the H8S/2134 boards that emWare sells), and I'm working on an 8051 design now. I'm using multidrop RS-485. It's pretty straightforward once you see what it's doing, but it is quite expensive to get started with more than their eval license.

  2. Possible use by RickyRay · · Score: 2

    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!

  3. Error: connection reset by peer by The+Silicon+Sorceror · · Score: 2

    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.
  4. iPic by Joe+Rumsey · · Score: 3

    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.

  5. Re:The real smallest by altman · · Score: 2

    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