Smart Blast Gate for Workshop Dust Collection

So many updates to make… I’ll start with this and fill in some blanks. A lot of my attention this year has been a return to woodworking. That’s a long enough story to be it’s own post so I’ll save that for later. The basic premise here is that I am making a lot of dust so I purchased a dust collection system. But who wants to drag a hose around to each machine, each time you go to use it (I am guessing no one)? And what’s the point of all the HomeAssistant and ESPHome stuff if I can’t automate the little annoyances? Well, now where at the topic of this post – Smart Blast Gate for Workshop Dust Collection.

The primary pieces of equipment I need dust collection for are the lathe, band saw, router table, and cnc. There are other opportunities of course, such as table saws, circular saws, planers, sanders, floor sweep, etc. Here are the details of the main pieces of equipment:

  • Jet JWL-1221VS Wood Lathe
  • WEN BA1487 14″ Band Saw
  • Bosch RA1181 & 1617EVS Router Table
  • Sienci Labs AltMill

For the dust collection itself, I went with the WEN DC1300 system. This unit advertises 1,300 CFM with a 50 gallon collection bag and a 5 micron filtering bag. This is more than good enough for my use cases. For now I am going to use 4″ heavy duty PVC hose to interconnect everything although I may change to a proper tube/pipe system later.

The blast gate system…

I shopped the normal manual blast gates that had very mixed reviews and ultimately, given the price point and poor performance, decided I wanted something better – or at least automated. This led me to some really impressive smart blast gates that also had impressive price tags. So I started searching for 3D printable options thinking surely someone else has desired this solution, and they had. I stumbled upon a YouTube video by Nils Rasmusson that gave a great review on this Ball Valve gate by PeterH1500.

His model is great, but as he later stated, it was rather large. Luckily PeterH1500 made a smaller, Truncated Ball Valve that would work much better for my needs. And this is where I started working on making it a ‘Smart’ blast gate. I later noticed someone else did a different variation of making it smart but I had already completed my prototype so oh well.

My efforts to make this smart were not sophisticated. Using TinkerCad, I modified the bottom bearing.stl to accept a MG996R servo gear and then modified the bracket.stl to hold the servo. Simple right? The modified files can be found here in my download section or on Printables.

Making it Smart

Since I already use a combination of HomeAssistant, ESPHome, and NodeMCUs to control other ventilation automation, it made sense to use the same concept on the blast gate.

The NodeMCU V2 ESP8266 can control 8 individual gates. Officially the NodeMCU supports 5VDC but I was able to use a 6VDC 5A power supply which will then provide ample power to the servos. Wiring schematic is pretty straight forward. Positive and Negative are shared among the NodeMCU and Servos. The data pins are 1 for 1 from the NodeMCU to the Servos.

Parts List

Schematic

ESPHome Code

substitutions:
  board: nodemcuv2
  device_name: blastgate
  friendly_name: BlastGate

esphome:
  name: ${device_name}
  platform: ESP8266
  board: ${board}

logger:

api:
  encryption:
    key: "encryptionkeypass"

ota:
  - platform: esphome
    password: "otapassword"

wifi:
  ssid: !secret wifi_ssid #or enter your WiFi SSID
  password: !secret wifi_password #or enter your WiFi password
  fast_connect: on
  domain: .local.lan
  reboot_timeout: 0s
  manual_ip:
    static_ip: xxx.xxx.xx.xxx #use your assigned IP address
    gateway: xxx.xxx.xx.xxx #use your gateway address
    subnet: 255.255.255.0
  power_save_mode: none

  ap:
    ssid: "Blastgate Fallback Hotspot"
    password: "hotspotpassword"

captive_portal:
    
web_server:
  port: 80

output:
  - platform: esp8266_pwm
    id: pwm_output1
    pin: D1
    frequency: 50 Hz
  - platform: esp8266_pwm
    id: pwm_output2
    pin: D2
    frequency: 50 Hz
  - platform: esp8266_pwm
    id: pwm_output3
    pin: D3
    frequency: 50 Hz
  - platform: esp8266_pwm
    id: pwm_output4
    pin: D4
    frequency: 50 Hz
  - platform: esp8266_pwm
    id: pwm_output5
    pin: D5
    frequency: 50 Hz
  - platform: esp8266_pwm
    id: pwm_output6
    pin: D6
    frequency: 50 Hz
  - platform: esp8266_pwm
    id: pwm_output7
    pin: D7
    frequency: 50 Hz
  - platform: esp8266_pwm
    id: pwm_output8
    pin: D8
    frequency: 50 Hz

servo:
  - id: damper1
    output: pwm_output1
  - id: damper2
    output: pwm_output2
  - id: damper3
    output: pwm_output3
  - id: damper4
    output: pwm_output4
  - id: damper5
    output: pwm_output5
  - id: damper6
    output: pwm_output6
  - id: damper7
    output: pwm_output7
  - id: damper8
    output: pwm_output8

cover:
  - platform: template
    name: "${friendly_name} 1"
    id: blastgate1
    optimistic: true
    device_class: damper
    open_action:
      - servo.write:
          id: damper1
          level: 85.0%
    close_action:
      - servo.write:
          id: damper1
          level: -35.0%
    stop_action:
      - servo.write:
          id: damper1
          level: -30.0%
      - servo.detach: damper1
  - platform: template
    name: "${friendly_name} 2"
    id: blastgate2
    optimistic: true
    device_class: damper
    open_action:
      - servo.write:
          id: damper2
          level: 82.0%
    close_action:
      - servo.write:
          id: damper2
          level: -30.0%
    stop_action:
      - servo.write:
          id: damper2
          level: -30.0%
      - servo.detach: damper2
  - platform: template
    name: "${friendly_name} 3"
    id: blastgate3
    optimistic: true
    device_class: damper
    open_action:
      - servo.write:
          id: damper3
          level: 82.0%
    close_action:
      - servo.write:
          id: damper3
          level: -30.0%
    stop_action:
      - servo.write:
          id: damper3
          level: -30.0%
      - servo.detach: damper3
  - platform: template
    name: "${friendly_name} 4"
    id: blastgate4
    optimistic: true
    device_class: damper
    open_action:
      - servo.write:
          id: damper4
          level: 85.0%
    close_action:
      - servo.write:
          id: damper4
          level: -30.0%
    stop_action:
      - servo.write:
          id: damper4
          level: -30.0%
      - servo.detach: damper4
  - platform: template
    name: "${friendly_name} 5"
    id: blastgate5
    optimistic: true
    device_class: damper
    open_action:
      - servo.write:
          id: damper5
          level: 82.0%
    close_action:
      - servo.write:
          id: damper5
          level: -30.0%
    stop_action:
      - servo.write:
          id: damper5
          level: -30.0%
      - servo.detach: damper5
  - platform: template
    name: "${friendly_name} 6"
    id: blastgate6
    optimistic: true
    device_class: damper
    open_action:
      - servo.write:
          id: damper6
          level: 82.0%
    close_action:
      - servo.write:
          id: damper6
          level: -30.0%
    stop_action:
      - servo.write:
          id: damper6
          level: -30.0%
      - servo.detach: damper6
  - platform: template
    name: "${friendly_name} 7"
    id: blastgate7
    optimistic: true
    device_class: damper
    open_action:
      - servo.write:
          id: damper7
          level: 82.0%
    close_action:
      - servo.write:
          id: damper7
          level: -30.0%
    stop_action:
      - servo.write:
          id: damper7
          level: -30.0%
      - servo.detach: damper7
  - platform: template
    name: "${friendly_name} 8"
    id: blastgate8
    optimistic: true
    device_class: damper
    open_action:
      - servo.write:
          id: damper8
          level: 82.0%
    close_action:
      - servo.write:
          id: damper8
          level: -30.0%
    stop_action:
      - servo.write:
          id: damper8
          level: -30.0%
      - servo.detach: damper8

Conclusion

And that’s pretty much it! I currently have 4 blast gates configured in my workshop and will likely add at least one more in the near future. My advice if you build this, is to go ahead and overbuild. You may not need all 8 servos or blast gates but if you have the spare wire and connectors, wire them in the controller now so you don’t need to take anything apart later. Once installed, you have control over these gates and can create automations such as using a current or power sensor (or outlet) to open the respective gate and turn on the dust collector! How cool is that!?!?

Here is a video short from my initial testing: YouTube

Please follow and like us:

Leave a Reply