This doc still says the Pi 2 is an option for Klipper, in this day and age, i am not sure it is. From anecdotal evidence, the lowest pi recommended should be the zero2w. I also changed the wording and removed some Octoprint wording in that section to better reflect how things are today, as i don't think even with virtual_sdcard these older devices will keep up.
Signed-off-by: James Hartley <james@hartleyns.com>
Commit d40fd219 added support for defining extra axes, however that
change could break the M114 command. Update the code to fix M114.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
When we introduce the host-side status check,
it will be synchronous.
There would be no sense in having an asynchronous call.
Preliminary migrate callers to synchronous call.
Signed-off-by: Timofey Titovets <nefelim4ag@gmail.com>
- Allow selection of 64KiB bootloader offset for MACH_N32G45x in Kconfig
Signed-off-by: Lev Voronov <minicx@disroot.org>
Co-authored-by: Alexander Simonov <me@darksimpson.com>
Fixes PA0 (GPIO 0) incorrectly mapping to ADC1_IN0 due to
collision with placeholder zeros.
Signed-off-by: Lev Voronov <minicx@disroot.org>
Co-authored-by: Alexander Simonov <me@darksimpson.com>
Commit 0f94f6c8 decreased the MAX_HEAT_TIME from 5 seconds to 3
seconds. However, that also decreased the amount of tolerance for
lost temperature updates from 1.25 seconds to 0.75 seconds. With the
default temperature update every 300ms, only 2 consecutive missing
temperature updates could lead to a fault.
Tweak the internal "next_pwm_time" setting so that it is more tolerant
of two consecutive lost temperature updates.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Commit 9399e738 changed the manual_stepper class to no longer
explicitly flush all steps after each move. As a result, calls to
self.rail.get_commanded_position() may no longer reflect the last
requested position. This discrepancy could result in "internal
stepcompress" errors.
Change the manual_stepper code to internally track the last requested
position and use that when scheduling moves. This allows the
manual_stepper code to utilize the standard "lazy" step flushing
mechanism.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
The "relative_reference_index" was deprecated on 20230619 and removed
on 20240215. So, remove the last references from the documentation.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Support storing a reference to 'struct stepper_kinematics' in 'struct
stepcompress' and support globally generating steps via the
steppersync mechanism.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Use the existing register_flush_callback() system to implement motor
activity checking. This simplifies the generate_steps() code.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Move code from flush_steppersync() to existing flush_motion_queues()
and clean_motion_queues() functions.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Don't implement history expiration from the main steppersync_flush()
code. Instead, have callers directly invoke
steppersync_history_expire().
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Allocate the low-level C stepcompress object in the motion_queuing
module. This simplifies the mcu.py code as it no longer needs to
track the stepqueues for the steppersync object.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Add an allocate_trapq() helper function to facilitate the creation of
a low-level C trapq object. Track all trapq objects and clear history
on them globally when the main motion queues are flushed.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Create a new module to assist with host management of motion queues.
Register all MCU_stepper objects with this module and use the module
for step generation.
All steppers will now automatically generate steps whenever
toolhead._advance_flush_time() is invoked. It is no longer necessary
for callers to individually call stepper.generate_steps().
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Change note_mcu_movequeue_activity() to default to setting the
step_gen_time (instead of the previous default to not set it).
Most users of the mcu "move queue" will be for stepper activity.
There is also little harm in incrementing the tracking of the last
possible step generation time, but accidentally generating a step
without incrementing the tracking can lead to very hard to debug
failures.
The two cases (output_pin.py and pwm_tool.py) where
note_mcu_movequeue_activity() is called and definitely not related to
step generation can explicitly pass 'is_step_gen=False'.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Move the g-code command handlers to a new class. This reduces the
size of the main Toolhead() class.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Python 2.7 does not allow loading the cffi lib
inside the thread, but function calls are allowed
Signed-off-by: Timofey Titovets <nefelim4ag@gmail.com>