Cargo Features

[dependencies]
prinThor = { version = "0.0.3", default-features = false, features = ["with-defmt", "with-usbserial", "with-uart-port-1", "with-printjob", "with-uart2", "with-spi", "with-hotend", "with-hotbed", "with-motion", "with-probe", "with-endstops", "with-sdcard", "with-fan0", "with-fan-layer", "with-laser", "with-trinamic", "sdcard-uses-spi", "has-extruder", "trinamic-uart-multi-channel", "timing-stats", "ili9341_parallel", "ili9341_spi", "integration-test-m100", "integration-test-homing", "integration-test-move-oblique", "integration-test-set-hotend-temp", "integration-test-benchy", "integration-test-move-boundaries", "fixed-point-128-impl", "float-point-f32-impl", "float-point-f64-impl", "integration-test", "std", "arch-std", "no-real-time", "with-lvgl", "plot-timings", "plot-motion-plan", "with-display", "native", "mks_robin_nano", "nucleo_64_arduino_cnc_hat", "nucleo64-l476rg", "nucleo64-f410rb", "skr_mini_e3", "embassy-stm32", "embassy-embedded-hal", "display-interface-parallel-gpio", "ili9341", "cstr_core"] }
default = native

The native feature is set by default whenever prinThor is added without default-features = false somewhere in the dependency tree.

with-defmt mks_robin_nano? nucleo_64_arduino_cnc_hat? skr_mini_e3? = defmt, defmt-rtt, panic-probe

Hardware device features

with-usbserial mks_robin_nano? skr_mini_e3?

Affects processor::GCodeProcessorParams.usbserial_tx, processor::GCodeProcessor.usbserial_tx, task_control::ControlTaskDevices.usb_serial_rx

with-uart-port-1 native nucleo_64_arduino_cnc_hat?

Affects processor::GCodeProcessor.uart_port1_tx, task_control::ControlTaskDevices.uart_port1_rx_stream

with-printjob mks_robin_nano? native skr_mini_e3?

Affects task_control::ControlTaskControllers.printer_controller, task_integration::IntegrationaskParams.printer_controller, hwa::task_allocations.init_printer_subscriber

with-uart2
with-spi mks_robin_nano? skr_mini_e3? = embedded-hal
with-hotend mks_robin_nano? native skr_mini_e3? = embedded-hal

Affects processor::GCodeProcessorParams.hotend, processor::GCodeProcessor.hotend, controllers::HotendController, controllers::HotendControllerRef, controllers::HotendPwmController

with-hotbed mks_robin_nano? native skr_mini_e3? = embedded-hal

Affects processor::GCodeProcessorParams.hotbed, processor::GCodeProcessor.hotbed, controllers::HotbedController, controllers::HotbedControllerRef, controllers::HotbedPwmController

with-motion mks_robin_nano? native nucleo_64_arduino_cnc_hat? skr_mini_e3?

Affects control::task_stepper, processor::GCodeProcessorParams.motion_planner, processor::GCodeProcessor.motion_planner, motion_driver::MotionDriverParams, motion_driver::MotionDriver.pins

with-probe mks_robin_nano? native skr_mini_e3? = embedded-hal

Affects processor::GCodeProcessorParams.probe, processor::GCodeProcessor.probe, controllers::ServoControllerRef, motion_driver::MotionDriver.probe_controller

with-endstops
with-sdcard mks_robin_nano? native skr_mini_e3? = embedded-sdmmc

Affects task_control::ControlTaskControllers.card_controller, controllers::sdcard_controller, hwa::DummyTimeSource

with-fan0 = embedded-hal

Affects processor::GCodeProcessorParams.fan0, processor::GCodeProcessor.fan0, controllers::Fan0PwmController, controllers::Fan0PwmControllerRef, motion_driver::MotionDriver.fan0_controller

with-fan-layer mks_robin_nano? native skr_mini_e3? = embedded-hal

Affects processor::GCodeProcessorParams.layer_fan, controllers::LayerPwmController, controllers::LayerPwmControllerRef, motion_driver::MotionDriver.layer_fan_controller

with-laser mks_robin_nano? native skr_mini_e3? = embedded-hal

Affects processor::GCodeProcessorParams.laser, processor::GCodeProcessor.laser, controllers::LaserPwmController, controllers::LaserPwmControllerRef, motion_driver::MotionDriver.laser_controller

with-trinamic mks_robin_nano? skr_mini_e3? = tmc2209

Affects motion_driver::MotionDriver.trinamic_controller

sdcard-uses-spi mks_robin_nano? skr_mini_e3?

Affects sdcard_controller::SDCardBlockDevice

has-extruder mks_robin_nano? native
trinamic-uart-multi-channel mks_robin_nano?
timing-stats native nucleo_64_arduino_cnc_hat? skr_mini_e3?

Affects drivers::timing_stats

ili9341_parallel

Affects display::ili9341_parallel

ili9341_spi

Affects display::ili9341_spi

integration-test-m100
integration-test-power-on integration-test-homing integration-test?
integration-test-move-ortho integration-test-move-oblique integration-test?
integration-test-dwell integration-test-set-hotend-temp
integration-test-laser-engrave integration-test-benchy
integration-test-move-boundaries integration-test?
fixed-point-128-impl mks_robin_nano? native skr_mini_e3?
float-point-f32-impl nucleo_64_arduino_cnc_hat?
float-point-f64-impl
integration-test = integration-test-homing, integration-test-move-boundaries, integration-test-move-oblique, integration-test-move-ortho, integration-test-power-on, plot-timings

Affects hwa::task_allocations.init_integration_subscriber

std

baremetal

arch-std
no-real-time

no-real-time is a technical development feature uses a non monotonic timming to facilitate debugging

with-lvgl = lvgl, with-display

Affects ui::lvgl_ui

plot-timings integration-test?
plot-motion-plan native = gnuplot
with-display with-lvgl? = embedded-graphics, embedded-graphics-core

Affects hwa::display

native default = fixed-point-128-impl, has-extruder, plot-motion-plan, timing-stats, with-fan-layer, with-hotbed, with-hotend, with-laser, with-motion, with-printjob, with-probe, with-sdcard, with-uart-port-1

Enables std of embassy-sync, generic-queue and std of embassy-time and arch-std of embassy-executor

embassy-executor:

std

and with-hotbed, with-hotend and with-motion of printhor-hwa-common

Common base

and with-fan-layer, with-hotbed, with-hotend, with-laser, with-log, with-motion, with-printjob, with-probe, with-sdcard and with-uart-port-1 of printhor-hwi_native

Boards

mks_robin_nano = alloc-cortex-m, cortex-m, cortex-m-rt, fixed-point-128-impl, has-extruder, printhor-hwi_mks_robin_nano, sdcard-uses-spi, trinamic-uart-multi-channel, with-defmt, with-fan-layer, with-hotbed, with-hotend, with-laser, with-motion, with-printjob, with-probe, with-sdcard, with-spi, with-trinamic, with-usbserial

Enables arch-cortex-m and executor-interrupt of embassy-executor, with-hotbed, with-hotend and with-motion of printhor-hwa-common, sdcard-uses-spi, with-defmt, with-fan-layer-fan1, with-hotbed, with-hotend, with-laser, with-motion, with-printjob, with-probe, with-sdcard, with-spi, with-trinamic and with-usbserial of printhor-hwi_mks_robin_nano and generic-queue of embassy-time

embassy-time:

### Generic Queue

Create a global, generic queue that can be used with any executor.
To use this you must have a time driver provided.

nucleo_64_arduino_cnc_hat = alloc-cortex-m, cortex-m, cortex-m-rt, float-point-f32-impl, printhor-hwi…64_arduino_cnc_hat, timing-stats, with-defmt, with-motion, with-uart-port-1

Enables arch-cortex-m and executor-interrupt of embassy-executor, generic-queue of embassy-time, with-motion of printhor-hwa-common, with-defmt, with-motion and with-uart-port-1 of printhor-hwi_nucleo_64_arduino_cnc_hat

nucleo64-l476rg

Enables nucleo64-l476rg of printhor-hwi_nucleo_64_arduino_cnc_hat

printhor-hwi_nucleo_64_arduino_cnc_hat:

Board kind

nucleo64-f410rb

Enables nucleo64-f410rb of printhor-hwi_nucleo_64_arduino_cnc_hat

skr_mini_e3 = alloc-cortex-m, cortex-m, cortex-m-rt, fixed-point-128-impl, printhor-hwi_skr_mini_e3, sdcard-uses-spi, timing-stats, with-defmt, with-fan-layer, with-hotbed, with-hotend, with-laser, with-motion, with-printjob, with-probe, with-sdcard, with-spi, with-trinamic, with-usbserial

Enables arch-cortex-m and executor-interrupt of embassy-executor, generic-queue of embassy-time, with-hotbed, with-hotend and with-motion of printhor-hwa-common, sdcard-uses-spi, with-defmt, with-fan-layer-fan0, with-hotbed, with-hotend, with-laser, with-motion, with-printjob, with-probe, with-sdcard, with-spi, with-trinamic and with-usbserial of printhor-hwi_skr_mini_e3

Features from optional dependencies

In crates that don't use the dep: syntax, optional dependencies automatically become Cargo features. These features may have been created by mistake, and this functionality may be removed in the future.

defmt with-defmt?

Enables defmt

Optional baremetal

panic-probe with-defmt?
defmt-rtt with-defmt?
cortex-m mks_robin_nano? nucleo_64_arduino_cnc_hat? skr_mini_e3?
cortex-m-rt mks_robin_nano? nucleo_64_arduino_cnc_hat? skr_mini_e3?
alloc-cortex-m mks_robin_nano? nucleo_64_arduino_cnc_hat? skr_mini_e3?
embassy-stm32 implicit feature

Enables embassy-stm32

embassy-stm32:

Embassy Hardware Abstraction Layer (HAL) for ST STM32 series microcontrollers

embassy-executor mks_robin_nano? native nucleo_64_arduino_cnc_hat? skr_mini_e3?
embassy-embedded-hal implicit feature

Enables embassy-embedded-hal

embassy-embedded-hal:

Collection of utilities to use embedded-hal and embedded-storage traits with Embassy

embedded-sdmmc with-sdcard?

Enables embedded-sdmmc ^0.5.0

embedded-hal with-fan-layer? with-fan0? with-hotbed? with-hotend? with-laser? with-probe? with-spi?
embedded-graphics with-display?

Enables embedded-graphics ^0.7.1

display-interface-parallel-gpio implicit feature

Enables display-interface-parallel-gpio ^0.6.0

display-interface-parallel-gpio:

Generic parallel GPIO interface for display interfaces

ili9341 implicit feature

Enables ili9341 ^0.5.0

ili9341:

A platform agnostic driver to interface with the ILI9341 (ald ILI9340C) TFT LCD display

tmc2209 with-trinamic?

Enables tmc2209

Steppers

printhor-hwi_native native
printhor-hwi_skr_mini_e3 skr_mini_e3?
printhor-hwi_mks_robin_nano mks_robin_nano?
printhor-hwi_nucleo_64_arduino_cnc_hat nucleo64-f410rb? nucleo64-l476rg? nucleo_64_arduino_cnc_hat?
gnuplot plot-motion-plan?

Enables gnuplot ^0.0.39

lvgl with-lvgl?

Enables lvgl ^0.5.2

Display

embedded-graphics-core with-display?

Enables embedded-graphics-core ^0.3.3

cstr_core implicit feature

Enables cstr_core

machinery