GcodeCommunications

From Open Source Ecology
Jump to: navigation, search

Intro

When using a CNC machine, there needs to be a program which sends the gcode created on a computer, to the motor controller which executes the gcode by moving around the motors.

CNCjs

https://cnc.js.org

An alternative G-Code Sender to UGS (below). Suitable for running on low spec gear (eg on Raspberry Pi3), as well as standard desktop/laptop usage.

Gctrl

Gctrl(cross-platform)

Gcodesender

gcodesender(Windows).

Printrun

Printrun is a gcode sender that's supposed to have good support for RAMPS.

In Oct 2013, Dan used it for manual control and entering gcodes, but couldn't get it to send a file.

To get going, change baud rate to 250000 and click connect.

ReplicatorG

http://replicat.org/

Seems not to have support for marlin.

grbl-controller

http://zapmaker.org/projects/grbl-controller-3-0/

Repetier

Beautiful, open source, versions for windows, linux, and mac. Very easy to configure.

In Oct 2013, Dan couldn't get it to run gcode files although it's got some nice manual control features.

RepSnapper

https://github.com/timschmidt/repsnapper

In Oct 2013, build of master on osx failed.

Universal G-code Sender

Universal G-Code Sender.

This is recommended for grbl. As of Oct 2013, it's supposed to have imperfect support for Marlin.

Universal G-code Sender on Raspberry Pi

Raspberry Pi with grbl and steppernug

RaspberryPi is a very small, low-cost, single-board open-source computer. Although Universal G-code Sender is distributed as a self-contained "One-jar" package that handles its own dependencies, it needs a little help on the arm-linux platform. I believe it misidentifies arm-linux as intel-linux and tries to use an x86 communications driver. Therefore we need to provide our own version of the communications library and manually unpack Universal G-code Sender.

These instructions were developed on a Raspbian Wheezy installation downloaded from [1]. Here is the OS identification:

pi@raspberrypi ~ $ uname -a
Linux raspberrypi 3.2.27+ #250 PREEMPT Thu Oct 18 19:03:02 BST 2012 armv6l GNU/Linux

Install java and comms driver prerequisites

sudo apt-get install openjdk-7-jre
sudo apt-get install librxtx-java

Note I installed openjdk-7-jdk, but I don't think it's necessary; the jre should be adequate.

download UniversalGcodeSender-v1.0.5-all32.zip from https://github.com/winder/Universal-G-Code-Sender/tree/master/releases

unzip UniversalGcodeSender-v1.0.5-all32.zip
jar -xf UniversalGcodeSender-all32.jar
cd lib
jar -xf swing-layout-1.0.4.jar
cd ../main
export CLASSPATH=$CLASSPATH:.:/usr/share/java/RXTXcomm.jar:../lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/jni

To make the Arduino Uno comm port (ttyACM0) visible, you need to start the application with a command-line parameter

java -Dgnu.io.rxtx.SerialPorts=/dev/ttyACM0:/dev/ttyUSB0:/dev/ttyAMA0 com.willwinder.universalgcodesender.MainWindow

Be patient, it takes about 20 seconds to start the application.

UniversalGcodeSender.png


For minimum-cost implementation of CNC, it would be nice if the g-code sender interface could run from the composite TV-out of the Raspberry Pi (assuming an old TV may be cheaper than an HDMI/DVI monitor). Unfortunately, however, the UI doesn't fit:

GCodeSender tvres.png

Other

Other options for gcode streaming here.