-
1Step 1
Read this first
The full specification PDF in the Files tab is the authoritative document. Everything below is a build path through it.
Provenance
This is the part a manufacturer's lawyer will look for, so it is stated plainly.
- US provisional application 63/819,460, filed June 6, 2025, titled "Virtual Scroll Wheel Input Device with Adaptive Touch Sensing and Modular Haptic Feedback" — lapsed. No non-provisional was filed. Expired June 6, 2026.
- Open-source publication, August 2025, at multiple online locations including LinkedIn, together with the one-page sell sheet in the gallery. That publication is more than a year old, which under US law bars me from patenting this and makes it prior art against anyone who files after that date.
- Defensive publication: Kavuru, Madhav, "Virtual Scroll Wheel Input Device with Adaptive Touch Sensing and Modular Haptic Feedback", Technical Disclosure Commons, September 8, 2026 — https://www.tdcommons.org/dpubs_series/11653
- No patent rights are asserted by the author, and none will be.
- Full specification, with all claims and the complete method description
- Figure set, including the dimensioned side view and the electrode pattern
- Industrial-design renderings
- The August 2025 sell sheet
Documentation is CC BY 4.0. Hardware is CERN-OHL-S v2. Firmware is MIT.
What is in the Files tab
There is no CAD, PCB, or firmware release yet, because no prototype has been built. That is the open invitation: the geometry, the sensing scheme, the algorithm, and the waveform table are all specified in enough detail to build from, and whoever builds the first one gets to publish the files.
Build path
1. Fabricate the segment. A circular segment no larger than a semicircle, standing up through an opening in the chassis. Reference geometry: 22 mm implied wheel diameter, 17 mm chord, 4.02 mm standing height, roughly 2 mm exposed above the keycaps. The curved outer face is the touch surface. Nothing rotates — it is a rigid, non-bendable part, which is why it should be easier to make than the curved touch panels already mass-produced for phones.
2. Lay out the electrodes. Mutual capacitance, not self-capacitance. One TX electrode running along the length of the arc, RX electrodes perpendicular to it and segmented along it. Use 16 or more RX for 0.5 mm resolution. Space them evenly along the arc so the software mapping stays trivial. One end of each line routes to a dedicated controller pin; the other terminates at the pattern edge. Do not substitute an RX-only self-capacitance strip — it brings ghost touches, worse noise immunity, worse resolution, and less stable response.
3. Mount the actuator. Bond a linear resonant actuator to part of the flat chord face of the segment. A smartwatch-class bar LRA, roughly 12 × 4 × 3.5 mm, is the target class of part.
4. Isolate it. A 1 mm silicone isolator, 50–70 Shore A, under the assembly. This is required in every configuration — it keeps the sensation at the fingertip instead of buzzing the whole palm rest.
5. Wire the front end. A mutual-capacitance trackpad controller drives the matrix. No dedicated microcontroller is needed in a product: the module reports over I²C-HID to the embedded controller or SoC, the same transport a Windows precision touchpad already uses. For a bench prototype, an RP2040 speaking USB HID is the easy path.
6. Implement the tracking loop.
- Init sensor: mutual capacitance, 1 TX, 16+ RX.
- Scan matrix: TX pulse sequence, measure RX, collect raw data.
- Filter noise, subtract baseline, threshold.
- Compute contact centroid (weighted average of activated electrodes) and contact width Δ = Max(RX) − Min(RX).
- Gate: if width is changing faster than a set rate, the patch is growing or shrinking — a press or a release, not a stroke. Report no motion this frame and update the reference position. This step is what kills early-stroke mush.
- Scroll distance = (current centroid − previous centroid) × sensitivity, where sensitivity is calibrated once to compensate the centroid's understatement of finger travel.
- Reject frames below a minimum displacement, to suppress jitter while a finger rests on the arc.
- After 500 ms of continuous contact, enter precision mode at 0.1 mm resolution.
- Fire the LRA with PWM derived from distance and speed.
- Send the HID report.
Vertical only.
7. Load the waveform table.
Parameter
Value
Base frequency
100–200 Hz (LRA resonance)
Detent click
50% duty, 1–2 ms pulses
Free scroll
10–30% duty, continuous sine modulation
Pressure feedback
5–80% duty, proportional to force
Crisp detent waveform
Square, 175 Hz at 50% duty
Inertial scroll waveform
Sine sweep 100 → 200 Hz
Page turn
Burst, 3–5 cycles at 175 Hz
Touch-to-vibration latency
< 20 ms
Detents target roughly 0.1 N·m, free-spin 0.05 N·m. Drive closed-loop: back-EMF sensing to correct PWM in real time, auto-resonance tracking to hold efficiency across temperature and aging.
8. Stop here for a first build. Steps 1–7 are the Core configuration — a real scroll wheel in a 9.5 mm stack. Pressure-to-zoom is firmware only and adds no parts; tilt-to-horizontal adds two components and a vibration-isolation problem, and should wait for a second generation. Both are fully specified in the Details tab.
Note for implementers reading the specification
The specification discloses the leading-edge tracking method in detail. That is deliberate: the disclosure is intentionally broader than the recommendation, so it functions as prior art across both approaches. The centroid method in step 6 above is what I recommend you actually ship, for the reasons given in the Details tab. If you implement leading-edge at all, put it behind a settings toggle rather than in the main path.
Contact
Madhav Kavuru — mkavuru2@gmail.com
Tell me where this is wrong. That is more useful to me than agreement.
Madhav Kavuru
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.