Advertisement
Guest User

Untitled

a guest
Mar 6th, 2025
42
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
YAML 2.93 KB | None | 0 0
  1. esphome:
  2.   name: esphome-web-2e08d0
  3.   friendly_name: basement-heater-stepper-2
  4.   min_version: 2024.11.0
  5.   name_add_mac_suffix: false
  6.   on_boot:
  7.       - tmc2209.configure:
  8.           microsteps: 8
  9.           interpolation: true
  10.       - tmc2209.stallguard:
  11.           threshold: 50
  12.       - tmc2209.currents:
  13.           standstill_mode: freewheeling
  14.           irun: 16
  15.           ihold: 0
  16.           tpowerdown: 0
  17.           iholddelay: 0
  18.  
  19.  
  20.  
  21. esp32:
  22.   board: esp32dev
  23.   framework:
  24.     type: esp-idf
  25.  
  26. # Enable logging
  27. logger:
  28.   baud_rate: 0
  29.  
  30. # Enable Home Assistant API
  31. api:
  32. # Allow Over-The-Air updates
  33. ota:
  34. - platform: esphome
  35.  
  36. wifi:
  37.   ssid: "The Twelve Colonies"
  38.   password: "4404137231"
  39.  
  40.  
  41. external_components:
  42.   - source: github://slimcdk/esphome-custom-components
  43.     components: [ tmc2209_hub, tmc2209, stepper ]
  44.  
  45. globals:
  46.   - id: has_homed
  47.     type: bool
  48.     initial_value: "true"
  49.     restore_value: no
  50.  
  51. uart:
  52.   tx_pin: GPIO16 #tx 1K OHM RESISTOR
  53.   rx_pin: GPIO17 #rx
  54.   baud_rate: 500000 # 9600 -> 500k
  55.  
  56. stepper:
  57.   - platform: tmc2209
  58.     id: driver
  59.     max_speed: 900 steps/s
  60.     acceleration: 1500 steps/s^2
  61.     deceleration: 500 steps/s^2
  62.     config_dump_include_registers: true
  63.     rsense: 110 mOhm
  64.     vsense: False
  65. #    address: 0x00
  66.     enn_pin: GPIO25 #D7
  67.     diag_pin: GPIO34 #D2
  68. #    index_pin: GPIO12 #d5
  69.     step_pin: GPIO26 #D2
  70.     dir_pin: GPIO14 #D5                
  71.     on_stall:
  72.       - logger.log: "Motor stalled!"
  73.       - stepper.stop: driver
  74.       - if:
  75.           condition:
  76.             lambda: return !id(has_homed);
  77.           then:
  78.             - stepper.report_position:
  79.                 id: driver
  80.                 position: 0
  81.             - globals.set:
  82.                 id: has_homed
  83.                 value: "true"
  84.             - logger.log: "Home position set"
  85.  
  86. button:
  87.   - platform: template
  88.     name: Home
  89.     on_press:
  90.       - logger.log: "Going home!"
  91.       - globals.set:
  92.           id: has_homed
  93.           value: "false"
  94.       - stepper.set_target:
  95.           id: driver
  96.           target: -9999999
  97.  
  98.   - platform: template
  99.     name: 1000 Steps forward
  100.     on_press:
  101.       - stepper.set_target:
  102.           id: driver
  103.           target: !lambda return id(driver)->current_position +1000;
  104.  
  105.   - platform: template
  106.     name: 1000 Steps backward
  107.     on_press:
  108.       - stepper.set_target:
  109.           id: driver
  110.           target: !lambda return id(driver)->current_position -1000;
  111.  
  112.   - platform: template
  113.     name: Stop
  114.     on_press:
  115.       - stepper.stop: driver
  116.  
  117. number:
  118.   - platform: template
  119.     name: Target position
  120.     min_value: -100000
  121.     max_value: 100000
  122.     step: 100
  123.     lambda: return id(driver)->current_position;
  124.     update_interval: 1s
  125.     set_action:
  126.       - stepper.set_target:
  127.           id: driver
  128.           target: !lambda "return x;"
  129.  
  130. sensor:
  131.   - platform: tmc2209
  132.     type: motor_load
  133.     name: Motor load
  134.     update_interval: 250ms
  135.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement