Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

sync bleeding-edge #136

Closed
wants to merge 83 commits into from
Closed

sync bleeding-edge #136

wants to merge 83 commits into from

Conversation

rogerlz
Copy link
Contributor

@rogerlz rogerlz commented Jan 31, 2024

No description provided.

eamaclean and others added 30 commits December 21, 2023 20:58
STM32G4 USB controller requires 8 or 16-bit access, not 32-bit

Signed-off-by: Alex Maclean <[email protected]>
At least STM32G4 requires four ADC clock cycles between hardware
clearing ADCCAL and setting ADEN or the write disappears. Make a
tenacious write attempt.

Signed-off-by: Alex Maclean <[email protected]>
Signed-off-by: Alex Maclean <[email protected]>
Commit b7b1358 changed the internal flush time tracking, but
introduced the possibility of motion restart occurring too close to
the last motion end in some rare cases.  This could result in
internal stepcompress errors.

Track the last step generation flush time (last_sg_flush_time) and use
when recalculating the next print_time.

Signed-off-by: Kevin O'Connor <[email protected]>
Move the ClockSyncRegression class from adxl345.py to a new
bulk_sensors.py file.

Signed-off-by: Kevin O'Connor <[email protected]>
Move the bulk sample queue collection to a new helper class in
bulk_sensor.py.

Signed-off-by: Kevin O'Connor <[email protected]>
All the accelerometers use a standard response for their query_status
messages.  Create a common helper class to process those responses.

Signed-off-by: Kevin O'Connor <[email protected]>
The APIDumpHelper class already ensures that the start/stop callbacks
will only be called when needed.

Signed-off-by: Kevin O'Connor <[email protected]>
This makes the code a little more readable.

Signed-off-by: Kevin O'Connor <[email protected]>
The APIDumpHelper class is mainly intended to help process messages in
batches.  Rework the class methods to make that more clear.

Signed-off-by: Kevin O'Connor <[email protected]>
…lkHelper

Previously, the BatchBulkHelper class was designed primarily to
register webhook clients, and internal clients used a wrapper class
that emulated a webhooks client.

Change BatchBulkHelper to support regular internal callbacks, and
introduce a new BatchWebhooksClient class that can translate these
internal callback to webhooks client messages.

This makes it easier to register internal clients that can process the
bulk messages every batch interval.

Signed-off-by: Kevin O'Connor <[email protected]>
…439)

Expire history relative to current time rather than last move in history queue

Signed-off-by: Francois Chagnon <[email protected]>
…me()

Move calculation of clear_history_time to the callers of
_advance_flush_time() as a minor processing optimization.

Signed-off-by: Kevin O'Connor <[email protected]>
When in debugging "batch mode", use the existing method of keeping the
last 30 seconds of history from the furthest planned move time.  This
avoids keeping all moves in memory during a batch test.

Signed-off-by: Kevin O'Connor <[email protected]>
Invoke button callbacks directly from the background thread.  This
ensures that button notifications are delivered and delivered in the
correct order.  Previously, if a callback blocked, it was possible a
new update could start before the previous update was completed, which
could lead to lost events or out of order events.

Signed-off-by: Kevin O'Connor <[email protected]>
the meaning and the illustration shows 13x9 mesh however the text was 13x8.

Signed-off-by: Mitsunori YOSHIDA <[email protected]>
It is not valid to call time.sleep() in the host python code (it could
causes glitches in other processing, and it does not ensure there is a
pause between operations on the mcu).

Use minclock instead of time.sleep() to ensure there is a sufficient
pause during chip startup.

Signed-off-by: Kevin O'Connor <[email protected]>
Commit 80a7744 optimized the fifo tracking code.  However, it
introduced an error in the time tracking in
command_query_mpu9250_status().  The purpose of that function is to
provide a precise timestamp of the total number of messages produced
at the time of that call.  Thus, the returned fifo value needs to be
the fifo level in the chip at the time of the call (not the value read
during previous checks).

Signed-off-by: Kevin O'Connor <[email protected]>
The mpu9250 code always reads from the sensor in 48 byte chunks and
always sends an mpu9250_data message immediately after that.  Make
that more clear in the querying code.

Signed-off-by: Kevin O'Connor <[email protected]>
Move overflow detection from mp9250_stop() to
command_query_mpu9250_status().  Currently the host ignores any
contents returned from a stop request, so overflow reporting at that
point has limited utility.

In practice, this change will result in one additional i2c transaction
to the mpu9250 device every 100ms.

Signed-off-by: Kevin O'Connor <[email protected]>
KevinOConnor and others added 19 commits January 23, 2024 20:04
Remove support for configuring "static" pins in output_pin module.  A
"static" pin only saves a few bytes of memory in the micro-controller.
The savings does not justify the increased code complexity.

Deprecate the static_value parameter to warn users.  In the interim, a
static_value parameter will set both value and shutdown_value
parameters.

Signed-off-by: Kevin O'Connor <[email protected]>
Update static_digital_output.py to directly configure static digital
pins.  There are no other users of "static" pins, so remove that
support from mcu.py, replicape.py, and sx1509.py.  This simplifies the
low-level pin handling code.

Signed-off-by: Kevin O'Connor <[email protected]>
Advise users to configure a pwm_tool config section if checking for
maximum mcu duration is required.

Signed-off-by: Kevin O'Connor <[email protected]>
Remove support for changing the cycle time of pwm pins from the
output_pin module.  Use a new pwm_cycle_time module that supports
setting dynamic cycle times.  This simplifies the output_pin code and
low-level pin update code.

Signed-off-by: Kevin O'Connor <[email protected]>
Avoid calling memset() and memcpy() prior to copying the ram and
clearing the bss.  Also, place both ResetHandler() and
reset_handler_stage_two() in an explicit ".text.armcm_boot" linker
section.  These changes make it easier to support targets that want to
run all code in ram.

Signed-off-by: Kevin O'Connor <[email protected]>
Use the rp2040 specific linker script even when using a bootloader.

Signed-off-by: Kevin O'Connor <[email protected]>
Place all normal code into ram.  This reduces the chance that rp2040
instruction cache misses could cause subtle timing issues.

Signed-off-by: Kevin O'Connor <[email protected]>
Load the interrupt vector table into ram at startup.  This reduces the
chance of a flash cache access causing timing instability.

Signed-off-by: Kevin O'Connor <[email protected]>
Make sure to disable/enable the peripheral to ensure the clock
polarity is properly set prior to a change in CS.

Signed-off-by: Kevin O'Connor <[email protected]>
Adaptive bed mesh allows the bed mesh algorithm
to probe only the area of the bed that is being
used by the current print.

It uses [exclude_objects] to get a list of the
printed objects and their area on the bed. It,
then, modifies the bed mesh parameters so only
the area used by the objects is measured.

Adaptive bed mesh works on both cartesian and
delta kinematics printers. On Delta printers,
the algorithm, adjusts the origin point and
radius in order to translate the area of the
bed being probe.

Signed-off-by: Mitko Haralanov <[email protected]>
Signed-off-by: Kyle Hansen <[email protected]>
Signed-off-by: Kevin O'Connor <[email protected]>
* kin limited_corexy and limited_cartesian

Adds velocity and acceleration limits on X and Y for these kinematics.

* motan: support limited_ prefix for kinematics names

* kin limited_*: documentation

* toolhead: fix cornering for dynamic accel limits

With limited_ kinematics the acceleration may change between moves.
In order to preserve behavior junction_deviation should be recomputed
each time. Since the  `jd * accel` term is constant for a given scv, it
can replace junction_deviation when computing cornering
limits.
This term is the squared toolhead velocity during a 60° cornering.

* kin limited_*: scale_xy_accel indep. of max_accel

Computes the max XY reachable acceleration for the scale_xy_accel
denominator, instead of relying on config [printer] max_accel.
(`hypot(x, y) ` for Cartesian, `max(X,Y)` for CoreXY)

Removes config limit in SET_KINEMATICS_LIMIT for easier tuning.

* kin limited_*: update documentation

* kin limited_*: add tests

* resonance tester: disable limits (not optimal)
Do not generate points for the zero_reference_position or faulty_regions
when manual probing is requested.

Signed-off-by: Eric Callahan <[email protected]>
Adaptive meshing avoids saving the mesh after calibration to prevent
users from inadvertently overwriting an existing profile with an
adaptive mesh.  This introduced a change in behavior of how
get_status() reports the profile_name, as it can now be an empty
string when a mesh is active.

This patch assigns adaptive meshes a name with a unique postfix.
In addition, it moves profile name tracking from the profile manager
to the ZMesh class.

Signed-off-by:  Eric Callahan <[email protected]>
* store_pa_in_trapq danger flag

* rename and move to [extruder]

* add docs and readme

* add test
* load force move and enable it by default

* add readme and docs
Piezoid and others added 9 commits February 2, 2024 18:26
* add function in configfile to warn

* fix f string
* add bed_mesh_default to config

* Update README.md and Config_Reference.md
fixes clock configuration error with non-25 MHz crystals
* Create Config_Reference_Bleeding_Edge.md

Initial commit for format check

* Update Config_Reference_Bleeding_Edge.md

nightly-edits

* Add files via upload

make_menu photo

* Update Config_Reference_Bleeding_Edge.md

more edits

* Create Bleeding_Edge.md

commit file

* Update Bleeding_Edge.md

copy paste word file

* Doc Updates for features

* doc flesh out

* step compress docs

* Readability edits

* Updated per feedback from DM

* Edits in prep for PR

* Final edit for PR

* Add photos to test prints and minor update to pa test details.

* Updates based on DM feedback.

---------

Co-authored-by: Yancey Arrington <[email protected]>
@rogerlz rogerlz closed this Feb 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.