]> git.donarmstrong.com Git - qmk_firmware.git/blob - lib/lufa/Projects/Magstripe/Magstripe.txt
Merge commit '60b30c036397cb5627fa374bb930794b225daa29' as 'lib/lufa'
[qmk_firmware.git] / lib / lufa / Projects / Magstripe / Magstripe.txt
1 /** \file
2  *
3  *  This file contains special DoxyGen information for the generation of the main page and other special
4  *  documentation pages. It is not a project source file.
5  */
6
7 /** \mainpage Denver Gingerich's USBSnoop Magnetic Card Reader Project
8  *
9  *  \section Sec_Compat Project Compatibility:
10  *
11  *  The following list indicates what microcontrollers are compatible with this project.
12  *
13  *  \li AT90USB1287
14  *  \li AT90USB1286
15  *
16  *  \section Sec_Info USB Information:
17  *
18  *  The following table gives a rundown of the USB utilization of this project.
19  *
20  * <table>
21  *  <tr>
22  *   <td><b>USB Mode:</b></td>
23  *   <td>Device</td>
24  *  </tr>
25  *  <tr>
26  *   <td><b>USB Class:</b></td>
27  *   <td>Human Interface Device (HID)</td>
28  *  </tr>
29  *  <tr>
30  *   <td><b>USB Subclass:</b></td>
31  *   <td>Keyboard</td>
32  *  </tr>
33  *  <tr>
34  *   <td><b>Relevant Standards:</b></td>
35  *   <td>USBIF HID Standard, USBIF HID Usage Tables</td>
36  *  </tr>
37  *  <tr>
38  *   <td><b>Supported USB Speeds:</b></td>
39  *   <td>Full Speed Mode</td>
40  *  </tr>
41  * </table>
42  *
43  *  \section Sec_Description Project Description:
44  *
45  *  Firmware for a USB AVR powered USB TTL magnetic stripe reader (using a card
46  *  reader such as the Omron V3B-4K) by Denver Gingerich. This project is designed
47  *  to be used with the open source Stripe Snoop project at <a>http://stripesnoop.sourceforge.net/</a>.
48  *
49  *  See <a>http://ossguy.com/ss_usb/</a> for the USB reader hardware project website,
50  *  including construction and support details.
51  *
52  *  To use, connect your magnetic card reader device to the USB AVR as follows (pin and port mapping may be adjusted
53  *  from the project makefile):
54  *
55  *  <table>
56  *   <tr>
57  *    <th><b>Signal:</b></th>
58  *    <th><b>AVR Port:</b></th>
59  *   </tr>
60  *   <tr>
61  *    <td>Track 1 Data</td>
62  *    <td>PORTC, Pin 1</td>
63  *   </tr>
64  *   <tr>
65  *    <td>Track 1 Clock</td>
66  *    <td>PORTC, Pin 2</td>
67  *   </tr>
68  *   <tr>
69  *    <td>Track 2 Data</td>
70  *    <td>PORTC, Pin 3</td>
71  *   </tr>
72  *   <tr>
73  *    <td>Track 2 Clock</td>
74  *    <td>PORTC, Pin 0</td>
75  *   </tr>
76  *   <tr>
77  *    <td>Track 3 Data</td>
78  *    <td>PORTC, Pin 5</td>
79  *   </tr>
80  *   <tr>
81  *    <td>Track 3 Clock</td>
82  *    <td>PORTC, Pin 6</td>
83  *   </tr>
84  *   <tr>
85  *    <td>Card Detect</td>
86  *    <td>PORTC, Pin 4</td>
87  *   </tr>
88  *  </table>
89  *
90  *  This project is based on the LUFA Keyboard project demonstration application, written by Denver Gingerich.
91  *
92  *  This application uses a keyboard HID driver to communicate the data collected a TTL magnetic stripe reader
93  *  to the connected computer. The raw bitstream obtained from the magnetic stripe reader is "typed" through
94  *  the keyboard driver as 0's and 1's. After every card swipe, the project will send a return key.
95  *
96  *  \section Sec_Options Project Options
97  *
98  *  The following defines can be found in this project, which can control the project behaviour when defined, or changed in value.
99  *
100  *  <table>
101  *   <tr>
102  *    <th><b>Define Name:</b></th>
103  *    <th><b>Location:</b></th>
104  *    <th><b>Description:</b></th>
105  *   </tr>
106  *   <tr>
107  *    <td>MAX_BITS</td>
108  *    <td>CircularBitBuffer.h</td>
109  *    <td>Gives the maximum number of bits per track which can be buffered by the device for later transmission to a host.</td>
110  *   </tr>
111  *   <tr>
112  *    <td>MAG_T1_CLOCK</td>
113  *    <td>AppConfig.h</td>
114  *    <td>Mask for the magnetic card reader's CLOCK line for the reader's track 1 output.</td>
115  *   </tr>
116  *   <tr>
117  *    <td>MAG_T1_DATA</td>
118  *    <td>AppConfig.h</td>
119  *    <td>Mask for the magnetic card reader's DATA line for the reader's track 1 output.</td>
120  *   </tr>
121  *   <tr>
122  *    <td>MAG_T2_CLOCK</td>
123  *    <td>AppConfig.h</td>
124  *    <td>Mask for the magnetic card reader's CLOCK line for the reader's track 2 output.</td>
125  *   </tr>
126  *   <tr>
127  *    <td>MAG_T2_DATA</td>
128  *    <td>AppConfig.h</td>
129  *    <td>Mask for the magnetic card reader's DATA line for the reader's track 2 output.</td>
130  *   </tr>
131  *   <tr>
132  *    <td>MAG_T3_CLOCK</td>
133  *    <td>AppConfig.h</td>
134  *    <td>Mask for the magnetic card reader's CLOCK line for the reader's track 3 output.</td>
135  *   </tr>
136  *   <tr>
137  *    <td>MAG_T3_DATA</td>
138  *    <td>AppConfig.h</td>
139  *    <td>Mask for the magnetic card reader's DATA line for the reader's track 3 output.</td>
140  *   </tr>
141  *   <tr>
142  *    <td>MAG_CARDPRESENT</td>
143  *    <td>AppConfig.h</td>
144  *    <td>Mask for the magnetic card reader's card detection output.</td>
145  *   </tr>
146  *   <tr>
147  *    <td>MAG_PIN</td>
148  *    <td>AppConfig.h</td>
149  *    <td>PIN register that the magnetic card reader device is attached to.</td>
150  *   </tr>
151  *   <tr>
152  *    <td>MAG_PORT</td>
153  *    <td>AppConfig.h</td>
154  *    <td>PORT register that the magnetic card reader device is attached to.</td>
155  *   </tr>
156  *   <tr>
157  *    <td>MAG_DDR</td>
158  *    <td>AppConfig.h</td>
159  *    <td>DDR register that the magnetic card reader device is attached to.</td>
160  *   </tr>
161  *  </table>
162  */
163