Machine Access Node

From Leeds Hackspace Wiki
Jump to: navigation, search

Template:Project

Hackspace has machines, that ideally need to be inducted and access controls for safety reasons. A vital step towards the goal of 24/7 access on membership. A bonus of the system would be usage tracking and maintenance notifications.

A solution is a control device consisting of a box which enables the machine for as long as your RFID card is in the box. A Tool Access Node.

https://github.com/leedshackspace/machine-access-node https://github.com/leedshackspace/tool-api

Potential design

  • ESP-12F module
  • 3A Relay
  • bicolour LED (red/green)
  • Card interface header (6 pin SPI bus presenting power & ground)
  • DIP switch addressable (or other)

User Workflow

First Time Authorised Use, Network Available

  • User inserts their card for the first time.
  • Check with permissions server. Can this card ID use this machine?
  • Permissions server says "Yes!".
  • Does this card exist already in the EEPROM?
  • EEPROM says "Does not exist."
  • Store this card ID in the EEPROM.
  • Enable access to tool, illuminate appropriate LEDs.

Unauthorised Use, Network Available

  • User inserts their card for the first time.
  • Check with permissions server. Can this card ID use this machine?
  • Permissions server says "No!".
  • Illuminate denied LED.

First Time Authorised/Unauthorised Use, Network Unavailable

  • User inserts their card for the first time.
  • Check with permissions server. Can this card ID use this machine?
  • Permissions server is not available.
  • Check local EEPROM. Can this card ID use the machine?
  • EEPROM: No record of this card.
  • Illuminate denied LED.

Authorised Use, Network Available

  • User inserts their card.
  • Check with permissions server. Can this card ID use this machine?
  • Permissions server says "Yes!"
  • Does this card exist already in the EEPROM?
  • EEPROM says "This card exists."
  • Enable access to tool, illuminate appropriate LEDs.

Authorised Use, Network Unavailable

  • User inserts their card?
  • Check with permissions server. Can this card ID use this machine?
  • Permissions server is not available.
  • Check local EEPROM. Can this card ID use the machine?
  • EEPROM says "This card exists."
  • Enable access to tool, illuminate appropriate LEDs.

Previously Authorised Unauthorised Use, Network Available

  • User inserts their card.
  • Check with permissions server. Can this card ID use this machine?
  • Permissions server says "No!"
  • Does this card exist already in the EEPROM?
  • EEPROM says "This card exists."
  • Delete entry from EEPROM.
  • Illuminate denied LED.

Previously Authorised Unauthorised Use, Network Unavailable

This eventuality should be countered by regular updates, or an update sequence upon startup. Sequentially checking each EEPROM entry and removing unauthorised entries.

  • User inserts their card?
  • Check with permissions server. Can this card ID use this machine?
  • Permissions server is not available.
  • Check local EEPROM. Can this card ID use the machine?
  • EEPROM says "This card exists."
  • Enable access to tool, illuminate appropriate LEDs.

Functional Specs

Mission Critical

These must work without networking or the main server being avalable.

  • Check if card valid in local storage
  • Set tool into "out of order" mode - must work without networking

Functions

  • Relay contacts of at least 3 amps for switching the device (this would be best driving a contactor coil rather than the machine itself, as carrying machine current on a board seems bad). Hard-wired in using suitable grommets and with sufficient isolation between low and high voltage.
  • Internal database of (up to at least 200*) authorised RFID card IDs, plus a flexible way of fetching updates from a membership server.
  • Logging of who used the machine + hours used.
  • Open Source hardware & software.
  • Status light, for "active", "denied" and "thinking". (Although "active" is really the only important one, and blinking is fine). To build upon this, various different colours could indicate different things such as blinking green means valid, but offline and solid green means valid & online
  • Fits in a standard backbox (probably deep depth, ideally single unit)

"Nice-to-haves"

  • Ideally sub-£30.
  • Mains Powered
  • Ability for super-users to program new cards from the device - this should result in a callback to a membership server to verify it.
  • Easy to program/modify
  • Ability to monitor "actual" hours run - i.e. how long the laser cutter tube is actually on for. (This could potentially be done using a current transformer sensor.)
  • Ability to poll for current state over the network.
  • Broadcast events on the network.
  • Ability to update the software over the network.
  • Relay / Darlington / Servo output configurations.