GithubHelp home page GithubHelp logo

juank23 / cnccontrol Goto Github PK

View Code? Open in Web Editor NEW

This project forked from andrewfernie/cnccontrol

0.0 1.0 0.0 6.74 MB

Pendant for GRBL control

License: GNU General Public License v3.0

C++ 67.28% C 32.72%

cnccontrol's Introduction

GRBL Pendant

Introduction

This project is a pendant for a GRBL CNC controller. It can act standalone, requiring connections only to the GRBL controller and to power, or can sit between a PC running a gcode sender application such as UGS and the GRBL controller.

GRBLPendant

In the standalone configuration it can work in "control mode" to home the system, jog along a selected axis, and perform various reset, unlock, and zero axis operations.

If running attached to a PC running a gcode sender, it can work in "monitor mode" where it listens to the traffic from the GRBL controller and displays X/Y/Z position, status, alarms, etc. This is the mode to use if the gcode sender is streaming commands. It can also be switched into control mode to send commands directly. All traffic from the sender is intercepted and retransmitted to the controller so in principle it should be able to seamlessly inject commands into the stream from the sender but more work is required to ensure that the controller's communication buffer is handled properly.

Main control is via a "6 Terminal CNC Pulse Encoder" that can be switched to the X, Y, or Z axis. Distance for one revolution and feed rate can be modified by selecting the "move" or "feed" buttons then using the up and down arrows.

A second encoder with integral push button is provided for a menu system to configure the system, but this is not currently operational.

This version runs on a Teensy 4.1 which allows it to act as a USB host to drive the controller, in addition to acting as a USB device for the connection to a PC. An earlier version used a UART for communication to the controller and worked with a Teensy 3.2.

Rear Panel

Components Used

It uses standard hardware available from all the usual sources. The main components are:

  1. Teensy 4.1 https://www.pjrc.com/store/teensy41.html
  2. Qty 2 20x4 LCD displays using I2C connections (set to addressed 0x26 and 0x27) like this https://www.amazon.com/GeeekPi-Interface-Adapter-Backlight-Raspberry/dp/B086VVT4NH
  3. One jog wheel encoder like this https://www.amazon.com/dp/B07G9G9VYC
  4. Rotary encoder for menu system https://www.amazon.ca/Encoder-Development-Rotating-Potentiometer-Arduino/dp/B07H4L1N84
  5. USB Type B panel mount to micro USB https://www.amazon.ca/Traovien-Printer-MacBook-Samsung-Printers/dp/B09FGPJNXN
  6. USB Type A penel mount motherboard cable. Buy something like this and use only 1/2 of it. https://www.aliexpress.com/item/1005001419024926.html
  7. 4x4 keypad https://www.amazon.ca/SunFounder-Matrix-Keypad-Arduino-Raspberry/dp/B015E32IXY

Twenty buttons in a 4x5 scanned matrix array are used for most control funtions. The 4x4 keypad to the right is a purchased array of microswitches to which I added 3D printed key caps and frame. The four in the left most row used for axis control and jog cancel were added later, and room was tight, so slightly smaller individual switches were used. The last four switches, as well as the one to the top left of the jog wheel, are 10mm x 10mm pushbuttons from my local electronics store. Starting over, a 4x5 array of identical switches would be nicer. STL files for the key caps and frames are provided in the Hardware folder.

Stickers were printed on "printable vinyl" sheets https://www.aliexpress.com/item/1005003231276942.html. Images for the stickers are provided in the Hardware folder.

Controls and Displays

Controls and Displays

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.