[package] authors = ["Carlos Barrales Ruiz "] edition = "2021" name = "prinThor" version = "0.0.3" license = "MIT" readme = "README.md" repository = "https://github.com/cbruiz/printhor" documentation = "https://docs.rs/printhor" description = "The highly reliable but not necessarily functional 3D Printer firmware" exclude = [ "datasheets", "design", "package-publish-trick" ] [badges.maintenance] status = "experimental" [features] default = ["native"] # Hardware device features with-defmt = ["defmt", "defmt-rtt", "panic-probe"] with-usbserial = [] with-uart-port-1 = [] with-printjob = [] with-uart2 = [] with-spi = ["embedded-hal"] with-hotend = ["embedded-hal"] with-hotbed = ["embedded-hal"] with-motion = [] with-probe = ["embedded-hal"] with-endstops = [] with-sdcard = ["embedded-sdmmc"] with-fan0 = ["embedded-hal"] with-fan-layer = ["embedded-hal"] with-laser = ["embedded-hal"] with-trinamic = ["tmc2209"] sdcard-uses-spi = [] has-extruder = [] trinamic-uart-multi-channel = [] timing-stats = [] ili9341_parallel = [] ili9341_spi = [] integration-test = [ #"integration-test-m100", "integration-test-power-on", "integration-test-homing", "integration-test-move-ortho", "integration-test-move-oblique", "integration-test-move-boundaries", #"integration-test-benchy", #"integration-test-laser-engrave", "plot-timings", ] integration-test-m100 = [] integration-test-power-on = [] integration-test-homing = [] integration-test-move-ortho = [] integration-test-move-oblique = [] integration-test-dwell = [] integration-test-set-hotend-temp = [] integration-test-laser-engrave = [] integration-test-benchy = [] integration-test-move-boundaries = [] fixed-point-128-impl = [] float-point-f32-impl = [] float-point-f64-impl = [] # baremetal std = [] arch-std = [] _arch = [] # no-real-time is a technical development feature uses a non monotonic timming to facilitate debugging no-real-time = [] with-lvgl = [ "with-display", "lvgl", #"lvgl/logger", ] plot-timings = [] plot-motion-plan = ["gnuplot"] with-display = [ "embedded-graphics-core", "embedded-graphics", ] native = [ "timing-stats", #"no-real-time", #"with-trinamic", "trinamic-uart-multi-channel", "printhor-hwi_native/with-trinamic", "with-motion", "has-extruder", "printhor-hwi_native/with-motion", "printhor-hwa-common/with-motion", "with-uart-port-1", "printhor-hwi_native/with-uart-port-1", "with-sdcard", "printhor-hwi_native/with-sdcard", "with-printjob", "printhor-hwi_native/with-printjob", "with-probe", "printhor-hwi_native/with-probe", "with-hotend", "printhor-hwi_native/with-hotend", "printhor-hwa-common/with-hotend", "with-hotbed", "printhor-hwi_native/with-hotbed", "printhor-hwa-common/with-hotbed", "with-fan-layer", "printhor-hwi_native/with-fan-layer", "with-laser", "printhor-hwi_native/with-laser", #"with-display", "printhor-hwi_native/with-display", "printhor-hwa-common/with-ui", #"with-lvgl", #"float-point-f64-impl", #"float-point-f32-impl", "fixed-point-128-impl", "printhor-hwi_native/with-log", "plot-motion-plan", #"itertools", #"embassy-sync/log", "embassy-executor/arch-std", "embassy-sync/std", "embassy-time/std", "embassy-time/generic-queue", ] mks_robin_nano = [ "has-extruder", "with-defmt", "printhor-hwi_mks_robin_nano/with-defmt", "with-trinamic", "trinamic-uart-multi-channel", "printhor-hwi_mks_robin_nano/with-trinamic", "with-motion", "printhor-hwi_mks_robin_nano/with-motion", "printhor-hwa-common/with-motion", #"with-uart-port-1", "printhor-hwi_mks_robin_nano/with-uart-port-1", "with-usbserial", "printhor-hwi_mks_robin_nano/with-usbserial", "with-spi", "printhor-hwi_mks_robin_nano/with-spi", "with-sdcard", "sdcard-uses-spi", "printhor-hwi_mks_robin_nano/with-sdcard", "printhor-hwi_mks_robin_nano/sdcard-uses-spi", "with-printjob", "printhor-hwi_mks_robin_nano/with-printjob", "with-probe", "printhor-hwi_mks_robin_nano/with-probe", "with-hotend", "printhor-hwi_mks_robin_nano/with-hotend", "printhor-hwa-common/with-hotend", "with-hotbed", "printhor-hwi_mks_robin_nano/with-hotbed", "printhor-hwa-common/with-hotbed", "with-fan-layer", "printhor-hwi_mks_robin_nano/with-fan-layer-fan1", "with-laser", "printhor-hwi_mks_robin_nano/with-laser", #"float-point-f32-impl", #"float-point-f64-impl", "fixed-point-128-impl", "cortex-m", "cortex-m-rt", "alloc-cortex-m", "printhor-hwi_mks_robin_nano", "embassy-executor/arch-cortex-m", "embassy-executor/executor-interrupt", "embassy-time/generic-queue", ] nucleo_64_arduino_cnc_hat = [ "timing-stats", "with-defmt", "printhor-hwi_nucleo_64_arduino_cnc_hat/with-defmt", "with-motion", "printhor-hwi_nucleo_64_arduino_cnc_hat/with-motion", "printhor-hwa-common/with-motion", "with-uart-port-1", "printhor-hwi_nucleo_64_arduino_cnc_hat/with-uart-port-1", #"with-spi", "printhor-hwi_nucleo_64_arduino_cnc_hat/with-spi", #"with-sdcard", "sdcard-uses-spi", "printhor-hwi_nucleo_64_arduino_cnc_hat/with-sdcard", "printhor-hwi_nucleo_64_arduino_cnc_hat/sdcard-uses-spi", #"with-printjob", "printhor-hwi_nucleo_64_arduino_cnc_hat/with-printjob", #"with-probe", "printhor-hwi_nucleo_64_arduino_cnc_hat/with-probe", #"with-hotend", "printhor-hwi_nucleo_64_arduino_cnc_hat/with-hotend", "printhor-hwa-common/with-hotend", #"with-hotbed", "printhor-hwi_nucleo_64_arduino_cnc_hat/with-hotbed", "printhor-hwa-common/with-hotbed", #"with-fan-layer", "printhor-hwi_nucleo_64_arduino_cnc_hat/with-layer-fan", #"with-laser", "printhor-hwi_nucleo_64_arduino_cnc_hat/with-laser", "float-point-f32-impl", #"float-point-f64-impl", #"fixed-point-128-impl", "cortex-m", "cortex-m-rt", "alloc-cortex-m", "printhor-hwi_nucleo_64_arduino_cnc_hat", "embassy-executor/arch-cortex-m", "embassy-executor/executor-interrupt", "embassy-time/generic-queue", ] nucleo64-l476rg = ["printhor-hwi_nucleo_64_arduino_cnc_hat/nucleo64-l476rg"] nucleo64-f410rb = ["printhor-hwi_nucleo_64_arduino_cnc_hat/nucleo64-f410rb"] skr_mini_e3 = [ "timing-stats", "with-defmt", "printhor-hwi_skr_mini_e3/with-defmt", "with-trinamic", "printhor-hwi_skr_mini_e3/with-trinamic", "with-motion", "printhor-hwi_skr_mini_e3/with-motion", "printhor-hwa-common/with-motion", "with-usbserial", "printhor-hwi_skr_mini_e3/with-usbserial", #"with-uart-port-1", "printhor-hwi_skr_mini_e3/with-uart-port-1", "with-spi", "printhor-hwi_skr_mini_e3/with-spi", "with-sdcard", "sdcard-uses-spi", "printhor-hwi_skr_mini_e3/with-sdcard", "printhor-hwi_skr_mini_e3/sdcard-uses-spi", "with-printjob", "printhor-hwi_skr_mini_e3/with-printjob", "with-probe", "printhor-hwi_skr_mini_e3/with-probe", "with-hotend", "printhor-hwi_skr_mini_e3/with-hotend", "printhor-hwa-common/with-hotend", "with-hotbed", "printhor-hwi_skr_mini_e3/with-hotbed", "printhor-hwa-common/with-hotbed", "with-fan-layer", "printhor-hwi_skr_mini_e3/with-fan-layer-fan0", "with-laser", "printhor-hwi_skr_mini_e3/with-laser", #"ili9341_spi", #"with-display", #"with-lvgl", #"float-point-f32-impl", #"float-point-f64-impl", "fixed-point-128-impl", "cortex-m", "cortex-m-rt", "alloc-cortex-m", "printhor-hwi_skr_mini_e3", "embassy-executor/arch-cortex-m", "embassy-executor/executor-interrupt", "embassy-time/generic-queue", ] [dependencies] # Optional baremetal defmt = {version = "0.3.5", optional = true} panic-probe = { version = "0.3.1", features = ["print-defmt"], optional = true} defmt-rtt = { version = "0.4.0", optional = true } cortex-m = { version = "0.7.7", features = ["inline-asm", "critical-section-single-core"], optional = true } cortex-m-rt = { version = "0.7.3", optional = true} alloc-cortex-m = { version = "0.4.4", optional = true} embassy-stm32 = { version = "0.1.0", default-features = false, features = [], optional = true } embassy-executor = { version = "0.5.0", default-features = false, features = [], optional = true } embassy-sync = { version = "0.5.0", features = [] } embassy-time = { version = "0.3.0", features = [] } embassy-futures = { version = "0.1.1", features = [] } embassy-embedded-hal = { version = "0.1.0", features = [], optional = true } embedded-sdmmc = { version = "0.5.0", default-features = false, optional = true } embedded-hal = { version = "1.0.0", default-features = false, optional = true } embedded-hal-02 = { package = "embedded-hal", version = "0.2.7", features = ["unproven", ] } embedded-graphics = { version = "0.7.1", optional = true} display-interface-parallel-gpio = {version = "0.6.0", default-features = false, optional = true} ili9341 = {version = "0.5.0", default-features = false, optional = true} futures = { version = "0.3.30", default-features = false, features = [] } heapless = { version = "0.8.0", default-features = false, features = [] } async-gcode = {version = "0.3", default-features = false, features=["parse-trailing-comment", "optional-value", "string-value"]} strum = { version = "0.25.0", default-features = false, features = ["derive"] } rust_decimal = { version = "1.33.1", default-features = false, features = ["maths", "serde-with-str"] } rust_decimal_macros = { version = "1.33.1" } pid = { version = "4.0.0", default-features = false, features = []} num-traits = {version = "0.2.17", default-features = false, features = [] } micromath = { version = "2.1.0", default-features = false, features = []} embedded-io-async = {version = "0.6.1", default-features = false, features = []} # Steppers tmc2209 = { version = "0.2.2", optional = true } # Common base printhor-hwa-common = { version = "0.0.3", default-features = false, features = [] } # Boards printhor-hwi_native = {version = "0.0.3", optional = true} printhor-hwi_skr_mini_e3 = {version = "0.0.3", optional = true} printhor-hwi_mks_robin_nano = {version = "0.0.3", optional = true} printhor-hwi_nucleo_64_arduino_cnc_hat = {version = "0.0.3", optional = true} gnuplot = {version = "0.0.39", default-features = false, features=[], optional = true} # Display lvgl = { version = "0.5.2", default-features = false, features =[], optional = true } embedded-graphics-core = {version = "0.3.3", optional = true } # machinery cstr_core = { version = "0.2.6", default-features = false, features = ["alloc"], optional = true } bitflags = { version = "2.4.1", default-features = false, features = [] } const_env = "0.1" [build-dependencies] #proc-macro2 = "1.0." [profile.dev] codegen-units = 1 debug = 2 strip = false incremental = false debug-assertions = true #opt-level = "s" lto = true panic = "unwind" [profile.release] codegen-units = 1 debug = 2 strip = false incremental = false debug-assertions = false opt-level = "s" lto = true panic = "abort" [profile.release-opt] inherits = "release" codegen-units = 1 debug = 0 incremental = false debug-assertions = false overflow-checks = false strip = false opt-level = "s" lto = true panic = "abort" [patch.crates-io] async-gcode = { git = "https://github.com/cbruiz/async-gcode.git", branch = "feature/embedded-productivization" } #async-gcode = { path = "../async-gcode" } lvgl = { git = "https://github.com/nviennot/lvgl-rs.git" } printhor-hwa-common = { path= "printhor-hwa-common" } printhor-hwi_native = { path = "hwi-boards/printhor-hwi_native" } printhor-hwi_skr_mini_e3 = { path = "hwi-boards/printhor-hwi_skr_mini_e3" } printhor-hwi_mks_robin_nano = { path= "hwi-boards/printhor-hwi_mks_robin_nano" } printhor-hwi_nucleo_64_arduino_cnc_hat = { path= "hwi-boards/printhor-hwi_nucleo_64_arduino_cnc_hat" } #embassy-stm32 = { git = "https://github.com/cbruiz/embassy.git", branch="main" } #embassy-executor = { git = "https://github.com/cbruiz/embassy.git", branch="main" } #embassy-sync = { git = "https://github.com/cbruiz/embassy.git", branch="main" } #embassy-time = { git = "https://github.com/cbruiz/embassy.git", branch="main" } #embassy-futures = { git = "https://github.com/cbruiz/embassy.git", branch="main" } #embassy-embedded-hal = { git = "https://github.com/cbruiz/embassy.git", branch="main" } #[workspace.vars] # TBD