summaryrefslogtreecommitdiff
path: root/keyboards/anavi
diff options
context:
space:
mode:
authorLeon Anavi <leon@anavi.org>2021-02-20 21:47:05 +0200
committerGitHub <noreply@github.com>2021-02-20 14:47:05 -0500
commit9682fca47b1d36dc5b502cc3e1f569464c41669a (patch)
treeacef2cfe6cad02f6b1ce9463ef9e50979a00d55c /keyboards/anavi
parent5655d6e5f5d2e35d896dc08e8a040b72a1e868ce (diff)
[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>
Diffstat (limited to 'keyboards/anavi')
-rw-r--r--keyboards/anavi/macropad2/config.h69
-rw-r--r--keyboards/anavi/macropad2/info.json16
-rw-r--r--keyboards/anavi/macropad2/keymaps/copypaste/keymap.c30
-rw-r--r--keyboards/anavi/macropad2/keymaps/copypaste/rules.mk1
-rw-r--r--keyboards/anavi/macropad2/keymaps/default/keymap.c30
-rw-r--r--keyboards/anavi/macropad2/keymaps/default/rules.mk1
-rw-r--r--keyboards/anavi/macropad2/keymaps/jitsi/keymap.c36
-rw-r--r--keyboards/anavi/macropad2/keymaps/jitsi/rules.mk1
-rw-r--r--keyboards/anavi/macropad2/keymaps/mute/keymap.c23
-rw-r--r--keyboards/anavi/macropad2/keymaps/mute/rules.mk2
-rw-r--r--keyboards/anavi/macropad2/keymaps/tap_dance/config.h3
-rw-r--r--keyboards/anavi/macropad2/keymaps/tap_dance/keymap.c35
-rw-r--r--keyboards/anavi/macropad2/keymaps/tap_dance/rules.mk1
-rw-r--r--keyboards/anavi/macropad2/keymaps/volume/keymap.c23
-rw-r--r--keyboards/anavi/macropad2/keymaps/volume/rules.mk2
-rw-r--r--keyboards/anavi/macropad2/keymaps/zoom/keymap.c37
-rw-r--r--keyboards/anavi/macropad2/keymaps/zoom/rules.mk1
-rw-r--r--keyboards/anavi/macropad2/macropad2.c18
-rw-r--r--keyboards/anavi/macropad2/macropad2.h35
-rw-r--r--keyboards/anavi/macropad2/readme.md49
-rw-r--r--keyboards/anavi/macropad2/rules.mk34
21 files changed, 447 insertions, 0 deletions
diff --git a/keyboards/anavi/macropad2/config.h b/keyboards/anavi/macropad2/config.h
new file mode 100644
index 0000000000..f0448e4d71
--- /dev/null
+++ b/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
diff --git a/keyboards/anavi/macropad2/info.json b/keyboards/anavi/macropad2/info.json
new file mode 100644
index 0000000000..adce72ae36
--- /dev/null
+++ b/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}
+ ]
+ }
+ }
+}
diff --git a/keyboards/anavi/macropad2/keymaps/copypaste/keymap.c b/keyboards/anavi/macropad2/keymaps/copypaste/keymap.c
new file mode 100644
index 0000000000..cddc14188d
--- /dev/null
+++ b/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();
+}
diff --git a/keyboards/anavi/macropad2/keymaps/copypaste/rules.mk b/keyboards/anavi/macropad2/keymaps/copypaste/rules.mk
new file mode 100644
index 0000000000..ab1e438182
--- /dev/null
+++ b/keyboards/anavi/macropad2/keymaps/copypaste/rules.mk
@@ -0,0 +1 @@
+COMBO_ENABLE = yes
diff --git a/keyboards/anavi/macropad2/keymaps/default/keymap.c b/keyboards/anavi/macropad2/keymaps/default/keymap.c
new file mode 100644
index 0000000000..c880ff660a
--- /dev/null
+++ b/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();
+}
diff --git a/keyboards/anavi/macropad2/keymaps/default/rules.mk b/keyboards/anavi/macropad2/keymaps/default/rules.mk
new file mode 100644
index 0000000000..ab1e438182
--- /dev/null
+++ b/keyboards/anavi/macropad2/keymaps/default/rules.mk
@@ -0,0 +1 @@
+COMBO_ENABLE = yes
diff --git a/keyboards/anavi/macropad2/keymaps/jitsi/keymap.c b/keyboards/anavi/macropad2/keymaps/jitsi/keymap.c
new file mode 100644
index 0000000000..afd1dd1d14
--- /dev/null
+++ b/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();
+}
diff --git a/keyboards/anavi/macropad2/keymaps/jitsi/rules.mk b/keyboards/anavi/macropad2/keymaps/jitsi/rules.mk
new file mode 100644
index 0000000000..ab1e438182
--- /dev/null
+++ b/keyboards/anavi/macropad2/keymaps/jitsi/rules.mk
@@ -0,0 +1 @@
+COMBO_ENABLE = yes
diff --git a/keyboards/anavi/macropad2/keymaps/mute/keymap.c b/keyboards/anavi/macropad2/keymaps/mute/keymap.c
new file mode 100644
index 0000000000..642bf66a8f
--- /dev/null
+++ b/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
+ )
+};
diff --git a/keyboards/anavi/macropad2/keymaps/mute/rules.mk b/keyboards/anavi/macropad2/keymaps/mute/rules.mk
new file mode 100644
index 0000000000..a8b1459346
--- /dev/null
+++ b/keyboards/anavi/macropad2/keymaps/mute/rules.mk
@@ -0,0 +1,2 @@
+EXTRAKEY_ENABLE = yes
+BACKLIGHT_ENABLE = no
diff --git a/keyboards/anavi/macropad2/keymaps/tap_dance/config.h b/keyboards/anavi/macropad2/keymaps/tap_dance/config.h
new file mode 100644
index 0000000000..b86e862d30
--- /dev/null
+++ b/keyboards/anavi/macropad2/keymaps/tap_dance/config.h
@@ -0,0 +1,3 @@
+#pragma once
+
+#define TAPPING_TERM 500
diff --git a/keyboards/anavi/macropad2/keymaps/tap_dance/keymap.c b/keyboards/anavi/macropad2/keymaps/tap_dance/keymap.c
new file mode 100644
index 0000000000..63854a62e3
--- /dev/null
+++ b/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)
+ )
+};
diff --git a/keyboards/anavi/macropad2/keymaps/tap_dance/rules.mk b/keyboards/anavi/macropad2/keymaps/tap_dance/rules.mk
new file mode 100644
index 0000000000..e5ddcae8d9
--- /dev/null
+++ b/keyboards/anavi/macropad2/keymaps/tap_dance/rules.mk
@@ -0,0 +1 @@
+TAP_DANCE_ENABLE = yes
diff --git a/keyboards/anavi/macropad2/keymaps/volume/keymap.c b/keyboards/anavi/macropad2/keymaps/volume/keymap.c
new file mode 100644
index 0000000000..f9ad20d5c5
--- /dev/null
+++ b/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
+ )
+};
diff --git a/keyboards/anavi/macropad2/keymaps/volume/rules.mk b/keyboards/anavi/macropad2/keymaps/volume/rules.mk
new file mode 100644
index 0000000000..a8b1459346
--- /dev/null
+++ b/keyboards/anavi/macropad2/keymaps/volume/rules.mk
@@ -0,0 +1,2 @@
+EXTRAKEY_ENABLE = yes
+BACKLIGHT_ENABLE = no
diff --git a/keyboards/anavi/macropad2/keymaps/zoom/keymap.c b/keyboards/anavi/macropad2/keymaps/zoom/keymap.c
new file mode 100644
index 0000000000..4f681d17f1
--- /dev/null
+++ b/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();
+}
diff --git a/keyboards/anavi/macropad2/keymaps/zoom/rules.mk b/keyboards/anavi/macropad2/keymaps/zoom/rules.mk
new file mode 100644
index 0000000000..ab1e438182
--- /dev/null
+++ b/keyboards/anavi/macropad2/keymaps/zoom/rules.mk
@@ -0,0 +1 @@
+COMBO_ENABLE = yes
diff --git a/keyboards/anavi/macropad2/macropad2.c b/keyboards/anavi/macropad2/macropad2.c
new file mode 100644
index 0000000000..0a95d5d27c
--- /dev/null
+++ b/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"
diff --git a/keyboards/anavi/macropad2/macropad2.h b/keyboards/anavi/macropad2/macropad2.h
new file mode 100644
index 0000000000..f3d43ad4f8
--- /dev/null
+++ b/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 }, \
+}
diff --git a/keyboards/anavi/macropad2/readme.md b/keyboards/anavi/macropad2/readme.md
new file mode 100644
index 0000000000..0ef2fede47
--- /dev/null
+++ b/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)
diff --git a/keyboards/anavi/macropad2/rules.mk b/keyboards/anavi/macropad2/rules.mk
new file mode 100644
index 0000000000..9841425905
--- /dev/null
+++ b/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