Получите команду M114 во время печати с помощью Printrun

Я работаю над проектом, для которого я использую пакет Printrun для последовательной передачи моего G-кода на мой 3D-принтер (Creality Ender 3, прошивка Marlin). Идея заключается в том, что у меня есть внешняя кнопка, подключенная к Arduino таким образом, что всякий раз, когда я нажимаю эту кнопку, должна быть отправлена команда M114, и я хочу получить Z-позицию сопла.

На данный момент код выглядит так:

from printrun.printcore import printcore
from printrun import gcoder

# some code for button
import serial
import time

arduino = serial.Serial(port = 'COM5', baudrate = 9600, timeout = 0.1)
def Button():
    data = arduino.readline()
    time.sleep(0.05)
    return data


printer = printcore('COM4',115200)

gcode=[i.strip() for i in open('MyCode.gcode')]
gcode = gcoder.LightGCode(gcode)   
printer.startprint(gcode)

button = Button()
if button == b'1':
    printer.pause()
    print(printer.send_now("M114"))
    printer.resume()

Код работает, но я не получаю никакой информации о результате выполнения команды M114, когда нажимаю кнопку.

Вопросы:

  1. Есть ли что-то в моем коде, что я упускаю? Как я могу получить ответ от команды M114 с помощью Printrun?
  2. Знаете ли вы какой-нибудь другой пакет, который позволяет мне получить ответ от 3D-принтера?

, 👍1