Actions
Frequency Input » History » Revision 1
Revision 1/2
| Next »
Adam Klama, 06/21/2026 02:23 PM
Frequency Input# Frequency Input¶
Overview¶
A Frequency Input reads a pulsing signal on a hardware pin and, depending on
its mode, reports the signal's:
- Frequency — pulses per second;
- Speed / RPM — frequency scaled by the tooth count of the wheel/sensor;
- Duty — the on/off ratio of the signal;
- Time — the pulse/period time.
Use it for crank/shaft speed sensors (including missing-tooth wheels), wheel-speed
sensors, flow meters, and any frequency- or duty-output sensor.
This input also covers what older configs called the separate Frequency and
Duty inputs — they are folded in here as modes.
Prerequisites & hardware¶
- A sensor that produces a pulse train on the pin (Hall, VR via a conditioner,
optical, etc.), wired to the pin with a common ground. - For speed/RPM, know the tooth count (pulses per revolution).
- Pull-up support is hardware dependent — only some pins provide it. Where it
is absent, condition the signal externally.
Add it in the app¶
- Add a new input and choose Frequency Input as the type.
- Select the pin and give it a clear alias (e.g.
Crank Speed). - Choose the mode (Frequency, Duty or Time) and, for speed, set the
tooth count. - Set the signal mode and detection threshold voltages to match the sensor.
Settings reference¶
Schema:
config/PhonicWheelConfiguration.proto.
| Setting | Meaning | Unit | Range / values | Notes |
|---|---|---|---|---|
| Mode | What the input reports | — |
Frequency, Duty, Time
|
Frequency (with tooth count) gives speed/RPM; Duty = on/off ratio; Time = pulse/period time. |
| Tooth count | Pulses per revolution | teeth | uint32 | Scales frequency into speed/RPM. |
| Missing tooth count | Number of missing teeth on the wheel | teeth | uint32 | For missing-tooth crank wheels (e.g. 60-2 → 2). 0 for an even wheel. |
| Signal mode | How the pulse edges are interpreted | — |
Legacy, Positive pulse, Negative pulse, Quadrature, Quadrature rising edge, Quadrature falling edge
|
Quadrature modes use a two-channel sensor and give direction; pulse modes count single-channel edges. |
| Median filter length | Median filter window | samples | int | Rejects spikes; larger = smoother but slower to respond. |
| Pull mode | Direction of the input pull | — |
Up, Down
|
Sets the idle level for the detection comparator. |
| Enable pull-ups | Enable the pin pull-up(s) | — | on / off | Hardware dependent — only on pins that provide a pull-up. |
| Pull-up voltage | Adjustable pull-up reference | mV | uint32 | The pull-up rail used by the detection thresholds (adjustable-pull-up hardware). |
| Reference voltage / Hi / Lo | Detection comparator thresholds | mV | uint32 | The switching thresholds that turn the analog signal into clean pulses (with hysteresis between Hi and Lo). |
| Fault voltage Hi / Lo | Fault thresholds | mV | uint32 | Readings beyond these flag an open/short or failed sensor. |
| Input config | Whether to (re)configure the pin hardware | — |
Configure, Skip configuration
|
Skip configuration leaves the pin hardware as-is (advanced). |
Common settings¶
Frequency Input also uses the shared settings — alias and pin. See
Common IO Settings.
Example — crank speed from a 60-2 wheel¶
- Type Frequency Input, alias
Crank Speed, on the sensor's pin. -
Mode
Frequency, Tooth count60, Missing tooth count2. -
Signal mode
Positive pulse(single-channel Hall). - Set Reference Hi/Lo thresholds with enough hysteresis to reject noise.
- Median filter length a few samples to suppress spikes at speed.
Troubleshooting¶
-
No reading / drops out at speed: check the threshold voltages and add
median filtering; verify the sensor type matches the signal mode. -
Speed/RPM reads wrong by a factor: the tooth count (or missing-tooth
count) doesn't match the wheel. -
Counts in the wrong direction: use a Quadrature signal mode with a
two-channel sensor. - Reads a fault: the level is beyond Fault voltage Hi/Lo — check wiring.
Related¶
- Digital Input — single on/off contact.
- Counter Input — count edges/events from other inputs.
- Scaling & Maps
Updated by Adam Klama 1 day ago · 2 revisions