C Assembly C++
Fetching latest commit…
Cannot retrieve the latest commit at this time.
|Failed to load latest commit information.|
Stratumkey  is a physical access control system originally designed for enabling members of Stratum 0  to enter the hackerspace. The current implementation uses a large 3-pin male audio jack (6.3mm) on the slave side (the "key") and female audio jack on the master side (the "door"). Inside the housing of the key is a small MCU (e.g. ATTiny85), that is powered over two of the three pins. The third pin is used for communication: We use a very simple one-wire protocol, which only supports two devices on the bus (master and slave). As our system is not intended to use more than two devices physically, we omitted the addressing. Currently the sole purpose of the master is to relay data. It is the interface between the single-wire-speaking key and the actual controller  (using UART to communicate). The master is intended to do additional stuff in the future, like opening the door. (slave)------------(master)============(controller)  singe-wire UART == Requirements == To build this project, you need a working avr-gcc and the avr-libc. If you want to flash the hex files to an actual MCU, you need of a hardware programmer (the makefiles are preconfigured to use an AVR Dragon) and if you want to do so using the makefile's upload target, you probably want to install avrdude. On Debian/Ubuntu do: sudo apt-get install gcc-avr avr-libc avrdude == Using other microcontrollers == The project is preconfigured to use an ATTiny85 as slave MCU and an ATMega8 as master MCU. If you want to use other ATMEL MCUs you need to figure out what timers and registers to use for the single wire protocol and then create your own device specific header file in libs/single_wire_uart/ and name after the pattern swu_device_defines_YOURMCU.h. Have a look at the other device headers. Also you need to adjust the makefiles. The MCU define is used by avr-gcc  and the DUDEMCU define is used by avrdude (execute `avrdude -p ?`).  https://stratum0.org  https://stratum0.org/mediawiki/index.php/Spacegate  https://github.com/hellfyre/stratumkey-daemon  http://gcc.gnu.org/onlinedocs/gcc/AVR-Options.html