Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- esphome:
- name: esphome-web-2e08d0
- friendly_name: basement-heater-stepper-2
- min_version: 2024.11.0
- name_add_mac_suffix: false
- on_boot:
- - tmc2209.configure:
- microsteps: 8
- interpolation: true
- - tmc2209.stallguard:
- threshold: 50
- - tmc2209.currents:
- standstill_mode: freewheeling
- irun: 16
- ihold: 0
- tpowerdown: 0
- iholddelay: 0
- esp32:
- board: esp32dev
- framework:
- type: esp-idf
- # Enable logging
- logger:
- baud_rate: 0
- # Enable Home Assistant API
- api:
- # Allow Over-The-Air updates
- ota:
- - platform: esphome
- wifi:
- ssid: ""
- password: ""
- external_components:
- - source: github://slimcdk/esphome-custom-components
- components: [ tmc2209_hub, tmc2209, stepper ]
- globals:
- - id: has_homed
- type: bool
- initial_value: "true"
- restore_value: no
- uart:
- tx_pin: GPIO16 #tx 1K OHM RESISTOR
- rx_pin: GPIO17 #rx
- baud_rate: 500000 # 9600 -> 500k
- stepper:
- - platform: tmc2209
- id: driver
- max_speed: 900 steps/s
- acceleration: 1500 steps/s^2
- deceleration: 500 steps/s^2
- config_dump_include_registers: true
- rsense: 110 mOhm
- vsense: False
- # address: 0x00
- enn_pin: GPIO25 #D7
- diag_pin: GPIO34 #D2
- index_pin: GPIO12 #d5
- step_pin: GPIO26 #D2
- dir_pin: GPIO14 #D5
- on_stall:
- - logger.log: "Motor stalled!"
- - stepper.stop: driver
- - if:
- condition:
- lambda: return !id(has_homed);
- then:
- - stepper.report_position:
- id: driver
- position: 0
- - globals.set:
- id: has_homed
- value: "true"
- - logger.log: "Home position set"
- on_status:
- - logger.log:
- format: "Driver is reporting an update! (code %d)"
- args: ["code"]
- - if:
- condition:
- lambda: return code == tmc2209::DIAG_TRIGGERED;
- then:
- - logger.log: DIAG_TRIGGERED
- - if:
- condition:
- lambda: return code == tmc2209::DIAG_TRIGGER_CLEARED;
- then:
- - logger.log: DIAG_TRIGGER_CLEARED
- - if:
- condition:
- lambda: return code == tmc2209::RESET;
- then:
- - logger.log: RESET
- - if:
- condition:
- lambda: return code == tmc2209::RESET_CLEARED;
- then:
- - logger.log: RESET_CLEARED
- - if:
- condition:
- lambda: return code == tmc2209::DRIVER_ERROR;
- then:
- - logger.log: DRIVER_ERROR
- - if:
- condition:
- lambda: return code == tmc2209::DRIVER_ERROR_CLEARED;
- then:
- - logger.log: DRIVER_ERROR_CLEARED
- - if:
- condition:
- lambda: return code == tmc2209::CP_UNDERVOLTAGE;
- then:
- - logger.log: CP_UNDERVOLTAGE
- - if:
- condition:
- lambda: return code == tmc2209::CP_UNDERVOLTAGE_CLEARED;
- then:
- - logger.log: CP_UNDERVOLTAGE_CLEARED
- - if:
- condition:
- lambda: return code == tmc2209::OVERTEMPERATURE_PREWARNING;
- then:
- - logger.log: OVERTEMPERATURE_PREWARNING
- - if:
- condition:
- lambda: return code == tmc2209::OVERTEMPERATURE_PREWARNING_CLEARED;
- then:
- - logger.log: OVERTEMPERATURE_PREWARNING_CLEARED
- - if:
- condition:
- lambda: return code == tmc2209::OVERTEMPERATURE;
- then:
- - logger.log: OVERTEMPERATURE
- - if:
- condition:
- lambda: return code == tmc2209::OVERTEMPERATURE_CLEARED;
- then:
- - logger.log: OVERTEMPERATURE_CLEARED
- - if:
- condition:
- lambda: return code == tmc2209::TEMPERATURE_ABOVE_120C;
- then:
- - logger.log: TEMPERATURE_ABOVE_120C
- - if:
- condition:
- lambda: return code == tmc2209::TEMPERATURE_BELOW_120C;
- then:
- - logger.log: TEMPERATURE_BELOW_120C
- - if:
- condition:
- lambda: return code == tmc2209::TEMPERATURE_ABOVE_143C;
- then:
- - logger.log: TEMPERATURE_ABOVE_143C
- - if:
- condition:
- lambda: return code == tmc2209::TEMPERATURE_BELOW_143C;
- then:
- - logger.log: TEMPERATURE_BELOW_143C
- - if:
- condition:
- lambda: return code == tmc2209::TEMPERATURE_ABOVE_150C;
- then:
- - logger.log: TEMPERATURE_ABOVE_150C
- - if:
- condition:
- lambda: return code == tmc2209::TEMPERATURE_BELOW_150C;
- then:
- - logger.log: TEMPERATURE_BELOW_150C
- - if:
- condition:
- lambda: return code == tmc2209::TEMPERATURE_ABOVE_157C;
- then:
- - logger.log: TEMPERATURE_ABOVE_157C
- - if:
- condition:
- lambda: return code == tmc2209::TEMPERATURE_BELOW_157C;
- then:
- - logger.log: TEMPERATURE_BELOW_157C
- - if:
- condition:
- lambda: return code == tmc2209::OPEN_LOAD;
- then:
- - logger.log: OPEN_LOAD
- - if:
- condition:
- lambda: return code == tmc2209::OPEN_LOAD_CLEARED;
- then:
- - logger.log: OPEN_LOAD_CLEARED
- - if:
- condition:
- lambda: return code == tmc2209::OPEN_LOAD_A;
- then:
- - logger.log: OPEN_LOAD_A
- - if:
- condition:
- lambda: return code == tmc2209::OPEN_LOAD_A_CLEARED;
- then:
- - logger.log: OPEN_LOAD_A_CLEARED
- - if:
- condition:
- lambda: return code == tmc2209::OPEN_LOAD_B;
- then:
- - logger.log: OPEN_LOAD_B
- - if:
- condition:
- lambda: return code == tmc2209::OPEN_LOAD_B_CLEARED;
- then:
- - logger.log: OPEN_LOAD_B_CLEARED
- - if:
- condition:
- lambda: return code == tmc2209::LOW_SIDE_SHORT;
- then:
- - logger.log: LOW_SIDE_SHORT
- - if:
- condition:
- lambda: return code == tmc2209::LOW_SIDE_SHORT_CLEARED;
- then:
- - logger.log: LOW_SIDE_SHORT_CLEARED
- - if:
- condition:
- lambda: return code == tmc2209::LOW_SIDE_SHORT_A;
- then:
- - logger.log: LOW_SIDE_SHORT_A
- - if:
- condition:
- lambda: return code == tmc2209::LOW_SIDE_SHORT_A_CLEARED;
- then:
- - logger.log: LOW_SIDE_SHORT_A_CLEARED
- - if:
- condition:
- lambda: return code == tmc2209::LOW_SIDE_SHORT_B;
- then:
- - logger.log: LOW_SIDE_SHORT_B
- - if:
- condition:
- lambda: return code == tmc2209::LOW_SIDE_SHORT_B_CLEARED;
- then:
- - logger.log: LOW_SIDE_SHORT_B_CLEARED
- - if:
- condition:
- lambda: return code == tmc2209::GROUND_SHORT;
- then:
- - logger.log: GROUND_SHORT
- - if:
- condition:
- lambda: return code == tmc2209::GROUND_SHORT_CLEARED;
- then:
- - logger.log: GROUND_SHORT_CLEARED
- - if:
- condition:
- lambda: return code == tmc2209::GROUND_SHORT_A;
- then:
- - logger.log: GROUND_SHORT_A
- - if:
- condition:
- lambda: return code == tmc2209::GROUND_SHORT_A_CLEARED;
- then:
- - logger.log: GROUND_SHORT_A_CLEARED
- - if:
- condition:
- lambda: return code == tmc2209::GROUND_SHORT_B;
- then:
- - logger.log: GROUND_SHORT_B
- - if:
- condition:
- lambda: return code == tmc2209::GROUND_SHORT_B_CLEARED;
- then:
- - logger.log: GROUND_SHORT_B_CLEARED
- button:
- - platform: template
- name: Home
- on_press:
- - logger.log: "Going home!"
- - globals.set:
- id: has_homed
- value: "false"
- - stepper.set_target:
- id: driver
- target: -9999999
- - platform: template
- name: 1000 Steps forward
- on_press:
- - stepper.set_target:
- id: driver
- target: !lambda return id(driver)->current_position +1000;
- - platform: template
- name: 1000 Steps backward
- on_press:
- - stepper.set_target:
- id: driver
- target: !lambda return id(driver)->current_position -1000;
- - platform: template
- name: Stop
- on_press:
- - stepper.stop: driver
- number:
- - platform: template
- name: Target position
- min_value: -100000
- max_value: 100000
- step: 100
- lambda: return id(driver)->current_position;
- update_interval: 1s
- set_action:
- - stepper.set_target:
- id: driver
- target: !lambda "return x;"
- sensor:
- - platform: tmc2209
- type: motor_load
- name: Motor load
- update_interval: 5s
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement