Project WHITE BOX / Portal
Project WHITE BOX' aim is to allow electronic and cryptographically sane access control to shackspace without the requirement to hand out physical keys.
- Version 1
- Aktuelle Version
The lock is based on a ELV KeyMatic which is interfaced by a Arduino which in turn is connected to a Fonera WIFI AP via RS232. Users will be provided with an individual cryptographic key which can be used to unlock or lock the door.
version 1.1 documentation
How to use it
If you're a member and have been around for a while, you can drop a mail to firstname.lastname@example.org and apply for a key.
We've documented the key request process (German) in the wiki as well.
Got your key and need help logging into portal? Here's a couple of tutorials for various platforms:
Arduino <> MEGA8 I/O Mapping
Burning ATMEGA8 fuses
To burn the appropiate fuses, use the following command:
sudo avrdude -p atmega8 -c avrispmkII -P usb -B8 -U lfuse:w:0x9f:m -U hfuse:w:0xc0:m
For the Arduino ATMEGA8-16PU use:
sudo avrdude -p atmega8 -c avrispmkII -P usb -B8 -U lfuse:w:0xdf:m -U hfuse:w:0xca:m sudo avrdude -p atmega8 -c avrispmkII -P usb -B8 -U unlock:w:0x0F:m sudo avrdude -p atmega8 -c avrispmkII -P usb -B8 -U flash:w:ATmegaBOOT.hex arduino-0018/hardware/arduino/bootloaders/atmega8
The wireless frontend is handled using a slightly hacked series-1 LaFonera access point.
A general description including a pinout diagram of the 10-pin header on the Fonera is quite useful to wire it to the Atmega8.
We've added a SD-card using the Foneras GPIO port and a couple of kernel modules.
Arduino / Atmega8
Software was prototyped using the Arduino platform. A custom configuration was generated to account for the 12MHz XTAL (otherwise RS232 communications would break).
You can get the code from the shackspaceportal project on Google Code.
The access point is running dd-wrt. All data not part of dd-wrt is stored on the SD-Card. A custom init script, also stored on the SD-Card, copies the user database to the appropriate locations inside the live system after boot (ie. /etc/passwd).
Data / User Management
User data is held in a SQLite3 database and a couple of shell scripts are used to generate, add, manage, and rollout keys to the portal system itself.