Products for USB Sensing and Control
Products for USB Sensing and Control

Phidget FrequencyCounter

ID: 1054_0

Measures the frequency of a signal and powers small devices like Hall Effect sensors, flow rate sensors, and tachometers.


Replaced by the 1054_0B - Phidget FrequencyCounter. It is the exact same device, but you can now choose which USB cable you want to have included.

The 1054 - PhidgetFrequencyCounter is designed to count events from an analog signal over time and calculate a frequency from it. The product can count a logic level or signal centered around zero volts. Signals with a different ground can be counted, provided they are within the common mode range (±10V).

The Frequency Counter can also power small devices, such as Hall effect, flow rate sensors, tachometers, and other sensors.

The PhidgetFrequencyCounter contains two channels to sense two different inputs. Each channel has two different circuits to sense for logic level-frequencies or zero-centered frequencies. The measurable frequency is accurate to 0.25% up to 1MHz. The Frequency Counter may measure frequencies past 1 Mhz, but the input voltage specifications will not hold.

The PhidgetFrequencyCounter can measure frequencies down to ~ 0.01Hz. However the response time of these measurements is directly related to the frequency, thus it could take 1 or 2 periods(100-200s) to detect the input frequency.

Comes Packaged with

Product Specifications

FrequencyCounter Input
API Object Name FrequencyCounter
Controlled By USB
Number of Channels 2
Frequency Error Max 0.25 %
Input Frequency Max 1 MHz
Frequency Input Voltage Max ± 20 V DC
Amplitude Min (Zero-Centered Input) 110 mV DC
Hysteresis (Zero-Centered Input) ± 30 mV DC
Ground Offset Min -6.3 V DC
Ground Offset Max 10.3 V DC
Low Voltage Max (False) 800 mV DC
High Voltage Min (True) 3 V DC
Electrical Properties
USB Voltage Min 4.8 V DC
USB Voltage Max 5.3 V DC
USB Speed Full Speed
Current Consumption Max 42 mA
Available External Current 450 mA
Input Impedance (30pF) 332 kΩ
Physical Properties
Recommended Wire Size 16 - 26 AWG
Operating Temperature Min 0 °C
Operating Temperature Max 70 °C
Customs Information
Canadian HS Export Code 8471.80.00
American HTS Import Code 8471.80.40.00
Country of Origin CN (China)

Software Objects

Channel NameAPIChannel
Frequency Input FrequencyCounter 0 - 1


Back Forward
Print this API


Code Samples


FrequencyCounter Visual Studio GUI C# Windows Download
FrequencyCounter Java Android Download
FrequencyCounter JavaScript Browser Download
FrequencyCounter Objective-C macOS Download
FrequencyCounter Swift macOS Download
FrequencyCounter Swift iOS Download
FrequencyCounter Visual Basic .NET Windows Download
FrequencyCounter Max/MSP Multiple Download

Product History

Date Board Revision Device Version Comment
May 20110100Product Release
May 20110101getLabelString fixed for labels longer than 7 characters

Getting Started

Welcome to the 1054 user guide! In order to get started, make sure you have the following hardware on hand:

Next, you will need to connect the pieces:

1054 0 Connecting The Hardware.jpg
  1. Connect your pulse output device to the Frequency Counter Phidget. Connect the power wire to 5V, the ground wire to G, and the positive and negative data lines to '+' and '-'. If there is only one data line, connect it to '+' if it's a PNP sensor, and '-' if it's NPN.
  2. Connect the 1054 to your computer using the USB cable.

Now that you have everything together, let's start using the 1054!

Using the 1054

Phidget Control Panel

In order to demonstrate the functionality of the 1054, the Phidget Control Panel running on a Windows machine will be used.

The Phidget Control Panel is available for use on both macOS and Windows machines.


To open the Phidget Control Panel on Windows, find the Ph.jpg icon in the taskbar. If it is not there, open up the start menu and search for Phidget Control Panel

Windows PhidgetTaskbar.PNG


To open the Phidget Control Panel on macOS, open Finder and navigate to the Phidget Control Panel in the Applications list. Double click on the Ph.jpg icon to bring up the Phidget Control Panel.

For more information, take a look at the getting started guide for your operating system:

Linux users can follow the getting started with Linux guide and continue reading here for more information about the 1054.

First Look

After plugging the 1054 into your computer and opening the Phidget Control Panel, you will see something like this:

1054 Panel.jpg

The Phidget Control Panel will list all connected Phidgets and associated objects, as well as the following information:

  • Serial number: allows you to differentiate between similar Phidgets.
  • Channel: allows you to differentiate between similar objects on a Phidget.
  • Version number: corresponds to the firmware version your Phidget is running. If your Phidget is listed in red, your firmware is out of date. Update the firmware by double-clicking the entry.

The Phidget Control Panel can also be used to test your device. Double-clicking on an object will open an example.

Frequency Counter

Double-click on the Frequency Counter object in order to run the example:

1054 FrequencyCounter Example.jpg

General information about the selected object will be displayed at the top of the window. You can also experiment with the following functionality:

  • Frequency: the average frequency calculated from the pulses in the event so far.
  • Total Count: the total number of pulses since opening the example.
  • Total Time: the total time in milliseconds that has elapsed since opening this example.
  • Enter a cutoff frequency in the Frequency Cutoff(Hz) textbox and the 1054 will ignore frequencies below the specified value.
  • Modify the data interval value by dragging the slider. For more information on this setting, see the data interval page.
  • Enter a filter type from the Filter Type drop-down menu. A Logic Level signal goes from alternates between 0 and VCC. A Zero Crossing signal goes from -VCC to VCC.
  • Toggle the Enabled checkbox to enable/disable the 1054.

Finding The Addressing Information

Before you can access the device in your own code, and from our examples, you'll need to take note of the addressing parameters for your Phidget. These will indicate how the Phidget is physically connected to your application. For simplicity, these parameters can be found by clicking the button at the top of the Control Panel example for that Phidget.

The locate Phidget button is found in the device information box

In the Addressing Information window, the section above the line displays information you will need to connect to your Phidget from any application. In particular, note the Channel Class field as this will be the API you will need to use with your Phidget, and the type of example you should use to get started with it. The section below the line provides information about the network the Phidget is connected on if it is attached remotely. Keep track of these parameters moving forward, as you will need them once you start running our examples or your own code.

All the information you need to address your Phidget

Using Your Own Program

You are now ready to start writing your own code for the device. The best way to do that is to start from our Code Samples.

Select your programming language of choice from the drop-down list to get an example for your device. You can use the options provided to further customize the example to best suit your needs.

Code Sample Choose Language.png

Once you have your example, you will need to follow the instructions on the page for your programming language to get it running. To find these instructions, select your programming language from the Programming Languages page.

Technical Details


The 1054 contains two channels to sense two different inputs. Each channel has two different circuits to sense for logic level-frequencies or zero-centered frequencies. The measurable frequency is accurate to 0.25% up to 1MHz. The 1054 may measure frequencies past 1MHz, but the input voltage specifications will not hold. The 1054 can measure frequencies down to ~0.01Hz. However the response time of these measurements is directly related to the frequency, thus it could take 1 or 2 periods(100-200s) to detect the input frequency.

Logic-Level Frequencies

The logic-level sensing circuit has a hysteresis range from 0.9V to 2.4V. This will allow the circuit to count both 3.3V and 5V logic levels. In addition to logic-level signals, this will also accept the pulses from sensors with open collector outputs. When the input signals are either 3.3V or 5V, the maximum sensed frequency is 1.5MHz. Most digital sensors that are powered from a signal positive power supply will output a logic-level frequency.

Zero-Centered Frequencies

The zero-centered sensing circuit can be used for input signals where you want to count as it crosses zero volts. A hysteresis of 30mVpp filters noise. At maximum frequency (1MHz), a signal of 400mVPP is required for reliable counting. A common application that uses a zero centered frequency output is a simple magnetic tachometer, which produces a sine wave around 0 volts.

Differential Inputs

The 1054 uses differential inputs, that is, the voltage being compared is the difference between the + and - inputs. If your application has a slightly different ground from your USB ground, the common mode rejection in the 1054 will handle small differences in ground. For many applications, the signal being measured is single ended, that is, your sensor outputs only one signal, and you can directly connect the ground of the sensor to the ground of the 1054. In this case, ensure the - input is tied to ground. Never allow either input to be left unconnected.

Output Voltage

USB Voltage is passed directly to the +5V terminal on the green blocks.

What to do Next

  • Programming Languages - Find your preferred programming language here and learn how to write your own code with Phidgets!
  • Phidget Programming Basics - Once you have set up Phidgets to work with your programming environment, we recommend you read our page on to learn the fundamentals of programming with Phidgets.

USB Isolator

You can use a USB Isolator to increase your system stability by eliminating problems caused by ground voltage differences between your computer and the device.

Product Electrical Properties
Part Number Price Isolation Voltage (DC)
USB Isolator
$58.30 1 kV DC

USB Cables

Use a USB cable to connect this Phidget to your computer. We have a number of different lengths available, although the maximum length of a USB cable is 5 meters due to limitations in the timing protocol. For longer distances, we recommend that you use a Single Board Computer to control the Phidget remotely.

Product Physical Properties
Part Number Price Connector A Connector B Cable Length
Mini-USB Cable 28cm 24AWG
$3.00 USB Type A USB Mini-B 280 mm
Mini-USB Cable 180cm 24AWG
$4.00 USB Type A USB Mini-B 1.8 m
Mini-USB Cable 450cm 20AWG
$12.00 USB Type A USB Mini-B 4.5 m
Mini-USB Cable 60cm 24AWG
$3.50 USB Type A USB Mini-B 600 mm
Mini-USB Cable 120cm 24AWG
$4.00 USB Type A USB Mini-B 1.2 m
Mini-USB Cable 28cm Right Angle
$3.50 USB Type A USB Mini-B (90 degree) 280 mm
Mini-USB Cable 83cm Right Angle
$4.50 USB Type A USB Mini-B (90 degree) 830 mm

Here's a list of products that can count pulse signals and measure frequency:

Product FrequencyCounter Input
Part Number Price Number of Channels Input Frequency Max Frequency Error Max
Versatile Input Phidget
$20.00 1 ** 1 MHz 1 %