aboutsummaryrefslogtreecommitdiff
path: root/keyboards/cannonkeys
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/cannonkeys')
-rw-r--r--keyboards/cannonkeys/adelie/adelie.c17
-rw-r--r--keyboards/cannonkeys/adelie/adelie.h42
-rw-r--r--keyboards/cannonkeys/adelie/config.h117
-rw-r--r--keyboards/cannonkeys/adelie/info.json68
-rw-r--r--keyboards/cannonkeys/adelie/keymaps/default/keymap.c96
-rw-r--r--keyboards/cannonkeys/adelie/keymaps/via/keymap.c96
-rw-r--r--keyboards/cannonkeys/adelie/keymaps/via/rules.mk1
-rw-r--r--keyboards/cannonkeys/adelie/readme.md15
-rw-r--r--keyboards/cannonkeys/adelie/rules.mk18
-rw-r--r--keyboards/cannonkeys/aella/aella.c1
-rw-r--r--keyboards/cannonkeys/aella/aella.h19
-rw-r--r--keyboards/cannonkeys/aella/chconf.h31
-rw-r--r--keyboards/cannonkeys/aella/config.h63
-rw-r--r--keyboards/cannonkeys/aella/info.json10
-rw-r--r--keyboards/cannonkeys/aella/keymaps/default/keymap.c48
-rw-r--r--keyboards/cannonkeys/aella/keymaps/via/keymap.c71
-rw-r--r--keyboards/cannonkeys/aella/keymaps/via/rules.mk1
-rw-r--r--keyboards/cannonkeys/aella/readme.md10
-rw-r--r--keyboards/cannonkeys/aella/rules.mk24
-rw-r--r--keyboards/cannonkeys/an_c/an_c.c1
-rw-r--r--keyboards/cannonkeys/an_c/an_c.h47
-rw-r--r--keyboards/cannonkeys/an_c/chconf.h31
-rw-r--r--keyboards/cannonkeys/an_c/config.h78
-rw-r--r--keyboards/cannonkeys/an_c/halconf.h31
-rw-r--r--keyboards/cannonkeys/an_c/info.json13
-rw-r--r--keyboards/cannonkeys/an_c/keymaps/default/keymap.c43
-rw-r--r--keyboards/cannonkeys/an_c/keymaps/tsangan/keymap.c44
-rw-r--r--keyboards/cannonkeys/an_c/keymaps/via/keymap.c43
-rw-r--r--keyboards/cannonkeys/an_c/keymaps/via/rules.mk1
-rw-r--r--keyboards/cannonkeys/an_c/mcuconf.h34
-rw-r--r--keyboards/cannonkeys/an_c/readme.md12
-rw-r--r--keyboards/cannonkeys/an_c/rules.mk26
-rw-r--r--keyboards/cannonkeys/atlas/atlas.c1
-rw-r--r--keyboards/cannonkeys/atlas/atlas.h48
-rw-r--r--keyboards/cannonkeys/atlas/chconf.h31
-rw-r--r--keyboards/cannonkeys/atlas/config.h72
-rw-r--r--keyboards/cannonkeys/atlas/halconf.h31
-rw-r--r--keyboards/cannonkeys/atlas/info.json196
-rw-r--r--keyboards/cannonkeys/atlas/keymaps/default/keymap.c94
-rw-r--r--keyboards/cannonkeys/atlas/keymaps/via/keymap.c102
-rw-r--r--keyboards/cannonkeys/atlas/keymaps/via/rules.mk1
-rw-r--r--keyboards/cannonkeys/atlas/mcuconf.h34
-rw-r--r--keyboards/cannonkeys/atlas/readme.md10
-rw-r--r--keyboards/cannonkeys/atlas/rules.mk18
-rw-r--r--keyboards/cannonkeys/atlas_alps/atlas_alps.c17
-rw-r--r--keyboards/cannonkeys/atlas_alps/atlas_alps.h33
-rw-r--r--keyboards/cannonkeys/atlas_alps/config.h59
-rw-r--r--keyboards/cannonkeys/atlas_alps/info.json10
-rw-r--r--keyboards/cannonkeys/atlas_alps/keymaps/default/config.h19
-rw-r--r--keyboards/cannonkeys/atlas_alps/keymaps/default/keymap.c107
-rw-r--r--keyboards/cannonkeys/atlas_alps/keymaps/default/readme.md2
-rw-r--r--keyboards/cannonkeys/atlas_alps/keymaps/via/keymap.c107
-rw-r--r--keyboards/cannonkeys/atlas_alps/keymaps/via/rules.mk1
-rw-r--r--keyboards/cannonkeys/atlas_alps/readme.md13
-rw-r--r--keyboards/cannonkeys/atlas_alps/rules.mk20
-rw-r--r--keyboards/cannonkeys/balance/balance.c27
-rw-r--r--keyboards/cannonkeys/balance/balance.h33
-rw-r--r--keyboards/cannonkeys/balance/chconf.h31
-rw-r--r--keyboards/cannonkeys/balance/config.h71
-rw-r--r--keyboards/cannonkeys/balance/halconf.h31
-rw-r--r--keyboards/cannonkeys/balance/info.json104
-rw-r--r--keyboards/cannonkeys/balance/keymaps/default/keymap.c46
-rw-r--r--keyboards/cannonkeys/balance/keymaps/via/keymap.c56
-rw-r--r--keyboards/cannonkeys/balance/keymaps/via/rules.mk1
-rw-r--r--keyboards/cannonkeys/balance/mcuconf.h34
-rw-r--r--keyboards/cannonkeys/balance/readme.md10
-rw-r--r--keyboards/cannonkeys/balance/rules.mk25
-rw-r--r--keyboards/cannonkeys/chimera65/chconf.h31
-rw-r--r--keyboards/cannonkeys/chimera65/chimera65.c1
-rw-r--r--keyboards/cannonkeys/chimera65/chimera65.h17
-rw-r--r--keyboards/cannonkeys/chimera65/config.h70
-rw-r--r--keyboards/cannonkeys/chimera65/halconf.h29
-rw-r--r--keyboards/cannonkeys/chimera65/info.json90
-rw-r--r--keyboards/cannonkeys/chimera65/keymaps/default/keymap.c44
-rw-r--r--keyboards/cannonkeys/chimera65/keymaps/via/keymap.c44
-rw-r--r--keyboards/cannonkeys/chimera65/keymaps/via/rules.mk1
-rw-r--r--keyboards/cannonkeys/chimera65/mcuconf.h34
-rw-r--r--keyboards/cannonkeys/chimera65/readme.md12
-rw-r--r--keyboards/cannonkeys/chimera65/rules.mk21
-rw-r--r--keyboards/cannonkeys/db60/chconf.h31
-rw-r--r--keyboards/cannonkeys/db60/config.h77
-rw-r--r--keyboards/cannonkeys/db60/db60.c1
-rw-r--r--keyboards/cannonkeys/db60/db60.h23
-rw-r--r--keyboards/cannonkeys/db60/halconf.h31
-rw-r--r--keyboards/cannonkeys/db60/hotswap/config.h21
-rw-r--r--keyboards/cannonkeys/db60/hotswap/hotswap.h63
-rw-r--r--keyboards/cannonkeys/db60/hotswap/readme.md12
-rw-r--r--keyboards/cannonkeys/db60/hotswap/rules.mk1
-rw-r--r--keyboards/cannonkeys/db60/info.json17
-rw-r--r--keyboards/cannonkeys/db60/j02/config.h21
-rw-r--r--keyboards/cannonkeys/db60/j02/j02.h77
-rw-r--r--keyboards/cannonkeys/db60/j02/readme.md12
-rw-r--r--keyboards/cannonkeys/db60/j02/rules.mk1
-rw-r--r--keyboards/cannonkeys/db60/keymaps/default/keymap.c45
-rw-r--r--keyboards/cannonkeys/db60/keymaps/iso/keymap.c45
-rw-r--r--keyboards/cannonkeys/db60/keymaps/tsangan/keymap.c46
-rw-r--r--keyboards/cannonkeys/db60/keymaps/via/keymap.c63
-rw-r--r--keyboards/cannonkeys/db60/keymaps/via/rules.mk1
-rw-r--r--keyboards/cannonkeys/db60/mcuconf.h34
-rw-r--r--keyboards/cannonkeys/db60/readme.md25
-rw-r--r--keyboards/cannonkeys/db60/rev2/config.h21
-rw-r--r--keyboards/cannonkeys/db60/rev2/readme.md12
-rw-r--r--keyboards/cannonkeys/db60/rev2/rev2.h77
-rw-r--r--keyboards/cannonkeys/db60/rev2/rules.mk1
-rw-r--r--keyboards/cannonkeys/db60/rules.mk26
-rw-r--r--keyboards/cannonkeys/devastatingtkl/chconf.h31
-rw-r--r--keyboards/cannonkeys/devastatingtkl/config.h78
-rw-r--r--keyboards/cannonkeys/devastatingtkl/devastatingtkl.c1
-rw-r--r--keyboards/cannonkeys/devastatingtkl/devastatingtkl.h19
-rw-r--r--keyboards/cannonkeys/devastatingtkl/halconf.h31
-rw-r--r--keyboards/cannonkeys/devastatingtkl/info.json11
-rw-r--r--keyboards/cannonkeys/devastatingtkl/keymaps/default/keymap.c41
-rw-r--r--keyboards/cannonkeys/devastatingtkl/keymaps/via/keymap.c59
-rw-r--r--keyboards/cannonkeys/devastatingtkl/keymaps/via/rules.mk1
-rw-r--r--keyboards/cannonkeys/devastatingtkl/mcuconf.h34
-rw-r--r--keyboards/cannonkeys/devastatingtkl/readme.md12
-rw-r--r--keyboards/cannonkeys/devastatingtkl/rules.mk24
-rw-r--r--keyboards/cannonkeys/instant60/chconf.h31
-rw-r--r--keyboards/cannonkeys/instant60/config.h78
-rw-r--r--keyboards/cannonkeys/instant60/halconf.h31
-rw-r--r--keyboards/cannonkeys/instant60/info.json13
-rw-r--r--keyboards/cannonkeys/instant60/instant60.c1
-rw-r--r--keyboards/cannonkeys/instant60/instant60.h47
-rw-r--r--keyboards/cannonkeys/instant60/keymaps/default/keymap.c47
-rw-r--r--keyboards/cannonkeys/instant60/keymaps/tsangan/keymap.c48
-rw-r--r--keyboards/cannonkeys/instant60/keymaps/via/keymap.c43
-rw-r--r--keyboards/cannonkeys/instant60/keymaps/via/rules.mk1
-rw-r--r--keyboards/cannonkeys/instant60/keymaps/via_standard/keymap.c43
-rw-r--r--keyboards/cannonkeys/instant60/keymaps/via_standard/rules.mk1
-rw-r--r--keyboards/cannonkeys/instant60/mcuconf.h34
-rw-r--r--keyboards/cannonkeys/instant60/readme.md14
-rw-r--r--keyboards/cannonkeys/instant60/rules.mk26
-rw-r--r--keyboards/cannonkeys/instant65/chconf.h31
-rw-r--r--keyboards/cannonkeys/instant65/config.h79
-rw-r--r--keyboards/cannonkeys/instant65/halconf.h29
-rw-r--r--keyboards/cannonkeys/instant65/info.json10
-rw-r--r--keyboards/cannonkeys/instant65/instant65.c1
-rw-r--r--keyboards/cannonkeys/instant65/instant65.h17
-rw-r--r--keyboards/cannonkeys/instant65/keymaps/default/keymap.c46
-rw-r--r--keyboards/cannonkeys/instant65/keymaps/via/keymap.c64
-rw-r--r--keyboards/cannonkeys/instant65/keymaps/via/rules.mk1
-rw-r--r--keyboards/cannonkeys/instant65/mcuconf.h31
-rw-r--r--keyboards/cannonkeys/instant65/readme.md12
-rw-r--r--keyboards/cannonkeys/instant65/rules.mk25
-rw-r--r--keyboards/cannonkeys/iron165/chconf.h31
-rw-r--r--keyboards/cannonkeys/iron165/config.h71
-rw-r--r--keyboards/cannonkeys/iron165/halconf.h27
-rw-r--r--keyboards/cannonkeys/iron165/info.json11
-rw-r--r--keyboards/cannonkeys/iron165/iron165.c1
-rw-r--r--keyboards/cannonkeys/iron165/iron165.h17
-rw-r--r--keyboards/cannonkeys/iron165/keymaps/default/keymap.c47
-rw-r--r--keyboards/cannonkeys/iron165/keymaps/via/keymap.c64
-rw-r--r--keyboards/cannonkeys/iron165/keymaps/via/rules.mk2
-rw-r--r--keyboards/cannonkeys/iron165/mcuconf.h28
-rw-r--r--keyboards/cannonkeys/iron165/readme.md12
-rw-r--r--keyboards/cannonkeys/iron165/rules.mk21
-rw-r--r--keyboards/cannonkeys/obliterated75/chconf.h31
-rw-r--r--keyboards/cannonkeys/obliterated75/config.h79
-rw-r--r--keyboards/cannonkeys/obliterated75/halconf.h29
-rw-r--r--keyboards/cannonkeys/obliterated75/info.json10
-rw-r--r--keyboards/cannonkeys/obliterated75/keymaps/default/keymap.c48
-rw-r--r--keyboards/cannonkeys/obliterated75/keymaps/via/keymap.c71
-rw-r--r--keyboards/cannonkeys/obliterated75/keymaps/via/rules.mk1
-rw-r--r--keyboards/cannonkeys/obliterated75/mcuconf.h31
-rw-r--r--keyboards/cannonkeys/obliterated75/obliterated75.c1
-rw-r--r--keyboards/cannonkeys/obliterated75/obliterated75.h19
-rw-r--r--keyboards/cannonkeys/obliterated75/readme.md10
-rw-r--r--keyboards/cannonkeys/obliterated75/rules.mk25
-rw-r--r--keyboards/cannonkeys/onyx/chconf.h41
-rw-r--r--keyboards/cannonkeys/onyx/config.h69
-rw-r--r--keyboards/cannonkeys/onyx/halconf.h31
-rw-r--r--keyboards/cannonkeys/onyx/info.json94
-rw-r--r--keyboards/cannonkeys/onyx/keymaps/default/keymap.c39
-rw-r--r--keyboards/cannonkeys/onyx/keymaps/via/keymap.c59
-rw-r--r--keyboards/cannonkeys/onyx/keymaps/via/rules.mk1
-rw-r--r--keyboards/cannonkeys/onyx/mcuconf.h34
-rw-r--r--keyboards/cannonkeys/onyx/onyx.c17
-rw-r--r--keyboards/cannonkeys/onyx/onyx.h32
-rw-r--r--keyboards/cannonkeys/onyx/readme.md12
-rw-r--r--keyboards/cannonkeys/onyx/rules.mk24
-rw-r--r--keyboards/cannonkeys/ortho48/chconf.h29
-rw-r--r--keyboards/cannonkeys/ortho48/config.h74
-rw-r--r--keyboards/cannonkeys/ortho48/halconf.h29
-rw-r--r--keyboards/cannonkeys/ortho48/info.json110
-rw-r--r--keyboards/cannonkeys/ortho48/keymaps/default/keymap.c88
-rw-r--r--keyboards/cannonkeys/ortho48/keymaps/via/keymap.c49
-rw-r--r--keyboards/cannonkeys/ortho48/keymaps/via/rules.mk2
-rw-r--r--keyboards/cannonkeys/ortho48/mcuconf.h28
-rw-r--r--keyboards/cannonkeys/ortho48/ortho48.c3
-rw-r--r--keyboards/cannonkeys/ortho48/ortho48.h29
-rw-r--r--keyboards/cannonkeys/ortho48/readme.md12
-rw-r--r--keyboards/cannonkeys/ortho48/rules.mk25
-rw-r--r--keyboards/cannonkeys/ortho60/chconf.h29
-rw-r--r--keyboards/cannonkeys/ortho60/config.h74
-rw-r--r--keyboards/cannonkeys/ortho60/halconf.h29
-rw-r--r--keyboards/cannonkeys/ortho60/info.json134
-rw-r--r--keyboards/cannonkeys/ortho60/keymaps/default/keymap.c97
-rw-r--r--keyboards/cannonkeys/ortho60/keymaps/via/keymap.c53
-rw-r--r--keyboards/cannonkeys/ortho60/keymaps/via/rules.mk2
-rw-r--r--keyboards/cannonkeys/ortho60/mcuconf.h28
-rw-r--r--keyboards/cannonkeys/ortho60/ortho60.c3
-rw-r--r--keyboards/cannonkeys/ortho60/ortho60.h33
-rw-r--r--keyboards/cannonkeys/ortho60/readme.md12
-rw-r--r--keyboards/cannonkeys/ortho60/rules.mk25
-rw-r--r--keyboards/cannonkeys/ortho75/chconf.h29
-rw-r--r--keyboards/cannonkeys/ortho75/config.h77
-rw-r--r--keyboards/cannonkeys/ortho75/halconf.h29
-rw-r--r--keyboards/cannonkeys/ortho75/info.json86
-rw-r--r--keyboards/cannonkeys/ortho75/keymaps/default/keymap.c72
-rw-r--r--keyboards/cannonkeys/ortho75/mcuconf.h28
-rw-r--r--keyboards/cannonkeys/ortho75/ortho75.c51
-rw-r--r--keyboards/cannonkeys/ortho75/ortho75.h18
-rw-r--r--keyboards/cannonkeys/ortho75/readme.md12
-rw-r--r--keyboards/cannonkeys/ortho75/rules.mk26
-rw-r--r--keyboards/cannonkeys/practice60/chconf.h29
-rw-r--r--keyboards/cannonkeys/practice60/config.h74
-rw-r--r--keyboards/cannonkeys/practice60/halconf.h29
-rw-r--r--keyboards/cannonkeys/practice60/info.json72
-rw-r--r--keyboards/cannonkeys/practice60/keymaps/default/keymap.c47
-rw-r--r--keyboards/cannonkeys/practice60/keymaps/via/keymap.c35
-rw-r--r--keyboards/cannonkeys/practice60/keymaps/via/rules.mk1
-rw-r--r--keyboards/cannonkeys/practice60/mcuconf.h28
-rw-r--r--keyboards/cannonkeys/practice60/practice60.c2
-rw-r--r--keyboards/cannonkeys/practice60/practice60.h17
-rw-r--r--keyboards/cannonkeys/practice60/readme.md19
-rw-r--r--keyboards/cannonkeys/practice60/rules.mk27
-rw-r--r--keyboards/cannonkeys/practice65/chconf.h29
-rw-r--r--keyboards/cannonkeys/practice65/config.h74
-rw-r--r--keyboards/cannonkeys/practice65/halconf.h29
-rw-r--r--keyboards/cannonkeys/practice65/info.json10
-rw-r--r--keyboards/cannonkeys/practice65/keymaps/default/keymap.c47
-rw-r--r--keyboards/cannonkeys/practice65/mcuconf.h28
-rw-r--r--keyboards/cannonkeys/practice65/practice65.c2
-rw-r--r--keyboards/cannonkeys/practice65/practice65.h19
-rw-r--r--keyboards/cannonkeys/practice65/readme.md12
-rw-r--r--keyboards/cannonkeys/practice65/rules.mk22
-rw-r--r--keyboards/cannonkeys/rekt1800/chconf.h31
-rw-r--r--keyboards/cannonkeys/rekt1800/config.h73
-rw-r--r--keyboards/cannonkeys/rekt1800/halconf.h29
-rw-r--r--keyboards/cannonkeys/rekt1800/info.json10
-rw-r--r--keyboards/cannonkeys/rekt1800/keymaps/default/keymap.c48
-rw-r--r--keyboards/cannonkeys/rekt1800/keymaps/via/keymap.c58
-rw-r--r--keyboards/cannonkeys/rekt1800/keymaps/via/rules.mk1
-rw-r--r--keyboards/cannonkeys/rekt1800/mcuconf.h31
-rw-r--r--keyboards/cannonkeys/rekt1800/readme.md10
-rw-r--r--keyboards/cannonkeys/rekt1800/rekt1800.c1
-rw-r--r--keyboards/cannonkeys/rekt1800/rekt1800.h20
-rw-r--r--keyboards/cannonkeys/rekt1800/rules.mk23
-rw-r--r--keyboards/cannonkeys/sagittarius/chconf.h41
-rw-r--r--keyboards/cannonkeys/sagittarius/config.h84
-rw-r--r--keyboards/cannonkeys/sagittarius/halconf.h29
-rw-r--r--keyboards/cannonkeys/sagittarius/info.json10
-rw-r--r--keyboards/cannonkeys/sagittarius/keymaps/default/keymap.c46
-rw-r--r--keyboards/cannonkeys/sagittarius/keymaps/via/keymap.c46
-rw-r--r--keyboards/cannonkeys/sagittarius/keymaps/via/rules.mk1
-rw-r--r--keyboards/cannonkeys/sagittarius/mcuconf.h31
-rw-r--r--keyboards/cannonkeys/sagittarius/readme.md10
-rw-r--r--keyboards/cannonkeys/sagittarius/rules.mk25
-rw-r--r--keyboards/cannonkeys/sagittarius/sagittarius.c17
-rw-r--r--keyboards/cannonkeys/sagittarius/sagittarius.h38
-rw-r--r--keyboards/cannonkeys/satisfaction75/.noci0
-rw-r--r--keyboards/cannonkeys/satisfaction75/chconf.h31
-rw-r--r--keyboards/cannonkeys/satisfaction75/config.h111
-rw-r--r--keyboards/cannonkeys/satisfaction75/halconf.h33
-rw-r--r--keyboards/cannonkeys/satisfaction75/keymaps/boy_314/config.h3
-rw-r--r--keyboards/cannonkeys/satisfaction75/keymaps/boy_314/keymap.c37
-rw-r--r--keyboards/cannonkeys/satisfaction75/keymaps/boy_314/readme.md3
-rw-r--r--keyboards/cannonkeys/satisfaction75/keymaps/boy_314/rules.mk3
-rw-r--r--keyboards/cannonkeys/satisfaction75/keymaps/default/keymap.c37
-rw-r--r--keyboards/cannonkeys/satisfaction75/keymaps/jae/keymap.c37
-rw-r--r--keyboards/cannonkeys/satisfaction75/keymaps/tester/keymap.c37
-rw-r--r--keyboards/cannonkeys/satisfaction75/keymaps/tester/rules.mk1
-rw-r--r--keyboards/cannonkeys/satisfaction75/keymaps/via/keymap.c53
-rw-r--r--keyboards/cannonkeys/satisfaction75/keymaps/via/rules.mk1
-rw-r--r--keyboards/cannonkeys/satisfaction75/led.c254
-rw-r--r--keyboards/cannonkeys/satisfaction75/led_custom.h7
-rw-r--r--keyboards/cannonkeys/satisfaction75/mcuconf.h40
-rw-r--r--keyboards/cannonkeys/satisfaction75/prototype/.noci0
-rw-r--r--keyboards/cannonkeys/satisfaction75/prototype/info.json10
-rw-r--r--keyboards/cannonkeys/satisfaction75/prototype/prototype.h36
-rw-r--r--keyboards/cannonkeys/satisfaction75/prototype/rules.mk0
-rw-r--r--keyboards/cannonkeys/satisfaction75/readme.md12
-rw-r--r--keyboards/cannonkeys/satisfaction75/rev1/info.json30
-rw-r--r--keyboards/cannonkeys/satisfaction75/rev1/rev1.h108
-rw-r--r--keyboards/cannonkeys/satisfaction75/rev1/rules.mk0
-rw-r--r--keyboards/cannonkeys/satisfaction75/rules.mk32
-rw-r--r--keyboards/cannonkeys/satisfaction75/satisfaction75.c435
-rw-r--r--keyboards/cannonkeys/satisfaction75/satisfaction75.h123
-rw-r--r--keyboards/cannonkeys/satisfaction75/satisfaction_encoder.c238
-rw-r--r--keyboards/cannonkeys/satisfaction75/satisfaction_oled.c267
-rw-r--r--keyboards/cannonkeys/savage65/chconf.h31
-rw-r--r--keyboards/cannonkeys/savage65/config.h79
-rw-r--r--keyboards/cannonkeys/savage65/halconf.h29
-rw-r--r--keyboards/cannonkeys/savage65/info.json23
-rw-r--r--keyboards/cannonkeys/savage65/keymaps/default/keymap.c46
-rw-r--r--keyboards/cannonkeys/savage65/keymaps/via/keymap.c47
-rw-r--r--keyboards/cannonkeys/savage65/keymaps/via/rules.mk4
-rw-r--r--keyboards/cannonkeys/savage65/mcuconf.h31
-rw-r--r--keyboards/cannonkeys/savage65/readme.md12
-rw-r--r--keyboards/cannonkeys/savage65/rules.mk26
-rw-r--r--keyboards/cannonkeys/savage65/savage65.c1
-rw-r--r--keyboards/cannonkeys/savage65/savage65.h73
-rw-r--r--keyboards/cannonkeys/tmov2/chconf.h31
-rw-r--r--keyboards/cannonkeys/tmov2/config.h78
-rw-r--r--keyboards/cannonkeys/tmov2/halconf.h31
-rw-r--r--keyboards/cannonkeys/tmov2/info.json10
-rw-r--r--keyboards/cannonkeys/tmov2/keymaps/brandonschlack/keymap.c173
-rw-r--r--keyboards/cannonkeys/tmov2/keymaps/default/keymap.c60
-rw-r--r--keyboards/cannonkeys/tmov2/keymaps/via/keymap.c60
-rw-r--r--keyboards/cannonkeys/tmov2/keymaps/via/rules.mk4
-rw-r--r--keyboards/cannonkeys/tmov2/mcuconf.h34
-rw-r--r--keyboards/cannonkeys/tmov2/readme.md12
-rw-r--r--keyboards/cannonkeys/tmov2/rules.mk24
-rw-r--r--keyboards/cannonkeys/tmov2/tmov2.c1
-rw-r--r--keyboards/cannonkeys/tmov2/tmov2.h15
-rw-r--r--keyboards/cannonkeys/tsukuyomi/chconf.h31
-rw-r--r--keyboards/cannonkeys/tsukuyomi/config.h79
-rw-r--r--keyboards/cannonkeys/tsukuyomi/halconf.h29
-rw-r--r--keyboards/cannonkeys/tsukuyomi/info.json10
-rw-r--r--keyboards/cannonkeys/tsukuyomi/keymaps/default/keymap.c46
-rw-r--r--keyboards/cannonkeys/tsukuyomi/keymaps/via/keymap.c65
-rw-r--r--keyboards/cannonkeys/tsukuyomi/keymaps/via/rules.mk1
-rw-r--r--keyboards/cannonkeys/tsukuyomi/mcuconf.h31
-rw-r--r--keyboards/cannonkeys/tsukuyomi/readme.md12
-rw-r--r--keyboards/cannonkeys/tsukuyomi/rules.mk25
-rw-r--r--keyboards/cannonkeys/tsukuyomi/tsukuyomi.c17
-rw-r--r--keyboards/cannonkeys/tsukuyomi/tsukuyomi.h33
-rw-r--r--keyboards/cannonkeys/vicious40/chconf.h31
-rw-r--r--keyboards/cannonkeys/vicious40/config.h70
-rw-r--r--keyboards/cannonkeys/vicious40/halconf.h27
-rw-r--r--keyboards/cannonkeys/vicious40/info.json10
-rw-r--r--keyboards/cannonkeys/vicious40/keymaps/default/keymap.c52
-rw-r--r--keyboards/cannonkeys/vicious40/keymaps/via/keymap.c60
-rw-r--r--keyboards/cannonkeys/vicious40/keymaps/via/rules.mk1
-rw-r--r--keyboards/cannonkeys/vicious40/mcuconf.h28
-rw-r--r--keyboards/cannonkeys/vicious40/readme.md12
-rw-r--r--keyboards/cannonkeys/vicious40/rules.mk24
-rw-r--r--keyboards/cannonkeys/vicious40/vicious40.c17
-rw-r--r--keyboards/cannonkeys/vicious40/vicious40.h33
339 files changed, 12559 insertions, 0 deletions
diff --git a/keyboards/cannonkeys/adelie/adelie.c b/keyboards/cannonkeys/adelie/adelie.c
new file mode 100644
index 000000000..04764169e
--- /dev/null
+++ b/keyboards/cannonkeys/adelie/adelie.c
@@ -0,0 +1,17 @@
1/* Copyright 2020 Andrew Kannan
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include "adelie.h"
diff --git a/keyboards/cannonkeys/adelie/adelie.h b/keyboards/cannonkeys/adelie/adelie.h
new file mode 100644
index 000000000..0573e7bd3
--- /dev/null
+++ b/keyboards/cannonkeys/adelie/adelie.h
@@ -0,0 +1,42 @@
1/* Copyright 2020 Andrew Kannan
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#include "quantum.h"
20
21#define KNO KC_NO
22
23/* This is a shortcut to help you visually see your layout.
24 *
25 * The first section contains all of the arguments representing the physical
26 * layout of the board and position of the keys.
27 *
28 * The second converts the arguments into a two-dimensional array which
29 * represents the switch matrix.
30 */
31#define LAYOUT_all( \
32 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \
33 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1d, k1e, \
34 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2b, k2c, k2d, k2e, \
35 k30, k31, k32, k33, k36, k38, k39, k3b, k3c, k3d, k3e \
36) \
37{ \
38 { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e }, \
39 { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, KNO, k1d, k1e }, \
40 { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, KNO, k2b, k2c, k2d, k2e }, \
41 { k30, k31, k32, k33, KNO, KNO, k36, KNO, k38, k39, KNO, k3b, k3c, k3d, k3e } \
42}
diff --git a/keyboards/cannonkeys/adelie/config.h b/keyboards/cannonkeys/adelie/config.h
new file mode 100644
index 000000000..25ddcf0c9
--- /dev/null
+++ b/keyboards/cannonkeys/adelie/config.h
@@ -0,0 +1,117 @@
1/*
2Copyright 2020 Andrew Kannan
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#pragma once
19
20#include "config_common.h"
21
22/* USB Device descriptor parameter */
23#define VENDOR_ID 0xCA04
24#define PRODUCT_ID 0x0005
25#define DEVICE_VER 0x0001
26#define MANUFACTURER Abec13
27#define PRODUCT Adelie
28
29/* key matrix size */
30#define MATRIX_ROWS 4
31#define MATRIX_COLS 15
32
33/*
34 * Keyboard Matrix Assignments
35 *
36 * Change this to how you wired your keyboard
37 * COLS: AVR pins used for columns, left to right
38 * ROWS: AVR pins used for rows, top to bottom
39 * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
40 * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
41 *
42 */
43#define MATRIX_ROW_PINS { F4, F1, B1, B0 }
44#define MATRIX_COL_PINS { F5, F6, F7, C7, C6, B6, B5, B4, D7, D6, D4, D5, D3, D2, B2 }
45
46/* COL2ROW, ROW2COL*/
47#define DIODE_DIRECTION COL2ROW
48
49#define RGB_DI_PIN F0
50#ifdef RGB_DI_PIN
51 #define RGBLED_NUM 3
52 #define RGBLIGHT_HUE_STEP 8
53 #define RGBLIGHT_SAT_STEP 8
54 #define RGBLIGHT_VAL_STEP 8
55 #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
56 #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
57/*== all animations enable ==*/
58 #define RGBLIGHT_ANIMATIONS
59/*== or choose animations ==*/
60// #define RGBLIGHT_EFFECT_BREATHING
61// #define RGBLIGHT_EFFECT_RAINBOW_MOOD
62// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
63// #define RGBLIGHT_EFFECT_SNAKE
64// #define RGBLIGHT_EFFECT_KNIGHT
65// #define RGBLIGHT_EFFECT_CHRISTMAS
66// #define RGBLIGHT_EFFECT_STATIC_GRADIENT
67// #define RGBLIGHT_EFFECT_RGB_TEST
68// #define RGBLIGHT_EFFECT_ALTERNATING
69/*== customize breathing effect ==*/
70 /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
71// #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
72 /*==== use exp() and sin() ====*/
73// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
74// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
75#endif
76
77/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
78#define DEBOUNCE 5
79
80/* define if matrix has ghost (lacks anti-ghosting diodes) */
81//#define MATRIX_HAS_GHOST
82
83/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
84#define LOCKING_SUPPORT_ENABLE
85/* Locking resynchronize hack */
86#define LOCKING_RESYNC_ENABLE
87
88/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
89 * This is userful for the Windows task manager shortcut (ctrl+shift+esc).
90 */
91#define GRAVE_ESC_CTRL_OVERRIDE
92
93/*
94 * Feature disable options
95 * These options are also useful to firmware size reduction.
96 */
97
98/* disable debug print */
99//#define NO_DEBUG
100
101/* disable print */
102//#define NO_PRINT
103
104/* disable action features */
105//#define NO_ACTION_LAYER
106//#define NO_ACTION_TAPPING
107//#define NO_ACTION_ONESHOT
108
109/* disable these deprecated features by default */
110#define NO_ACTION_MACRO
111#define NO_ACTION_FUNCTION
112
113/* Bootmagic Lite key configuration */
114// #define BOOTMAGIC_LITE_ROW 0
115// #define BOOTMAGIC_LITE_COLUMN 0
116
117#define RGBLIGHT_LAYERS
diff --git a/keyboards/cannonkeys/adelie/info.json b/keyboards/cannonkeys/adelie/info.json
new file mode 100644
index 000000000..5367fdbff
--- /dev/null
+++ b/keyboards/cannonkeys/adelie/info.json
@@ -0,0 +1,68 @@
1{
2 "keyboard_name": "Adelie",
3 "url": "",
4 "maintainer": "Abec13",
5 "layouts": {
6 "LAYOUT_all": {
7 "layout": [
8 {"label":"Esc/~", "x":0, "y":0},
9 {"label":"Q", "x":1, "y":0},
10 {"label":"W", "x":2, "y":0},
11 {"label":"E", "x":3, "y":0},
12 {"label":"R", "x":4, "y":0},
13 {"label":"T", "x":5, "y":0},
14 {"label":"Y", "x":6, "y":0},
15 {"label":"U", "x":7, "y":0},
16 {"label":"I", "x":8, "y":0},
17 {"label":"O", "x":9, "y":0},
18 {"label":"P", "x":10, "y":0},
19 {"label":"[{", "x":11, "y":0},
20 {"label":"]}", "x":12, "y":0},
21 {"label":"Backspace", "x":13, "y":0},
22 {"label":"Page Up", "x":14.5, "y":0},
23
24 {"label":"Tab", "x":0, "y":1, "w":1.25},
25 {"label":"A", "x":1.25, "y":1},
26 {"label":"S", "x":2.25, "y":1},
27 {"label":"D", "x":3.25, "y":1},
28 {"label":"F", "x":4.25, "y":1},
29 {"label":"G", "x":5.25, "y":1},
30 {"label":"H", "x":6.25, "y":1},
31 {"label":"J", "x":7.25, "y":1},
32 {"label":"K", "x":8.25, "y":1},
33 {"label":"L", "x":9.25, "y":1},
34 {"label":";:", "x":10.25, "y":1},
35 {"label":"'\"", "x":11.25, "y":1},
36 {"label":"Enter", "x":12.25, "y":1, "w":1.75},
37 {"label":"Page Down", "x":14.5, "y":1},
38
39 {"label":"Shift", "x":0, "y":2, "w":1.75},
40 {"label":"Z", "x":1.75, "y":2},
41 {"label":"X", "x":2.75, "y":2},
42 {"label":"C", "x":3.75, "y":2},
43 {"label":"V", "x":4.75, "y":2},
44 {"label":"B", "x":5.75, "y":2},
45 {"label":"N", "x":6.75, "y":2},
46 {"label":"M", "x":7.75, "y":2},
47 {"label":",<", "x":8.75, "y":2},
48 {"label":".>", "x":9.75, "y":2},
49 {"label":"/?", "x":10.75, "y":2},
50 {"label":"Shift", "x":11.75, "y":2, "w":1.25},
51 {"label":"Up", "x":13.25, "y":2.25},
52 {"label":"TG(3)", "x":14.5, "y":2},
53
54 {"label":"Control", "x":0, "y":3, "w":1.25},
55 {"label":"Win", "x":1.25, "y":3},
56 {"label":"Alt", "x":2.25, "y":3, "w":1.25},
57 {"label":"MO(1)", "x":3.5, "y":3, "w":2.75},
58 {"label":"Space", "x":6.25, "y":3, "w":2.25},
59 {"label":"Alt", "x":8.5, "y":3, "w":1.25},
60 {"label":"Win", "x":9.75, "y":3},
61 {"label":"MO(2)", "x":10.75, "y":3, "w":1.25},
62 {"label":"Left", "x":12.25, "y":3.25},
63 {"label":"Down", "x":13.25, "y":3.25},
64 {"label":"Right", "x":14.25, "y":3.25}
65 ]
66 }
67 }
68}
diff --git a/keyboards/cannonkeys/adelie/keymaps/default/keymap.c b/keyboards/cannonkeys/adelie/keymaps/default/keymap.c
new file mode 100644
index 000000000..2698da36e
--- /dev/null
+++ b/keyboards/cannonkeys/adelie/keymaps/default/keymap.c
@@ -0,0 +1,96 @@
1/* Copyright 2020 Andrew Kannan
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include QMK_KEYBOARD_H
18
19
20// Each layer gets a name for readability, which is then used in the keymap matrix below.
21// The underscores don't mean anything - you can have a layer called STUFF or any other name.
22// Layer names don't all need to be of the same length, obviously, and you can also skip them
23// entirely and just use numbers.
24enum layer_names {
25 _BASE,
26 _FN1,
27 _FN2,
28 _FN3
29};
30
31const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
32 [_BASE] = LAYOUT_all(
33 KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, KC_PGUP,
34 KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
35 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, TG(_FN3),
36 KC_LCTL, KC_LGUI, KC_LALT, MO(_FN1), KC_SPC, KC_RALT, KC_RGUI, MO(_FN2), KC_LEFT, KC_DOWN, KC_RIGHT
37 ),
38
39 [_FN1] = LAYOUT_all(
40 KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_TRNS, KC_TRNS, KC_LPRN, KC_RPRN, KC_TRNS, KC_HOME,
41 RGB_TOG, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, KC_TRNS, KC_END,
42 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DOT, KC_TRNS, KC_TRNS, KC_MINS, KC_PLUS, KC_ASTR, KC_TRNS, KC_EQL, KC_INS, KC_PSCR,
43 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
44 ),
45
46 [_FN2] = LAYOUT_all(
47 KC_POWER, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MPRV, KC_MNXT, KC_DEL, KC_VOLU,
48 KC_SLEP, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD,
49 KC_WAKE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_MUTE,
50 RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
51 ),
52
53 [_FN3] = LAYOUT_all(
54 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
55 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
56 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
57 KC_TRNS, KC_TRNS, KC_TRNS, KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS, MO(_FN1), KC_TRNS, KC_TRNS, KC_TRNS
58 )
59};
60
61const rgblight_segment_t PROGMEM my_layer0_layer[] = RGBLIGHT_LAYER_SEGMENTS(
62 {0, 3, HSV_RED}
63);
64const rgblight_segment_t PROGMEM my_layer1_layer[] = RGBLIGHT_LAYER_SEGMENTS(
65 {0, 3, HSV_CYAN}
66);
67const rgblight_segment_t PROGMEM my_layer2_layer[] = RGBLIGHT_LAYER_SEGMENTS(
68 {0, 3, HSV_PURPLE}
69);
70const rgblight_segment_t PROGMEM my_layer3_layer[] = RGBLIGHT_LAYER_SEGMENTS(
71 {0, 3, HSV_GREEN}
72);
73
74const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST(
75 my_layer0_layer,
76 my_layer1_layer,
77 my_layer2_layer,
78 my_layer3_layer
79);
80
81void keyboard_post_init_user(void) {
82 // Enable the LED layers
83 rgblight_layers = my_rgb_layers;
84}
85
86layer_state_t default_layer_state_set_user(layer_state_t state) {
87 rgblight_set_layer_state(0, layer_state_cmp(state, _BASE));
88 return state;
89}
90
91layer_state_t layer_state_set_user(layer_state_t state) {
92 rgblight_set_layer_state(1, layer_state_cmp(state, _FN1));
93 rgblight_set_layer_state(2, layer_state_cmp(state, _FN2));
94 rgblight_set_layer_state(3, layer_state_cmp(state, _FN3));
95 return state;
96}
diff --git a/keyboards/cannonkeys/adelie/keymaps/via/keymap.c b/keyboards/cannonkeys/adelie/keymaps/via/keymap.c
new file mode 100644
index 000000000..2698da36e
--- /dev/null
+++ b/keyboards/cannonkeys/adelie/keymaps/via/keymap.c
@@ -0,0 +1,96 @@
1/* Copyright 2020 Andrew Kannan
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include QMK_KEYBOARD_H
18
19
20// Each layer gets a name for readability, which is then used in the keymap matrix below.
21// The underscores don't mean anything - you can have a layer called STUFF or any other name.
22// Layer names don't all need to be of the same length, obviously, and you can also skip them
23// entirely and just use numbers.
24enum layer_names {
25 _BASE,
26 _FN1,
27 _FN2,
28 _FN3
29};
30
31const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
32 [_BASE] = LAYOUT_all(
33 KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, KC_PGUP,
34 KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
35 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, TG(_FN3),
36 KC_LCTL, KC_LGUI, KC_LALT, MO(_FN1), KC_SPC, KC_RALT, KC_RGUI, MO(_FN2), KC_LEFT, KC_DOWN, KC_RIGHT
37 ),
38
39 [_FN1] = LAYOUT_all(
40 KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_TRNS, KC_TRNS, KC_LPRN, KC_RPRN, KC_TRNS, KC_HOME,
41 RGB_TOG, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, KC_TRNS, KC_END,
42 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DOT, KC_TRNS, KC_TRNS, KC_MINS, KC_PLUS, KC_ASTR, KC_TRNS, KC_EQL, KC_INS, KC_PSCR,
43 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
44 ),
45
46 [_FN2] = LAYOUT_all(
47 KC_POWER, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MPRV, KC_MNXT, KC_DEL, KC_VOLU,
48 KC_SLEP, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD,
49 KC_WAKE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_MUTE,
50 RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
51 ),
52
53 [_FN3] = LAYOUT_all(
54 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
55 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
56 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
57 KC_TRNS, KC_TRNS, KC_TRNS, KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS, MO(_FN1), KC_TRNS, KC_TRNS, KC_TRNS
58 )
59};
60
61const rgblight_segment_t PROGMEM my_layer0_layer[] = RGBLIGHT_LAYER_SEGMENTS(
62 {0, 3, HSV_RED}
63);
64const rgblight_segment_t PROGMEM my_layer1_layer[] = RGBLIGHT_LAYER_SEGMENTS(
65 {0, 3, HSV_CYAN}
66);
67const rgblight_segment_t PROGMEM my_layer2_layer[] = RGBLIGHT_LAYER_SEGMENTS(
68 {0, 3, HSV_PURPLE}
69);
70const rgblight_segment_t PROGMEM my_layer3_layer[] = RGBLIGHT_LAYER_SEGMENTS(
71 {0, 3, HSV_GREEN}
72);
73
74const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST(
75 my_layer0_layer,
76 my_layer1_layer,
77 my_layer2_layer,
78 my_layer3_layer
79);
80
81void keyboard_post_init_user(void) {
82 // Enable the LED layers
83 rgblight_layers = my_rgb_layers;
84}
85
86layer_state_t default_layer_state_set_user(layer_state_t state) {
87 rgblight_set_layer_state(0, layer_state_cmp(state, _BASE));
88 return state;
89}
90
91layer_state_t layer_state_set_user(layer_state_t state) {
92 rgblight_set_layer_state(1, layer_state_cmp(state, _FN1));
93 rgblight_set_layer_state(2, layer_state_cmp(state, _FN2));
94 rgblight_set_layer_state(3, layer_state_cmp(state, _FN3));
95 return state;
96}
diff --git a/keyboards/cannonkeys/adelie/keymaps/via/rules.mk b/keyboards/cannonkeys/adelie/keymaps/via/rules.mk
new file mode 100644
index 000000000..1e5b99807
--- /dev/null
+++ b/keyboards/cannonkeys/adelie/keymaps/via/rules.mk
@@ -0,0 +1 @@
VIA_ENABLE = yes
diff --git a/keyboards/cannonkeys/adelie/readme.md b/keyboards/cannonkeys/adelie/readme.md
new file mode 100644
index 000000000..2e959fb9d
--- /dev/null
+++ b/keyboards/cannonkeys/adelie/readme.md
@@ -0,0 +1,15 @@
1# Adelie
2
3![Adelie](https://imgur.com/sMLIIXoh.png)
4
5The Adelie 50% Keyboard by Abec13
6
7![layout](https://imgur.com/85Zn3Xvh.png)
8
9* Keyboard Maintainer: [Abec13](https://github.com/abec13)
10
11Make example for this keyboard (after setting up your build environment):
12
13 make cannonkeys/adelie:default
14
15See 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).
diff --git a/keyboards/cannonkeys/adelie/rules.mk b/keyboards/cannonkeys/adelie/rules.mk
new file mode 100644
index 000000000..3a2f2feb7
--- /dev/null
+++ b/keyboards/cannonkeys/adelie/rules.mk
@@ -0,0 +1,18 @@
1# MCU name
2MCU = atmega32u4
3
4# Bootloader selection
5BOOTLOADER = atmel-dfu
6
7# Build Options
8# change yes to no to disable
9#
10BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
11MOUSEKEY_ENABLE = no # Mouse keys
12EXTRAKEY_ENABLE = yes # Audio control and System control
13CONSOLE_ENABLE = no # Console for debug
14COMMAND_ENABLE = no # Commands for debug and configuration
15NKRO_ENABLE = no # Enable N-Key Rollover
16BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
17RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
18AUDIO_ENABLE = no # Audio output
diff --git a/keyboards/cannonkeys/aella/aella.c b/keyboards/cannonkeys/aella/aella.c
new file mode 100644
index 000000000..862bf4145
--- /dev/null
+++ b/keyboards/cannonkeys/aella/aella.c
@@ -0,0 +1 @@
#include "aella.h"
diff --git a/keyboards/cannonkeys/aella/aella.h b/keyboards/cannonkeys/aella/aella.h
new file mode 100644
index 000000000..457c5111c
--- /dev/null
+++ b/keyboards/cannonkeys/aella/aella.h
@@ -0,0 +1,19 @@
1#pragma once
2
3#include "quantum.h"
4
5#define LAYOUT_all( \
6 K000, K001, K002, K003, K004, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \
7 K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, \
8 K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K215, \
9 K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K315, \
10 K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, K415, \
11 K500, K502, K506, K510, K511, K512, K513, K515 \
12) { \
13 { K000, K001, K002, K003, K004, KC_NO, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015 }, \
14 { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115 }, \
15 { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, KC_NO, K215 }, \
16 { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, KC_NO, K315 }, \
17 { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, KC_NO, K415 }, \
18 { K500, KC_NO, K502, KC_NO, KC_NO, KC_NO, K506, KC_NO, KC_NO, KC_NO, K510, K511, K512, K513, KC_NO, K515 } \
19}
diff --git a/keyboards/cannonkeys/aella/chconf.h b/keyboards/cannonkeys/aella/chconf.h
new file mode 100644
index 000000000..645412d47
--- /dev/null
+++ b/keyboards/cannonkeys/aella/chconf.h
@@ -0,0 +1,31 @@
1/* Copyright 2020 QMK
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17/*
18 * This file was auto-generated by:
19 * `qmk chibios-confmigrate -i keyboards/cannonkeys/obliterated75/chconf.h -r platforms/chibios/common/configs/chconf.h`
20 */
21
22#pragma once
23
24#define CH_CFG_ST_FREQUENCY 10000
25
26#define CH_CFG_OPTIMIZE_SPEED FALSE
27
28#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE
29
30#include_next <chconf.h>
31
diff --git a/keyboards/cannonkeys/aella/config.h b/keyboards/cannonkeys/aella/config.h
new file mode 100644
index 000000000..b32880d40
--- /dev/null
+++ b/keyboards/cannonkeys/aella/config.h
@@ -0,0 +1,63 @@
1/*
2Copyright 2015 Jun Wako <[email protected]>
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#pragma once
19
20/* USB Device descriptor parameter */
21#define VENDOR_ID 0xCA04
22#define PRODUCT_ID 0x0007
23#define DEVICE_VER 0x0001
24#define MANUFACTURER CannonKeys
25#define PRODUCT Aella
26
27/* key matrix size */
28#define MATRIX_ROWS 6
29#define MATRIX_COLS 16
30
31#define MATRIX_COL_PINS { A5, B0, B1, B2, B10, A9, C13, B9, B8, B7, B6, B5, B4, B3, A15, A14 }
32#define MATRIX_ROW_PINS { A13, B12, B11, B14, A8, A7 }
33#define DIODE_DIRECTION COL2ROW
34
35
36/* define if matrix has ghost */
37//#define MATRIX_HAS_GHOST
38
39/* Set 0 if debouncing isn't needed */
40#define DEBOUNCE 5
41
42/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
43#define LOCKING_SUPPORT_ENABLE
44/* Locking resynchronize hack */
45#define LOCKING_RESYNC_ENABLE
46
47/*
48 * Feature disable options
49 * These options are also useful to firmware size reduction.
50 */
51
52/* disable debug print */
53//#define NO_DEBUG
54
55/* disable print */
56//#define NO_PRINT
57
58/* disable action features */
59//#define NO_ACTION_LAYER
60//#define NO_ACTION_TAPPING
61//#define NO_ACTION_ONESHOT
62//#define NO_ACTION_MACRO
63//#define NO_ACTION_FUNCTION
diff --git a/keyboards/cannonkeys/aella/info.json b/keyboards/cannonkeys/aella/info.json
new file mode 100644
index 000000000..806905428
--- /dev/null
+++ b/keyboards/cannonkeys/aella/info.json
@@ -0,0 +1,10 @@
1{
2 "keyboard_name": "Aella",
3 "url": "https://www.alchemistkeyboards.com/aella",
4 "maintainer": "Alchemist Keyboards",
5 "layouts": {
6 "LAYOUT_all": {
7 "layout": [{"x":0, "y":0}, {"x":1.25, "y":0}, {"x":2.25, "y":0}, {"x":3.25, "y":0}, {"x":4.25, "y":0}, {"x":5.5, "y":0}, {"x":6.5, "y":0}, {"x":7.5, "y":0}, {"x":8.5, "y":0}, {"x":9.75, "y":0}, {"x":10.75, "y":0}, {"x":11.75, "y":0}, {"x":12.75, "y":0}, {"x":14, "y":0}, {"x":15, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":6, "y":1}, {"x":7, "y":1}, {"x":8, "y":1}, {"x":9, "y":1}, {"x":10, "y":1}, {"x":11, "y":1}, {"x":12, "y":1}, {"x":13, "y":1}, {"x":14, "y":1}, {"x":15, "y":1}, {"x":0, "y":2, "w":1.5}, {"x":1.5, "y":2}, {"x":2.5, "y":2}, {"x":3.5, "y":2}, {"x":4.5, "y":2}, {"x":5.5, "y":2}, {"x":6.5, "y":2}, {"x":7.5, "y":2}, {"x":8.5, "y":2}, {"x":9.5, "y":2}, {"x":10.5, "y":2}, {"x":11.5, "y":2}, {"x":12.5, "y":2}, {"x":13.5, "y":2, "w":1.5}, {"x":15, "y":2}, {"x":0, "y":3, "w":1.75}, {"x":1.75, "y":3}, {"x":2.75, "y":3}, {"x":3.75, "y":3}, {"x":4.75, "y":3}, {"x":5.75, "y":3}, {"x":6.75, "y":3}, {"x":7.75, "y":3}, {"x":8.75, "y":3}, {"x":9.75, "y":3}, {"x":10.75, "y":3}, {"x":11.75, "y":3}, {"x":12.75, "y":3}, {"x":13.75, "y":3, "w":1.25}, {"x":15, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4}, {"x":2.25, "y":4}, {"x":3.25, "y":4}, {"x":4.25, "y":4}, {"x":5.25, "y":4}, {"x":6.25, "y":4}, {"x":7.25, "y":4}, {"x":8.25, "y":4}, {"x":9.25, "y":4}, {"x":10.25, "y":4}, {"x":11.25, "y":4}, {"x":12.25, "y":4, "w":1.75}, {"x":14, "y":4}, {"x":15, "y":4}, {"x":0, "y":5, "w":1.5}, {"x":2.25, "y":5, "w":1.25}, {"x":3.5, "y":5, "w":6.25}, {"x":9.75, "y":5, "w":1.25}, {"x":11, "y":5, "w":1.25}, {"x":13, "y":5}, {"x":14, "y":5}, {"x":15, "y":5}]
8 }
9 }
10}
diff --git a/keyboards/cannonkeys/aella/keymaps/default/keymap.c b/keyboards/cannonkeys/aella/keymaps/default/keymap.c
new file mode 100644
index 000000000..4bd71e79f
--- /dev/null
+++ b/keyboards/cannonkeys/aella/keymaps/default/keymap.c
@@ -0,0 +1,48 @@
1/*
2Copyright 2012,2013 Jun Wako <[email protected]>
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17#include QMK_KEYBOARD_H
18
19
20// Each layer gets a name for readability, which is then used in the keymap matrix below.
21// The underscores don't mean anything - you can have a layer called STUFF or any other name.
22// Layer names don't all need to be of the same length, obviously, and you can also skip them
23// entirely and just use numbers.
24enum layer_names {
25 _BASE,
26 _FN1,
27};
28
29const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
30
31 [_BASE] = LAYOUT_all(
32 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MPLY, KC_MUTE,
33 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_INS,
34 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
35 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUBS, KC_ENT, KC_PGUP,
36 KC_LSFT, KC_NUHS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
37 KC_LCTL, KC_LALT, KC_SPC, MO(_FN1), KC_LGUI, KC_LEFT, KC_DOWN, KC_RGHT
38 ),
39
40 [_FN1] = LAYOUT_all(
41 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS,
42 KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_TRNS, KC_TRNS,
43 KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
44 KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
45 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
46 KC_GRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS
47 )
48};
diff --git a/keyboards/cannonkeys/aella/keymaps/via/keymap.c b/keyboards/cannonkeys/aella/keymaps/via/keymap.c
new file mode 100644
index 000000000..3a204be6c
--- /dev/null
+++ b/keyboards/cannonkeys/aella/keymaps/via/keymap.c
@@ -0,0 +1,71 @@
1/*
2Copyright 2012,2013 Jun Wako <[email protected]>
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17#include QMK_KEYBOARD_H
18
19
20// Each layer gets a name for readability, which is then used in the keymap matrix below.
21// The underscores don't mean anything - you can have a layer called STUFF or any other name.
22// Layer names don't all need to be of the same length, obviously, and you can also skip them
23// entirely and just use numbers.
24enum layer_names {
25 _BASE,
26 _FN1,
27 _FN2,
28 _FN3
29};
30
31
32const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
33
34 [_BASE] = LAYOUT_all(
35 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MPLY, KC_MUTE,
36 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_INS,
37 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
38 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUBS, KC_ENT, KC_PGUP,
39 KC_LSFT, KC_NUHS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
40 KC_LCTL, KC_LALT, KC_SPC, MO(_FN1), KC_LGUI, KC_LEFT, KC_DOWN, KC_RGHT
41 ),
42
43 [_FN1] = LAYOUT_all(
44 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS,
45 KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_TRNS, KC_TRNS,
46 KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
47 KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
48 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
49 KC_GRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS
50 ),
51
52
53 [_FN2] = LAYOUT_all(
54 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
55 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
56 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
57 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
58 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
59 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
60 ),
61
62 [_FN3] = LAYOUT_all(
63 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
64 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
65 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
66 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
67 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
68 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
69 )
70
71};
diff --git a/keyboards/cannonkeys/aella/keymaps/via/rules.mk b/keyboards/cannonkeys/aella/keymaps/via/rules.mk
new file mode 100644
index 000000000..1e5b99807
--- /dev/null
+++ b/keyboards/cannonkeys/aella/keymaps/via/rules.mk
@@ -0,0 +1 @@
VIA_ENABLE = yes
diff --git a/keyboards/cannonkeys/aella/readme.md b/keyboards/cannonkeys/aella/readme.md
new file mode 100644
index 000000000..320153756
--- /dev/null
+++ b/keyboards/cannonkeys/aella/readme.md
@@ -0,0 +1,10 @@
1# Alchemist Keyboards Aella
2
3* Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan)
4* Hardware Supported: STM32F072CBT6
5
6Make example for this keyboard (after setting up your build environment):
7
8 make cannonkeys/aella:default
9
10See 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).
diff --git a/keyboards/cannonkeys/aella/rules.mk b/keyboards/cannonkeys/aella/rules.mk
new file mode 100644
index 000000000..7b44b402d
--- /dev/null
+++ b/keyboards/cannonkeys/aella/rules.mk
@@ -0,0 +1,24 @@
1# MCU name
2MCU = STM32F072
3
4# Bootloader selection
5BOOTLOADER = stm32-dfu
6
7# Wildcard to allow APM32 MCU
8DFU_SUFFIX_ARGS = -v FFFF -p FFFF
9
10# Build Options
11# change yes to no to disable
12#
13BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
14MOUSEKEY_ENABLE = yes # Mouse keys
15EXTRAKEY_ENABLE = yes # Audio control and System control
16CONSOLE_ENABLE = yes # Console for debug
17COMMAND_ENABLE = yes # Commands for debug and configuration
18NKRO_ENABLE = yes # Enable N-Key Rollover
19BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
20RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
21AUDIO_ENABLE = no # Audio output
22
23# Enter lower-power sleep mode when on the ChibiOS idle thread
24OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
diff --git a/keyboards/cannonkeys/an_c/an_c.c b/keyboards/cannonkeys/an_c/an_c.c
new file mode 100644
index 000000000..9dfb80e9e
--- /dev/null
+++ b/keyboards/cannonkeys/an_c/an_c.c
@@ -0,0 +1 @@
#include "an_c.h"
diff --git a/keyboards/cannonkeys/an_c/an_c.h b/keyboards/cannonkeys/an_c/an_c.h
new file mode 100644
index 000000000..06963b409
--- /dev/null
+++ b/keyboards/cannonkeys/an_c/an_c.h
@@ -0,0 +1,47 @@
1#pragma once
2
3#include "quantum.h"
4
5#define KNO KC_NO
6
7#define LAYOUT_60_ansi( \
8 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
9 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, \
10 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2E, \
11 K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, \
12 K40, K41, K42, K45, K49, K4A, K4B, K4E \
13) { \
14 { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, KNO}, \
15 { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, KNO, K1E }, \
16 { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KNO, KNO, K2E }, \
17 { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, KNO, KNO, KNO }, \
18 { K40, K41, K42, KNO, KNO, K45, KNO, KNO, KNO, K49, K4A, K4B, KNO, KNO, K4E } \
19}
20
21#define LAYOUT_60_tsangan_hhkb( \
22 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
23 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, \
24 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2E, \
25 K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3E,\
26 K40, K41, K42, K45, K4A, K4B, K4E \
27) { \
28 { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E}, \
29 { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, KNO, K1E }, \
30 { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KNO, KNO, K2E }, \
31 { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, KNO, KNO, K3E }, \
32 { K40, K41, K42, KNO, KNO, K45, KNO, KNO, KNO, KNO, K4A, K4B, KNO, KNO, K4E } \
33}
34
35#define LAYOUT_all( \
36 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E,\
37 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, \
38 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2E, \
39 K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3E,\
40 K40, K41, K42, K45, K49, K4A, K4B, K4E \
41) { \
42 { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E}, \
43 { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, KNO, K1E }, \
44 { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KNO, KNO, K2E }, \
45 { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, KNO, KNO, K3E }, \
46 { K40, K41, K42, KNO, KNO, K45, KNO, KNO, KNO, K49, K4A, K4B, KNO, KNO, K4E } \
47}
diff --git a/keyboards/cannonkeys/an_c/chconf.h b/keyboards/cannonkeys/an_c/chconf.h
new file mode 100644
index 000000000..0f07a8ba9
--- /dev/null
+++ b/keyboards/cannonkeys/an_c/chconf.h
@@ -0,0 +1,31 @@
1/* Copyright 2020 QMK
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17/*
18 * This file was auto-generated by:
19 * `qmk chibios-confmigrate -i keyboards/cannonkeys/an_c/chconf.h -r platforms/chibios/common/configs/chconf.h`
20 */
21
22#pragma once
23
24#define CH_CFG_ST_FREQUENCY 10000
25
26#define CH_CFG_OPTIMIZE_SPEED FALSE
27
28#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE
29
30#include_next <chconf.h>
31
diff --git a/keyboards/cannonkeys/an_c/config.h b/keyboards/cannonkeys/an_c/config.h
new file mode 100644
index 000000000..83e98c2e2
--- /dev/null
+++ b/keyboards/cannonkeys/an_c/config.h
@@ -0,0 +1,78 @@
1/*
2Copyright 2015 Jun Wako <[email protected]>
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#pragma once
19
20/* USB Device descriptor parameter */
21#define VENDOR_ID 0xCA04
22#define PRODUCT_ID 0xA00C
23#define DEVICE_VER 0x0001
24#define MANUFACTURER CannonKeys
25#define PRODUCT AN-C
26
27/* key matrix size */
28#define MATRIX_ROWS 5
29#define MATRIX_COLS 15
30
31#define MATRIX_COL_PINS { B11, B10, B2, A9, A15, B3, B4, B5, B6, B7, B8, B9, C13, C14, C15 }
32#define MATRIX_ROW_PINS { B1, B0, A7, A5, A4 }
33#define DIODE_DIRECTION COL2ROW
34
35#define BACKLIGHT_PIN A6
36#define BACKLIGHT_PWM_DRIVER PWMD3
37#define BACKLIGHT_PWM_CHANNEL 1
38#define BACKLIGHT_PAL_MODE 1
39#define BACKLIGHT_LEVELS 6
40#define BACKLIGHT_BREATHING
41#define BREATHING_PERIOD 6
42
43/* define if matrix has ghost */
44//#define MATRIX_HAS_GHOST
45
46/* Set 0 if debouncing isn't needed */
47#define DEBOUNCE 5
48
49/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
50#define LOCKING_SUPPORT_ENABLE
51/* Locking resynchronize hack */
52#define LOCKING_RESYNC_ENABLE
53
54#define RGBLIGHT_ANIMATIONS
55#define RGB_DI_PIN B15
56#define RGBLED_NUM 14
57#define WS2812_SPI SPID2
58#define WS2812_SPI_MOSI_PAL_MODE 0
59#define WS2812_SPI_SCK_PAL_MODE 0
60#define WS2812_SPI_SCK_PIN B13
61
62/*
63 * Feature disable options
64 * These options are also useful to firmware size reduction.
65 */
66
67/* disable debug print */
68//#define NO_DEBUG
69
70/* disable print */
71//#define NO_PRINT
72
73/* disable action features */
74//#define NO_ACTION_LAYER
75//#define NO_ACTION_TAPPING
76//#define NO_ACTION_ONESHOT
77//#define NO_ACTION_MACRO
78//#define NO_ACTION_FUNCTION
diff --git a/keyboards/cannonkeys/an_c/halconf.h b/keyboards/cannonkeys/an_c/halconf.h
new file mode 100644
index 000000000..fddb45ce7
--- /dev/null
+++ b/keyboards/cannonkeys/an_c/halconf.h
@@ -0,0 +1,31 @@
1/* Copyright 2020 QMK
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17/*
18 * This file was auto-generated by:
19 * `qmk chibios-confmigrate -i keyboards/cannonkeys/an_c/halconf.h -r platforms/chibios/common/configs/halconf.h`
20 */
21
22#pragma once
23
24#define HAL_USE_I2C TRUE
25
26#define HAL_USE_PWM TRUE
27
28#define HAL_USE_SPI TRUE
29
30#include_next <halconf.h>
31
diff --git a/keyboards/cannonkeys/an_c/info.json b/keyboards/cannonkeys/an_c/info.json
new file mode 100644
index 000000000..12d20010b
--- /dev/null
+++ b/keyboards/cannonkeys/an_c/info.json
@@ -0,0 +1,13 @@
1{
2 "keyboard_name": "AN-C",
3 "url": "https://cannonkeys.com",
4 "maintainer": "awkannan",
5 "layouts": {
6 "LAYOUT_60_ansi": {
7 "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}]
8 },
9 "LAYOUT_60_tsangan_hhkb": {
10 "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.5}, {"label":"Win", "x":1.5, "y":4}, {"label":"Alt", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"label":"Alt", "x":11, "y":4, "w":1.5}, {"label":"Win", "x":12.5, "y":4}, {"label":"Ctrl", "x":13.5, "y":4, "w":1.5}]
11 }
12 }
13}
diff --git a/keyboards/cannonkeys/an_c/keymaps/default/keymap.c b/keyboards/cannonkeys/an_c/keymaps/default/keymap.c
new file mode 100644
index 000000000..d6d69ee8f
--- /dev/null
+++ b/keyboards/cannonkeys/an_c/keymaps/default/keymap.c
@@ -0,0 +1,43 @@
1/*
2Copyright 2012,2013 Jun Wako <[email protected]>
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17#include QMK_KEYBOARD_H
18
19
20// Each layer gets a name for readability, which is then used in the keymap matrix below.
21// The underscores don't mean anything - you can have a layer called STUFF or any other name.
22// Layer names don't all need to be of the same length, obviously, and you can also skip them
23// entirely and just use numbers.
24#define _BASE 0
25#define _FN1 1
26
27const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
28 [_BASE] = LAYOUT_60_ansi(
29 KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
30 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
31 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
32 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
33 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FN1), KC_RCTL
34 ),
35
36 [_FN1] = LAYOUT_60_ansi(
37 KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
38 RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
39 BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
40 BL_INC, BL_DEC, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______,
41 KC_GRV, _______, _______, _______, _______, _______, _______, RESET
42 )
43};
diff --git a/keyboards/cannonkeys/an_c/keymaps/tsangan/keymap.c b/keyboards/cannonkeys/an_c/keymaps/tsangan/keymap.c
new file mode 100644
index 000000000..857415ad9
--- /dev/null
+++ b/keyboards/cannonkeys/an_c/keymaps/tsangan/keymap.c
@@ -0,0 +1,44 @@
1/*
2Copyright 2012,2013 Jun Wako <[email protected]>
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17#include QMK_KEYBOARD_H
18
19
20// Each layer gets a name for readability, which is then used in the keymap matrix below.
21// The underscores don't mean anything - you can have a layer called STUFF or any other name.
22// Layer names don't all need to be of the same length, obviously, and you can also skip them
23// entirely and just use numbers.
24#define _BASE 0
25#define _FN1 1
26
27
28const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
29 [_BASE] = LAYOUT_60_tsangan_hhkb(
30 KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_DEL,
31 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
32 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
33 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN1),
34 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL
35 ),
36
37 [_FN1] = LAYOUT_60_tsangan_hhkb(
38 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______,
39 RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
40 BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
41 BL_INC, BL_DEC, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
42 _______, _______, _______, _______, _______, _______, RESET
43 )
44};
diff --git a/keyboards/cannonkeys/an_c/keymaps/via/keymap.c b/keyboards/cannonkeys/an_c/keymaps/via/keymap.c
new file mode 100644
index 000000000..b182ac5f4
--- /dev/null
+++ b/keyboards/cannonkeys/an_c/keymaps/via/keymap.c
@@ -0,0 +1,43 @@
1/*
2Copyright 2012,2013 Jun Wako <[email protected]>
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17#include QMK_KEYBOARD_H
18
19
20// Each layer gets a name for readability, which is then used in the keymap matrix below.
21// The underscores don't mean anything - you can have a layer called STUFF or any other name.
22// Layer names don't all need to be of the same length, obviously, and you can also skip them
23// entirely and just use numbers.
24#define _BASE 0
25#define _FN1 1
26
27const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
28 [_BASE] = LAYOUT_all(
29 KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL,
30 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
31 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
32 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN1),
33 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FN1), KC_RCTL
34 ),
35
36 [_FN1] = LAYOUT_all(
37 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______,
38 RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
39 BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
40 BL_INC, BL_DEC, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
41 _______, _______, _______, _______, _______, _______, _______, RESET
42 )
43};
diff --git a/keyboards/cannonkeys/an_c/keymaps/via/rules.mk b/keyboards/cannonkeys/an_c/keymaps/via/rules.mk
new file mode 100644
index 000000000..1e5b99807
--- /dev/null
+++ b/keyboards/cannonkeys/an_c/keymaps/via/rules.mk
@@ -0,0 +1 @@
VIA_ENABLE = yes
diff --git a/keyboards/cannonkeys/an_c/mcuconf.h b/keyboards/cannonkeys/an_c/mcuconf.h
new file mode 100644
index 000000000..11a0d9317
--- /dev/null
+++ b/keyboards/cannonkeys/an_c/mcuconf.h
@@ -0,0 +1,34 @@
1/* Copyright 2020 QMK
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17/*
18 * This file was auto-generated by:
19 * `qmk chibios-confmigrate -i keyboards/cannonkeys/an_c/mcuconf.h -r platforms/chibios/GENERIC_STM32_F072XB/configs/mcuconf.h`
20 */
21
22#pragma once
23
24#include_next <mcuconf.h>
25
26#undef STM32_I2C_USE_I2C1
27#define STM32_I2C_USE_I2C1 TRUE
28
29#undef STM32_PWM_USE_TIM3
30#define STM32_PWM_USE_TIM3 TRUE
31
32#undef STM32_SPI_USE_SPI2
33#define STM32_SPI_USE_SPI2 TRUE
34
diff --git a/keyboards/cannonkeys/an_c/readme.md b/keyboards/cannonkeys/an_c/readme.md
new file mode 100644
index 000000000..7d631a0a5
--- /dev/null
+++ b/keyboards/cannonkeys/an_c/readme.md
@@ -0,0 +1,12 @@
1# AN-C
2
3AN-C Keyboard
4
5Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan)
6Hardware Supported: STM32F072CBT6
7
8Make example for this keyboard (after setting up your build environment):
9
10 make cannonkeys/an_c:default
11
12See 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).
diff --git a/keyboards/cannonkeys/an_c/rules.mk b/keyboards/cannonkeys/an_c/rules.mk
new file mode 100644
index 000000000..e03a83f44
--- /dev/null
+++ b/keyboards/cannonkeys/an_c/rules.mk
@@ -0,0 +1,26 @@
1# MCU name
2MCU = STM32F072
3
4# Bootloader selection
5BOOTLOADER = stm32-dfu
6
7# Wildcard to allow APM32 MCU
8DFU_SUFFIX_ARGS = -v FFFF -p FFFF
9
10# Build Options
11# change yes to no to disable
12#
13BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
14MOUSEKEY_ENABLE = yes # Mouse keys
15EXTRAKEY_ENABLE = yes # Audio control and System control
16CONSOLE_ENABLE = yes # Console for debug
17COMMAND_ENABLE = yes # Commands for debug and configuration
18NKRO_ENABLE = yes # Enable N-Key Rollover
19BACKLIGHT_ENABLE = yes
20RGBLIGHT_ENABLE = yes
21WS2812_DRIVER = spi
22
23LAYOUTS = 60_ansi 60_tsangan_hhkb
24
25# Enter lower-power sleep mode when on the ChibiOS idle thread
26OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
diff --git a/keyboards/cannonkeys/atlas/atlas.c b/keyboards/cannonkeys/atlas/atlas.c
new file mode 100644
index 000000000..8b0b236fe
--- /dev/null
+++ b/keyboards/cannonkeys/atlas/atlas.c
@@ -0,0 +1 @@
#include "atlas.h"
diff --git a/keyboards/cannonkeys/atlas/atlas.h b/keyboards/cannonkeys/atlas/atlas.h
new file mode 100644
index 000000000..b2f64dab7
--- /dev/null
+++ b/keyboards/cannonkeys/atlas/atlas.h
@@ -0,0 +1,48 @@
1#pragma once
2
3#include "quantum.h"
4
5#define LAYOUT_ortho_5x12_1x2uC( \
6 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
7 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
8 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
9 k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, \
10 k40, k41, k42, k43, k44, k45 , k47, k48, k49, k4a, k4b \
11) \
12{ \
13 { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
14 { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
15 { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
16 { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b }, \
17 { k40, k41, k42, k43, k44, k45, KC_NO, k47, k48, k49, k4a, k4b }, \
18}
19
20#define LAYOUT_ortho_5x12( \
21 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
22 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
23 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
24 k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, \
25 k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b \
26) \
27{ \
28 { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
29 { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
30 { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
31 { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b }, \
32 { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b }, \
33}
34
35#define LAYOUT_ortho_5x12_2x2uC( \
36 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
37 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
38 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
39 k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, \
40 k40, k41, k42, k43, k44, k46 , k48, k49, k4a, k4b \
41) \
42{ \
43 { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
44 { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
45 { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
46 { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b }, \
47 { k40, k41, k42, k43, k44, KC_NO, k46, KC_NO, k48, k49, k4a, k4b }, \
48}
diff --git a/keyboards/cannonkeys/atlas/chconf.h b/keyboards/cannonkeys/atlas/chconf.h
new file mode 100644
index 000000000..1b3da00c0
--- /dev/null
+++ b/keyboards/cannonkeys/atlas/chconf.h
@@ -0,0 +1,31 @@
1/* Copyright 2020 QMK
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17/*
18 * This file was auto-generated by:
19 * `qmk chibios-confmigrate -i keyboards/cannonkeys/atlas/chconf.h -r platforms/chibios/common/configs/chconf.h`
20 */
21
22#pragma once
23
24#define CH_CFG_ST_FREQUENCY 10000
25
26#define CH_CFG_OPTIMIZE_SPEED FALSE
27
28#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE
29
30#include_next <chconf.h>
31
diff --git a/keyboards/cannonkeys/atlas/config.h b/keyboards/cannonkeys/atlas/config.h
new file mode 100644
index 000000000..1ba5c0fb0
--- /dev/null
+++ b/keyboards/cannonkeys/atlas/config.h
@@ -0,0 +1,72 @@
1/*
2Copyright 2015 Jun Wako <[email protected]>
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#pragma once
19
20/* USB Device descriptor parameter */
21#define VENDOR_ID 0xCA04
22#define PRODUCT_ID 0xA7A5
23#define DEVICE_VER 0x0001
24#define MANUFACTURER CannonKeys
25#define PRODUCT Atlas
26
27/* key matrix size */
28#define MATRIX_ROWS 5
29#define MATRIX_COLS 12
30
31#define MATRIX_COL_PINS { A2, A1, A0, F1, F0, C15, C14, C13, B9, A15, A10, A9 }
32#define MATRIX_ROW_PINS { A8, B14, B12, B4, B3 }
33#define DIODE_DIRECTION COL2ROW
34
35/* define if matrix has ghost */
36//#define MATRIX_HAS_GHOST
37
38/* Set 0 if debouncing isn't needed */
39#define DEBOUNCE 5
40
41/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
42#define LOCKING_SUPPORT_ENABLE
43/* Locking resynchronize hack */
44#define LOCKING_RESYNC_ENABLE
45
46#define RGBLIGHT_ANIMATIONS
47
48
49#define WS2812_SPI SPID2
50#define RGB_DI_PIN B15
51#define RGBLED_NUM 22
52#define WS2812_SPI_MOSI_PAL_MODE 0
53#define WS2812_SPI_SCK_PAL_MODE 0
54#define WS2812_SPI_SCK_PIN B13
55
56/*
57 * Feature disable options
58 * These options are also useful to firmware size reduction.
59 */
60
61/* disable debug print */
62//#define NO_DEBUG
63
64/* disable print */
65//#define NO_PRINT
66
67/* disable action features */
68//#define NO_ACTION_LAYER
69//#define NO_ACTION_TAPPING
70//#define NO_ACTION_ONESHOT
71//#define NO_ACTION_MACRO
72//#define NO_ACTION_FUNCTION
diff --git a/keyboards/cannonkeys/atlas/halconf.h b/keyboards/cannonkeys/atlas/halconf.h
new file mode 100644
index 000000000..fea430acb
--- /dev/null
+++ b/keyboards/cannonkeys/atlas/halconf.h
@@ -0,0 +1,31 @@
1/* Copyright 2020 QMK
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17/*
18 * This file was auto-generated by:
19 * `qmk chibios-confmigrate -i keyboards/cannonkeys/atlas/halconf.h -r platforms/chibios/common/configs/halconf.h`
20 */
21
22#pragma once
23
24#define HAL_USE_I2C TRUE
25
26#define HAL_USE_PWM TRUE
27
28#define HAL_USE_SPI TRUE
29
30#include_next <halconf.h>
31
diff --git a/keyboards/cannonkeys/atlas/info.json b/keyboards/cannonkeys/atlas/info.json
new file mode 100644
index 000000000..123b0cd11
--- /dev/null
+++ b/keyboards/cannonkeys/atlas/info.json
@@ -0,0 +1,196 @@
1{
2 "keyboard_name": "Atlas",
3 "url": "https://cannonkeys.com",
4 "maintainer": "awkannan",
5 "layouts": {
6 "LAYOUT_ortho_5x12": {
7 "layout": [
8 {"label":"`", "x":0, "y":0},
9 {"label":"1", "x":1, "y":0},
10 {"label":"2", "x":2, "y":0},
11 {"label":"3", "x":3, "y":0},
12 {"label":"4", "x":4, "y":0},
13 {"label":"5", "x":5, "y":0},
14 {"label":"6", "x":6, "y":0},
15 {"label":"7", "x":7, "y":0},
16 {"label":"8", "x":8, "y":0},
17 {"label":"9", "x":9, "y":0},
18 {"label":"0", "x":10, "y":0},
19 {"label":"Backspace", "x":11, "y":0},
20 {"label":"Tab", "x":0, "y":1},
21 {"label":"Q", "x":1, "y":1},
22 {"label":"W", "x":2, "y":1},
23 {"label":"E", "x":3, "y":1},
24 {"label":"R", "x":4, "y":1},
25 {"label":"T", "x":5, "y":1},
26 {"label":"Y", "x":6, "y":1},
27 {"label":"U", "x":7, "y":1},
28 {"label":"I", "x":8, "y":1},
29 {"label":"O", "x":9, "y":1},
30 {"label":"P", "x":10, "y":1},
31 {"label":"Delete", "x":11, "y":1},
32 {"label":"Esc", "x":0, "y":2},
33 {"label":"A", "x":1, "y":2},
34 {"label":"S", "x":2, "y":2},
35 {"label":"D", "x":3, "y":2},
36 {"label":"F", "x":4, "y":2},
37 {"label":"G", "x":5, "y":2},
38 {"label":"H", "x":6, "y":2},
39 {"label":"J", "x":7, "y":2},
40 {"label":"K", "x":8, "y":2},
41 {"label":"L", "x":9, "y":2},
42 {"label":";", "x":10, "y":2},
43 {"label":"'", "x":11, "y":2},
44 {"label":"Shift", "x":0, "y":3},
45 {"label":"Z", "x":1, "y":3},
46 {"label":"X", "x":2, "y":3},
47 {"label":"C", "x":3, "y":3},
48 {"label":"V", "x":4, "y":3},
49 {"label":"B", "x":5, "y":3},
50 {"label":"N", "x":6, "y":3},
51 {"label":"M", "x":7, "y":3},
52 {"label":",", "x":8, "y":3},
53 {"label":".", "x":9, "y":3},
54 {"label":"/", "x":10, "y":3},
55 {"label":"Enter", "x":11, "y":3},
56 {"label":"Fn", "x":0, "y":4},
57 {"label":"Ctrl", "x":1, "y":4},
58 {"label":"Alt", "x":2, "y":4},
59 {"label":"Meta", "x":3, "y":4},
60 {"label":"Lower", "x":4, "y":4},
61 {"label":"Space", "x":5, "y":4},
62 {"label":"Space", "x":6, "y":4},
63 {"label":"Raise", "x":7, "y":4},
64 {"label":"Left", "x":8, "y":4},
65 {"label":"Down", "x":9, "y":4},
66 {"label":"Up", "x":10, "y":4},
67 {"label":"Right", "x":11, "y":4}
68 ]
69 },
70 "LAYOUT_ortho_5x12_1x2uC": {
71 "layout": [
72 {"label":"`", "x":0, "y":0},
73 {"label":"1", "x":1, "y":0},
74 {"label":"2", "x":2, "y":0},
75 {"label":"3", "x":3, "y":0},
76 {"label":"4", "x":4, "y":0},
77 {"label":"5", "x":5, "y":0},
78 {"label":"6", "x":6, "y":0},
79 {"label":"7", "x":7, "y":0},
80 {"label":"8", "x":8, "y":0},
81 {"label":"9", "x":9, "y":0},
82 {"label":"0", "x":10, "y":0},
83 {"label":"Backspace", "x":11, "y":0},
84 {"label":"Tab", "x":0, "y":1},
85 {"label":"Q", "x":1, "y":1},
86 {"label":"W", "x":2, "y":1},
87 {"label":"E", "x":3, "y":1},
88 {"label":"R", "x":4, "y":1},
89 {"label":"T", "x":5, "y":1},
90 {"label":"Y", "x":6, "y":1},
91 {"label":"U", "x":7, "y":1},
92 {"label":"I", "x":8, "y":1},
93 {"label":"O", "x":9, "y":1},
94 {"label":"P", "x":10, "y":1},
95 {"label":"Delete", "x":11, "y":1},
96 {"label":"Esc", "x":0, "y":2},
97 {"label":"A", "x":1, "y":2},
98 {"label":"S", "x":2, "y":2},
99 {"label":"D", "x":3, "y":2},
100 {"label":"F", "x":4, "y":2},
101 {"label":"G", "x":5, "y":2},
102 {"label":"H", "x":6, "y":2},
103 {"label":"J", "x":7, "y":2},
104 {"label":"K", "x":8, "y":2},
105 {"label":"L", "x":9, "y":2},
106 {"label":";", "x":10, "y":2},
107 {"label":"'", "x":11, "y":2},
108 {"label":"Shift", "x":0, "y":3},
109 {"label":"Z", "x":1, "y":3},
110 {"label":"X", "x":2, "y":3},
111 {"label":"C", "x":3, "y":3},
112 {"label":"V", "x":4, "y":3},
113 {"label":"B", "x":5, "y":3},
114 {"label":"N", "x":6, "y":3},
115 {"label":"M", "x":7, "y":3},
116 {"label":",", "x":8, "y":3},
117 {"label":".", "x":9, "y":3},
118 {"label":"/", "x":10, "y":3},
119 {"label":"Enter", "x":11, "y":3},
120 {"label":"Fn", "x":0, "y":4},
121 {"label":"Ctrl", "x":1, "y":4},
122 {"label":"Alt", "x":2, "y":4},
123 {"label":"Meta", "x":3, "y":4},
124 {"label":"Lower", "x":4, "y":4},
125 {"label":"Space", "x":5, "y":4, "w":2},
126 {"label":"Raise", "x":7, "y":4},
127 {"label":"Left", "x":8, "y":4},
128 {"label":"Down", "x":9, "y":4},
129 {"label":"Up", "x":10, "y":4},
130 {"label":"Right", "x":11, "y":4}
131 ]
132 },
133 "LAYOUT_ortho_5x12_2x2uC": {
134 "layout": [
135 {"label":"`", "x":0, "y":0},
136 {"label":"1", "x":1, "y":0},
137 {"label":"2", "x":2, "y":0},
138 {"label":"3", "x":3, "y":0},
139 {"label":"4", "x":4, "y":0},
140 {"label":"5", "x":5, "y":0},
141 {"label":"6", "x":6, "y":0},
142 {"label":"7", "x":7, "y":0},
143 {"label":"8", "x":8, "y":0},
144 {"label":"9", "x":9, "y":0},
145 {"label":"0", "x":10, "y":0},
146 {"label":"Backspace", "x":11, "y":0},
147 {"label":"Tab", "x":0, "y":1},
148 {"label":"Q", "x":1, "y":1},
149 {"label":"W", "x":2, "y":1},
150 {"label":"E", "x":3, "y":1},
151 {"label":"R", "x":4, "y":1},
152 {"label":"T", "x":5, "y":1},
153 {"label":"Y", "x":6, "y":1},
154 {"label":"U", "x":7, "y":1},
155 {"label":"I", "x":8, "y":1},
156 {"label":"O", "x":9, "y":1},
157 {"label":"P", "x":10, "y":1},
158 {"label":"Delete", "x":11, "y":1},
159 {"label":"Esc", "x":0, "y":2},
160 {"label":"A", "x":1, "y":2},
161 {"label":"S", "x":2, "y":2},
162 {"label":"D", "x":3, "y":2},
163 {"label":"F", "x":4, "y":2},
164 {"label":"G", "x":5, "y":2},
165 {"label":"H", "x":6, "y":2},
166 {"label":"J", "x":7, "y":2},
167 {"label":"K", "x":8, "y":2},
168 {"label":"L", "x":9, "y":2},
169 {"label":";", "x":10, "y":2},
170 {"label":"'", "x":11, "y":2},
171 {"label":"Shift", "x":0, "y":3},
172 {"label":"Z", "x":1, "y":3},
173 {"label":"X", "x":2, "y":3},
174 {"label":"C", "x":3, "y":3},
175 {"label":"V", "x":4, "y":3},
176 {"label":"B", "x":5, "y":3},
177 {"label":"N", "x":6, "y":3},
178 {"label":"M", "x":7, "y":3},
179 {"label":",", "x":8, "y":3},
180 {"label":".", "x":9, "y":3},
181 {"label":"/", "x":10, "y":3},
182 {"label":"Enter", "x":11, "y":3},
183 {"label":"Fn", "x":0, "y":4},
184 {"label":"Ctrl", "x":1, "y":4},
185 {"label":"Alt", "x":2, "y":4},
186 {"label":"Meta", "x":3, "y":4},
187 {"label":"Space1", "x":4, "y":4, "w":2},
188 {"label":"Space2", "x":6, "y":4, "w":2},
189 {"label":"Left", "x":8, "y":4},
190 {"label":"Down", "x":9, "y":4},
191 {"label":"Up", "x":10, "y":4},
192 {"label":"Right", "x":11, "y":4}
193 ]
194 }
195 }
196 }
diff --git a/keyboards/cannonkeys/atlas/keymaps/default/keymap.c b/keyboards/cannonkeys/atlas/keymaps/default/keymap.c
new file mode 100644
index 000000000..8a33ec445
--- /dev/null
+++ b/keyboards/cannonkeys/atlas/keymaps/default/keymap.c
@@ -0,0 +1,94 @@
1/*
2Copyright 2012,2013 Jun Wako <[email protected]>
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17#include QMK_KEYBOARD_H
18
19
20// Each layer gets a name for readability, which is then used in the keymap matrix below.
21// The underscores don't mean anything - you can have a layer called STUFF or any other name.
22// Layer names don't all need to be of the same length, obviously, and you can also skip them
23// entirely and just use numbers.
24enum layer_names {
25 _BASE,
26 _RAISE,
27 _LOWER
28};
29
30const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
31
32/* Qwerty
33 * ,-----------------------------------------------------------------------------------.
34 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
35 * |------+------+------+------+------+------+------+------+------+------+------+------|
36 * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del |
37 * |------+------+------+------+------+-------------+------+------+------+------+------|
38 * | Esc | A | S | D | F | G | H | J | K | L | ; | " |
39 * |------+------+------+------+------+------|------+------+------+------+------+------|
40 * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
41 * |------+------+------+------+------+------+------+------+------+------+------+------|
42 * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
43 * `-----------------------------------------------------------------------------------'
44 */
45[_BASE] = LAYOUT_ortho_5x12(
46 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
47 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL,
48 KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
49 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
50 RGB_MOD, KC_LCTL, KC_LALT, KC_LGUI, MO(_LOWER), KC_SPC, KC_SPC, MO(_RAISE), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
51),
52/* Lower
53 * ,-----------------------------------------------------------------------------------.
54 * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
55 * |------+------+------+------+------+-------------+------+------+------+------+------|
56 * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del |
57 * |------+------+------+------+------+-------------+------+------+------+------+------|
58 * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
59 * |------+------+------+------+------+------|------+------+------+------+------+------|
60 * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | | |
61 * |------+------+------+------+------+------+------+------+------+------+------+------|
62 * | | | | | | | | Next | Vol- | Vol+ | Play |
63 * `-----------------------------------------------------------------------------------'
64 */
65[_LOWER] = LAYOUT_ortho_5x12(
66 KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
67 KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL,
68 KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
69 _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),KC_HOME, KC_END, _______,
70 RESET, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
71),
72
73/* Raise
74 * ,-----------------------------------------------------------------------------------.
75 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
76 * |------+------+------+------+------+------+------+------+------+------+------+------|
77 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del |
78 * |------+------+------+------+------+-------------+------+------+------+------+------|
79 * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
80 * |------+------+------+------+------+------|------+------+------+------+------+------|
81 * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | | |
82 * |------+------+------+------+------+------+------+------+------+------+------+------|
83 * | | | | | | | | Next | Vol- | Vol+ | Play |
84 * `-----------------------------------------------------------------------------------'
85 */
86[_RAISE] = LAYOUT_ortho_5x12(
87 KC_GRV, KC_1, RGB_SAI, RGB_VAI, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
88 KC_GRV, KC_1, RGB_SAD, RGB_VAD, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
89 KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
90 _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______,
91 RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
92)
93}
94;
diff --git a/keyboards/cannonkeys/atlas/keymaps/via/keymap.c b/keyboards/cannonkeys/atlas/keymaps/via/keymap.c
new file mode 100644
index 000000000..251e920e7
--- /dev/null
+++ b/keyboards/cannonkeys/atlas/keymaps/via/keymap.c
@@ -0,0 +1,102 @@
1/*
2Copyright 2012,2013 Jun Wako <[email protected]>
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17#include QMK_KEYBOARD_H
18
19
20// Each layer gets a name for readability, which is then used in the keymap matrix below.
21// The underscores don't mean anything - you can have a layer called STUFF or any other name.
22// Layer names don't all need to be of the same length, obviously, and you can also skip them
23// entirely and just use numbers.
24enum layer_names {
25 _BASE,
26 _RAISE,
27 _LOWER,
28 _EXTRA
29};
30
31const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
32
33/* Qwerty
34 * ,-----------------------------------------------------------------------------------.
35 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
36 * |------+------+------+------+------+------+------+------+------+------+------+------|
37 * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del |
38 * |------+------+------+------+------+-------------+------+------+------+------+------|
39 * | Esc | A | S | D | F | G | H | J | K | L | ; | " |
40 * |------+------+------+------+------+------|------+------+------+------+------+------|
41 * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
42 * |------+------+------+------+------+------+------+------+------+------+------+------|
43 * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
44 * `-----------------------------------------------------------------------------------'
45 */
46[_BASE] = LAYOUT_ortho_5x12(
47 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
48 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL,
49 KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
50 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
51 RGB_MOD, KC_LCTL, KC_LALT, KC_LGUI, MO(_LOWER), KC_SPC, KC_SPC, MO(_RAISE), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
52),
53/* Lower
54 * ,-----------------------------------------------------------------------------------.
55 * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |n
56 * |------+------+------+------+------+-------------+------+------+------+------+------|
57 * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del |
58 * |------+------+------+------+------+-------------+------+------+------+------+------|
59 * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
60 * |------+------+------+------+------+------|------+------+------+------+------+------|
61 * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | | |
62 * |------+------+------+------+------+------+------+------+------+------+------+------|
63 * | | | | | | | | Next | Vol- | Vol+ | Play |
64 * `-----------------------------------------------------------------------------------'
65 */
66[_LOWER] = LAYOUT_ortho_5x12(
67 KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
68 KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL,
69 KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
70 _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),KC_HOME, KC_END, _______,
71 RESET, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
72),
73
74/* Raise
75 * ,-----------------------------------------------------------------------------------.
76 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
77 * |------+------+------+------+------+------+------+------+------+------+------+------|
78 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del |
79 * |------+------+------+------+------+-------------+------+------+------+------+------|
80 * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
81 * |------+------+------+------+------+------|------+------+------+------+------+------|
82 * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | | |
83 * |------+------+------+------+------+------+------+------+------+------+------+------|
84 * | | | | | | | | Next | Vol- | Vol+ | Play |
85 * `-----------------------------------------------------------------------------------'
86 */
87[_RAISE] = LAYOUT_ortho_5x12(
88 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
89 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
90 KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
91 _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______,
92 RGB_TOG, RGB_MOD, BL_INC, BL_DEC, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
93),
94
95[_EXTRA] = LAYOUT_ortho_5x12(
96 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
97 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
98 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
99 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
100 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
101)
102};
diff --git a/keyboards/cannonkeys/atlas/keymaps/via/rules.mk b/keyboards/cannonkeys/atlas/keymaps/via/rules.mk
new file mode 100644
index 000000000..1e5b99807
--- /dev/null
+++ b/keyboards/cannonkeys/atlas/keymaps/via/rules.mk
@@ -0,0 +1 @@
VIA_ENABLE = yes
diff --git a/keyboards/cannonkeys/atlas/mcuconf.h b/keyboards/cannonkeys/atlas/mcuconf.h
new file mode 100644
index 000000000..075de7841
--- /dev/null
+++ b/keyboards/cannonkeys/atlas/mcuconf.h
@@ -0,0 +1,34 @@
1/* Copyright 2020 QMK
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17/*
18 * This file was auto-generated by:
19 * `qmk chibios-confmigrate -i keyboards/cannonkeys/atlas/mcuconf.h -r platforms/chibios/GENERIC_STM32_F072XB/configs/mcuconf.h`
20 */
21
22#pragma once
23
24#include_next <mcuconf.h>
25
26#undef STM32_I2C_USE_I2C1
27#define STM32_I2C_USE_I2C1 TRUE
28
29#undef STM32_PWM_USE_TIM3
30#define STM32_PWM_USE_TIM3 TRUE
31
32#undef STM32_SPI_USE_SPI2
33#define STM32_SPI_USE_SPI2 TRUE
34
diff --git a/keyboards/cannonkeys/atlas/readme.md b/keyboards/cannonkeys/atlas/readme.md
new file mode 100644
index 000000000..a11117b8e
--- /dev/null
+++ b/keyboards/cannonkeys/atlas/readme.md
@@ -0,0 +1,10 @@
1# CannonKeys Atlas
2
3* Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan)
4* Hardware Supported: STM32F072CBT6
5
6Make example for this keyboard (after setting up your build environment):
7
8 make cannonkeys/atlas:default
9
10See 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).
diff --git a/keyboards/cannonkeys/atlas/rules.mk b/keyboards/cannonkeys/atlas/rules.mk
new file mode 100644
index 000000000..b14bde0fb
--- /dev/null
+++ b/keyboards/cannonkeys/atlas/rules.mk
@@ -0,0 +1,18 @@
1# MCU name
2MCU = STM32F072
3
4# Bootloader selection
5BOOTLOADER = stm32-dfu
6
7# Build Options
8# change yes to no to disable
9#
10BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
11MOUSEKEY_ENABLE = yes # Mouse keys
12EXTRAKEY_ENABLE = yes # Audio control and System control
13CONSOLE_ENABLE = yes # Console for debug
14COMMAND_ENABLE = yes # Commands for debug and configuration
15NKRO_ENABLE = yes # Enable N-Key Rollover
16BACKLIGHT_ENABLE = no
17RGBLIGHT_ENABLE = yes
18WS2812_DRIVER = spi
diff --git a/keyboards/cannonkeys/atlas_alps/atlas_alps.c b/keyboards/cannonkeys/atlas_alps/atlas_alps.c
new file mode 100644
index 000000000..b1cdb8451
--- /dev/null
+++ b/keyboards/cannonkeys/atlas_alps/atlas_alps.c
@@ -0,0 +1,17 @@
1/* Copyright 2020 Nathan Spears
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include "atlas_alps.h"
diff --git a/keyboards/cannonkeys/atlas_alps/atlas_alps.h b/keyboards/cannonkeys/atlas_alps/atlas_alps.h
new file mode 100644
index 000000000..5cdb15a60
--- /dev/null
+++ b/keyboards/cannonkeys/atlas_alps/atlas_alps.h
@@ -0,0 +1,33 @@
1/* Copyright 2020 Nathan Spears
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#include "quantum.h"
20
21#define LAYOUT_ortho_5x12( \
22 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, \
23 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, \
24 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, \
25 k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, \
26 k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B \
27 ) { \
28 { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B }, \
29 { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B }, \
30 { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B }, \
31 { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B }, \
32 { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B } \
33 }
diff --git a/keyboards/cannonkeys/atlas_alps/config.h b/keyboards/cannonkeys/atlas_alps/config.h
new file mode 100644
index 000000000..a92ba3163
--- /dev/null
+++ b/keyboards/cannonkeys/atlas_alps/config.h
@@ -0,0 +1,59 @@
1/* Copyright 2020 Nathan Spears
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#include "config_common.h"
20
21/* USB Device descriptor parameter */
22#define VENDOR_ID 0xCA04
23#define PRODUCT_ID 0xA7A5
24#define DEVICE_VER 0x0010
25#define MANUFACTURER CannonKeys
26#define PRODUCT Atlas
27
28/* key matrix size */
29#define MATRIX_ROWS 5
30#define MATRIX_COLS 12
31
32/* key matrix pins */
33#define MATRIX_ROW_PINS { B5, B4, D1, D7, D6 }
34#define MATRIX_COL_PINS { B6, C6, D2, E6, C7, B3, F7, F6, F5, F4, F1, F0 }
35
36#define UNUSED_PINS
37
38/* COL2ROW or ROW2COL */
39#define DIODE_DIRECTION COL2ROW
40
41
42/* Set 0 if debouncing isn't needed */
43#define DEBOUNCE 5
44
45/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
46#define LOCKING_SUPPORT_ENABLE
47
48/* Locking resynchronize hack */
49#define LOCKING_RESYNC_ENABLE
50
51
52// ws2812 options
53#define RGB_DI_PIN D4
54#define RGBLIGHT_ANIMATIONS
55#define RGBLED_NUM 36
56#define RGBLIGHT_LIMIT_VAL 230
57#define RGBLIGHT_HUE_STEP 12
58#define RGBLIGHT_SAT_STEP 12
59#define RGBLIGHT_VAL_STEP 12
diff --git a/keyboards/cannonkeys/atlas_alps/info.json b/keyboards/cannonkeys/atlas_alps/info.json
new file mode 100644
index 000000000..278b48b83
--- /dev/null
+++ b/keyboards/cannonkeys/atlas_alps/info.json
@@ -0,0 +1,10 @@
1{
2 "keyboard_name": "Atlas_Alps",
3 "url": "https://geekhack.org/index.php?topic=106683.msg2975081#msg2975081",
4 "maintainer": "Nasp",
5 "layouts": {
6 "LAYOUT_ortho_5x12": {
7 "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"|", "x":11, "y":0}, {"label":"Tab", "x":0, "y":1}, {"label":"Q", "x":1, "y":1}, {"label":"W", "x":2, "y":1}, {"label":"E", "x":3, "y":1}, {"label":"R", "x":4, "y":1}, {"label":"T", "x":5, "y":1}, {"label":"Y", "x":6, "y":1}, {"label":"U", "x":7, "y":1}, {"label":"I", "x":8, "y":1}, {"label":"O", "x":9, "y":1}, {"label":"P", "x":10, "y":1}, {"label":"Back Space", "x":11, "y":1}, {"label":"Esc", "x":0, "y":2}, {"label":"A", "x":1, "y":2}, {"label":"S", "x":2, "y":2}, {"label":"D", "x":3, "y":2}, {"label":"F", "x":4, "y":2}, {"label":"G", "x":5, "y":2}, {"label":"H", "x":6, "y":2}, {"label":"J", "x":7, "y":2}, {"label":"K", "x":8, "y":2}, {"label":"L", "x":9, "y":2}, {"label":";", "x":10, "y":2}, {"label":"'", "x":11, "y":2}, {"label":"Shift", "x":0, "y":3}, {"label":"Z", "x":1, "y":3}, {"label":"X", "x":2, "y":3}, {"label":"C", "x":3, "y":3}, {"label":"V", "x":4, "y":3}, {"label":"B", "x":5, "y":3}, {"label":"N", "x":6, "y":3}, {"label":"M", "x":7, "y":3}, {"label":",", "x":8, "y":3}, {"label":".", "x":9, "y":3}, {"label":"/", "x":10, "y":3}, {"label":"Return", "x":11, "y":3}, {"label":"Caps Lock", "x":0, "y":4}, {"label":"Ctrl", "x":1, "y":4}, {"label":"Alt", "x":2, "y":4}, {"label":"Super", "x":3, "y":4}, {"label":"&dArr;", "x":4, "y":4}, {"x":5, "y":4}, {"x":6, "y":4}, {"label":"&uArr;", "x":7, "y":4}, {"label":"&larr;", "x":8, "y":4}, {"label":"&darr;", "x":9, "y":4}, {"label":"&uarr;", "x":10, "y":4}, {"label":"&rarr;", "x":11, "y":4}]
8 }
9 }
10}
diff --git a/keyboards/cannonkeys/atlas_alps/keymaps/default/config.h b/keyboards/cannonkeys/atlas_alps/keymaps/default/config.h
new file mode 100644
index 000000000..c6f30237d
--- /dev/null
+++ b/keyboards/cannonkeys/atlas_alps/keymaps/default/config.h
@@ -0,0 +1,19 @@
1/* Copyright 2020 Nathan Spears
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#define TAPPING_TOGGLE 2
diff --git a/keyboards/cannonkeys/atlas_alps/keymaps/default/keymap.c b/keyboards/cannonkeys/atlas_alps/keymaps/default/keymap.c
new file mode 100644
index 000000000..c260add4d
--- /dev/null
+++ b/keyboards/cannonkeys/atlas_alps/keymaps/default/keymap.c
@@ -0,0 +1,107 @@
1/* Copyright 2020 Nathan Spears
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include QMK_KEYBOARD_H
18
19// Defines for task manager and such
20#define CALTDEL LCTL(LALT(KC_DEL))
21#define TSKMGR LCTL(LSFT(KC_ESC))
22
23
24const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
25
26/* Qwerty
27 * ,-----------------------------------------------------------------------------------.
28 * |------+------+------+------+------+------+------+------+------+------+------+------|
29 * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del |
30 * |------+------+------+------+------+-------------+------+------+------+------+------|
31 * | Ctrl | A | S | D | F | G | H | J | K | L | ; | " |
32 * |------+------+------+------+------+------|------+------+------+------+------+------|
33 * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
34 * |------+------+------+------+------+------+------+------+------+------+------+------|
35 * | Esc | OS | Alt | Layer | Space | Alt | RGB | Super |
36 * `-----------------------------------------------------------------------------------'
37 */
38[0] = LAYOUT_ortho_5x12(
39 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
40 KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC,
41 CTL_T(KC_ESC), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
42 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
43 RGB_TOG, KC_LGUI, KC_LALT, KC_PSCR, TT(1), KC_SPC, KC_SPC, TT(2), KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT
44),
45
46/* 1
47 * ,-----------------------------------------------------------------------------------.
48 * |------+------+------+------+------+------+------+------+------+------+------+------|
49 * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Del |
50 * |------+------+------+------+------+-------------+------+------+------+------+------|
51 * | Esc | A | R | S | T | D | H | N | E | I | O | " |
52 * |------+------+------+------+------+------|------+------+------+------+------+------|
53 * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter |
54 * |------+------+------+------+------+------+------+------+------+------+------+------|
55 * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
56 * `-----------------------------------------------------------------------------------'
57 */
58[1] = LAYOUT_ortho_5x12(
59 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______,
60 KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
61 KC_SLSH, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS,
62 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_EQL, _______, _______, _______,
63 KC_NUBS, CALTDEL, TSKMGR, _______, _______, _______, _______, _______, _______, _______, _______, _______
64),
65
66/* 2
67 * ,-----------------------------------------------------------------------------------.
68 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
69 * |------+------+------+------+------+------+------+------+------+------+------+------|
70 * | Tab | " | , | . | P | Y | F | G | C | R | L | Del |
71 * |------+------+------+------+------+-------------+------+------+------+------+------|
72 * | Esc | A | O | E | U | I | D | H | T | N | S | / |
73 * |------+------+------+------+------+------|------+------+------+------+------+------|
74 * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter |
75 * |------+------+------+------+------+------+------+------+------+------+------+------|
76 * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
77 * `-----------------------------------------------------------------------------------'
78 */
79[2] = LAYOUT_ortho_5x12(
80 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
81 _______, _______, _______, KC_UP, _______, _______, _______, KC_UNDS, _______, KC_LBRC, KC_RBRC, _______,
82 _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_MINS, _______, KC_LCBR, KC_RCBR, _______,
83 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
84 RESET, KC_GRV, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
85),
86
87/* 3
88 * ,-----------------------------------------------------------------------------------.
89 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
90 * |------+------+------+------+------+------+------+------+------+------+------+------|
91 * | Tab | " | , | . | P | Y | F | G | C | R | L | Del |
92 * |------+------+------+------+------+-------------+------+------+------+------+------|
93 * | Esc | A | O | E | U | I | D | H | T | N | S | / |
94 * |------+------+------+------+------+------|------+------+------+------+------+------|
95 * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter |
96 * |------+------+------+------+------+------+------+------+------+------+------+------|
97 * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
98 * `-----------------------------------------------------------------------------------'
99 */
100[3] = LAYOUT_ortho_5x12(
101 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
102 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
103 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
104 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
105 RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
106),
107};
diff --git a/keyboards/cannonkeys/atlas_alps/keymaps/default/readme.md b/keyboards/cannonkeys/atlas_alps/keymaps/default/readme.md
new file mode 100644
index 000000000..2cede9af1
--- /dev/null
+++ b/keyboards/cannonkeys/atlas_alps/keymaps/default/readme.md
@@ -0,0 +1,2 @@
1# The Default atlas_alps Layout
2
diff --git a/keyboards/cannonkeys/atlas_alps/keymaps/via/keymap.c b/keyboards/cannonkeys/atlas_alps/keymaps/via/keymap.c
new file mode 100644
index 000000000..3e42b3b5a
--- /dev/null
+++ b/keyboards/cannonkeys/atlas_alps/keymaps/via/keymap.c
@@ -0,0 +1,107 @@
1/* Copyright 2015-2017 Jack Humbert
2 * Modified by Nasp for the Quark
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include QMK_KEYBOARD_H
18
19// Defines for task manager and such
20#define CALTDEL LCTL(LALT(KC_DEL))
21#define TSKMGR LCTL(LSFT(KC_ESC))
22
23
24const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
25
26/* Qwerty
27 * ,-----------------------------------------------------------------------------------.
28 * |------+------+------+------+------+------+------+------+------+------+------+------|
29 * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del |
30 * |------+------+------+------+------+-------------+------+------+------+------+------|
31 * | Ctrl | A | S | D | F | G | H | J | K | L | ; | " |
32 * |------+------+------+------+------+------|------+------+------+------+------+------|
33 * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
34 * |------+------+------+------+------+------+------+------+------+------+------+------|
35 * | Esc | OS | Alt | Layer | Space | Alt | RGB | Super |
36 * `-----------------------------------------------------------------------------------'
37 */
38[0] = LAYOUT_ortho_5x12(
39 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
40 KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC,
41 CTL_T(KC_ESC), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
42 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
43 RGB_TOG, KC_LGUI, KC_LALT, KC_PSCR, TT(1), KC_SPC, KC_SPC, TT(2), KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT
44),
45
46/* 1
47 * ,-----------------------------------------------------------------------------------.
48 * |------+------+------+------+------+------+------+------+------+------+------+------|
49 * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Del |
50 * |------+------+------+------+------+-------------+------+------+------+------+------|
51 * | Esc | A | R | S | T | D | H | N | E | I | O | " |
52 * |------+------+------+------+------+------|------+------+------+------+------+------|
53 * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter |
54 * |------+------+------+------+------+------+------+------+------+------+------+------|
55 * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
56 * `-----------------------------------------------------------------------------------'
57 */
58[1] = LAYOUT_ortho_5x12(
59 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______,
60 KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
61 KC_SLSH, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS,
62 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_EQL, _______, _______, _______,
63 KC_NUBS, CALTDEL, TSKMGR, _______, _______, _______, _______, _______, _______, _______, _______, _______
64),
65
66/* 2
67 * ,-----------------------------------------------------------------------------------.
68 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
69 * |------+------+------+------+------+------+------+------+------+------+------+------|
70 * | Tab | " | , | . | P | Y | F | G | C | R | L | Del |
71 * |------+------+------+------+------+-------------+------+------+------+------+------|
72 * | Esc | A | O | E | U | I | D | H | T | N | S | / |
73 * |------+------+------+------+------+------|------+------+------+------+------+------|
74 * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter |
75 * |------+------+------+------+------+------+------+------+------+------+------+------|
76 * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
77 * `-----------------------------------------------------------------------------------'
78 */
79[2] = LAYOUT_ortho_5x12(
80 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
81 _______, _______, _______, KC_UP, _______, _______, _______, KC_UNDS, _______, KC_LBRC, KC_RBRC, _______,
82 _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_MINS, _______, KC_LCBR, KC_RCBR, _______,
83 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
84 RESET, KC_GRV, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
85),
86
87/* 3
88 * ,-----------------------------------------------------------------------------------.
89 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
90 * |------+------+------+------+------+------+------+------+------+------+------+------|
91 * | Tab | " | , | . | P | Y | F | G | C | R | L | Del |
92 * |------+------+------+------+------+-------------+------+------+------+------+------|
93 * | Esc | A | O | E | U | I | D | H | T | N | S | / |
94 * |------+------+------+------+------+------|------+------+------+------+------+------|
95 * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter |
96 * |------+------+------+------+------+------+------+------+------+------+------+------|
97 * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
98 * `-----------------------------------------------------------------------------------'
99 */
100[3] = LAYOUT_ortho_5x12(
101 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
102 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
103 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
104 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
105 RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
106),
107};
diff --git a/keyboards/cannonkeys/atlas_alps/keymaps/via/rules.mk b/keyboards/cannonkeys/atlas_alps/keymaps/via/rules.mk
new file mode 100644
index 000000000..036bd6d1c
--- /dev/null
+++ b/keyboards/cannonkeys/atlas_alps/keymaps/via/rules.mk
@@ -0,0 +1 @@
VIA_ENABLE = yes \ No newline at end of file
diff --git a/keyboards/cannonkeys/atlas_alps/readme.md b/keyboards/cannonkeys/atlas_alps/readme.md
new file mode 100644
index 000000000..7bef5c24f
--- /dev/null
+++ b/keyboards/cannonkeys/atlas_alps/readme.md
@@ -0,0 +1,13 @@
1# Cannon Keys Atlas_Alps
2
3The Atlas_Alps PCB is an alternate PCB for the Atlas as sold by Cannon Keys. Instead of hotswap, it includes compatibility for Alps and MX switches.
4
5* Keyboard Maintainer: Nasp
6* Hardware Supported: ATmega32U4
7* Hardware Availability: https://geekhack.org/index.php?topic=106683.msg2975081#msg2975081
8
9Make example for this keyboard (after setting up your build environment):
10
11 make cannonkeys/atlas_alps:default
12
13See 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).
diff --git a/keyboards/cannonkeys/atlas_alps/rules.mk b/keyboards/cannonkeys/atlas_alps/rules.mk
new file mode 100644
index 000000000..b2d2b4285
--- /dev/null
+++ b/keyboards/cannonkeys/atlas_alps/rules.mk
@@ -0,0 +1,20 @@
1# MCU name
2MCU = atmega32u4
3
4# Bootloader selection
5BOOTLOADER = atmel-dfu
6
7# Build Options
8# change yes to no to disable
9#
10BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
11MOUSEKEY_ENABLE = yes # Mouse keys
12EXTRAKEY_ENABLE = yes # Audio control and System control
13CONSOLE_ENABLE = no # Console for debug
14COMMAND_ENABLE = no # Commands for debug and configuration
15NKRO_ENABLE = yes # Enable N-Key Rollover
16BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
17RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
18AUDIO_ENABLE = no # Audio output
19
20LAYOUTS = ortho_5x12
diff --git a/keyboards/cannonkeys/balance/balance.c b/keyboards/cannonkeys/balance/balance.c
new file mode 100644
index 000000000..2bb448552
--- /dev/null
+++ b/keyboards/cannonkeys/balance/balance.c
@@ -0,0 +1,27 @@
1/*
2Copyright 2021 Andrew Kannan
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17#include "balance.h"
18
19bool encoder_update_kb(uint8_t index, bool clockwise) {
20 if (!encoder_update_user(index, clockwise)) { return false; }
21 if (clockwise) {
22 tap_code(KC_VOLU);
23 } else {
24 tap_code(KC_VOLD);
25 }
26 return true;
27}
diff --git a/keyboards/cannonkeys/balance/balance.h b/keyboards/cannonkeys/balance/balance.h
new file mode 100644
index 000000000..7d0ad50a3
--- /dev/null
+++ b/keyboards/cannonkeys/balance/balance.h
@@ -0,0 +1,33 @@
1/*
2Copyright 2021 Andrew Kannan
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17#pragma once
18
19#include "quantum.h"
20
21#define LAYOUT_all( \
22 K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, K017, K018, K019, \
23 K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K115, K116, K117, K118, K119, \
24 K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K215, K216, K217, K218, K219, \
25 K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K315, K316, K317, K318, K319, \
26 K400, K401, K402, K406, K410, K411, K412, K413, K415, K416, K417, K418, K419 \
27) { \
28 { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, K017, K018, K019 }, \
29 { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, KC_NO, K115, K116, K117, K118, K119 }, \
30 { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, KC_NO, K215, K216, K217, K218, K219 }, \
31 { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, KC_NO, KC_NO, K315, K316, K317, K318, K319 }, \
32 { K400, K401, K402, KC_NO, KC_NO, KC_NO, K406, KC_NO, KC_NO, KC_NO, K410, K411, K412, K413, KC_NO, K415, K416, K417, K418, K419 } \
33}
diff --git a/keyboards/cannonkeys/balance/chconf.h b/keyboards/cannonkeys/balance/chconf.h
new file mode 100644
index 000000000..9f541944f
--- /dev/null
+++ b/keyboards/cannonkeys/balance/chconf.h
@@ -0,0 +1,31 @@
1/* Copyright 2020 QMK
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17/*
18 * This file was auto-generated by:
19 * `qmk chibios-confmigrate -i keyboards/cannonkeys/db60/chconf.h -r platforms/chibios/common/configs/chconf.h`
20 */
21
22#pragma once
23
24#define CH_CFG_ST_FREQUENCY 10000
25
26#define CH_CFG_OPTIMIZE_SPEED FALSE
27
28#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE
29
30#include_next <chconf.h>
31
diff --git a/keyboards/cannonkeys/balance/config.h b/keyboards/cannonkeys/balance/config.h
new file mode 100644
index 000000000..2cdf7d27a
--- /dev/null
+++ b/keyboards/cannonkeys/balance/config.h
@@ -0,0 +1,71 @@
1/*
2Copyright 2015 Jun Wako <[email protected]>
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#pragma once
19
20/* USB Device descriptor parameter */
21#define VENDOR_ID 0xCA04
22#define PRODUCT_ID 0xBA77
23#define DEVICE_VER 0x0001
24#define MANUFACTURER CannonKeys
25#define PRODUCT Balance
26
27/* key matrix size */
28#define MATRIX_ROWS 5
29#define MATRIX_COLS 20
30
31#define MATRIX_COL_PINS { B11, B10, B2, B1, B0, A7, A6, A5, A4, A3, A2, A1, F1, C15, B3, C14, C13, B9, B8, B7 }
32#define MATRIX_ROW_PINS { B4, A15, A14, A0, F0 }
33#define DIODE_DIRECTION COL2ROW
34
35
36/* define if matrix has ghost */
37//#define MATRIX_HAS_GHOST
38
39/* Set 0 if debouncing isn't needed */
40#define DEBOUNCE 5
41
42/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
43#define LOCKING_SUPPORT_ENABLE
44/* Locking resynchronize hack */
45#define LOCKING_RESYNC_ENABLE
46
47#define ENCODERS_PAD_A { B5 }
48#define ENCODERS_PAD_B { B6 }
49
50#define ENCODER_RESOLUTION 2
51#define TAP_CODE_DELAY 25
52
53#define DYNAMIC_KEYMAP_LAYER_COUNT 3
54
55/*
56 * Feature disable options
57 * These options are also useful to firmware size reduction.
58 */
59
60/* disable debug print */
61//#define NO_DEBUG
62
63/* disable print */
64//#define NO_PRINT
65
66/* disable action features */
67//#define NO_ACTION_LAYER
68//#define NO_ACTION_TAPPING
69//#define NO_ACTION_ONESHOT
70//#define NO_ACTION_MACRO
71//#define NO_ACTION_FUNCTION
diff --git a/keyboards/cannonkeys/balance/halconf.h b/keyboards/cannonkeys/balance/halconf.h
new file mode 100644
index 000000000..de8d8035d
--- /dev/null
+++ b/keyboards/cannonkeys/balance/halconf.h
@@ -0,0 +1,31 @@
1/* Copyright 2020 QMK
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17/*
18 * This file was auto-generated by:
19 * `qmk chibios-confmigrate -i keyboards/cannonkeys/db60/halconf.h -r platforms/chibios/common/configs/halconf.h`
20 */
21
22#pragma once
23
24#define HAL_USE_I2C TRUE
25
26#define HAL_USE_PWM TRUE
27
28#define HAL_USE_SPI TRUE
29
30#include_next <halconf.h>
31
diff --git a/keyboards/cannonkeys/balance/info.json b/keyboards/cannonkeys/balance/info.json
new file mode 100644
index 000000000..9aa79c51c
--- /dev/null
+++ b/keyboards/cannonkeys/balance/info.json
@@ -0,0 +1,104 @@
1{
2 "keyboard_name": "Balance",
3 "url": "https://cannonkeys.com",
4 "maintainer": "awkannan",
5 "layouts": {
6 "LAYOUT_all": {
7 "layout": [
8 {"label":"~", "x":0, "y":0.25},
9 {"label":"!", "x":1, "y":0.25},
10 {"label":"@", "x":2, "y":0.25},
11 {"label":"#", "x":3, "y":0.25},
12 {"label":"$", "x":4, "y":0.25},
13 {"label":"%", "x":5, "y":0.25},
14 {"label":"^", "x":6, "y":0.25},
15 {"label":"&", "x":7, "y":0.25},
16 {"label":"*", "x":8, "y":0.25},
17 {"label":"(", "x":9, "y":0.25},
18 {"label":")", "x":10, "y":0.25},
19 {"label":"_", "x":11, "y":0.25},
20 {"label":"+", "x":12, "y":0.25},
21 {"label":"Backspace", "x":13, "y":0.25},
22 {"label":"Delete", "x":14, "y":0.25},
23 {"label":"KNOB", "x":15.25, "y":0},
24 {"label":"Num Lock", "x":16.5, "y":0.25},
25 {"label":"/", "x":17.5, "y":0.25},
26 {"label":"*", "x":18.5, "y":0.25},
27 {"label":"-", "x":19.5, "y":0.25},
28
29 {"label":"Tab", "x":0, "y":1.25, "w":1.5},
30 {"label":"Q", "x":1.5, "y":1.25},
31 {"label":"W", "x":2.5, "y":1.25},
32 {"label":"E", "x":3.5, "y":1.25},
33 {"label":"R", "x":4.5, "y":1.25},
34 {"label":"T", "x":5.5, "y":1.25},
35 {"label":"Y", "x":6.5, "y":1.25},
36 {"label":"U", "x":7.5, "y":1.25},
37 {"label":"I", "x":8.5, "y":1.25},
38 {"label":"O", "x":9.5, "y":1.25},
39 {"label":"P", "x":10.5, "y":1.25},
40 {"label":"{", "x":11.5, "y":1.25},
41 {"label":"}", "x":12.5, "y":1.25},
42 {"label":"|", "x":13.5, "y":1.25, "w":1.5},
43 {"label":"PgUp", "x":15.25, "y":1.25},
44 {"label":"7", "x":16.5, "y":1.25},
45 {"label":"8", "x":17.5, "y":1.25},
46 {"label":"9", "x":18.5, "y":1.25},
47 {"label":"+", "x":19.5, "y":1.25},
48
49 {"label":"Caps Lock", "x":0, "y":2.25, "w":1.75},
50 {"label":"A", "x":1.75, "y":2.25},
51 {"label":"S", "x":2.75, "y":2.25},
52 {"label":"D", "x":3.75, "y":2.25},
53 {"label":"F", "x":4.75, "y":2.25},
54 {"label":"G", "x":5.75, "y":2.25},
55 {"label":"H", "x":6.75, "y":2.25},
56 {"label":"J", "x":7.75, "y":2.25},
57 {"label":"K", "x":8.75, "y":2.25},
58 {"label":"L", "x":9.75, "y":2.25},
59 {"label":":", "x":10.75, "y":2.25},
60 {"label":"\"", "x":11.75, "y":2.25},
61 {"label":"ISO ~", "x":12.75, "y":2.25},
62 {"label":"Enter", "x":13.75, "y":2.25, "w":1.25},
63 {"label":"PgDn", "x":15.25, "y":2.25},
64 {"label":"4", "x":16.5, "y":2.25},
65 {"label":"5", "x":17.5, "y":2.25},
66 {"label":"6", "x":18.5, "y":2.25},
67 {"label":"+", "x":19.5, "y":2.25},
68
69 {"label":"Shift", "x":0, "y":3.25, "w":1.25},
70 {"label":"ISO |", "x":1.25, "y":3.25},
71 {"label":"Z", "x":2.25, "y":3.25},
72 {"label":"X", "x":3.25, "y":3.25},
73 {"label":"C", "x":4.25, "y":3.25},
74 {"label":"V", "x":5.25, "y":3.25},
75 {"label":"B", "x":6.25, "y":3.25},
76 {"label":"N", "x":7.25, "y":3.25},
77 {"label":"M", "x":8.25, "y":3.25},
78 {"label":"<", "x":9.25, "y":3.25},
79 {"label":">", "x":10.25, "y":3.25},
80 {"label":"?", "x":11.25, "y":3.25},
81 {"label":"Shift", "x":12.25, "y":3.25, "w":2.75},
82 {"label":"Up", "x":15.25, "y":3.5},
83 {"label":"1", "x":16.5, "y":3.25},
84 {"label":"2", "x":17.5, "y":3.25},
85 {"label":"3", "x":18.5, "y":3.25},
86 {"label":"Enter", "x":19.5, "y":3.25},
87
88 {"label":"Ctrl", "x":0, "y":4.25, "w":1.25},
89 {"label":"Win", "x":1.25, "y":4.25},
90 {"label":"Alt", "x":2.25, "y":4.25, "w":1.25},
91 {"label":"Space", "x":3.5, "y":4.25, "w":7},
92 {"label":"Alt", "x":10.5, "y":4.25, "w":1.25},
93 {"label":"Fn", "x":11.75, "y":4.25},
94 {"label":"Ctrl", "x":12.75, "y":4.25, "w":1.25},
95 {"label":"Left", "x":14.25, "y":4.5},
96 {"label":"Down", "x":15.25, "y":4.5},
97 {"label":"Right", "x":16.25, "y":4.5},
98 {"label":"0", "x":17.5, "y":4.25},
99 {"label":".", "x":18.5, "y":4.25},
100 {"label":"Enter", "x":19.5, "y":4.25}
101 ]
102 }
103 }
104}
diff --git a/keyboards/cannonkeys/balance/keymaps/default/keymap.c b/keyboards/cannonkeys/balance/keymaps/default/keymap.c
new file mode 100644
index 000000000..b1e507bc1
--- /dev/null
+++ b/keyboards/cannonkeys/balance/keymaps/default/keymap.c
@@ -0,0 +1,46 @@
1/*
2Copyright 2012,2013 Jun Wako <[email protected]>
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17#include QMK_KEYBOARD_H
18
19
20// Each layer gets a name for readability, which is then used in the keymap matrix below.
21// The underscores don't mean anything - you can have a layer called STUFF or any other name.
22// Layer names don't all need to be of the same length, obviously, and you can also skip them
23// entirely and just use numbers.
24enum layer_names {
25 _BASE,
26 _FN1,
27};
28
29const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
30
31 [_BASE] = LAYOUT_all(
32 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_MPLY, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
33 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, KC_P7, KC_P8, KC_P9, KC_PPLS,
34 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUBS, KC_ENT, KC_PGDN, KC_P4, KC_P5, KC_P6, KC_PPLS,
35 KC_LSFT, KC_NUHS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT,
36 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT
37 ),
38
39 [_FN1] = LAYOUT_all(
40 RESET , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
41 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
42 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
43 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
44 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
45 )
46};
diff --git a/keyboards/cannonkeys/balance/keymaps/via/keymap.c b/keyboards/cannonkeys/balance/keymaps/via/keymap.c
new file mode 100644
index 000000000..ad5f009d4
--- /dev/null
+++ b/keyboards/cannonkeys/balance/keymaps/via/keymap.c
@@ -0,0 +1,56 @@
1/*
2Copyright 2012,2013 Jun Wako <[email protected]>
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17#include QMK_KEYBOARD_H
18
19
20// Each layer gets a name for readability, which is then used in the keymap matrix below.
21// The underscores don't mean anything - you can have a layer called STUFF or any other name.
22// Layer names don't all need to be of the same length, obviously, and you can also skip them
23// entirely and just use numbers.
24enum layer_names {
25 _BASE,
26 _FN1,
27 _FN2,
28};
29
30const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
31
32 [_BASE] = LAYOUT_all(
33 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_MPLY, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
34 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, KC_P7, KC_P8, KC_P9, KC_PPLS,
35 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUBS, KC_ENT, KC_PGDN, KC_P4, KC_P5, KC_P6, KC_PPLS,
36 KC_LSFT, KC_NUHS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT,
37 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT
38 ),
39
40 [_FN1] = LAYOUT_all(
41 RESET , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
42 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
43 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
44 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
45 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
46 ),
47
48 [_FN2] = LAYOUT_all(
49 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
50 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
51 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
52 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
53 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
54 )
55};
56
diff --git a/keyboards/cannonkeys/balance/keymaps/via/rules.mk b/keyboards/cannonkeys/balance/keymaps/via/rules.mk
new file mode 100644
index 000000000..1e5b99807
--- /dev/null
+++ b/keyboards/cannonkeys/balance/keymaps/via/rules.mk
@@ -0,0 +1 @@
VIA_ENABLE = yes
diff --git a/keyboards/cannonkeys/balance/mcuconf.h b/keyboards/cannonkeys/balance/mcuconf.h
new file mode 100644
index 000000000..f2212bd2c
--- /dev/null
+++ b/keyboards/cannonkeys/balance/mcuconf.h
@@ -0,0 +1,34 @@
1/* Copyright 2020 QMK
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17/*
18 * This file was auto-generated by:
19 * `qmk chibios-confmigrate -i keyboards/cannonkeys/db60/mcuconf.h -r platforms/chibios/GENERIC_STM32_F072XB/configs/mcuconf.h`
20 */
21
22#pragma once
23
24#include_next <mcuconf.h>
25
26#undef STM32_I2C_USE_I2C1
27#define STM32_I2C_USE_I2C1 TRUE
28
29#undef STM32_PWM_USE_TIM3
30#define STM32_PWM_USE_TIM3 TRUE
31
32#undef STM32_SPI_USE_SPI2
33#define STM32_SPI_USE_SPI2 TRUE
34
diff --git a/keyboards/cannonkeys/balance/readme.md b/keyboards/cannonkeys/balance/readme.md
new file mode 100644
index 000000000..eb0616984
--- /dev/null
+++ b/keyboards/cannonkeys/balance/readme.md
@@ -0,0 +1,10 @@
1# CannonKeys Balance
2
3* Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan)
4* Hardware Supported: STM32F072CBT6
5
6Make example for this keyboard (after setting up your build environment):
7
8 make cannonkeys/balance:default
9
10See 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).
diff --git a/keyboards/cannonkeys/balance/rules.mk b/keyboards/cannonkeys/balance/rules.mk
new file mode 100644
index 000000000..e651d67c1
--- /dev/null
+++ b/keyboards/cannonkeys/balance/rules.mk
@@ -0,0 +1,25 @@
1# MCU name
2MCU = STM32F072
3
4# Bootloader selection
5BOOTLOADER = stm32-dfu
6
7# Wildcard to allow APM32 MCU
8DFU_SUFFIX_ARGS = -p FFFF -v FFFF
9
10# Build Options
11# change yes to no to disable
12#
13BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
14MOUSEKEY_ENABLE = yes # Mouse keys
15EXTRAKEY_ENABLE = yes # Audio control and System control
16CONSOLE_ENABLE = yes # Console for debug
17COMMAND_ENABLE = yes # Commands for debug and configuration
18NKRO_ENABLE = yes # Enable N-Key Rollover
19BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
20RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
21AUDIO_ENABLE = no # Audio output
22ENCODER_ENABLE = yes
23
24# Enter lower-power sleep mode when on the ChibiOS idle thread
25OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
diff --git a/keyboards/cannonkeys/chimera65/chconf.h b/keyboards/cannonkeys/chimera65/chconf.h
new file mode 100644
index 000000000..644ca1c1c
--- /dev/null
+++ b/keyboards/cannonkeys/chimera65/chconf.h
@@ -0,0 +1,31 @@
1/* Copyright 2020 QMK
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17/*
18 * This file was auto-generated by:
19 * `qmk chibios-confmigrate -i keyboards/cannonkeys/chimera65/chconf.h -r platforms/chibios/common/configs/chconf.h`
20 */
21
22#pragma once
23
24#define CH_CFG_ST_FREQUENCY 10000
25
26#define CH_CFG_OPTIMIZE_SPEED FALSE
27
28#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE
29
30#include_next <chconf.h>
31
diff --git a/keyboards/cannonkeys/chimera65/chimera65.c b/keyboards/cannonkeys/chimera65/chimera65.c
new file mode 100644
index 000000000..14f170d9c
--- /dev/null
+++ b/keyboards/cannonkeys/chimera65/chimera65.c
@@ -0,0 +1 @@
#include "chimera65.h"
diff --git a/keyboards/cannonkeys/chimera65/chimera65.h b/keyboards/cannonkeys/chimera65/chimera65.h
new file mode 100644
index 000000000..81532f3f1
--- /dev/null
+++ b/keyboards/cannonkeys/chimera65/chimera65.h
@@ -0,0 +1,17 @@
1#pragma once
2
3#include "quantum.h"
4
5#define LAYOUT_default( \
6 K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \
7 K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K115, \
8 K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K215, \
9 K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K315, \
10 K400, K401, K402, K406, K409, K410, K411, K412, K413, K415 \
11) { \
12 { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, KC_NO }, \
13 { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, KC_NO, K115 }, \
14 { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, KC_NO, K215 }, \
15 { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, KC_NO, K315 }, \
16 { K400, K401, K402, KC_NO, KC_NO, KC_NO, K406, KC_NO, KC_NO, K409, K410, K411, K412, K413, KC_NO, K415 } \
17}
diff --git a/keyboards/cannonkeys/chimera65/config.h b/keyboards/cannonkeys/chimera65/config.h
new file mode 100644
index 000000000..f7108264a
--- /dev/null
+++ b/keyboards/cannonkeys/chimera65/config.h
@@ -0,0 +1,70 @@
1/*
2Copyright 2015 Jun Wako <[email protected]>
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#pragma once
19
20/* USB Device descriptor parameter */
21#define VENDOR_ID 0xCA04
22#define PRODUCT_ID 0xC024
23#define DEVICE_VER 0x0001
24#define MANUFACTURER CannonKeys
25#define PRODUCT Chimera65
26
27/* key matrix size */
28#define MATRIX_ROWS 5
29#define MATRIX_COLS 16
30
31#define MATRIX_COL_PINS { B11, B10, B2, B1, A5, A4, A3, A2, A1, F0, C15, C14, A9, A8, A10, B3 }
32#define MATRIX_ROW_PINS { A13, A14, A15, C13, B8 }
33#define DIODE_DIRECTION COL2ROW
34
35#define BACKLIGHT_PIN A6
36#define BACKLIGHT_PWM_DRIVER PWMD3
37#define BACKLIGHT_PWM_CHANNEL 1
38#define BACKLIGHT_PAL_MODE 1
39#define BACKLIGHT_LEVELS 6
40#define BACKLIGHT_BREATHING
41#define BREATHING_PERIOD 6
42
43/* define if matrix has ghost */
44//#define MATRIX_HAS_GHOST
45
46/* Set 0 if debouncing isn't needed */
47#define DEBOUNCE 5
48
49/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
50#define LOCKING_SUPPORT_ENABLE
51/* Locking resynchronize hack */
52#define LOCKING_RESYNC_ENABLE
53
54/*
55 * Feature disable options
56 * These options are also useful to firmware size reduction.
57 */
58
59/* disable debug print */
60//#define NO_DEBUG
61
62/* disable print */
63//#define NO_PRINT
64
65/* disable action features */
66//#define NO_ACTION_LAYER
67//#define NO_ACTION_TAPPING
68//#define NO_ACTION_ONESHOT
69//#define NO_ACTION_MACRO
70//#define NO_ACTION_FUNCTION
diff --git a/keyboards/cannonkeys/chimera65/halconf.h b/keyboards/cannonkeys/chimera65/halconf.h
new file mode 100644
index 000000000..f4105c3f8
--- /dev/null
+++ b/keyboards/cannonkeys/chimera65/halconf.h
@@ -0,0 +1,29 @@
1/* Copyright 2020 QMK
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17/*
18 * This file was auto-generated by:
19 * `qmk chibios-confmigrate -i keyboards/cannonkeys/chimera65/halconf.h -r platforms/chibios/common/configs/halconf.h`
20 */
21
22#pragma once
23
24#define HAL_USE_I2C TRUE
25
26#define HAL_USE_PWM TRUE
27
28#include_next <halconf.h>
29
diff --git a/keyboards/cannonkeys/chimera65/info.json b/keyboards/cannonkeys/chimera65/info.json
new file mode 100644
index 000000000..f1854e304
--- /dev/null
+++ b/keyboards/cannonkeys/chimera65/info.json
@@ -0,0 +1,90 @@
1{
2 "keyboard_name": "Chimera65",
3 "url": "https://cannonkeys.com",
4 "maintainer": "awkannan",
5 "layouts": {
6 "LAYOUT_default": {
7 "layout": [
8 {"x": 0, "y": 0},
9 {"x": 1, "y": 0},
10 {"x": 2, "y": 0},
11 {"x": 3, "y": 0},
12 {"x": 4, "y": 0},
13 {"x": 5, "y": 0},
14 {"x": 6, "y": 0},
15 {"x": 7, "y": 0},
16 {"x": 8, "y": 0},
17 {"x": 9, "y": 0},
18 {"x": 10, "y": 0},
19 {"x": 11, "y": 0},
20 {"x": 12, "y": 0},
21 {"x": 13, "y": 0},
22 {"x": 14, "y": 0},
23
24 {"x": 0, "y": 1, "w": 1.5},
25 {"x": 1.5, "y": 1},
26 {"x": 2.5, "y": 1},
27 {"x": 3.5, "y": 1},
28 {"x": 4.5, "y": 1},
29 {"x": 5.5, "y": 1},
30 {"x": 6.5, "y": 1},
31 {"x": 7.5, "y": 1},
32 {"x": 8.5, "y": 1},
33 {"x": 9.5, "y": 1},
34 {"x": 10.5, "y": 1},
35 {"x": 11.5, "y": 1},
36 {"x": 12.5, "y": 1},
37 {"x": 13.5, "y": 1, "w": 1.5},
38
39 {"x": 15.5, "y": 1},
40
41 {"x": 0, "y": 2, "w": 1.75},
42 {"x": 1.75, "y": 2},
43 {"x": 2.75, "y": 2},
44 {"x": 3.75, "y": 2},
45 {"x": 4.75, "y": 2},
46 {"x": 5.75, "y": 2},
47 {"x": 6.75, "y": 2},
48 {"x": 7.75, "y": 2},
49 {"x": 8.75, "y": 2},
50 {"x": 9.75, "y": 2},
51 {"x": 10.75, "y": 2},
52 {"x": 11.75, "y": 2},
53 {"x": 12.75, "y": 2},
54 {"x": 13.75, "y": 2, "w": 1.25},
55
56 {"x": 15.5, "y": 2},
57
58 {"x": 0, "y": 3, "w": 1.25},
59 {"x": 1.25, "y": 3},
60 {"x": 2.25, "y": 3},
61 {"x": 3.25, "y": 3},
62 {"x": 4.25, "y": 3},
63 {"x": 5.25, "y": 3},
64 {"x": 6.25, "y": 3},
65 {"x": 7.25, "y": 3},
66 {"x": 8.25, "y": 3},
67 {"x": 9.25, "y": 3},
68 {"x": 10.25, "y": 3},
69 {"x": 11.25, "y": 3},
70 {"x": 12.25, "y": 3, "w": 1.75},
71
72 {"x": 14.25, "y": 3.25},
73
74 {"x": 15.5, "y": 3},
75
76 {"x": 0, "y": 4, "w": 1.25},
77 {"x": 1.25, "y": 4, "w": 1.25},
78 {"x": 2.5, "y": 4, "w": 1.25},
79 {"x": 3.75, "y": 4, "w": 6.25},
80 {"x": 10, "y": 4},
81 {"x": 11, "y": 4},
82 {"x": 12, "y": 4},
83
84 {"x": 13.25, "y": 4.25},
85 {"x": 14.25, "y": 4.25},
86 {"x": 15.25, "y": 4.25}
87 ]
88 }
89 }
90}
diff --git a/keyboards/cannonkeys/chimera65/keymaps/default/keymap.c b/keyboards/cannonkeys/chimera65/keymaps/default/keymap.c
new file mode 100644
index 000000000..a63fcf6f7
--- /dev/null
+++ b/keyboards/cannonkeys/chimera65/keymaps/default/keymap.c
@@ -0,0 +1,44 @@
1/*
2Copyright 2012,2013 Jun Wako <[email protected]>
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17#include QMK_KEYBOARD_H
18
19
20// Each layer gets a name for readability, which is then used in the keymap matrix below.
21// The underscores don't mean anything - you can have a layer called STUFF or any other name.
22// Layer names don't all need to be of the same length, obviously, and you can also skip them
23// entirely and just use numbers.
24#define _BASE 0
25#define _FN1 1
26
27const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
28
29 [_BASE] = LAYOUT_default(
30 KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL,
31 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
32 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUBS, KC_ENT, KC_PGUP,
33 KC_LSFT, KC_NUHS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
34 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
35 ),
36
37 [_FN1] = LAYOUT_default(
38 KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_TRNS,
39 KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
40 BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
41 BL_INC, BL_DEC, BL_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
42 KC_GRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS
43 )
44};
diff --git a/keyboards/cannonkeys/chimera65/keymaps/via/keymap.c b/keyboards/cannonkeys/chimera65/keymaps/via/keymap.c
new file mode 100644
index 000000000..a63fcf6f7
--- /dev/null
+++ b/keyboards/cannonkeys/chimera65/keymaps/via/keymap.c
@@ -0,0 +1,44 @@
1/*
2Copyright 2012,2013 Jun Wako <[email protected]>
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17#include QMK_KEYBOARD_H
18
19
20// Each layer gets a name for readability, which is then used in the keymap matrix below.
21// The underscores don't mean anything - you can have a layer called STUFF or any other name.
22// Layer names don't all need to be of the same length, obviously, and you can also skip them
23// entirely and just use numbers.
24#define _BASE 0
25#define _FN1 1
26
27const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
28
29 [_BASE] = LAYOUT_default(
30 KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL,
31 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
32 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUBS, KC_ENT, KC_PGUP,
33 KC_LSFT, KC_NUHS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
34 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
35 ),
36
37 [_FN1] = LAYOUT_default(
38 KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_TRNS,
39 KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
40 BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
41 BL_INC, BL_DEC, BL_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
42 KC_GRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS
43 )
44};
diff --git a/keyboards/cannonkeys/chimera65/keymaps/via/rules.mk b/keyboards/cannonkeys/chimera65/keymaps/via/rules.mk
new file mode 100644
index 000000000..1e5b99807
--- /dev/null
+++ b/keyboards/cannonkeys/chimera65/keymaps/via/rules.mk
@@ -0,0 +1 @@
VIA_ENABLE = yes
diff --git a/keyboards/cannonkeys/chimera65/mcuconf.h b/keyboards/cannonkeys/chimera65/mcuconf.h
new file mode 100644
index 000000000..eaf4ee5f7
--- /dev/null
+++ b/keyboards/cannonkeys/chimera65/mcuconf.h
@@ -0,0 +1,34 @@
1/* Copyright 2020 QMK
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17/*
18 * This file was auto-generated by:
19 * `qmk chibios-confmigrate -i keyboards/cannonkeys/chimera65/mcuconf.h -r platforms/chibios/GENERIC_STM32_F072XB/configs/mcuconf.h`
20 */
21
22#pragma once
23
24#include_next <mcuconf.h>
25
26#undef STM32_I2C_USE_I2C1
27#define STM32_I2C_USE_I2C1 TRUE
28
29#undef STM32_PWM_USE_TIM3
30#define STM32_PWM_USE_TIM3 TRUE
31
32#undef STM32_SPI_USE_SPI2
33#define STM32_SPI_USE_SPI2 TRUE
34
diff --git a/keyboards/cannonkeys/chimera65/readme.md b/keyboards/cannonkeys/chimera65/readme.md
new file mode 100644
index 000000000..e612240e4
--- /dev/null
+++ b/keyboards/cannonkeys/chimera65/readme.md
@@ -0,0 +1,12 @@
1# Chimera65
2
3Chimera65 Keyboard
4
5Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan)
6Hardware Supported: STM32F072CBT6
7
8Make example for this keyboard (after setting up your build environment):
9
10 make cannonkeys/chimera65:default
11
12See 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).
diff --git a/keyboards/cannonkeys/chimera65/rules.mk b/keyboards/cannonkeys/chimera65/rules.mk
new file mode 100644
index 000000000..c2cb86cc7
--- /dev/null
+++ b/keyboards/cannonkeys/chimera65/rules.mk
@@ -0,0 +1,21 @@
1# MCU name
2MCU = STM32F072
3
4# Bootloader selection
5BOOTLOADER = stm32-dfu
6
7# Build Options
8# change yes to no to disable
9#
10BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
11MOUSEKEY_ENABLE = yes # Mouse keys
12EXTRAKEY_ENABLE = yes # Audio control and System control
13CONSOLE_ENABLE = yes # Console for debug
14COMMAND_ENABLE = yes # Commands for debug and configuration
15NKRO_ENABLE = yes # Enable N-Key Rollover
16BACKLIGHT_ENABLE = yes
17RGBLIGHT_ENABLE = no
18
19
20# Enter lower-power sleep mode when on the ChibiOS idle thread
21OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
diff --git a/keyboards/cannonkeys/db60/chconf.h b/keyboards/cannonkeys/db60/chconf.h
new file mode 100644
index 000000000..9f541944f
--- /dev/null
+++ b/keyboards/cannonkeys/db60/chconf.h
@@ -0,0 +1,31 @@
1/* Copyright 2020 QMK
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17/*
18 * This file was auto-generated by:
19 * `qmk chibios-confmigrate -i keyboards/cannonkeys/db60/chconf.h -r platforms/chibios/common/configs/chconf.h`
20 */
21
22#pragma once
23
24#define CH_CFG_ST_FREQUENCY 10000
25
26#define CH_CFG_OPTIMIZE_SPEED FALSE
27
28#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE
29
30#include_next <chconf.h>
31
diff --git a/keyboards/cannonkeys/db60/config.h b/keyboards/cannonkeys/db60/config.h
new file mode 100644
index 000000000..dc2007c17
--- /dev/null
+++ b/keyboards/cannonkeys/db60/config.h
@@ -0,0 +1,77 @@
1/*
2Copyright 2015 Jun Wako <[email protected]>
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#pragma once
19
20/* USB Device descriptor parameter */
21#define VENDOR_ID 0xCA04
22#define DEVICE_VER 0x0001
23
24#define MANUFACTURER CannonKeys
25
26#define MATRIX_ROWS 5
27#define MATRIX_COLS 15
28
29#define MATRIX_COL_PINS { B11, B10, B2, A9, A15, B3, B4, B5, B6, B7, B8, B9, C13, C14, C15 }
30#define MATRIX_ROW_PINS { B1, B0, A7, A5, A4 }
31#define DIODE_DIRECTION COL2ROW
32
33
34#define BACKLIGHT_PIN A6
35#define BACKLIGHT_PWM_DRIVER PWMD3
36#define BACKLIGHT_PWM_CHANNEL 1
37#define BACKLIGHT_PAL_MODE 1
38#define BACKLIGHT_LEVELS 6
39#define BACKLIGHT_BREATHING
40#define BREATHING_PERIOD 6
41
42/* define if matrix has ghost */
43//#define MATRIX_HAS_GHOST
44
45/* Set 0 if debouncing isn't needed */
46#define DEBOUNCE 5
47
48/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
49#define LOCKING_SUPPORT_ENABLE
50/* Locking resynchronize hack */
51#define LOCKING_RESYNC_ENABLE
52
53#define RGBLIGHT_ANIMATIONS
54#define WS2812_SPI SPID2
55#define RGB_DI_PIN B15
56#define RGBLED_NUM 20
57#define WS2812_SPI_MOSI_PAL_MODE 0
58#define WS2812_SPI_SCK_PAL_MODE 0
59#define WS2812_SPI_SCK_PIN B13
60
61/*
62 * Feature disable options
63 * These options are also useful to firmware size reduction.
64 */
65
66/* disable debug print */
67//#define NO_DEBUG
68
69/* disable print */
70//#define NO_PRINT
71
72/* disable action features */
73//#define NO_ACTION_LAYER
74//#define NO_ACTION_TAPPING
75//#define NO_ACTION_ONESHOT
76//#define NO_ACTION_MACRO
77//#define NO_ACTION_FUNCTION
diff --git a/keyboards/cannonkeys/db60/db60.c b/keyboards/cannonkeys/db60/db60.c
new file mode 100644
index 000000000..25344360b
--- /dev/null
+++ b/keyboards/cannonkeys/db60/db60.c
@@ -0,0 +1 @@
#include "db60.h"
diff --git a/keyboards/cannonkeys/db60/db60.h b/keyboards/cannonkeys/db60/db60.h
new file mode 100644
index 000000000..b0d5105e9
--- /dev/null
+++ b/keyboards/cannonkeys/db60/db60.h
@@ -0,0 +1,23 @@
1 /* Copyright 2021 Andrew Kannan
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#if defined(KEYBOARD_cannonkeys_db60_j02)
18 #include "j02.h"
19#elif defined(KEYBOARD_cannonkeys_db60_hotswap)
20 #include "hotswap.h"
21#else
22 #include "rev2.h"
23#endif
diff --git a/keyboards/cannonkeys/db60/halconf.h b/keyboards/cannonkeys/db60/halconf.h
new file mode 100644
index 000000000..de8d8035d
--- /dev/null
+++ b/keyboards/cannonkeys/db60/halconf.h
@@ -0,0 +1,31 @@
1/* Copyright 2020 QMK
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17/*
18 * This file was auto-generated by:
19 * `qmk chibios-confmigrate -i keyboards/cannonkeys/db60/halconf.h -r platforms/chibios/common/configs/halconf.h`
20 */
21
22#pragma once
23
24#define HAL_USE_I2C TRUE
25
26#define HAL_USE_PWM TRUE
27
28#define HAL_USE_SPI TRUE
29
30#include_next <halconf.h>
31
diff --git a/keyboards/cannonkeys/db60/hotswap/config.h b/keyboards/cannonkeys/db60/hotswap/config.h
new file mode 100644
index 000000000..3ea969340
--- /dev/null
+++ b/keyboards/cannonkeys/db60/hotswap/config.h
@@ -0,0 +1,21 @@
1/*
2Copyright 2021 Andrew Kannan
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#pragma once
19
20#define PRODUCT_ID 0xDB62
21#define PRODUCT DB60 Hotswap
diff --git a/keyboards/cannonkeys/db60/hotswap/hotswap.h b/keyboards/cannonkeys/db60/hotswap/hotswap.h
new file mode 100644
index 000000000..84e3528fd
--- /dev/null
+++ b/keyboards/cannonkeys/db60/hotswap/hotswap.h
@@ -0,0 +1,63 @@
1 /* Copyright 2021 Andrew Kannan
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#include "quantum.h"
20
21#define KNO KC_NO
22
23#define LAYOUT_60_ansi( \
24 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, \
25 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, \
26 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2E, \
27 K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \
28 K40, K41, K42, K46, K4A, K4B, K4C, K4E \
29) { \
30 { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, KNO, K0E}, \
31 { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, KNO, K1E }, \
32 { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KNO, KNO, K2E }, \
33 { K30, KNO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KNO, KNO }, \
34 { K40, K41, K42, KNO, KNO, KNO, K46, KNO, KNO, KNO, K4A, K4B, K4C, KNO, K4E } \
35}
36
37#define LAYOUT_60_tsangan_hhkb( \
38 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
39 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, \
40 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2E, \
41 K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3E,\
42 K40, K41, K42, K46, K4B, K4C, K4E \
43) { \
44 { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E}, \
45 { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, KNO, K1E }, \
46 { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KNO, KNO, K2E }, \
47 { K30, KNO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KNO, K3E }, \
48 { K40, K41, K42, KNO, KNO, KNO, K46, KNO, KNO, KNO, KNO, K4B, K4C, KNO, K4E } \
49}
50
51#define LAYOUT_all( \
52 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E,\
53 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, \
54 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, \
55 K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3E,\
56 K40, K41, K42, K46, K4A, K4B, K4C, K4E \
57) { \
58 { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E}, \
59 { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, KNO, K1E }, \
60 { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, KNO, K2E }, \
61 { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KNO, K3E }, \
62 { K40, K41, K42, KNO, KNO, KNO, K46, KNO, KNO, KNO, K4A, K4B, K4C, KNO, K4E } \
63}
diff --git a/keyboards/cannonkeys/db60/hotswap/readme.md b/keyboards/cannonkeys/db60/hotswap/readme.md
new file mode 100644
index 000000000..818d02d06
--- /dev/null
+++ b/keyboards/cannonkeys/db60/hotswap/readme.md