Whitepaper: Choosing the Right Hardware for Prototyping

Prototype : “a model through which a new design can be evaluated and a final product can be derived”

When prototyping an idea, it’s important to choose components that will help prove the concept, allow the design to be evaluated and give a basis from which the final product can be derived. There are many options for hardware to use in prototypes, from the costly, proprietary packages like National Instruments to the low-cost and open source options like Arduino, and the multilingual, mid-cost solutions like Phidgets.

Different projects have different requirements, but Phidgets safely falls in the middle of the two extremes providing easy integration and cost-effectiveness. However, both National Instruments and Arduino type products can be useful depending on your goal.

Factors in Choosing Hardware for Prototyping

Prototyping is an important stage of design. It allows the evaluation of an idea while enabling development of the final implementation. If done well, it will catch issues and allow the design to be optimized for the user before large scale implementation occurs.

Hardware selection should be based on what enables software development and system integration; allows quick development; will prove the concept; could be used in the final design; and lowers development risks, time and cost.

Research done by RosenFeld Media shows that when people are prototyping, the three factors that contribute greatest to what tools and methods they use are the time and effort required to produce a working prototype; the ability to create usable prototypes for testing; and the price. Other factors like the ability to create working source code and the learning curve also play a role, and many designers will have their own requirements as well. At the bottom line, a solution must be efficient and effective.

Available Hardware for Prototyping

The most common hardware platforms used by engineers and designers today are Arduino (and similar development boards), Phidgets and National Instruments.

Arduino is a microcontroller, and the term often refers to any generic microcontroller development board. With these boards, the firmware is written by the user with free tools (like the Arduino IDE and the Processing language). The advantage of Arduino specifically, and part of what makes it so popular when compared to other development boards, is that there is a standard connector scheme that allows shields to be attached. Shields enable connections to motors, cameras, displays, sensors, et cetera, and are usually necessary in prototypes.

Phidgets are USB sensors and controllers that connect computers to the real world. The name Phidgets is a portmanteau of physical and widgets, meaning a physical component that enables a user to perform a function or access a service, in this case, reading environmental conditions or controlling physical devices such as motors. Communication with Phidgets can be done in the same language as the source code for the application being developed. This allows users to draw on existing libraries and extensions for any given language without having to develop a bridge between these different environments.

National Instruments develops industry-standard computers and hardware and fosters a very technically capable community with more than 35,000 customers. National Instruments’ products are intended for engineers and scientists needing to measure and control in areas that require a high degree of precision and accuracy. They provide an integrated hardware and software platform with a graphical system design that abstracts complexity, focused on allowing quicker design, development and deployment.

Phidgets’ and NI’s products take design to the modular level. Each product is well-designed to safe-guard against electromagnetic interference, overvoltage, undervoltage, electrostatic discharge and grounding issues. This makes it easy to integrate parts into a large system and produce a reliable design quickly. This level of care is not generally found in arduino-type boards and their shields, especially when considering those made by unofficial, third-party companies. It’s important to note that non-electrical engineers may not be able to spot the higher quality models of shields from the poorly designed ones, which could cause issues and malfunctions.

Considering Key Factors In The Decision

The time and effort required for developing a working prototype depends heavily on experience and the complexity of the idea being developed. Because of Arduino’s popularity, many designers have experience with their development environment. The Arduino language is based on C/C++ and uses a Java based language called Processing to enable communication between computers and Arduino. Arduino also requires some electronics know-how to evaluate the shields and to implement them and any peripherals. For designers with coding experience, who haven’t used hardware extensively, Phidgets is the only hardware with considerable language support, which includes an API for C#, C/C++, Java, Python, Visual Basic, Ruby, LabVIEW, Max/MSP and more. National Instruments hardware is programmed using LabVIEW software, which maintains popularity in some engineering and science fields.

The ability to create a usable prototype for testing is possible with any of the hardware options in the discussion. Many people do development with Arduino, and ample tutorials and example code exist online for people wanting to get started. As with third-party shields, not all code is going to be well-written. Phidgets releases example code for most products in several languages that can easily be adapted for any project. National Instruments supplies various toolkits, tutorials and ready-to-run examples, along with fostering an online community they call KnowledgeBase, which is contributed to by numerous engineers and scientists.

Price plays a key role in what hardware designers choose to use for their prototype. Arduino offers the most cost-effective solutions, but Phidgets does not trail too far behind. Both offer starter kits for about $100 USD, and the tools needed for programming come free. National Instruments comes with a larger price tag, with an evaluation kit costing $425 USD, which includes an evaluation version of LabVIEW for programming.

Table 1: Comparing factors important in choosing hardware for prototyping

Feature

Phidgets

Arduino

National Instruments

Creating usable prototype for testing

Yes

Yes

Yes

Price (USD)

~$100 (starter kit)

~$100 (starter kit)

$425 (evaluation kit)

Learning Curve

Low (for people who know coding)

Medium-low (depending on knowledge of Arduino IDE and electronics)

Medium (depending on experience with LabVIEW)

Ability to create own GUI widgets and patterns

Easy using C#, Visual Basic, LabVIEW, LiveCode, Max/MSP and other code examples

Done easily with the Processing language

Done easily with LabVIEW

Platform independence (Operating system support)

Full support for Windows, Mac and Linux. Partial support for Android and iOS

Windows, Mac and Linux

Full support for most Windows OSs, partial support for some Mac and Linux OSs

Built-in solutions/patterns

Example code for each piece of hardware

User community offers guides

Toolkits, tutorials, ready-to-run examples, and resources on NI’s KnowledgeBase

Languages

C#, C/C++, Java, Python, Cocoa, Visual Basic, iOS, Android Java, Applescript, AutoIt, Ruby, LabVIEW, MATLAB, Adobe Director, Flash AS3, LiveCode, Max/MSP, Delphi

Arduino language and Processing

LabVIEW

Support

Phone and email support with an in-house engineer,

manuals, tutorials, example code, forums

Online community, forums and manuals

Manuals, KnowledgeBase, online community, forums, tutorials and examples

Considering The Final Implementation

Creating a usable design should be a top priority for designers. More than half of prototypes end up using the same hardware in the final implementation, which means the end-use must be considered. The most obvious consideration is whether the design can be stand-alone or computer dependent. With Arduino and National Instruments, all of the code can reside on the device, allowing it to standalone. Phidgets are peripherals, so the application code runs on a computer, which must always be connected to the device. Several prototypes have attached Phidgets to a Raspberry Pi, which runs the application, allowing for a fairly cost-effective and portable design.

Another consideration is responsiveness. Since Phidgets are peripherals, reaction requires a roundtrip through the computer operating system and your application, giving a practically imperceptible lag of 10-30 milliseconds. On Arduino, the code runs on the microcontroller so – assuming the code is well written – lag can be controlled down to mere microseconds. For the most responsive service, some National Instruments products have real-time performance in the nanoseconds.

The vast majority of systems do not need microsecond-level real-time performance. FAA certified flight simulators have time constraints that are easily met by Phidgets, and systems from industrial control monitoring systems to data loggers can easily operate on half a second of lag. Even live interactive art has been done with Phidgets, without perceptible delay in responsiveness, but some artists may be more choosey. Certain types of medical applications, transportation systems, nuclear plant/reactor monitoring and other mission critical applications rely more on nanosecond performance.

Keep the final application – if it needs to be standalone and what level of responsiveness is required – in mind. While there are many aspects to choosing hardware for the prototype, remember that more than half of prototypes end up using the same hardware in the final implementation, so choosing a solution that can be put into the final product is a huge benefit.

Finally, Selecting The Prototyping Solution

Choosing the right hardware for prototyping enables quick development and efficient design. The key factors that will influence the decision are the time and effort required for developing a working prototype, the ability to create a usable prototype for testing, and the price. All three hardware solutions presented can meet these requirements, but for someone unfamiliar with the language and software provided by Arduino or National Instruments or needing to connect to other resources through the application, Phidgets is the best fit, and still comes at a reasonable price.

Get a downloadable pdf version by subscribing to our newsletter.

* Photo: Prototype of the boxing Bots using Phidgets (Credit: Clint Rutkas)

Advertisements
About

Math lover. Engineering communicator. Mad-lib enthusiast. Total nerd.

Tagged with: ,
Posted in How-Tos

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: