klipper/klippy
Dr. Matthew Swabey 80a7744b42
sensor_mpu9250: Fix or improve reliability (#6170)
Fixes common MPU-9250 accelerometer issues for RPi Linux MCU and
improves reliability on all other architectures by adjusting the MPU-*
reading algorithm to only read whole Klipper messages' worth of
data from MPU-* and eliminating many unnecessary checks of the MPU FIFO
fill-level that consumed bus bandwidth needed for data transfer. Fixes
intermittent "Lost communication with MCU 'rpi'" due to "Timer too
close" and transposed / corrupted data due to FIFO overrun/data loss
when using MPU-* accelerometers. In addition FIFO overrun checks are
performed by testing the MPU interrupt flag vs. inferring from the FIFO
fill level.

Stress tested for 13hrs with two MPU-6500 attached to one I2C bus on RPi
    and one on a PR2040
Stress tested for 23hrs with two MPU-6500 attached to one I2C bus on RPi
    and one on a ATmega328P (Seeduino Nano)

Signed-off-by: Matthew Swabey <matthew@swabey.org>
2023-04-19 12:34:22 -04:00
..
chelper serialqueue: Rename stalled_bytes stat to upcoming_bytes 2023-04-07 15:17:43 -04:00
extras sensor_mpu9250: Fix or improve reliability (#6170) 2023-04-19 12:34:22 -04:00
kinematics extruder: store currently sync'ed motion queue name 2023-02-09 16:51:47 -05:00
clocksync.py msgblock: Add clock estimation helper functions 2021-06-09 18:58:35 -04:00
configfile.py configfile: Make getlists return an empty list on empty string. (#6042) 2023-02-09 21:41:09 -05:00
console.py console: No need to import pins module 2023-01-07 12:00:16 -05:00
gcode.py gcode: Handle M117 and M118 commands that start with a special character 2022-01-18 11:34:40 -05:00
klippy.py mcu: Delay reset signaling for usb to canbus bridge nodes 2022-07-29 11:40:54 -04:00
mathutil.py
mcu.py mcu: Move lookup_command_tag() to CommandWrapper class 2023-02-22 11:34:36 -05:00
msgproto.py mcu: Move lookup_command_tag() to CommandWrapper class 2023-02-22 11:34:36 -05:00
parsedump.py parsedump: Support running on both python2 and python3 2022-12-07 14:31:03 -05:00
pins.py pins: Improve pin description checks 2022-05-09 16:33:46 -04:00
queuelogger.py klippy: Add Python2 module wrappers and use Python3 module naming 2021-10-04 14:36:08 -04:00
reactor.py reactor: Fix typo 2023-03-14 22:08:13 -04:00
serialhdl.py serialhdl: Add a get_serialqueue() method 2023-01-06 11:59:35 -05:00
stepper.py mcu: Move lookup_command_tag() to CommandWrapper class 2023-02-22 11:34:36 -05:00
toolhead.py toolhead: Flush in chunks from flush_step_generation() 2023-01-08 10:40:52 -05:00
util.py util: Use regular str() type in get_git_version() on Python2 2021-10-31 13:52:31 -04:00
webhooks.py webhooks: Log json encoding errors 2023-04-19 12:22:20 -04:00