Kevin O'Connor
4504c0333f
docs: Update stm32h723 benchmarks now that it runs at 520Mhz
...
Signed-off-by: Kevin O'Connor <kevin@koconnor.net >
2025-05-02 12:06:59 -04:00
Kevin O'Connor
554ae78d8c
stm32: Run stm32h723 at 520Mhz
...
Increase speed of stm32h723 chips from 400Mhz to 520Mhz.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net >
2025-05-02 11:44:31 -04:00
Kevin O'Connor
ee79d0e307
stm32: Support over 400Mhz main clock in stm32h7_adc.c
...
Signed-off-by: Kevin O'Connor <kevin@koconnor.net >
2025-05-02 11:44:31 -04:00
Kevin O'Connor
7b697105b3
stm32: Use 12Mhz nominal internal clock in stm32f0_i2c.c
...
Increase the internal nominal clock from 8Mhz to 12Mhz - this improves
support for higher chip frequencies.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net >
2025-05-02 11:44:31 -04:00
Kevin O'Connor
3cf8899a5a
docs: Note canbus_query.py limitations in CANBUS_Troubleshooting.md
...
Signed-off-by: Kevin O'Connor <kevin@koconnor.net >
2025-04-29 13:52:57 -04:00
Kevin O'Connor
b7c243db19
docs: Note functioning canbus required even in bridge mode in CANBUS.md
...
Signed-off-by: Kevin O'Connor <kevin@koconnor.net >
2025-04-29 13:02:34 -04:00
Kevin O'Connor
5b2f8104c7
neopixel: Round up in nsecs_to_ticks()
...
The rp2040 operates at a fast internal clock with a relatively slow
external timer and dividing down could result in a too small delay.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net >
2025-04-28 19:55:30 -04:00
Kevin O'Connor
cf3bedfbdc
stm32: Enable VOS0 power mode on stm32h723 if frequency above 400Mhz
...
Signed-off-by: Kevin O'Connor <kevin@koconnor.net >
2025-04-28 19:36:55 -04:00
Kevin O'Connor
7f4f696f10
stm32: Don't try to set incorrect PWR->CR3 register on stm32h7
...
It's not valid to set BYPASS and LDOEN at the same time.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net >
2025-04-28 19:36:55 -04:00
Kevin O'Connor
9c37a918db
stm32: Set the PLL frequency equal to CONFIG_CLOCK_FREQ on stm32h723
...
There is no reason to use a higher internal PLL frequency. This
change also makes it possible to enable higher clock frequencies on
the stm32h723.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net >
2025-04-28 19:36:55 -04:00
Kevin O'Connor
f2b68fef73
stm32: Avoid read-modify-write register updates in stm32h7 clock_setup()
...
Signed-off-by: Kevin O'Connor <kevin@koconnor.net >
2025-04-28 19:36:55 -04:00
Kevin O'Connor
c352617c30
stm32: Use enable_pclock() in stm32h7 clock_setup()
...
Use the helper functions to enable the peripheral clock instead of
directly manipulating the clock enable bits.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net >
2025-04-28 19:36:55 -04:00
Kevin O'Connor
5d1f773ffb
stm32h7: Always clear AHB1ENR at startup on stm32h7
...
Entirely clear the AHB1ENR register. There is no need to modify
AHB1LPENR.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net >
2025-04-28 19:36:55 -04:00
Kevin O'Connor
da8e0a6e50
docs: Update date of cycle_time change in Config_Changes.md
...
Signed-off-by: Kevin O'Connor <kevin@koconnor.net >
2025-04-28 19:36:12 -04:00
Kevin O'Connor
42faa962fc
mcu: Decrease mcu.max_nominal_duration() to 3 seconds from 5
...
This allows the mcu to utilize faster internal speeds.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net >
2025-04-28 19:28:52 -04:00
Kevin O'Connor
0f94f6c8e3
heaters: Confirm heater setting in mcu every 3 seconds instead of 5
...
Increase the confirmation rate of heater enable settings. This allows
the mcu to utilize faster internal speeds.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net >
2025-04-28 19:28:52 -04:00
Kevin O'Connor
c917bd893d
pwm_tool: Use mcu.min_schedule_time() and mcu.max_nominal_duration()
...
Signed-off-by: Kevin O'Connor <kevin@koconnor.net >
2025-04-28 19:28:52 -04:00
Kevin O'Connor
d57bc253c5
led: Use mcu.min_schedule_time() and mcu.max_nominal_duration()
...
Signed-off-by: Kevin O'Connor <kevin@koconnor.net >
2025-04-28 19:28:52 -04:00
Kevin O'Connor
0dce120a20
pwm_cycle_time: Use mcu.min_schedule_time() and mcu.max_nominal_duration()
...
Signed-off-by: Kevin O'Connor <kevin@koconnor.net >
2025-04-28 19:28:52 -04:00
Kevin O'Connor
ab61b0a435
output_pin: Use mcu.min_schedule_time() and mcu.max_nominal_duration()
...
Signed-off-by: Kevin O'Connor <kevin@koconnor.net >
2025-04-28 19:28:52 -04:00
Kevin O'Connor
cc919a5f8d
mcu: Add new min_schedule_time() and max_nominal_duration() helpers
...
Add a function that returns the minimum amount of time the host needs
to reserve for messages to be sent from host to micro-controller.
Add a function that returns the maximum amount of time (in seconds)
that all micro-controllers should be able to schedule future timers
at.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net >
2025-04-28 19:28:52 -04:00
Kevin O'Connor
8e107b2280
basecmd: Update stats timing check to support 32bit duration
...
Use a 32bit duration check instead of the previous 31bit check.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net >
2025-04-28 19:28:52 -04:00
Wulfsta
f1e0730701
lis3dh: increase scale from 8g to 16g
...
Signed-off-by: Luke Vuksta <wulfstawulfsta@gmail.com >
2025-04-28 19:27:43 -04:00
Timofey Titovets
2e82fc4790
spi_flash: fix hw bus
...
_try_send_command() expects a list of args,
But receives a string.
Fixes abc76ee963 .
Signed-off-by: Timofey Titovets <nefelim4ag@gmail.com >
2025-04-28 15:58:55 -04:00
Timofey Titovets
bfda326c24
spi_flash: fix spi bus switch ( #6906 )
...
Fixes abc76ee963 .
Signed-off-by: Timofey Titovets <nefelim4ag@gmail.com >
2025-04-20 11:39:24 -04:00
Russell Cloran
f2b27d17b7
stm32: Add support for spi6 on stm32f42x chips
...
Signed-off-by: Russell Cloran <rcloran@gmail.com >
2025-04-19 12:12:55 -04:00
Kevin O'Connor
5001983d34
stm32: Fix pll_base on stm32h7 when using a clock other than 25Mhz
...
Signed-off-by: Kevin O'Connor <kevin@koconnor.net >
2025-04-19 12:09:58 -04:00
Kevin O'Connor
73e27aee4f
docs: Update benchmarks for stm32h7
...
Signed-off-by: Kevin O'Connor <kevin@koconnor.net >
2025-04-19 12:03:55 -04:00
Kevin O'Connor
0d27195fd4
stm32: Add optimized stm32h7_gpio.c
...
Add optimized gpio functions for stm32h7 - caching the ODR register
can notably improve the performance of the gpio_out_toggle() code.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net >
2025-04-19 11:48:58 -04:00
Kevin O'Connor
1f5783a250
probe: Remove ProbeEndstopSessionHelper
...
Have all callers instantiate the individual helper classes directly.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net >
2025-04-18 14:38:34 -04:00
Kevin O'Connor
37952e8686
probe_eddy_current: Separate probe style commands from homing operations
...
Separate homing operations (as called from probe:z_virtual_endstop)
from the normal probe command handling.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net >
2025-04-18 14:38:34 -04:00
Kevin O'Connor
ab9b9e8584
probe_eddy_current: Do not support QUERY_PROBE command
...
Report an error if a user issues a QUERY_PROBE command (instead of
always returning not-triggered).
Signed-off-by: Kevin O'Connor <kevin@koconnor.net >
2025-04-18 14:38:34 -04:00
Kevin O'Connor
3fb1191cad
probe: Add a new LookupZSteppers helper class
...
Split code to lookup the Z stepper from HomingViaProbeHelper to new
LookupZSteppers class.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net >
2025-04-18 14:38:34 -04:00
Kevin O'Connor
f3a1c914a4
probe: Convert probing_move() callback to use regular probe sessions system
...
Use the normal probe_session_start(), run_probe(),
pull_probed_results(), and end_probe_session() API from
ProbeSessionHelper. This removes the custom probing_move() callback.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net >
2025-04-18 14:38:34 -04:00
Kevin O'Connor
b2e36e5d98
probe: Change probing_move() to pass a gcmd instead of (pos, speed)
...
Signed-off-by: Kevin O'Connor <kevin@koconnor.net >
2025-04-18 14:38:34 -04:00
Kevin O'Connor
ff0ffedd17
probe: Add a new ProbeParameterHelper class
...
Split multi-sample config reading from ProbeSessionHelper to a new
ProbeParameterHelper class.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net >
2025-04-18 14:38:34 -04:00
Kevin O'Connor
1e87d26707
probe: Add a new lookup_minimum_z() helper function
...
Signed-off-by: Kevin O'Connor <kevin@koconnor.net >
2025-04-18 14:38:34 -04:00
Kevin O'Connor
f8de9ae080
probe: Add a new ProbeEndstopSessionHelper class
...
Move the HomingViaProbeHelper() instance from ProbeSessionHelper to a
new ProbeEndstopSessionHelper class.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net >
2025-04-18 14:38:34 -04:00
Kevin O'Connor
6a87c5e9f5
probe: Add a default probing_move() function to HomingViaProbeHelper
...
Signed-off-by: Kevin O'Connor <kevin@koconnor.net >
2025-04-18 14:38:34 -04:00
Kevin O'Connor
db7a9cf071
manual_stepper: Implement "drip moves" for manual stepper STOP_ON_ENDSTOP
...
Currently, `MANUAL_STEPPER STOP_ON_ENDSTOP=1` type commands will move
until hitting the endstop, but it will still always consume the total
amount of move time. That is, following moves can't be started until
the total possible time of the homing move is completed.
Implement "drip moves" so that the code only schedules the movement in
small segments. This allows following movements to be scheduled
without a significant delay.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net >
2025-04-18 14:32:23 -04:00
Kevin O'Connor
765de72f9e
toolhead: Avoid toolhead.move() and toolhead._process_moves() in drip_move()
...
Implement move checking and trapq loading directly from drip_move().
This simplifies the interactions between these components.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net >
2025-04-18 14:32:23 -04:00
Kevin O'Connor
6202a0f3bc
toolhead: Avoid LookAheadQueue calling back into toolhead class
...
Avoid lookahead.flush() calling back into toolhead._process_moves().
Instead, rename toolhead._process_moves() to
toolhead._process_lookahead(), have it call lookahead.flush(), and
consistently use it when flushing the lookahead queue.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net >
2025-04-18 14:32:23 -04:00
Kevin O'Connor
413ff19ea8
neopixel: Add comments on timing
...
Signed-off-by: Kevin O'Connor <kevin@koconnor.net >
2025-04-17 13:06:22 -04:00
Kevin O'Connor
4e7fcc2704
check-software-div: Add a new build check for software divide
...
Update the build checks to include a check for unexpected software
divide operations.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net >
2025-04-17 12:09:19 -04:00
Kevin O'Connor
871637d3f2
Kconfig: Note which chips require software divide operations
...
Add a new HAVE_SOFTWARE_DIVIDE_REQUIRED that indicates which chips
require software divide.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net >
2025-04-17 12:09:19 -04:00
Kevin O'Connor
0fbcc156c5
neopixel: Make sure nsecs_to_ticks() is always inlined
...
It is a compile-time calculation that needs to be inlined to work.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net >
2025-04-17 12:09:19 -04:00
Kevin O'Connor
56d3f4e64c
lcd_st7920: Make sure nsecs_to_ticks() is always inlined
...
It is a compile-time calculation that needs to be inlined to work.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net >
2025-04-17 12:09:19 -04:00
Kevin O'Connor
cb6828ec34
lcd_hd44780: Make sure nsecs_to_ticks() is always inlined
...
It is a compile-time calculation that needs to be inlined to work.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net >
2025-04-17 12:09:19 -04:00
Kevin O'Connor
3656006a30
stm32: Change hard_pwm.c MAX_PWM to 257
...
Choose a value for MAX_PWM that avoids an expensive run-time division.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net >
2025-04-17 12:07:44 -04:00
Kevin O'Connor
7a9b06ad86
stm32: Fix prescaler overflow check in hard_pwm.c
...
Signed-off-by: Kevin O'Connor <kevin@koconnor.net >
2025-04-17 12:07:44 -04:00