DialCraft EC11 Rotary Settings Menu
About this project
DialCraft turns a ₹50 EC11 rotary encoder into a complete interactive settings console on a 128×64 OLED display — the same control paradigm used in oscilloscopes, car dashboards, and industrial PLCs. The EC11 encoder generates two quadrature signals (CLK and DT) that are 90° out of phase: when the shaft rotates clockwise, DT is HIGH when CLK falls; counter-clockwise, DT is LOW when CLK falls. An interrupt service routine (ISR) attached to the CLK pin fires instantly on every falling edge, reads DT, and increments or decrements a volatile delta counter before returning to the main program in microseconds. The main loop reads and atomically clears the delta to drive a five-item settings menu: Brightness, Blink Rate, Alarm, Countdown, and Info. Pressing the encoder shaft button confirms selection and enters edit mode, where rotating changes the parameter value directly. A short buzzer click confirms each detent movement. The OLED (Adafruit SSD1306) renders the menu with a selection arrow (▶), shows the editable value prominently during edit mode, and updates at up to 30Hz — far faster than the human hand can spin the encoder. The project teaches five critical CSE concepts: hardware interrupts and ISR writing, the volatile keyword and why it prevents compiler optimisation errors, quadrature encoding as a Gray code sequence, the race condition between ISR and main loop and how cli()/sei() prevents it, and menu state machine design. Build time: 3 hours.
What you get
- Complete, commented source code
- Full components list with quantities
- Pin-by-pin wiring guide and connection table
- Step-by-step upload and testing guide
- Project report (.docx, IEEE style)
- Presentation slides (.pptx)