Haptic Dial on FPGA
- Project Type
- FPGA, RTL Logic, Electronics
- Year
- 2026
A motor controller built entirely on an FPGA to drive a haptic dial with fully programmable detents and force feedback.
01
Clicks and force you can program
I built a motor controller entirely on an FPGA to drive a haptic dial, so the detents you feel as it turns and the force pushing back on your fingers are all things I can program. Instead of running the control loop as code on a processor, every part of it is RTL, with the field oriented control pipelined in hardware so the effects keep up in real time.
The video shows the motor’s torque and phase vectors displayed in real time, drawn by the FPGA itself over HDMI.
02
One pipeline, sensor to motor
An MT6701 sensor reports the dial’s angle, which I filter and turn into an electrical angle and a velocity estimate for the haptic engine. An inverse Park transform with sinusoidal PWM and six PWM generators then drive a TMC6300 motor driver through the PMOD port, while a separate chain sends the haptic engine’s data out over HDMI.