Keycode Access

From Noisebridge
(Redirected from Keycode access)
Jump to navigation Jump to search
This article seems to be really old or very much out of date, and may contain wrong info.

Wiki-tip: You can check its history to see when it was last edited.

This describes the previous, pre-Reboot access system. Access is now controlled via RFID



Please add yourself here if you're a stakeholder on this project.

Implementation Status[edit]


A script on Minotaur called baron manages the payphone keypad stationed outside Noisebridge's gate. The payphone is connected to Minotaur by a long blue CAT5 cable which runs up the stairwell and across the ceiling. This cable carries two-way serial data and 12VDC to power the arduino in the payphone. When a user enters a valid code followed by #, baron uses the Noisebridge API to open the gate, while the payphone LED flashes blue, and a "happy" sound is heard. If an incorrect code is entered, or enough time passes between button presses, the payphone LED flashes red, and a "sad" sound is heard. If the gate API throws an error, the light turns red and a sad noise is played three times.

the pinout of the RJ45 to DB9 serial adaptor used on the minotaur end of the cable is standard, except that pin 7 of the RJ45 socket does not connect to the DB9F socket, but instead exits the connector in a wire headed to minotaur's power supply as +12v. Pins 4 and 5 of the RJ45 (which goes to 5 of the DB9F) is ground, which also connects to a wire headed to minotaur's power supply, to ground.


  • The keypad hardware hooked up to Minotaur at /dev/ttyS3
  • The hardware above actually runs on 12V (not 5V) and the Arduino code in the above post is outdated.
  • Updated Arduino code for the doorkeypad hardware can be found here:
  • /usr/local/share/baron/noisebridge-baron/ - baron script, takes arguments --port=/dev/whatever and --codefile=/var/blablabla/codes
  • /etc/init/baron.conf - jesse's init script
  • /usr/local/share/baron/codes.txt - codes file, any line starting with a 4-7 digit number (ignoring whitespace) is interpreted as a valid code, # is used for comments

Please label your codes so that others know who to contact and when to expire them.

Future Plans[edit]

To improve, the code, please issue a pull request against It you improve the hardware, please document the new state here, and make note of your changes in the changelog. If you would like to make changes to how the system works, as opposed to just how elegantly it's implemented, please talk to the people named above.

The software has to be gone over to make sure it can be run in multiple instances, because someday we will put a second keypad at the top of the stairs, so that buzzing someone in requires a code.

We should also create a web-accessible door-opener page which requires a code (from the same database) so that, in case we decide to end the uncredentialed door opener page, we will have a code-authorized alternative already in place.

Keycode Generation[edit]

There can be any number of plugins that generate keycodes, as long as they are non-destructively copied to the codes file on Minotaur.


  • Add a "bad" codes list, to block codes from being reused.
  • Add the ability to expire codes - maybe a comment in the codes.txt file?
  • Add another keypad at the top of the stairs, so letting someone in requires a code
  • Create a web interface, so buzzing the door from laptop requires a code