Industrial Fidget Controller: Difference between revisions
Jump to navigation
Jump to search
m
→TODO List
(Partial commit) |
m (→TODO List) |
||
| (11 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
=What is the Industrial Fidget Controller?= | =What is the Industrial Fidget Controller?= | ||
* The industrial fidget controller (IFC) was originally conceived as a joke (fidget spinners were a [https://en.wikipedia.org/wiki/Fidget_spinner#Popularity_and_usage fad in 2017] at Hacklab 2.0 | * The industrial fidget controller (IFC) was originally conceived as a joke (fidget spinners were a [https://en.wikipedia.org/wiki/Fidget_spinner#Popularity_and_usage fad in 2017] at Hacklab 2.0). | ||
* The IFC was eventually crowdfunded by members to become a reality. | |||
* The intent was design an industrial control panel with an assortment of 22mm industrial buttons, indicators, and other tactile elements as a fidget toy for visitors. | * The intent was design an industrial control panel with an assortment of 22mm industrial buttons, indicators, and other tactile elements as a fidget toy for visitors. | ||
[[File:IFC_main.png|400px]] | |||
==Do-ocracy Policy== | |||
* Members of Hacklab are invited to extend/enhance the functionality of the IFC in keeping with do-ocracy. | |||
* It is requested that these changes only be conducted after consulting the builder of the IFC: changes to PLC ladder logic, or any hardware/electrical modifications. | |||
* These features or changes are suggested and encouraged! | |||
** Come up with useful or silly ways to use the switch entities in Home Assistant to trigger things like a disco ball or other project/device. | |||
** Come up with labels for the switches, or even decal inserts for LED indicators. | |||
==TODO List== | ==TODO List== | ||
* | * <s>TODO: Install second keystation in workshop.</s> | ||
** TODO: Spin up ESP+IR Blaster device to control shop air cleaner. | * <s>TODO: Build PCB backlights for keystations and install.</s> | ||
* TODO: Update Home Assistant configuration.yaml so that the combination of both key-switches can trigger a behaviour (eg: the Snake Pit). | |||
* TODO: Spin up ESP+IR Blaster device to control shop air cleaner. | |||
* TODO: Potentially install coin-acceptor box into future Snake Pit installation. | |||
=Documentation= | =Documentation= | ||
| Line 17: | Line 27: | ||
==Hardware Overview== | ==Hardware Overview== | ||
* The IFC uses an Automation Direct | * The IFC is installed in the members bin storage area directly under the [[HackTouch_3.0|HackTouch 3.0]] screen. | ||
* The IFC can also be converted to a portable display/demo, as the electrical enclosure is mounted supported by a frame made of 2020 metric aluminum extrusion. | |||
* The IFC uses an Automation Direct C0-11DD1E-D Click PLC, with expansion modules C0-16CDD1, and 2x C0-16NE3. | |||
* Internally there is a terminal strip to organize front-panel wiring from the switches to PLC contacts. | |||
* This unit is mains AC powered (requires NEMA C-14 power cable), and requires a Ethernet connection for Home Assistant integration for reliability. | |||
==Functionality== | ==Functionality== | ||
| Line 25: | Line 39: | ||
* Certain button or switch combinations can create light animations as a reward for fidgeting. More Easter eggs may be added as time progresses. | * Certain button or switch combinations can create light animations as a reward for fidgeting. More Easter eggs may be added as time progresses. | ||
* Inside the enclosure an electro-mechanical counter keeps track of the total number of button pushes this installation serves to satisfied customers. If you are quiet, the electro-mechanical counter can be audibly heard. | * Inside the enclosure an electro-mechanical counter keeps track of the total number of button pushes this installation serves to satisfied customers. If you are quiet, the electro-mechanical counter can be audibly heard. | ||
* There are 2x remote keystations, each featuring a key-switch, a toggle switch, | * There are 2x remote keystations, each featuring a key-switch, and a toggle switch. | ||
** The toggle switch will activate a backlit Hacklab.to logo (automatically set on a 1:5 cooldown to avoid overheating). | |||
** If both key-stations are actuated within 0.5s of each other, a future (unimplemented) behaviour can be triggered. | |||
* There is also a separate coin-acceptor box intended for wall-mounting. This box permits donation-triggered events using Home Assistant. The global donation total, and the 'transaction' total (value after no further coins deposited for 30 seconds) are exposed in Home Assistant as float entities. | |||
** Note: the global donation total only appears to update ever $0.50 even though the coin acceptor and PLC logic correctly tracks values to $0.05. This is a Home Assistant problem. | |||
==Button Mapping== | ==Button Mapping== | ||
| Line 41: | Line 58: | ||
* Note: J1-J4 are NOT hot-pluggable. Please power down the unit before disconnecting these. | * Note: J1-J4 are NOT hot-pluggable. Please power down the unit before disconnecting these. | ||
* Connectors are GX16 8-contact connectors, bulkhead-pin, plug-socket and standard keying. | |||
===J1 and J2 Key-Stations=== | |||
{| class="wikitable" | |||
|- | |||
! Pin | |||
! Wire Colour | |||
! Designation | |||
! PLC Contact | |||
|- | |||
| 1 | |||
| GRN | |||
| GND | |||
| | |||
|- | |||
| 2 | |||
| GND/WHT | |||
| GND | |||
| | |||
|- | |||
| 3 | |||
| ORG | |||
| Toggle Switch | |||
| 3-X1, or 3-X3 | |||
|- | |||
| 4 | |||
| ORG/WHT | |||
| Key Switch | |||
| 3-X2, or 3-X4 | |||
|- | |||
| 5 | |||
| BLU | |||
| N/C | |||
| | |||
|- | |||
| 6 | |||
| BLU/WHT | |||
| Backlight Enable (Future) | |||
| 2-Y6, or 2-Y7 | |||
|- | |||
| 7 | |||
| BRN | |||
| +24V | |||
| | |||
|- | |||
| 8 | |||
| BRN/WHT | |||
| +24V | |||
| | |||
|} | |||
===J3 Expansion=== | |||
* This is an unimplemented future expansion which permits 4 switch contacts. | |||
{| class="wikitable" | |||
|- | |||
! Pin | |||
! Wire Colour | |||
! Designation | |||
! PLC Contact | |||
|- | |||
| 1 | |||
| GRN | |||
| GND | |||
| | |||
|- | |||
| 2 | |||
| GND/WHT | |||
| GND | |||
| | |||
|- | |||
| 3 | |||
| ORG | |||
| SW1 | |||
| 3-X5 | |||
|- | |||
| 4 | |||
| ORG/WHT | |||
| SW2 | |||
| 3-X6 | |||
|- | |||
| 5 | |||
| BLU | |||
| SW3 | |||
| 3-X7 | |||
|- | |||
| 6 | |||
| BLU/WHT | |||
| SW4 | |||
| 3-X8 | |||
|- | |||
| 7 | |||
| BRN | |||
| +24V | |||
| | |||
|- | |||
| 8 | |||
| BRN/WHT | |||
| +24V | |||
| | |||
|} | |||
===J4 - Coin Acceptor=== | |||
* Warning: The coin acceptor mechanism requires +12V - do not connect it to J1, J2, or J3 or damage will occur. | |||
{| class="wikitable" | |||
|- | |||
! Pin | |||
! Wire Colour | |||
! Designation | |||
! PLC Contact | |||
|- | |||
| 1 | |||
| GRN | |||
| GND | |||
| | |||
|- | |||
| 2 | |||
| GND/WHT | |||
| GND | |||
| | |||
|- | |||
| 3 | |||
| ORG | |||
| GND | |||
| COM2 | |||
|- | |||
| 4 | |||
| ORG/WHT | |||
| RS232 TX | |||
| COM2 | |||
|- | |||
| 5 | |||
| BLU | |||
| | |||
| | |||
|- | |||
| 6 | |||
| BLU/WHT | |||
| | |||
| | |||
|- | |||
| 7 | |||
| BRN | |||
| +12V | |||
| | |||
|- | |||
| 8 | |||
| BRN/WHT | |||
| +12V | |||
| | |||
|} | |||
==Home Assistant Integration== | |||
* The PLC has been assigned the hostname '''IFC.in.hacklab.to''' | |||
* The configuration.yaml has been patched with the MODBUS integration, with each relevant address being mapped to an entity in Home Assistant. | |||
* All IFC entities are prefaced with '''IFC_*'''. Most are buttons as covered under [[Industrial_Fidget_Controller#Button_Mapping|Button Mapping]], and others are associated with the J1/J2/J3 expansion connectors, or the coin acceptor. | |||