[Keyboard] keyboards/anavi: Add ANAVI Macro Pad 2 (#11821)
ANAVI Macro Pad 2 is an open source mini mechanical keyboard with 2 keys and backlit. Powered by ATtiny 85 microcontroller and with microUSB connector. Designed with KiCad. Provides the following keymaps for ANAVI Macro Pad 2: - Default (with a, b and combo to control the LEDs) - Copy & paste - Tap dance example with a, b and c - Mute - Volume - Zoom - Jitsi Meet Co-authored-by: Drashna Jaelre <drashna@live.com> Signed-off-by: Leon Anavi <leon@anavi.org> Co-authored-by: Drashna Jaelre <drashna@live.com>
This commit is contained in:
		
							parent
							
								
									5655d6e5f5
								
							
						
					
					
						commit
						9682fca47b
					
				
					 21 changed files with 447 additions and 0 deletions
				
			
		
							
								
								
									
										69
									
								
								keyboards/anavi/macropad2/config.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										69
									
								
								keyboards/anavi/macropad2/config.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,69 @@
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					Copyright 2021 Leon Anavi <leon@anavi.org>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This program is free software: you can redistribute it and/or modify
 | 
				
			||||||
 | 
					it under the terms of the GNU General Public License as published by
 | 
				
			||||||
 | 
					the Free Software Foundation, either version 2 of the License, or
 | 
				
			||||||
 | 
					(at your option) any later version.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This program is distributed in the hope that it will be useful,
 | 
				
			||||||
 | 
					but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
 | 
					MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
				
			||||||
 | 
					GNU General Public License for more details.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					You should have received a copy of the GNU General Public License
 | 
				
			||||||
 | 
					along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#pragma once
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "config_common.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* USB Device descriptor parameter */
 | 
				
			||||||
 | 
					#define VENDOR_ID       0xCEEB
 | 
				
			||||||
 | 
					#define PRODUCT_ID      0x0002
 | 
				
			||||||
 | 
					#define DEVICE_VER      0x0001
 | 
				
			||||||
 | 
					#define MANUFACTURER    ANAVI
 | 
				
			||||||
 | 
					#define PRODUCT         Macro Pad 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* matrix size */
 | 
				
			||||||
 | 
					#define MATRIX_ROWS 1
 | 
				
			||||||
 | 
					#define MATRIX_COLS 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Keyboard Matrix Assignments
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * On this board we have direct connection: no diodes.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define DIRECT_PINS {{ B2, B0 }}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
 | 
				
			||||||
 | 
					#define DEBOUNCE 5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define BACKLIGHT_PIN B1
 | 
				
			||||||
 | 
					#define BACKLIGHT_LEVELS 2
 | 
				
			||||||
 | 
					#define RGBLIGHT_SLEEP
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//#define RGBLED_NUM 2
 | 
				
			||||||
 | 
					//#define RGB_DI_PIN B2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Save as much space as we can...
 | 
				
			||||||
 | 
					#define LAYER_STATE_8BIT
 | 
				
			||||||
 | 
					#define NO_ACTION_LAYER
 | 
				
			||||||
 | 
					#define NO_ACTION_TAPPING
 | 
				
			||||||
 | 
					#define NO_ACTION_ONESHOT
 | 
				
			||||||
 | 
					#define NO_RESET
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// usbconfig.h overrides
 | 
				
			||||||
 | 
					#define USB_CFG_IOPORTNAME B
 | 
				
			||||||
 | 
					#define USB_CFG_DMINUS_BIT 3
 | 
				
			||||||
 | 
					#define USB_CFG_DPLUS_BIT 4
 | 
				
			||||||
 | 
					#define USB_COUNT_SOF 0
 | 
				
			||||||
 | 
					#define USB_INTR_CFG PCMSK
 | 
				
			||||||
 | 
					#define USB_INTR_CFG_SET (1<<USB_CFG_DPLUS_BIT)
 | 
				
			||||||
 | 
					#define USB_INTR_ENABLE_BIT PCIE
 | 
				
			||||||
 | 
					#define USB_INTR_PENDING_BIT PCIF
 | 
				
			||||||
 | 
					#define USB_INTR_VECTOR SIG_PIN_CHANGE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define COMBO_COUNT 1
 | 
				
			||||||
 | 
					#define COMBO_TERM 500
 | 
				
			||||||
							
								
								
									
										16
									
								
								keyboards/anavi/macropad2/info.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								keyboards/anavi/macropad2/info.json
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,16 @@
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  "keyboard_name": "ANAVI Macro Pad 2",
 | 
				
			||||||
 | 
					  "url": "https://anavi.technology/",
 | 
				
			||||||
 | 
					  "maintainer": "leon-anavi",
 | 
				
			||||||
 | 
					  "width": 2,
 | 
				
			||||||
 | 
					  "height": 1,
 | 
				
			||||||
 | 
					  "layouts": {
 | 
				
			||||||
 | 
					    "LAYOUT": {
 | 
				
			||||||
 | 
					      "key_count": 2,
 | 
				
			||||||
 | 
					      "layout": [
 | 
				
			||||||
 | 
					        {"x":0, "y":0},
 | 
				
			||||||
 | 
					        {"x":1, "y":0}
 | 
				
			||||||
 | 
					      ]
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										30
									
								
								keyboards/anavi/macropad2/keymaps/copypaste/keymap.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								keyboards/anavi/macropad2/keymaps/copypaste/keymap.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,30 @@
 | 
				
			||||||
 | 
					/* Copyright 2021 Leon Anavi <leon@anavi.org>
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This program is free software: you can redistribute it and/or modify
 | 
				
			||||||
 | 
					 * it under the terms of the GNU General Public License as published by
 | 
				
			||||||
 | 
					 * the Free Software Foundation, either version 2 of the License, or
 | 
				
			||||||
 | 
					 * (at your option) any later version.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This program is distributed in the hope that it will be useful,
 | 
				
			||||||
 | 
					 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
 | 
					 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
				
			||||||
 | 
					 * GNU General Public License for more details.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * You should have received a copy of the GNU General Public License
 | 
				
			||||||
 | 
					 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include QMK_KEYBOARD_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
				
			||||||
 | 
					  [0] = LAYOUT(
 | 
				
			||||||
 | 
					    C(KC_C),  C(KC_V)
 | 
				
			||||||
 | 
					  )
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const uint16_t PROGMEM test_combo[] = {C(KC_C), C(KC_V), COMBO_END};
 | 
				
			||||||
 | 
					combo_t key_combos[COMBO_COUNT] = {COMBO_ACTION(test_combo)};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void process_combo_event(uint16_t combo_index, bool pressed) {
 | 
				
			||||||
 | 
						backlight_step();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										1
									
								
								keyboards/anavi/macropad2/keymaps/copypaste/rules.mk
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								keyboards/anavi/macropad2/keymaps/copypaste/rules.mk
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					COMBO_ENABLE = yes
 | 
				
			||||||
							
								
								
									
										30
									
								
								keyboards/anavi/macropad2/keymaps/default/keymap.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								keyboards/anavi/macropad2/keymaps/default/keymap.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,30 @@
 | 
				
			||||||
 | 
					/* Copyright 2021 Leon Anavi <leon@anavi.org>
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This program is free software: you can redistribute it and/or modify
 | 
				
			||||||
 | 
					 * it under the terms of the GNU General Public License as published by
 | 
				
			||||||
 | 
					 * the Free Software Foundation, either version 2 of the License, or
 | 
				
			||||||
 | 
					 * (at your option) any later version.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This program is distributed in the hope that it will be useful,
 | 
				
			||||||
 | 
					 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
 | 
					 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
				
			||||||
 | 
					 * GNU General Public License for more details.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * You should have received a copy of the GNU General Public License
 | 
				
			||||||
 | 
					 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include QMK_KEYBOARD_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
				
			||||||
 | 
					  [0] = LAYOUT(
 | 
				
			||||||
 | 
					    KC_A,  KC_B
 | 
				
			||||||
 | 
					  )
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const uint16_t PROGMEM test_combo[] = {KC_A, KC_B, COMBO_END};
 | 
				
			||||||
 | 
					combo_t key_combos[COMBO_COUNT] = {COMBO_ACTION(test_combo)};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void process_combo_event(uint16_t combo_index, bool pressed) {
 | 
				
			||||||
 | 
						backlight_step();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										1
									
								
								keyboards/anavi/macropad2/keymaps/default/rules.mk
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								keyboards/anavi/macropad2/keymaps/default/rules.mk
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					COMBO_ENABLE = yes
 | 
				
			||||||
							
								
								
									
										36
									
								
								keyboards/anavi/macropad2/keymaps/jitsi/keymap.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								keyboards/anavi/macropad2/keymaps/jitsi/keymap.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,36 @@
 | 
				
			||||||
 | 
					/* Copyright 2021 Leon Anavi <leon@anavi.org>
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This program is free software: you can redistribute it and/or modify
 | 
				
			||||||
 | 
					 * it under the terms of the GNU General Public License as published by
 | 
				
			||||||
 | 
					 * the Free Software Foundation, either version 2 of the License, or
 | 
				
			||||||
 | 
					 * (at your option) any later version.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This program is distributed in the hope that it will be useful,
 | 
				
			||||||
 | 
					 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
 | 
					 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
				
			||||||
 | 
					 * GNU General Public License for more details.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * You should have received a copy of the GNU General Public License
 | 
				
			||||||
 | 
					 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include QMK_KEYBOARD_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Jitsi Meet keyboard shortcuts:
 | 
				
			||||||
 | 
					 * V - Start or stop your camera
 | 
				
			||||||
 | 
					 * M - Mute or unmute your microphone
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
				
			||||||
 | 
					  [0] = LAYOUT(
 | 
				
			||||||
 | 
					    KC_M,  KC_V
 | 
				
			||||||
 | 
					  )
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const uint16_t PROGMEM test_combo[] = {KC_M, KC_V, COMBO_END};
 | 
				
			||||||
 | 
					combo_t key_combos[COMBO_COUNT] = {COMBO_ACTION(test_combo)};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void process_combo_event(uint16_t combo_index, bool pressed) {
 | 
				
			||||||
 | 
						backlight_step();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										1
									
								
								keyboards/anavi/macropad2/keymaps/jitsi/rules.mk
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								keyboards/anavi/macropad2/keymaps/jitsi/rules.mk
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					COMBO_ENABLE = yes
 | 
				
			||||||
							
								
								
									
										23
									
								
								keyboards/anavi/macropad2/keymaps/mute/keymap.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								keyboards/anavi/macropad2/keymaps/mute/keymap.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,23 @@
 | 
				
			||||||
 | 
					/* Copyright 2021 Leon Anavi <leon@anavi.org>
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This program is free software: you can redistribute it and/or modify
 | 
				
			||||||
 | 
					 * it under the terms of the GNU General Public License as published by
 | 
				
			||||||
 | 
					 * the Free Software Foundation, either version 2 of the License, or
 | 
				
			||||||
 | 
					 * (at your option) any later version.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This program is distributed in the hope that it will be useful,
 | 
				
			||||||
 | 
					 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
 | 
					 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
				
			||||||
 | 
					 * GNU General Public License for more details.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * You should have received a copy of the GNU General Public License
 | 
				
			||||||
 | 
					 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include QMK_KEYBOARD_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
				
			||||||
 | 
					  [0] = LAYOUT(
 | 
				
			||||||
 | 
					    KC_AUDIO_MUTE, BL_TOGG
 | 
				
			||||||
 | 
					  )
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
							
								
								
									
										2
									
								
								keyboards/anavi/macropad2/keymaps/mute/rules.mk
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								keyboards/anavi/macropad2/keymaps/mute/rules.mk
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,2 @@
 | 
				
			||||||
 | 
					EXTRAKEY_ENABLE = yes
 | 
				
			||||||
 | 
					BACKLIGHT_ENABLE = no
 | 
				
			||||||
							
								
								
									
										3
									
								
								keyboards/anavi/macropad2/keymaps/tap_dance/config.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								keyboards/anavi/macropad2/keymaps/tap_dance/config.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,3 @@
 | 
				
			||||||
 | 
					#pragma once
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define TAPPING_TERM 500
 | 
				
			||||||
							
								
								
									
										35
									
								
								keyboards/anavi/macropad2/keymaps/tap_dance/keymap.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								keyboards/anavi/macropad2/keymaps/tap_dance/keymap.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,35 @@
 | 
				
			||||||
 | 
					/* Copyright 2021 Leon Anavi <leon@anavi.org>
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This program is free software: you can redistribute it and/or modify
 | 
				
			||||||
 | 
					 * it under the terms of the GNU General Public License as published by
 | 
				
			||||||
 | 
					 * the Free Software Foundation, either version 2 of the License, or
 | 
				
			||||||
 | 
					 * (at your option) any later version.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This program is distributed in the hope that it will be useful,
 | 
				
			||||||
 | 
					 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
 | 
					 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
				
			||||||
 | 
					 * GNU General Public License for more details.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * You should have received a copy of the GNU General Public License
 | 
				
			||||||
 | 
					 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include QMK_KEYBOARD_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					enum layers {
 | 
				
			||||||
 | 
					  _BASE = 0,
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					enum {
 | 
				
			||||||
 | 
					  TD_BC = 0
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					qk_tap_dance_action_t tap_dance_actions[] = {
 | 
				
			||||||
 | 
					  [TD_BC]  = ACTION_TAP_DANCE_DOUBLE(KC_B, KC_C)
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
				
			||||||
 | 
					  [_BASE] = LAYOUT(
 | 
				
			||||||
 | 
					    KC_A,  TD(TD_BC)
 | 
				
			||||||
 | 
					  )
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
							
								
								
									
										1
									
								
								keyboards/anavi/macropad2/keymaps/tap_dance/rules.mk
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								keyboards/anavi/macropad2/keymaps/tap_dance/rules.mk
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					TAP_DANCE_ENABLE = yes
 | 
				
			||||||
							
								
								
									
										23
									
								
								keyboards/anavi/macropad2/keymaps/volume/keymap.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								keyboards/anavi/macropad2/keymaps/volume/keymap.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,23 @@
 | 
				
			||||||
 | 
					/* Copyright 2021 Leon Anavi <leon@anavi.org>
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This program is free software: you can redistribute it and/or modify
 | 
				
			||||||
 | 
					 * it under the terms of the GNU General Public License as published by
 | 
				
			||||||
 | 
					 * the Free Software Foundation, either version 2 of the License, or
 | 
				
			||||||
 | 
					 * (at your option) any later version.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This program is distributed in the hope that it will be useful,
 | 
				
			||||||
 | 
					 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
 | 
					 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
				
			||||||
 | 
					 * GNU General Public License for more details.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * You should have received a copy of the GNU General Public License
 | 
				
			||||||
 | 
					 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include QMK_KEYBOARD_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
				
			||||||
 | 
					  [0] = LAYOUT(
 | 
				
			||||||
 | 
					    KC_VOLU,  KC_VOLD
 | 
				
			||||||
 | 
					  )
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
							
								
								
									
										2
									
								
								keyboards/anavi/macropad2/keymaps/volume/rules.mk
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								keyboards/anavi/macropad2/keymaps/volume/rules.mk
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,2 @@
 | 
				
			||||||
 | 
					EXTRAKEY_ENABLE = yes
 | 
				
			||||||
 | 
					BACKLIGHT_ENABLE = no
 | 
				
			||||||
							
								
								
									
										37
									
								
								keyboards/anavi/macropad2/keymaps/zoom/keymap.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								keyboards/anavi/macropad2/keymaps/zoom/keymap.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,37 @@
 | 
				
			||||||
 | 
					/* Copyright 2021 Leon Anavi <leon@anavi.org>
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This program is free software: you can redistribute it and/or modify
 | 
				
			||||||
 | 
					 * it under the terms of the GNU General Public License as published by
 | 
				
			||||||
 | 
					 * the Free Software Foundation, either version 2 of the License, or
 | 
				
			||||||
 | 
					 * (at your option) any later version.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This program is distributed in the hope that it will be useful,
 | 
				
			||||||
 | 
					 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
 | 
					 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
				
			||||||
 | 
					 * GNU General Public License for more details.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * You should have received a copy of the GNU General Public License
 | 
				
			||||||
 | 
					 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include QMK_KEYBOARD_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * The keymap contains the following shortcuts for Zoom meeting:
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Alt+A: Mute/unmute my audio
 | 
				
			||||||
 | 
					 * Alt+V: Start/stop video
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
				
			||||||
 | 
					  [0] = LAYOUT(
 | 
				
			||||||
 | 
					    LALT(KC_A),  LALT(KC_V)
 | 
				
			||||||
 | 
					  )
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const uint16_t PROGMEM test_combo[] = {LALT(KC_A),  LALT(KC_V), COMBO_END};
 | 
				
			||||||
 | 
					combo_t key_combos[COMBO_COUNT] = {COMBO_ACTION(test_combo)};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void process_combo_event(uint16_t combo_index, bool pressed) {
 | 
				
			||||||
 | 
						backlight_step();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										1
									
								
								keyboards/anavi/macropad2/keymaps/zoom/rules.mk
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								keyboards/anavi/macropad2/keymaps/zoom/rules.mk
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					COMBO_ENABLE = yes
 | 
				
			||||||
							
								
								
									
										18
									
								
								keyboards/anavi/macropad2/macropad2.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								keyboards/anavi/macropad2/macropad2.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,18 @@
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					Copyright 2021 Leon Anavi <leon@anavi.org>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This program is free software: you can redistribute it and/or modify
 | 
				
			||||||
 | 
					it under the terms of the GNU General Public License as published by
 | 
				
			||||||
 | 
					the Free Software Foundation, either version 2 of the License, or
 | 
				
			||||||
 | 
					(at your option) any later version.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This program is distributed in the hope that it will be useful,
 | 
				
			||||||
 | 
					but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
 | 
					MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
				
			||||||
 | 
					GNU General Public License for more details.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					You should have received a copy of the GNU General Public License
 | 
				
			||||||
 | 
					along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "macropad2.h"
 | 
				
			||||||
							
								
								
									
										35
									
								
								keyboards/anavi/macropad2/macropad2.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								keyboards/anavi/macropad2/macropad2.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,35 @@
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					Copyright 2021 Leon Anavi <leon@anavi.org>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This program is free software: you can redistribute it and/or modify
 | 
				
			||||||
 | 
					it under the terms of the GNU General Public License as published by
 | 
				
			||||||
 | 
					the Free Software Foundation, either version 2 of the License, or
 | 
				
			||||||
 | 
					(at your option) any later version.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This program is distributed in the hope that it will be useful,
 | 
				
			||||||
 | 
					but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
 | 
					MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
				
			||||||
 | 
					GNU General Public License for more details.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					You should have received a copy of the GNU General Public License
 | 
				
			||||||
 | 
					along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#pragma once
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "quantum.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* This a shortcut to help you visually see your layout.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * The first section contains all of the arguments representing the physical
 | 
				
			||||||
 | 
					 * layout of the board and position of the keys.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * The second converts the arguments into a two-dimensional array which
 | 
				
			||||||
 | 
					 * represents the switch matrix.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define LAYOUT( \
 | 
				
			||||||
 | 
						K01, K02 \
 | 
				
			||||||
 | 
					) \
 | 
				
			||||||
 | 
					{ \
 | 
				
			||||||
 | 
					  { K01, K02 }, \
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										49
									
								
								keyboards/anavi/macropad2/readme.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								keyboards/anavi/macropad2/readme.md
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,49 @@
 | 
				
			||||||
 | 
					# ANAVI Macro Pad 8
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ANAVI Macro Pad 2 is an open source mini mechanical keyboard with 2 keys and backlit. Powered by ATtiny 85 microcontroller and with microUSB connector. Designed with KiCad.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* Keyboard Maintainer: [Leon Anavi](https://github.com/leon-anavi)
 | 
				
			||||||
 | 
					* Hardware Supported: ANAVI Macro Pad 2
 | 
				
			||||||
 | 
					* Hardware Availability: [PCB Files](https://github.com/AnaviTechnology/anavi-macro-pad-2)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					**Note**: Due to limited firmware space, a _**lot**_ of features have to be disabled to get a functioning QMK based keyboard.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Make example for this keyboard (after setting up your build environment):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    make anavi/macropad2:default
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Flashing
 | 
				
			||||||
 | 
					### Prerequisites
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```bash
 | 
				
			||||||
 | 
					git clone https://github.com/micronucleus/micronucleus.git
 | 
				
			||||||
 | 
					cd micronucleus/commandline/
 | 
				
			||||||
 | 
					sudo make install
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					On GNU/Linux distributions, you will need proper privileges to access the MCU. You can either use `sudo` when flashing firmware, or place [these files](https://github.com/micronucleus/micronucleus/blob/master/commandline/49-micronucleus.rules) in /etc/udev/rules.d/. Once added run the following:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```bash
 | 
				
			||||||
 | 
					sudo udevadm control --reload-rules
 | 
				
			||||||
 | 
					sudo udevadm trigger
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Instructions
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* Run one of the following commands:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```bash
 | 
				
			||||||
 | 
					make anavi/macropad2:default:flash
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# or directly with...
 | 
				
			||||||
 | 
					micronucleus --run <firmware.hex>
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* Plug ANAVI Macro Pad 2 to the USB port and the flashing procedure should start
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Recovery
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* [Original Firmware](https://github.com/AnaviTechnology/anavi-macro-pad-2/tree/main/bootloader)
 | 
				
			||||||
 | 
					* [Bootloader Repair](https://digistump.com/wiki/digispark/tutorials/proisp)
 | 
				
			||||||
							
								
								
									
										34
									
								
								keyboards/anavi/macropad2/rules.mk
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								keyboards/anavi/macropad2/rules.mk
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,34 @@
 | 
				
			||||||
 | 
					# MCU name
 | 
				
			||||||
 | 
					MCU = attiny85
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Bootloader selection
 | 
				
			||||||
 | 
					BOOTLOADER = micronucleus
 | 
				
			||||||
 | 
					OPT_DEFS += -DBOOTLOADER_SIZE=1862
 | 
				
			||||||
 | 
					PROGRAM_CMD = micronucleus --run $(BUILD_DIR)/$(TARGET).hex
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Build Options
 | 
				
			||||||
 | 
					#   change yes to no to disable
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					BOOTMAGIC_ENABLE = no       # Virtual DIP switch configuration
 | 
				
			||||||
 | 
					MOUSEKEY_ENABLE = no        # Mouse keys
 | 
				
			||||||
 | 
					EXTRAKEY_ENABLE = no        # Audio control and System control
 | 
				
			||||||
 | 
					CONSOLE_ENABLE = no         # Console for debug
 | 
				
			||||||
 | 
					COMMAND_ENABLE = no         # Commands for debug and configuration
 | 
				
			||||||
 | 
					# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
 | 
				
			||||||
 | 
					SLEEP_LED_ENABLE = no       # Breathing sleep LED during USB suspend
 | 
				
			||||||
 | 
					# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
 | 
				
			||||||
 | 
					NKRO_ENABLE = no            # USB Nkey Rollover
 | 
				
			||||||
 | 
					BACKLIGHT_ENABLE = yes      # Enable keyboard backlight functionality
 | 
				
			||||||
 | 
					RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow
 | 
				
			||||||
 | 
					MIDI_ENABLE = no            # MIDI support
 | 
				
			||||||
 | 
					UNICODE_ENABLE = no         # Unicode
 | 
				
			||||||
 | 
					BLUETOOTH_ENABLE = no       # Enable Bluetooth
 | 
				
			||||||
 | 
					AUDIO_ENABLE = no           # Audio output
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Save as much space as we can...
 | 
				
			||||||
 | 
					LTO_ENABLE = yes
 | 
				
			||||||
 | 
					GRAVE_ESC_ENABLE = no
 | 
				
			||||||
 | 
					MAGIC_ENABLE = no
 | 
				
			||||||
 | 
					SPACE_CADET_ENABLE = no
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					BACKLIGHT_DRIVER = software
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue