#!/usr/bin/env python """\ Simple g-code streaming script for grbl Provided as an illustration of the basic communication interface for grbl. When grbl has finished parsing the g-code block, it will return an 'ok' or 'error' response. When the planner buffer is full, grbl will not send a response until the planner buffer clears space. G02/03 arcs are special exceptions, where they inject short line segments directly into the planner. So there may not be a response from grbl for the duration of the arc. """ import serial import time # Open grbl serial port s = serial.Serial('/dev/tty.usbmodem1811',9600) # Open g-code file f = open('grbl.gcode','r'); # Wake up grbl s.write("\r\n\r\n") time.sleep(2) # Wait for grbl to initialize s.flushInput() # Flush startup text in serial input # Stream g-code to grbl for line in f: l = line.strip() # Strip all EOL characters for consistency print 'Sending: ' + l, s.write(l + '\n') # Send g-code block to grbl grbl_out = s.readline() # Wait for grbl response with carriage return print ' : ' + grbl_out.strip() # Wait here until grbl is finished to close serial port and file. raw_input(" Press to exit and disable grbl.") # Close file and serial port f.close() s.close()