Archive for the ‘Social’ Category

A note about the chumby EULA

Monday, August 28th, 2006

A lot of people have mentioned that the current EULA for chumby is a little bit interesting for an open source project. This post expresses my own opinions about it (not necessarily Chumby’s opinions).

To be honest, it is a work in progress, and we are looking for suggestions to improve it. There is one piece of code on the chumby that is not open source, and that is the Flash player, and Adobe requires us to publish a EULA with our product to protect their proprietary interests. While we evaluated many open source Flash solutions, we found that the Adobe Flash player was the most broadly compatible and had the largest base of developers, something very important for growing a network of content that requires the support and enthusiasm of the Flash artist community.

A problem we found in launching an open source hardware platform is that the traditional mechanisms for open source–GPL, creative commons, etc.–did not have legal language that matched the unique needs of hardware. For example, a creative commons license says nothing about how patents are handled. This is because creative commons cannot be used on functional works. Thus, the creative commons license printed on a chumby core board refers to the mask work only, as that is the only piece of “artwork” that can have a creative commons license validly applied to it. However, I think the final hardware license is fairly tasteful. I fought with our lawyers a bit over it, but I think that in the end it is something I can live with: it explicitly gives you the rights to modify and copy our hardware design kit, and to modify/build your own chumby, and to even resell your modified chumby, as well as kits for modifying it. In particular, academic applications for chumby should have no fear or charge for using any piece of the chumby HDK and SDK in course materials or research apparatus.

There is, however, one clause that says you cannot use the chumby development kit to build or modify chumbys that compete with our widget service. The thing the CEO wants to prevent is someone copying our schematics and plans, and launching a “Crumby” service that leverages our hard work and steals our bacon. I can definitely see his point of view, as the core revenue model–the thing that in part will help pay my salary so I can continue to build hardware that I can share with you in this open-source style–is potentially based on service subscriptions. Note that our plan is to offer a wide variety of widgets for free on our network, so if you get a chumby and don’t buy our service, it is still a pretty useful device, just not as useful as it can be. Plus, if you’re a hardcore open-source guy, you’d hack the hell out of the chumby anyways so you’d have no need to go to our service for widgets (we do not consider you running your own widgets on your own machines as competing with our service–it is your hardware after all–and you aren’t required to buy a subscription). We also plan on being fairly liberal with the ratio of subscriptions to devices, e.g., you are free to copy your subscription within certain boundaries, so you aren’t buying a subscription for every chumby in your house.

Significantly, I want you to be able to use the chumby device with other non-competing networks, such as Skype, IM, or any other thing that may tickle your fancy. The trouble is defining what a competing network is–it’s sort of like Justice Potter Stewart’s famous quote on pornography, “I know it when I see it”. This is something we will hammer out over the next couple of months before our general product deployment phase. While I realize that some of the open-source purists will be put out by the terms like this, the unfortunate reality is that hardware development does cost real money, and so does a colo with servers, and thus a compromise needs to be struck between total openness and a sustainable, protectable business model.

chumby is Free as in “free speech”, but not free as in “free beer”–however, you are free to download the plans for a chumby and brew your own.

chumby–My Inside Perspective

Monday, August 28th, 2006

So, the cat is out of the bag, and I’m finally able to talk about a project that I have had the priviledge of working on for the past several months. I have been working on the chumby, an inexpensive (sub-$150) Wi-Fi enabled content delivery device that is designed to be used around the home. From the hacker’s perspective, chumby is basically a linux client that runs a Flash player and streams content from the “Chumby network”, our content management service. In my mind, these were the goals of the chumby design:

  • simple. A non-hacker user familiar with computers–for example, a typical teenager–should be able to set up and use a chumby. In addition to a lot of thought put into the UI, the chumby network’s ability to deliver drag-and-drop content via Flash widgets is the tehnological cornerstone for chumby’s simplicity. It is this simplicity that differentiates chumby from general purpose devices such as PDAs and laptops.
  • fun. This is a device whose core consumer market is not the gadget fanatic. It needs to be accessible to everyone, so we are trying to take the industrial design in a direction that we like to call the “anti-iPod”.
  • deep. A fatal flaw in many “simple” products is that they are too shallow, and miss key features that would make them useful. Products like the Civa pictureframe, the Ambient Orb, and the Nabaztag rabbit are examples of devices that are too one-dimensional and lack depth. And this leads us up to the most important goal for me–
  • yours. The chumby is architected to be as open as possible to anybody who wants to hack it. In the design of the system, we consider not only open source software hackers, but also hardware hackers and artists and “crafters”–e.g., people who are equally skilled in their ability and passion to do non-computer things, such as metalworking, sewing, carpentry, etc.

Thus, there are two messages about the chumby, neither of which are fundamentally exclusive. One is that Chumby will appeal to the new generation of always-on, always-connected people who use myspace, blogs, and rely on IM to keep in touch (hence the picture of the teenage girl on the chumby corporate website using a chumby). The other is that Chumby will appeal to hackers, who have an insatiable desire to extend, modify, customize, and abuse consumer products to do things they weren’t intended to do. I am hoping that these two worlds will develop a synergy that enables chumby to do things we never imagined.

The real key here is enabling hackers to break out of the realm of point-solution hacks on unsupportable hardware and into the realm of something you can share with hopefully just about anyone. My boss likes to cite the example of a hack where someone adds a blood pressure cuff to chumby, and gives it to their grandmother. Now you can check on grandma’s health, and she can watch pictures of her grandchildren while she gets her bloodpressure taken. Now imagine this scenario, but with a WRT-54G router instead of a chumby. Sure, you can add a blood pressure cuff to a WRT-54G as well (they are architecturally quite similar in fact), but try to explain to grandma how to set it up and use it. In other words, hackers can leverage the effort we spent into making chumby usable to help make their hacks more usable and more palatable to others.

So, Chumby is making the source code, schematics, board layouts, bill of materials, flat patterns and 3-D CAD databases of our plastic pieces available for you to use. You can find them all at the chumby developer site (the link may be down right now due to the stress on our servers from being on digg, engadget, and other popular websites). Working on chumby is very personally exciting to me, because not only am I presented with the opportunity to build a product that helps people improve their lives in some small way, there is also a chance for me to enable you to build hacks on this platform, and you can leverage our (hopefully) success.

Here is a simple example of what I mean. I heard from someone this weekend at FOO camp (I forget who already–if you are reading, please refresh my memory!) that they are unhappy that the thermostat in their home is so far away from the place where they actually want to have thermoregulation. Thus, a weekend project for him would be to hack a chumby and add a temperature sensor. Since the chumby platform already has Wi-Fi built into it, the amount of hardware grunge work he has to do is minimal–he just needs two chumbys, one with a temperature sensor, and one with an interface to the thermostat, both enabled with the hacker sensor package that I built (more on that later). Furthermore, the device he builds will not only help keep his livingroom at the right temperature, it can also tell him the latest news and help him track his favorite TV shows. The coup de grace for all of this is that he is also free to publish his modifications and even resell modified chumbys with this capability so that others can enjoy the benefits of his work, and he can make some profit off of his initiative. And on a lighter note, since the housing itself is made out of fabric, he has the opportunity to redo the housing so that it matches the livingroom decor, keeping his spouse happy because there is not yet another odd hack with ugly cords everywhere sitting in the livingroom.

And of course, I want to make clear that I’m not the only guy behind Chumby–I am just the hardware lead designer, and I do the linux kernel stuff too (which is something new for me, but it was a lot of fun learning the insides of linux from boot to halt). There’s a team of talented, hard-working people who are also a lot of fun to work with.

There’s an ORCA in my livingroom!

Wednesday, August 23rd, 2006

More posts to come in a couple of days–need to announce winners of name that ware and throw up a new ware–but in the meantime, more fun stuff to talk about.

Last month I had the priviledge of hosting the MIT ORCA team at my place–and at the complex’s swimming pool–for an evening while they worked on debugging their autonomous underwater submarine. Their machine is a fine piece of engineering, I think–it has come a long way. I used to be on the MIT ORCA team for the first five or so years, and they are now on their 9th year. Check it out:

Yep, just about everything you see in there is custom-built, cut, or welded–probably the only stock part is the PC104 core as far as I can tell. A pretty impressive amount of electronics in a tiny space. They even have flashing blue running lights that look pretty snazzy, and they have a neat little waterproofed wifi dongle that they float on the water surface that they use for debugging the unit with a shore box while it is submerged. And yes, it is still running linux.

Alternative Freedom (Again)

Wednesday, August 23rd, 2006

Since I’m updating my blog, I promised the swell producers of Alternative Freedom (a documentary about the invisible war on culture), that I’d put a plug for them here…their movie, which finally got a screening in New York, is now available for purchase online. $1 of every purchase goes to the EFF!

Old School

Wednesday, August 23rd, 2006

Ah, back in the day.

Many years ago–I reckon 8 years almost to the day–I was a graduate student just freshly admitted to MIT, and I was redesigning the infamous 6.004 “Nerd Kit” under the guidance of Gill Pratt. 6.004 was the “Computation Structures” class, or as Steve Ward once put it, the course that taught you about everything from “NAND gates to Bill Gates”–although Gill’s take on the class included a section on information transmission on wires, which proved to be absolutely invaluable throughout my entire career. Essentially, 6.004 was MIT’s introduction to computer architecture, and it was mandatory for any student studying for an undegraduate degree in EE or CS. Nerd Kits were the substrate on which students implemented their lab work. Prior to my revision, students wired up 74xx-era logic chips on large breadboards to build a microcoded microprocessor from the ground-up. It was a great experience–it forced you to learn rigorous discipline and debugging techniques to build anything that complex–but breadboarding was rapidly becoming a thing of the past, and the curriculum was becoming outdated.
The new kit was to use FPGAs extensively–something new for that era–and in a manner that allowed students to focus on learning architectural concepts as opposed to syntatic and mechanical details of how to program an FPGA. As a result, the FPGAs were used as “legos” so to speak, and each FPGA communicated with another using a 32-bit serialized bus. This way, students could build a 32-bit RISC processor out of these legos without the pain of wiring up 32 individual wires. In addition, I included alphanumeric displays that would read out the value of any bus running anywhere on the chip, which was pretty neat–you could go over to your adder and see the A and B inputs and the output while single-stepping the clock and watch the whole RISC machine do its thing. The kit was expandable so you could wire up multiple kits and build superscalar RISC machines as well.

At any rate, it has come to my attention that these (barely used) kits have finally been retired and released to the reuse pile at MIT. I have had a number of requests for documentation about the kit, and since the kit is so old and deprecated, I have decided to release the entire source code, schematics, and board layout for the kit, as far as I have it, as well as the design rationale and design documentation for people to use. Hopefully these kits will find a good home and someone can make them do something clever.
Here’s an old-school picture of the kit. I think this was taken with a real film camera and scanned.

Here is a more modern picture of the kit, with a hi-res version so people can see it better. Ah, digital cameras!

As usual, you can click on the above image for a very large, very hi-res version.

The design documentation can be found in the links below. Note that they are fairly large files, and I am not anticipating a lot of people downloading them. I am hosting the bandwidth and paying for it myself. If for some reason they do become popular I will move them off-line and post a torrent to them intsead.

  • schematics, board layouts, design rationale, source code for ROM monitor, and mechanicals for the mounting plate. ZIP, 13 MB.
  • gerbers for mainboard. ZIP, 409 kB
  • gerbers for application board. ZIP, 49 kB
  • kitcomm java applet, used to configure the kit from a host (GUI for setting module identities, essentially). ZIP, 994 kB

You know, back when I made this design, the storage requirements for this really pushed the limits of my hard drive and my computer, and I was using a 64 kBit/s frame relay to get into campus (or did we have our T1 by then at my frat?). I’m lucky I could find these files…I had considered so many times deleting them to make space. Hmm…if I remember correctly, it was an AMD K6-III at around 450 MHz or so, and something like a few hundred megabytes of hard drive. Now I write this blog post on a laptop with a 2 GHz x86 core duo, and 100 GB of hard drive…and enough bandwidth to share files like this. Geez, I think the video card in this laptop has more video memory than my hard drive had back then. My how times have changed!