Klipper is a 3d-printer firmware
Find a file
Kevin O'Connor bf5c4daf86 usb_cdc: Avoid ending a transmission with a max size usb packet
It seems the Linux kernel will consider a maximum size usb packet to
be a transaction that will continue into the next usb packet.  It will
thus hold on to the traffic from the first packet until it gets the
next packet.  However, if the mcu has no further data to send after
the first packet then the data could get delayed for an extended
period of time.

To avoid this, check for transmissions that could end on a maximum
sized packet and send that data in two packets instead.  This avoids
this unusual corner case.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2025-02-15 18:22:45 -05:00
.github github: Change to upload-artifact@v4 2025-01-09 20:43:54 -05:00
config config: Update generic-creality-v4.2.7.cfg (#6790) 2025-01-24 21:46:08 -05:00
docs docs: Improve suggestions on bytes_invalid in CANBUS_Troubleshooting.md 2025-02-15 18:20:04 -05:00
klippy save_variables: Check lowercase variable names 2025-02-02 18:52:02 -05:00
lib lib: Update can2040 to v1.7.0 2025-01-10 12:20:13 -05:00
scripts spi_flash: Update board_defs.py - BTT Octopus Max EZ (#6817) 2025-02-15 13:04:57 -05:00
src usb_cdc: Avoid ending a transmission with a max size usb packet 2025-02-15 18:22:45 -05:00
test config: Config for Geeetech A-series printers: A10/M/T and A20/M/T (#6767) 2025-01-03 09:32:07 -05:00
.gitignore util: Fix versioning when gitdir is absent (#809) 2018-10-27 10:44:38 -04:00
COPYING COPYING: Update GPLv3 license to latest text (uses https instead of http) 2022-06-03 11:28:44 -04:00
Makefile makefile: Replace CFLAGS -I with -iquote 2024-04-03 22:53:09 -04:00
README.md docs: Improve wording of main Klipper page 2025-01-21 18:54:00 -05:00

Welcome to the Klipper project!

Klipper

https://www.klipper3d.org/

The Klipper firmware controls 3d-Printers. It combines the power of a general purpose computer with one or more micro-controllers. See the features document for more information on why you should use the Klipper software.

Start by installing Klipper software.

Klipper software is Free Software. See the license or read the documentation. We depend on the generous support from our sponsors.