This project aim is to assist fellow woodworkers in creating their own cost-effective automated blast gates.
NOTE: This is quite an involved build.
Apart from the hardware, you will also need:
- to 3D print some parts (or design your own)
- Solder and connect all parts together
- Measure current/voltage of the stepper motor drivers to trim them
- Modify the main.cpp code to fit your setup (see below)
The Arduino board
Excluded the dust collection system and manual gates
Costs were estimated on Feb. 2024
Item | Approximate price |
---|---|
Arduino Mega | 38 EUR |
Ramps 1.4 | 9 EUR |
DRV8825 Step Motor Driver Module | 15 EUR pack of 5 (3 EUR per driver) |
voltage regulation components | 5 EUR |
DC 12V 10A power supply | 20 EUR |
Nema 17 stepper motor (1.7A or more) | 35 EUR pack of 5 (7 EUR per motor) |
Micro Limit Switch | 16 EUR pack of 10 (1.6 EUR per switch) |
Stepper motor cables (2m) | 10 EUR pack of 6 (1.5+ EUR per cable) |
3.5 audio plugs | 9 EUR pack of 10 (1 EUR per plug) |
SCT-013-000 AC sensor | 10 EUR |
Total minimal cost: | 71 EUR + (14 EUR per gate) + (11 EUR per machine) |
Example
For a setup with 4 gates and 3 machines the total minimal cost would be around 160EUREstimate additional 10-20% for material like wires, heat shrinks, screws, etc.
Costs can vary vastly depending on where you source your materials (this is just a ballpark estimation)
The main limitation of this setup is the distance between the blast gate and the control centre (i.e. Arduino board)
I have been only able to find stepper motor cables that are 2m long - limiting the max distance between gates to 4m (13 feet). One can probably make your own stepper motor cables that are longer - not sure what the maximum length could be.
The machine monitoring cables run im my case up to 10m long without any issues.
Install all needed software:
Visual Studio Code
In order to make things work correctly you will need to modify the main logic in main.cpp according to your setup
JOINTER_PIN
, CIRCULAR_SAW_PIN
, ...)MOTOR_A_STEP_PIN
, MOTOR_A_DIR_PIN
, MOTOR_A_ENABLE_PIN
, ...) SWITCH_GATE_A
, ...), In the setup()
step the gates and energy monitoring is initialized.
The code "waits" until all:
Once the initial state (all gates closed, no machine running) is detected the code "monitors" each machine consumption.
Once a spike in consumption is detected (i.e. a machine is running) the appropriate gates are opened/closed.
NOTE: once gates are in movement energy monitoring is suspended. This is due to the very slow operation of consumption check. Only when all gates finish their move the energy monitoring is resumed.
In order to accurately detect if a machine is running the output signal from the CT sensor needs to be conditioned, so it meets the input requirements of the Arduino analog inputs, i.e. a positive voltage between 0V and the ADC reference voltage.
Assuming only one machine will be running at once / multiple sensors can be connected to the same circuit.
If you are planing to run multiple machines simultaneously you will need to provide on circuit for each sensor.
If the stepper motors can't push the gate to close/open (they are skipping steps) we might need to boost the stepper driver voltage. This will happen if the gates are mounted in such way that the motors must also resist the force of gravity i.e. gates are mounted vertically.
To find out the maximum allowed voltage you need to consired the rated current of your stepper motor.
See the following guides:
Example: for a 1.7A NEMA motor you will shoot for 0.85V
Before venturing on a full build it is recommended to check if every component is working as expected by building a simple prototype.
Putting it all together