Repository navigation
Fixes for the sidebar after a reconnect, and corrected advice on the firmware's RX buffer size. 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.2.zip
Upgrading from 0.3.x keeps your settings.
Fixes
- After a reconnect the sidebar could stay on its inactive text. BufferBuddy now checks compatibility before it reads the buffer sizes from
ok N0, and redraws the status when it changes. - An error while reading the buffer sizes could be cleared by the next line. It now stays.
- A settings save, pause or page load could bring back an old lines/s figure. The stats now carry their age, and during a print the sidebar shows 0 lines/s for stats more than 3 s old.
- The "Printer RX buffer size" setting is now saved with the settings page's minimum of 48 bytes. Below a line's worth, every extra line was held back with nothing to show why.
- The sidebar no longer blames the RX buffer for lines the inflight target holds back.
Firmware advice
The README said a small RX_BUFFER_SIZE costs little. That was wrong: the RX buffer has to hold every line in flight. When Marlin's main loop stops reading serial while its command queue is empty, every line in flight lands in the RX buffer at once, and whatever doesn't fit is dropped and resent. Allow about 64 bytes per line: 2048 for BUFSIZE 32, 512 for BUFSIZE 8.
The octo4a fix for swapped lines (two pty reader threads) is now released as octo4a 2.1.0-webrtc.2.
Tested
Aquila (Marlin, RX_BUFFER_SIZE 2048, BUFSIZE 32, 250000 baud), OctoPrint 1.11.8 on octo4a 2.1.0-webrtc.2: a 56-minute print of 214,767 lines with 8 bad lines, each recovered with a single resend, and no swapped or wrong lines. The same print had 14 to 15 bad lines with a 1024-byte RX buffer.