TCP/IP Enabled Lego Brick
An anonymous reader submits: "Yesterday, Olaf Christ announced that he has the world's first TCP/IP-enabled Lego brick that can be used as a web server. Imagine the possibilities of connecting your collection of Lego Mindstorms to the Internet! He has ported the extremely small uIP TCP/IP stack to the Lego Mindstorms platform. uIP has also been used to run a Commodore 64 as a web server, and is ported to the 8-bit Ataris and laptop keyboard microcontrollers."
Ever since I added TCP/IP remote control capabilities to my Mindstorms web-cam robot, it's been trying to crawl up the intern's skirt...
The next Slashdot story will be ready soon, but subscribers can beat the rush and slashdot the links early!
mirror the poor brick before you slashdot it.
[o]_O
Next thing you know they are going to gain sentinence and then we'll be stepping on them barefoot all the time.
"Dogs and cats, living together...it's mass hysteria!"
This TCPIP stack has severe problems with overflow. I am working on limiting code to fix the problem. More info and a link to follow in a later post.
Do you want to remove linux?
Server temporarily unavailable due to heavy load.
Please try again in a few minutes.
We killed it. The first lego block to take a step into the grand open world of the web, and its slashdotted beyond any sense of hope.
"Its worse than that, he's dead Jim!"
--Chag
Have you no shame?
What happens when one of the bricks gets the Slashdot Effect? I forsee smoldering Lego structures and very frightened toddlers.
Maybe there should also be little sysadmin lego-people?
Sig: What Happened To The Censorware Project (censorware.org)
Hope he's not using that thing as his webserver though...
;-)
Here's the text for those of you who reach a "server overload" message.
Subject:
true tcp/ip on the RCX
From:
"Olaf"
Olaf Christ
Newsgroups:
lugnet.robotics.rcx.legos
Date:
Mon, 28 Jan 2002 20:16:29 GMT
View Raw
Message
I ve got the very first and only tcp/ip enabled RCX in my room, cool, eh ?
I will make a webpage at the end of the week to make the very first
(rudimentary, but working) version available to the public.
Right now, the tcp/ip stack is compiled into the kernel and the stack calls
the usercode itself.
The code to pass the incoming packets to the stack and to send packets to the
pc is currently running as a simple userprogram. (*.lx).
On the pc the lnpd runs a program that acts as a gateway between the tower
and the pc.
This gateway passes the packets coming from the tower to e.g. 192.168.0.1
and sends packets from 192.168.0.1 to the rcx.
Right now the only thing you can do is pinging the RCX.
But writing e.g. a very small webserver shouldnt be that big a deal
Because, lnp is still alive i had to disable the sound support to free some
RAM.
Right now i got approx. 3 KB RAM left, still enough to do a lot of useful
stuff.
I think, the best way to fully integrate the tcp/ip-stack into the
Legos-kernel would be replacing lnp by a tiny slip-driver.
On the pc we could get rid of the lnpd.
Olaf Christ
...image the inevitable frustration forthcoming when your little brother brings down your high-traffic portal to build a dinosaur!
Lego was nothing but red, square, identical blocks. You could connect them together to build larger red, square blocks. That's the real man's Lego, damnit!
sic transit gloria mundi
Hook your Lego Mindstorm box up to the internet, attach a small LCD screen, and program it to check autopr0n periodically. Then it could drive around and find you to alert you to freshly-posted pr0n! YES!
Learn to Play Go
Bob: "Check out the new server cluster we got"
John: "uh... it's a big lego model of natalie portman"
Oh well.
Bill, son, that's very nice, but why do all of your lego blocks spell out 1 0WNZ J00?
Net-enabled lego-blocks, communicatng with each other... this is exactly how SkyNet got its start.
Sure, it starts with cute rocketships, next thing you know there'll be Hunter-Killer 'bots the size of houses, made entirely of lego.
To think that the end of humanity (until John Connor of course) should come out of Denmark...
Now someone can *r00t* my lego's and command them to take over my home?!?!
I SURVIVED THE GREAT SLASHDOT BLACKOUT OF 2002!
In one submission, slashdot managed to /. all the major or high-profile uTCP/IP stack-powered web servers on the internet... I hope the C64 uServer was overclocked to a wh00ping 8mhz to handle all the requests :)
--- Metamoderating abusive downgraders since my 300th post.
Wasn't Yellow Dog's Brique first? No, waitaminute... Nevermind. :)
Not the Christ. Just His pesky little brother.
dinner: it's what's for beer
I have to be a party-pooper, but doesn't this violate the DMCA ? and to my knowledge, Lego doesn't much like people who rev-engineer their brick.
From his post:
Right now i got approx. 3 KB RAM left, still enough to do a lot of useful
stuff.
Oh, lordie, if every programmer had that kind of attitude...
Mindstorms is a great start - now all we need is the same technology embedded in Nerf guns, and I've finally got an excuse for ALL the toys on my desk at work :)
A sneak-preview of the new server-racks.
For some reason I just imagined the future breed of software architects to talk about scalability of systems build from Lego bricks:
-Our system is designed with scalability in mind, we use multitier software. Once the software is pushed to the limit, the scalability problems will be resolved in the hardware level. We will simply add more of these Lego blocks to our servers and there will be no problem.
In related news, a large army of Robots build from lego pieces is taking over Manhatten. These robots are looting every toy store in the area and are using more Lego systems to build more robots.
You can't handle the truth.
Why do you need to be 10 yrs younger, just £150 lighter. ;)
mlk (will have to dig out his mindstorms set)
Wow, I should not post when knackered.
As a fellow Mindstorms owner, this is incredibly interesting. I'm not that great of a builder myself - not compared with some of the folks I've seen on the 'net - but I'm looking into ways right now to get multiple bricks (RCX's) to communicate with each other.
Now with the ability to pass TCP/IP traffic back and forth, that opens up even greater avenues of possibility for device communication. Not only can you create software that will allow you (or someone over the web) to interact with the devices directly, it's now easier to get the RCX's to interact with other devices. One great example would be to have a brick as a part of a security system. How about intergrating it with an X10 system? Turn your robot on with the flick of a wall switch.
This just isn't a case of "let's port Apache to a Lego RCX brick!" The fact that these things are the brains of such a flexible system, with a wide variety of sensors, really opens up a great deal of possibility. More importantly, it allows for even more creativity and learning. After all, that's what these devices were made for, right?
--
Welcome to the land of the easily amused...
The concept of adding self-contained "bricks" of hardware/software to build functionality in a system of devices sounds a lot like the goals of Sun's Jini project, not necessarily limited to traditional computing applications though.
take your sig and shove it
No need to buy 42U racks for a couple thousand $. Just snap together and go!
Kind thoughts do not change the world
Microsoft responding to this new market has announced an IIS enabled lego brick. The IIS Lego Brick mesures 8"x5"x1", features a special edition of WinXP for Lego, and is fully .net enabled.
It's estimated reatil price is going to be $688.95 and will be available q3 of this year.
Inside sources at Microsoft reveailed a new "bumb" schema for "MSLego(tm)" that adds new "features," but may make it incompatable with industry standard Lego "bumps."
I believe sex is highly over rated... unless it involves me
Couldn't that be a very easy methode for programming ? Most humans can understand things they can touch much faster than abstract things like a source code file.
Wouldn't building your programm by putting together some lego bricks, be something that could make programming understandable for many people ?
Jan
... all stuck together.
I know what you mean, I'm really groovin' on this Open Sources Technology!! I mean, I've been installing Linux 7.0 at work and It's really cool. With Open Sources I like to have the C+ code right on my home machine. I can look at it and pretend I am programming it. I sent some patches to to Linux, but he forget to get back to me.
cpeterso
One great example would be to have a brick as a part of a security system. How about intergrating it with an X10 system? Turn your robot on with the flick of a wall switch.
It's already possible thanks to IR. Of course you need PC to read signals from RCX.
This gives me another item to tinker with when it comes to building a CD Changer out of Lego's.
My brother has a small cd-r label, and so does a lot of burning. I've been contemplating how I could make a cd-changer to automate the most boring part of it all, changing cd's, one at a time.
So far I've gotton it mostly figured out, except how to load a new cd from a spindle.
It's either figure out the spindle issue, or find some way to preload cd's for easy swapping.
Now, maybe I can have the cd-changer interact with the burning process. woot! "Hey, do I put in a cd now? NO, we're stuck!" at which point I activate some little lego man to wave his arms. heh.
Computational Madness in a round package.
WOw, seeing the C64 spit out bytes so slow reminds me of the BBS days. This is almost exactly like 2400 baud.
No, this isn't a joke.. =)
I haven't touched uIP myself, but we're using lwIP (its big brother) in KallistiOS, the DC hobbyist OS project. Adam sent this to me pretty recently and I thought it kicked ass beyond belief:
lwIP will be used in the post-production of Lord of the Rings 2 and 3
-Dan Potter
Cryptic Allusion - New Mac and Dreamcast Games!
With one of those big green backplanes, Olaf could probably put together quite a cluster.
-Legion (watch this get modded down as a troll because some moderator can't read)
NAT / ipmasq / etc. are one approach to hiding large private address spaces behind small numbers of IP addresses, but they're not the only one. Another approach is proxy-type firewalls and DMZs. In a typical corporate network, to get to the web you use a proxy server (which also does some caching), and to send email you go through an SMTP server at the firewall, and to receive email you go to a corporate server which actually gets the mail from outside and either forwards it to your internal mail server or else provides the mailbox service itself. NAT can be useful if you want to run other protocols, and ftp can either be handled by NAT or by proxies.
Bill Stewart
New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks
This is what they look like:
horror.jpg.html
Good thing they aren't hosting the story on the lego block webserver.. image how fast that would get slashdotted..
..."
and don't anyone bother with the "...imagine a
Here is some technical information about this achievement.
The "brain" in the Lego Mindstorms product family is the RCX; essentially a small microcontroller with an LCD display built into a Lego brick. It has connectors for sensors and motors as well as an infra-red port. The microcontroller is an Hitachi H8/3292 from the H8S/300 family. It has 32k RAM and a 16k ROM which hosts Lego firmware code.
The microcontroller can be entirely reprogrammed, which turns the RCX into a small but powerful embedded computer. With 32k RAM, this is enough to run the open-source legOS operating system - an operating system written for the RCX Lego bricks. Olaf Christ has taken the uIP TCP/IP stack (which was originally written for this project) and incorporated it into the legOS system.
IP packets are sent to and from the RCX over the IR link. The LNP protocol is used as a link layer protocol to deal with collision detection and link layer checksums.
The main problem with the TCP/IP-enabled Lego bricks is that the IR port on the RCX only is capable of running 4800 bit/sec. Since that's even slower than most really old modems, a Lego web server is easily slashdotted by one user alone...
While the uIP TCP/IP stack was originally written for this project it has since taken a life of its own and has not only been used to power good old C64s, but is also used in several embedded systems such as card-readers and other point-of-sale-type applications.
I have personally been running Olaf Christ's TCP/IP code on an RCX and can confirm that it works. In fact, I have one sitting here and serving web pages right now. Sorry, I won't give out the IP address due to the slashdot effect...
It's a "Why the hell not?" culture.
Well actually it's a "Let's do something completely pointless and then boast about it" culture.
"Information wants to be paid"
For those who don't pay much attention to Lego-ings-on, Lego has a VERY ENLIGHTENED attitude to Mindstorms hackers. They don't explicitly support RCX-hacking, but they definitely approve. Based on their statements to the press, they understand that RCX-hacking helps both the users and Lego. They *want* people to go nuts with the thing. (It's a great toy, and I love it; I just wish it had a port-extender for more sensors/actuators. Maybe a piggyback module that communicates with the RCX via the IR port?)
./ story a while back), but Lego were extremely reasonable and polite about the whole thing. (In trademark law, they MUST defend the trademark or else lose it).
There was an incident with the LegOS alternate operating system recently where Lego requested that the fellow change the name so as to not dilute Lego's trademark (see
As concerns DMCA, there's NO issue there, 'cause there's no attempt to prevent or control access to the brick's brains. Lego are the complete opposite of Sony in this regard.
"My strength is as the strength of ten men, for I am wired to the eyeballs on espresso."
I also think this is great, but thinking about connecting to other devices, the IR builtin in RCX isn't that well suited for a robot running around without boundaries, is it?
How about Bluetooth support? If they make a Bluetooth brick that can communicate with RCX on the robot, wouldn't that be better?
Employee of Inrupt, Project Release Manager and Community Manager for Solid
This is tangentially similar to an idea I've been playing with for some time. My main problem is that as as S/W enginner I have little idea where to start, I was thinking PIC, but I'm really not sure. The idea would facilitate real large scale automation. Perhaps this could be the first 'open-hardware design' :-) However the main reason I'm raising this an attempt to invalidate any future patent.
It's a TCP/IP/UDP trigger/switch. However the concept relies on being tiny, simple and cheap to produce, pence rather like the 555 timers we played with in school electronics. It needs to be a mass produced chip with a [very] low price point.
The chip(s) must operate in two modes. Switch and Trigger.
The trigger operates by producing a [multicast]packet contanining a unique GUID, when a specific input line is triggered dragged high(low).
The switch operates the opposite way by dragging a line high(low) when it receives specific GUID, within a [multicast] packet.
I'm thinking PIC(s) Would it be possible to implement a TCP/IP stack in PIC logic ?
I'm thinking multicast packets with TTL:1, to keep everything withing the subnet.
I'm thinking the IP equivalent of mecrcury/magnetic switches, relays etc for burglar/fire alarms, door switches, light switches, thermostatic switches, infact massive automation. It would then be possible to control just about any device via pretty much any IP enabled/connected computing device.
Consider some applications.
Switching Night Lights.
Burglar/Fire Alarm switches.
Light switches
Thermostats
See the potential ?
What do you think ?
Martin