Răsfoiți Sursa

Merge remote-tracking branch 'origin/master' into develop

QMK Bot 4 ani în urmă
părinte
comite
2e4f087615

+ 69 - 0
keyboards/anavi/macropad2/config.h

@@ -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 - 0
keyboards/anavi/macropad2/info.json

@@ -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 - 0
keyboards/anavi/macropad2/keymaps/copypaste/keymap.c

@@ -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 - 0
keyboards/anavi/macropad2/keymaps/copypaste/rules.mk

@@ -0,0 +1 @@
+COMBO_ENABLE = yes

+ 30 - 0
keyboards/anavi/macropad2/keymaps/default/keymap.c

@@ -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 - 0
keyboards/anavi/macropad2/keymaps/default/rules.mk

@@ -0,0 +1 @@
+COMBO_ENABLE = yes

+ 36 - 0
keyboards/anavi/macropad2/keymaps/jitsi/keymap.c

@@ -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 - 0
keyboards/anavi/macropad2/keymaps/jitsi/rules.mk

@@ -0,0 +1 @@
+COMBO_ENABLE = yes

+ 23 - 0
keyboards/anavi/macropad2/keymaps/mute/keymap.c

@@ -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 - 0
keyboards/anavi/macropad2/keymaps/mute/rules.mk

@@ -0,0 +1,2 @@
+EXTRAKEY_ENABLE = yes
+BACKLIGHT_ENABLE = no

+ 3 - 0
keyboards/anavi/macropad2/keymaps/tap_dance/config.h

@@ -0,0 +1,3 @@
+#pragma once
+
+#define TAPPING_TERM 500

+ 35 - 0
keyboards/anavi/macropad2/keymaps/tap_dance/keymap.c

@@ -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 - 0
keyboards/anavi/macropad2/keymaps/tap_dance/rules.mk

@@ -0,0 +1 @@
+TAP_DANCE_ENABLE = yes

+ 23 - 0
keyboards/anavi/macropad2/keymaps/volume/keymap.c

@@ -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 - 0
keyboards/anavi/macropad2/keymaps/volume/rules.mk

@@ -0,0 +1,2 @@
+EXTRAKEY_ENABLE = yes
+BACKLIGHT_ENABLE = no

+ 37 - 0
keyboards/anavi/macropad2/keymaps/zoom/keymap.c

@@ -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 - 0
keyboards/anavi/macropad2/keymaps/zoom/rules.mk

@@ -0,0 +1 @@
+COMBO_ENABLE = yes

+ 18 - 0
keyboards/anavi/macropad2/macropad2.c

@@ -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 - 0
keyboards/anavi/macropad2/macropad2.h

@@ -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 - 0
keyboards/anavi/macropad2/readme.md

@@ -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 - 0
keyboards/anavi/macropad2/rules.mk

@@ -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