Saturday, January 10, 2015

Gadgeteer vs Arduino vs Phidgets recently ran an article called "Arduino vs. Phidgets - Dev Time Trials" which brought to attention a blog post by Ken (?) called "Hardware Protoyping Speed Test: Phidgets vs Arduino" which I thought was a rather fair set of tests for comparing development speed and costs for three simple projects. My objective is to run these same tests using the Gadgeteer rapid prototyping system and report my results. Of course, like any article of this sort there are always going to be some lively comments from the readers regarding the validity and bias of tests.  I fully expect that this article will generate plenty of its own.

Like [I suspect] Ken, I am not being paid to write this article and have not gone to every length to make everything as objective and scientific as possible simply because I am not interested in spending more than a few nights with these tests and producing the video.  However, I do feel that my tests are in line with the tests that Ken performed. Ken introduced us to Phidgets as an alternative rapid prototyping system for hardware.  His tests showed that Phidgets is indeed a faster development system than Arduino.  However, as he and the readers of the article pointed out there are several negatives to going this direction including:
  1. Cost - the Phidgets projects were considerably more expensive than the Arduino projects.
  2. PC Tether - Phidgets must be connected to a PC at all times.
  3. Proprietary

What is Gadgeteer and why use it?

My favorite hardware system for rapid prototyping is Gadgeteer.  Much like Phidgets, it uses modular components combined with software to provide a system which makes it possible to prototype extremely quickly.  In these tests I will demonstrate this.  I am also a big fan of Arduino and regularly use it in projects.  However, for rapid prototyping I haven't found anything better than Gadgeteer.  I have never used Phidgets myself.  Any statements about the platform come from Ken's article.

Gadgeteer also addresses the concerns numerated above with Phidgets.  You will see that the project costs when using Gadgeteer was only nominally higher than that of Arduino.  Considering the productivity gains, I believe it to be worth the investment.

Gadgeteer is microcontroller based.  So, a PC is only needed for programming and debugging.  Once that's done, you can untether it and power it from any DC source as you can with Arduino.
Gadgeteer is open source and is based on the open source .NET Micro Framework (NETMF) project.  Most of the modules and some of the mainboards are also open hardware & software.  Vendors can extend the core framework and add their own proprietary software to mainboard firmware.  However, no proprietary functions were used in my tests.

The Tests!

For more information about the tests, I encourage you to read Ken's article.  I'm going to focus this post on just showing my results and detailing concerns I uncovered when necessary.

TEST #1 : Blink an LED (aka "Hello World!")

For this test, I used the following components.
The results...

Some people may complain here that I didn't manually wire up an LED & resistor as Ken did in his tests.  I say that defeats the purpose of rapid prototyping.  One of the main advantages of Gadgeteer is that I don't need to know how to wire up circuits in order to quickly make something that works.

TEST #2 : Move a Servo 

For this test, I used the following components.
One thing I felt was an error in Ken's tests were that he didn't use the same servo in both tests but instead used a slightly more expensive Phidgets branded servo for the test of the Phidgets board.  Since the brand of servo really shouldn't matter, I thought it would be a more fair comparison to exclude the cost of the servo from the prices and assume that the same servo was used in every test since they all basically function the same way.

The results...

Some of the readers of Ken's article complained that he use "libraries" in his tests and I anticipate some will complain that I did the same.  To that I'll respond "you betcha!".  Built-in module drivers that have been written and tested specifically for a known module circuit that are easy to wire in via drag & drop programming is another big reason that rapid prototyping with Gadgeteer is so much faster.  Even if you have the libraries available to you in Aduino, you are going to have to locate them and figure out how to include them in your project which takes time that you do not have to spend with Gadgeteer.

TEST #3 : Pedometer

For this test, I used the following components.
The results...

Here we can see that as the complexity of a project increases, the development time saved by Gadgeteer really pays off.  It's also important to note that the cost of the Gadgeteer solution is only slightly higher than that of the Arduino solution and almost four times cheaper than the Phidgets solution.


Here I've plotted a summary of the results from the three tests.  The Y axis shows development time and the bubble size shows cost.  It is evident from this comparison that Gadgeteer makes a very good choice when choosing a rapid prototyping system.

Some readers of Ken's article commented that Phidgets was faster but due to the cost it wouldn't be useful for creating final projects.  As you can see in the cost comparisons of the Gadgeteer & Arduino solutions, Gadgeteer solutions can make very good options for many final projects.  In fact, I have consulted with a company in the past that is doing this very thing in a commercial product.  Certainly, if a company's volume gets high enough then it makes sense to convert to a custom PCB solution.  But if you are a start-up with more ideas than engineers then a Gadgeteer based solution is a very viable option.

Although at times it may sound like I'm getting paid to write this article, that is not the case.  I am just a really big fan of the Gadgeteer prototyping system and I'm excited to show you why.  There's much more power including rich debugging, inline help, and the full power of Visual Studio that these tests do not even begin to demonstrate.  

For more information, I encourage you to follow my blog and Gadgeteerin' YouTube channel for more information.  For up to the minute news about Gadgeteer, follow me on Twitter as @Gadgeteerin.

You can find all source code used in the video here.
This post made Hackaday!