Skip to content

BufferBuddy 0.3.1

Choose a tag to compare

@kagebarton kagebarton released this 16 Oct 17:06
· 3 commits to main since this release

A fix for a resend case in which the printer could run the wrong move. Still nothing to set up, and still requires a Marlin build with ADVANCED_OK.

Install

Plugin Manager → Get More → ...from URL:

https://github.com/kagebarton/BufferBuddy/archive/0.3.1.zip

Upgrading from 0.3.0 keeps your settings.

Fix

With about 30 lines in flight, one bad line makes the printer reject the lines already sent behind it, and some firmware asks for a resend for each of them. If one of those requests names the line OctoPrint is about to send, OctoPrint (1.11.8 at least) answers it by sending the oldest line in its history under that line number, with a valid checksum, so the printer accepts it and runs the wrong move.

During a resend, BufferBuddy now hides a resend request for the line OctoPrint sends next. The printer already has every line before it, so the request is stale. It shows in the terminal as echo:BufferBuddy ignored a stale request: Resend: N, and in octoprint.log.

Tested

Aquila (Marlin, RX_BUFFER_SIZE 1024, BUFSIZE 32, 250000 baud), OctoPrint 1.11.8 on octo4a: a 56-minute print with 17 bad lines, each recovered with a single resend, and no wrong lines. On that firmware the guard never had to fire. It covers firmware that answers in-flight lines with their own resend requests, as stock Marlin does.