Rework `generic/serial_irq` to handle multiple serial connections. Buffers
are now allocated dynamically during setup.
Rework board-specific serial implementations to handle multiple serial
connections and runtime configuration.
Move host-communication related code to separate files.
`sendf()` now returns a value indicating whether it succeeds or not.
Host-communication serial interrupts are given priority over other serial
interrupts.
For STM32: merge STM32F0 serial implementation with generic STM32 serial
implementation and use a separate, static implementation on STM32F031 to
limit footprint.
A larger smooth_time results in a slower reaction time for the PID.
This increased delay can cause temperature oscillations with high
power heaters. Many boards produce good results without any
smoothing. So, it seems a smooth_time of 1 second is a better
default.
Reported by @ReXT3D.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
When adding steppers to a `PrinterRail`, detect duplicated `endstop_pin`
settings and add them to the already-registered endstop.
Signed-off-by: Lasse Dalegaard <dalegaard@gmail.com>
Transmit data from mcu to host using 5 bytes per sample and up to 10
samples per message block. This improves bandwidth efficiency.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Query the adxl345 message counter every 100ms so that accurate timing
can be obtained during measurements. This allows the adxl345 data to
be exported with timestamps while captures are running.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Introduce a new start_internal_client() function and change all client
code to use that instead of manually calling start_measurements() and
finish_measurements().
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Separate out the G-Code command handlers to a new ADXLCommandHelper()
class. This helps separate the sensing code from the user interface
code.
Deprecate the RATE parameter of the ACCELEROMETER_MEASURE command.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Support endstops and probes attached to a different micro-controller
than their associated steppers.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
It's possible for the original homing move of an axis to alter the
position of other axes. Make sure those other axes are not requested
to move on a subsequent second home retract move, as that could cause
an error if those other axes have not been homed.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Commit 3814a132 added code to homing.py to call calc_position() - add
that function to manual_stepper.py .
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
If the choice mapping uses integer keys then lookup the config option
using self.getint(). This simplifies the callers and improves the
encoding of the printer.configfile.settings export.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>