themainframe / power-feed

Arduino single-axis milling machine power feed controller

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

power-feed

Single-axis Arduino-based milling machine power feed controller.

Ported from Chris Mower's original millcode project (https://github.com/kintekobo/millcode). Pin-compatible with the original.

Features

  • Rapid and Precision feedrates.
  • Iconographic display of current mode.
  • Control via physical buttons or over the serial port/USB:
    • stop - All-stop
    • fl - Fast-left movement
    • sl - Slow/Precision-left movement
    • sr - Slow/Precision-right movement
    • fr - Fast-right movement
    • 1000 - Set the precision feedrate to 1000 micrometers per second.
  • Hardware timer-based pulse generation with endstop and safe-stop detection before pulse generation.
  • Endstop backoff (see ALLOW_BACK_AWAY_FROM_ENDSTOP in defs.h) - optionally allow moving in the opposite direction after triggering the endstop.

Hardware

Written to work the original M542T stepper motor driver and I2C (PCF8574 I2C IO expander + Hitachi LCD controller) display backpack.

For the rotary encoder, two 100nF capacitors between the quadrature outputs and ground are essential.

Libraries

You'll need the LiquidCrystal_I2C library to use the same display used in the original project, however it would be easy on one of the higher pin-count Arduinos to switch to the traditional Hitachi parallel LCD controller. There aren't enough pins for this on the Uno/mega328p though.

No other libraries are used.

About

Arduino single-axis milling machine power feed controller

License:MIT License


Languages

Language:C++ 83.8%Language:C 16.2%