e8a6bfd179
- Added machine position reporting to status queries. This will be further developed with part positioning/offsets and maintaining location upon reset. - System variables refactored into a global struct for better readability. - Removed old obsolete Ruby streaming scripts. These were no longer compatible. Updated Python streaming scripts. - Fixed printFloat() and other printing functions. - Decreased planner buffer back to 18 blocks and increased TX serial buffer to 64 bytes. Need the memory space for future developments. - Begun adding run-time modes to grbl, where block delete toggle, mm/in reporting modes, jog modes, etc can be set during runtime. Will be fleshed out and placed into EEPROM when everything is added.
42 lines
1.2 KiB
Python
Executable File
42 lines
1.2 KiB
Python
Executable File
#!/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 <Enter> to exit and disable grbl.")
|
|
|
|
# Close file and serial port
|
|
f.close()
|
|
s.close() |