Door control system
The major difference between a thing that might go wrong and a thing that cannot possibly go wrong is that when a thing that cannot possibly go wrong goes wrong it usually turns out to be impossible to get at or repair.
- Douglas Adams, 'Mostly Harmless'
The new front doorbot is based on the ACNode infrastructure, specifically a TI Connected Launchpad, a PN532 NFC shield with a generic Arduino relay board. The bell is a 24VAC-powered generic doorbell, and currently bell presses are not detected by the doorbot.
The front doorbot sends out notifications about starting up and scanned cards via UDP to the global broadcast address 255.255.255.255 on port 50002. Any network device can listen in to these messages and set up their own bot/reporting infrastructure, etc.
Currently, the front doorbot uses a branched version of acserver which runs on acserver port 1235. This will be changed once all ACNodes are upgraded to the new firmware, which includes doorbot support.
The back doorbot is the same as the front - with two differences: there's no bell, and the relay is activated by setting the pin state to HIGH. This instance sends notifications to port 50000.
The source code for the software is on Github.
All the logs go over the network to /var/log/network/ on boole.
The door opener broadcasts on the network whenever the door is opened by a member using their card
, or if the front doorbell is pushed. The back door broadcasts on 50000, and the front uses 50002, so we can tell the difference between them in the various listeners. This is a stop-gap until we add the door ID to the messages.
Doorbot listener scripts
There are listeners on hamming that connect to robonaut to announce on IRC, and
flash the lights using Lighted. By default, this will include your full real name. If you wish to change this behaviour, you can set up a nickname in the cards section of the member area.
hamming also runs listeners for the scrolling led board and the audio announcements.
The announcement listener uses the GLaDOS voice. You can generate and use your own file as a greeting.
Adding a card
Access is based on the RFID UID - it is not the number written on the back of your Oyster card. There are three ways to add a card:
- Use the Membership_Kiosk which is next to the book shelves.
- Run the "Add card to Doorbot" script on Tesla (hint: it's on desktop) and follow the instructions (basically, swipe your card and then enter your hackspace website login details).
- If you have a card reader get the code at Github and run
addcard.sh. If you have another reader that can give you the UID, log in to the website and add it at the secret page. Note that doorbot is case sensitive; enter the (hex encoded) ID using upper case letters only.
If you have an Android phone that supports NFC List of NFC-enabled mobile devices you can use this App (More details). Do remember to activate NFC connections on Config>wireless and network connections. Also, remember the app works with LHS membership Usernames and Passwords, not TFL's. and not the logins to this wiki...- Broken by new website changes, will differ fixing it until we get an API (and i get a new laptop) -- Jasper
Doorbot audio files are stored in /mnt/doorbot-sounds/wavefiles/members. (Mounted on systems from colin:/doorbot-sounds) Set your wave file (in wav or mp3 format) on the members site. You may copy the files into the directory via chomsky.
Many early members enjoyed doorbot audio greetings in the style of GLaDOS - an artificial-intelligence sounding voice used in the Portal series of video games and in the movie Pacific Rim. Want to fit in with the 'classical' spirit of the Hackspace? Generate your own GLaDOS voice file on this site here.
Old GLaDOS Voice Generation Guide
There is a guide on Youtube made to show the process as its hard to describe simply in text: http://www.youtube.com/watch?v=OE8S9knXcW0
The original GLaDOS voices were generated by oni following the method found by Tom Wyatt. To create a GLaDOS voice one must do the following:
- Go to ATandT's Text to Speech Website (now offline). Type in your name and download the file. Alternately, use Cepstral or another online text-to-speech site allowing downloads.
- Load up the program Melodyne
- Select the entire Waveform
- Using the melodic algorithm, double click on one section of the waveform. I believe this moves the form to its nearest notes.
- Using the zig Zag looking tool, flatten the pitch.
- Up the pitch by dragging upwards by 160 or so.
Logging & maintenance
If you make changes or discover a problem with doorbot, please add it to the logbook.
- Issues are tracked on Github
- The main script is rundoorbot, which announces to irccat on Babbage if the python script dies.
- The python script (doorbot.py) announces on successful initialisation.
Note that killing the python script will be announced and emailed by Monit. To start or stop doorbot, use:
/etc/init.d/doorbot start /etc/init.d/doorbot stop
On babbage, the listeners are at /usr/local/bin/Doorbot/listeners
sudo service doorbot-listeners restart