Problem of connection. Empty buffer.

Greetings! Tell me what to look for in the settings to fix this problem: when the buffer is empty, the repetier-server writes in the console that there is no connection with the printer. Buffer emptying occurs at the end of printing. after receiving the last command, after a while, the printer restarts. The print head remains hot at the last point of its route, which spoils the finished product. After the restart, the server offers to restore printing and then the head drives off to the parking lot, as laid down by the slicer. The same problems occur during pause printing. You have to reconnect the printer so that you can control it. Firmware repetier v.1.0.4. What function monitors the buffer and leads to this result? help me please

Comments

  • The buffer in question is the communication buffer. Means the server is not receiving any data from firmware. Since our firmware does at least send one line every 2 seconds in that version it would mean that the usb connection is broken or firmware is hanging. Does the printer also have a lcd so you can test if firmware it self is working?

    Since it always happens at the end the guess is that one command is causing the problems. Often commands changing power consumption can lead to unexpected result. Or there is a bug in that command. Since you know nearly where it happens you could try sending the commands around there manually after enabling the heaters. Then you should see after which command connection is broken. As a test send e.g. M114 after each command to see in log if communication is still up.
  • edited September 2019
    I tried this code:
    M82 ;absolute extrusion mode
    G28 ;Home
    G1 Z15.0 F6000
    G1 X127.7 Y117.7 Z44.987 
    G1 X172.3 Y117.7 Z45.025 
    G1 X172.3 Y162.3 Z45.062 
    G1 X127.7 Y162.3 Z45.1 E1981.31701
    ;TIME_ELAPSED:4905.119486
    G1 F3000 E1978.31701
    M140 S0
    M104 S0
    M140 S0
    ;Retract the filament
    G92 E1
    G1 E-1 F300
    G28 X0 Y0
    M84
    M82 ;absolute extrusion mode
    M104 S0
    ;End of Gcode
  • edited September 2019
    Here is the result with a pause:


    21:00:55.114: N1 N1 M110
    21:00:55.120: ok
    21:03:03.053: wait (126)
    21:03:03.918: N2 M114
    21:03:03.934: ok 2
    21:03:03.934: X:-1.00 Y:-75.00 Z:45.100 E:-1.0000
    21:03:07.109: wait (3)
    21:03:07.918: N3 M104 S245 T0
    21:03:07.989: ok 3
    21:03:07.989: TargetExtr0:245
    21:03:09.075: wait
    21:03:09.799: N4 M114
    21:03:09.804: ok 4
    21:03:09.804: X:-1.00 Y:-75.00 Z:45.100 E:-1.0000
    21:03:18.812: wait (9)
    21:03:18.912: N5 M104 S0 T0
    21:03:18.917: ok 5
    21:03:18.918: TargetExtr0:0
    21:03:30.927: wait (12)
    21:03:31.282: N6 M530 S1 L1
    21:03:31.284: ok 6
    21:03:31.284: N7 M531 test
    21:03:31.386: ok 7
    21:03:31.387: N8 M532 X0 L0
    21:03:31.390: ok 8
    21:03:31.390: N9 M539 P0
    21:03:31.394: ok 9
    21:03:31.394: N10 G1 X127.7 Y117.7 Z44.987
    21:03:31.493: ok 10
    21:03:31.494: N11 M532 X5.8824 L0
    21:03:31.497: ok 11
    21:03:31.497: N12 G1 X172.3 Y117.7 Z45.025
    21:03:31.501: ok 12
    21:03:31.501: N13 G1 X172.3 Y162.3 Z45.062
    21:03:31.505: ok 13
    21:03:31.505: N14 G1 X127.7 Y162.3 Z45.1 E1981.31701
    21:03:31.509: ok 14
    21:03:31.509: N15 G1 F3000 E1978.31701
    21:03:31.513: ok 15
    21:03:31.513: N16 M140 S0
    21:03:31.517: ok 16
    21:03:31.517: N17 M104 S0
    21:03:31.521: ok 17
    21:03:31.521: N18 M140 S0
    21:03:39.644: busy:processing
    21:03:40.828: TargetExtr0:0
    21:03:40.828: ok 18
    21:03:40.829: N19 M117 ETA 21:04:33 day 24
    21:03:40.832: ok 19
    21:03:40.832: @pause Пользователь запросил паузу.
    21:03:40.833: N20 M532 X47.0588 L1
    21:03:40.936: ok 20
    21:03:40.936: @pause Пользователь запросил паузу.
    21:03:40.936: N21 M415 S0
    21:03:40.939: ok 21
    21:03:40.939: RESCUE_STATE: OFF
    21:03:40.939: TargetExtr0:0
    21:03:40.944: Info:POWERLOSS_DETECTED
    21:03:46.944: wait (6)
    21:03:47.926: N22 M117 ETE 00:00:56
    21:03:47.931: ok 22
    21:03:51.933: wait (4)
    21:03:52.236: N23 G90
    21:03:52.240: ok 23
    21:03:52.240: N24 G1 X127.700 Y162.300 F6000
    21:03:52.244: ok 24
    21:03:52.244: N25 G1 Z45.100 F600
    21:03:52.248: ok 25
    21:03:52.248: N26 G92 E1978.3170
    21:03:52.252: ok 26
    21:03:52.252: N27 G1 F3000
    21:03:52.257: ok 27
    21:03:52.257: N28 M415 S1
    21:03:52.261: ok 28
    21:03:52.261: RESCUE_STATE: OFF
    21:03:52.261: TargetExtr0:0
    21:03:52.261: N29 G92 E1
    21:03:52.265: Info:POWERLOSS_DETECTED
    21:04:02.269: Warning: Communication timeout - resetting communication buffer.
    21:04:02.269: Connection status: Buffered:11, Manual Commands: 2, Job Commands: 7
    21:04:02.269: Buffer used:11 Enforced free byte:0 lines stored:1
    21:04:02.269: N30 M117 ETA 21:04:53 day 24
    21:04:12.273: Warning: Communication timeout - resetting communication buffer.
    21:04:12.273: Connection status: Buffered:30, Manual Commands: 2, Job Commands: 7
    21:04:12.273: Buffer used:30 Enforced free byte:0 lines stored:1
    21:04:12.273: N31 M117 ETE 00:00:56
    21:04:22.278: Warning: Communication timeout - resetting communication buffer.
    21:04:22.278: Connection status: Buffered:23, Manual Commands: 2, Job Commands: 7
    21:04:22.278: Buffer used:23 Enforced free byte:0 lines stored:1
    21:04:22.278: Warning: Too many timeouts without response - disabling timeout message!


  • edited September 2019
    The printer is paused, does not accept commands, and does not respond to a connected encoder.
  • Here is what comes out when playing this code if I do nothing:

    21:55:16.688: wait (507)
    21:55:17.440: N60 M530 S1 L1
    21:55:17.445: ok 60
    21:55:17.445: N61 M531 test
    21:55:17.646: ok 61
    21:55:17.646: N62 M532 X0 L0
    21:55:17.650: ok 62
    21:55:17.650: N63 M539 P0
    21:55:17.654: ok 63
    21:55:17.654: N64 M82 ;absolute extrusion mode
    21:55:17.753: ok 64
    21:55:17.753: N65 M532 X5.0000 L0
    21:55:17.757: ok 65
    21:55:17.757: N66 G28 ;Home
    21:55:17.761: ok 66
    21:55:17.761: N67 G1 Z15.0 F6000
    21:55:25.769: busy:processing
    21:55:28.874: X:-1.00 Y:-75.00 Z:0.000 E:-1.0000
    21:55:28.874: ok 67
    21:55:28.874: N68 M117 ETA 21:56:06 day 24
    21:55:28.878: ok 68
    21:55:28.878: N69 M532 X15.0000 L0
    21:55:28.985: ok 69
    21:55:28.985: N70 G1 X127.7 Y117.7 Z44.987
    21:55:28.989: ok 70
    21:55:28.989: N71 M532 X20.0000 L0
    21:55:28.993: ok 71
    21:55:28.993: N72 G1 X172.3 Y117.7 Z45.025
    21:55:28.997: ok 72
    21:55:28.997: N73 G1 X172.3 Y162.3 Z45.062
    21:55:29.001: ok 73
    21:55:29.001: N74 G1 X127.7 Y162.3 Z45.1 E1981.31701
    21:55:29.005: ok 74
    21:55:29.005: N75 G1 F3000 E1978.31701
    21:55:29.009: ok 75
    21:55:29.009: N76 M140 S0
    21:55:29.013: ok 76
    21:55:29.013: N77 M104 S0
    21:55:29.017: ok 77
    21:55:29.017: N78 M140 S0
    21:55:37.624: busy:processing
    21:55:38.799: TargetExtr0:0
    21:55:38.799: ok 78
    21:55:38.799: N79 M117 ETE 00:00:47
    21:55:38.802: ok 79
    21:55:38.803: N80 M532 X55.0000 L1
    21:55:39.008: ok 80
    21:55:39.008: N81 G92 E1
    21:55:39.011: ok 81
    21:55:39.012: N82 M532 X60.0000 L1
    21:55:39.015: ok 82
    21:55:39.015: N83 G1 E-1 F300
    21:55:39.019: ok 83
    21:55:39.019: N84 G28 X0 Y0
    21:55:39.023: ok 84
    21:55:39.023: N85 M84
    21:55:47.024: busy:processing
    21:55:50.367: X:-1.00 Y:-75.00 Z:45.100 E:-1.0000
    21:55:50.367: ok 85
    21:55:50.367: N86 M117 ETA 21:56:26 day 24
    21:55:50.470: ok 86
    21:55:50.470: N87 M532 X75.0000 L1
    21:55:50.571: ok 87
    21:55:50.572: N88 M82 ;absolute extrusion mode
    21:55:50.575: ok 88
    21:55:50.576: N89 M532 X80.0000 L1
    21:55:50.579: ok 89
    21:55:50.579: N90 M104 S0
    21:55:50.583: ok 90
    21:55:50.583: TargetExtr0:0
    21:55:50.583: N91 G4 S400
    21:55:50.587: ok 91
    21:55:50.587: N92 M81
    21:59:10.807: busy:processing (25)
    21:59:18.807: buy:processing
    21:59:20.816: Warning: Communication timeout - resetting communication buffer.
    21:59:20.816: Connection status: Buffered:7, Manual Commands: 2, Job Commands: 0
    21:59:20.816: Buffer used:7 Enforced free byte:0 lines stored:1
    21:59:20.816: N93 M117 Finished
    22:02:22.920: busy:processing (23)
    22:02:30.588: ok 92
    22:02:30.588: ok 93
    22:02:30.588: N94 M532 X95.0000 L1
    22:02:30.691: ok 94
    22:02:31.095: N95 M530 S0
    22:02:31.100: ok 95
    22:02:31.100: N96 M539 P0
    22:02:31.313: ok 96
    22:02:31.313: N97 M415 S0
    22:02:31.420: ok 97
    22:02:31.420: RESCUE_STATE: OFF
    22:02:31.420: TargetExtr0:0
    22:02:31.421: Info:POWERLOSS_DETECTED
    22:02:31.421: @stopLog
    22:02:39.473: wait (8)
  • I tried to program this code through OctoPI. I did not notice a problem. Pauses everything reacts
  • Ok, that helps. 
    Info:POWERLOSS_DETECTED
    was send in both cases by firmware. This is a message that it will loose power and server will stop any running print. Octoprint does not know that signal and will ignore it.

    The big question is why do you get that message. The currently only implemented way in firmware is that it got a M416 gcode, while I only see a M415 before your pause. So please check if sending M415 triggers the message in log and if not if you have M416 set in any of the gcode events like print finished, paused, stopped.
  • edited September 2019
    Here's what I got:

    11:57:11.054: N18 M415
    11:57:11.058: ok 18
    11:57:11.058: RESCUE_STATE: OFF
    11:57:11.062: TargetExtr0:0
    11:57:11.062: Info:POWERLOSS_DETECTED
    11:57:11.062: Echo:N18 M415
    11:58:12.881: wait (61)
    11:58:13.213: N19 M416
    11:58:13.218: ok 19
    11:58:13.218: TargetExtr0:0
    11:58:13.218: Info:POWERLOSS_DETECTED
    11:58:13.218: Echo:N19 M416
    11:58:38.241: wait (25)
  • I can add a log at startup:

    18:26:35.216: @getip
    18:26:35.217: N0 M110 N0
    18:26:35.220: ok
    18:26:35.220: N1 M999 ; In case we did not reset recover from fatal state
    18:26:35.224: ok 1
    18:26:35.225: DebugLevel:6
    18:26:35.225: info:Continue from fatal state
    18:26:35.225: N1 N1 M110
    18:26:35.228: ok
    18:26:35.232: ok 2
    18:26:35.233: N3 M115 ; Check firmware and capabilities
    18:26:35.236: ok 3
    18:26:35.237: N4 M220 S100 ; set speed multiplier
    18:26:35.246: FIRMWARE_NAME:Repetier_1.0.4 COMPILED:Sep 28 2019 FIRMWARE_URL:https://github.com/repetier/Repetier-Firmware/ PROTOCOL_VERSION:1.0 MACHINE_TYPE:Core_XY EXTRUDER_COUNT:1 REPETIER_PROTOCOL:3
    18:26:35.246: Cap:PROGRESS:1
    18:26:35.246: Cap:AUTOREPORT_TEMP:1
    18:26:35.246: Cap:HOST_RESCUE:1
    18:26:35.248: Cap:EEPROM:1
    18:26:35.248: Cap:AUTOLEVEL:0
    18:26:35.249: Cap:Z_PROBE:0
    18:26:35.249: Cap:SOFTWARE_POWER:1
    18:26:35.249: Cap:TOGGLE_LIGHTS:1
    18:26:35.249: Cap:PAUSESTOP:1
    18:26:35.249: Cap:PREHEAT:1
    18:26:35.253: Cap:EMERGENCY_PARSER:1
    18:26:35.254: Printed filament:0.00m Printing time:0 days 0 hours 0 min
    18:26:35.256: PrinterMode:FFF
    18:26:35.256: ok 4
    18:26:35.257: SpeedMultiply:100
    18:26:35.257: N5 M221 S100 ; set flow multiplier
    18:26:35.260: ok 5
    18:26:35.261: FlowMultiply:100
    18:26:35.261: N6 M355 ; get light status
    18:26:35.265: ok 6
    18:26:35.266: Info:Case lights on
    18:26:35.266: N7 G92 E0 ; reset extrude rposition
    18:26:35.269: ok 7
    18:26:35.269: N8 G90 ; absolute coordinates
    18:26:35.273: ok 8
    18:26:35.274: N9 M82 ; absolute E values
    18:26:35.278: ok 9
    18:26:35.278: N10 G21 ; units are mm
    18:26:35.282: ok 10
    18:26:35.282: N11 M114 ; check position
    18:26:35.286: ok 11
    18:26:35.286: X:0.00 Y:0.00 Z:0.000 E:0.0000
    18:26:35.286: N12 M111 S6 ; debug flags
    18:26:35.289: ok 12
    18:26:35.290: DebugLevel:6
    18:26:35.290: N13 M360 ; get configuration
    18:26:35.294: ok 13
    18:26:35.295: Config:Baudrate:250000
    18:26:35.295: Config:InputBuffer:127
    18:26:35.295: N14 M539 S1
    18:26:35.298: Config:NumExtruder:1
    18:26:35.298: Config:MixingExtruder:0
    18:26:35.299: Config:HeatedBed:1
    18:26:35.299: Config:SDCard:1
    18:26:35.299: Config:Fan:1
    18:26:35.299: Config:Fan2:0
    18:26:35.299: Config:LCD:1
    18:26:35.302: Config:SoftwarePowerSwitch:1
    18:26:35.302: Config:XHomeDir:-1
    18:26:35.303: Config:YHomeDir:-1
    18:26:35.303: Config:ZHomeDir:-1
    18:26:35.306: Config:XHomePos:-1.00
    18:26:35.306: Config:YHomePos:-75.00
    18:26:35.307: Config:ZHomePos:0.000
    18:26:35.307: Config:SupportG10G11:1
    18:26:35.310: Config:SupportLocalFilamentchange:1
    18:26:35.310: Config:CaseLights:1
    18:26:35.311: Config:ZProbe:0
    18:26:35.311: Config:Autolevel:0
    18:26:35.314: Config:EEPROM:1
    18:26:35.314: Config:PrintlineCache:16
    18:26:35.315: Config:JerkXY:4.00
    18:26:35.315: Config:KeepAliveInterval:8000
    18:26:35.315: Config:JerkZ:0.30
    18:26:35.318: Config:RetractionLength:3.00
    18:26:35.319: Config:RetractionLongLength:13.00
    18:26:35.319: Config:RetractionSpeed:40.00
    18:26:35.322: Config:RetractionZLift:0.00
    18:26:35.323: Config:RetractionUndoExtraLength:0.00
    18:26:35.323: Config:RetractionUndoExtraLongLength:0.00
    18:26:35.326: Config:RetractionUndoSpeed:20.00
    18:26:35.326: Config:XMin:-1.00
    18:26:35.327: Config:YMin:-75.00
    18:26:35.327: Config:ZMin:0.00
    18:26:35.330: Config:XMax:300.00
    18:26:35.330: Config:YMax:275.00
    18:26:35.331: Config:ZMax:290.00
    18:26:35.331: Config:XSize:301.00
    18:26:35.331: Config:YSize:350.00
    18:26:35.331: Config:ZSize:290.00
    18:26:35.335: Config:XPrintAccel:700.00
    18:26:35.335: Config:YPrintAccel:700.00
    18:26:35.336: Config:ZPrintAccel:10.00
    18:26:35.339: Config:XTravelAccel:700.00
    18:26:35.339: Config:YTravelAccel:700.00
    18:26:35.340: Config:ZTravelAccel:10.00
    18:26:35.340: Config:PrinterType:Cartesian
    18:26:35.343: Config:MaxBedTemp:120
    18:26:35.343: Config:Extr.1:Jerk:20.00
    18:26:35.344: Config:Extr.1:MaxSpeed:40.00
    18:26:35.347: Config:Extr.1:Acceleration:5000.00
    18:26:35.348: Config:Extr.1:Diameter:0.00
    18:26:35.348: Config:Extr.1:MaxTemp:275
    18:26:35.348: ok 14
    18:26:35.348: @getip
    18:26:35.349: N15 M155 S1
    18:26:35.351: ok 15
    18:26:35.351: N16 M415
    18:26:35.355: ok 16
    18:26:35.356: RESCUE_STATE: OFF
    18:26:35.356: N17 M117 192.168.1.4:3344
    18:26:35.359: ok 17
    18:26:35.360: N18 M155 S1
    18:26:35.442: ok 18
    18:26:35.442: N19 M415
    18:26:35.446: ok 19
    18:26:35.446: RESCUE_STATE: OFF
    18:26:35.446: N20 M117 192.168.1.4:3344
    18:26:35.450: ok 20
    18:26:47.463: wait (12)
    18:26:48.088: @getip
    18:26:48.089: N21 M117 192.168.1.4:3344
    18:26:48.094: ok 21
    18:26:58.101: wait (10)
    
  • Ok, I found the problem. You have rescue support enabled but disabled the emergency parser. Then firmware runs into a bug due to a missing break. Check file commands.cpp of firmware around line 3156:

       case 415: // Host rescue system
        {
    #if HOST_RESCUE
            if (com->hasS()) { // Enable rescue system
                Printer::enableRescue(com->S != 0);
            }
            if (com->hasZ()) { // Replace z
                Printer::currentPosition[Z_AXIS] = com->Z;
                Printer::coordinateOffset[Z_AXIS] = 0;
                Printer::setZHomed(true);
                Printer::updateCurrentPositionSteps();
            }
            Printer::rescueReport();
            break;  //    <-------------- This break is missing
        }
        case 416:
    #if !EMERGENCY_PARSER

    add the break and M415 will not trigger power loss any more.
  • Anyway, at the end of printing, the printer “fell asleep” on the part. Rebooted. I turned it off. After turning on, the printer completed the carriage return home. Here is the print log (at the time of loss of connection):

    <  7:00:48.328: N200915 G1 F1200 X61.989 Y92.442 E2531.09843
    >  7:00:48.668: ok 4307
    <  7:00:48.668: N200916 G0 F4200 X61.989 Y91.876
    >  7:00:48.716: ok 4308
    <  7:00:48.717: N200917 G1 F1200 X62.472 Y91.394 E2531.11375
    >  7:00:48.885: T:244.62 /245 B:105.00 /105 B@:138 @:10
    >  7:00:49.089: ok 4309
    <  7:00:49.090: N200918 G1 F2400 E2529.11375
    >  7:00:49.138: ok 4310
    <  7:00:49.139: N200919 M140 S0
    >  7:00:49.471: ok 4311
    >  7:00:49.471: TargetBed:0
    <  7:00:49.471: N200920 M104 S0
    >  7:00:49.474: ok 4312
    <  7:00:49.474: N200921 M140 S0
    >  7:00:49.971: T:245.38 /245 B:105.00 /0 B@:0 @:10
    >  7:00:51.056: T:245.77 /245 B:104.94 /0 B@:0 @:10
    >  7:00:51.072: TargetExtr0:0
    >  7:00:57.876: start
    >  7:00:57.876: Info:Watchdog Reset
    >  7:00:57.876: Detected EEPROM version:20
    >  7:00:57.876: Free RAM:83136
    >  7:00:57.876: SelectExtruder:0
    >  7:00:57.876: FlowMultiply:100
    >  7:00:57.876: wait
    <  7:00:57.876: N1 M117 ETA 07:00:54 day 6
    >  7:00:57.879: ok 1
    <  7:00:57.879: N2 M530 S0
    >  7:00:57.986: ok 2
    <  7:00:57.986: N3 M539 P0
    >  7:00:58.092: ok 3
    <  7:00:58.092: N0 M110 N0
    >  7:00:58.305: ok
    <  7:00:58.305: N1 M999 ; In case we did not reset recover from fatal state
    >  7:00:58.310: ok 1
    >  7:00:58.310: DebugLevel:6
    >  7:00:58.310: info:Continue from fatal state
    <  7:00:58.310: N1 N1 M110
    >  7:00:58.314: ok
    <  7:00:58.314: N2 M105 ; fetch first temperature
    >  7:00:58.318: ok 2
    >  7:00:58.318: T:245.00 /0 B:104.06 /0 B@:0 @:0
    <  7:00:58.318: N3 M115 ; Check firmware and capabilities
    >  7:00:58.322: ok 3
    <  7:00:58.322: N4 M220 S100 ; set speed multiplier
    >  7:00:58.331: FIRMWARE_NAME:Repetier_1.0.4 COMPILED:Oct  3 2019 FIRMWARE_URL:https://github.com/repetier/Repetier-Firmware/ PROTOCOL_VERSION:1.0 MACHINE_TYPE:Core_XY EXTRUDER_COUNT:1 REPETIER_PROTOCOL:3
    >  7:00:58.331: Cap:PROGRESS:1
  • And this is what Repetier Server issued for resuming printing:
    Cause of failure: The connection to the printer was interrupted.
    Last Position Sent: 6171233
    Last confirmed position: 6171224
    Here are some of the commands from the G-code:


    6171063   G1 F1200 X61.989 Y92.442 E2531.09843
    6171101   G0 F4200 X61.989 Y91.876
    6171127   G1 F1200 X62.472 Y91.394 E2531.11375
    6171165   ;TIME_ELAPSED:36069.939886
    6171193   G1 F2400 E2529.11375
    6171215   M140 S0
    6171224   M104 S0
    6171233   M140 S0
    6171242   ;Retract the filament
    6171265   G92 E1
    6171273   G1 E-1 F300
    6171286   G28 X0 Y0
    6171297   M84
    6171302   M82 ;absolute extrusion mode
    6171332   M104 S0
    6171341   ;End of Gcode
  • >  7:00:49.971: T:245.38 /245 B:105.00 /0 B@:0 @:10
    >  7:00:51.056: T:245.77 /245 B:104.94 /0 B@:0 @:10
    >  7:00:51.072: TargetExtr0:0
    >  7:00:57.876: start
    >  7:00:57.876: Info:Watchdog Reset

    Looks like watchdog triggered a reset here. Hang happened during M104 S0 as it seems, but is not visible why. That is a frequent command as any print doe sit and normally not watchdog is triggered. On second try it also worked as planned.

    Can't say more about this here.
  • Thank. I'll try to turn off watchdog. Surprisingly, the printer disconnects after canceling printing. The printer does not respond at all. I have to reboot. In general, such strange things happen for several months. I used to work with Marlin firmware. After changing the printer hardware, installed Repetier. I have been using your software as a host for more than a year. And very pleased with him. Can you try to roll back the host a couple of versions back? I think that new features have appeared that require fine-tuning of the firmware, and maybe are generally incompatible with my printer. It seems to me that these functions are the function of controlling the supply voltage. What version of Repetier-server did it come from?
  • Ok, so the hang without watchdog shows that it is a firmware problem here. It goes into a endless loop or somehow else stops doing anything useful. With watchdog that causes the reset without it keeps hanging so communication stops working. Has nothing to do with host/server version.

    What printer type are you using? Especially delta tend to run on low ram and that can cause any kind of problems if heap and stack run into each other. You should have at least 900-1000 byte ram on a 8 bit platform or problems will happen.
  • I work on a homemade printer with Corexy mechanics. This whole farm is managed: Arduino Due + Ruramps4d. And the printer is controlled by usb Repeier Server on Orange Pi One Plus.
  • Ok, so what is the answer to the free memory? If you use the fast core xy mode it is like delta also you do not need as much buffers. But it can cause same memory problem if not configured correctly.
  • “A sketch uses 160,972 bytes (30%) of the device’s memory. A total of 524,288 bytes are available.”
    I think that memory is enough)
  • I meant ram not flash memory, but seeing you use RuRamps you should have 96kb not 8kb like the 8 bit processors so guess it is enough ram. You see it in host/server console/log when you connect.

    So new question is why does it happen to you and when exactly. As far as I know it always happens at the end of the print. The only log I know shows bed being disabled and M104 S0 waiting for execution. That would mean you are in Extruder.cpp in this function:
    void Extruder::setTemperatureForExtruder(float temperatureInCelsius, uint8_t extr, bool beep, bool wait) {

    The only part that can cause such a hang is updating the printed time in eeprom. This happens when all heaters are off and it is a write to a chip connected with I2C. If that chip does not answer it will block for ever.

    So try compiling with EEPROM_MODE 0 instead and see if the problem goes away. If it does we know at least what it is. At startup it would normally also hang if chip is defect, but that works. So must be something disturbing at exactly that moment. Maybe the timing that power consumption just dropped significantly made it error.

    It gets written in line 1099
    #if EEPROM_MODE != 0
        if (alloff && !alloffs) // All heaters are now switched off?
            EEPROM::updatePrinterUsage();

    You can remove that part for testing. It just stores total printed time so that doe snot get updated. If it then works with eeprom and you can also change eeprom normally we can try adding a delay there and see if it helps.

  • Free RAM:83136
  • What I guessed. So waiting for results without eeprom or removed eeprom save.
  • I also noticed that Cura, when slicing layers, adds the M140, M104 and M82 commands to the end of the code. And this despite the fact that Cura end.gcode settings already have these commands, so these commands are mentioned twice in the log
  • I tried installing #define EEPROM_MODE 0 before compiling. The printer is still printing. How? I do not understand. Where do the settings come from?
  • Gromovnik said:
    I tried installing #define EEPROM_MODE 0 before compiling. The printer is still printing. How? I do not understand. Where do the settings come from?
    Printing was successful! No communication loss.
  • Without eeprom it takes settings from configuration.h directly. So seems to be eeprom related. Next enable eeprom back but remove

    #if EEPROM_MODE != 0
        if (alloff && !alloffs) // All heaters are now switched off?
            EEPROM::updatePrinterUsage();
    #endif

    whcih is most likely the part that hangs. Also try changing eeprom with eeprom editor once enabled. Just to see if it works in general and only has problems when heater got disabled. In that case we might survive by adding a delay to wait until it normalizes.
  • Seems to be a success!  The only thing a couple of times the server hung.  But this is the Orange Pi problem, I think.  But in general, it completed successfully several times)
  • I have a Problem with the Buffer not being empty ! or will not empty . . Have reloaded the Firmware removed the SD card from the 3D printer Turned off the Computer all night and same with the 3D printer and its disconnected Added a command of G01 F4000 Z20 as a last command plus sent it then gets 8  commands in buffer and it never empties always gets done to 1 command left ! If I ht the reset button on Repetier it comes back up If i push the reset button on the board same stuff . . Just where did it hide those commands ?   Running Linux ( Ubuntu )
  • Which hosting software are you using and can you show the communication including commands, ack, temperature requests.
    On which action do you get this. When print finishes or in the middle.

    Could be a missed "ok" and when a low command gets executed we wait for all "ok" to be seen to get in sync with firmware. This is especially with ping pong of as ping pong always waits for the ok so there will never be more then one command buffered in that case.

Sign In or Register to comment.