Categories
Uncategorized

The Future of Open Source

Open Source

Open source software has been around for a long time, and I’ve been following it’s evolution for the past 10 years or so, and in that time I’ve seen it grow from a small idea known only to those in the software world, to something much larger, where everyday people like Aunt Tillie use open source software and think nothing of it.

In the past year since I’ve started working more with hardware, and following the great work of the Arduino team, Adafruit Industries, and others, I’ve seen the rise of open source hardware. Take a look at the Open Source Hardware (OSHW) Statement of Principles and Definition v1.0 and the Open Hardware Summit site for more info.

There’s a great comment by Chris Anderson, highlighted in this blog post at Adafruit. Here’s just a small excerpt:

This is the classic open source hardware model. Software, which costs nothing to distribute, is free. Hardware, which is expensive to make, is priced at the minimum necessary to ensure the healthy growth of a sustainable business to ensure quality, support and availability of the products. All intellectual property is given away, so the community can use it, improve it, make their own variants, etc.

Go there now and read the whole thing.

This got me thinking that eventually open source hardware could be more successful than open source software. If you remember the old concerns about open source software by the business folks, there was always the question of how you would make money from it. You can sell “Premium Editions” or make money by charging for support, you can hire yourselves out as consultants, and offer customized software solutions for customers… The ideas were plenty. Some worked, some didn’t. There were varying degrees of success.

I see open source hardware as pushing beyond that, taking the existing model and improving upon it. The software? Free. Open. Get it rolling, get the community involved, give it away to everyone. You should expect to make no money with software. Sure, it costs money to create software, but it’s a digital good, and making one copy or 1,000 copies has almost the exact same cost.

Hardware, on the other hand, is a physical good. It’s an object, a collection of parts, or things, not just bits of ones and zeros. Hardware costs money because someone, somewhere, assembled some real world thingamabob.

I don’t want to make it sound like hardware is better than software. They’re both equally important. They both need people to design them, create them, market them, and support them. The main difference is that creating 1,000 Arduino-compatible microcontrollers is going to cost more that creating 1,000 copies of the Arduino software. That’s just the reality of digital goods. Once you have one copy, making a lot more is cheap and easy. (And the shipping costs on digital goods are pretty close to zero. I say “pretty close” because there are server costs, bandwidth considerations, and other issues, but you’re not buying boxes, and packaging materials, and paying shipping companies to move goods.

As for the clones, well, that’s just a part of open source hardware, much the same way that an open source software package has forks of the original. Again, the difference is in the support, but support goes both ways. Since open source hardware vendors typically publish everything you need to make their products, you could certainly not buy from them and either build it yourself, or find a company that makes it cheaper. Cheaper is fine. I’m a fan of cheaper, but I’m also someone who believes in supporting those that create things and add value. If it all comes down to nothing but money, we’re pretty much doomed.

(Next time I’ll talk about specific pieces of open source hardware. See you then!)

Categories
Uncategorized

Processing

Processing

I’ve become quite the fan of Processing. When I first started to dig into the Arduino world, I turned to my old friend Perl to deal with Arduino<->Computer communication, but quickly discovered that Processing was an ideal environment for such a thing.

Perl is great (you know, IMHO and all that) but the main appeal for me has always been in Perl’s data processing capabilities, and having CPAN and a module for almost everything. Perl is fun, but it’s not FUN. I’ve dabbled with generating graphics with Perl using GD and SVG modules, but it’s not anywhere near the area known as fun.

Processing, in my mind, is built for fun. So what is Processing?

Processing is an open source programming language and environment for people who want to create images, animations, and interactions. Initially developed to serve as a software sketchbook and to teach fundamentals of computer programming within a visual context, Processing also has evolved into a tool for generating finished professional work. Today, there are tens of thousands of students, artists, designers, researchers, and hobbyists who use Processing for learning, prototyping, and production.

Processing sometimes gets called a “multimedia programming language” and is used quite a bit by artists and designers, and probably much less by hardcore software developers. Check out OpenProcessing for some great example sketches.

Drawing

My own sketches are not very impressive yet, but as I said, Processing it a lot of fun. It’s reminiscent of the olden days of graphics on the Apple ][ where you plotted things out in HIRES graphics mode but, you know, way more advanced.

It’s pretty easy to build Processing sketches that respond to sensors connected to a microcontroller like an Arduino (see Accelerometer Art) and that’s something I’ll definitely be exploring more of in the future.

Android

Processing runs on top of Java, or is a subset of Java, or whatever. This is great because you can easily create a Processing sketch that can run on Mac OS X, Windows, and Linux, and even create a standalone application for each platform. (It’s that promise of Java we had long ago!) But the real excitement is that the latest version of Processing lets you target Android as a platform. Supposedly you can build an app in Processing and get it into the Android Marketplace. (I’m not aiming to get anything into an ‘App Store’ but just want to run my own apps on my own devices, as mentioned in my Android vs. iPhone post.)

And speaking of the iPhone, it looks like iProcessing and Processing.js may be able to get Processing sketches running on iOS… neat! (Processing.js is also on my TO DO list. I’ve toyed with it briefly and it’s pretty amazing.)

One of my complaints about this “new world of Apps” on phones and tablets and non-traditional devices is that there is too much of a barrier to entry to building things that run on them. I’m hoping Processing might help bring that barrier down a bit.

Update: It seems May is Processing Month. I didn’t know! Now I feel compelled to do more.

Categories
Uncategorized

Arduino Education

Arduino EDU

As you probably know, I’m a big fan of the Arduino microcontroller… Why? Well, for one thing, it’s fun. I’ve always enjoyed tinkering and building things, and when I was in school I did take electronics classes, and liked them. I’ve also been programming “things” forever, and while programming can be mundane, it can also be fun.

So fun is great, but where does the learning come in? Well, the Arduino can (and should) have a place in education. In fact, the Arduino started in the education world, so to me, it makes sense to see it there.

Steve Dickie is a teacher who is incorporating the Arduino into his teachings, and you can check out some of his work at Pre-Engineering: Electronics with Micro-controllers and the Arduino Education Blog.

Besides being fun, I think the Arduino is a good choice because it’s open source hardware, supported by open source software, and it’s got a supportive community and ecosystem. I think open source should play a role in our schools for a number of reasons, not the least of which is the cost associated with many proprietary systems. I’ve seen schools implement solutions that are too costly, or over-engineered, or that get abandoned, or whatever… Open source could be a solution to some of these issues.

Steve’s also got an "Open Source Microcontroller in Education" Kickstarter project going to take his project to a higher level. The project may or may not get funded, and Steve may or may not complete the project, but either way, I’m glad to see someone promoting (and using) open source in schools.

Categories
Uncategorized

Diavolino

Diavolino

Remember when I wrote about Cheap Arduinos? Well, if you do, maybe you remember the Diavolino.

The Diavolino is a damn cheap Arduino clone, coming in at about $13. (I say “about” because if you want some headers, or a battery pack, or a chip socket, it’ll run you another few bucks… but still, you can get away with just $13 for the base kit.)

Even though I said there was an “extremely detailed assembly guide” there were a few places where I got slightly confused, mainly just in the “power options” section. (I wasn’t even drinking when I put this kit together, unlike the last kit I built.) Since I got the Diavolino with the 3 x AA battery holder for $1, it was simple to just go with that option. Obviously you’ll need a FTDI USB-TTL cable to connect it to your computer to program it. Again, leaving out the on-board USB makes this kit nice and cheap. (I did get a socket for the chip, as I don’t like to solder chips directly into place.) My only real complaint is that, even though the board looks cool in red and black, it can be a little hard to read the type on the board to locate the correct pins. Then again, I tend to prototype in dimly lit rooms.

I got this kit put together in about 40 minutes. (In fact, I even made a time lapse video showing the assembly.) This seems like a pretty simple kit for a beginner. In fact, I could see the Diavolino being used as a kit put together in a class for people wanting to learn soldering and basic Arduino programming. (As long as you can send them home without an FTDI cable.)

The Diavolino appears to have been designed knowing that in being low cost, a few sacrifices had to be made, and I’m OK with that. If you know how you want to use it, it shouldn’t be an issue at all. (This one is destined for a robot.)

Categories
Uncategorized

Teensy vs. Atmega32u4 Breakout Board+


Photos from Adafruit Industries.

I remember seeing the Teensy when I was digging into Arduino stuff last year, and it looked interesting, mainly due to it being small and cheap. (I like cheap!) But since I’m a lot more interested in what the Arduino has to offer, I didn’t look into the Teensy very much.

The Teensy is interesting though because out of the box it functions as a USB HID device, which means it can very easily emulate a keyboard or mouse. (See this Awesome Button post for a neat example.)

If you didn’t know, I’m a big fan of Adafruit Industries, not just for their amazing customer service and great products, but for their support of the open source movement, especially the work they’ve done with open source hardware. Adafruit actually sells the Teensy, but they also came out with a product called the “Atmega32u4 Breakout Board+” (terrible name, eh?) which is like a Teensy, but not like a Teensy.

Here’s where it gets weird… or interesting… or both…

By all respects, the Teensy is pretty cool, as I said, it’s small, and cheap, and can emulate a USB HID, and if your project needs that, it’s a good fit. See the Teensy page for more info.

Now, the “Atmega32u4 Breakout Board+” (terrible name) by Adafruit is similar but different. You can check out the Atmega32u4 Breakout Board+ page for more info.

Ultimately, I think I’d prefer to use the Atmega32u4 Breakout Board+ from Adafruit, and for a good explanation, see this Adafruit blog post about the Teensy, and for extra credit, see A Brief Essay About the Benefits of Open-Source Hardware.

It’s a shame the Teensy is not open source hardware, as I’d prefer to support vendors of open source hardware.

So I’ve got a project planned, and it will use a Teensy. So why not use a Atmega32u4 Breakout Board+? The first reason is, I don’t think I’m ready for it. In reading through the Atmega32u4 Breakout Board+ docs and digging through the forums a bit, it looks like Atmega32u4 Breakout Board+ development is not exactly easy for a beginner. I’d like to get into it at some point, but right now, the Teensy seems like an easier path to completing my project, and maybe once it’s done I can look into working with the Atmega32u4 Breakout Board+.

I know this may seem like a small thing, but I’d really like to support open source hardware when I can, the same way I try to support open source software when I can. It’s always a struggle.