All Projects → terjeio → GRBL_MPG_DRO_BoosterPack

terjeio / GRBL_MPG_DRO_BoosterPack

Licence: other
Tiva C BoosterPack for GRBL MPG/DRO

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to GRBL MPG DRO BoosterPack

Grbl Plotter
A GCode sender (not only for plotters) for up to two GRBL controller. SVG, DXF, HPGL import. 6 axis DRO.
Stars: ✭ 286 (+1000%)
Mutual labels:  grbl
Gcode Sender
Cross platform 3-Axis CNC Machines control software
Stars: ✭ 67 (+157.69%)
Mutual labels:  grbl
Grbl Advanced
Grbl-Advanced is a no-compromise, high performance, low cost alternative for CNC milling. This version of Grbl runs on a STM32F411RE / STM32F446RE Nucleo Board. Now with backlash compensation, multi-axis and Tool Table support!
Stars: ✭ 182 (+600%)
Mutual labels:  grbl
Laserweb4
Collaborative effort on the next version of LaserWeb / CNCWeb
Stars: ✭ 456 (+1653.85%)
Mutual labels:  grbl
Candle2
GRBL control interface in Qt.
Stars: ✭ 50 (+92.31%)
Mutual labels:  grbl
Openbuilds Cam
Online CNC CAM System
Stars: ✭ 107 (+311.54%)
Mutual labels:  grbl
LaserCut
LaserCut is an experimental, "Swiss Army Knife" type of program for creating 2D designs by combining primitive shapes using constructive geometry and then sending them to a laser cutter for vector cutting or vector engraving
Stars: ✭ 19 (-26.92%)
Mutual labels:  grbl
grbl32
CNC controller running on the STM32F103 "Blue Pill" board, build and flash on Mac/Linux
Stars: ✭ 33 (+26.92%)
Mutual labels:  grbl
Goko
A desktop application for CNC milling controller running TinyG or Grbl
Stars: ✭ 59 (+126.92%)
Mutual labels:  grbl
Grblhal
HALified port/branch of grbl 1.1f, mainly for 32bit processors
Stars: ✭ 179 (+588.46%)
Mutual labels:  grbl
Lasergrbl
Laser optimized GUI for GRBL
Stars: ✭ 609 (+2242.31%)
Mutual labels:  grbl
Grbl esp32
A port of Grbl CNC Firmware for ESP32
Stars: ✭ 836 (+3115.38%)
Mutual labels:  grbl
Cncjs
A web-based interface for CNC milling controller running Grbl, Marlin, Smoothieware, or TinyG.
Stars: ✭ 1,657 (+6273.08%)
Mutual labels:  grbl
Esp3d Webui
A Web UI for ESP8266 or ESP32 based boards connected to 3D printers / CNC
Stars: ✭ 356 (+1269.23%)
Mutual labels:  grbl
ioSender
A GCode Sender for Grbl and grblHAL written in C# (Windows only).
Stars: ✭ 142 (+446.15%)
Mutual labels:  grbl
MaslowDue
Maslow CNC, second generation based on GRBL and Arduino Due
Stars: ✭ 27 (+3.85%)
Mutual labels:  grbl
Universal G Code Sender
A cross-platform G-Code sender for GRBL, Smoothieware, TinyG and G2core.
Stars: ✭ 1,218 (+4584.62%)
Mutual labels:  grbl
GRBL-Post-Processor
Post Processor for Autodesk Fusion360, delivering GCODE output optimized for GRBL compatible CNC or Lathe
Stars: ✭ 122 (+369.23%)
Mutual labels:  grbl
grbl-Mega-5X
5/6 Axis version of Grbl, the open source, embedded, high performance g-code-parser and CNC milling controller written in optimized C that will run on an Arduino Mega2560
Stars: ✭ 295 (+1034.62%)
Mutual labels:  grbl
Grblcontroller
Compact android mobile application for gcode streaming and controlling a cnc machine with grbl firmware
Stars: ✭ 121 (+365.38%)
Mutual labels:  grbl

GRBL MPG & DRO BoosterPack for Tiva C (TM4C123G)

2022-01-13: Added wiring diagram for default key and LED map.

Default wiring diagram (pdf).

The latest keypad code allows adding new keymappings at run time, switching between a few predefined ones or creating a new from scratch.

2022-01-10: First preliminary version with Pi Pico support committed. Tiva C (TM4C123) version updated for new HAL/APIs.

2021-08-30: Pi Pico breakout board design

First batch of boards (for final design verification) to be ordered soon.

2021-05-01: HALification of the code is underway

A RP2040 driver for Pi Pico is nearing completion, watch this space.

2019-08-20: Improved startup sequence

The GPIO line used for signalling MPG mode change is now used to signal the grbl controller ready state during startup.

On a cold start the Grbl microcontroller should pull the line low as early in the process as possible. When the cold start sequence is completed and grbl is ready to receive data the line should be reverted to input mode with interrupt and pullup enabled. The MPG microcontroller will wait for the line going high before starting any communication, displaying a progress indicator in its boot screen while waiting.


Features:

  • SPI LCD and touch interface
  • Up to two MPG wheels (QEI connected)
  • Four GPIO pins, one is preassigned for switching grbl to/from MPG mode
  • Up to 8 LEDs, buffered open drain
  • Feed Hold and Cycle Start outputs, open drain
  • Up to 25 keys (in matrix)
  • Navigator interface
  • I2C port (3V3)
  • On board MSP430G2553 handling keys and LEDs, internal I2C interface to Tiva C

Parts of alpha-version of supporting code is now available. An initial commit of the display driver used has now been made public. The code is written so it is should be easy to port, all processor dependent code is in separate files.

All core funtionality is now up and running, GUI is 100% event driven making it easy to extend with new dialogs. Shared dialogs (canvases) created for common data (such as DOC, feed rate, RPM), input review/confirmation and GCode transfer to grbl.

How it works

The setup comprises 3 microcontrollers: one running Grbl, one handling the keyboard scanning and one (the MPG processor) for the DRO and MPG (user interface).

Grbl/grblHAL microcontroller:

Support for a second input stream and a switch for changing to/from MPG mode has to be added to the code. In "normal" mode the MPG processor listen to the output stream from Grbl, parses the data and displays relevant info on the display. In "MPG" mode Grbl switches its serial input to the second input stream and the MPG prosessor takes over control by acting as a GCode sender. To tell the MPG processor about a mode change the real time report from Grbl is extended with |MPG:0 ("normal") and |MPG:1 ("MPG"), this is only added when the mode change takes place. Some of my grblHAL drivers supports this functionality as does my patched version of grbl-Mega.

MPG microcontroller:

This handles the user interface (keypresses, MPG input, menu navigator input and DRO display). In "normal" mode it passively listen to the output stream coming from Grbl, parses it and updates the display and LED statuses accordingly. For this to work correctly there has to be a PC based GCode sender connected to the controller, such as ioSender, that constantly request the real time status report.

In "MPG" mode it takes over control and acts as a GCode sender itself, ideally the PC based GCode sender should then disable its GUI. When turning the MPG wheels G1 commands are issued with a feed rate that is dependent on the turning speed, simulating the action of the handwheels on the lathe. The jog buttons issues jog commands and most of the other buttons issues real-time commands such as Hold or Cycle start. It is also possible to hardwire some of the button states to the corresponding Grbl input signals.

For the lathe version I am currently working on I am adding canvases (or dialogs) that will be used for some simple tasks such as reducing the diameter of the stock, and possibly threading if the Grbl version supports that. There is a common canvas for streaming task data, this may be used to stream data from a SD card (not yet implemented).

Keyboard handling microcontroller:

Due to limited IO on the MPG microcontroller a separate processor is employed for handling the keyboard and LEDs. Up to 25 keys can be added (in a matrix) and 8 LEDs are supported. Keypresses are sent to the MPG controller via I2C, and there is a strobe signal for telling MPG controller that a key is pressed. The strobe signal suppports different key modes such as single shot, autorepeat and continuous - configurable per key.


Testbench setup

Pi Pico breakout board

Pico PCB top

Pico PCB bottom


2021-08-30

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].