Merge pull request #478 from keyboardio/hardware/atreus/variants

Add support for more Atreus variants
pull/490/head
Jesse Vincent 6 years ago committed by GitHub
commit d6cbd0e890
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -1,10 +1,18 @@
# Kaleidoscope-Hardware-Technomancy-Atreus # Kaleidoscope-Hardware-Technomancy-Atreus
This is a plugin for [Kaleidoscope][fw], that adds hardware support for the This is a plugin for [Kaleidoscope][fw], that adds hardware support for the
[Atreus][atreus]. Supported models include post-2016 PCB variants with an A* [Atreus][atreus]. Supports both the pre- and post-2016 variants with an A* MCU,
MCU, and the hand-wired variant from [FalbaTech][falba] with a Teensy2. the hand-wired variant from [FalbaTech][falba] with a Teensy2, and the legacy
teensy2 variant too.
PCBs prior to 2016, and the legacy teensy2 variants are not supported. To select which one to build for, you can either use the Arduino IDE, and select
the appropriate Pinout and CPU, or, if using `kaleidoscope-builder`, you can add
a `LOCAL_CFLAGS` setting to `.kaleidoscope-builder.conf`.
For the post-2016 variant (the default, also used by the handwired variant from
FalbaTech), if you want to explicitly select it, add
`-DKALEIDOSCOPE_HARDWARE_ATREUS_PINOUT_ASTAR=1`. For the pre-2016 variant, add
`-DKALEIDOSCOPE_HARDWARE_ATREUS_PINOUT_ASTAR_DOWN`. For the legacy teensy2 variant, add `-DKALEIDOSCOPE_HARDWARE_ATREUS_PINOUT_LEGACY_TEENSY2=1`.
To be able to flash the firmware, one will need the [Teensy Loader To be able to flash the firmware, one will need the [Teensy Loader
CLI][teensy_cli] tool in addition to Arduino, if using a Teensy. If using an A* CLI][teensy_cli] tool in addition to Arduino, if using a Teensy. If using an A*

@ -19,4 +19,11 @@
#pragma once #pragma once
#define KALEIDOSCOPE_WITH_ATMEGA_KEYBOARD 1 #define KALEIDOSCOPE_WITH_ATMEGA_KEYBOARD 1
#if !defined(KALEIDOSCOPE_HARDWARE_ATREUS_PINOUT_ASTAR) && \
!defined(KALEIDOSCOPE_HARDWARE_ATREUS_PINOUT_ASTAR_DOWN) && \
!defined(KALEIDOSCOPE_HARDWARE_ATREUS_PINOUT_LEGACY_TEENSY2)
#define KALEIDOSCOPE_HARDWARE_ATREUS_PINOUT_ASTAR 1
#endif
#include "kaleidoscope/hardware/technomancy/Atreus.h" #include "kaleidoscope/hardware/technomancy/Atreus.h"

@ -42,10 +42,27 @@ class Atreus: public kaleidoscope::hardware::ATMegaKeyboard {
public: public:
Atreus(void) {} Atreus(void) {}
#ifdef KALEIDOSCOPE_HARDWARE_ATREUS_PINOUT_ASTAR
ATMEGA_KEYBOARD_CONFIG( ATMEGA_KEYBOARD_CONFIG(
ROW_PIN_LIST({PIN_D0, PIN_D1, PIN_D3, PIN_D2}), ROW_PIN_LIST({PIN_D0, PIN_D1, PIN_D3, PIN_D2}),
COL_PIN_LIST({PIN_B4, PIN_B5, PIN_B6, PIN_B7, PIN_C6, PIN_D4, PIN_D6, PIN_D7, PIN_E6, PIN_F6, PIN_F7}) COL_PIN_LIST({PIN_D7, PIN_C6, PIN_B5, PIN_B4, PIN_E6, PIN_D4, PIN_B6, PIN_F6, PIN_F7, PIN_D6, PIN_B7})
); );
#endif
#ifdef KALEIDOSCOPE_HARDWARE_ATREUS_PINOUT_ASTAR_DOWN
ATMEGA_KEYBOARD_CONFIG(
ROW_PIN_LIST({PIN_D0, PIN_D1, PIN_D3, PIN_D2}),
COL_PIN_LIST({PIN_B7, PIN_D6, PIN_F7, PIN_F6, PIN_B6, PIN_D4, PIN_E6, PIN_B4, PIN_B5, PIN_C6, PIN_D7})
);
#endif
#ifdef KALEIDOSCOPE_HARDWARE_ATREUS_PINOUT_LEGACY_TEENSY2
ATMEGA_KEYBOARD_CONFIG(
ROW_PIN_LIST({PIN_D0, PIN_D1, PIN_D2, PIN_D3}),
COL_PIN_LIST({PIN_F6, PIN_F5, PIN_F4, PIN_B7, PIN_B6, PIN_B5, PIN_B4, PIN_B3, PIN_B2, PIN_B1, PIN_B0})
);
)
#endif
static constexpr int8_t led_count = 0; static constexpr int8_t led_count = 0;
@ -61,10 +78,10 @@ class Atreus: public kaleidoscope::hardware::ATMegaKeyboard {
R3C0, R3C1, R3C2, R3C3, R3C4, R3C5, R3C6, R3C7, R3C8, R3C9, R3C10, R3C11 \ R3C0, R3C1, R3C2, R3C3, R3C4, R3C5, R3C6, R3C7, R3C8, R3C9, R3C10, R3C11 \
) \ ) \
{ \ { \
{ R0C3, R0C2, R0C7, R0C11, R0C1, XXX, R0C10, R0C0, R0C4, R0C8, R0C9 }, \ { R0C0, R0C1, R0C2, R0C3, R0C4, XXX, R0C7, R0C8, R0C9, R0C10, R0C11 }, \
{ R1C3, R1C2, R1C7, R1C11, R1C1, XXX, R1C10, R1C0, R1C4, R1C8, R1C9 }, \ { R1C0, R1C1, R1C2, R1C3, R1C4, XXX, R1C7, R1C8, R1C9, R1C10, R1C11 }, \
{ R2C3, R2C2, R2C7, R2C11, R2C1, R3C5, R2C10, R2C0, R2C4, R2C8, R2C9 }, \ { R2C0, R2C1, R2C2, R2C3, R2C4, R3C5, R2C7, R2C8, R2C9, R2C10, R2C11 }, \
{ R3C3, R3C2, R3C7, R3C11, R3C1, R3C6, R3C10, R3C0, R3C4, R3C8, R3C9 } \ { R3C0, R3C1, R3C2, R3C3, R3C4, R3C6, R3C7, R3C8, R3C9, R3C10, R3C11 } \
} }
#define KEYMAP_STACKED( \ #define KEYMAP_STACKED( \
@ -79,10 +96,10 @@ class Atreus: public kaleidoscope::hardware::ATMegaKeyboard {
R3C6, R3C7, R3C8, R3C9, R3C10, R3C11 \ R3C6, R3C7, R3C8, R3C9, R3C10, R3C11 \
) \ ) \
{ \ { \
{ R0C3, R0C2, R0C7, R0C11, R0C1, XXX, R0C10, R0C0, R0C4, R0C8, R0C9 }, \ { R0C0, R0C1, R0C2, R0C3, R0C4, XXX, R0C7, R0C8, R0C9, R0C10, R0C11 }, \
{ R1C3, R1C2, R1C7, R1C11, R1C1, XXX, R1C10, R1C0, R1C4, R1C8, R1C9 }, \ { R1C0, R1C1, R1C2, R1C3, R1C4, XXX, R1C7, R1C8, R1C9, R1C10, R1C11 }, \
{ R2C3, R2C2, R2C7, R2C11, R2C1, R3C5, R2C10, R2C0, R2C4, R2C8, R2C9 }, \ { R2C0, R2C1, R2C2, R2C3, R2C4, R3C5, R2C7, R2C8, R2C9, R2C10, R2C11 }, \
{ R3C3, R3C2, R3C7, R3C11, R3C1, R3C6, R3C10, R3C0, R3C4, R3C8, R3C9 } \ { R3C0, R3C1, R3C2, R3C3, R3C4, R3C6, R3C7, R3C8, R3C9, R3C10, R3C11 } \
} }
} }
} }

Loading…
Cancel
Save