Notice: This page contains information for the legacy Phidget21 Library. Phidget21 does not support VINT Phidgets, and will not support any new Phidgets. Phidget21 will be maintained until 2020. We recommend that new projects be developed against the Phidget22 Library.
Phidgets’ philosophy is that you do not have to be an electrical engineer in order to do projects that use devices like sensors, motors, motor controllers, and interface boards. All you need to know is how to program.
We have developed a complete set of Application Programming Interfaces (API) that are supported for many different operating systems, and which can be used through many different programming languages.
|We suggest starting with the Getting Started guide for your device, which can be found in its user guide. This will help you run a basic example to check your hardware and drivers.|
|Have you been there but want more introduction? We have overview pages - with lots of explanatory images - for some of our high-level topics:|
After that, you'll need to dive right in and write code.
So if you're here, you probably want:
- An overview of our language and operating system support (in which case, just scroll down)
- A quick link to our programming overview with lots of code snippets, called the General Phidget Programming Guide
- The API with syntax and function calls for your device - which you can find on the page for your language
- Or, information about your product, which can be found on its product page on our main website or in its user guide.
We try to make our documentation as complete as possible - which means there is a lot of it! Browse around, try the search bar, and if you can't find what you need, please Contact Us.
Operating System Support
These operating system pages provide drivers for using Phidgets. They help you set up your system after following the Getting Started guide for your device. The operating systems links below are also on every Getting Started guide, so if you have not yet read the one for your device, head straight to the user guide for your device where you can find it and follow it. If you are just looking to get your drivers right away you can go to the quick downloads section for the appropriate OS below. If you need to access non-current versions of our drivers you can find them here. You can view the changelog for the drivers here: Driver Changelog.
Phidgets can be run either directly through USB or remotely over a network via the Phidget WebService. Most operating systems below can run Phidgets directly, but a few can only control them over a network. Phidgets can also probably be run on other operating systems that have support for compiling C code, and either a standard network connection for running a Phidget over a network, or a USB host controller for direct control. We don't offer support directly for these additional operating systems, but you may find the installation and setup instructions for Linux useful because compiling and custom toolchains are discussed.
Phidgets can run either directly or over a network on these operating systems:
|Operating System||Drivers and Libraries||Direct Control||Remote Network Control||Supported Version|
|Windows||Quick Downloads||XP SP3 or Newer|
|OS X||Quick Downloads||OS X 10.5 or newer|
|Linux||Quick Downloads||Kernel 2.6 or newer|
|Phidget SBC||Quick Downloads||All versions|
|Android||Quick Downloads||3.1 and newer, with USB port|
|Android||Quick Downloads||X||1.5 to 3.0|
|iOS||Quick Downloads||X||5.1.1 or newer|
|Windows CE||Quick Downloads||5.0 or newer|
We provide a variety of supported languages for using Phidgets. Each language has its own libraries, which may be found on the language pages below, along with code examples and an in-depth API.
Many languages also depend on the core drivers being installed as well. These drivers can be found on the operating system pages above.
Phidgets supports the following languages. If the language you have chosen is not fully supported with examples for all products then there are some resources available for you to fill in the gaps. First we recommend you look at the API which will show you all of the functions you can use. Next, you should look at the code samples that are available in that language. Finally you should look at code samples for your device in other languages. Between those three things you should be able to piece together what you need to be doing, as always, if you run into trouble Contact Us. If you have some flexibility in what language to use, we recommend using a Core Language:
|Language||Libraries||API||Code Samples†||Events||Logic Code||Use via Direct USB*||Phidget WebService||Native Library**||Phidget User Base||OS Support|
|C#||Quick Downloads||All Devices||All Devices|
|C/C++||Quick Downloads||All Devices||All Devices|
|Python||Quick Downloads||All Devices||All Devices|
|Java||Quick Downloads||All Devices||All Devices|
|Visual Basic .NET||Quick Downloads||All Devices||All Devices|
|Visual Basic 6.0||Quick Downloads||All Devices||All Devices|
|Cocoa||Quick Downloads||All Devices||All Devices|
|Android Java||Quick Downloads||All Devices||InterfaceKit Only||X||Some Devices|
|iOS||Quick Downloads||All Devices||InterfaceKit Only||X|
|Applescript||Quick Downloads||All Devices||All Devices|
|AutoIt||Quick Downloads||All Devices||None|
|Ruby||Quick Downloads||All Devices||All Devices|
|Science and Math|
|LabVIEW||Quick Downloads||All Devices||All Devices|
|MATLAB||Quick Downloads||All Devices||Some Devices||X||X|
|Flash AS3||Quick Downloads||All Devices||All Devices|
|Max/MSP||Quick Downloads||All Devices||All Devices|
|Adobe Director||Quick Downloads||All Devices||InterfaceKit Only|
|LiveCode||Quick Downloads||InterfaceKit Only||InterfaceKit Only||X|
|C# (.NET Compact)||Quick Downloads||All Devices||Some Devices|
| Visual Basic
(.NET Compact Framework)
|Quick Downloads||All Devices||None|
|Visual Basic for Apps||Quick Downloads||All Devices||Some Devices|
|Visual Basic Script||Quick Downloads||All Devices||Some Devices|
* A direct USB connection would be plugging the Phidget into a USB port and using it locally. This is the typical way to use a Phidget. However, some platforms (such as the iPhone platform) do not have USB ports and hence can only use a Phidget over a network, via the Phidget WebService.
** Native library support means that the calls you make to a Phidget in this language are in the language as well. If the calls are non-native, the use of Phidgets is through an external library linker, such as callib() in MATLAB, for example. The core Phidget library is written in C, and most other languages use this library as their core, but a 'Native' interface cleanly hides this detail.
† Most languages have code samples for all Phidgets, but some have only some devices (visit the language page to learn which ones), and some only have an Interface Kit example. The Phidget Interface Kit is a common Phidget which provides an interface with analog sensors, digital input, and digital output. So, when we choose which examples to write, the Interface Kit is often at the top of our customer's lists.
Android Honeycomb Version 3.1 or Higher Only
Third Party Support
Some third party companies also offer and support software programs that work with Phidgets boards. Phidgets does not have a certification program and does not make any warranty about these products.
In alphabetical order:
|Company||Product||Runs On||Website||Synopsis||Product Information|
|24U||24U Phidgets Plug-in 2.0||Mac, Windows||Website||24U Phidgets Plug-In lets you connect different kind of phidgets (www.phidgets.com) to your computer's USB port and interact with them directly from FileMaker Pro.|
|DSPRobotics||Flowstone||Windows 2000/XP/Vista/7/Embedded||Website||Graphical Programming Language aimed at real-time Digital Signal Processing.(DSP), Robotics and Embedded applications. FlowStone is a drag and drop environment where you combine high-level and low-level modules to build real time applications.|
|MANIPIL||Visual Domotique||Windows XP/Vista/7||Website||Visual Domotique is a Graphical I/O programming for Windows XP/Vista/7. Various components allow you to draw electrical schema and control panel. No need to know how to program to use this software. Varied uses are possible: Home automation, security, hobby, Control process education... Available in French.|
|PCRBOX||PCR Automation||Windows XP/Vista/7 (32 & 64bit)||Website||PCR Automation is an easy to use software that works immediately without the need for any programming. It interfaces with the 1018, 1070 and 1072. Several interfaces can be opened simultaneously, each in a different window. Each input / output can be customized (label, sensor, offset, units, sensitivity, recording ...). The log files can be automatically sent by E-mail. Users can add their own sensors to the library of thirty Phidgets sensors.|
|PiXCL Automation Technologies||PiXCL Advanced Imaging 10.2||Windows XP/Vista/7||Website||PiXCL is a powerful and easy-to-learn event driven interpreted language for the fast creation of image acquisition, processing and advanced analysis applications. The suite includes a compiler and development studio with context sensitive help and plenty of sample code. V10.1 provides you with the tools to create applications that combine Phidget devices with digital cameras and scanners.|
|SoapBox Automation||SoapBox Snap||Windows XP/Vista/7||Website||SoapBox Snap is a free and open source PC-based automation platform. It includes a ladder logic editor and a “soft” runtime right out of the box.|
|UACh - Universida Austral de Chile||monoBOTICS-icarus||Linux||Website||The monoBOTICS project aims to become an OpenSource Framework, to facilitate the tasks of design, simulation and implementation of solutions for areas of Robotics and Automation, both for people with basic knowledge of programming, as for more advanced developers.|
|Omnipotence Software||ECS (Event Control System)||Windows, Linux||Website||Powerful and flexible, general purpose automation software for commercial and residential applications. Supports simple schedules and English-like scripts for more elaborate logic.|
Legacy languages are languages which we supported in the past; however, we no longer actively develop or support them. We provide this software page information for the limited existing users:
|Microsoft Robotics Studio|
If you have an existing code base in these languages and the legacy status of these languages is a serious inconvenience, please Contact Us.