Introduction: Blast Gate Sensor

About: Hiking, Woodworking, PCB design using Eagle, Writing Software for MacOS and AVR, 3D Design using Fusion 360

This is a sensor used to determine when a woodworking blast gate is open or closed (Based on the instructable title you were probably hoping for something more exciting, but no.)

This is part of a larger project I’m working on. The larger project will be a new version of my Dust Collector Full Detector that I published in January 2019. The original Dust Collector Full Detector only monitored the level of the dust bin. The new dust collector full detector will also monitor when the filter itself is loaded and needs to be cleaned.

The method used to monitor the filter relies on the measured static duct pressure just in front of the filter. In order for this to work accurately you need to know what combination of gates are open/closed. The static pressure varies quite a bit depending on what gates are in use so no single pressure value can be used with all combinations of gates. This is why I designed the blast gate sensor.

The board uses a hall sensor to detect when a magnet on the gate slide blade comes under the hall sensor to detect when the gate is closed. When the open/closed state changes, the board sends a message to the dust collector controller. The communication protocol used is Control Area Network (CAN bus.) CAN is widely used in automobiles and industry. CAN works well in electrically noisy environments, like a woodshop.

Board Front

Board Back

The board was designed using Eagle. The case was designed using Fusion 360.

This board is available on PCBWay.

Step 1: Schematic, 3D STLs and Software

Board Back

I’m not going to detail how to assemble the board itself, for that you can look at one of my other intructables (or the countless others.) This will be a description of how to load software, build the case, and mount the board.

The software for this project is available on GitHub

Step 2: Print the 3D Parts

I printed both prints using draft quality, 20% fill, no support.

Step 3: Add the LED Light Guides to the Case Cover.

Materials:
Epoxy for plastics.

2mm diameter acrylic rod (used as light guides for the LEDs on board) (source)

Cover Inside

Ream out the two holes on the cover to the diameter of the acrylic rod. In my case the rod was actually 2.2mm. Using a sanding block with fine grit sandpaper, smooth and square one end of the acrylic rod. With the board mounted in the base, insert each rod into its hole till it makes contact with the corresponding LED on the board. Using a flush cutter, snip the rods flush with the cover.

Light Guide Snip

Remove the cover and the cut rod pieces. Sand the cut ends of the rods smooth and square. Mix and apply a small amount of plastic epoxy to the rod holes. Insert the rod till it’s flush with the cover surface. Cleanup any residual epoxy. Set aside and wait for it to cure.

Light Guide Epoxy

Step 4: Set the ATtiny84A Fuses

This step sets the processor speed and clock source. In this case it's 8MHz using the internal resonator. These fuse settings also preserve the EEPROM from being erased whenever downloading a new sketch. Many default fuse settings don’t do this. The sensor is assigned an ID the first time it’s recognized by the dust collector controller board. This ID is stored in the EEPROM on the sensor board.

The fuses are set using an ISP. I use the one I designed (see AVR Programmer W/High Voltage ) You can use any AVR ISP such as Arduino as ISP built on a breadboard. See the Arduino as ISP example from the Arduino IDE Examples menu.

The following are Mac OS instructions. I'm not a Windows user.

Open a BBEdit worksheet (you could also do this from a Terminal window) Note that a bootloader for the ATtiny84A should not be loaded. All software is loaded via the ICSP cable.

Connect a 6 pin ISP cable from the ICSP header on the board to the connector on a 5V ISP. I use an ISP cable with pogo pins on one end so that the 6 pin ICSP header doesn’t have to be soldered onto the board.

The connector with pogo pins are held in place when needed.

ISP to BoardISP w Pogo Pins

Execute:
# ATtiny84A 8Mhz, internal clock
# Set to presserve EEPROM on chip erase command (only clear flash)

/Applications/Arduino.app/Contents/Java/hardware/tools/avr/bin/avrdude -C /Applications/Arduino.app/Contents/Java/hardware/tools/avr/etc/avrdude.conf -p t84 -P /dev/cu.usbserial-14310 -c avrisp -b 19200 -U lfuse:w:0xe2:m -U hfuse:w:0xd7:m -U efuse:w:0xff:m

“/dev/cu.usbserial-14310” above should be replaced with whatever USB serial port is connected to your ISP.

Step 5: Upload the DCSensor Sketch

The MCU used on the boards is an ATtiny84A. In order to use this MCU you need to add "https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json" to the "Additional Board Manager URLs" section of the Arduino Preferences dialog. This is only done once.

Once installed, set the Arduino settings as:

Arduino Settings

(The screenshot doesn't have a port selected. Select the port used by your ISP.)

Using the same setup as the previous step, use the Arduino IDE to upload the DCSensor sketch via the ISP.

Step 6: Wire and Mount the Sensor

Materials:
10mm x 3mm Magnet (source)
Cat5e cable

The sensor needs 6.5 to 12 volts to operate. The sensors are wired in a daisy chain configuration. The board’s termination switch setting for all sensors in the chain should be set to “Middle” except for the last sensor in the chain. The last sensor is set to “End”. The wire I use is ordinary twisted pair Cat5e cable. Assign one pair as ground, one as +12V, and the last two pair as CANL/H in and CANL/H out. You could also run two Cat5e cables to each sensor, one for IN and one for OUT, but I chose to limit the number of cables running up and down the dust collector pipe by adding a junction at the top of each pipe.

DCSensor Mounted gate out

The easiest way to make the board connections is to run a length of wire through the strain relief hole on the sensor case. With the board removed from the case, make the connections. Then mount the board in the case and add a wire tie to secure the cable. Run the length of wire up the pipe to the junction at the top of the pipe. At some point I’ll publish the 3D printed junction box and cable tie mounts. The case is attached to the blast gate using double sided foam tape. 3M sells a very aggressive double sided foam tape pre cut into 25mmx25mm squares. Position and attach the magnet on the gate slide under the Hall sensor using double stick tape.

These squares can also be used to attach the junction box and cable tie mounts.

Gate ClosedGate Open

So that’s it. I hope to publish the dust collector controller by the end of the year. (I need to make a few changes to the board.)

DCControllerv3
Dust Collector Controller board v3.0

PCB Design Challenge

Participated in the
PCB Design Challenge