-
Notifications
You must be signed in to change notification settings - Fork 1k
Description
Describe the bug
I'm using the Marlin 3d-printer firmware on the Armed 3D-printer board (STM32F407) together with Octoprint running on a Raspberry PI 3 A+. Octoprint request temperature status to be sent from the printer to the Octoprint host on a reqular basis (every 2nd second). A temperature status message looks like this:
T:23.01 /0.00 B:22.88 /0.00 @:0 B@:0
The problem is that sometimes one or more characters of this message is lost. I have tested without Octoprint, using minicom, and the character loss is there as well so this is not a problem with Octoprint.
T:96.18 /0.00 B:61.56 /0.00 @:0 B@:0
T:95.66 /0.00 B:61.47 /0.00 @:0 B@:0
T:90.86 /0.00 B:60.41 /0.00 @:0 B@:0
T:90.41 /0.00 B:60.34 /0.00 @:0 B@:0
T:89.93 /0.00 :60.26 /0.00 @:0 B@:0 <-- character lost
T:88.13 /0.00 B:.85 /0.00 @:0 B@:0 <-- characters lost
T:87.70 /0.00 B:59.71 /0.00 @:0 B@:0
T:87.20 /0.00 B:59.59 /0.00 @:0 B@:0
T:85.52 /0.00 :59.22 /0.00 @:0 B@:0 <-- character lost
:96.66 /0.00 B:61.65 /0.00 @:0 B@:0 <-- character lost
T:85.10 /0.00 B:.88 /0.00 @:0 B@:0 <-- characters lost
T:84.63 /0.00 B:58.76 /0.00 @:0 B@:0
The problem exists in the master branch but not in release 1.5 (I'm currently testing with master @ commit 7feeb09)
The message is composed by calls to both string and single character Stream functions
What is strange is that on Windows no characters are lost.
To Reproduce
I have tried, but failed, to reproduce this in a test program by sending the message above every 2nd second.
Could this be a timing issue? Marlin uses multiple timer interrupts.
I understand this is not easy to investigate but I'll be happy to help test if someone got an idea what could be causing this.
Board (please complete the following information):
- Name: Armed