Accepts Gcode from USB port and interprets it locally on the board
Stepper drivers handle 2.5 amps per winding which will handle
most motors up thru
NEMA23 and some NEMA34 motors.
TinyG project is a many-axis motion control system. It is designed for small CNC applications and other applications that require highly controllable motion control. TinyG is meant to be a complete embedded solution for small/medium motor control.
https://github.com/synthetos/TinyG/wiki
#PyQt5HMUSB071724.py
# oct 12, 2024
#C:\Users\admin\PycharmProjects\pyHMUSB_1
from PyQt5 import QtWidgets
from PyQt5.QtWidgets import QApplication,QMainWindow,QMessageBox,QDialog
from PyQt5.uic import loadUi
import sys
# seriasl Port
import keyboard
import serial
#../
#
#from pyHMUSB import add2,OpenPort,PortClose
from myModuleSerial import add
#import pyHMUSB
from pyHMUSB import *
class MainUIxy(QMainWindow):
def __init__(self):
super(MainUIxy, self).__init__()
loadUi("myTestQt5.ui", self) # Load the UI file
self.pushButtonXHome.clicked.connect(XHomeAxis)
#print(add(1,2))
# Seerial Module
print(add2(7,4))
print(baudrate)
serialPort = serial.Serial(port='COM3', baudrate=baudrate, parity=serial.PARITY_NONE, bytesize=8, timeout=1,stopbits=serial.STOPBITS_ONE)
#serialPort.open()
#serialPort.open()
#OpenPort()
#PortClose()
def XHomeAxis():
print("test")
#loadUi("myTestQt5.ui",self)
#self.pushButtonXHome.clicked.connect(XHomeAxis)
#self.pushButtonXHome.clicked.connect(XHomeAxis())
if __name__ == "__main__":
app = QApplication(sys.argv)
ui = MainUIxy()
ui.show()
app.exec_()
serialPort.close()
# File: pyHMUSB.py
# Date 8/21/2024
#" testing for serial port"
import keyboard
import serial
baudrate = 115200
#serialPort = serial.Serial(port='COM8', baudrate=baudrate, parity=serial.PARITY_NONE, bytesize=8, timeout=1,stopbits=serial.STOPBITS_ONE)
def OpenPort():
#serialPort.open()
return
def add2(x,y):
return (x+y)
def PortClose():
#serialPort.close()
return
#def XHomeAxis():
#baudrate = 115200
#serialPort = serial.Serial(port='COM8', baudrate=baudrate, parity=serial.PARITY_NONE, bytesize=8, timeout=1,
# stopbits=serial.STOPBITS_ONE)
#serialString = ""
#serialPort.write(bytearray('{"gc":"G28.2 X0"}''\r\n','ascii'))
# Home X Axis
#serialPort.write(bytearray('G21G91G1X1F100\r\n','ascii'))
#serialPort.write(bytearray('G90 G21\r\n','ascii'))
#while True:
# try:
# message = serialPort.read()
# print(message)
# if keyboard.is_pressed('q'):
# print("quit")
# break
#except KeyboardInterrupt:
# break
#serialPort.close()
#PyQt5HMUSB071724.py
# oct 12, 2024
#C:\Users\admin\PycharmProjects\pyHMUSB_1
from PyQt5 import QtWidgets
from PyQt5.QtWidgets import QApplication,QMainWindow,QMessageBox,QDialog
from PyQt5.uic import loadUi
import sys
# seriasl Port
import keyboard
import serial
#../
#
#from pyHMUSB import add2,OpenPort,PortClose
from myModuleSerial import add
#import pyHMUSB
from pyHMUSB import *
class MainUIxy(QDialog):
def __init__(self):
super().__init__()
loadUi("myTestQt5.ui", self) # Load the UI file
#print(add(1,2))
# Seerial Module
print(add2(7,4))
print(baudrate)
serialPort = serial.Serial(port='COM3', baudrate=baudrate, parity=serial.PARITY_NONE, bytesize=8, timeout=1,stopbits=serial.STOPBITS_ONE)
#serialPort.open()
#serialPort.open()
#OpenPort()
#PortClose()
def XHomeAxis():
print("test")
#loadUi("myTestQt5.ui",self)
#self.pushButtonXHome.clicked.connect(XHomeAxis)
#self.pushButtonXHome.clicked.connect(XHomeAxis())
if __name__ == "__main__":
app = QApplication(sys.argv)
ui = MainUIxy()
ui.show()
app.exec_()
serialPort.close()
B: Home X
Homing axis X, timeout value: 428000
==> {"gc":"G28.2 X0"}
../
def XHomeAxis():
serialString = ""
serialPort.write(bytearray('{"gc":"G28.2 X0"}''\r\n','ascii'))
print("test")
while True:
try:
message = serialPort.readline()
print(message)
if keyboard.is_pressed('q'):
print("quit")
break
except KeyboardInterrupt:
break
../
from usb readLine port
test, readline
b'{"r":{},"f":[1,0,18,77]}\n'
test, readline
b'{"sr":{"posx":0.000,"posy":0.000,"posz":0.000,"posa":0.000,"feed":0.00,"vel":0.00,"unit":1,"coor":0,"dist":1,"frmo":1,"stat":9}}\n'
../
Jog: F6
CNC_XYA_m, x: 1.000, y: 0.000, a: 0.000
OptimizeA
==> {"gc":"G1 F150 X1.000 Y0.000 A0.000"}
<== {"r":{},"f":[1,0,38,139]}
<== {"sr":{"posx":0.900,"vel":4.82,"stat":5}}
<== {"qr":31,"qi":1,"qo":0}
<== {"sr":{"posx":1.000,"vel":0.00,"stat":3}}
ReadyEvent stat
<== {"qr":32,"qi":0,"qo":1}
B: Home X
Homing axis X, timeout value: 25000
==> {"gc":"G28.2 X0"}
<== {"r":{},"f":[1,0,18,77]}
<== {"sr":{"coor":0,"dist":1,"stat":9}}
<== {"qr":32,"qi":1,"qo":1}
<== {"qr":31,"qi":1,"qo":0}
<== {"sr":{"posx":-4.411,"feed":2000.00,"vel":1771.32}}
<== {"sr":{"posx":-5.333,"vel":0.16}}
<== {"sr":{"posx":-608.000,"feed":0.00,"vel":0.00,"coor":1,"dist":0,"stat":3}}
ReadyEvent stat
<== {"qr":32,"qi":1,"qo":1}
Homing X done.
JOG F6
Jog: F6
CNC_XYA_m, x: 0.500, y: 0.000, a: 0.000
OptimizeA
==> {"gc":"G1 F150 X0.500 Y0.000 A0.000"}
<== {"r":{},"f":[1,0,38,139]}
<== {"sr":{"posx":0.400,"vel":4.82,"stat":5}}
<== {"qr":31,"qi":1,"qo":0}
<== {"sr":{"posx":0.500,"vel":0.00,"stat":3}}
ReadyEvent stat
-- A_move, already there --
==> {"gc":"G28.3 A0.000"}
<== {"qr":32,"qi":0,"qo":1}
<== {"r":{},"f":[1,0,22,102]}
<== {"qr":32,"qi":1,"qo":1}
./
X homing switch not enabled
==> {"xsn":1}
<== {"r":{"xsn":1},"f":[1,0,10,4745]}
ReadyEvent r
==> {"xsn":3}
<== {"r":{"xsn":3},"f":[1,0,10,6373]}
ReadyEvent r
==> {"xsx":2}
<== {"r":{"xsx":2},"f":[1,0,10,8631]}
ReadyEvent r
../
B: Home X
Homing axis X, timeout value: 25000
==> {"gc":"G28.2 X0"}
<== {"r":{},"f":[1,0,18,77]}
<== {"sr":{"coor":0,"dist":1,"stat":9}}
<== {"qr":32,"qi":1,"qo":1}
<== {"qr":31,"qi":1,"qo":0}
<== {"sr":{"posx":-4.500,"feed":2000.00,"vel":2000.00}}
<== {"sr":{"posx":-11.000}}
<== {"sr":{"posx":-17.500}}
<== {"sr":{"posx":-24.000}}
<== {"sr":{"posx":-30.333}}
<== {"sr":{"posx":-36.833}}
<== {"sr":{"posx":-43.333}}
<== {"sr":{"posx":-49.833}}
<== {"sr":{"posx":-56.333}}
<== {"sr":{"posx":-62.834}}
<== {"sr":{"posx":-69.333}}
<== {"sr":{"posx":-75.833}}
<== {"sr":{"posx":-82.167}}
<== {"sr":{"posx":-88.666}}
<== {"sr":{"posx":-91.166,"vel":0.16}}
<== {"sr":{"posx":-608.000,"feed":0.00,"vel":0.00,"coor":1,"dist":0,"stat":3}}
ReadyEvent stat
..*/
../
Application Start
Version: 1.0.8340.22961, build date: 11/01/2022 12:45:22
Reading application settings from C:\LitePlacer\LitePlacer.Appsettings
Creating data file backups to C:\LitePlacer\DataBackup\2024-07-17 12.10.06
Basic Setup tab begin
LoadVideoAlgorithms from C:\LitePlacer\LitePlacer.VideoAlgorithms
UpdateVideoProcessing()
BuildFunctionsList:
No saved temp CAD data file
No saved temp job data file
DownCamera already stopped
UpCamera already stopped
Downcamera moniker not found. Moniker: @device:pnp:\\?\usb#vid_f007&pid_a999&mi_00#6&1b900a24&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global
camera resolution not set.
Loading tapes with nozzles data
Reading v2 format file C:\LitePlacer\LitePlacer.TapesData_v2
Loading nozzles data
Reading v2 format file C:\LitePlacer\LitePlacer.NozzlesLoadData_v2
Reading v2 format file C:\LitePlacer\LitePlacer.NozzlesUnLoadData_v2
Reading v2 format file C:\LitePlacer\LitePlacer.NozzlesVisionParameters_v21
Loading nozzle calibration data from C:\LitePlacer\LitePlacer.NozzlesCalibrationData_v3
Connected to serial port COM3
==> {sr:n}
TinyG board found.
<== {"r":{"sr":{"posx":0.000,"posy":0.000,"posz":0.000,"posa":0.000,"feed":0.00,"vel":0.00,"unit":1,"coor":1,"dist":0,"frmo":1,"stat":3}},"f":[1,0,7,5317]}
ReadyEvent r:sr
Reading TinyG settings:
==> {"st":""}
<== {"r":{"st":0},"f":[1,0,10,8400]}
ReadyEvent r
==> {"mt":""}
<== {"r":{"mt":300.00},"f":[1,0,10,2825]}
mt value: 300
ReadyEvent r
==> {"jv":""}
<== {"r":{"jv":3},"f":[1,0,10,5886]}
ReadyEvent r
==> {"js":""}
<== {"r":{"js":1},"f":[1,0,10,5969]}
ReadyEvent r
==> {"tv":""}
<== {"r":{"tv":1},"f":[1,0,10,7227]}
ReadyEvent r
==> {"qv":""}
<== {"r":{"qv":2},"f":[1,0,10,4252]}
ReadyEvent r
==> {"sv":""}
<== {"r":{"sv":1},"f":[1,0,10,9297]}
ReadyEvent r
==> {"si":""}
<== {"r":{"si":200},"f":[1,0,10,4311]}
ReadyEvent r
==> {"gun":""}
<== {"r":{"gun":1},"f":[1,0,11,7651]}
ReadyEvent r
==> {"1ma":""}
<== {"r":{"1ma":0},"f":[1,0,11,7976]}
ReadyEvent r
==> {"1sa":""}
<== {"r":{"1sa":0.900},"f":[1,0,11,7161]}
ReadyEvent r
==> {"1tr":""}
<== {"r":{"1tr":40.0000},"f":[1,0,11,2474]}
ReadyEvent r
==> {"1mi":""}
<== {"r":{"1mi":8},"f":[1,0,11,7985]}
ReadyEvent r
==> {"1po":""}
<== {"r":{"1po":0},"f":[1,0,11,5004]}
ReadyEvent r
==> {"1pm":""}
<== {"r":{"1pm":2},"f":[1,0,11,3385]}
ReadyEvent r
==> {"2ma":""}
<== {"r":{"2ma":1},"f":[1,0,11,2464]}
ReadyEvent r
==> {"2sa":""}
<== {"r":{"2sa":0.900},"f":[1,0,11,9295]}
ReadyEvent r
==> {"2tr":""}
<== {"r":{"2tr":40.0000},"f":[1,0,11,2225]}
ReadyEvent r
==> {"2mi":""}
<== {"r":{"2mi":8},"f":[1,0,11,1659]}
ReadyEvent r
==> {"2po":""}
<== {"r":{"2po":0},"f":[1,0,11,5513]}
ReadyEvent r
==> {"2pm":""}
<== {"r":{"2pm":2},"f":[1,0,11,7058]}
ReadyEvent r
==> {"3ma":""}
<== {"r":{"3ma":2},"f":[1,0,11,3787]}
ReadyEvent r
==> {"3sa":""}
<== {"r":{"3sa":1.800},"f":[1,0,11,1431]}
ReadyEvent r
==> {"3tr":""}
<== {"r":{"3tr":8.0000},"f":[1,0,11,7613]}
ReadyEvent r
==> {"3mi":""}
<== {"r":{"3mi":8},"f":[1,0,11,5332]}
ReadyEvent r
==> {"3po":""}
<== {"r":{"3po":0},"f":[1,0,11,9186]}
ReadyEvent r
==> {"3pm":""}
<== {"r":{"3pm":2},"f":[1,0,11,7567]}
ReadyEvent r
==> {"4ma":""}
<== {"r":{"4ma":3},"f":[1,0,11,8274]}
ReadyEvent r
==> {"4sa":""}
<== {"r":{"4sa":0.900},"f":[1,0,11,7235]}
ReadyEvent r
==> {"4tr":""}
<== {"r":{"4tr":160.0000},"f":[1,0,11,2085]}
ReadyEvent r
==> {"4mi":""}
<== {"r":{"4mi":8},"f":[1,0,11,9005]}
ReadyEvent r
==> {"4po":""}
<== {"r":{"4po":0},"f":[1,0,11,2860]}
ReadyEvent r
==> {"4pm":""}
<== {"r":{"4pm":2},"f":[1,0,11,1241]}
ReadyEvent r
==> {"Xam":""}
<== {"r":{"xam":1},"f":[1,0,11,9625]}
ReadyEvent r
==> {"Xvm":""}
<== {"r":{"xvm":10000},"f":[1,0,11,3029]}
ReadyEvent r
==> {"Xfr":""}
<== {"r":{"xfr":10000},"f":[1,0,11,7270]}
ReadyEvent r
==> {"Xtn":""}
<== {"r":{"xtn":0.000},"f":[1,0,11,7296]}
ReadyEvent r
==> {"Xtm":""}
<== {"r":{"xtm":600.000},"f":[1,0,11,3084]}
ReadyEvent r
==> {"Xjm":""}
<== {"r":{"xjm":1000},"f":[1,0,11,1454]}
ReadyEvent r
==> {"Xjh":""}
<== {"r":{"xjh":2000},"f":[1,0,11,5217]}
ReadyEvent r
==> {"Xsv":""}
<== {"r":{"xsv":2000},"f":[1,0,11,8943]}
ReadyEvent r
==> {"Xlv":""}
<== {"r":{"xlv":100},"f":[1,0,11,1277]}
ReadyEvent r
==> {"Xlb":""}
<== {"r":{"xlb":8.000},"f":[1,0,11,3381]}
ReadyEvent r
==> {"Xzb":""}
<== {"r":{"xzb":2.000},"f":[1,0,11,5206]}
ReadyEvent r
==> {"Yam":""}
<== {"r":{"yam":1},"f":[1,0,11,3299]}
ReadyEvent r
==> {"Yvm":""}
<== {"r":{"yvm":10000},"f":[1,0,11,1999]}
ReadyEvent r
==> {"Yfr":""}
<== {"r":{"yfr":10000},"f":[1,0,11,9404]}
ReadyEvent r
==> {"Ytn":""}
<== {"r":{"ytn":0.000},"f":[1,0,11,6266]}
ReadyEvent r
==> {"Ytm":""}
<== {"r":{"ytm":400.000},"f":[1,0,11,6222]}
ReadyEvent r
==> {"Yjm":""}
<== {"r":{"yjm":1000},"f":[1,0,11,8174]}
ReadyEvent r
==> {"Yjh":""}
<== {"r":{"yjh":2000},"f":[1,0,11,1938]}
ReadyEvent r
==> {"Ysv":""}
<== {"r":{"ysv":2000},"f":[1,0,11,5664]}
ReadyEvent r
==> {"Ylv":""}
<== {"r":{"ylv":100},"f":[1,0,11,3327]}
ReadyEvent r
==> {"Ylb":""}
<== {"r":{"ylb":8.000},"f":[1,0,11,2351]}
ReadyEvent r
==> {"Yzb":""}
<== {"r":{"yzb":2.000},"f":[1,0,11,7340]}
ReadyEvent r
==> {"Zam":""}
<== {"r":{"zam":1},"f":[1,0,11,6972]}
ReadyEvent r
==> {"Zvm":""}
<== {"r":{"zvm":5000},"f":[1,0,11,9156]}
ReadyEvent r
==> {"Zfr":""}
<== {"r":{"zfr":2000},"f":[1,0,11,9342]}
ReadyEvent r
==> {"Ztn":""}
<== {"r":{"ztn":0.000},"f":[1,0,11,8400]}
ReadyEvent r
==> {"Ztm":""}
<== {"r":{"ztm":80.000},"f":[1,0,11,8706]}
ReadyEvent r
==> {"Zjm":""}
<== {"r":{"zjm":500},"f":[1,0,11,7926]}
ReadyEvent r
==> {"Zjh":""}
<== {"r":{"zjh":500},"f":[1,0,11,2724]}
ReadyEvent r
==> {"Zsv":""}
<== {"r":{"zsv":1000},"f":[1,0,11,508]}
ReadyEvent r
==> {"Zlv":""}
<== {"r":{"zlv":100},"f":[1,0,11,5377]}
ReadyEvent r
==> {"Zlb":""}
<== {"r":{"zlb":10.000},"f":[1,0,11,5156]}
ReadyEvent r
==> {"Zzb":""}
<== {"r":{"zzb":2.000},"f":[1,0,11,6310]}
ReadyEvent r
==> {"Aam":""}
<== {"r":{"aam":1},"f":[1,0,11,960]}
ReadyEvent r
==> {"Avm":""}
<== {"r":{"avm":50000},"f":[1,0,11,3126]}
ReadyEvent r
==> {"Afr":""}
<== {"r":{"afr":200000},"f":[1,0,11,1133]}
ReadyEvent r
==> {"Atn":""}
<== {"r":{"atn":0.000},"f":[1,0,11,2003]}
ReadyEvent r
==> {"Atm":""}
<== {"r":{"atm":600.000},"f":[1,0,11,840]}
ReadyEvent r
==> {"Ajm":""}
<== {"r":{"ajm":5000},"f":[1,0,11,2237]}
ReadyEvent r
==> {"Ajh":""}
<== {"r":{"ajh":5000},"f":[1,0,11,959]}
ReadyEvent r
==> {"Asv":""}
<== {"r":{"asv":2000},"f":[1,0,11,6396]}
ReadyEvent r
==> {"ec":""}
<== {"r":{"ec":0},"f":[1,0,10,5349]}
ValueUpdater, no operation(ec, 0)
ReadyEvent r
==> {"ee":""}
<== {"r":{"ee":0},"f":[1,0,10,5432]}
ValueUpdater, no operation(ee, 0)
ReadyEvent r
==> {"ex":""}
<== {"r":{"ex":1},"f":[1,0,10,1021]}
ValueUpdater, no operation(ex, 1)
ReadyEvent r
==> {"Xsn":""}
<== {"r":{"xsn":0},"f":[1,0,11,7096]}
ReadyEvent r
==> {"Xsx":""}
<== {"r":{"xsx":0},"f":[1,0,11,7004]}
ReadyEvent r
==> {"Ysn":""}
<== {"r":{"ysn":0},"f":[1,0,11,7605]}
ReadyEvent r
==> {"Ysx":""}
<== {"r":{"ysx":0},"f":[1,0,11,678]}
ReadyEvent r
==> {"Zsn":""}
<== {"r":{"zsn":0},"f":[1,0,11,1279]}
ReadyEvent r
==> {"Zsx":""}
<== {"r":{"zsx":0},"f":[1,0,11,1187]}
ReadyEvent r
==> {"Asn":""}
<== {"r":{"asn":0},"f":[1,0,11,5266]}
ReadyEvent r
==> {"Asx":""}
<== {"r":{"asx":0},"f":[1,0,11,5174]}
ReadyEvent r
==> {"me":""}
<== {"r":{"me":null},"f":[1,0,10,3586]}
PumpOff(), TinyG
==> {"gc":"M05"}
VacuumOff(), TinyG
==> {"gc":"M09"}
<== {"r":{},"f":[1,0,13,72]}
<== {"qr":32,"qi":1,"qo":1}
<== {"r":{},"f":[1,0,13,72]}
<== {"qr":32,"qi":1,"qo":1}
Startup completed.
..*//
../
./
Microsoft Windows [Version 10.0.19045.4529]
(c) Microsoft Corporation. All rights reserved.
C:\Users\admin>pip install PyQt5
Collecting PyQt5
Downloading PyQt5-5.15.10-cp37-abi3-win_amd64.whl (6.8 MB)
|████████████████████████████████| 6.8 MB 16 kB/s
Collecting PyQt5-sip<13,>=12.13
Downloading PyQt5_sip-12.15.0-cp39-cp39-win_amd64.whl (59 kB)
|████████████████████████████████| 59 kB 592 kB/s
Collecting PyQt5-Qt5>=5.15.2
Downloading PyQt5_Qt5-5.15.2-py3-none-win_amd64.whl (50.1 MB)
|████████████████████████████████| 50.1 MB 13 kB/s
Installing collected packages: PyQt5-sip, PyQt5-Qt5, PyQt5
Successfully installed PyQt5-5.15.10 PyQt5-Qt5-5.15.2 PyQt5-sip-12.15.0
WARNING: You are using pip version 21.1.3; however, version 24.1.2 is available.
You should consider upgrading via the 'c:\users\admin\appdata\local\programs\python\python39\python.exe -m pip install --upgrade pip' command.
C:\Users\admin>
./
.// program to write to serial port
import keyboard
import serial
import serial.tools.list_ports as port_list
#ports = list(port_list.comports())
#print(ports[0].device)
#port = ports[0].device
baudrate = 115200
serialPort = serial.Serial(port='COM3', baudrate=baudrate, parity = serial.PARITY_NONE,
bytesize=8, timeout=1, stopbits=serial.STOPBITS_ONE)
serialString = ""
# serialPort.write(bytes.fromhex("A551F6"))
#serialPort.write(bytes.fromhex("$"))
# Send character 'S' to start the program
#ser.write(bytearray('S','ascii'))
#serialPort.write(bytearray('?/r/n','ascii'))
#"?\r\n".encode('Ascii'))
#serialPort.write(bytearray('{"gc":"G28.2 X0"}\r\n','ascii'))
#serialPort.write(bytearray('{"gc":"G28.2 X0"}\r\n','ascii'))
#serialPort.write(bytearray('{"gc":"G28.2 X0"}\r\n','ascii'))
#serialPort.write(bytearray('{"gc":"G28.2 X0"}\r\n','ascii'))serialPort.write(bytearray('{"gc":"G28.2 X0"}\r\n','ascii'))
#serialPort.write(bytearray('{"gc":"G0 A0.800"}\r\n','ascii'))
serialPort.write(bytearray('G21G91G1X1F100\r\n','ascii'))
serialPort.write(bytearray('G90 G21\r\n','ascii'))
while True:
try:
# serialPort.reset_input_buffer()
# serialPort.reset_output_buffer()
# serialString = serialPort.read(10).hex()
#serialString = serialPort.read()
#print(serialString)
message = serialPort.read()
print(message)
if keyboard.is_pressed('q'):
print("quit")
break
except KeyboardInterrupt:
break
serialPort.close()
…*//
..//
..*//
../6/7/2024
tinyG limit switch
How do I get the GRBL log to give me the status of the limit switches?
..//
Startup completed.
B: Home X
Homing axis X, timeout value: 428000
==> {"gc":"G28.2 X0"}
<== {"r":{},"f":[1,0,18,77]}
<== {"sr":{"coor":0,"dist":1,"stat":9}}
<== {"sr":{"posx":-0.175,"feed":100.00,"vel":100.00}}
<== {"sr":{"posx":-0.500}}
<== {"sr":{"posx":-0.825}}
<== {"sr":{"posx":-1.150}}
<== {"sr":{"posx":-1.475}}
<== {"sr":{"posx":-1.800}}
<== {"sr":{"posx":-2.125}}
<== {"sr":{"posx":-2.450}}
<== {"sr":{"posx":-2.775}}
<== {"sr":{"posx":-3.100}}
<== {"sr":{"posx":-3.425}}
<== {"sr":{"posx":-3.750}}
<== {"sr":{"posx":-4.075}}
<== {"sr":{"posx":-4.400}}
<== {"sr":{"posx":-4.725}}
<== {"sr":{"posx":-5.050}}
<== {"sr":{"posx":-5.375}}
<== {"sr":{"posx":-5.699}}
<== {"sr":{"posx":-6.024}}
<== {"sr":{"posx":-6.358}}
<== {"sr":{"posx":-6.683}}
<== {"sr":{"posx":-7.008}}
<== {"sr":{"posx":-7.333}}
<== {"sr":{"posx":-7.656,"vel":92.23}}
<== {"sr":{"posx":-7.741,"vel":0.00}}
<== {"sr":{"posx":-155.000,"feed":0.00,"vel":0.00,"coor":1,"dist":0,"stat":3}}
ReadyEvent stat
Homing X done.
../
/?
{"r":{},"f":[1,3,3,7279]}
READY"},"f":[1,0,0,6941]}
{"sr":{"posx":0.000,"posy":0.000,"posz":0.000,"posa":0.000,"feed":0.00,"vel":0.00,"unit":1,"coor":1,"dist":0,"frmo":1,"stat":1}}
[st] switch type 0 [0=NO,1=NC]
../
$ylb=3
minimum
$ysn
[ysn] y switch min 1 [0=off,1=homing,2=limit,3=limit+homing]
[ysx] y switch max 0 [0=off,1=homing,2=limit,3=limit+homing]
..//
TinyG Support
https://teclausa.com/tinyg-support/
..//
Ask GRBL for the limit switch status - CNC Machines / Shapeoko - Carbide 3D Community Site
https://community.carbide3d.com/t/ask-grbl-for-the-limit-switch-status/12934
..//
The following settings are used for switch configuration.
Setting
Description
Setting Example
$ST
Switch Type
sets the type of switch used by the entire machine - 0=NO, 1=NC.
$XSN
X Minimum Switch Mode
3=limit-and-homing (See Modes, below)
$XSX
X Maximum Switch Mode
2=limit-only
$YSN
Y Minimum Switch Mode
3=limit-and-homing
$YSX
Y Maximum Switch Mode
2=limit-only
$ZSN
Z Minimum Switch Mode
0=disabled
$ZSX
Z Maximum Switch Mode
3=limit-and-homing
$ASN
A Minimum Switch Mode
0=disabled
$ASX
A Maximum Switch Mode
0=disabled
..//
[yam] y axis mode 1 [standard]
[yvm] y velocity maximum 800 mm/min
[yfr] y feedrate maximum 800 mm/min
[ytn] y travel minimum 0.000 mm
[ytm] y travel maximum 150.000 mm
[yjm] y jerk maximum 20 mm/min^3 * 1 million
[yjh] y jerk homing 40 mm/min^3 * 1 million
[yjd] y junction deviation 0.0500 mm (larger is faster)
[ysn] y switch min 3 [0=off,1=homing,2=limit,3=limit+homing]
[ysx] y switch max 2 [0=off,1=homing,2=limit,3=limit+homing]
[ysv] y search velocity 100 mm/min
[ylv] y latch velocity 100 mm/min
[ylb] y latch backoff 5.000 mm
[yzb] y zero backoff 1.000 mm
tinyg [mm] ok>
tinyg [mm] ok>
https://sites.google.com/site/cncnotebook/tinyg-configuration?pli=1
..//
Homing and Limits Description and Operation · synthetos/TinyG Wiki · GitHub
..//
/$$
.
[fb] firmware build 440.20
[fv] firmware version 0.97
[hp] hardware platform 1.00
[hv] hardware version 8.00
[id] TinyG ID 0Y0899-SPA
[ja] junction acceleration 100000 mm
[ct] chordal tolerance 0.0100 mm
[sl] soft limit enable 0
[st] switch type 0 [0=NO,1=NC]
[mt] motor idle timeout 2.00 Sec
[ej] enable json mode 0 [0=text,1=JSON]
[jv] json verbosity 4 [0=silent,1=footer,2=messages,3=configs,4=linenum,5=verbose]
[js] json serialize style 1 [0=relaxed,1=strict]
[tv] text verbosity 1 [0=silent,1=verbose]
[qv] queue report verbosity 0 [0=off,1=single,2=triple]
[sv] status report verbosity 1 [0=off,1=filtered,2=verbose]
[si] status interval 200 ms
[ec] expand LF to CRLF on TX 0 [0=off,1=on]
[ee] enable echo 0 [0=off,1=on]
[ex] enable flow control 1 [0=off,1=XON/XOFF, 2=RTS/CTS]
[baud] USB baud rate 5 [1=9600,2=19200,3=38400,4=57600,5=115200,6=230400]
[net] network mode 0 [0=master]
[gpl] default gcode plane 0 [0=G17,1=G18,2=G19]
[gun] default gcode units mode 1 [0=G20,1=G21]
[gco] default gcode coord system 1 [1-6 (G54-G59)]
[gpa] default gcode path control 2 [0=G61,1=G61.1,2=G64]
[gdi] default gcode distance mode 0 [0=G90,1=G91]
[1ma] m1 map to axis 0 [0=X,1=Y,2=Z...]
[1sa] m1 step angle 1.800 deg
[1tr] m1 travel per revolution 1.2500 mm
[1mi] m1 microsteps 8 [1,2,4,8]
[1po] m1 polarity 0 [0=normal,1=reverse]
[1pm] m1 power management 2 [0=disabled,1=always on,2=in cycle,3=when moving]
[2ma] m2 map to axis 1 [0=X,1=Y,2=Z...]
[2sa] m2 step angle 1.800 deg
[2tr] m2 travel per revolution 1.2500 mm
[2mi] m2 microsteps 8 [1,2,4,8]
[2po] m2 polarity 0 [0=normal,1=reverse]
[2pm] m2 power management 2 [0=disabled,1=always on,2=in cycle,3=when moving]
[3ma] m3 map to axis 2 [0=X,1=Y,2=Z...]
[3sa] m3 step angle 1.800 deg
[3tr] m3 travel per revolution 1.2500 mm
[3mi] m3 microsteps 8 [1,2,4,8]
[3po] m3 polarity 0 [0=normal,1=reverse]
[3pm] m3 power management 2 [0=disabled,1=always on,2=in cycle,3=when moving]
[4ma] m4 map to axis 3 [0=X,1=Y,2=Z...]
[4sa] m4 step angle 1.800 deg
[4tr] m4 travel per revolution 360.0000 mm
[4mi] m4 microsteps 8 [1,2,4,8]
[4po] m4 polarity 0 [0=normal,1=reverse]
[4pm] m4 power management 2 [0=disabled,1=always on,2=in cycle,3=when moving]
[xam] x axis mode 1 [standard]
[xvm] x velocity maximum 800 mm/min
[xfr] x feedrate maximum 800 mm/min
[xtn] x travel minimum 0.000 mm
[xtm] x travel maximum 150.000 mm
[xjm] x jerk maximum 20 mm/min^3 * 1 million
[xjh] x jerk homing 40 mm/min^3 * 1 million
[xjd] x junction deviation 0.0500 mm (larger is faster)
[xsn] x switch min 3 [0=off,1=homing,2=limit,3=limit+homing]
[xsx] x switch max 2 [0=off,1=homing,2=limit,3=limit+homing]
[xsv] x search velocity 100 mm/min
[xlv] x latch velocity 100 mm/min
[xlb] x latch backoff 5.000 mm
[xzb] x zero backoff 1.000 mm
[yam] y axis mode 1 [standard]
[yvm] y velocity maximum 800 mm/min
[yfr] y feedrate maximum 800 mm/min
[ytn] y travel minimum 0.000 mm
[ytm] y travel maximum 150.000 mm
[yjm] y jerk maximum 20 mm/min^3 * 1 million
[yjh] y jerk homing 40 mm/min^3 * 1 million
[yjd] y junction deviation 0.0500 mm (larger is faster)
[ysn] y switch min 3 [0=off,1=homing,2=limit,3=limit+homing]
[ysx] y switch max 2 [0=off,1=homing,2=limit,3=limit+homing]
[ysv] y search velocity 100 mm/min
[ylv] y latch velocity 100 mm/min
[ylb] y latch backoff 5.000 mm
[yzb] y zero backoff 1.000 mm
[zam] z axis mode 1 [standard]
[zvm] z velocity maximum 8 mm/min
[zfr] z feedrate maximum 8 mm/min
[ztn] z travel minimum 0.000 mm
[ztm] z travel maximum 75.000 mm
[zjm] z jerk maximum 20 mm/min^3 * 1 million
[zjh] z jerk homing 40 mm/min^3 * 1 million
[zjd] z junction deviation 0.0500 mm (larger is faster)
[zsn] z switch min 3 [0=off,1=homing,2=limit,3=limit+homing]
[zsx] z switch max 2 [0=off,1=homing,2=limit,3=limit+homing]
[zsv] z search velocity 5 mm/min
[zlv] z latch velocity 100 mm/min
[zlb] z latch backoff 5.000 mm
[zzb] z zero backoff 1.000 mm
[aam] a axis mode 3 [radius]
[avm] a velocity maximum 10000 deg/min
[afr] a feedrate maximum 10000 deg/min
[atn] a travel minimum -1.000 deg
[atm] a travel maximum -1.000 deg
[ajm] a jerk maximum 20 deg/min^3 * 1 million
[ajh] a jerk homing 11520 deg/min^3 * 1 million
[ajd] a junction deviation 0.0500 deg (larger is faster)
[ara] a radius value 0.1989 deg
[asn] a switch min 1 [0=off,1=homing,2=limit,3=limit+homing]
[asx] a switch max 0 [0=off,1=homing,2=limit,3=limit+homing]
[asv] a search velocity 600 deg/min
[alv] a latch velocity 100 deg/min
[alb] a latch backoff 5.000 deg
[azb] a zero backoff 2.000 deg
[bam] b axis mode 0 [disabled]
[bvm] b velocity maximum 3600 deg/min
[bfr] b feedrate maximum 3600 deg/min
[btn] b travel minimum -1.000 deg
[btm] b travel maximum -1.000 deg
[bjm] b jerk maximum 20 deg/min^3 * 1 million
[bjd] b junction deviation 0.0500 deg (larger is faster)
[bra] b radius value 1.0000 deg
[cam] c axis mode 0 [disabled]
[cvm] c velocity maximum 3600 deg/min
[cfr] c feedrate maximum 3600 deg/min
[ctn] c travel minimum -1.000 deg
[ctm] c travel maximum -1.000 deg
[cjm] c jerk maximum 20 deg/min^3 * 1 million
[cjd] c junction deviation 0.0500 deg (larger is faster)
[cra] c radius value 1.0000 deg
[p1frq] pwm frequency 100 Hz
[p1csl] pwm cw speed lo 1000 RPM
[p1csh] pwm cw speed hi 2000 RPM
[p1cpl] pwm cw phase lo 0.125 [0..1]
[p1cph] pwm cw phase hi 0.200 [0..1]
[p1wsl] pwm ccw speed lo 1000 RPM
[p1wsh] pwm ccw speed hi 2000 RPM
[p1wpl] pwm ccw phase lo 0.125 [0..1]
[p1wph] pwm ccw phase hi 0.200 [0..1]
[p1pof] pwm phase off 0.100 [0..1]
[g54x] g54 x offset 0.000 mm
[g54y] g54 y offset 0.000 mm
[g54z] g54 z offset 0.000 mm
[g54a] g54 a offset 0.000 deg
[g54b] g54 b offset 0.000 deg
[g54c] g54 c offset 0.000 deg
[g55x] g55 x offset 75.000 mm
[g55y] g55 y offset 75.000 mm
[g55z] g55 z offset 0.000 mm
[g55a] g55 a offset 0.000 deg
[g55b] g55 b offset 0.000 deg
[g55c] g55 c offset 0.000 deg
[g56x] g56 x offset 0.000 mm
[g56y] g56 y offset 0.000 mm
[g56z] g56 z offset 0.000 mm
[g56a] g56 a offset 0.000 deg
[g56b] g56 b offset 0.000 deg
[g56c] g56 c offset 0.000 deg
[g57x] g57 x offset 0.000 mm
[g57y] g57 y offset 0.000 mm
[g57z] g57 z offset 0.000 mm
[g57a] g57 a offset 0.000 deg
[g57b] g57 b offset 0.000 deg
[g57c] g57 c offset 0.000 deg
[g58x] g58 x offset 0.000 mm
[g58y] g58 y offset 0.000 mm
[g58z] g58 z offset 0.000 mm
[g58a] g58 a offset 0.000 deg
[g58b] g58 b offset 0.000 deg
[g58c] g58 c offset 0.000 deg
[g59x] g59 x offset 0.000 mm
[g59y] g59 y offset 0.000 mm
[g59z] g59 z offset 0.000 mm
[g59a] g59 a offset 0.000 deg
[g59b] g59 b offset 0.000 deg
[g59c] g59 c offset 0.000 deg
[g92x] g92 x offset 0.000 mm
[g92y] g92 y offset 0.000 mm
[g92z] g92 z offset 0.000 mm
[g92a] g92 a offset 0.000 deg
[g92b] g92 b offset 0.000 deg
[g92c] g92 c offset 0.000 deg
[g28x] g28 x position 0.000 mm
[g28y] g28 y position 0.000 mm
[g28z] g28 z position 0.000 mm
[g28a] g28 a position 0.000 deg
[g28b] g28 b position 0.000 deg
[g28c] g28 c position 0.000 deg
[g30x] g30 x position 0.000 mm
[g30y] g30 y position 0.000 mm
[g30z] g30 z position 0.000 mm
[g30a] g30 a position 0.000 deg
[g30b] g30 b position 0.000 deg
[g30c] g30 c position 0.000 deg
tinyg [mm] ok>
tinyg [mm] ok>
..//
Application Start
Version: 1.0.8340.22961, build date: 11/01/2022 12:45:22
Reading application settings from C:\LitePlacer\LitePlacer.Appsettings
Creating data file backups to C:\LitePlacer\DataBackup\2024-06-07 15.32.18
Basic Setup tab begin
LoadVideoAlgorithms from C:\LitePlacer\LitePlacer.VideoAlgorithms
UpdateVideoProcessing()
BuildFunctionsList:
No saved temp CAD data file
No saved temp job data file
DownCamera already stopped
UpCamera already stopped
Downcamera moniker not found. Moniker: @device:pnp:\\?\usb#vid_f007&pid_a999&mi_00#6&1b900a24&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global
camera resolution not set.
camera resolution not set.
camera resolution not set.
camera resolution not set.
camera resolution not set.
camera resolution not set.
camera resolution not set.
camera resolution not set.
Loading tapes with nozzles data
Reading v2 format file C:\LitePlacer\LitePlacer.TapesData_v2
Loading nozzles data
Reading v2 format file C:\LitePlacer\LitePlacer.NozzlesLoadData_v2
Reading v2 format file C:\LitePlacer\LitePlacer.NozzlesUnLoadData_v2
Reading v2 format file C:\LitePlacer\LitePlacer.NozzlesVisionParameters_v21
Loading nozzle calibration data from C:\LitePlacer\LitePlacer.NozzlesCalibrationData_v3
Connected to serial port COM3
==> {sr:n}
TinyG board found.
<== {"r":{"sr":{"posx":0.000,"posy":0.000,"posz":0.000,"posa":0.000,"feed":0.00,"vel":0.00,"unit":1,"coor":1,"dist":0,"frmo":1,"stat":1}},"f":[1,0,7,3689]}
ReadyEvent r:sr
Reading TinyG settings:
==> {"st":""}
<== {"r":{"st":0},"f":[1,0,10,8400]}
ReadyEvent r
==> {"mt":""}
<== {"r":{"mt":2.00},"f":[1,0,10,273]}
mt value: 2
ReadyEvent r
==> {"jv":""}
<== {"r":{"jv":4},"f":[1,0,10,6700]}
ReadyEvent r
==> {"js":""}
<== {"r":{"js":1},"f":[1,0,10,5969]}
ReadyEvent r
==> {"tv":""}
<== {"r":{"tv":1},"f":[1,0,10,7227]}
ReadyEvent r
==> {"qv":""}
<== {"r":{"qv":0},"f":[1,0,10,5788]}
ReadyEvent r
==> {"sv":""}
<== {"r":{"sv":1},"f":[1,0,10,9297]}
ReadyEvent r
==> {"si":""}
<== {"r":{"si":200},"f":[1,0,10,4311]}
ReadyEvent r
==> {"gun":""}
<== {"r":{"gun":1},"f":[1,0,11,7651]}
ReadyEvent r
==> {"1ma":""}
<== {"r":{"1ma":0},"f":[1,0,11,7976]}
ReadyEvent r
==> {"1sa":""}
<== {"r":{"1sa":1.800},"f":[1,0,11,327]}
ReadyEvent r
==> {"1tr":""}
<== {"r":{"1tr":1.2500},"f":[1,0,11,5878]}
ReadyEvent r
==> {"1mi":""}
<== {"r":{"1mi":8},"f":[1,0,11,7985]}
ReadyEvent r
==> {"1po":""}
<== {"r":{"1po":0},"f":[1,0,11,5004]}
ReadyEvent r
==> {"1pm":""}
<== {"r":{"1pm":2},"f":[1,0,11,3385]}
ReadyEvent r
==> {"2ma":""}
<== {"r":{"2ma":1},"f":[1,0,11,2464]}
ReadyEvent r
==> {"2sa":""}
<== {"r":{"2sa":1.800},"f":[1,0,11,2461]}
ReadyEvent r
==> {"2tr":""}
<== {"r":{"2tr":1.2500},"f":[1,0,11,2424]}
ReadyEvent r
==> {"2mi":""}
<== {"r":{"2mi":8},"f":[1,0,11,1659]}
ReadyEvent r
==> {"2po":""}
<== {"r":{"2po":0},"f":[1,0,11,5513]}
ReadyEvent r
==> {"2pm":""}
<== {"r":{"2pm":2},"f":[1,0,11,7058]}
ReadyEvent r
==> {"3ma":""}
<== {"r":{"3ma":2},"f":[1,0,11,3787]}
ReadyEvent r
==> {"3sa":""}
<== {"r":{"3sa":1.800},"f":[1,0,11,1431]}
ReadyEvent r
==> {"3tr":""}
<== {"r":{"3tr":1.2500},"f":[1,0,11,8969]}
ReadyEvent r
==> {"3mi":""}
<== {"r":{"3mi":8},"f":[1,0,11,5332]}
ReadyEvent r
==> {"3po":""}
<== {"r":{"3po":0},"f":[1,0,11,9186]}
ReadyEvent r
==> {"3pm":""}
<== {"r":{"3pm":2},"f":[1,0,11,7567]}
ReadyEvent r
==> {"4ma":""}
<== {"r":{"4ma":3},"f":[1,0,11,8274]}
ReadyEvent r
==> {"4sa":""}
<== {"r":{"4sa":1.800},"f":[1,0,11,401]}
ReadyEvent r
==> {"4tr":""}
<== {"r":{"4tr":360.0000},"f":[1,0,11,6185]}
ReadyEvent r
==> {"4mi":""}
<== {"r":{"4mi":8},"f":[1,0,11,9005]}
ReadyEvent r
==> {"4po":""}
<== {"r":{"4po":0},"f":[1,0,11,2860]}
ReadyEvent r
==> {"4pm":""}
<== {"r":{"4pm":2},"f":[1,0,11,1241]}
ReadyEvent r
==> {"Xam":""}
<== {"r":{"xam":1},"f":[1,0,11,9625]}
ReadyEvent r
==> {"Xvm":""}
<== {"r":{"xvm":800},"f":[1,0,11,453]}
ReadyEvent r
==> {"Xfr":""}
<== {"r":{"xfr":800},"f":[1,0,11,3768]}
ReadyEvent r
==> {"Xtn":""}
<== {"r":{"xtn":0.000},"f":[1,0,11,7296]}
ReadyEvent r
==> {"Xtm":""}
<== {"r":{"xtm":150.000},"f":[1,0,11,3844]}
ReadyEvent r
==> {"Xjm":""}
<== {"r":{"xjm":20},"f":[1,0,11,7168]}
ReadyEvent r
==> {"Xjh":""}
<== {"r":{"xjh":40},"f":[1,0,11,9006]}
ReadyEvent r
==> {"Xsv":""}
<== {"r":{"xsv":100},"f":[1,0,11,5496]}
ReadyEvent r
==> {"Xlv":""}
<== {"r":{"xlv":100},"f":[1,0,11,1277]}
ReadyEvent r
==> {"Xlb":""}
<== {"r":{"xlb":5.000},"f":[1,0,11,9591]}
ReadyEvent r
==> {"Xzb":""}
<== {"r":{"xzb":1.000},"f":[1,0,11,441]}
ReadyEvent r
==> {"Yam":""}
<== {"r":{"yam":1},"f":[1,0,11,3299]}
ReadyEvent r
==> {"Yvm":""}
<== {"r":{"yvm":800},"f":[1,0,11,2503]}
ReadyEvent r
==> {"Yfr":""}
<== {"r":{"yfr":800},"f":[1,0,11,5818]}
ReadyEvent r
==> {"Ytn":""}
<== {"r":{"ytn":0.000},"f":[1,0,11,6266]}
ReadyEvent r
==> {"Ytm":""}
<== {"r":{"ytm":150.000},"f":[1,0,11,6759]}
ReadyEvent r
==> {"Yjm":""}
<== {"r":{"yjm":20},"f":[1,0,11,2057]}
ReadyEvent r
==> {"Yjh":""}
<== {"r":{"yjh":40},"f":[1,0,11,3895]}
ReadyEvent r
==> {"Ysv":""}
<== {"r":{"ysv":100},"f":[1,0,11,7546]}
ReadyEvent r
==> {"Ylv":""}
<== {"r":{"ylv":100},"f":[1,0,11,3327]}
ReadyEvent r
==> {"Ylb":""}
<== {"r":{"ylb":5.000},"f":[1,0,11,1726]}
ReadyEvent r
==> {"Yzb":""}
<== {"r":{"yzb":1.000},"f":[1,0,11,9410]}
ReadyEvent r
==> {"Zam":""}
<== {"r":{"zam":1},"f":[1,0,11,6972]}
ReadyEvent r
==> {"Zvm":""}
<== {"r":{"zvm":8},"f":[1,0,11,211]}
ReadyEvent r
==> {"Zfr":""}
<== {"r":{"zfr":8},"f":[1,0,11,7527]}
ReadyEvent r
==> {"Ztn":""}
<== {"r":{"ztn":0.000},"f":[1,0,11,8400]}
ReadyEvent r
==> {"Ztm":""}
<== {"r":{"ztm":75.000},"f":[1,0,11,1518]}
ReadyEvent r
==> {"Zjm":""}
<== {"r":{"zjm":20},"f":[1,0,11,6945]}
ReadyEvent r
==> {"Zjh":""}
<== {"r":{"zjh":40},"f":[1,0,11,8783]}
ReadyEvent r
==> {"Zsv":""}
<== {"r":{"zsv":5},"f":[1,0,11,2010]}
ReadyEvent r
==> {"Zlv":""}
<== {"r":{"zlv":100},"f":[1,0,11,5377]}
ReadyEvent r
==> {"Zlb":""}
<== {"r":{"zlb":5.000},"f":[1,0,11,696]}
ReadyEvent r
==> {"Zzb":""}
<== {"r":{"zzb":1.000},"f":[1,0,11,8380]}
ReadyEvent r
==> {"Aam":""}
<== {"r":{"aam":3},"f":[1,0,11,2588]}
ReadyEvent r
==> {"Avm":""}
<== {"r":{"avm":10000},"f":[1,0,11,4571]}
ReadyEvent r
==> {"Afr":""}
<== {"r":{"afr":10000},"f":[1,0,11,1977]}
ReadyEvent r
==> {"Atn":""}
<== {"r":{"atn":-1.000},"f":[1,0,11,8801]}
ReadyEvent r
==> {"Atm":""}
<== {"r":{"atm":-1.000},"f":[1,0,11,8916]}
ReadyEvent r
==> {"Ajm":""}
<== {"r":{"ajm":20},"f":[1,0,11,1062]}
ReadyEvent r
==> {"Ajh":""}
<== {"r":{"ajh":11520},"f":[1,0,11,8708]}
ReadyEvent r
==> {"Asv":""}
<== {"r":{"asv":600},"f":[1,0,11,5835]}
ReadyEvent r
==> {"ec":""}
<== {"r":{"ec":0},"f":[1,0,10,5349]}
ValueUpdater, no operation(ec, 0)
ReadyEvent r
==> {"ee":""}
<== {"r":{"ee":0},"f":[1,0,10,5432]}
ValueUpdater, no operation(ee, 0)
ReadyEvent r
==> {"ex":""}
<== {"r":{"ex":1},"f":[1,0,10,1021]}
ValueUpdater, no operation(ex, 1)
ReadyEvent r
==> {"Xsn":""}
<== {"r":{"xsn":3},"f":[1,0,11,6374]}
ReadyEvent r
==> {"Xsx":""}
<== {"r":{"xsx":2},"f":[1,0,11,8632]}
ReadyEvent r
==> {"Ysn":""}
<== {"r":{"ysn":3},"f":[1,0,11,48]}
ReadyEvent r
==> {"Ysx":""}
<== {"r":{"ysx":2},"f":[1,0,11,9141]}
ReadyEvent r
==> {"Zsn":""}
<== {"r":{"zsn":3},"f":[1,0,11,3721]}
ReadyEvent r
==> {"Zsx":""}
<== {"r":{"zsx":2},"f":[1,0,11,2815]}
ReadyEvent r
==> {"Asn":""}
<== {"r":{"asn":1},"f":[1,0,11,6080]}
ReadyEvent r
==> {"Asx":""}
<== {"r":{"asx":0},"f":[1,0,11,5174]}
ReadyEvent r
==> {"me":""}
<== {"r":{"me":null},"f":[1,0,10,3586]}
PumpOff(), TinyG
==> {"gc":"M05"}
VacuumOff(), TinyG
==> {"gc":"M09"}
<== {"r":{},"f":[1,0,13,72]}
<== {"r":{},"f":[1,0,13,72]}
<== {"er":{"fb":440.20,"st":204,"msg":"Limit switch hit - Shutdown occurred"}}
<== {"r":{"fv":0.970,"fb":440.20,"hp":1,"hv":8,"id":"0Y0899-SPA","msg":"SYSTEM READY"},"f":[1,0,0,6941]}
Startup completed.
B: Clear Err.
Com closing delay:
Done.
Connected to serial port COM3
==> {sr:n}
TinyG board found.
<== {"r":{"sr":{"posx":0.000,"posy":0.000,"posz":0.000,"posa":0.000,"feed":0.00,"vel":0.00,"unit":1,"coor":1,"dist":0,"frmo":1,"stat":1}},"f":[1,0,7,3689]}
ReadyEvent r:sr
Reading TinyG settings:
==> {"st":""}
<== {"r":{"st":0},"f":[1,0,10,8400]}
ReadyEvent r
==> {"mt":""}
<== {"r":{"mt":2.00},"f":[1,0,10,273]}
mt value: 2
ReadyEvent r
==> {"jv":""}
<== {"r":{"jv":4},"f":[1,0,10,6700]}
ReadyEvent r
==> {"js":""}
<== {"r":{"js":1},"f":[1,0,10,5969]}
ReadyEvent r
==> {"tv":""}
<== {"r":{"tv":1},"f":[1,0,10,7227]}
ReadyEvent r
==> {"qv":""}
<== {"r":{"qv":0},"f":[1,0,10,5788]}
ReadyEvent r
==> {"sv":""}
<== {"r":{"sv":1},"f":[1,0,10,9297]}
ReadyEvent r
==> {"si":""}
<== {"r":{"si":200},"f":[1,0,10,4311]}
ReadyEvent r
==> {"gun":""}
<== {"r":{"gun":1},"f":[1,0,11,7651]}
ReadyEvent r
==> {"1ma":""}
<== {"r":{"1ma":0},"f":[1,0,11,7976]}
ReadyEvent r
==> {"1sa":""}
<== {"r":{"1sa":1.800},"f":[1,0,11,327]}
ReadyEvent r
==> {"1tr":""}
<== {"r":{"1tr":1.2500},"f":[1,0,11,5878]}
ReadyEvent r
==> {"1mi":""}
<== {"r":{"1mi":8},"f":[1,0,11,7985]}
ReadyEvent r
==> {"1po":""}
<== {"r":{"1po":0},"f":[1,0,11,5004]}
ReadyEvent r
==> {"1pm":""}
<== {"r":{"1pm":2},"f":[1,0,11,3385]}
ReadyEvent r
==> {"2ma":""}
<== {"r":{"2ma":1},"f":[1,0,11,2464]}
ReadyEvent r
==> {"2sa":""}
<== {"r":{"2sa":1.800},"f":[1,0,11,2461]}
ReadyEvent r
==> {"2tr":""}
<== {"r":{"2tr":1.2500},"f":[1,0,11,2424]}
ReadyEvent r
==> {"2mi":""}
<== {"r":{"2mi":8},"f":[1,0,11,1659]}
ReadyEvent r
==> {"2po":""}
<== {"r":{"2po":0},"f":[1,0,11,5513]}
ReadyEvent r
==> {"2pm":""}
<== {"r":{"2pm":2},"f":[1,0,11,7058]}
ReadyEvent r
==> {"3ma":""}
<== {"r":{"3ma":2},"f":[1,0,11,3787]}
ReadyEvent r
==> {"3sa":""}
<== {"r":{"3sa":1.800},"f":[1,0,11,1431]}
ReadyEvent r
==> {"3tr":""}
<== {"r":{"3tr":1.2500},"f":[1,0,11,8969]}
ReadyEvent r
==> {"3mi":""}
<== {"r":{"3mi":8},"f":[1,0,11,5332]}
ReadyEvent r
==> {"3po":""}
<== {"r":{"3po":0},"f":[1,0,11,9186]}
ReadyEvent r
==> {"3pm":""}
<== {"r":{"3pm":2},"f":[1,0,11,7567]}
ReadyEvent r
==> {"4ma":""}
<== {"r":{"4ma":3},"f":[1,0,11,8274]}
ReadyEvent r
==> {"4sa":""}
<== {"r":{"4sa":1.800},"f":[1,0,11,401]}
ReadyEvent r
==> {"4tr":""}
<== {"r":{"4tr":360.0000},"f":[1,0,11,6185]}
ReadyEvent r
==> {"4mi":""}
<== {"r":{"4mi":8},"f":[1,0,11,9005]}
ReadyEvent r
==> {"4po":""}
<== {"r":{"4po":0},"f":[1,0,11,2860]}
ReadyEvent r
==> {"4pm":""}
<== {"r":{"4pm":2},"f":[1,0,11,1241]}
ReadyEvent r
==> {"Xam":""}
<== {"r":{"xam":1},"f":[1,0,11,9625]}
ReadyEvent r
==> {"Xvm":""}
<== {"r":{"xvm":800},"f":[1,0,11,453]}
ReadyEvent r
==> {"Xfr":""}
<== {"r":{"xfr":800},"f":[1,0,11,3768]}
ReadyEvent r
==> {"Xtn":""}
<== {"r":{"xtn":0.000},"f":[1,0,11,7296]}
ReadyEvent r
==> {"Xtm":""}
<== {"r":{"xtm":150.000},"f":[1,0,11,3844]}
ReadyEvent r
==> {"Xjm":""}
<== {"r":{"xjm":20},"f":[1,0,11,7168]}
ReadyEvent r
==> {"Xjh":""}
<== {"r":{"xjh":40},"f":[1,0,11,9006]}
ReadyEvent r
==> {"Xsv":""}
<== {"r":{"xsv":100},"f":[1,0,11,5496]}
ReadyEvent r
==> {"Xlv":""}
<== {"r":{"xlv":100},"f":[1,0,11,1277]}
ReadyEvent r
==> {"Xlb":""}
<== {"r":{"xlb":5.000},"f":[1,0,11,9591]}
ReadyEvent r
==> {"Xzb":""}
<== {"r":{"xzb":1.000},"f":[1,0,11,441]}
ReadyEvent r
==> {"Yam":""}
<== {"r":{"yam":1},"f":[1,0,11,3299]}
ReadyEvent r
==> {"Yvm":""}
<== {"r":{"yvm":800},"f":[1,0,11,2503]}
ReadyEvent r
==> {"Yfr":""}
<== {"r":{"yfr":800},"f":[1,0,11,5818]}
ReadyEvent r
==> {"Ytn":""}
<== {"r":{"ytn":0.000},"f":[1,0,11,6266]}
ReadyEvent r
==> {"Ytm":""}
<== {"r":{"ytm":150.000},"f":[1,0,11,6759]}
ReadyEvent r
==> {"Yjm":""}
<== {"r":{"yjm":20},"f":[1,0,11,2057]}
ReadyEvent r
==> {"Yjh":""}
<== {"r":{"yjh":40},"f":[1,0,11,3895]}
ReadyEvent r
==> {"Ysv":""}
<== {"r":{"ysv":100},"f":[1,0,11,7546]}
ReadyEvent r
==> {"Ylv":""}
<== {"r":{"ylv":100},"f":[1,0,11,3327]}
ReadyEvent r
==> {"Ylb":""}
<== {"r":{"ylb":5.000},"f":[1,0,11,1726]}
ReadyEvent r
==> {"Yzb":""}
<== {"r":{"yzb":1.000},"f":[1,0,11,9410]}
ReadyEvent r
==> {"Zam":""}
<== {"r":{"zam":1},"f":[1,0,11,6972]}
ReadyEvent r
==> {"Zvm":""}
<== {"r":{"zvm":8},"f":[1,0,11,211]}
ReadyEvent r
==> {"Zfr":""}
<== {"r":{"zfr":8},"f":[1,0,11,7527]}
ReadyEvent r
==> {"Ztn":""}
<== {"r":{"ztn":0.000},"f":[1,0,11,8400]}
ReadyEvent r
==> {"Ztm":""}
<== {"r":{"ztm":75.000},"f":[1,0,11,1518]}
ReadyEvent r
==> {"Zjm":""}
<== {"r":{"zjm":20},"f":[1,0,11,6945]}
ReadyEvent r
==> {"Zjh":""}
<== {"r":{"zjh":40},"f":[1,0,11,8783]}
ReadyEvent r
==> {"Zsv":""}
<== {"r":{"zsv":5},"f":[1,0,11,2010]}
ReadyEvent r
==> {"Zlv":""}
<== {"r":{"zlv":100},"f":[1,0,11,5377]}
ReadyEvent r
==> {"Zlb":""}
<== {"r":{"zlb":5.000},"f":[1,0,11,696]}
ReadyEvent r
==> {"Zzb":""}
<== {"r":{"zzb":1.000},"f":[1,0,11,8380]}
ReadyEvent r
==> {"Aam":""}
<== {"r":{"aam":3},"f":[1,0,11,2588]}
ReadyEvent r
==> {"Avm":""}
<== {"r":{"avm":10000},"f":[1,0,11,4571]}
ReadyEvent r
==> {"Afr":""}
<== {"r":{"afr":10000},"f":[1,0,11,1977]}
ReadyEvent r
==> {"Atn":""}
<== {"r":{"atn":-1.000},"f":[1,0,11,8801]}
ReadyEvent r
==> {"Atm":""}
<== {"r":{"atm":-1.000},"f":[1,0,11,8916]}
ReadyEvent r
==> {"Ajm":""}
<== {"r":{"ajm":20},"f":[1,0,11,1062]}
ReadyEvent r
==> {"Ajh":""}
<== {"r":{"ajh":11520},"f":[1,0,11,8708]}
ReadyEvent r
==> {"Asv":""}
<== {"r":{"asv":600},"f":[1,0,11,5835]}
ReadyEvent r
==> {"ec":""}
<== {"r":{"ec":0},"f":[1,0,10,5349]}
ValueUpdater, no operation(ec, 0)
ReadyEvent r
==> {"ee":""}
<== {"r":{"ee":0},"f":[1,0,10,5432]}
ValueUpdater, no operation(ee, 0)
ReadyEvent r
==> {"ex":""}
<== {"r":{"ex":1},"f":[1,0,10,1021]}
ValueUpdater, no operation(ex, 1)
ReadyEvent r
==> {"Xsn":""}
<== {"r":{"xsn":3},"f":[1,0,11,6374]}
ReadyEvent r
==> {"Xsx":""}
<== {"r":{"xsx":2},"f":[1,0,11,8632]}
ReadyEvent r
==> {"Ysn":""}
<== {"r":{"ysn":3},"f":[1,0,11,48]}
ReadyEvent r
==> {"Ysx":""}
<== {"r":{"ysx":2},"f":[1,0,11,9141]}
ReadyEvent r
==> {"Zsn":""}
<== {"r":{"zsn":3},"f":[1,0,11,3721]}
ReadyEvent r
==> {"Zsx":""}
<== {"r":{"zsx":2},"f":[1,0,11,2815]}
ReadyEvent r
==> {"Asn":""}
<== {"r":{"asn":1},"f":[1,0,11,6080]}
ReadyEvent r
==> {"Asx":""}
<== {"r":{"asx":0},"f":[1,0,11,5174]}
ReadyEvent r
==> {"me":""}
<== {"r":{"me":null},"f":[1,0,10,3586]}
PumpOff(), TinyG
==> {"gc":"M05"}
VacuumOff(), TinyG
==> {"gc":"M09"}
<== {"r":{},"f":[1,0,13,72]}
<== {"r":{},"f":[1,0,13,72]}
Connected to serial port COM3
==> #{sr:n}
TinyG board found.
<== {"r":{"sr":{"posx":0.000,"posy":0.000,"posz":0.000,"posa":0.000,"feed":0.00,"vel":0.00,"unit":1,"coor":1,"dist":0,"frmo":1,"stat":1}},"f":[1,0,7,3689]}
ReadyEvent r:sr
Reading TinyG settings:
==> {"st":""}
<== {"r":{"st":0},"f":[1,0,10,8400]}
ReadyEvent r
==> {"mt":""}
<== {"r":{"mt":2.00},"f":[1,0,10,273]}
mt value: 2
ReadyEvent r
==> {"jv":""}
<== {"r":{"jv":4},"f":[1,0,10,6700]}
ReadyEvent r
==> {"js":""}
<== {"r":{"js":1},"f":[1,0,10,5969]}
ReadyEvent r
==> {"tv":""}
<== {"r":{"tv":1},"f":[1,0,10,7227]}
ReadyEvent r
==> {"qv":""}
<== {"r":{"qv":0},"f":[1,0,10,5788]}
ReadyEvent r
==> {"sv":""}
<== {"r":{"sv":1},"f":[1,0,10,9297]}
ReadyEvent r
==> {"si":""}
<== {"r":{"si":200},"f":[1,0,10,4311]}
ReadyEvent r
==> {"gun":""}
<== {"r":{"gun":1},"f":[1,0,11,7651]}
ReadyEvent r
==> {"1ma":""}
<== {"r":{"1ma":0},"f":[1,0,11,7976]}
ReadyEvent r
==> {"1sa":""}
<== {"r":{"1sa":1.800},"f":[1,0,11,327]}
ReadyEvent r
==> {"1tr":""}
<== {"r":{"1tr":1.2500},"f":[1,0,11,5878]}
ReadyEvent r
==> {"1mi":""}
<== {"r":{"1mi":8},"f":[1,0,11,7985]}
ReadyEvent r
==> {"1po":""}
<== {"r":{"1po":0},"f":[1,0,11,5004]}
ReadyEvent r
==> {"1pm":""}
<== {"r":{"1pm":2},"f":[1,0,11,3385]}
ReadyEvent r
==> {"2ma":""}
<== {"r":{"2ma":1},"f":[1,0,11,2464]}
ReadyEvent r
==> {"2sa":""}
<== {"r":{"2sa":1.800},"f":[1,0,11,2461]}
ReadyEvent r
==> {"2tr":""}
<== {"r":{"2tr":1.2500},"f":[1,0,11,2424]}
ReadyEvent r
==> {"2mi":""}
<== {"r":{"2mi":8},"f":[1,0,11,1659]}
ReadyEvent r
==> {"2po":""}
<== {"r":{"2po":0},"f":[1,0,11,5513]}
ReadyEvent r
==> {"2pm":""}
<== {"r":{"2pm":2},"f":[1,0,11,7058]}
ReadyEvent r
==> {"3ma":""}
<== {"r":{"3ma":2},"f":[1,0,11,3787]}
ReadyEvent r
==> {"3sa":""}
<== {"r":{"3sa":1.800},"f":[1,0,11,1431]}
ReadyEvent r
==> {"3tr":""}
<== {"r":{"3tr":1.2500},"f":[1,0,11,8969]}
ReadyEvent r
==> {"3mi":""}
<== {"r":{"3mi":8},"f":[1,0,11,5332]}
ReadyEvent r
==> {"3po":""}
<== {"r":{"3po":0},"f":[1,0,11,9186]}
ReadyEvent r
==> {"3pm":""}
<== {"r":{"3pm":2},"f":[1,0,11,7567]}
ReadyEvent r
==> {"4ma":""}
<== {"r":{"4ma":3},"f":[1,0,11,8274]}
ReadyEvent r
==> {"4sa":""}
<== {"r":{"4sa":1.800},"f":[1,0,11,401]}
ReadyEvent r
==> {"4tr":""}
<== {"r":{"4tr":360.0000},"f":[1,0,11,6185]}
ReadyEvent r
==> {"4mi":""}
<== {"r":{"4mi":8},"f":[1,0,11,9005]}
ReadyEvent r
==> {"4po":""}
<== {"r":{"4po":0},"f":[1,0,11,2860]}
ReadyEvent r
==> {"4pm":""}
<== {"r":{"4pm":2},"f":[1,0,11,1241]}
ReadyEvent r
==> {"Xam":""}
<== {"r":{"xam":1},"f":[1,0,11,9625]}
ReadyEvent r
==> {"Xvm":""}
<== {"r":{"xvm":800},"f":[1,0,11,453]}
ReadyEvent r
==> {"Xfr":""}
<== {"r":{"xfr":800},"f":[1,0,11,3768]}
ReadyEvent r
==> {"Xtn":""}
<== {"r":{"xtn":0.000},"f":[1,0,11,7296]}
ReadyEvent r
==> {"Xtm":""}
<== {"r":{"xtm":150.000},"f":[1,0,11,3844]}
ReadyEvent r
==> {"Xjm":""}
<== {"r":{"xjm":20},"f":[1,0,11,7168]}
ReadyEvent r
==> {"Xjh":""}
<== {"r":{"xjh":40},"f":[1,0,11,9006]}
ReadyEvent r
==> {"Xsv":""}
<== {"r":{"xsv":100},"f":[1,0,11,5496]}
ReadyEvent r
==> {"Xlv":""}
<== {"r":{"xlv":100},"f":[1,0,11,1277]}
ReadyEvent r
==> {"Xlb":""}
<== {"r":{"xlb":5.000},"f":[1,0,11,9591]}
ReadyEvent r
==> {"Xzb":""}
<== {"r":{"xzb":1.000},"f":[1,0,11,441]}
ReadyEvent r
==> {"Yam":""}
<== {"r":{"yam":1},"f":[1,0,11,3299]}
ReadyEvent r
==> {"Yvm":""}
<== {"r":{"yvm":800},"f":[1,0,11,2503]}
ReadyEvent r
==> {"Yfr":""}
<== {"r":{"yfr":800},"f":[1,0,11,5818]}
ReadyEvent r
==> {"Ytn":""}
<== {"r":{"ytn":0.000},"f":[1,0,11,6266]}
ReadyEvent r
==> {"Ytm":""}
<== {"r":{"ytm":150.000},"f":[1,0,11,6759]}
ReadyEvent r
==> {"Yjm":""}
<== {"r":{"yjm":20},"f":[1,0,11,2057]}
ReadyEvent r
==> {"Yjh":""}
<== {"r":{"yjh":40},"f":[1,0,11,3895]}
ReadyEvent r
==> {"Ysv":""}
<== {"r":{"ysv":100},"f":[1,0,11,7546]}
ReadyEvent r
==> {"Ylv":""}
<== {"r":{"ylv":100},"f":[1,0,11,3327]}
ReadyEvent r
==> {"Ylb":""}
<== {"r":{"ylb":5.000},"f":[1,0,11,1726]}
ReadyEvent r
==> {"Yzb":""}
<== {"r":{"yzb":1.000},"f":[1,0,11,9410]}
ReadyEvent r
==> {"Zam":""}
<== {"r":{"zam":1},"f":[1,0,11,6972]}
ReadyEvent r
==> {"Zvm":""}
<== {"r":{"zvm":8},"f":[1,0,11,211]}
ReadyEvent r
==> {"Zfr":""}
<== {"r":{"zfr":8},"f":[1,0,11,7527]}
ReadyEvent r
==> {"Ztn":""}
<== {"r":{"ztn":0.000},"f":[1,0,11,8400]}
ReadyEvent r
==> {"Ztm":""}
<== {"r":{"ztm":75.000},"f":[1,0,11,1518]}
ReadyEvent r
==> {"Zjm":""}
<== {"r":{"zjm":20},"f":[1,0,11,6945]}
ReadyEvent r
==> {"Zjh":""}
<== {"r":{"zjh":40},"f":[1,0,11,8783]}
ReadyEvent r
==> {"Zsv":""}
<== {"r":{"zsv":5},"f":[1,0,11,2010]}
ReadyEvent r
==> {"Zlv":""}
<== {"r":{"zlv":100},"f":[1,0,11,5377]}
ReadyEvent r
==> {"Zlb":""}
<== {"r":{"zlb":5.000},"f":[1,0,11,696]}
ReadyEvent r
==> {"Zzb":""}
<== {"r":{"zzb":1.000},"f":[1,0,11,8380]}
ReadyEvent r
==> {"Aam":""}
<== {"r":{"aam":3},"f":[1,0,11,2588]}
ReadyEvent r
==> {"Avm":""}
<== {"r":{"avm":10000},"f":[1,0,11,4571]}
ReadyEvent r
==> {"Afr":""}
<== {"r":{"afr":10000},"f":[1,0,11,1977]}
ReadyEvent r
==> {"Atn":""}
<== {"r":{"atn":-1.000},"f":[1,0,11,8801]}
ReadyEvent r
==> {"Atm":""}
<== {"r":{"atm":-1.000},"f":[1,0,11,8916]}
ReadyEvent r
==> {"Ajm":""}
<== {"r":{"ajm":20},"f":[1,0,11,1062]}
ReadyEvent r
==> {"Ajh":""}
<== {"r":{"ajh":11520},"f":[1,0,11,8708]}
ReadyEvent r
==> {"Asv":""}
<== {"r":{"asv":600},"f":[1,0,11,5835]}
ReadyEvent r
==> {"ec":""}
<== {"r":{"ec":0},"f":[1,0,10,5349]}
ValueUpdater, no operation(ec, 0)
ReadyEvent r
==> {"ee":""}
<== {"r":{"ee":0},"f":[1,0,10,5432]}
ValueUpdater, no operation(ee, 0)
ReadyEvent r
==> {"ex":""}
<== {"r":{"ex":1},"f":[1,0,10,1021]}
ValueUpdater, no operation(ex, 1)
ReadyEvent r
==> {"Xsn":""}
<== {"r":{"xsn":3},"f":[1,0,11,6374]}
ReadyEvent r
==> {"Xsx":""}
<== {"r":{"xsx":2},"f":[1,0,11,8632]}
ReadyEvent r
==> {"Ysn":""}
<== {"r":{"ysn":3},"f":[1,0,11,48]}
ReadyEvent r
==> {"Ysx":""}
<== {"r":{"ysx":2},"f":[1,0,11,9141]}
ReadyEvent r
==> {"Zsn":""}
<== {"r":{"zsn":3},"f":[1,0,11,3721]}
ReadyEvent r
==> {"Zsx":""}
<== {"r":{"zsx":2},"f":[1,0,11,2815]}
ReadyEvent r
==> {"Asn":""}
<== {"r":{"asn":1},"f":[1,0,11,6080]}
ReadyEvent r
==> {"Asx":""}
<== {"r":{"asx":0},"f":[1,0,11,5174]}
ReadyEvent r
==> {"me":""}
<== {"r":{"me":null},"f":[1,0,10,3586]}
PumpOff(), TinyG
==> {"gc":"M05"}
VacuumOff(), TinyG
==> {"gc":"M09"}
<== {"r":{},"f":[1,0,13,72]}
<== {"r":{},"f":[1,0,13,72]}
Startup completed.