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.
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.
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.
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
|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|
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.
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.