The industrial fidget controller (IFC) was originally conceived as a joke (fidget spinners were a fad in 2017 at Hacklab 2.0, but was 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.
Do-Ocracy Policy
TODO List
TODO: Install second keystation in workshop.
TODO: Spin up ESP+IR Blaster device to control shop air cleaner.
Documentation
Hardware Overview
The IFC is installed in the members bin storage area directly under the HackTouch 3.0 screen.
The IFC is an portable display demo built around an industrial control panel enclosure, and a frame built out of 2020 metric 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
Each switch on the front panel, as well as remote devices (through connectors J1 thru J4) are exposed to Home Assistant using a MODBUS TCP integration to poll the PLC at a 5 second interval.
Note: polling frequency is limited by Home Assistant due to stability issues with the MODBUS TCP plugin. The PLC can support a much higher polling frequency.
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.
There are 2x remote keystations, each featuring a key-switch, a toggle switch, and a future LED back-light for the switch.
Button Mapping
Entities are exposed to Home Assistant based on the switch contact or LED indicator corresponding to the location below.
All entities are prefaced with IFC_* where * is the device address (eg: A1, B2, etc).
Push buttons B1, B2, C1, C2, C3, D2, D3 have been configured as latching switches and can be used to enable or disable specific Home Assistant output devices (eg: a disco ball).
Circuit breakers A1 + A4-A8 are configured like any other input device to the PLC and do not involve any mains AC voltage (the entire front-panel is powered by +24VDC and is grounded for safety regardless).
Expansion Connectors
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
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.
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.