====== Access Control ======
* [[door_access_controllers|Door Access Controllers]]
* [[tool_access_controllers|Tool Access Controllers]]
* [[toollockers|NFC-enabled Tool Lockers]]
===== Bugs and Maintenance Tasks =====
Crashes:
* a number of the tool controllers are crashing on a regular basis
* on some of them there is evidence that this is caused by voltage spikes from motors, contactors or arc welding
* this is plausible because most of the AC-DC power supplies are extremely cheap devices intended as LED drivers
* we should try to find a better power supply module:
* small enough to fit
* good protection from transients
* cheap enough that we can afford them
* bought [[https://uk.rs-online.com/web/p/switching-power-supplies/1358910|Mean Well IRM-03-5]], hasn't helped
* Class X suppression capacitors appear to fix the issue on Emco lathe and Juki sewing machine
Unreliable network connections:
* some of the tool controllers have very poor connectivity
* this might be related to power supplies (see above)
* or maybe some of the ESP8266 devices are of poor quality
* we should replace power supplies and/or deploy ESP32 devices
Tool controller PCBs: new tool controller PCBs are available and need to be assembled. There is one fully assembled and another three with SMD components only. Two more D1 Minis are required.
Documentation:
* Tool Controller:
* wiring diagram for a simple mains device
* wiring diagram for an example of a no-volt switched device
* Door Controller:
* wiring diagram for a typical door
New demo door controllers (a completely assembled set of components to demo or test new firmware).
New tool controller enclosure: The existing plastic enclosures are no longer available for purchase. We will need to find a new box and design the mountings for future tool controller installations.
Door controller crashes:
* "fast-flashing" crash: controllers sometimes freeze up in an unlocked state, with the LED in fast-flashing mode. This is a suspected race condition in the timers/scheduling used for the LED and buzzer. Not seen recently, may have been fixed by [[https://github.com/timhawes/doorman-firmware/commit/db3ee6580587d4cd4ed112f215d1787ca8eaaa51|db3ee65]].
* "Fatal exception:28 flag:2 (Exception) epc1:0x40225c96 ...". Device self-restarts. Believed to be triggered by Android phone random UIDs and fixed by [[https://github.com/timhawes/doorman-firmware/commit/46de7662b49ff04febd6c7d3c30d9c74e032d167|46de766]].
Migrate firmware config files to proper "/" prefix.
Purchase more PN532 NFC modules from elechouse.com and few of the new PN7150 for development. [ordered, in transit]
===== Device Issues =====
Emco Lathe:
* controller regular crashes when motor is switch on or off
* controller has been bypassed for now
* easy to recreate (just turn the motor on/off a few times)
* can still crash the controller when the current transformer is disconnect
* unable to crash the controller when powered from an isolated battery pack
* approx 300W
* 2024-03-15: suppression capacitor fitted, appears to work
* 2024-04-09: bypass removed
Welder:
* poor connectivity, repeated reconnects - fixed by channel change?
* crashes when welder is in use
* LCD sometimes shows corruption when welder is in use
* 2024-04-13: suppression capacitor fitted to contactor, prevents crashing at power-off
Bandsaw:
* poor connectivity, repeated reconnects - fixed by channel change?
Mitre saw:
* poor connectivity, repeated reconnects
* replacing the controller didn't help
* 2024-03-21: replaced PSU with Mean Well, has not helped
* 2024-03-24: firmware update failed repeatedly over 4 hours, device moved to G1 and it succeeded immediately, moved back to g8 and connectivity went bad again.
* 2024-03-28: changing channel (11->6) on unifi-g8 has helped
Big laser cutter:
* sometimes crashes when main contactor is de-energised, unable to recreate issue on demand
* is it the contactor itself or one of the devices fed from it?
* 2024-03-17: added ceramic 0.1uF and electrolytic 470uF 16V to 5V input of tool controller
* 2024-03-21: added 0.1uF to contactor coil terminals
Sander:
* suspected crashes from motor on-off
* was able to crash just from the contactor on-off
* contactor has 0.1uF connected to output terminals
* 2024-03-20: contactor 0.1uF moved to coil terminals, 0.47uF added about 6" from motor, appears to work
Sewing machine:
* suspected crashes from motor on-off
* approx 800-900W
* 2024-03-15: suppression capacitor fitted, appears to work
CNC router:
* corrupted LCD
* microcontroller crash and monitor blanks when contactor switches off
* 2024-04-16: added capacitor to contactor coil
===== Future Projects =====
==== Migrate to ESP32 ====
Existing ESP8266 firmware is stuck on an old SDK version due to a core library now being unsupported. The best way forward is to migrate to ESP32.
Tool controllers: v3 PCBs can take a Lolin S3 Mini microcontroller board. There is a test version of the firmware.
Door controllers: There is a new PCB design based on the ESP32-S3-WROOM-1, intended to fit in the existing enclosures. Firmware hasn't been ported yet.
==== CircuitPython ====
Tim has toyed with a CircuitPython-based firmware. This would allow for easier development, potentially involvement of more people, and more advanced features (e.g. DESFire EV1 or PIV authentication support).
==== Backend Server ====
Allow standalone use with local files (no Django app required), for testing or for other installations. Support device configuration inheritance from multiple profiles.
[done]
==== Open Source ====
It would be nice to package up the hardware and software to the point that other hackerspaces (or businesses) could use it.
==== Advanced NFC ====
Support high security (unclonable) tokens DESFire EV1, YubiKey PIV, FIDO2.
==== Rewrite Lockers ====
The tool lockers use a different architecture based around a secured MQTT server. It seemed like a good idea at the time.
If I rewrote it I would use something similar to the JSON message protocol from the door/tool controllers.