version 0.91.1 missing printing progress show in LCD 2004

I upgrade Regetier-Server to version 0.91.1 and connect to Repetier-Firmware version 1.0.3 .

Found the printing progress not show in the LCD 2004 after i upgrade the Regetier-Server to version 0.91.1. Seem it is missing GCODE M530/M531/M532.

Comments

  • You should update to 0.91.2 since 0.91.1 has a bug that can cause crashes.

    Progress view is only shown if fimrware responds on M115 with a line
    Cap:PROGRESS:1

    Can you verify if your firmware sends this. Will also test with next print here, also I did not touch that code. But you never know.
  • I just upgrade to 0.91.2 and it is same.

    below is the M115 response.

    17:14:35.016: FIRMWARE_NAME:Repetier_1.0.3 COMPILED:Dec 31 2018 FIRMWARE_URL:https://github.com/repetier/Repetier-Firmware/ PROTOCOL_VERSION:1.0 MACHINE_TYPE:Delta EXTRUDER_COUNT:1 REPETIER_PROTOCOL:3
    17:14:35.016: Cap:PROGRESS:1
    17:14:35.017: Cap:AUTOREPORT_TEMP:1
    17:14:35.017: Cap:EEPROM:1
    17:14:35.017: Cap:AUTOLEVEL:1
    17:14:35.017: Cap:Z_PROBE:1
    17:14:35.017: Cap:SOFTWARE_POWER:0
    17:14:35.018: Cap:TOGGLE_LIGHTS:0
    17:14:35.018: Cap:PAUSESTOP:1
    17:14:35.018: Cap:PREHEAT:1
    17:14:35.018: Printed filament:3222.06m Printing time:27 days 10 hours 43 min
    17:14:35.018: PrinterMode:FFF


  • edited February 25
    I run M115 manually and the print progress resumed. But when I reboot the Regetier-Server, it's has gone again until input M115 again.

    Seem it missing execule M115 when Regetier-Server connect to the printer.
  • Just tested it and I gut the command right away. In repetier.xml in firmwares folder it contains

    <connectionCommands>M110 N0
    M105
    M115
    M220 S100
    M221 S100
    M355
    G92 E0
    G90
    M82
    G21
    M114
    G90
    M111 S6
    M360
    M539 S1
        </connectionCommands>

    so after a connect it should execute M115.

    You can go to console, deactivate printer and activate it. Then you should also see if it gets executed. Checking the sources I see that printer gets initialized with false and once the Cap has been seen it is set to the result. There is no other line changing the value.

    What can happen is that on first connect you get a communication error, so the line is not detected. Happens sometimes, especially if there is lot of output in a short time.
  •     <name>Repetier-Firmware</name>
        <connectionCommands>M110 N0
    M105
    M115
    M220 S100
    M221 S100
    M355
    G92 E0
    G90
    M82
    G21
    M114
    G90
    M111 S6
    M360
    M539 S1
        </connectionCommands>

    I have the same setting found in firmwares/repetier.xml but seem it only execute the @getip.

    I fallback the version to 0.90.7 and found no problem. So I will stay at this version sometime until a new version.
  • Does your printer reset on connect? Because that are different handlings. Still searching why it can be that it does not happen in your case.
  • I am using a Due board + RAMPS-FD v2 with Repetier-Firmware version 1.0.3 connect through "Native Port" at baud rate 500000.

    Connect with "Native Port" won't trigger the board reset. And I am quite sure connectionCommands not sent to printer. But the printer LED has displayed the IP of Repetier-Server.

  • 1. Those startup gocde won't execute after I reboot the Repetier-Server. It also no any startup gcode execute when deactivate printer and activate it.

    2. After I execute those startup gcode manually, deactivate printer and activate can see Repetier-Server will execute those startup gcode.

    For workaround, I have to add this python script and execute it at raspberrypi bootup.
    import serial
    import urllib, json, time, datetime, sys
    
    #API Setting
    apikey='xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
    urllistPrinter = 'http://localhost:3344/printer/api/3DPrinter?apikey='+apikey+'&a=listPrinter'
    urlgetFirmwareData = 'http://localhost:3344/printer/api/3DPrinter?apikey='+apikey+'&a=getFirmwareData'
    urlsendCMD = 'http://localhost:3344/printer/api/3DPrinter?apikey='+apikey+'&a=send&data={"cmd":"##GCODE##"}'
    theCMDs = [ "M110 N0" , "M105" , "M115" , "M220 S100" , "M221 S100" , "M355" , "G92 E0" , "G90" , "M82" , "G21" , "M114" , "G90" , "M111 S6" , "M360" , "M539 S1" , "@getip" ]
    
    isconnected = False
    try:
      print('Get printer connect status ...')
      response = urllib.urlopen(urllistPrinter)
      data = json.loads(response.read())
      print(data)
      theprinteronline = data[0]['online']
      theprinteractive = data[0]['active']
      if theprinteronline == 1 and theprinteractive == True :
        print('printer is connected ...')
        isconnected = True
    except:
      print('Cannot execute API ...  may be normal...')
    
    try:
      if not isconnected :
        print('Try to kick start the Due board ...')
        ser = serial.Serial( port='/dev/serial/by-id/usb-Arduino__www.arduino.cc__Arduino_Due_Prog._Port_55730323831351411151-if00', baudrate=115200, parity=serial.PARITY_ODD, stopbits=serial.STOPBITS_TWO, bytesize=serial.SEVENBITS )
        if ser.isOpen():
          ser.close()
      else:
        print('no need to kick start the Due board...')
    except:
      print('Fail to connect serial port... exit()')
      exit()
    
    while 1:
      try:
        print('Get printer connect status ...')
        response = urllib.urlopen(urllistPrinter)
        data = json.loads(response.read())
        print(data)
        theprinteronline = data[0]['online']
        theprinteractive = data[0]['active']
        if theprinteronline == 1 and theprinteractive == True :
          print('printer is connected ...')
          break
      except:
        print('Exception - Fail to execute API')
      print('Printer not connected - Wait 10 sec ...')
      time.sleep(10)
    
    counttry=0
    countcmd=0
    while 1:
      try:
        print('Get firmware status ...')
        response = urllib.urlopen(urlgetFirmwareData)
        data = json.loads(response.read())
        print(data)
        thefirmware = data['firmware']['firmware']
        thefirmwarename = data['firmware']['name']
        if thefirmwarename == 'Repetier-Firmware':
          if thefirmware == '':
          #if thefirmware == 'Repetier_1.0.3':
            print('Execute startup GCODE ...')
            for thecmd in theCMDs:
              time.sleep(0.5)
              print('Send CMD: '+thecmd)
              theurl = urlsendCMD.replace('##GCODE##',thecmd)
              response = urllib.urlopen(theurl)
              data = response.read()
              if data == '{}':
                countcmd += 1
            print(str(countcmd) + ' command executed')
          else:
            print('Check passed - Exit')
            break
      except:
        print('Exception - Fail to execute API')
      counttry += 1
      print('Sleep 5 sec ... and retry('+str(counttry)+') ...')
      time.sleep(5)
    
Sign In or Register to comment.