Skip to content

Commit

Permalink
add legacy firmware for armada
Browse files Browse the repository at this point in the history
  • Loading branch information
RealET committed Jun 3, 2024
1 parent f9a3027 commit bf79fd3
Show file tree
Hide file tree
Showing 8 changed files with 678 additions and 0 deletions.
1 change: 1 addition & 0 deletions keyboards/armada/armada.c
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
#include "armada.h"
35 changes: 35 additions & 0 deletions keyboards/armada/armada.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
#pragma once

#include "quantum.h"

/* This is 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_armada( \
r06cn1, r06c00, r06c01, r06c02, r06c03, r06c04, r06c05, r06c06, r06c07, r06c09, r06c10, r06c11, r06c12, r06c13, r06c14, r06c15, r06c16, r06c17, r06c18, r06c19, r06c20, r06c21, r06c22, r06c23, \
r05cn1, r05c00, r05c01, r05c02, r05c03, r05c04, r05c05, r05c06, r05c07, r05c08, r05c09, r05c10, r05c11, r05c12, r05c13, r05c14, r05c15, r05c16, r05c17, r05c18, r05c19, r05c20, r05c21, r05c22, r05c23, \
r04cn1, r04c00, r04c01, r04c02, r04c03, r04c04, r04c05, r04c06, r04c07, r03c09, r04c09, r04c10, r04c11, r04c12, r04c13, r04c14, r04c15, r04c16, r04c17, r04c18, r04c19, r04c20, r04c21, r04c22, r04c23, \
r03cn1, r03c00, r03c01, r03c03, r03c04, r03c05, r03c06, r03c07, r03c08, r02c09, r03c10, r03c11, r03c12, r03c13, r03c14, r03c15, r03c16, r03c20, r03c21, r03c22, \
r02cn1, r02c00, r02c02, r02c03, r02c04, r02c05, r02c06, r02c07, r02c08, r02c10, r02c11, r02c12, r02c13, r02c14, r02c15, r02c16, r02c18, r02c20, r02c21, r02c22, r02c23, \
r01cn1, r01c00, r01c01, r01c02, r01c04, r01c07, r01c11, r01c13, r01c14, r01c15, r01c16, r01c17, r01c18, r01c19, r01c20, r01c22 \
) \
{ \
{ r01cn1, r01c00, r01c01, r01c02, KC_NO, r01c04, KC_NO, KC_NO, r01c07, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \
{ r02cn1, r02c00, KC_NO, r02c02, r02c03, r02c04, r02c05, r02c06, r02c07, r02c08, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \
{ r03cn1, r03c00, r03c01, KC_NO, r03c03, r03c04, r03c05, r03c06, r03c07, r03c08, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \
{ r04cn1, r04c00, r04c01, r04c02, r04c03, r04c04, r04c05, r04c06, r04c07, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \
{ r05cn1, r05c00, r05c01, r05c02, r05c03, r05c04, r05c05, r05c06, r05c07, r05c08, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \
{ r06cn1, r06c00, r06c01, r06c02, r06c03, r06c04, r06c05, r06c06, r06c07, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \
\
{ KC_NO, KC_NO, r01c11, KC_NO, r01c13, r01c14, r01c15, r01c16, r01c17, r01c18, r01c19, r01c20, KC_NO, r01c22, KC_NO }, \
{ r02c09, r02c10, r02c11, r02c12, r02c13, r02c14, r02c15, r02c16, KC_NO, r02c18, KC_NO, r02c20, r02c21, r02c22, r02c23 }, \
{ r03c09, r03c10, r03c11, r03c12, r03c13, r03c14, r03c15, r03c16, KC_NO, KC_NO, KC_NO, r03c20, r03c21, r03c22, KC_NO }, \
{ r04c09, r04c10, r04c11, r04c12, r04c13, r04c14, r04c15, r04c16, r04c17, r04c18, r04c19, r04c20, r04c21, r04c22, r04c23 }, \
{ r05c09, r05c10, r05c11, r05c12, r05c13, r05c14, r05c15, r05c16, r05c17, r05c18, r05c19, r05c20, r05c21, r05c22, r05c23 }, \
{ r06c09, r06c10, r06c11, r06c12, r06c13, r06c14, r06c15, r06c16, r06c17, r06c18, r06c19, r06c20, r06c21, r06c22, r06c23 } \
}
94 changes: 94 additions & 0 deletions keyboards/armada/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
#pragma once


/* USB Device descriptor parameter */
#define VENDOR_ID 0xFEED
#define PRODUCT_ID 0x0000
#define DEVICE_VER 0x0001
#define MANUFACTURER "Cyboard"
#define PRODUCT "Armada"

/* key matrix size */
#define MATRIX_ROWS 12
#define MATRIX_COLS 15

/*
* 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 { B3, B1, F7, F6, F5, F4 }
#define MATRIX_COL_PINS { D1, D0, D4, C6, D7, E6, B4, B5, B6, B2, B7, D5, C7, F1, F0 } //last 5 are unused on left hand
#define MATRIX_ROW_PINS_RIGHT { B3, B1, F7, F6, F5, F4 }
#define MATRIX_COL_PINS_RIGHT { D1, D0, D4, C6, D7, E6, B4, B5, B7, D5, C7, F1, F0, B6, B2 }

/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION ROW2COL

/*
* Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
*/
#define SOFT_SERIAL_PIN D2 // or D0, D1, D3, E6
#define EE_HANDS

//#define LED_NUM_LOCK_PIN B0
//#define LED_CAPS_LOCK_PIN B1
//#define LED_SCROLL_LOCK_PIN B2
//#define LED_COMPOSE_PIN B3
//#define LED_KANA_PIN B4

//#define BACKLIGHT_PIN B7
//#define BACKLIGHT_LEVELS 3
//#define BACKLIGHT_BREATHING

#define WS2812_DI_PIN D3
#ifdef WS2812_DI_PIN
# define RGBLED_NUM 131
# define RGBLIGHT_SPLIT
# define RGBLIGHT_SPLIT
# define RGBLED_SPLIT { 52, 79 }
//# define RGBLIGHT_HUE_STEP 8
//# define RGBLIGHT_SAT_STEP 8
//# define RGBLIGHT_VAL_STEP 8
# define RGBLIGHT_LIMIT_VAL 120 /* The maximum brightness level */
# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
/*== all animations enable ==*/
//# define RGBLIGHT_ANIMATIONS
/*== or choose animations ==*/
//# define RGBLIGHT_EFFECT_BREATHING
//# define RGBLIGHT_EFFECT_RAINBOW_MOOD
//# define RGBLIGHT_EFFECT_RAINBOW_SWIRL
//# define RGBLIGHT_EFFECT_SNAKE
//# define RGBLIGHT_EFFECT_KNIGHT
//# define RGBLIGHT_EFFECT_CHRISTMAS
//# define RGBLIGHT_EFFECT_STATIC_GRADIENT
//# define RGBLIGHT_EFFECT_RGB_TEST
//# define RGBLIGHT_EFFECT_ALTERNATING
/*== customize breathing effect ==*/
/*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
//# define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
/*==== use exp() and sin() ====*/
//# define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
//# define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
#endif

#define RGBLIGHT_LAYERS
#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF
//#define SPLIT_LAYER_STATE_ENABLE//this would be needed for non-caps/num/scroll lock layer statuses
#define SPLIT_LED_STATE_ENABLE

/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5

#define TAPPING_TERM_PER_KEY

/* Bootmagic Lite key configuration */
/* Bootmagic Lite key is F9 */
#define BOOTMAGIC_LITE_ROW 11
#define BOOTMAGIC_LITE_COLUMN 4
8 changes: 8 additions & 0 deletions keyboards/armada/keymaps/vial/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#pragma once

#define VIAL_KEYBOARD_UID {0xD5, 0x68, 0xF8, 0xDB, 0xDE, 0xF8, 0xB0, 0xF3}

#define VIAL_UNLOCK_COMBO_ROWS { 0, 2 }
#define VIAL_UNLOCK_COMBO_COLS { 0, 2 }

#define DYNAMIC_KEYMAP_LAYER_COUNT 2
73 changes: 73 additions & 0 deletions keyboards/armada/keymaps/vial/keymap.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
#include QMK_KEYBOARD_H

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

[0] = LAYOUT_armada(
KC_F11, KC_F12, KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, LT(1,KC_F5), KC_F6, LT(1,KC_F5), KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCROLL_LOCK, KC_PAUS, RGB_TOG, RGB_VAI, RGB_VAD, _______,
KC_F1, KC_F2, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM_LOCK, KC_PSLS, KC_PAST, KC_PMNS,
KC_F3, KC_F4, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS,
KC_F5, KC_F6, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENTER, KC_P4, KC_P5, KC_P6,
KC_F7, KC_F8, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT,
KC_F9, KC_F10, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT
),

[1] = LAYOUT_armada(
_______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
)
};

const rgblight_segment_t PROGMEM caps_lock_layer[] = RGBLIGHT_LAYER_SEGMENTS(
// {34, 1, HSV_CYAN}, // Light caps lock
// {39, 1, HSV_CYAN} // Light lshift
// below lights all alphas as well as caps lock
{22, 13, HSV_CYAN}, // Light 13 leds, Q through caps lock on left hand
{40, 6, HSV_CYAN}, // Light 6 leds, Z through N on left hand
{71, 11, HSV_CYAN}, // right hand alphas
{89, 3, HSV_CYAN} // right hand alphas
);

const rgblight_segment_t PROGMEM num_lock_layer[] = RGBLIGHT_LAYER_SEGMENTS(
{107, 1, HSV_CYAN}, //numlock key
{112, 3, HSV_CYAN},
{118, 3, HSV_CYAN},
{122, 3, HSV_CYAN},
{129, 2, HSV_CYAN}
);

const rgblight_segment_t PROGMEM scroll_lock_layer[] = RGBLIGHT_LAYER_SEGMENTS(
{102, 1, HSV_CYAN}
);

// Now define the array of layers. Later layers take precedence
const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST(
caps_lock_layer,
num_lock_layer,
scroll_lock_layer
);

void keyboard_post_init_user(void) {
// Enable the LED layers
rgblight_layers = my_rgb_layers;
}

bool led_update_user(led_t led_state) {
rgblight_set_layer_state(0, led_state.caps_lock);
rgblight_set_layer_state(1, led_state.num_lock);
rgblight_set_layer_state(2, led_state.scroll_lock);
rgblight_set();
return true;
}

uint16_t g_tapping_term(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case LT(1, KC_F5):
return 2000;
default:
return TAPPING_TERM;
}
}
7 changes: 7 additions & 0 deletions keyboards/armada/keymaps/vial/rules.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
VIA_ENABLE = yes
VIAL_ENABLE = yes
LTO_ENABLE = yes
QMK_SETTINGS = no
TAP_DANCE_ENABLE = no
COMBO_ENABLE = no
KEY_OVERRIDE_ENABLE = yes
Loading

0 comments on commit bf79fd3

Please sign in to comment.