01 PROJECT HAPTIC.PADDLE

01 PROJECT HAPTIC.PADDLE

|

|

02

02

< Force-Feedback Haptic Switch >

< Force-Feedback Haptic Switch >

03

03

_ Spring 2026

_ Spring 2026

_

_

log.begin {


A motorized haptic device that simulates the feel of a physical bistable toggle switch. The paddle is held at one of two angular positions by a motor, and requires the user to apply force past a measurable threshold before it snaps to the opposite side. The resistance builds progressively as the user pushes, then releases all at once, mimicking the tactile snap of a real switch.

The project runs on a Raspberry Pi Pico 2W. The custom 3D printed paddle arm is driven by an MG996R servo through a DRV8833 H-bridge. An AS5600 magnetic encoder tracks paddle angle, a load cell paired with an HX711 24-bit ADC measures fingertip force, and an INA219 current sensor enables closed-loop motor control. A proportional position controller holds the paddle at each end stop, producing a linear spring-like resistance that grows with displacement. When the applied force crosses the threshold, the motor triggers a full-speed snap to the opposite position.

A Pygame frontend renders a live dashboard with a semicircular angle dial and a force bar, fading between light and dark themes each time the switch toggles.

"The lever knows when you mean it."


}

log.begin {


A motorized haptic device that simulates the feel of a physical bistable toggle switch. The paddle is held at one of two angular positions by a motor, and requires the user to apply force past a measurable threshold before it snaps to the opposite side. The resistance builds progressively as the user pushes, then releases all at once, mimicking the tactile snap of a real switch.

The project runs on a Raspberry Pi Pico 2W. The custom 3D printed paddle arm is driven by an MG996R servo through a DRV8833 H-bridge. An AS5600 magnetic encoder tracks paddle angle, a load cell paired with an HX711 24-bit ADC measures fingertip force, and an INA219 current sensor enables closed-loop motor control. A proportional position controller holds the paddle at each end stop, producing a linear spring-like resistance that grows with displacement. When the applied force crosses the threshold, the motor triggers a full-speed snap to the opposite position.

A Pygame frontend renders a live dashboard with a semicircular angle dial and a force bar, fading between light and dark themes each time the switch toggles.

"The lever knows when you mean it."


}

< view log >