mollyhackit writes "We've seen tiny Web servers in the past, but rarely ones that are home-built. Here's a guide to building your own tiny web server with a footprint no larger than a business card. The design uses two major chips. One handles the SPI to MAC/PHY translation for the ethernet jack. The other chip is a PIC24F, which hosts a simple web server and reads files stored on a microSD card. All components run at a low 3.3 volts. Part of the compactness of the design comes from the PIC24F having programmable pins; only four jumper wires were needed. The single-sided SMD design is easy to manufacture at home. Part 1 covered many of the 24F's features and both posts have full code available."
I don't understand this obsession with making things smaller and smaller - I want my stuff to be bigger and bigger. For example, I have my web server inside an old Cray Y-MP shell (not with original hardware, mind you). Then again, I live in an old church and have plenty of room to spare...
When I see a really good looking woman, I might want her. But, if the woman is really really good looking, I might say to myself "that's some really expensive pussy. Can I afford it?"
Having a web server built right into my wallet is very convenient. I can check the balance without taking my wallet out of my pants. Smoothness counts in such situations.
Which makes one wonder - what would I ever need a web server the size of a business card? I appreciate efficiency and all, but honestly...
Why? Because he could, obviously. He really needs no better reason than that.
Projects like this don't get done because the world is clamoring for a web server that has a foot print which is comparable to a business card. They get done because someone with the necessary skillset (or, who is developing the skillset) did it for practice/experience/fun. This is no different that the vast majority of open source projects -- someone did it because they wanted to.
Sure, it's not something which is likely sale-able. But, if you were interviewing someone to do work in a related area, and their "resume" included a little wee web server like this, you'd have no doubt but that he knows what the hell he's doing. In some ways (likely that you and I can't quite imagine) he likely has advanced the state of the art.
I know for a fact that I (and likely 90% or more of all Slashdotters) couldn't ever hope to do this. This isn't cool because of its utility, it's cool because it's novel, and, well, it's just plain old cool. That's the point.
How about embedded or remote applications? HTTP is a very simple and widely implemented data exchange protocol that would be useful for a variety of tasks.
For example, the microcontroller could do other things such as data logging, save them to the SD card, and cough up the data on HTTP request. Many network attached devices (especially routers, printers and plotters) contain embedded web servers... why not something of your own creation?
I've considered installing a microcontroller in my car (which predates
My car was exactly 0 processors in it. It has an AM-only radio which doesn't work, making the fuel gauge the most advanced piece of functional electronic equipment in the entire vehicle.
For minimal impact, I would want it as small as possible with no moving parts. Using very little power is also a plus, since it would have to endure some pretty extreme environments (High humidity, High/Low temperatures) so it would go into a weatherproof enclosure - and heat becomes a concern.
Something like this project would cost me under $50 to build, be small enough to mount inside the engine compartment (shortens and simplifies sensor wiring, no modification to the interior) and use very little power (no dead battery).
I don't need a full PC to do the job, and such a thing would cost me at least $250 or so. =Smidge=
I can't understand why I'd want a daily-driver that can go 225 mph, but I value the technological pursuits of Formula 1 teams to come up with things that make normal cars lighter, faster, more efficient in a scale I can actually appreciate on a day-to-day basis.
You know... I realize we're a bunch of geeks here but, really...
This is the reason that I enjoy being geeky and, well, is why I am considered geeky. I hadn't seen that before and when I just read about it I was pretty much smiling like a little kid on Christmas morning. I have absolutely no need for something like that at this time. I probably don't have the patience to build it unless I had a need.
That doesn't matter to me.
It still made me smile, read the article, and imagine a small email gateway or something trivial for home use.
I suppose it is like that for most of us here on/. though so anything more and I'd be preaching to the choir which would be even sillier considering the percentage of people here who are even geekier than I and probably will build one.
Does it run on an hearing aid batteries? I doubt it would run on hearing aid batteries. AA's would probablly work though. (this is just gut feeling though, check datasheets for more detailed info)
If not, what's the size of the power brick? That probablly depends on what the person who built it had hanging arround.
I'm sure any smartphone could work well as a web server, and it would have wireless:) The only thing stopping this kind of future for the last few years (okay so mobile webservers are utterly pointless, but mobile browsing is extremely useful) seems to be greedy telcos.
I haven't RTFA, but last time I saw an article like this it was for an extremely low power server, which only served a page once every 5 seconds or something crazy like that. Perhaps this server has a decent response time, but I'm assuming it will still be pathetic compared to a fully fledged server, or even just a mobile phone.
As for the malware angle, what do you mean? I don't see the benefit in carrying around a microserver when you have a legion of zombies at your disposal (as most malware authors proba
but what's the real point? Anyone with a website that has any real traffic to it is going to need a more powerful server then that... this device is more of a "hey look guys, this is so cool" instead of a "hey boss, I found a way to cut spending on our new web server"
The real point is an embedded webserver can be used to provide easy, simple access to some embedded device using software that is shipped as standard on any PC or any smart phone. There are other uses for things that can speak HTTP than serving huge content-rich web pages. This particular device might not be terribly useful on its own but that's not to say similar devices aren't. There are lots and lots of applications for embedded devices that can host a tiny server of some kind.
Indeed, that is exactly the point. Use this device to embed a web server in a larger device.
Here is another device that can serve web pages but is arguably even more useful [avnet.com] (and it is smaller). Instead of a PIC, it's a Virtex 4 FPGA with integrated PowerPC core. Obviously it runs Linux [jwhitham.org.uk], but more importantly, you can put extra hardware in the FPGA, connecting Linux software to whatever other hardware you wish to use. This is very flexible, since you probably won't need any other electronics to make your embe
that's ~$200 bucks and unless you need it to be pretty small, there are other Linux capable boards which can do more/easier. Think Gumstix for small or even eBox for larger but x86 based.
I think this/. thread is mostly about DIY, small, inexpensive, etc.
Well, I think telemetry is much more interesting than control. Instead of just HTML, you could have various values stored in NV RAM accessed through something like RSS. For example, instead of developing some kind of special hardware, wiring and protocols to connect all the devices in your factory, you just run ethernet everywhere and slap one of these things on to all your machines. You then write a simple PERL script to fetch certain URIs from all the machines in the address range, storing performance da
Add an RS-232 line or some Digital IO and you can now control your thermostat on your iPhone. Everything in your house could have a webserver. Setup a central polling computer using cURL and a MySQL database and track temperatures in every room of the house, or your refrigerator or... anything in your house.
Get a digital or serial water meter and monitor water usage from the road. Toss in a valve and be able to remotely shut off the water to your house if you know you're going to be out of town for business longer than expected.
Smart Home devices are quite expensive and not very "open". A tinkerer could create their own smart home at the fraction of the cost.
As a controls engineer I can just imagine tracking the temp in every room of my house with respect to outside temp and setting up a sweet PID controller on my thermostat to control temps much better than a single temp sensor in a central location in the house. Toss some flappers into the air ducts and you could probably set up a house to keep a temp +-5 degrees throughout the entire house.
"As a controls engineer I can just imagine tracking the temp in every room of my house with respect to outside temp and setting up a sweet PID controller on my thermostat to control temps much better than a single temp sensor in a central location in the house. Toss some flappers into the air ducts and you could probably set up a house to keep a temp +-5 degrees throughout the entire house."
Or I could buy a programmable thermostat that does all that.
I have a programmable thermostat. It has 1 temp sensor located in the main hallway. This is no way indicative of temperature in my back bedroom or in the basement. There is no controls output for commercial HVAC duct flaps to direct flow.
The PID controller in it is on the 'safe' side. I'm sure the gain and phase margins are huge because you never know where it's going to be installed. They probably have quite a large hysteresis band to keep from always burning fuel. I could design a controller that was spec
There's lots of applications for little http servers that have nothing to do with "websites".
Stick this server as the "upstream" of a wireless access point, and you've got a cheap throwdown local information server for a business without opening yourself up to wardrivers.
If you have a phone with a SD card and a camera, you can take some pictures then use this to post them on a LAN.
YOu can plug this in when your regular server is down for some reason.
If you're concerned about theft, something like this is ea
I wonder. If these are cheap, small, low power and low heat, could one simply create a vast array of these then use one central server to direct each connection to one "server", with a traditional (LAMP etc) server taking up the excess if the number of units runs out?
If the plan would be to run the back-end on a medium-sized LAMP server and then distribute the load of serving the cached pages via an array of these things, then it could be a very interesting project indeed.
There's quite a bit of small scale ethernet stuff available - my favorite chip at the moment for handling ethernet is Wiznet's tiny W5100 (or its bigger brother the W5300). These contain not only an ethernet MAC/PHY but a TCP offload engine, so your microcontroller can get on with whatever job it needs to and only deal with the higher levels of the protocol - meaning the software on your microcontroller can be simpler and spend more of its time dealing with whatever task you're using it for. The W5100 is in
There's a lot going on here and it sounds like a neat project, but I just hope that beginners aren't misled. This is a complicated project and there's a lot of separate skills which would all have to be learned at once: masking/etching PCBs, fine-pitch SMT soldering, lots of pieces of code that all have to play together right.
Just hoping that newbies will realize that there are simpler electronics projects [nerdkits.com] (relevant shameless plug) with much more instructional guidance they should start with before taking on something like this.
I would say start out simpler than you did. I started a self-directed Learn Electronics course - i.e what I did is get a pile of components and some breadboard, and do stuff with them to learn.
I started with transistors, resistors, diodes etc. - building logic gates and latches with bipolar transistors, building LED flashers from discrete components rather than a uC and code, then building simple switch mode power supplies to investigate inductors. I then started doing things with 74 series and 4000 series
The web servers you linked to all require an intervening computer to actual connect them to a network (the first one seems to be WAMP on a USB drive, as it requires a copy of Windows to run). They are "web servers" in the same way that Apache is a "web server". This device is totally self contained, requiring only power and a Ethernet cable. And damn impressive. It might be clearer to refer to this as a really small "web serving computer", the Sun article would still take the cake as the smallest web se
If every a server was going to be slashdotted.... (Score:5, Funny)
If every a server was going to be slashdotted....
best first every! (Score:5, Funny)
best first every!
Parent
Re:If every a server was going to be slashdotted.. (Score:4, Funny)
I don't understand this obsession with making things smaller and smaller - I want my stuff to be bigger and bigger. For example, I have my web server inside an old Cray Y-MP shell (not with original hardware, mind you). Then again, I live in an old church and have plenty of room to spare...
Parent
Re: (Score:3, Funny)
Or a Cray-2 with little plastic fish floating around, but the Fluorinert would probably bankrupt you :-)
Re:If every a server was going to be slashdotted.. (Score:5, Funny)
Would that make them Cray-fish [wikipedia.org]?
Parent
Re:If every a server was going to be slashdotted.. (Score:4, Funny)
Parent
Debate (Score:4, Funny)
Geek 1: "I won't be satisfied until I need an electron microscope to see my web server!"
Geek 2: "I won't be satisfied until I need a crane to plug in my web server!"
Parent
Re: (Score:3, Funny)
Can you fit an ENIAC in that church?
Re:If every a server was going to be slashdotted.. (Score:4, Funny)
Parent
As big as a business card eh? (Score:4, Insightful)
I'm glad I don't have any 1cm thick business cards in my wallet.
Re:As big as a business card eh? (Score:4, Funny)
I don't have any 1cm thick business cards
Loser. I have hundreds!
Parent
Re:As big as a business card eh? (Score:5, Funny)
Is that a web server in your pocket sir, or are you just happy to see me?
Parent
Re:As big as a business card eh? (Score:5, Informative)
In fairness, he did say in the footprint of a business card.
Yes, it's not the overall dimensions of a business card, but it's a pretty damned tiny thing for a web server.
Cheers
Parent
Re:As big as a business card eh? (Score:4, Insightful)
Parent
Re:As big as a business card eh? (Score:5, Funny)
When I see a really good looking woman, I might want her. But, if the woman is really really good looking, I might say to myself "that's some really expensive pussy. Can I afford it?"
Having a web server built right into my wallet is very convenient. I can check the balance without taking my wallet out of my pants. Smoothness counts in such situations.
Parent
that explains it (Score:3, Informative)
That explains why I never get laid. I guess I need to get me one of these web servers right away!
Re:As big as a business card eh? (Score:5, Insightful)
Why? Because he could, obviously. He really needs no better reason than that.
Projects like this don't get done because the world is clamoring for a web server that has a foot print which is comparable to a business card. They get done because someone with the necessary skillset (or, who is developing the skillset) did it for practice/experience/fun. This is no different that the vast majority of open source projects -- someone did it because they wanted to.
Sure, it's not something which is likely sale-able. But, if you were interviewing someone to do work in a related area, and their "resume" included a little wee web server like this, you'd have no doubt but that he knows what the hell he's doing. In some ways (likely that you and I can't quite imagine) he likely has advanced the state of the art.
I know for a fact that I (and likely 90% or more of all Slashdotters) couldn't ever hope to do this. This isn't cool because of its utility, it's cool because it's novel, and, well, it's just plain old cool. That's the point.
Cheers
Parent
Re: (Score:3, Insightful)
How about embedded or remote applications? HTTP is a very simple and widely implemented data exchange protocol that would be useful for a variety of tasks.
For example, the microcontroller could do other things such as data logging, save them to the SD card, and cough up the data on HTTP request. Many network attached devices (especially routers, printers and plotters) contain embedded web servers... why not something of your own creation?
I've considered installing a microcontroller in my car (which predates
Re:As big as a business card eh? (Score:4, Interesting)
My car was exactly 0 processors in it. It has an AM-only radio which doesn't work, making the fuel gauge the most advanced piece of functional electronic equipment in the entire vehicle.
For minimal impact, I would want it as small as possible with no moving parts. Using very little power is also a plus, since it would have to endure some pretty extreme environments (High humidity, High/Low temperatures) so it would go into a weatherproof enclosure - and heat becomes a concern.
Something like this project would cost me under $50 to build, be small enough to mount inside the engine compartment (shortens and simplifies sensor wiring, no modification to the interior) and use very little power (no dead battery).
I don't need a full PC to do the job, and such a thing would cost me at least $250 or so.
=Smidge=
Parent
Re:As big as a business card eh? (Score:4, Funny)
Ah! A car metaphor! I didn't even plan that.
Parent
Re:As big as a business card eh? (Score:4, Insightful)
You know... I realize we're a bunch of geeks here but, really...
This is the reason that I enjoy being geeky and, well, is why I am considered geeky. I hadn't seen that before and when I just read about it I was pretty much smiling like a little kid on Christmas morning. I have absolutely no need for something like that at this time. I probably don't have the patience to build it unless I had a need.
That doesn't matter to me.
It still made me smile, read the article, and imagine a small email gateway or something trivial for home use.
I suppose it is like that for most of us here on /. though so anything more and I'd be preaching to the choir which would be even sillier considering the percentage of people here who are even geekier than I and probably will build one.
Parent
Re: (Score:3, Informative)
Does it run on an hearing aid batteries?
I doubt it would run on hearing aid batteries. AA's would probablly work though. (this is just gut feeling though, check datasheets for more detailed info)
If not, what's the size of the power brick?
That probablly depends on what the person who built it had hanging arround.
Wireless Connectivity (Score:2, Insightful)
Now if this could serve up pages wirelessly: hello future!
Re:Wireless Connectivity (Score:4, Interesting)
Parent
Re:Wireless Connectivity (Score:4, Funny)
Dunno.
Parent
Re: (Score:2)
I'm sure any smartphone could work well as a web server, and it would have wireless :) The only thing stopping this kind of future for the last few years (okay so mobile webservers are utterly pointless, but mobile browsing is extremely useful) seems to be greedy telcos.
Re: (Score:3, Interesting)
I haven't RTFA, but last time I saw an article like this it was for an extremely low power server, which only served a page once every 5 seconds or something crazy like that. Perhaps this server has a decent response time, but I'm assuming it will still be pathetic compared to a fully fledged server, or even just a mobile phone.
As for the malware angle, what do you mean? I don't see the benefit in carrying around a microserver when you have a legion of zombies at your disposal (as most malware authors proba
Sure it sounds cool.... (Score:3, Insightful)
Re:Sure it sounds cool.... (Score:5, Insightful)
The real point is an embedded webserver can be used to provide easy, simple access to some embedded device using software that is shipped as standard on any PC or any smart phone. There are other uses for things that can speak HTTP than serving huge content-rich web pages. This particular device might not be terribly useful on its own but that's not to say similar devices aren't. There are lots and lots of applications for embedded devices that can host a tiny server of some kind.
Parent
Re: (Score:2, Informative)
Indeed, that is exactly the point. Use this device to embed a web server in a larger device.
Here is another device that can serve web pages but is arguably even more useful [avnet.com] (and it is smaller). Instead of a PIC, it's a Virtex 4 FPGA with integrated PowerPC core. Obviously it runs Linux [jwhitham.org.uk], but more importantly, you can put extra hardware in the FPGA, connecting Linux software to whatever other hardware you wish to use. This is very flexible, since you probably won't need any other electronics to make your embe
Re: (Score:3, Insightful)
It's also $700 for the whole package. Even just the mini-module is $250.
The board in the article is small and cheap enough that you could put them in out-of-the-way places and abandon them.
Re:Sure it sounds cool.... (Score:4, Informative)
that's ~$200 bucks and unless you need it to be pretty small, there are other Linux capable boards which can do more/easier. Think Gumstix for small or even eBox for larger but x86 based.
I think this /. thread is mostly about DIY, small, inexpensive, etc.
LoB
Parent
Re: (Score:3, Interesting)
For example, instead of developing some kind of special hardware, wiring and protocols to connect all the devices in your factory, you just run ethernet everywhere and slap one of these things on to all your machines. You then write a simple PERL script to fetch certain URIs from all the machines in the address range, storing performance da
Re:Sure it sounds cool.... (Score:5, Informative)
Add an RS-232 line or some Digital IO and you can now control your thermostat on your iPhone. Everything in your house could have a webserver. Setup a central polling computer using cURL and a MySQL database and track temperatures in every room of the house, or your refrigerator or ... anything in your house.
Get a digital or serial water meter and monitor water usage from the road. Toss in a valve and be able to remotely shut off the water to your house if you know you're going to be out of town for business longer than expected.
Smart Home devices are quite expensive and not very "open". A tinkerer could create their own smart home at the fraction of the cost.
As a controls engineer I can just imagine tracking the temp in every room of my house with respect to outside temp and setting up a sweet PID controller on my thermostat to control temps much better than a single temp sensor in a central location in the house. Toss some flappers into the air ducts and you could probably set up a house to keep a temp +-5 degrees throughout the entire house.
Parent
Sure it sounds cool/hot. (Score:5, Funny)
"As a controls engineer I can just imagine tracking the temp in every room of my house with respect to outside temp and setting up a sweet PID controller on my thermostat to control temps much better than a single temp sensor in a central location in the house. Toss some flappers into the air ducts and you could probably set up a house to keep a temp +-5 degrees throughout the entire house."
Or I could buy a programmable thermostat that does all that.
Parent
Re: (Score:3, Insightful)
I have a programmable thermostat. It has 1 temp sensor located in the main hallway. This is no way indicative of temperature in my back bedroom or in the basement. There is no controls output for commercial HVAC duct flaps to direct flow.
The PID controller in it is on the 'safe' side. I'm sure the gain and phase margins are huge because you never know where it's going to be installed. They probably have quite a large hysteresis band to keep from always burning fuel. I could design a controller that was spec
Re: (Score:3, Funny)
Probably not in the least. Probably just a on off with some built in hysteresis. Exactly the reason to do something like this.
Now... where did I put that Matlab 2008b CD. Simulink and XPC to control a 1700 sq.ft. house a bit over kill? :)
remote devices, intranet, control systems... (Score:2)
There's lots of applications for little http servers that have nothing to do with "websites".
Stick this server as the "upstream" of a wireless access point, and you've got a cheap throwdown local information server for a business without opening yourself up to wardrivers.
If you have a phone with a SD card and a camera, you can take some pictures then use this to post them on a LAN.
YOu can plug this in when your regular server is down for some reason.
If you're concerned about theft, something like this is ea
Might be actually useful... (Score:2, Interesting)
I wonder. If these are cheap, small, low power and low heat, could one simply create a vast array of these then use one central server to direct each connection to one "server", with a traditional (LAMP etc) server taking up the excess if the number of units runs out?
Sounds like a holiday project for me...
Re: (Score:2)
If the plan would be to run the back-end on a medium-sized LAMP server and then distribute the load of serving the cached pages via an array of these things, then it could be a very interesting project indeed.
Let us know how it turns out.
Re:Might be actually useful... (Score:5, Funny)
This webserver would fit inside a medium sized LAMP...
Parent
Re: (Score:2)
So, would that be a Beowulf cluster of these?
Layne
Small scale ethernet (Score:2)
There's quite a bit of small scale ethernet stuff available - my favorite chip at the moment for handling ethernet is Wiznet's tiny W5100 (or its bigger brother the W5300). These contain not only an ethernet MAC/PHY but a TCP offload engine, so your microcontroller can get on with whatever job it needs to and only deal with the higher levels of the protocol - meaning the software on your microcontroller can be simpler and spend more of its time dealing with whatever task you're using it for. The W5100 is in
Complicated project for beginners... (Score:3, Informative)
There's a lot going on here and it sounds like a neat project, but I just hope that beginners aren't misled. This is a complicated project and there's a lot of separate skills which would all have to be learned at once: masking/etching PCBs, fine-pitch SMT soldering, lots of pieces of code that all have to play together right.
Just hoping that newbies will realize that there are simpler electronics projects [nerdkits.com] (relevant shameless plug) with much more instructional guidance they should start with before taking on something like this.
--
Hey code monkey... learn electronics! Powerful microcontroller kits for the digital generation. [nerdkits.com]
Re: (Score:3, Informative)
I would say start out simpler than you did. I started a self-directed Learn Electronics course - i.e what I did is get a pile of components and some breadboard, and do stuff with them to learn.
I started with transistors, resistors, diodes etc. - building logic gates and latches with bipolar transistors, building LED flashers from discrete components rather than a uC and code, then building simple switch mode power supplies to investigate inductors. I then started doing things with 74 series and 4000 series
Duh! (Score:2)
You should have IPv6 address and connectivity on them. China already is running out of IPv4 addresses for gods sake.
Could you imagine... (Score:4, Funny)
...a Rolidex Cluster of these?
Re:And this is news why? (Score:5, Informative)
So what does this one make it so special?
You can etch the board yourself and make it at home from parts.
Parent
Re:And this is news why? (Score:4, Funny)
"We've seen tiny Web servers in the past, but rarely ones that are home-built."
You couldn't even bother to read the first sentence of the summary?
Parent
Re: (Score:3, Insightful)