Industrial Fidget Controller: Difference between revisions

Jump to navigation Jump to search
m
(Partial commit)
(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, but was crowdfunded by members to become a reality.
* 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.


==Do-Ocracy Policy==
[[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==


** TODO: Install second keystation in workshop.
* <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   Click PLC
* 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, and a future LED back-light for the 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.
22

edits

Navigation menu