Advertisement
bpiphany

Kitten Paw 20160418 Easy AVR

Jul 15th, 2016
430
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.00 KB | None | 0 0
  1. # Easy AVR USB Keyboard Firmware Keymapper
  2. # Copyright (C) 2013-2016 David Howland
  3. #
  4. # This program is free software; you can redistribute it and/or modify
  5. # it under the terms of the GNU General Public License as published by
  6. # the Free Software Foundation; either version 2 of the License, or
  7. # (at your option) any later version.
  8. #
  9. # This program is distributed in the hope that it will be useful,
  10. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. # GNU General Public License for more details.
  13. #
  14. # You should have received a copy of the GNU General Public License along
  15. # with this program. If not, see <http://www.gnu.org/licenses/>.
  16.  
  17. """Keyboard definition for Filco 104 keyboard"""
  18.  
  19. import easykeymap.templates.ATmega32U2_16MHz_COSTAR as firmware
  20. from easykeymap.ioports import *
  21.  
  22. description = "Filco 104 (Kitten Paw v2)"
  23. unique_id = "FILCOPAWV2_002"
  24. cfg_name = "costar104"
  25.  
  26. teensy = False
  27. hw_boot_key = False
  28.  
  29. display_height = int(6.5*4)
  30. display_width = int(22.5*4)
  31.  
  32. num_rows = 8
  33. num_cols = 18
  34.  
  35. strobe_cols = True
  36. strobe_low = True
  37.  
  38. matrix_hardware = [
  39. # Port mask Dir mask
  40. ( 0b01111111 , 0b01111111 ), # REF_PORTB
  41. ( 0b10000100 , 0b00000000 ), # REF_PORTC
  42. ( 0b01111110 , 0b00000000 ) # REF_PORTD
  43. ]
  44.  
  45. matrix_strobe = [
  46. # REF_PORTB REF_PORTC REF_PORTD
  47. ( 0b01111100 , 0b00000000 , 0b00000000 ),
  48. ( 0b01110100 , 0b00000000 , 0b00000000 ),
  49. ( 0b01111000 , 0b00000000 , 0b00000000 ),
  50. ( 0b01110000 , 0b00000000 , 0b00000000 ),
  51. ( 0b01100000 , 0b00000000 , 0b00000000 ),
  52. ( 0b01101000 , 0b00000000 , 0b00000000 ),
  53. ( 0b00100001 , 0b00000000 , 0b00000000 ),
  54. ( 0b01000001 , 0b00000000 , 0b00000000 ),
  55. ( 0b01111110 , 0b00000000 , 0b00000000 ),
  56. ( 0b01101110 , 0b00000000 , 0b00000000 ),
  57. ( 0b01110110 , 0b00000000 , 0b00000000 ),
  58. ( 0b01100110 , 0b00000000 , 0b00000000 ),
  59. ( 0b01111010 , 0b00000000 , 0b00000000 ),
  60. ( 0b01100010 , 0b00000000 , 0b00000000 ),
  61. ( 0b01101100 , 0b00000000 , 0b00000000 ),
  62. ( 0b01100100 , 0b00000000 , 0b00000000 ),
  63. ( 0b01101010 , 0b00000000 , 0b00000000 ),
  64. ( 0b01110010 , 0b00000000 , 0b00000000 )
  65. ]
  66.  
  67. matrix_sense = [
  68. # Port Pin mask
  69. ( REF_PORTC , 0b10000000 ),
  70. ( REF_PORTD , 0b00100000 ),
  71. ( REF_PORTD , 0b00001000 ),
  72. ( REF_PORTD , 0b00000010 ),
  73. ( REF_PORTC , 0b00000100 ),
  74. ( REF_PORTD , 0b01000000 ),
  75. ( REF_PORTD , 0b00010000 ),
  76. ( REF_PORTD , 0b00000100 )
  77. ]
  78.  
  79. num_leds = 3
  80. num_ind = 3
  81. num_bl_enab = 2
  82.  
  83. led_definition = [
  84. ('Num LED', 'Num Lock'),
  85. ('Caps LED', 'Caps Lock'),
  86. ('Scroll LED', 'Scroll Lock')
  87. ]
  88.  
  89. led_hardware = [
  90. # Port Pin Direction
  91. ( REF_PORTB, 7, LED_DRIVER_PULLDOWN ),
  92. ( REF_PORTC, 6, LED_DRIVER_PULLDOWN ),
  93. ( REF_PORTC, 5, LED_DRIVER_PULLDOWN )
  94. ]
  95.  
  96. backlighting = False
  97.  
  98. bl_modes = [
  99. ( 0, 0, 0 ),
  100. ( 1, 1, 1 )
  101. ]
  102.  
  103. KMAC_key = None
  104.  
  105. keyboard_definition = [
  106. [((4, 4), (6, 6), 'HID_KEYBOARD_SC_ESCAPE'),
  107. (4, None, '0'),
  108. ((4, 4), (4, 7), 'HID_KEYBOARD_SC_F1'),
  109. ((4, 4), (4, 8), 'HID_KEYBOARD_SC_F2'),
  110. ((4, 4), (2, 8), 'HID_KEYBOARD_SC_F3'),
  111. ((4, 4), (6, 8), 'HID_KEYBOARD_SC_F4'),
  112. (2, None, '0'),
  113. ((4, 4), (5, 15), 'HID_KEYBOARD_SC_F5'),
  114. ((4, 4), (6, 11), 'HID_KEYBOARD_SC_F6'),
  115. ((4, 4), (2, 12), 'HID_KEYBOARD_SC_F7'),
  116. ((4, 4), (4, 12), 'HID_KEYBOARD_SC_F8'),
  117. (2, None, '0'),
  118. ((4, 4), (4, 14), 'HID_KEYBOARD_SC_F9'),
  119. ((4, 4), (5, 14), 'HID_KEYBOARD_SC_F10'),
  120. ((4, 4), (6, 14), 'HID_KEYBOARD_SC_F11'),
  121. ((4, 4), (0, 14), 'HID_KEYBOARD_SC_F12'),
  122. (1, None, '0'),
  123. ((4, 4), (5, 13), 'HID_KEYBOARD_SC_PRINT_SCREEN'),
  124. ((4, 4), (7, 13), 'HID_KEYBOARD_SC_SCROLL_LOCK'),
  125. ((4, 4), (7, 15), 'HID_KEYBOARD_SC_PAUSE'),
  126. (17, None, '0')],
  127.  
  128. 2,
  129.  
  130. [((4, 4), (4, 6), 'HID_KEYBOARD_SC_GRAVE_ACCENT_AND_TILDE'),
  131. ((4, 4), (5, 6), 'HID_KEYBOARD_SC_1_AND_EXCLAMATION'),
  132. ((4, 4), (5, 7), 'HID_KEYBOARD_SC_2_AND_AT'),
  133. ((4, 4), (5, 8), 'HID_KEYBOARD_SC_3_AND_HASHMARK'),
  134. ((4, 4), (5, 9), 'HID_KEYBOARD_SC_4_AND_DOLLAR'),
  135. ((4, 4), (4, 9), 'HID_KEYBOARD_SC_5_AND_PERCENTAGE'),
  136. ((4, 4), (4, 10), 'HID_KEYBOARD_SC_6_AND_CARET'),
  137. ((4, 4), (5, 10), 'HID_KEYBOARD_SC_7_AND_AND_AMPERSAND'),
  138. ((4, 4), (5, 11), 'HID_KEYBOARD_SC_8_AND_ASTERISK'),
  139. ((4, 4), (5, 12), 'HID_KEYBOARD_SC_9_AND_OPENING_PARENTHESIS'),
  140. ((4, 4), (5, 5), 'HID_KEYBOARD_SC_0_AND_CLOSING_PARENTHESIS'),
  141. ((4, 4), (4, 5), 'HID_KEYBOARD_SC_MINUS_AND_UNDERSCORE'),
  142. ((4, 4), (4, 11), 'HID_KEYBOARD_SC_EQUAL_AND_PLUS'),
  143. ((8, 4), (2, 14), 'HID_KEYBOARD_SC_BACKSPACE'),
  144. (1, None, '0'),
  145. ((4, 4), (4, 17), 'HID_KEYBOARD_SC_INSERT'),
  146. ((4, 4), (4, 2), 'HID_KEYBOARD_SC_HOME'),
  147. ((4, 4), (4, 4), 'HID_KEYBOARD_SC_PAGE_UP'),
  148. (1, None, '0'),
  149. ((4, 4), (1, 16), 'HID_KEYBOARD_SC_NUM_LOCK'),
  150. ((4, 4), (1, 17), 'HID_KEYBOARD_SC_KEYPAD_SLASH'),
  151. ((4, 4), (1, 4), 'HID_KEYBOARD_SC_KEYPAD_ASTERISK'),
  152. ((4, 4), (0, 4), 'HID_KEYBOARD_SC_KEYPAD_MINUS')],
  153.  
  154. [((6, 4), (2, 6), 'HID_KEYBOARD_SC_TAB'),
  155. ((4, 4), (7, 6), 'HID_KEYBOARD_SC_Q'),
  156. ((4, 4), (7, 7), 'HID_KEYBOARD_SC_W'),
  157. ((4, 4), (7, 8), 'HID_KEYBOARD_SC_E'),
  158. ((4, 4), (7, 9), 'HID_KEYBOARD_SC_R'),
  159. ((4, 4), (2, 9), 'HID_KEYBOARD_SC_T'),
  160. ((4, 4), (2, 10), 'HID_KEYBOARD_SC_Y'),
  161. ((4, 4), (7, 10), 'HID_KEYBOARD_SC_U'),
  162. ((4, 4), (7, 11), 'HID_KEYBOARD_SC_I'),
  163. ((4, 4), (7, 12), 'HID_KEYBOARD_SC_O'),
  164. ((4, 4), (7, 5), 'HID_KEYBOARD_SC_P'),
  165. ((4, 4), (2, 5), 'HID_KEYBOARD_SC_OPENING_BRACKET_AND_OPENING_BRACE'),
  166. ((4, 4), (2, 11), 'HID_KEYBOARD_SC_CLOSING_BRACKET_AND_CLOSING_BRACE'),
  167. ((6, 4), (3, 14), 'HID_KEYBOARD_SC_BACKSLASH_AND_PIPE'),
  168. (1, None, '0'),
  169. ((4, 4), (4, 16), 'HID_KEYBOARD_SC_DELETE'),
  170. ((4, 4), (5, 2), 'HID_KEYBOARD_SC_END'),
  171. ((4, 4), (5, 4), 'HID_KEYBOARD_SC_PAGE_DOWN'),
  172. (1, None, '0'),
  173. ((4, 4), (7, 16), 'HID_KEYBOARD_SC_KEYPAD_7_AND_HOME'),
  174. ((4, 4), (7, 17), 'HID_KEYBOARD_SC_KEYPAD_8_AND_UP_ARROW'),
  175. ((4, 4), (7, 4), 'HID_KEYBOARD_SC_KEYPAD_9_AND_PAGE_UP'),
  176. ((4, 8), (7, 2), 'HID_KEYBOARD_SC_KEYPAD_PLUS')],
  177.  
  178. [((7, 4), (2, 7), 'HID_KEYBOARD_SC_CAPS_LOCK'),
  179. ((4, 4), (3, 6), 'HID_KEYBOARD_SC_A'),
  180. ((4, 4), (3, 7), 'HID_KEYBOARD_SC_S'),
  181. ((4, 4), (3, 8), 'HID_KEYBOARD_SC_D'),
  182. ((4, 4), (3, 9), 'HID_KEYBOARD_SC_F'),
  183. ((4, 4), (6, 9), 'HID_KEYBOARD_SC_G'),
  184. ((4, 4), (6, 10), 'HID_KEYBOARD_SC_H'),
  185. ((4, 4), (3, 10), 'HID_KEYBOARD_SC_J'),
  186. ((4, 4), (3, 11), 'HID_KEYBOARD_SC_K'),
  187. ((4, 4), (3, 12), 'HID_KEYBOARD_SC_L'),
  188. ((4, 4), (3, 5), 'HID_KEYBOARD_SC_SEMICOLON_AND_COLON'),
  189. ((4, 4), (6, 5), 'HID_KEYBOARD_SC_APOSTROPHE_AND_QUOTE'),
  190. ((4, 4), (3, 14), 'HID_KEYBOARD_SC_NON_US_HASHMARK_AND_TILDE'),
  191. ((5, 4), (1, 14), 'HID_KEYBOARD_SC_ENTER'),
  192. (14, None, '0'),
  193. ((4, 4), (2, 16), 'HID_KEYBOARD_SC_KEYPAD_4_AND_LEFT_ARROW'),
  194. ((4, 4), (2, 17), 'HID_KEYBOARD_SC_KEYPAD_5'),
  195. ((4, 4), (2, 4), 'HID_KEYBOARD_SC_KEYPAD_6_AND_RIGHT_ARROW'),
  196. (-4, None, '0')],
  197.  
  198. [((5, 4), (2, 1), 'HID_KEYBOARD_SC_LEFT_SHIFT'),
  199. ((4, 4), (6, 7), 'HID_KEYBOARD_SC_NON_US_BACKSLASH_AND_PIPE'),
  200. ((4, 4), (1, 6), 'HID_KEYBOARD_SC_Z'),
  201. ((4, 4), (1, 7), 'HID_KEYBOARD_SC_X'),
  202. ((4, 4), (1, 8), 'HID_KEYBOARD_SC_C'),
  203. ((4, 4), (1, 9), 'HID_KEYBOARD_SC_V'),
  204. ((4, 4), (0, 9), 'HID_KEYBOARD_SC_B'),
  205. ((4, 4), (0, 10), 'HID_KEYBOARD_SC_N'),
  206. ((4, 4), (1, 10), 'HID_KEYBOARD_SC_M'),
  207. ((4, 4), (1, 11), 'HID_KEYBOARD_SC_COMMA_AND_LESS_THAN_SIGN'),
  208. ((4, 4), (1, 12), 'HID_KEYBOARD_SC_DOT_AND_GREATER_THAN_SIGN'),
  209. ((4, 4), (0, 5), 'HID_KEYBOARD_SC_SLASH_AND_QUESTION_MARK'),
  210. ((11, 4), (3, 1), 'HID_KEYBOARD_SC_RIGHT_SHIFT'),
  211. (5, None, '0'),
  212. ((4, 4), (6, 2), 'HID_KEYBOARD_SC_UP_ARROW'),
  213. (5, None, '0'),
  214. ((4, 4), (3, 16), 'HID_KEYBOARD_SC_KEYPAD_1_AND_END'),
  215. ((4, 4), (3, 17), 'HID_KEYBOARD_SC_KEYPAD_2_AND_DOWN_ARROW'),
  216. ((4, 4), (3, 4), 'HID_KEYBOARD_SC_KEYPAD_3_AND_PAGE_DOWN'),
  217. ((4, 8), (3, 2), 'HID_KEYBOARD_SC_KEYPAD_ENTER')],
  218.  
  219. [((5, 4), (4, 15), 'HID_KEYBOARD_SC_LEFT_CONTROL'),
  220. ((5, 4), (2, 3), 'HID_KEYBOARD_SC_LEFT_GUI'),
  221. ((5, 4), (6, 13), 'HID_KEYBOARD_SC_LEFT_ALT'),
  222. ((25, 4), (6, 16), 'HID_KEYBOARD_SC_SPACE'),
  223. ((5, 4), (0, 13), 'HID_KEYBOARD_SC_RIGHT_ALT'),
  224. ((5, 4), (3, 0), 'HID_KEYBOARD_SC_RIGHT_GUI'),
  225. ((5, 4), (0, 12), 'HID_KEYBOARD_SC_APPLICATION'),
  226. ((5, 4), (1, 15), 'HID_KEYBOARD_SC_RIGHT_CONTROL'),
  227. (1, None, '0'),
  228. ((4, 4), (0, 2), 'HID_KEYBOARD_SC_LEFT_ARROW'),
  229. ((4, 4), (0, 16), 'HID_KEYBOARD_SC_DOWN_ARROW'),
  230. ((4, 4), (0, 17), 'HID_KEYBOARD_SC_RIGHT_ARROW'),
  231. (1, None, '0'),
  232. ((8, 4), (6, 17), 'HID_KEYBOARD_SC_KEYPAD_0_AND_INSERT'),
  233. ((4, 4), (6, 4), 'HID_KEYBOARD_SC_KEYPAD_DOT_AND_DELETE'),
  234. (-4, None, '0')]
  235. ]
  236.  
  237. alt_layouts = {}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement