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.
- Added EPHIDGET_NOTFOUND exception to Dictionary.getKey() for when the key is not found.
- Added exceptions back into the Java library - they have been missing since 22.214.171.12421015 release.
- Updates to Matlab support
- Works properly on Matlab 7+, on Windows, Mac, Linux without needing changes to .m files.
- Windows-only release
- Encoder Index event added to C and .NET libraries
- Webservice version: 1.0.10
- Support for 1024, 1032
- Support for 1024, 1032
- fixed bug where if one half of a composite device is open, and PHIDGET_USB_ERROR_FLAG gets set, the device may never re-attach.
- Windows-only release
- Support for new pressure/light sensors in example.
- Windows-only release
- Improved firmware upgrading in control panel - it was giving some false-errors on some machines.
- Fixed bug where 1065 could fail to attach when opened over webservice
- Fixed bug where close() could deadlock on Phidgets opened over the webservice
- Changed LED64 LED Brightness from int to double
- this may cause issues when controlling the LED64 over the webservice and library/webservice are not the same version
- the old setDiscreteLED call will remain, deprecated, with an int argument for compatibility.
- Linux-Only Release
- Fixed a bug where opening a device in two program at once would cause an attach-detach cycle as they fight each other for control.
- Mac-Only Release
- Added signing of the Mac installer, so Mountain Lion (OS X 10.8) doesn't refuse to run it.
- Windows-only release
- Fixed a bug that caused java to crash on events introduced in 126.96.36.19920612
- Windows-only release
- Fixed another bug that will cause Unity3D to hang on exit after having used Phidgets.
- Windows-only release
- Fixed a bug that will cause Unity3D to hang on exit after having used Phidgets.
- Windows-only release
- Fixed PhidgetIR sendRawData bug in .NET on 64-bit machines.
- Linux-only release
- Fixed a bug that causes a segfault with libusb-1.0 under 64-bit Linux.
- Mac/Linux-only release
- Fixes a setLabel bug introduced in 188.8.131.5220503
- Fixed some spelling mistakes
- Moved to libusb-1.0
- This resolves a bug where having a webcam plugged in caused a memory leak in the webservice.
- Fixed bug with advanced servo where setting acceleration to accelerationMax would cause an exception for some servo types
- Fixed bug with RFID Reader on OS X and Linux, as well as .NET over the webservice
- Fixed bug that could cause the Java Phidget Manager to crash during garbage collection.
- Fixed RFID Reader bug that caused tag event to not get thrown in .NET Applications
- Changed compass bearing calculations in spatial C# example
- Added support for 1061 v300+
- Fixed a bug where the firmware version could be mis-reported over Bonjour
- Fixed a bug in AppleScript where closing a Phidget opened via label would give a 'Connection Invalid' error.
- Fixed a bug where the webservice may fail to start on Linux systems that don't support IPv6 (ie. SBC2).
- Fixed issue where ratiometric state on newest interfacekit wouldn't be read back properly if it was false during attach.
- Fixed webservice issue where ratiometric state would not be reported properly for newest interfacekits
- Increased the number of overrun errors ignored during initial attach for InterfaceKit.
- Fixed an issue with the iPhone library and header
- fixed various other webservice stability/performance/memory leak bugs
- Faster connection to SBC-connected Phidgets from Mac OS
- Don't report packetlost or overrun errors that happen during early initialization - these are just noise.
- Fixed a bug in the webservice tree removal function that could cause memory leaks.
- Fixed bug where Webservice would crash on Linux if the chosen serverID was already under use on the network
- Stopped sending hardware Error Events before the Attach event - they are now queued up and sent after Attach
- Fixed a crash in the Phidget Control Panel
- Added ability to remove dictionary keys from a key change listener
- Reduced the number of false 'pending command not finished' error events on Close()
- Fixed a webservice bug where exceptions/false attach events could occur when close() is called soon after open
- Fixed bug where closing a PhidgetRFID soon after attach could cause a crash
- Fixed webservice but on MacOS where client could exit with SIG_PIPE error
- Fixed webservice bug where the server would sometimes exit(1) after many connect/disconnect cycles
- Fixed webservice bug where client could deadlock during close()
- Fixed webservice bug where opening a single remote phidget multiple times from the same application would fail
- Fixed a webservice bug where sockets weren't being closed properly sometimes
- Fixed a webservice bug where pre-attach error events wouldn't get through
- Fixed a bug where the webservice running on Linux would stop responding to clients after ~300 connect/disconnect cycles
- Fixed bug where a Phidget would become inaccessible until the app is restarted if a thread creation failed
- Fixed webservice bug where connect is slow on Windows when multiple clients are running simultaneously
- Fixed webservice bug where authentication would fail on a valid password
- Fixed webservice bug where attach may never happen, and would require a close()/open()
- Added support for new servo types to all libraries
- Fixed min/max position/velocity causing invalid arg exception on servo/advservo
- IPv6 support on MacOS
- Fixed some memory leaks
- Fixed hostname lookup issue on Mac OS with Back To My Mac enabled.
- Fixed Applescript bugs and released examples
- Added openLabel to .NET, Java, COM
- Setting change trigger to 0 on interfacekit will not set event mode.
- Previously setting change trigger to 0 after setting data rate would supersede the data rate setting, which is probably unexpected.
184.108.40.20610630 - MacOS Only
- handle USB bug introduced in MacOS 10.6.8
- Added error event when trying to open Phidgets with an unsupported version
220.127.116.1110614 - Windows Only
- Fixed bug in C# Spatial example
- Added support for negative gains in 1056
18.104.22.16810601 - MacOS Only
- Fixed AppleScript issues
- Fixed AS3.0 library (Flash/Flex) - wouldn't connect to webservice as of last release
- Fixed bug where webservice doesn't release a closed Phidget
- Fixed bug where devices that don't support label didn't show up on MacOS
- Fixed iPhone library issues
- AppleScript support added
- fixed problem with Spatial in .NET on 64-bit Windows
- Added remote setLabel to mac preference pane.
- fixed a bug where label characters 7,8,9 would be read back corrupted on certain devices.
- labels >7 characters that exhibit this bug will now be truncated to 7 characters when being read back
- call setLabel again using this library or newer to support 10 character labels.
- To maintain compatibility with older library versions, limit labels to <=7 characters on these devices.
- fixed bug on MacOS where serial number and/or label strings could be read wrong.
- better support for recovering misbehaving devices in Linux
- fixed a deadlock on linux when Avahi is installed but not running
- clear list of attached devices when closing remote manager
- Added support for Unicode labels
- To maintain compatibility with older library versions, limit labels to ASCII.
- Added open by label
- Webservice protocol version up to 1.0.9 (for open by label)
- Made opening multiple device is one application faster.
- TextLCD changes:
- cursor is disabled while writing to the display or setting a custom character to prevent display artifacts
- cursor is disabled when a full line is written so it doesn't go to the start of another line
- 1204 should be stable
- setDisplayCharacter supports 0x00-0xff
- stopped property reflected more accurately in the C# stepper example
- Added error events to mac examples
22.214.171.12410329 - Windows only
- Fixed problem with control panel encoder example where enable wouldn't work
- Fixed issue with SpatialData, GPSPositionChange, PHChange and WeightChange events in Labview 64-bit
- Fixed Phidget Control Panel memory leak when Bonjour in installed but not running
- Fixed current sense formula on 1061_0 v200
- Fixed bug in webservice protocol while using the PhidgetAdvancedServo
- Fixed bug in old PhidgetTemperatureSensor
- Fixed bug in webservice protocol while using the PhidgetServo
- Fixed some Labview bugs
- Added some Java and VB.NET examples
- Full Support for 1002, 1011, 1040, 1046, 1054, 1065, 1204
- New webservice version - 1.0.8
- Support for new devices
- Support for error events
- fixed crash on close of remote Phidget on MacOS
- C# ifkit example bugfix - crashed on 1015/1016
- webservice improvements
- Switch to IP address for SBC config in browser
- Faster IP lookup for SBCs in control panel
126.96.36.19901222 / 188.8.131.5201223
- fixed getServerID on Linux
- removed report ack
- this was causing some bad side effects
- manual .local lookups on Windows
- much faster then letting Windows do it itself
- Support for new Labview library
- Fixed PhidgetIR bug where library would crash if repeat code is longer then IR_MAX_REPEAT_LENGTH
- Decreased Phidget Webservice event latency on Windows
- Preliminary support for 1002, 1011, 1040, 1045, 1046, 1054, 1065, 1204 (C, .NET)
- Webservice version updated to 1.0.7
- support for 1045, 1011, 1204
- Fixed a bug where webservice connections could be unexpectedly lost
- Bugfix: couldn't set interfacekit data rate over webservice.
- Fixed some memory leaks in the Mac library
- Fixed bug where blocking for >2 seconds in an events handler when opening remotely could cause a crash.
- Windows only release
- fixed setLabel in WindowsCE
- fixed getHashCode in .NET library - needed for working with Phidgets in Labview via .NET
- Linux only release - autotools updates
- call ldconfig automatically
- remove old phidget21 library (pre-autotools) when installing new one.
- Linux only release - added version.sh for autoreconf
- Linux only release - added udev/hotplug files
- Linux only release
- Transitioned to autotools in linux for phidget21 / webservice
- phidget21 library and webservice are now separate downloads
- full support for PhidgetSpatial and PhidgetIR in all libraries
- fixed 1031 not attaching in AS3.0
- Better error messages in JNI
- Updated error codes, device ID/Class lists in Java, Flash, COM, etc.
- Fixed TemperatureSensor version 200,201,202 bug - ambient sensor would not report negative temperatures.
- Revised temperaturesensor API to report tempMin/tempMax and errors more accurately.
- Added initial events for encoder digital inputs
- full support for 1047
- Added new device support to WindowsCE
- Updated mac examples for 1047, 1048
- Windows only Release
- Added 1131 and 1132 to InterfaceKit example in MSI
- limit data rate maximum to 16ms over the webservice for devices that expose dataRate (InterfaceKit, Spatial)
- fixed bug where TextLCD 8/8/8 would stay in Bonjour list after webservice is shutdown
- set/get Brightness for 1203_2
- Support 1048 in C# example
- webservice version incremented to 1.0.6
- TextLCD set/get brightness
- PhidgetIR support
- PhidgetSpatial support
- 1047 support (enable, index)
- Support for 1018_2 (dataRate)
- Webservice version incremented to 1.0.5
- Updated InterfaceKit example with new sensors
- make Windows connect cancelable
- make pending zeroconf lookups cancelable during close
- Mac only release
- Added WillSleep and Wakeup events to give user control of Phidgets immediately before and after a system sleep (MacOS Only).
- Windows only release
- Some of the examples were being built using an out of date .NET library
- MaxMSP fix - 184.108.40.20600126 introduced a bug for some Phidgets where openremote/open by serial didn't work and MaxMSP would sometimes crash.
- No code changes to any of the other libraries.
- stopped property changes trigger events over webservice so they are noticed.
- more compatible with how local open works
- added 5 new servos
- fixed bug where remote close would not set detached so a subsequent open would not always connect.
- handle UninitializeZeroconf better - shut down thread before closing handles, fixes hang on SBC
- fixed bug on Mac where detaching 2 or more Phidgets at the same time caused a crash
- fixed close blocking because of a pending connect (mac, linux)
- Final support for 1031 in all libraries.
- Implemented initial events in Flash
- Flash behaviour should now be identical to C library local and remote.
- Fix RFID issue where close could cause crash
- increment webservice version to 1.0.4
- fixed RFID remote open
- Flash would never get an attach event if the reader had been previously opened
- Initial tag event would not be fired when a tag was present and the antenna was enabled prior to open
- fixed openRemote failing on Mac
- fixed deadlock in webservice which could be hit by opening/closing a device over and over again.
- fixed bug in stepper, which caused seg fault on SBC on position change events.
- added network open support in Max/MSP
- Increased network performance for Linux/MacOS
- Added five servo types
- Fixed busy loop in Linux openRemote
- JNI Library relocated to /Library/Java/Extensions on MacOS
- Heartbeat now works on Linux as well (had to make sockets non-blocking)
- Added heartbeat to webservice (client side)
- Better detects network failures by using active polling timeouts
- Fixed 0/8/8 over webservice
- Fixed 1052 counting issue on 1070 (-1 reported as 255)
- Fixed issue where Phidget21 would try to reinstall from a limited user account or when the Control Panel was disabled.
- 64-bit kernel support in Snow Leopard
- Support for PhidgetSBC (1070)
- zeroconf can handle starting up before the mdns daemon, and will keep trying to connect.
- fixed 1066 not showing up on Mac
- added advanced servo example to mac pref pane
- implemented proper error handling in COM
- default behavious remains the same, enable proper error handling with 'EnableVerboseErrors'
- implemented error events in Java
- Updated webservice protocol version to 1.0.3
- Fixed stepper under AS3.0
- added setServoType, getServoType, setServoParameters to PhidgetServo and PhidgetAdvancedServo
- possible race condition fixed in webservice (pdictclient.c:907)
220.127.116.1190902 (mac only release)
- Support MacOSX 10.6, drop support for 10.3.9, require 10.4 or newer
- Fully 64-bit compliant, library supports ppc, i386, x86_64
- Added 1049 support
- Fixed RFID tag events over webservice
- Added 1051_2 support
- Fixed various small initialization issues - stepper, adv servo, rfid
- Added 32-bit library install to 64-bit installer
- VB6.0, etc. need the 32-bit COM library on 64-bit windows
- Added DeviceID to zeroconf
- fixed RFID.LastTag in .NET
- Changed the error codes returned by error events; error events now have their own set of error codes rather then sharing the function return codes.
- Added support for 1047, 1048
- Added error event codes rather then trying to reuse the EPHIDGET return codes.
- fixed TextLCD issue where display could get corrupted during a detach/attach
- made mac more reliable on attach
- more error logging on mac
- fixed RFID not attaching via webservice if a tag is present.
- bugfix related to double free on detach event.
- Implemented getKey
- Added MIPS II support to Windows CE
- Added ActiveX interface to COM library
- Added stepper and advancedServo to Flex .swc library
- added PhidgetIR prototype support to C library
- properly handles sleeping on OSX
- fixed some webservice field initializations in Flash and C
- fixed security exceptions in Phidget Control Panel under Vista
- added Phidget Control Panel to start menu
18.104.22.16890318 (Examples/AS3.0 only release)
- Fixed AdvancedServo in Flash - wouldn't attach
- Phidget Control Panel properly supports Vista UAC and Limited user accounts in XP, etc.
- Added 64-bit release of Phidget21.msi for Windows
- added 1064, 1059 to WindowsCE
- fixed opening 1051 over webservice
- fixed opening 1015/1016 over webservice broken in last release
- Advanced servo bugfix: stopped would stop being true if min/max was set to exclude current position.
- linux USB improvements when many Phidgets are attached and opened at once.
- 1031 support in phidget21, webservice, .NET - hidden until product release
- unknown timechange == PUNK_INT in encoder position change event
- 1st position change event
- > 30 seconds time change
- AS3 updates
- updated to 1.0.2 webservice
- encoder position change events report relative change rather then absolute position
- encoder adds getTimeChange function for timing encoder changes
- webservice updated to 1.0.2
- Authorization is asynchronous
- Doesn't match the old version checking, so errors will not be nice when trying to connect to an old webservice
- Sends out all initial data, so it's just like opening locally
- supports interfacekit Raw sensor value
- supports labels on remoteIP managers
- avahi bugfix
- webservice more stable against forcefully closed clients
- closing a network Phidget won't block - ever.
- no longer using quit, just closing the socket
- added libavahi-client.so.3 reference to linux library.
- Fixed bug with opening one phidget with serial and no serial at the same time over the webservice
- Phidget Control Panel stability improvements
- added CPhidgetSBC_getHostname
- advanced servo 1 motor current sense equation - support should now be complete
- webservice and network code bugfixes - crash / deadlock during close, problems with concurrent connections, etc.
- fixed close on remote and remoteIP managers
- name of RFID changed from "Phidget RFID 4-output" to "Phidget RFID 2-output" - updated anything referencing old name.
- added advanced servo and stepper examples to VB6.0, VB.NET and C
- added deviceClass and deviceID
- updated Mac examples
- webservice protocol version enforcement
- internal fix/rework of device id's etc.
- Fixed memory leaks in webservice and phidget21 network code.
- Dictionary and network stability improvements.
- duplicate calls to open or close are now silently ignored.
- Old TextLCD 0/8/8's can now have both halves open at the same time on Windows
- fixed bug with composite devices on linux
- fixed manager on linux to better deal with unique devices
- Updated Delphi files
- TextLCD can display 0x80-0xFF characters from Java
- getAttachedDevices works for mdns managers
- fixed a deadlock in the webservice
- better network error handling / password support for windows C# examples
- waitForAttachment will return EPHIDGET_CLOSED if the handle is closed while it is waiting.
- added EPHIDGET_CLOSED
- joining central threads checks whether they are trying to be joined by themselves first (avoid deadlocks).
- changed context of error event to be free from locks (can call close, open, etc. from them).
- zeroconf threads exit cleanly on last _close (apple zeroconf)
- Added advanced servo and stepper to Max
22.214.171.12480811 (mac only release)
- Fixed manager on Mac (wasn't working at all since 126.96.36.19980808)
- added CPhidgetSBC and CPhidgetSBCManager to the c library - these interfaces are hidden from users and meant to be used internally (for now).
- CPhidgetManager_open no longer blocks to send out initial attach events. These initial events are sent from the CentralThread context like all other attach events.
- fixed CThread_wait_on_event on Linux
- added CPhidgetGeneric interface for prototyping to C, .NET libraries. product ID is 0x99. These are only visible in debug releases, only to be used internally.
- udev rules fixed for product IDs with alpha-hex values
- blocking in an attach event does not block calls to open anymore
- RFID tag event handlers can now handle blocking - tag lost is timed after the tag handler exits.
- Flex .swc library was out of sync
- fixed CPhidgetManager_getAttachedDevices for network managers
- Added CPhidgetManager_freeAttachedDevicesArray
- Max/MSP RFID fixed
- 0/0/8 and advanced servo added to CE
- fixed flash policy file server in webservice
- webservice with password and asynchronous together work now
- phidget21.h -> phidget21int.h so as not to be confused with generated phidget21.h
- some changes to Makefile fro crosscompiling
- no more vbscript in msi
- removed long long from COM - not supported by VB6.0
- added LastTag to RFID in .NET
- support Mac OS X 10.3.9 again
- Rev up to 2.1.4
- finalize Phidget Stepper API - Phidget Stepper requires 2.1.4 as a minimum
- fixed serverConnect and serverDisconnect handlers for manager and dictionary in COM
- PhidgetStepper and PhidgetAdvancedServo
- MotorPosition -> Position
- MotorOn -> Engaged
- MotorStopped -> Stopped
- PhidgetStepper and PhidgetAdvancedServo
- Count functions
- Num functions
- Added ability to deprecate funcitons in the C library - compiler will issue a warning when they are used.
- added names to some arguments in phidget21.h
- fixes to the webservice for initial state stuff - now it behaves almost like non-webservice, with guaranteed initial events, but we don't guarantee initial state in the attach event yet. Min/Max, Num motors, inputs, etc. are all guaranteed in the attach handler.
- Finalized support for Phidget Stepper
- Fixed windows BUG - Device Type was showing up wrong
- CPhidgetStepper_getPosition -> CPhidgetStepper_getCurrentPosition
- changes to API
- CPhidgetStepper_setMotorPosition -> CPhidgetStepper_setTargetMotorPosition
- added CPhidgetStepper_getTargetMotorPosition
- Stepper MotorSpeed -> Velocity
- Stepper and AdvancedServo MaxVelocity -> VelocityLimit
- add waitForAttachment to COM
- COM getbool (not indexed) will now return FALSE on false (rather then always returning true)
- fixed write thread timeouts - was setting attached after starting write thread so write thread would see a detached device and exit immediately
- changed long long to __int64, to be happy in borland C++
- removed CPhidgetStepper_setVelocity
- added CPhidgetStepper_setMaxVelocity, CPhidgetStepper_getMaxVelocity
- Added new functions to Flash API
- Added new functions to Webservice Protocol
- Added new functions to COM Library
- Added new functions to Java Library
- All device fiels in C library cleaned up and made consistent
- Open in windows is exclusive - this needs to be tested for stability
- No data will be returned / accepted if it lies outside of max/min range
- if a data value is unknown, user variable is set to PUNK_INT, PUNK_DBL, or PUNK_BOOL, and return value is EPHIDGET_UNKNOWNVAL
- Proper Device initializations on Attach:
- triggers are set to defaults on attach
- device state is read in and preserved on attach
- during attach event, all sensor data, etc. is provided if available
- no data events until after the attach event returns
- everything initialized by the time waitForAttachment returns
- after attach event returns, a full set of initial state data events are thrown
- .NET collections are readonly, and never NULL (but empty when phidget detached)
- .NET callbacks no longer catch and hide all exceptions
- make sure to use try/catch blocks especially in Attach when accessing properties that may not be initialized.
- added min/max functions:
- Added functions:
- Removed functions:
- Ambient sensor is accessed with it's own function
- first thermocouple is Index 0 everywhere
- no ambient sensor events
- getServerID is implemented
- changed the internal network structure (added CPhidgetRemote)
- reworked the USB code (mostly on Windows)
- Better handles closing, ESD events, timeouts
- fixed issues with Encoder, RFID stopping reading after a certain time.
- added USB error flag
- openRemote functions have been implemented
- these require bonjour (mac / windows) or avahi (linux) to be installed on both the client and server
- if they are not, you get EPHIDGET_UNSUPPORTED when you call them
- openRemoteIP functions are asynchronous and persistent
- include cphidgetconstants.h in phidget21.h for users
- start of chagelog