Эх сурвалжийг харах

Add config for Atreus based on Adafruit Feather BLE (#9140)

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Erovia <Erovia@users.noreply.github.com>
Randall Mason 4 жил өмнө
parent
commit
817de51c12

+ 2 - 0
keyboards/atreus/atreus.h

@@ -22,6 +22,8 @@
     #include "astar.h"
 #elif KEYBOARD_atreus_astar_mirrored
     #include "astar_mirrored.h"
+#elif KEYBOARD_atreus_feather
+    #include "feather.h"
 #elif KEYBOARD_atreus_teensy2
     #include "teensy2.h"
 #elif KEYBOARD_atreus_promicro

+ 40 - 0
keyboards/atreus/feather/config.h

@@ -0,0 +1,40 @@
+/* Copyright 2019
+ *
+ * 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"
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ *                  ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+*/
+// #define MATRIX_ROW_PINS { D0, D1, D3, D2 }
+// #define MATRIX_COL_PINS { D7, C6, B5, B4, E6, D4, B6, F6, F7, D6, B7 }
+#define MATRIX_ROW_PINS { B7, D6, C7, F5 }
+#define MATRIX_COL_PINS { D7, B5, D1, D0, C6, B6, F0, D2, D3, F4, F1 }
+#define UNUSED_PINS
+
+/* COL2ROW, ROW2COL*/
+#define DIODE_DIRECTION COL2ROW
+
+#define OUTPUT_AUTO_ENABLE

+ 16 - 0
keyboards/atreus/feather/feather.c

@@ -0,0 +1,16 @@
+/* Copyright 2019
+ *
+ * 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 "feather.h"

+ 17 - 0
keyboards/atreus/feather/feather.h

@@ -0,0 +1,17 @@
+/* Copyright 2019
+ *
+ * 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

+ 60 - 0
keyboards/atreus/feather/readme.md

@@ -0,0 +1,60 @@
+# Bluetreus - a conversion of an Atreus to use a Bluetooth microcontroller
+
+I have created a keymap for this with Bluetooth control on layer 2 so that you
+can switch the keyboard between auto, USB only, and Bluetooth only.  I'm
+working on fixing turning on auto by default, but have still not succeeded.
+
+To build it and flash it, do:
+
+```
+make atreus/feather:clash:flash
+```
+
+## Wiring it up
+Physically, SDA to pin 13 on the new board are connected to what 9-1 were
+connected to on the old board.  Pin 0 from the old board is brought over to the
+other side with a jumper wire to pin a2. TX, RX, A5, A4, A3 on the new board
+connect to what a0 to 12 connected to on the old board. GND attaches to g.
+You have to bend some of the pins at about a 45 degree angle to make them line up.
+Here's a side view of what the most bent pins look like:
+![Side View](https://i.imgur.com/S6ngibe.jpg)
+Here's a top view, USB port down, wireless antenna up. Note: the USB port orientation is opposite what it used to be.
+![Top View](https://i.imgur.com/DBjkxU2.jpg)
+
+### New board:
+This is an [Adafruit Feather BLE](https://learn.adafruit.com/adafruit-feather-32u4-bluefruit-le/pinouts)
+
+|QMK | Screen Print | Feather     |SCREEN|QMK REF  |
+|----|--------------|-------------|------|---------|
+| D1 | SDA          | RADIO       | dfu  |         |
+| D0 | SCL          |             | 1/TX | D3      |
+| C6 | 5            |             | 0/RX | D2      |
+| D7 | 6            |             | MISO | B3/Blue |
+| B5 | 9            |             | MOSI | B2/Blue |
+| B6 | 10           |             | SCK  | B1/Blue |
+| B7 | 11           |             | A5   | F0      |
+| D6 | 12           |             | a4   | F1      |
+| C7 | 13           |             | a3   | F4      |
+|    | usb          |             | a2   | F5      |
+|    | e0           |             | a1   | F6      |
+|    | bat          |             | a0   |         |
+|    | Battery      |             | GND  |         |
+|    | Connector    |             | ARf  |         |
+|    |  |    |      | USB PORT    | 3V   |         |
+|    |  v    v      |             | RST  |         |
+
+### Old board:
+This is an A Star, non-flipped
+
+|QMK| Scrn | A   | Scrn|QMK |
+|---|------|-----|-----|----|
+| b5| 9    | USB | a0  | F7 |
+| b4| 8    | port| a1  | F6 |
+| e6| 7    |     | 10  | B6 |
+| d7| 6    |     | 11  | B7 |
+| c6| 5    |     | 12  | D6 |
+| d4| 4    |     | rst | RST|
+| d0| 3    |     | 3v  | x  |
+| d1| 2    |     | 5v  | x  |
+| d3| 1    |     | g   | G  |
+| d2| 0    |     | v   | x  |

+ 21 - 0
keyboards/atreus/feather/rules.mk

@@ -0,0 +1,21 @@
+# MCU name
+MCU = atmega32u4
+
+# Processor frequency
+F_CPU = 8000000
+
+# Bootloader selection
+#   Teensy       halfkay
+#   Pro Micro    caterina
+#   Atmel DFU    atmel-dfu
+#   LUFA DFU     lufa-dfu
+#   QMK DFU      qmk-dfu
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
+BOOTLOADER = caterina
+
+# Build Options
+#   change yes to no to disable
+#
+BLUETOOTH = AdafruitBLE
+CONSOLE_ENABLE = no

+ 41 - 0
keyboards/atreus/keymaps/clash/keymap.c

@@ -0,0 +1,41 @@
+#include QMK_KEYBOARD_H
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+#define _QW 0
+#define _RS 1
+#define _LW 2
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+  [_QW] = LAYOUT( /* Qwerty */
+    KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,                      KC_Y,    KC_U,    KC_I,    KC_O,    KC_P    ,
+    KC_A,    KC_S,    KC_D,    KC_F,    KC_G,                      KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN ,
+    KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,                      KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH ,
+    KC_ESC, KC_TAB, KC_LGUI,  KC_LSFT, KC_BSPC,  KC_LCTL, KC_LALT, KC_SPC,  MO(_RS), KC_MINS, KC_QUOT, KC_ENT
+  ),
+
+  /*
+   *  !       @     up     {    }        ||     pgup    7     8     9    *
+   *  #     left   down  right  $        ||     pgdn    4     5     6    +
+   *  [       ]      (     )    &        ||       `     1     2     3    \
+   * lower  insert super shift del  ctrl || alt space   fn    .     0    =
+   */
+  [_RS] = LAYOUT( /* [> RAISE <] */
+    KC_EXLM, KC_AT,   KC_UP,   KC_LCBR, KC_RCBR,                   KC_PGUP, KC_7,    KC_8,   KC_9, KC_ASTR ,
+    KC_HASH, KC_LEFT, KC_DOWN, KC_RGHT, KC_DLR,                    KC_PGDN, KC_4,    KC_5,   KC_6, KC_PLUS ,
+    KC_LBRC, KC_RBRC, KC_LPRN, KC_RPRN, KC_AMPR,                   KC_GRV,  KC_1,    KC_2,   KC_3, KC_BSLS ,
+    TG(_LW), KC_INS,  KC_LGUI, KC_LSFT, KC_DEL,  KC_LCTL, KC_LALT, KC_SPC,  KC_TRNS, KC_DOT, KC_0, KC_EQL  ),
+  /*
+   * insert home  mup  end   pgup       ||     mouse1  F7    F8    F9   F10
+   * USB    mlft  mdwn mrght pgdn       ||     mouse2  F4    F5    F6   F11
+   * Blue  volup             reset      ||     mouse3  F1    F2    F3   F12
+   * auto  voldn  super shift bksp ctrl || alt space   L0  prtsc scroll pause
+   */
+  [_LW] = LAYOUT( /* [> LOWER <] */
+    KC_INS,   KC_HOME, KC_MS_U, KC_END,  KC_PGUP,                   KC_BTN1, KC_F7,   KC_F8,   KC_F9,   KC_F10  ,
+    OUT_USB,  KC_MS_L, KC_MS_D, KC_MS_R, KC_PGDN,                   KC_BTN2, KC_F4,   KC_F5,   KC_F6,   KC_F11  ,
+    OUT_BT,   KC_VOLU, KC_NO,   KC_NO,   RESET,                     KC_BTN3, KC_F1,   KC_F2,   KC_F3,   KC_F12  ,
+    OUT_AUTO, KC_VOLD, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_LALT, KC_SPC,  TO(_QW), KC_PSCR, KC_SLCK, KC_PAUS )
+};