User Tools

Site Tools


tool_access_controllers

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
tool_access_controllers [2019-02-23 13:37] – [Enclosure and Wiring] timtool_access_controllers [2023-09-10 09:11] (current) – [Devices] tim
Line 2: Line 2:
  
 ===== Overview ===== ===== Overview =====
 +
 +We have access control for some of our power tools, especially where they are dangerous, expensive or easily damaged by untrained users.
 +
 +The access controllers are built on the ESP8266 platform and use PN532 modules to authenticate NFC tokens.
 +
 +Each controller can manage a single tool and enable/disable it's incoming power, or integrate into a more complex control system. The controllers can also perform a basic current usage measurement to determine whether a tool is in active use.
 +
 +===== Devices =====
 +
 +Current:
 +
 +  * Startrite Bandsaw
 +  * Bantam Lathe
 +  * EMCO Lathe
 +  * Small Laser Cutter
 +  * Big Laser Cutter
 +  * Mitre Saw
 +  * Table Saw
 +  * Sander
 +  * Welder
 +  * CNC Router
 +  * Juki Sewing Machine
 +
 +Planned:
 +
 +  * Bench grinder(s)
 +  * Drill press(es)
 +  * Denford CNC Lathe
 +  * Denford CNC Mill
  
 ===== PCB ===== ===== PCB =====
Line 47: Line 76:
 All of our current tool controllers use the same design, an [[https://www.ebay.co.uk/itm/Multi-Purpose-Waterproof-DIY-Project-Box-Enclosure-Case-IP65-ABS-Blue-Clear/361537022189|IP65 ABS enclosure from RadioWorld]] on eBay. All of our current tool controllers use the same design, an [[https://www.ebay.co.uk/itm/Multi-Purpose-Waterproof-DIY-Project-Box-Enclosure-Case-IP65-ABS-Blue-Clear/361537022189|IP65 ABS enclosure from RadioWorld]] on eBay.
  
-The PCB, LCD and NFC modules are mounted on a laser-cut acrylic frame using nylon screws and spacers. Push buttons are panel-mounted to the front of the enclosure.+The PCB, LCD and NFC modules are mounted on a laser-cut acrylic frame using nylon screws and spacers. The front frame is cut from 3mm clear acrylic, and the supports from 2mm clear acrylic. Push buttons are panel-mounted to the front of the enclosure. 
 + 
 +{{ :tool-controller-mount.dxf?linkonly }}\\ 
 +{{ :tool-controller-mount.slvs.zip }} [SolveSpace source]
  
 **Simple plug-in mains tools:** **Simple plug-in mains tools:**
Line 60: Line 92:
  
 More complex tools may have their own control systems (remote start/stop, VFD motor controllers, etc). In these cases we may fit our relay to the incoming contactor or to the control signals loop or to the estop/interlock loop. More complex tools may have their own control systems (remote start/stop, VFD motor controllers, etc). In these cases we may fit our relay to the incoming contactor or to the control signals loop or to the estop/interlock loop.
 +
 +==== Safety Rules ====
 +
 +  * The tool controller must not be used as an emergency stop (though it may be wired in-series with a real emergency stop).
 +  * The tool controller must not cause the device to start any motor or heavy machinery (there must be a separate start button with a no-volt reset).
 +
 +===== Assembly Process =====
 +
 +  - Assemble the PCB (see earlier section).
 +  - Solder wires to two push buttons and twist the wires for tidiness. **WHAT LENGTH?**
 +  - Solder five jumper wires to a PN532 module and use hot glue to support the joints. The wires will be connected to VCC, SDA, SCL, GND and the RSTPDN (reset) pin. At the other end the female connectors should be removed from their plastic housing and re-inserted into a 5-way housing. **WHAT LENGTH?** Adjust dip switches to I2C mode.
 +  - Laser-cut a front-frame (3mm clear acrylic) and two support pieces (2mm clear acrylic).
 +  - Place the frame inside the enclosure. Use it to mark the drill centres for the push buttons.
 +  - Double-check that the push buttons are on a straight line between the screw holes of the enclosure and that the holes will be symmetric.
 +  - Drill the push button holes and use a hole reamer to get the exact size (the buttons will be inconveniently in-between common drill sizes).
 +  - Drill holes for cable glands at the lower edge of the enclosure, or for non-glanded holes in the back of the enclosure (depending on the intended layout).
 +  - Fit the acrylic supports in slots 1 (top of the enclosure) and 3. Use a piece of foam adhesive tape at each end to keep the supports in place and to apply upward pressure on the front-frame when it is installed later.
 +  - Trim the header pins from an LCD module to provide enough clearance.
 +  - Fit the LCD module to the front-frame using nylon screws (4x M3 10mm nylon screw, 8x nylon nut). The LCD should be mounted underneath the frame. The stack should be: screw head, front-frame, nut, LCD module, nut.
 +  - Fit the PCB to the front frame with nylon screws and hex spacers. The PCB should be mounted underneath the frame. The stack should be: screw head, front-frame, spacer, PCB, screw head.
 +  - Fit the PN532 module to the front-frame. The module should be mounted **above** the frame. The stack should be: screw head, PN532 module, front-frame, nut.
 +  - Install the push buttons and place the assembled front-frame into the enclosure lid.
 +  - Connect the PN532 and LCD modules.
 +  - Install and test the firmware.
 +  - Prepare mains wiring. For a plug-in configuration, wire the incoming and outgoing mains cables to a connector block near the bottom of the enclosure. For a hard-wired configuration, mount the enclosure at this point and complete any planned wiring.
  
 ===== Software ===== ===== Software =====
  
-https://gogs.ehlab.uk/tim/ss2+[[https://github.com/timhawes/toolman-firmware|Firmware]] - Arduino C++ built with PlatformIO \\ 
 +[[https://github.com/timhawes/toolman-backend|Backend]] - Python 3 asyncio
  
-Two generations of firmware and backend-server are in use at the moment:+===== Bugs and Improvements =====
  
-Legacy/Stable: +  * Delay active->idle transition to avoid triggering on current-measurement glitches. 
-  * uses UDP networking with a simple retry mechanism for reliability+  * In //wait// mode, delay idle logout by 1-2 seconds. 
 +  * Flatten floods of NFC reads. 
 +  * Measure peak-to-peak current instead of RMS, to reduce time spent on ADC reads. 
 +  * Drop in free heap space after some network outages (can recreate with iptables -J DROP)
  
-New: 
-  * uses TCP networking with optional TLS support 
  
tool_access_controllers.1550929049.txt.gz · Last modified: 2019-02-23 13:37 by tim

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki