Computing stuff tied to the physical world

Open? Really? (4/5)

In Musings on Jan 10, 2010 at 00:01

(This is part 4 of a 5-part series on open source – parts 1, 2, 3, 4, 5)

Screen shot 2010-01-06 at 00.06.41.png

For OSS (S as in software), “open” is all about collaboration. Yeah, sure, there’s a lot of re-invention and not everyone is willing to share when it matters (i.e. real innovation), but even just the collaboration of developers (producers) and users (consumers) is fruitful in the sense that bugs get exposed, investigated, and fixed. Even if asymmetric, this leads to faster evolution and better software.

And even if not always, OSS projects do tend to attract a lot of talent, and talent breeds creative solutions and excellence. Because of the low barrier to entry, the potential talent pool is huge. It doesn’t take a lot of talented / motivated people to make exceptional software. Collaboration among developers is the norm, not the exception – and the visibility helps, even if only by attributing status to the team participants.

With OSH (H as in hardware), things are a bit different. Sure, there too the exchange between producers and consumers helps create better products, no matter how asymmetric the groups are. Got a problem? Submit it to the forum, and it’ll be out for all to see so the producer(s) better get his/her/their act together.

But the numbers are different. Very different. The barriers to entry are a lot higher – designing hardware and actually building working “stuff” is hard and requires specific skills. It’s error prone, time-consuming, and above all it costs real money. You need equipment and inventory, the prototype turnaround times take ages when you’re doing this on a budget, and serious testing can be extremely difficult. Not to mention getting production QA up to scratch and the QC yield high enough.

Want some examples? Try “Chumby” or “Adafruit”, each driven by amazingly talented and dedicated people. Exercise for the reader: find out how many people are behind each of these OSH shops…

What about the Arduino boards? Well, to be honest, I have no idea who designed them, nor what discussion is going on about them for future developments. The Arduino “Mega” sort of dropped out of the sky once it was on the shelf.

Because, you see, selling hardware generates income. And any income, say N dollars, divided by anything but 1 would be less than N. What seems to be happening right now, is that OSH producers are indeed “open”, but only after the designs have been created, tested, and manufactured. All the hardware work has been done, all the choices and decisions have been made, and all the time-consuming steps have already been taken.

So OSH “shops” are in fact putting a fairly large distance between themselves and any potential contributors (and competitors). Want to see, use, or even alter what they do? Fine – but not before they’ve got their revenue streams set up.

Don’t get me wrong. This is absolutely everybody’s full right. To be an entrepreneur means you get to take the initiative and you get to make all the choices you want. That’s the whole point. It’s just not really open.

I’m not even sure it could be done any differently. At some point, as producer, you’ve got to have an advantage over others to be able to justify the time, effort, and money spent on whatever it is you do. And given that most supermarkets want money to hand over the ingredients for your meals, incentives tend to work best if they too are in terms of money…

But there’s preciously little collaboration going on. Ideas aren’t flowing freely, far from it. And as with OSS, some people are waiting on the sidelines, trying to soak up as much info as they can, and keeping ideas to themselves to try and create their own revenue source when the time is ripe.

There’s nothing inherently “wrong” with that.

I’m the same – ask me about what my plans are, how I solved some tricky issues, and I might give you an evasive answer… because I’m afraid someone might “beat me to the punch”, or become a competitor.

It looks like OSH is being treated as a zero-sum game, i.e. “your gain is my loss” and vice-versa. I’m not sure it actually is, even w.r.t. money. In fact, as far as ideas go, I’m convinced that it definitely isn’t – ideas breed more ideas, infinitely so. We just need to figure out and implement the mechanisms which encourage the flow of ideas. Right now, neither OSS nor – especially – OSH are quite there yet.

In the first part of this series I started out by saying that there is hypocrisy involved. Whoa, that’s a big word. Let me explain…

First, allow me to summarize: with OSS there is usually no money involved – it all runs on voluntary contributions and team participation. With OSH, on the other hand, there is always money in the equation, because “stuff” is involved, i.e. real atoms, not just bits. And once money flows, normal / healthy economics will lead to revenues, profits, and income, no matter how modest or at what scale. Fine. Cool, even.

Except… with physical computing, there is always both hardware and software (call it “firmware” if you like). The hardware makes things possible, the software makes things happen. Either one is useless without the other. Yin and yang. Yet hardware and software are quite different beasts, and require quite distinct skill sets, so the people doing (“good at”) the hardware are often not the same as the people doing (“good at”) the software.

If I were involved in the hardware side of physical computing, and wanted to get rich (a real possibility, since there is money involved), I’d work like crazy on the hardware, and then kick it out into the world (i.e. sell it) with the minimum amount of software I can get away with. I wouldn’t put it that way of course, but I’d say “hey, I did my part, now someone else kick in to finish the other part”.

Then I’d sit back, or rather: participate just enough to keep up appearances. Build a community, take the lead, create the infrastructure for (software-only!) collaboration, and – pardon the bluntness – rake in the money…

If I were involved in the software side of physical computing, I’d design my own hardware and set up a shop to generate a revenue stream, so that I’d have at least a chance of funding some of my software efforts. Because I wouldn’t know how to sustain the necessary Open Source Software development for it in any other way.

I’ll leave it to the reader to be the judge as to what extent the above is happening today, and I urge you to look well beyond what I am doing with my little Jee Labs setup…

All I’ll add to conclude with, is that Open Source Hardware is not nearly as open and collaborative on the hardware side and in the design phase at it could be, and that the Open Source Software efforts which need to take place to make such hardware tick are not funded nearly as well as they should be to become truly attractive / sustainable.

And that’s a crying shame. Because somewhere along the way, we lost the ability to freely exchange ideas and benefit as a whole community from the potential of absolutely explosive creative growth. As it stands today, OSS and OSH are fine at spreading and even democratizing technology, but in effect stifling innovation. Open? How?

In tomorrow’s last episode – my feeble attempt to come clean, with Jee Labs. No climax. No grand finale.

  1. Really good points here. As you said, if people invest time and money to build a product or kit or whatever, they want to be sure that at least some of the money returns. That’s fine with me, I’m doing that as well. What I can easily think of is a more open QA, like giving away prototypes for free and getting feedback and bug reports back. For realy open hardware with collaborative design you have to get the money out of the equation somehow. Cheers, Alex

  2. Being a software guy, what bugs me most about OSH, is that most force a development environment on you, based on personal preferences/hardware laying around… USB, Bluetooth are nice hardware, but lousy software stacks (premature abstraction). Serial over USB works for local PC but is no network solution, what if I plug the device into my (linux based) router or NAS? Hyperterm or Tera Term of Arduino Serial may be good enough for debugging, but what about scripting? Scripting could be nice but don’t force Visual Basic, Homeseer, xPL, Perl or TCL ;) on me.

    So what I am looking for is a way to examine an OSH project by ‘browsing’ it an digg in deeper AFTER I have played around with it, and come to like it.

    OSS is slowly decreasing the forced framework stack (Java, .NET or LAMP) to a more lightweight REST/HTTP/JSON interoperability. (See YQL, http://commonjs.org/ or http://nodejs.org/ although still Java, Linux ‘first’ whereas spidermonkey and v8 have Linux + Win32 as first class citizens)

    Buspirate allows me to do some codeless ‘exploring’ but not ‘network transparent’ and switches to binary codes for scripting. Firmata is binary all the way.

    IF binary is needed for efficiency in a low powered embedded part: so be it. BUT give me a mapping to some human readable, codeless interface just before the USB port. Ideally this would be a small HTTP server and nice URL’s or JSON, but ‘scriptable’ telnet + universal newlines would do too.

    So i followed several interesting projects (reading jeelabs every day). But many seem stuck in ‘you can call my DLL’ nor support any mix and match with other projects.

    http://cczwei.de / elektor: atm18 http://www.embedded-projects.net/ usbprog or octopus http://www.codemercs.com http://busware.de/ http://www.irtrans.de http://dangerousprototypes.com/ webplatform + buspirate http://wiki.msp430.com/index.php/EZ430-Chronos http://arduino.cc/ http://www.domoticaforum.eu/ http://www.rfxcom.com/

    Jeenode is very pragmatic on hardware and (embedded) software but Jeemon is black boxed Tclkit / Metakit. Interfacing to commercial sensors (Weatherstation, Kaku) needs additional ELV/Conrad hardware that is not up to the sophistication of buswares CUL or CUN.

    So I am dreaming of a ‘webplatform’ that makes me combine Jeenode, CUL and a irtrans like remote node. Being controllable/updateable/Debuggable from my webbrowser.

    I know this may be far fetched so currently making first baby steps with trying mongoose for controlling the USB-serial as a ‘arduino commandline’ http://code.google.com/p/mongoose/

    Have fun, Rinie

    • Good points. The problem with any choice, is that it’s a choice. Since everything at Jee Labs is open, you’re free to use and combine things in any way you like. I use the CUL to log weather data as well (I currently log incoming RF data in several ways, exploring what works and what’s convenient).

      For the near future, I’ll be continuing with some of the choices I’ve made. There’s no other way to move on and make progress, but I do want to keep things open at various interface levels. From USB to TCP/IP, I hope to leave enough flexibility to let others interconnect in totally different ways.

      Having said that… what you ask is nearly impossible (“don’t force X on me”). That’s like saying “don’t force AVR on me, or don’t force USB on me”. No one is, strictly speaking, but if you want to stand on the shoulders of others (giants, midgets, and everything in between), then you’re going to have to pick a set to stand on :)

      To me, it’s not so much about choices, but about where they get you. And that… is still wide open right now.

      Interesting set of links. Yes, alas there is little inter-operability. So that’s an opportunity, right?

  3. You make some real good points here. But there are a few OSH shops out there where development of new products is done in the open too. Discussed in a forum, schematics in a public svn,…

    An example is an open logic analyzer currently in development at Gadget Factory & Dangerous Prototypes: http://gadgetfactory.net/gf/project/butterflylogic/

    Among the customers of OSH there are a lot of people able to design the hardware side, improve an existing design or at least comment substantially on a given design. Not making use of these skills disregards a big advantage of OSH. The downside is that someone could rip off the published schematics, be faster at producing a sellable device and sell it on ebay.

    This happened e.g. with the Bus Pirate from Dangerous Prototypes. Currently they are available from Dangerous, Fundamental Logic, SparkFun and and ebay seller. But still they consider it a success and profit from a wider base of users with more people adding features to the firmware.

  4. Thanks for the comments and pointers. I agree with most of what you’re (both) saying. There’s more to this than I can possible fit into such a short post, but what I really wanted to stress is that OSH’s revenue vs. OSS’s non-revenue aspect needs to be examined further if we want to come up with good, i.e. long-term sustainable, approaches.

    (@Gerd: to add to your list, bus-pirate is also available from Seeed Studio)

  5. The Bus Pirate was originally developed by Dangerous Prototypes and they sell it through Seeed Studio – so when you buy it from Seeed they get a share from the revenue. Dangerous Prototypes don’t sell it themselves.

  6. I think the main difference between OSS and OSH is due to our culture. People have been making machines for a long time and hiding its plans so they can get the profit. Fortunately in the 60’s and 70’s, the beginnings of software, there were a different spirit so we can say that software was born in a really different context. By the time everyone realized the power and the need for software, we almost lost the ‘open’ and the ‘freedom’ also on the software side. If it weren’t for guys like Richard Stallman and the free software ideas, we would be living in a completely different world, where Bill and his buddies would have absolute control on OS and program tools in general.

Comments are closed.