3‑Axis Jog & DRO Controller – Modular Firmware or Plug‑&‑Play Setup (Simple UI, MPG Optional)
Budget: $250 – $750 USD
Project Summary
Design a compact, modular 3-axis jog controller for X/Y/Z motion with DRO feedback, limit stop protection, and an intuitive user interface. Two approaches are acceptable:
■ Option A – Code-Based (Arduino/STM32): Firmware-based solution with configurable step sizes, motor parameters, and position tracking. MPG handwheel is optional.
■ Option B – Plug‑and‑Play (No-Code): Assemble off-the-shelf components (jog control + DRO/display + controller) with clean wiring or a simple PCB for integration.
Candidates are welcome to suggest smart, simple alternatives as long as the UI remains intuitive and clean.
Reference Projects:
mstrens/grbl_controller_stm32 https://github.com/mstrens/grbl_controller_stm32
pvico/grbl32 https://github.com/pvico/grbl32
Arduino MPG jog example https://www.youtube.com/watch?v=O_lM44q9tms
kethort/esp32-cnc-mpg-handwheel https://github.com/kethort/esp32-cnc-mpg-handwheel
■ Option A – Code-Based Controller (STM32 or Arduino)
•A1 – Basic
Display: 3 independent DROs (one per axis)
Control: Jogging via buttons, dial, or MPG
Step sizes: Fine / Medium / Coarse (e.g., 0.1 / 1 / 5 mm)
Limit stops: Physical limit switches or encoder logic
Zeroing: Set zero position directly on each DRO unit
•A2 – Extended
Display: Single 3-line (or larger) display showing X, Y, Z
Control: Jog and optional “Go-to” target position
Step sizes: Fine / Medium / Coarse
Limit stops: As above
Zeroing: Must support zero position definition within the system (method flexible: button, UI, etc.)
•Shared (A1 & A2):
Modular firmware: Step size, motor step angle, and screw pitch clearly defined at top of code
No complex menus or user programming
Simple UI (MPG optional if appropriate)
■ Option B – Plug‑and‑Play (No-Code)
Components: Off-the-shelf DROs or display, jog input (buttons, dial, MPG), and controller
Wiring: Use clean wiring harnesses (e.g., DB connectors), or design a compact PCB for interconnects
Limit stops: Required via switches or encoder logic
Zeroing: Must provide a way to define zero position (method is flexible)
Interface: Clean, intuitive operation with no unnecessary configuration or clutter
■ Universal Requirements
Jog control: Dial, buttons, or MPG handwheel—all acceptable if clean and easy to use
Display: Must always show X, Y, Z positions (via DROs or on-screen)
Step sizes: Must support switchable Fine / Medium / Coarse modes
Limit stop protection: Required in all options (via switch or encoder)
Zeroing:
A1: user sets zero directly on DROs
A2 & B: system must support user-defined zero (how is flexible)
Firmware modularity (if applicable): Clear and editable top-level settings for step size, pitch, step angle
Hardware integration:
Clean harness wiring preferred
Or a PCB (≤100×70 mm) using KiCad, JLCPCB-ready
Deliverables
■ Option A:
Firmware (source + compiled binary)
JLCPCB-ready KiCad files (Gerbers, BOM with LCSC codes, pick/place)
Wiring diagram and assembly guide
Demo video showing jogging, limit stop handling, and zeroing
■ Option B:
BOM with links for all modules
Clean wiring plan or small PCB
Demo video showing full operation
Timeline: 4 weeks
Wk1: Confirm interface and base setup
Wk2: Implement jogging, step sizes, limit stops
Wk3: Finalize firmware or wiring + PCB
Wk4: Document, test, and deliver
Design a compact, modular 3-axis jog controller for X/Y/Z motion with DRO feedback, limit stop protection, and an intuitive user interface. Two approaches are acceptable:
■ Option A – Code-Based (Arduino/STM32): Firmware-based solution with configurable step sizes, motor parameters, and position tracking. MPG handwheel is optional.
■ Option B – Plug‑and‑Play (No-Code): Assemble off-the-shelf components (jog control + DRO/display + controller) with clean wiring or a simple PCB for integration.
Candidates are welcome to suggest smart, simple alternatives as long as the UI remains intuitive and clean.
Reference Projects:
mstrens/grbl_controller_stm32 https://github.com/mstrens/grbl_controller_stm32
pvico/grbl32 https://github.com/pvico/grbl32
Arduino MPG jog example https://www.youtube.com/watch?v=O_lM44q9tms
kethort/esp32-cnc-mpg-handwheel https://github.com/kethort/esp32-cnc-mpg-handwheel
■ Option A – Code-Based Controller (STM32 or Arduino)
•A1 – Basic
Display: 3 independent DROs (one per axis)
Control: Jogging via buttons, dial, or MPG
Step sizes: Fine / Medium / Coarse (e.g., 0.1 / 1 / 5 mm)
Limit stops: Physical limit switches or encoder logic
Zeroing: Set zero position directly on each DRO unit
•A2 – Extended
Display: Single 3-line (or larger) display showing X, Y, Z
Control: Jog and optional “Go-to” target position
Step sizes: Fine / Medium / Coarse
Limit stops: As above
Zeroing: Must support zero position definition within the system (method flexible: button, UI, etc.)
•Shared (A1 & A2):
Modular firmware: Step size, motor step angle, and screw pitch clearly defined at top of code
No complex menus or user programming
Simple UI (MPG optional if appropriate)
■ Option B – Plug‑and‑Play (No-Code)
Components: Off-the-shelf DROs or display, jog input (buttons, dial, MPG), and controller
Wiring: Use clean wiring harnesses (e.g., DB connectors), or design a compact PCB for interconnects
Limit stops: Required via switches or encoder logic
Zeroing: Must provide a way to define zero position (method is flexible)
Interface: Clean, intuitive operation with no unnecessary configuration or clutter
■ Universal Requirements
Jog control: Dial, buttons, or MPG handwheel—all acceptable if clean and easy to use
Display: Must always show X, Y, Z positions (via DROs or on-screen)
Step sizes: Must support switchable Fine / Medium / Coarse modes
Limit stop protection: Required in all options (via switch or encoder)
Zeroing:
A1: user sets zero directly on DROs
A2 & B: system must support user-defined zero (how is flexible)
Firmware modularity (if applicable): Clear and editable top-level settings for step size, pitch, step angle
Hardware integration:
Clean harness wiring preferred
Or a PCB (≤100×70 mm) using KiCad, JLCPCB-ready
Deliverables
■ Option A:
Firmware (source + compiled binary)
JLCPCB-ready KiCad files (Gerbers, BOM with LCSC codes, pick/place)
Wiring diagram and assembly guide
Demo video showing jogging, limit stop handling, and zeroing
■ Option B:
BOM with links for all modules
Clean wiring plan or small PCB
Demo video showing full operation
Timeline: 4 weeks
Wk1: Confirm interface and base setup
Wk2: Implement jogging, step sizes, limit stops
Wk3: Finalize firmware or wiring + PCB
Wk4: Document, test, and deliver