1
0

Compare commits

...

97 Commits

Author SHA1 Message Date
Joshua Diamond
571a9794af Fix non-functional RGBLIGHT_EFFECT_TWINKLE on ARM (#19335) 2022-12-15 00:18:54 -08:00
James Young
8e50f1c5f5 DZTECH Endless80 Touch-Up (#19339) 2022-12-14 22:40:17 -08:00
Nick Brassel
6543065180 Reorder paths to (hopefully) trigger a re-tag. 2022-12-15 08:09:14 +11:00
QMK Bot
51360f3d54 Format code according to conventions (#19330) 2022-12-14 20:56:19 +00:00
Zykrah
5c817bffe9 [Keyboard] Add Slime88 (#19054)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-12-14 12:51:02 -08:00
Nick Brassel
0f97402d21 Add builddefs to the paths associated with tagging. (#19329) 2022-12-15 07:50:02 +11:00
Zykrah
35f460643a [Keyboard] Tinny50 RGB Edition (#19285)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-12-14 12:48:45 -08:00
BentoBoxStudio
5373376020 [Keyboard] Add cosmo65 (#19181) 2022-12-14 12:40:38 -08:00
Nick Brassel
e67e690cf3 Revert to legacy wear-leveling driver by default for F401. (#19328) 2022-12-15 07:27:00 +11:00
mfkiiyd
1130834513 add ubest/vn 68 keyboard (#19263)
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: water <mfkiiyd@163.com>
2022-12-15 02:50:56 +11:00
dztech
4c5e0606fe add tofu_jr keyboard (#18960)
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-12-15 02:49:49 +11:00
Pablo Martínez
99174edf0a [Docs] Remove broken link (#19321) 2022-12-15 01:43:39 +11:00
jack
fecfb176b4 Add encoder map to boardsource/lulu, and some other dd migrations (#19281) 2022-12-14 13:49:06 +11:00
James Young
582f879d6f Mode SixtyFive HA Layout Refactor (#19312) 2022-12-14 13:43:40 +11:00
Zykrah
411ed54b0a [Keyboard] Add Fuyu (#19055)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-12-13 01:23:37 -08:00
Leo Deng
70b9cec3f2 [Keyboard] add deng/thirty keyboard (#19228)
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Leo DENG <leo.deng@nio.com>
2022-12-13 01:14:29 -08:00
Danny
e25672baef [Keyboard] Add Convolution Rev. 1 PCB (#19283)
Co-authored-by: Joel Challis <git@zvecr.com>
2022-12-12 18:50:23 -08:00
DeskDaily
e444cf9578 [Keyboard] Add Daily60 keyboard (#19116)
Co-authored-by: Neil Brian Ramirez <nightlykeyboards@gmail.com>
Co-authored-by: Neil Brian Ramirez <nightlyboards@gmail.com>
2022-12-12 18:38:38 -08:00
dztech
7cf3dd7b8d [Keyboard] add tofu_ii keyboard (#19118)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-12-12 18:38:15 -08:00
mechlovin
7578daaf16 [Keyboard] Add Olly Orion to QMK (#19134)
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-12-12 18:37:35 -08:00
Ramon Imbao
812468abb4 [Keyboard] Add the Gone Hacking Studio XLS (#19185)
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-12-12 18:36:26 -08:00
Simon Fell
2792ee6573 [Keymap] superfell's custom keymap for the 0xc pad (#19196) 2022-12-12 18:36:05 -08:00
ebastler
29b8bbc4a0 [Keyboard] moved E80-1800 to data driven configuration (#19199)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-12-12 18:35:49 -08:00
TW59420
9c2703cab0 [Keyboard] add mw80 (#19223)
Co-authored-by: jack <0x6a73@protonmail.com>
2022-12-12 15:50:04 -08:00
DeskDaily
291f988423 [Keyboard] Add Jisoo pcb (#19238)
Co-authored-by: Neil Brian Ramirez <nightlykeyboards@gmail.com>
Co-authored-by: Neil Brian Ramirez <nightlyboards@gmail.com>
2022-12-12 15:48:39 -08:00
Moses Hoyt
48a80a502d [Keyboard] Add Lagom keyboard (#19240)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-12-12 15:48:18 -08:00
DeskDaily
06593acc7d [Keyboard] Add Navi60 (#19253)
Co-authored-by: Neil Brian Ramirez <nightlykeyboards@gmail.com>
Co-authored-by: Neil Brian Ramirez <nightlyboards@gmail.com>
2022-12-12 15:47:40 -08:00
yiancar
89399b5494 [Keyboard] Crypt Macro (#19279)
Co-authored-by: yiancar <yiancar@gmail.com>
2022-12-12 15:47:08 -08:00
dztech
15ef0a7e3c [Keyboard] add d45 lite keyboard (#19288)
Co-authored-by: Joel Challis <git@zvecr.com>
2022-12-12 15:46:09 -08:00
mechlovin
68f550a3f2 [Keyboard] Add Zed65-monoLED and Zed65-Cor65 (#18872)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-12-12 15:41:06 -08:00
T.Shinohara
6d0f944e5e Keyboard rura66 (#15853)
* add : BlackMask60 and MayShi.No30

* fix:spell miss

* change:keyboard name area

* change: default keymap

* 配列を自分用に変更

* MyKemap Update

* 構成変更

* Add RURA66 new keyboard

* remove additional files

* fix file

* fix info.json from rura66

* fix KC_LANG to KC_LNG from rura66

* Fix readme
- fix purchase URL
- adjust to the recent standard

* Fix rules.mk
- no backlight
- remove DIP switch/Bluetooth
- OLED_DRIVER_ENABLE -> OLED_ENABLE

* Fix rura66.h: add LICENSE

* Fix config.h
- UNUSED_PINS is deprecated
- accept suggestion on PR

* Fix oled_display.c
- remove snprintf()
- OLED_DRIVER_ENABLE->OLED_ENABLE
- oled_task_user() returns false

* Fix config.h
- no SPLIT_HAND_MATRIX_GRID
- no RGB Matrix

* move default keymap readme

* add VIA keymap

* Fix info.json
- Fix keyboard URL
- Change VID/PID

* Fix comments in rules.mk

* fix info.json keyboard url

Co-authored-by: yswallow <1426202+yswallow@users.noreply.github.com>
2022-12-12 15:23:54 -08:00
xofyarg
25790fc886 [Keyboard] add ydpm40 keyboard (#19294) 2022-12-12 13:16:26 -08:00
MJM
b8532d100d [Keyboard] Switch heliotrope from rgblight to rgb matrix (#19296) 2022-12-12 13:15:41 -08:00
lalalademaxiya1
1431f314a4 Add Keychron Q10 (#19127)
Co-authored-by: Nick Brassel <nick@tzarc.org>
2022-12-13 07:10:32 +11:00
Luc
bf2ed0174b [Keymap] user dvorak_42_key ergodox_ez and crkbd keymaps (#19154)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: luc wastiaux <luc.wastiaux@airpost.net>
Co-authored-by: Luc W <lucw@airpost.net>
2022-12-11 21:21:23 -08:00
Christopher Bunn
96ba554ca8 [Keymap] lets_split: add mypetyak map (#19205) 2022-12-11 21:17:08 -08:00
QMK Bot
57f9a2ad6d [CI] Format code according to conventions (#19292) 2022-12-11 18:14:34 +11:00
Ryan
7c72c5e436 sthlmkb/litl: fix layout macros (#19244) 2022-12-11 18:00:14 +11:00
Wolf Van Herreweghe
608ed489de Update KC_BKSP->KCBSPC for default Ortho4x6 layout (#19290)
Co-authored-by: Wolf <contact@vwolf.be>
2022-12-11 15:05:23 +11:00
MJM
57351e4a37 [Keyboard] Add heliotrope Keyboard (#19170) 2022-12-10 18:35:06 -08:00
Adam Lickel
143b7a3c3d [Keymap] Keeb.io Sinc - Lickel keymap update (#19188) 2022-12-10 12:46:24 -08:00
Joel Challis
89fdafc27d Refactor use of led_set_user within handwired/prime_exl (#19274) 2022-12-09 03:32:47 +00:00
James Young
96cd333371 TGR Jane V2 CE Refactor (#19261) 2022-12-08 18:15:44 -08:00
Joel Challis
99cd0b13e1 Refactor some led_set_kb instances (#19179)
* Refactor some led_set_kb instances

* Apply suggestions from code review

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Ryan <fauxpark@gmail.com>
2022-12-09 01:42:22 +00:00
James Young
ba6ee29040 fix LinWorks FAve84H keymaps (#19266)
Develop merge broke a previous refactor.
2022-12-08 19:39:54 +00:00
James Young
f4a4d841e5 Dactyl Manuform 4x5_5 Configurator Rendering Update (#18313) 2022-12-09 04:15:09 +11:00
James Young
de92e8b3b0 Idobao ID80 V2: Partial Data-Driven Conversion (#19247) 2022-12-09 04:01:56 +11:00
James Young
e4f4e0a307 Aperture: fix Community Layout support (#19260) 2022-12-09 03:50:59 +11:00
James Young
069e6a259a Soda Cherish Refactor (#19259) 2022-12-09 03:50:34 +11:00
simchee
88d8817397 [Keymap] Add personal config for Kprepublic BM40HSRGB (#19186) 2022-12-09 03:49:22 +11:00
kopibeng
1df41e6db1 Add support for MNK65_STM32 (#18744)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-12-09 03:48:42 +11:00
peepeetee
5447b075f9 [Keyboard] Add momokai tap duo (#19042) 2022-12-09 03:47:38 +11:00
adophoxia
fa56e51894 Add support for Keychron Q4 (#19048) 2022-12-09 03:45:10 +11:00
lalalademaxiya1
1215fc2a78 Update Q1 and Q2 for keychron (#18713)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: jpe230 <pablin.123.ra@gmail.com>
2022-12-09 03:43:28 +11:00
Joel Challis
6e6039995b Add lint check for keyboard/keymap license header (#19215) 2022-12-09 03:31:02 +11:00
Mikhail Nosov
071268633d [Keyboard] Fix CapsLock pin for ymdk/ymd75/rev3 (#19158) 2022-12-09 03:13:53 +11:00
syntax-magic
261e7668c6 Added mouse clicks to RBG layer (#19105)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: syntax-magic <dkim.8881@gmail.com>
2022-12-09 03:09:43 +11:00
4pplet
d30bf44a60 Add AEKISO60 rev B (#19074)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: 4pplet <4pplet@protonmail.com>
Co-authored-by: 4pplet <stefan.ess@gmail.com>
2022-12-09 03:07:54 +11:00
tarneo
ebcbbfc1e8 correct config for supersplit and add keymap (#18927) 2022-12-09 02:54:19 +11:00
Ryan
acca2eb963 Fix build failures for aurora/lily58 and sweep (#19258) 2022-12-08 13:34:32 +00:00
Jordan Duabe
bb3d694875 [Keyboard] Add NCR-80 (#19130) 2022-12-07 13:02:05 -08:00
Ryan
405aa7b2ed Fix keyboard for some JSON keymaps (#19251) 2022-12-07 17:59:23 +00:00
James Young
760e5c2ee1 ASK55: correct layout data (#19252) 2022-12-07 15:56:21 +00:00
dependabot[bot]
3fa1e8e273 Bump anothrNick/github-tag-action from 1.53.0 to 1.54.0 (#19246)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-07 08:44:19 +11:00
leah-splitkb
0e93b0d59b [Keyboard] Add splitkb.com's Aurora Lily58 (#19183) 2022-12-06 15:57:50 +00:00
dependabot[bot]
2709b6ed61 Bump anothrNick/github-tag-action from 1.52.0 to 1.53.0 (#19242)
Bumps [anothrNick/github-tag-action](https://github.com/anothrNick/github-tag-action) from 1.52.0 to 1.53.0.
- [Release notes](https://github.com/anothrNick/github-tag-action/releases)
- [Commits](https://github.com/anothrNick/github-tag-action/compare/1.52.0...1.53.0)

---
updated-dependencies:
- dependency-name: anothrNick/github-tag-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-05 19:31:20 +00:00
Joel Challis
92fadf0110 Ensure info.json layout macros are somewhat valid (#19236) 2022-12-05 02:32:40 +00:00
mechlovin
92354b2ca8 [Keyboard] Add Olly_Octagon PCB to QMK (#19128)
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-12-04 21:03:41 +00:00
Charly Delay
af14b212b9 Re-structure splinky support to handle versioning in the same fashion as for the teensy (#19123) 2022-12-04 20:58:12 +00:00
mechlovin
ea1a6975a8 [Keyboard] Add ISO layout support for Zed60 PCB (#19204)
* add iso layout

* Update zed60.h
2022-12-04 20:47:56 +00:00
David Kühling
2f92880578 dqz11n1g: Documentation improvement. (#19230)
Co-authored-by: David <dvdkhlng@posteo.de>
2022-12-04 20:43:28 +00:00
dztech
4d1b1bc534 [Keyboard] add kbdpadmk3 (#18795)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-12-04 10:53:08 -08:00
gshmu
1dd77d9944 [Keymap] gshmu keymap for lily58 (#19040) 2022-12-04 01:35:23 -08:00
lalalademaxiya1
d878edfaad [Keyboard] Add Keychron Q8 (#19126) 2022-12-04 01:26:27 -08:00
dztech
ee772ad165 [Keyboard] add odinmini keyboard (#19111)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-12-04 01:22:21 -08:00
micros24
6af12001eb [Keymap] KBDFans Tiger80 Keymap (#19148)
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Jasper Jan O. Solee <jjosolee@mymail.mapua.edu.ph>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-12-03 23:16:34 -08:00
mechlovin
03d7c31e6c [Keyboard] Change indicator LED state on Kay60 (#19182) 2022-12-03 12:05:23 -08:00
Nick Brassel
cf3c26533c Fixup EFL and F4's sector selection. (#19221) 2022-12-02 21:55:28 +11:00
Ryan
f98a7e8ffe Fix RGB_MATRIX_LED_COUNT for aurora/corne (#19222) 2022-12-02 16:36:47 +11:00
Drashna Jaelre
0e8d22e2b7 [Keyboard] Fix config error for Charybdis (#19219) 2022-12-01 22:12:35 +00:00
HorrorTroll
e9d5967a93 [Keyboard] Add keyboard Caticorn (#19138) 2022-11-30 15:30:41 -08:00
tsubuan_145
3f98542e52 Add meow48 ver.1.0 keyboard (#19217)
just make the PRs stop
2022-11-30 23:28:17 +00:00
Commander1024
402d3d8a86 [Keyboard] Daskeyboard4 (#18675)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-11-30 11:20:45 -08:00
Pablo Martínez
a5c2eea6c1 Update OLED doc (#19213)
* Update OLED doc

* Update docs/feature_oled_driver.md

Co-authored-by: Dasky <32983009+daskygit@users.noreply.github.com>
2022-11-30 17:48:23 +00:00
Moses Hoyt
5ff7f289f2 [Keyboard] Add Litl keyboard (#19000)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-11-29 23:06:01 -08:00
IFo Hancroft
38a153b143 [Keymap] Fixed ifohancroft Swap Hands Config (#19176) 2022-11-29 22:52:44 -08:00
Adam Lickel
3d091f4a9d Keeb.io Sinc: Enable Split LED state (#19187) 2022-11-29 22:52:10 -08:00
Manna Harbour
0b29af1019 [Keymap] Update Miryoku (#19190) 2022-11-29 22:51:49 -08:00
Joel Challis
5d516ac2e2 Ignore some layout macro names from lint (#19207) 2022-11-30 06:39:41 +00:00
Joel Challis
739d4ad2fb Add some community layouts to 40percentclub boards (#19209) 2022-11-30 06:39:27 +00:00
Joel Challis
2d45e5e4b4 Add ortho_3x3 community layout (#19210) 2022-11-30 06:38:02 +00:00
Joel Challis
e0d0d81dfa Add missing default_ortho_5x5 keymap (#19208) 2022-11-30 06:18:05 +00:00
Joel Challis
bb4f094a08 Fix bad bootmagic config (#19206) 2022-11-30 17:03:19 +11:00
Joel Challis
17fec52b0f Extend layout lint checks (#19200)
* Extend layout lint checks

* Apply suggestions from code review

Co-authored-by: Ryan <fauxpark@gmail.com>

* Fix function comment

Co-authored-by: Ryan <fauxpark@gmail.com>
2022-11-30 04:27:48 +00:00
Joel Challis
4a0aa9ada2 Fix headers in info.json reference (#19202) 2022-11-30 02:45:51 +00:00
Albert Y
90fe668dd9 Enable bootmagic (#19191) 2022-11-30 01:01:10 +00:00
Drashna Jaelre
4a87af0e9a [Keymap] Drashna updates for 0.19 (#19175)
* Fix up bastardkb boards since blackpill support is officially added.
  * Check for blackpill version, not elite c.
  * Add checks in chibiOS config since multiple ARM controllers supported.
  * Rework rules.mk for keymaps to better handle arm vs avr support
* Start moving away from `matrix_*_*` functions.
  * `housekeeping_task_*` instead of `matrix_scan_*`
  * `keyboard_(pre|post)_init_*` instead of `matrix_init_*` 
* Add ℂℴmⅈℂ unicode input method.
* Clean up unicode code to be more compact and flexible.
* Remove/move Pro Micro LED commands to userspace and better filter them
* Fixup OLED code
  * Use newer quantum keycode functions/preprocessors rather than manual bit manipulation
  * Make unicode mode render much more compact/simple.
* Make qmk secrets more self contained
* Remove custom implementation of split watchdog
2022-11-29 11:43:42 -08:00
977 changed files with 32634 additions and 5964 deletions

View File

@@ -5,12 +5,13 @@ on:
branches:
- master
paths:
- quantum/**/*
- tmk_core/**/*
- builddefs/**/*
- drivers/**/*
- tests/**/*
- util/**/*
- platforms/**/*
- quantum/**/*
- tests/**/*
- tmk_core/**/*
- util/**/*
- Makefile
- '*.mk'
@@ -27,7 +28,7 @@ jobs:
fetch-depth: 0
- name: Bump version and push tag
uses: anothrNick/github-tag-action@1.52.0
uses: anothrNick/github-tag-action@1.54.0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
DEFAULT_BUMP: 'patch'

View File

@@ -230,7 +230,7 @@ else
# Wear-leveling EEPROM implementation, backed by MCU flash
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_WEAR_LEVELING
SRC += eeprom_driver.c eeprom_wear_leveling.c
WEAR_LEVELING_DRIVER = embedded_flash
WEAR_LEVELING_DRIVER ?= embedded_flash
else ifneq ($(filter $(MCU_SERIES),STM32L0xx STM32L1xx),)
# True EEPROM on STM32L0xx, L1xx
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_STM32_L0_L1
@@ -239,7 +239,7 @@ else
# Wear-leveling EEPROM implementation, backed by RP2040 flash
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_WEAR_LEVELING
SRC += eeprom_driver.c eeprom_wear_leveling.c
WEAR_LEVELING_DRIVER = rp2040_flash
WEAR_LEVELING_DRIVER ?= rp2040_flash
else ifneq ($(filter $(MCU_SERIES),KL2x K20x),)
# Teensy EEPROM implementations
OPT_DEFS += -DEEPROM_KINETIS_FLEXRAM

View File

@@ -367,6 +367,10 @@ ifneq ($(findstring STM32F401, $(MCU)),)
# Bootloader address for STM32 DFU
STM32_BOOTLOADER_ADDRESS ?= 0x1FFF0000
# Revert to legacy wear-leveling driver until ChibiOS's EFL driver is fixed with 128kB and 384kB variants.
EEPROM_DRIVER ?= wear_leveling
WEAR_LEVELING_DRIVER ?= legacy
endif
ifneq ($(findstring STM32F405, $(MCU)),)

View File

@@ -245,6 +245,7 @@
"items": {
"type": "object",
"additionalProperties": false,
"required": ["x", "y"],
"properties": {
"label": {
"type": "string",

View File

@@ -80,6 +80,11 @@ static void render_logo(void) {
oled_write_P(qmk_logo, false);
}
bool oled_task_user(void) {
render_logo();
return false;
}
```
?> The default font file is located at `drivers/oled/glcdfont.c` and its location can be overwritten with the `OLED_FONT_H` configuration option. Font file content can be edited with external tools such as [Helix Font Editor](https://helixfonteditor.netlify.app/) and [Logo Editor](https://joric.github.io/qle/).

View File

@@ -356,8 +356,6 @@ qk_tap_dance_action_t tap_dance_actions[] = {
And then simply use `TD(X_CTL)` anywhere in your keymap.
If you want to implement this in your userspace, then you may want to check out how [DanielGGordon](https://github.com/qmk/qmk_firmware/tree/master/users/gordon) has implemented this in their userspace.
> In this configuration "hold" takes place **after** tap dance timeout. To achieve instant hold, remove `state->interrupted` checks in conditions. As a result you may use comfortable longer tapping periods to have more time for taps and not to wait too long for holds (try starting with doubled `TAPPING_TERM`).
#### Example 5: Using tap dance for advanced mod-tap and layer-tap keys :id=example-5

View File

@@ -340,8 +340,6 @@ qk_tap_dance_action_t tap_dance_actions[] = {
これで、キーマップのどこでも簡単に `TD(X_CTL)` マクロが使えます。
もし、この機能をユーザスペースで実現したい場合、 [DanielGGordon](https://github.com/qmk/qmk_firmware/tree/master/users/gordon) がユーザスペースでどのように実装しているか確認してください。
> この設定の "hold" は、タップダンスのタイムアウト(`ACTION_TAP_DANCE_FN_ADVANCED_TIME` 参照)の **後** に起こります。即座に "hold" を得るためには、条件から `state->interrupted` の確認を除きます。結果として、複数回のタップのための時間をより多く持つことで快適な長いタップの期限を使うことができ、そして、"hold" のために長く待たないようにすることができます(2倍の `TAPPING TERM` で開始してみてください)。
#### 例5: タップダンスを高度なモッドタップとレイヤータップキーに使う :id=example-5

View File

@@ -39,7 +39,7 @@ The `info.json` file is a JSON formatted dictionary. The first six keys noted he
?> For all the available keys and their allowed values refer back to the [`data/schemas/keyboard.jsonschema`](https://github.com/qmk/qmk_firmware/blob/master/data/schemas/keyboard.jsonschema) file.
### Layout Format
## Layout Format
Within our `info.json` file the `layouts` portion of the dictionary contains several nested dictionaries. The outer layer consists of QMK layout macros, for example `LAYOUT_ansi` or `LAYOUT_iso`.
@@ -68,11 +68,11 @@ All key positions and rotations are specified in relation to the top-left corner
* A two item list describing the row and column location for this key.
* Example: `[0, 4]`
### Matrix Pins
## Matrix Pins
Currently QMK supports connecting switches either directly to GPIO pins or via a switch matrix. At this time you can not combine these, they are mutually exclusive.
#### Switch Matrix
### Switch Matrix
Most keyboards use a switch matrix to connect keyswitches to the MCU. You can define your pin columns and rows to configure your switch matrix. When defining switch matrices you should also define your `diode_direction`.
@@ -88,7 +88,7 @@ Example:
}
```
#### Direct Pins
### Direct Pins
Direct pins are when you connect one side of the switch to GND and the other side to a GPIO pin on your MCU. No diode is required, but there is a 1:1 mapping between switches and pins.
@@ -250,7 +250,7 @@ The following animations can be enabled:
|`static_gradient`|Enable static gradient mode. |
|`twinkle` |Enable twinkle animation mode. |
### USB
## USB
Every USB keyboard needs to have its USB parameters defined. At a minimum you need to set the Vendor ID, Product ID, and device version.
@@ -268,7 +268,7 @@ Example:
The device version is a BCD (binary coded decimal) value, in the format `MMmr`, so the below value would look like `0x0100` in the generated code. This also means the maximum valid values for each part are `99.9.9`, despite it being a hexadecimal value under the hood.
### Encoders
## Encoders
This section controls the basic [rotary encoder](feature_encoders.md) support.
@@ -312,7 +312,7 @@ Examples:
}
```
### Secure
## Secure
The following options can be configured:

View File

@@ -19,3 +19,5 @@ AUDIO_ENABLE = no # Audio output
# Enable generic behavior for split boards
SPLIT_KEYBOARD = yes
LAYOUTS = ortho_5x5 ortho_5x10

View File

@@ -16,4 +16,4 @@ NKRO_ENABLE = no # Enable N-Key Rollover
BACKLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
LAYOUTS = ortho_5x15
LAYOUTS = ortho_5x5 ortho_5x10 ortho_5x15

View File

@@ -9,6 +9,12 @@ More info: https://geekhack.org/index.php?topic=103627.0
Make example for this keyboard (after setting up your build environment):
make 4pplet/aekiso60/rev_a:default
make 4pplet/aekiso60/rev_b:default
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
How to enter bootloader (DFU):
* Tap the physical reset button or short the reset-header (labled RESET) on tha back of the PCB for keyboard to enter DFU. When in DFU, it's ready to flash the firmware.
Alternative option if the firmware is already pre-flashed:
* Unplug your keyboard, hold down the Spacebar and B at the same time, plug in your keyboard and wait a second before releasing the keys. The keyboard will enter DFU and is ready to flash the firmware.

View File

@@ -0,0 +1,20 @@
# AEKISO60
A 60% PCB enabling use of ISO AEK keycaps and ALPS switches
More info: https://geekhack.org/index.php?topic=103627.0
* Keyboard Maintainer: [4pplet](https://github.com/4pplet)
* Hardware Supported: AEKISO60 Rev A
Make example for this keyboard (after setting up your build environment):
make 4pplet/aekiso60/rev_a:default
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
How to enter bootloader (DFU):
* Tap the physical reset button or short the reset-header (labled RESET) on tha back of the PCB for keyboard to enter DFU. When in DFU, it's ready to flash the firmware.
Alternative option if the firmware is already pre-flashed:
* Unplug your keyboard, hold down the Spacebar and B at the same time, plug in your keyboard and wait a second before releasing the keys. The keyboard will enter DFU and is ready to flash the firmware.

View File

@@ -0,0 +1,57 @@
/*
Copyright 2022 Stefan Sundin "4pplet" <mail@4pplet.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#include "config_common.h"
/* key matrix size */
#define MATRIX_ROWS 5
#define MATRIX_COLS 14
// ROWS: Top to bottom, COLS: Left to right
#define MATRIX_ROW_PINS {B15,A9,B7,A1,A2}
#define MATRIX_COL_PINS {A3,A4,F1,F0,C15,C14,C13,B9,B8,B6,B5,B4,B3,A15}
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
#define QMK_ESC_OUTPUT A3 // usually COL
#define QMK_ESC_INPUT B14 // usually ROW
#define RGBLED_NUM 12
#define WS2812_EXTERNAL_PULLUP
#define RGB_DI_PIN A8
#define RGBLIGHT_HUE_STEP 8
#define RGBLIGHT_SAT_STEP 8
#define RGBLIGHT_VAL_STEP 8
#define RGBLIGHT_EFFECT_BREATHING
#define RGBLIGHT_EFFECT_RAINBOW_MOOD
#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
#define RGBLIGHT_EFFECT_SNAKE
#define RGBLIGHT_EFFECT_KNIGHT
#define RGBLIGHT_EFFECT_CHRISTMAS
#define RGBLIGHT_EFFECT_STATIC_GRADIENT
#define RGBLIGHT_EFFECT_RGB_TEST
#define RGBLIGHT_EFFECT_ALTERNATING
#define RGBLIGHT_EFFECT_TWINKLE
#define LED_CAPS_LOCK_PIN A10
#define BACKLIGHT_LEVELS 5

View File

@@ -0,0 +1,85 @@
{
"keyboard_name": "AEKISO60 Rev B",
"manufacturer": "4pplet",
"url": "",
"maintainer": "4pplet",
"usb": {
"vid": "0x4444",
"pid": "0x0011",
"device_version": "0.0.2"
},
"layouts": {
"LAYOUT_all": {
"layout": [
{"x":0, "y":0, "w":1.25},
{"x":1.25, "y":0},
{"x":2.25, "y":0},
{"x":3.25, "y":0},
{"x":4.25, "y":0},
{"x":5.25, "y":0},
{"x":6.25, "y":0},
{"x":7.25, "y":0},
{"x":8.25, "y":0},
{"x":9.25, "y":0},
{"x":10.25, "y":0},
{"x":11.25, "y":0},
{"x":12.25, "y":0},
{"x":13.25, "y":0, "w":1.75},
{"x":0, "y":1, "w":1.75},
{"x":1.75, "y":1},
{"x":2.75, "y":1},
{"x":3.75, "y":1},
{"x":4.75, "y":1},
{"x":5.75, "y":1},
{"x":6.75, "y":1},
{"x":7.75, "y":1},
{"x":8.75, "y":1},
{"x":9.75, "y":1},
{"x":10.75, "y":1},
{"x":11.75, "y":1},
{"x":12.75, "y":1},
{"x":0, "y":2, "w":2},
{"x":2, "y":2},
{"x":3, "y":2},
{"x":4, "y":2},
{"x":5, "y":2},
{"x":6, "y":2},
{"x":7, "y":2},
{"x":8, "y":2},
{"x":9, "y":2},
{"x":10, "y":2},
{"x":11, "y":2},
{"x":12, "y":2},
{"x":13, "y":2},
{"x":14, "y":1, "h":2},
{"x":0, "y":3, "w":1.5},
{"x":1.5, "y":3},
{"x":2.5, "y":3},
{"x":3.5, "y":3},
{"x":4.5, "y":3},
{"x":5.5, "y":3},
{"x":6.5, "y":3},
{"x":7.5, "y":3},
{"x":8.5, "y":3},
{"x":9.5, "y":3},
{"x":10.5, "y":3},
{"x":11.5, "y":3},
{"x":12.5, "y":3, "w":1.5},
{"x":14, "y":3},
{"x":0, "y":4, "w":1.5},
{"x":1.5, "y":4, "w":1.25},
{"x":2.75, "y":4, "w":1.5},
{"x":4.25, "y":4, "w":2.75},
{"x":7, "y":4},
{"x":8, "y":4, "w":2.75},
{"x":10.75, "y":4, "w":1.5},
{"x":12.25, "y":4, "w":1.25},
{"x":13.5, "y":4, "w":1.5}
]
}
}
}

View File

@@ -0,0 +1,21 @@
# AEKISO60
A 60% PCB enabling use of ISO AEK keycaps and ALPS switches
More info: https://geekhack.org/index.php?topic=103627.0
* Keyboard Maintainer: [4pplet](https://github.com/4pplet)
* Hardware Supported: AEKISO60
Make example for this keyboard (after setting up your build environment):
make 4pplet/aekiso60/rev_a:default
make 4pplet/aekiso60/rev_b:default
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
How to enter bootloader (DFU):
* Tap the physical reset button or short the reset-header (labled RESET) on tha back of the PCB for keyboard to enter DFU. When in DFU, it's ready to flash the firmware.
Alternative option if the firmware is already pre-flashed:
* Unplug your keyboard, hold down the Spacebar and B at the same time, plug in your keyboard and wait a second before releasing the keys. The keyboard will enter DFU and is ready to flash the firmware.

View File

@@ -0,0 +1,19 @@
/*
Copyright 2022 Stefan Sundin "4pplet" <4pplet@protonmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "rev_b.h"

View File

@@ -0,0 +1,48 @@
/*
Copyright 2022 Stefan Sundin "4pplet" <4pplet@protonmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#include "quantum.h"
/* LAYOUT_all
* ┌────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬──────┐
* │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │
* ├────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬────┤
* │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │ │
* ├──────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐1d │
* │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │ │
* ├─────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤
* │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c │3d │
* ├─────┼───┴┬──┴──┬┴───┴───┴─┬─┴─┬─┴───┴───┴┬──┴──┬┴───┬─┴───┤
* │40 │41 │43 │44 │45 │46 │48 │4a │4b │
* └─────┴────┴─────┴──────────┴───┴──────────┴─────┴────┴─────┘
*/
#define LAYOUT_all( \
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, \
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k1d, \
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \
k40, k41, k43, k44, k45, k46, k48, k4a, k4b \
) \
{ \
{k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \
{k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d}, \
{k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, KC_NO},\
{k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d}, \
{k40, k41, KC_NO, k43, k44, k45, k46, KC_NO, k48, KC_NO, k4a, k4b, KC_NO, KC_NO} \
}

View File

@@ -0,0 +1,24 @@
# MCU name
MCU = STM32F072
# Bootloader selection
BOOTLOADER = stm32-dfu
# Build Options
# change yes to no to disable
#
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
MOUSEKEY_ENABLE = yes # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # Enable N-Key Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
# Wildcard to allow APM32 MCU
DFU_SUFFIX_ARGS = -p FFFF -v FFFF
# Enter lower-power sleep mode when on the ChibiOS idle thread
OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE

View File

@@ -37,4 +37,4 @@
#define DIODE_DIRECTION COL2ROW
#define BOOTMAGIC_LITE_ROW 0
#define BOOTMAGIC_LITE_COL 5
#define BOOTMAGIC_LITE_COLUMN 5

View File

@@ -31,4 +31,4 @@
#define DIODE_DIRECTION COL2ROW
#define BOOTMAGIC_LITE_ROW 0
#define BOOTMAGIC_LITE_COL 0
#define BOOTMAGIC_LITE_COLUMN 0

View File

@@ -51,73 +51,77 @@
"layouts": {
"LAYOUT": {
"layout": [
{ "label": "k00", "matrix": [0, 0], "w": 1, "x": 0, "y": 0 },
{ "label": "k01", "matrix": [0, 1], "w": 1, "x": 1, "y": 0 },
{ "label": "k02", "matrix": [0, 2], "w": 1, "x": 2, "y": 0 },
{ "label": "k03", "matrix": [0, 3], "w": 1, "x": 3, "y": 0 },
{ "label": "k04", "matrix": [0, 4], "w": 1, "x": 4, "y": 0 },
{ "label": "k05", "matrix": [0, 5], "w": 1, "x": 5, "y": 0 },
{ "label": "k06", "matrix": [0, 6], "w": 1, "x": 6, "y": 0 },
{ "label": "k07", "matrix": [0, 7], "w": 1, "x": 7, "y": 0 },
{ "label": "k08", "matrix": [0, 8], "w": 1, "x": 8, "y": 0 },
{ "label": "k09", "matrix": [0, 9], "w": 1, "x": 9, "y": 0 },
{ "label": "k0a", "matrix": [0, 10], "w": 1, "x": 10, "y": 0 },
{ "label": "k0b", "matrix": [0, 11], "w": 1, "x": 11, "y": 0 },
{ "label": "k0c", "matrix": [0, 12], "w": 1, "x": 12, "y": 0 },
{ "label": "k0d", "matrix": [0, 13], "w": 1, "x": 13, "y": 0 },
{ "label": "k10", "matrix": [1, 0], "w": 1, "x": 14, "y": 0 },
{ "label": "k11", "matrix": [1, 1], "w": 1, "x": 15, "y": 0 },
{ "label": "k12", "matrix": [1, 2], "w": 1, "x": 16, "y": 0 },
{ "label": "k13", "matrix": [1, 3], "w": 1, "x": 17, "y": 0 },
{ "label": "k14", "matrix": [1, 4], "w": 1, "x": 18, "y": 0 },
{ "label": "k15", "matrix": [1, 5], "w": 1, "x": 19, "y": 0 },
{ "label": "k16", "matrix": [1, 6], "w": 1, "x": 20, "y": 0 },
{ "label": "k17", "matrix": [1, 7], "w": 1, "x": 21, "y": 0 },
{ "label": "k18", "matrix": [1, 8], "w": 1, "x": 22, "y": 0 },
{ "label": "k19", "matrix": [1, 9], "w": 1, "x": 23, "y": 0 },
{ "label": "k1a", "matrix": [1, 10], "w": 1, "x": 24, "y": 0 },
{ "label": "k1b", "matrix": [1, 11], "w": 1, "x": 25, "y": 0 },
{ "label": "k1c", "matrix": [1, 12], "w": 1, "x": 26, "y": 0 },
{ "label": "k1d", "matrix": [1, 13], "w": 1, "x": 27, "y": 0 },
{ "label": "k20", "matrix": [2, 0], "w": 1, "x": 28, "y": 0 },
{ "label": "k21", "matrix": [2, 1], "w": 1, "x": 29, "y": 0 },
{ "label": "k22", "matrix": [2, 2], "w": 1, "x": 30, "y": 0 },
{ "label": "k23", "matrix": [2, 3], "w": 1, "x": 31, "y": 0 },
{ "label": "k24", "matrix": [2, 4], "w": 1, "x": 32, "y": 0 },
{ "label": "k25", "matrix": [2, 5], "w": 1, "x": 33, "y": 0 },
{ "label": "k26", "matrix": [2, 6], "w": 1, "x": 34, "y": 0 },
{ "label": "k27", "matrix": [2, 7], "w": 1, "x": 35, "y": 0 },
{ "label": "k28", "matrix": [2, 8], "w": 1, "x": 36, "y": 0 },
{ "label": "k29", "matrix": [2, 9], "w": 1, "x": 37, "y": 0 },
{ "label": "k2a", "matrix": [2, 10], "w": 1, "x": 38, "y": 0 },
{ "label": "k2b", "matrix": [2, 11], "w": 1, "x": 39, "y": 0 },
{ "label": "k2c", "matrix": [2, 12], "w": 1, "x": 40, "y": 0 },
{ "label": "k2d", "matrix": [2, 13], "w": 1, "x": 41, "y": 0 },
{ "label": "k30", "matrix": [3, 0], "w": 1, "x": 42, "y": 0 },
{ "label": "k31", "matrix": [3, 1], "w": 1, "x": 43, "y": 0 },
{ "label": "k32", "matrix": [3, 2], "w": 1, "x": 44, "y": 0 },
{ "label": "k33", "matrix": [3, 3], "w": 1, "x": 45, "y": 0 },
{ "label": "k34", "matrix": [3, 4], "w": 1, "x": 46, "y": 0 },
{ "label": "k35", "matrix": [3, 5], "w": 1, "x": 47, "y": 0 },
{ "label": "k36", "matrix": [3, 6], "w": 1, "x": 48, "y": 0 },
{ "label": "k37", "matrix": [3, 7], "w": 1, "x": 49, "y": 0 },
{ "label": "k38", "matrix": [3, 8], "w": 1, "x": 50, "y": 0 },
{ "label": "k39", "matrix": [3, 9], "w": 1, "x": 51, "y": 0 },
{ "label": "k3a", "matrix": [3, 10], "w": 1, "x": 52, "y": 0 },
{ "label": "k3b", "matrix": [3, 11], "w": 1, "x": 53, "y": 0 },
{ "label": "k3c", "matrix": [3, 12], "w": 1, "x": 54, "y": 0 },
{ "label": "k3d", "matrix": [3, 13], "w": 1, "x": 55, "y": 0 },
{ "label": "k40", "matrix": [4, 0], "w": 1, "x": 56, "y": 0 },
{ "label": "k41", "matrix": [4, 1], "w": 1, "x": 57, "y": 0 },
{ "label": "k42", "matrix": [4, 2], "w": 1, "x": 58, "y": 0 },
{ "label": "k43", "matrix": [4, 3], "w": 1, "x": 59, "y": 0 },
{ "label": "k46", "matrix": [4, 6], "w": 1, "x": 60, "y": 0 },
{ "label": "k49", "matrix": [4, 9], "w": 1, "x": 61, "y": 0 },
{ "label": "k4a", "matrix": [4, 10], "w": 1, "x": 62, "y": 0 },
{ "label": "k4b", "matrix": [4, 11], "w": 1, "x": 63, "y": 0 },
{ "label": "k4c", "matrix": [4, 12], "w": 1, "x": 64, "y": 0 },
{ "label": "k4d", "matrix": [4, 13], "w": 1, "x": 65, "y": 0 }
{ "label": "Esc", "matrix": [0, 0], "x": 0, "y": 0 },
{ "label": "1!", "matrix": [0, 1], "x": 1, "y": 0 },
{ "label": "2@", "matrix": [0, 2], "x": 2, "y": 0 },
{ "label": "3#", "matrix": [0, 3], "x": 3, "y": 0 },
{ "label": "4$", "matrix": [0, 4], "x": 4, "y": 0 },
{ "label": "5%", "matrix": [0, 5], "x": 5, "y": 0 },
{ "label": "6^", "matrix": [0, 6], "x": 6, "y": 0 },
{ "label": "7&", "matrix": [0, 7], "x": 7, "y": 0 },
{ "label": "8*", "matrix": [0, 8], "x": 8, "y": 0 },
{ "label": "9(", "matrix": [0, 9], "x": 9, "y": 0 },
{ "label": "0)", "matrix": [0, 10], "x": 10, "y": 0 },
{ "label": "-_", "matrix": [0, 11], "x": 11, "y": 0 },
{ "label": "=+", "matrix": [0, 12], "x": 12, "y": 0 },
{ "label": "Delete", "matrix": [0, 13], "x": 13, "y": 0, "w": 1.5 },
{ "label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5 },
{ "label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1 },
{ "label": "W", "matrix": [1, 2], "x": 2.5, "y": 1 },
{ "label": "E", "matrix": [1, 3], "x": 3.5, "y": 1 },
{ "label": "R", "matrix": [1, 4], "x": 4.5, "y": 1 },
{ "label": "T", "matrix": [1, 5], "x": 5.5, "y": 1 },
{ "label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1 },
{ "label": "U", "matrix": [1, 7], "x": 7.5, "y": 1 },
{ "label": "I", "matrix": [1, 8], "x": 8.5, "y": 1 },
{ "label": "O", "matrix": [1, 9], "x": 9.5, "y": 1 },
{ "label": "P", "matrix": [1, 10], "x": 10.5, "y": 1 },
{ "label": "[{", "matrix": [1, 11], "x": 11.5, "y": 1 },
{ "label": "]}", "matrix": [1, 12], "x": 12.5, "y": 1 },
{ "label": "\\|", "matrix": [1, 13], "x": 13.5, "y": 1 },
{ "label": "Ctrl", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75 },
{ "label": "A", "matrix": [2, 1], "x": 1.75, "y": 2 },
{ "label": "S", "matrix": [2, 2], "x": 2.75, "y": 2 },
{ "label": "D", "matrix": [2, 3], "x": 3.75, "y": 2 },
{ "label": "F", "matrix": [2, 4], "x": 4.75, "y": 2 },
{ "label": "G", "matrix": [2, 5], "x": 5.75, "y": 2 },
{ "label": "H", "matrix": [2, 6], "x": 6.75, "y": 2 },
{ "label": "J", "matrix": [2, 7], "x": 7.75, "y": 2 },
{ "label": "K", "matrix": [2, 8], "x": 8.75, "y": 2 },
{ "label": "L", "matrix": [2, 9], "x": 9.75, "y": 2 },
{ "label": ";:", "matrix": [2, 10], "x": 10.75, "y": 2 },
{ "label": "'\"", "matrix": [2, 11], "x": 11.75, "y": 2 },
{ "label": "#~", "matrix": [2, 12], "x": 12.75, "y": 2, "w": 0.75 },
{ "label": "Enter", "matrix": [2, 13], "x": 13.5, "y": 2 },
{ "label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25 },
{ "label": "\\|", "matrix": [3, 1], "x": 1.25, "y": 3 },
{ "label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3 },
{ "label": "X", "matrix": [3, 3], "x": 3.25, "y": 3 },
{ "label": "C", "matrix": [3, 4], "x": 4.25, "y": 3 },
{ "label": "V", "matrix": [3, 5], "x": 5.25, "y": 3 },
{ "label": "B", "matrix": [3, 6], "x": 6.25, "y": 3 },
{ "label": "N", "matrix": [3, 7], "x": 7.25, "y": 3 },
{ "label": "M", "matrix": [3, 8], "x": 8.25, "y": 3 },
{ "label": ",<", "matrix": [3, 9], "x": 9.25, "y": 3 },
{ "label": ".>", "matrix": [3, 10], "x": 10.25, "y": 3 },
{ "label": "/?", "matrix": [3, 11], "x": 11.25, "y": 3 },
{ "label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.25 },
{ "label": "Fn", "matrix": [3, 13], "x": 13.5, "y": 3 },
{ "label": "Caps Lock", "matrix": [4, 0], "x": 0, "y": 4 },
{ "label": "Alt", "matrix": [4, 1], "x": 1, "y": 4 },
{ "label": "GUI", "matrix": [4, 2], "x": 2, "y": 4, "w": 1.75 },
{ "label": "`~", "matrix": [4, 3], "x": 3.75, "y": 4 },
{ "label": "Space", "matrix": [4, 6], "x": 4.75, "y": 4, "w": 4.75 },
{ "label": "\\|", "matrix": [4, 9], "x": 9.5, "y": 4 },
{ "label": "\u2190", "matrix": [4, 10], "x": 10.5, "y": 4 },
{ "label": "\u2192", "matrix": [4, 11], "x": 11.5, "y": 4 },
{ "label": "\u2193", "matrix": [4, 12], "x": 12.5, "y": 4 },
{ "label": "\u2191", "matrix": [4, 13], "x": 13.5, "y": 4 }
]
}
}
}
}

View File

@@ -18,87 +18,90 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
#undef PRODUCT
#define PRODUCT "Charybdis Nano (Blackpill)"
#ifdef KEYBOARD_bastardkb_charybdis_3x5_blackpill
#undef MATRIX_ROW_PINS
#define MATRIX_ROW_PINS \
{ B12, B13, B14, B15 }
#undef MATRIX_COL_PINS
#define MATRIX_COL_PINS \
{ A15, B3, B4, B5, B6 }
# undef MATRIX_ROW_PINS
# define MATRIX_ROW_PINS \
{ B12, B13, B14, B15 }
# undef MATRIX_COL_PINS
# define MATRIX_COL_PINS \
{ A15, B3, B4, B5, B6 }
# undef MATRIX_ROW_PINS_RIGHT
# define MATRIX_ROW_PINS_RIGHT \
{ B12, B13, B14, B15 }
# undef MATRIX_COL_PINS_RIGHT
# define MATRIX_COL_PINS_RIGHT \
{ A15, B3, B4, B5, B6 }
#undef MATRIX_ROW_PINS_RIGHT
#define MATRIX_ROW_PINS_RIGHT \
{ B12, B13, B14, B15 }
#undef MATRIX_COL_PINS_RIGHT
#define MATRIX_COL_PINS_RIGHT \
{ A15, B3, B4, B5, B6 }
#define USB_VBUS_PIN B10
#define SPLIT_HAND_PIN C14 // high = left, low = right
# define USB_VBUS_PIN B10
# undef SPLIT_HAND_PIN
# define SPLIT_HAND_PIN C14 // high = left, low = right
// WS2812 RGB LED strip input and number of LEDs
#undef RGB_DI_PIN
#define RGB_DI_PIN A1
#undef RGB_MATRIX_MAXIMUM_BRIGHTNESS
#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150
#define WS2812_PWM_DRIVER PWMD2 // default: PWMD2
#define WS2812_PWM_CHANNEL 2 // default: 2
#define WS2812_PWM_PAL_MODE 1 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 2
#define WS2812_EXTERNAL_PULLUP
# undef RGB_DI_PIN
# define RGB_DI_PIN A1
# undef RGB_MATRIX_MAXIMUM_BRIGHTNESS
# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150
# define WS2812_PWM_DRIVER PWMD2 // default: PWMD2
# define WS2812_PWM_CHANNEL 2 // default: 2
# define WS2812_PWM_PAL_MODE 1 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 2
# define WS2812_EXTERNAL_PULLUP
//#define WS2812_PWM_COMPLEMENTARY_OUTPUT // Define for a complementary timer output (TIMx_CHyN); omit for a normal timer output (TIMx_CHy).
#define WS2812_DMA_STREAM STM32_DMA1_STREAM7 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
#define WS2812_DMA_CHANNEL 3 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
#define WS2812_PWM_TARGET_PERIOD 800000
# undef WS2812_DMA_STREAM
# define WS2812_DMA_STREAM STM32_DMA1_STREAM7 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
# define WS2812_DMA_CHANNEL 3 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
# define WS2812_PWM_TARGET_PERIOD 800000
#define DEBUG_LED_PIN C13
# define DEBUG_LED_PIN C13
/* Audio config */
#define AUDIO_PIN B1
#define AUDIO_PWM_DRIVER PWMD3
#define AUDIO_PWM_CHANNEL 4
#define AUDIO_PWM_PAL_MODE 2
# define AUDIO_PIN B1
# define AUDIO_PWM_DRIVER PWMD3
# define AUDIO_PWM_CHANNEL 4
# define AUDIO_PWM_PAL_MODE 2
/* serial.c configuration for split keyboard */
#undef SOFT_SERIAL_PIN
#define SERIAL_USART_FULL_DUPLEX // Enable full duplex operation mode.
#define SERIAL_USART_TX_PIN A2
#define SERIAL_USART_RX_PIN A3
#define SERIAL_USART_DRIVER SD2
#define SERIAL_USART_TX_PAL_MODE 7 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 7
#define SERIAL_USART_RX_PAL_MODE 7 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 7
#define SERIAL_USART_TIMEOUT 100 // USART driver timeout. default 100
#define SERIAL_USART_SPEED 921600
# undef SOFT_SERIAL_PIN
# define SERIAL_USART_FULL_DUPLEX // Enable full duplex operation mode.
# undef SERIAL_USART_TX_PIN
# define SERIAL_USART_TX_PIN A2
# undef SERIAL_USART_RX_PIN
# define SERIAL_USART_RX_PIN A3
# define SERIAL_USART_DRIVER SD2
# define SERIAL_USART_TX_PAL_MODE 7 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 7
# define SERIAL_USART_RX_PAL_MODE 7 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 7
# define SERIAL_USART_TIMEOUT 100 // USART driver timeout. default 100
# define SERIAL_USART_SPEED 921600
// #define SERIAL_USART_PIN_SWAP // swap RX and TX pins on master
// To use the highest possible baudrate (3.75Mbit/s) uncomment the following
// line, this can result in dropped communications so lower the speed if there
// are many timeouts.
// #define SERIAL_USART_SPEED (STM32_PCLK2 >> 4)
#define CRC8_USE_TABLE
#define CRC8_OPTIMIZE_SPEED
# define CRC8_USE_TABLE
# define CRC8_OPTIMIZE_SPEED
/* spi config for eeprom and pmw3360 sensor */
#define SPI_DRIVER SPID1
#define SPI_SCK_PIN A5
#define SPI_SCK_PAL_MODE 5
#define SPI_MOSI_PIN A7
#define SPI_MOSI_PAL_MODE 5
#define SPI_MISO_PIN A6
#define SPI_MISO_PAL_MODE 5
# define SPI_DRIVER SPID1
# define SPI_SCK_PIN A5
# define SPI_SCK_PAL_MODE 5
# define SPI_MOSI_PIN A7
# define SPI_MOSI_PAL_MODE 5
# define SPI_MISO_PIN A6
# define SPI_MISO_PAL_MODE 5
/* eeprom config */
#define EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN A4
#define EXTERNAL_EEPROM_SPI_CLOCK_DIVISOR 64
# define EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN A4
# define EXTERNAL_EEPROM_SPI_CLOCK_DIVISOR 64
// #define EXTERNAL_EEPROM_BYTE_COUNT 8196
// #define EXTERNAL_EEPROM_PAGE_SIZE 32
// #define EXTERNAL_EEPROM_ADDRESS_SIZE 2
/* pmw3360 config */
#undef PMW33XX_CS_PIN
#define PMW33XX_CS_PIN B0
# undef PMW33XX_CS_PIN
# define PMW33XX_CS_PIN B0
#endif
#define CHARYBDIS_MINIMUM_DEFAULT_DPI 1200
#define CHARYBDIS_DEFAULT_DPI_CONFIG_STEP 400

View File

@@ -15,11 +15,13 @@
*/
#pragma once
#define HAL_USE_PWM TRUE
#define HAL_USE_SERIAL TRUE
#define HAL_USE_I2C TRUE
#define HAL_USE_SPI TRUE
#define SPI_USE_WAIT TRUE
#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD
#if defined(KEYBOARD_bastardkb_charybdis_3x5_blackpill)
# define HAL_USE_PWM TRUE
# define HAL_USE_SERIAL TRUE
# define HAL_USE_I2C TRUE
# define HAL_USE_SPI TRUE
# define SPI_USE_WAIT TRUE
# define SPI_SELECT_MODE SPI_SELECT_MODE_PAD
#endif
#include_next <halconf.h>

View File

@@ -83,24 +83,28 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
};
void matrix_init_keyemap(void) { setPinInputHigh(A0); }
#if defined(KEYBOARD_bastardkb_charybdis_3x5_blackpill)
void keyboard_pre_init_keymap(void) {
setPinInputHigh(A0);
}
void matrix_scan_keymap(void) {
void housekeeping_task_keymap(void) {
if (!readPin(A0)) {
reset_keyboard();
}
}
#ifdef USB_VBUS_PIN
# ifdef USB_VBUS_PIN
bool usb_vbus_state(void) {
setPinInputLow(USB_VBUS_PIN);
wait_us(5);
return readPin(USB_VBUS_PIN);
}
#endif
# endif
void matrix_output_unselect_delay(uint8_t line, bool key_pressed) {
for (int32_t i = 0; i < 40; i++) {
__asm__ volatile("nop" ::: "memory");
}
}
#endif

View File

@@ -18,25 +18,27 @@
#include_next "mcuconf.h"
#undef STM32_I2C_USE_I2C1
#define STM32_I2C_USE_I2C1 TRUE
#if defined(KEYBOARD_bastardkb_charybdis_3x5_blackpill)
# undef STM32_I2C_USE_I2C1
# define STM32_I2C_USE_I2C1 TRUE
// #undef STM32_I2C_I2C1_RX_DMA_STREAM
// #define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0)
#undef STM32_I2C_I2C1_TX_DMA_STREAM
#define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 1)
# undef STM32_I2C_I2C1_TX_DMA_STREAM
# define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 1)
#undef STM32_PWM_USE_TIM2
#define STM32_PWM_USE_TIM2 TRUE
# undef STM32_PWM_USE_TIM2
# define STM32_PWM_USE_TIM2 TRUE
#undef STM32_PWM_USE_TIM3
#define STM32_PWM_USE_TIM3 TRUE
# undef STM32_PWM_USE_TIM3
# define STM32_PWM_USE_TIM3 TRUE
#undef STM32_SPI_USE_SPI1
#define STM32_SPI_USE_SPI1 TRUE
# undef STM32_SPI_USE_SPI1
# define STM32_SPI_USE_SPI1 TRUE
#undef STM32_SERIAL_USE_USART2
#define STM32_SERIAL_USE_USART2 TRUE
# undef STM32_SERIAL_USE_USART2
# define STM32_SERIAL_USE_USART2 TRUE
#undef STM32_ST_USE_TIMER
#define STM32_ST_USE_TIMER 5
# undef STM32_ST_USE_TIMER
# define STM32_ST_USE_TIMER 5
#endif

View File

@@ -1,28 +1,45 @@
# MCU name
MCU = STM32F411
BOARD = BLACKPILL_STM32_F411
RGB_MATRIX_ENABLE = no
CUSTOM_UNICODE_ENABLE = no
CUSTOM_POINTING_DEVICE = no
CUSTOM_SPLIT_TRANSPORT_SYNC = no
# Bootloader selection
# BOOTLOADER = stm32-dfu
BOOTLOADER := tinyuf2
LTO_ENABLE := no
ifeq ($(strip $(KEYBOARD)), bastardkb/charybdis/3x5/blackpill)
# Bootloader selection
BOOTLOADER := tinyuf2
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
KEYBOARD_SHARED_EP = yes
MOUSE_SHARED_EP = yes
LTO_ENABLE := no
EEPROM_DRIVER = spi
WS2812_DRIVER = pwm
SERIAL_DRIVER = usart
AUDIO_DRIVER = pwm_hardware
AUDIO_SUPPORTED = yes
AUDIO_ENABLE = yes
AUDIO_DRIVER = pwm_hardware
AUDIO_SUPPORTED = yes
AUDIO_ENABLE = yes
MOUSEKEY_ENABLE = yes
NKRO_ENABLE = yes
CONSOLE_ENABLE = yes
OVERLOAD_FEATURES = yes
endif
AUTOCORRECT_ENABLE = yes
ifeq ($(strip $(KEYBOARD)), bastardkb/charybdis/3x5/v2/stemcell)
OVERLOAD_FEATURES = yes
endif
ifeq ($(strip $(KEYBOARD)), bastardkb/charybdis/3x5/v2/splinky)
OVERLOAD_FEATURES = yes
endif
DEBOUNCE_TYPE = asym_eager_defer_pk
ifeq ($(strip $(OVERLOAD_FEATURES)), yes)
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
KEYBOARD_SHARED_EP = yes
MOUSE_SHARED_EP = yes
MOUSEKEY_ENABLE = yes
NKRO_ENABLE = yes
CONSOLE_ENABLE = yes
RGB_MATRIX_ENABLE = yes
AUTOCORRECT_ENABLE = yes
CUSTOM_UNICODE_ENABLE = yes
CUSTOM_POINTING_DEVICE = yes
CUSTOM_SPLIT_TRANSPORT_SYNC = yes
DEBOUNCE_TYPE = asym_eager_defer_pk
endif

View File

@@ -1,6 +0,0 @@
# Splinky controller
The splinky is a Pro-Micro/Elite-C replacement with USB-C and RP2040.
See https://github.com/plut0nium/0xB2/#releases to figure out the right version
for you (v2 and v3) supported.

View File

@@ -1,2 +0,0 @@
# Intentionally blank so that QMK detects this folder as a valid keyboard
# parameter.

View File

@@ -1,2 +0,0 @@
# Intentionally blank so that QMK detects this folder as a valid keyboard
# parameter.

View File

@@ -20,6 +20,16 @@
/* Key matrix configuration. */
#define MATRIX_ROW_PINS \
{ GP26, GP5, GP4, GP9 }
#define MATRIX_COL_PINS \
{ GP28, GP15, GP6, GP7, GP8 }
/* Handedness. */
#define MASTER_RIGHT
// To use the handedness pin, resistors need to be installed on the adapter PCB.
// If so, uncomment the following code, and undefine MASTER_RIGHT above.
// #define SPLIT_HAND_PIN GP13
// #define SPLIT_HAND_PIN_LOW_IS_LEFT // High -> right, Low -> left.
/* serial.c configuration (for split keyboard). */
#define SOFT_SERIAL_PIN GP1
@@ -29,7 +39,10 @@
/* SPI & PMW3360 settings. */
#define SPI_DRIVER SPID0
#define SPI_SCK_PIN GP18
#define SPI_MISO_PIN GP20
#define SPI_MOSI_PIN GP19
#define POINTING_DEVICE_CS_PIN GP14
/* Reset. */
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET

View File

@@ -0,0 +1,5 @@
# Splinky controller
The splinky is a Pro-Micro/Elite-C replacement with USB-C and RP2040.
See [plut0nium/0xB2](https://github.com/plut0nium/0xB2/#releases) to figure out the right version for you (v2 or v3).

View File

@@ -35,5 +35,3 @@ POINTING_DEVICE_DRIVER = pmw3360
SERIAL_DRIVER = vendor
WS2812_DRIVER = vendor
DEFAULT_FOLDER = bastardkb/charybdis/3x5/v2/splinky/v3

View File

@@ -0,0 +1,50 @@
/*
* Copyright 2022 Charly Delay <charly@codesink.dev> (@0xcharly)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
/* Key matrix configuration. */
#define MATRIX_ROW_PINS \
{ GP26, GP5, GP4, GP9 }
#define MATRIX_COL_PINS \
{ GP28, GP21, GP6, GP7, GP8 }
/* Handedness. */
#define MASTER_RIGHT
// To use the handedness pin, resistors need to be installed on the adapter PCB.
// If so, uncomment the following code, and undefine MASTER_RIGHT above.
// #define SPLIT_HAND_PIN GP15
// #define SPLIT_HAND_PIN_LOW_IS_LEFT // High -> right, Low -> left.
/* serial.c configuration (for split keyboard). */
#define SOFT_SERIAL_PIN GP1
/* RGB settings. */
#define RGB_DI_PIN GP0
/* SPI & PMW3360 settings. */
#define SPI_DRIVER SPID0
#define SPI_SCK_PIN GP22
#define SPI_MISO_PIN GP20
#define SPI_MOSI_PIN GP23
#define POINTING_DEVICE_CS_PIN GP16
/* Reset. */
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP17
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U

View File

@@ -0,0 +1,6 @@
{
"keyboard_name": "Charybdis Nano (3x5) Splinky",
"usb": {
"device_version": "2.0.0"
}
}

View File

@@ -0,0 +1,5 @@
# Splinky controller
The splinky is a Pro-Micro/Elite-C replacement with USB-C and RP2040.
See [plut0nium/0xB2](https://github.com/plut0nium/0xB2/#releases) to figure out the right version for you (v2 or v3).

View File

@@ -28,11 +28,10 @@ RGB_MATRIX_ENABLE = yes # Enable keyboard RGB matrix functionality
RGB_MATRIX_DRIVER = WS2812
SPLIT_KEYBOARD = yes
LAYOUTS = split_3x5_3
POINTING_DEVICE_ENABLE = yes # Enable trackball
POINTING_DEVICE_DRIVER = pmw3360
SERIAL_DRIVER = vendor
WS2812_DRIVER = vendor
DEFAULT_FOLDER = bastardkb/charybdis/4x6/v2/splinky/v3

View File

@@ -1,6 +0,0 @@
# Splinky controller
The splinky is a Pro-Micro/Elite-C replacement with USB-C and RP2040.
See https://github.com/plut0nium/0xB2/#releases to figure out the right version
for you (v2 and v3) supported.

View File

@@ -1,2 +0,0 @@
# Intentionally blank so that QMK detects this folder as a valid keyboard
# parameter.

View File

@@ -1,2 +0,0 @@
# Intentionally blank so that QMK detects this folder as a valid keyboard
# parameter.

View File

@@ -0,0 +1,50 @@
/*
* Copyright 2022 Charly Delay <charly@codesink.dev> (@0xcharly)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
/* Key matrix configuration. */
#define MATRIX_ROW_PINS \
{ GP26, GP5, GP4, GP9 }
#define MATRIX_COL_PINS \
{ GP27, GP28, GP15, GP6, GP7, GP8 }
/* Handedness. */
#define MASTER_RIGHT
// To use the handedness pin, resistors need to be installed on the adapter PCB.
// If so, uncomment the following code, and undefine MASTER_RIGHT above.
// #define SPLIT_HAND_PIN GP13
// #define SPLIT_HAND_PIN_LOW_IS_LEFT // High -> right, Low -> left.
/* serial.c configuration (for split keyboard). */
#define SOFT_SERIAL_PIN GP1
/* RGB settings. */
#define RGB_DI_PIN GP0
/* SPI & PMW3360 settings. */
#define SPI_DRIVER SPID0
#define SPI_SCK_PIN GP18
#define SPI_MISO_PIN GP20
#define SPI_MOSI_PIN GP19
#define POINTING_DEVICE_CS_PIN GP14
/* Reset. */
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP17
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U

View File

@@ -0,0 +1,5 @@
# Splinky controller
The splinky is a Pro-Micro/Elite-C replacement with USB-C and RP2040.
See [plut0nium/0xB2](https://github.com/plut0nium/0xB2/#releases) to figure out the right version for you (v2 or v3).

View File

@@ -35,5 +35,3 @@ POINTING_DEVICE_DRIVER = pmw3360
SERIAL_DRIVER = vendor
WS2812_DRIVER = vendor
DEFAULT_FOLDER = bastardkb/charybdis/3x6/v2/splinky/v3

View File

@@ -0,0 +1,50 @@
/*
* Copyright 2022 Charly Delay <charly@codesink.dev> (@0xcharly)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
/* Key matrix configuration. */
#define MATRIX_ROW_PINS \
{ GP26, GP5, GP4, GP9 }
#define MATRIX_COL_PINS \
{ GP27, GP28, GP21, GP6, GP7, GP8 }
/* Handedness. */
#define MASTER_RIGHT
// To use the handedness pin, resistors need to be installed on the adapter PCB.
// If so, uncomment the following code, and undefine MASTER_RIGHT above.
// #define SPLIT_HAND_PIN GP15
// #define SPLIT_HAND_PIN_LOW_IS_LEFT // High -> right, Low -> left.
/* serial.c configuration (for split keyboard). */
#define SOFT_SERIAL_PIN GP1
/* RGB settings. */
#define RGB_DI_PIN GP0
/* SPI & PMW3360 settings. */
#define SPI_DRIVER SPID0
#define SPI_SCK_PIN GP22
#define SPI_MISO_PIN GP20
#define SPI_MOSI_PIN GP23
#define POINTING_DEVICE_CS_PIN GP16
/* Reset. */
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP17
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U

View File

@@ -0,0 +1,6 @@
{
"keyboard_name": "Charybdis Mini (3x6) Splinky",
"usb": {
"device_version": "2.0.0"
}
}

View File

@@ -17,17 +17,7 @@
#pragma once
/* Key matrix configuration. */
#define MATRIX_ROW_PINS \
{ GP26, GP5, GP4, GP9 }
#include_next "mcuconf.h"
/* serial.c configuration (for split keyboard). */
#define SOFT_SERIAL_PIN GP1
/* RGB settings. */
#define RGB_DI_PIN GP0
/* Reset. */
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP17
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U
#undef RP_SPI_USE_SPI0
#define RP_SPI_USE_SPI0 TRUE

View File

@@ -0,0 +1,5 @@
# Splinky controller
The splinky is a Pro-Micro/Elite-C replacement with USB-C and RP2040.
See [plut0nium/0xB2](https://github.com/plut0nium/0xB2/#releases) to figure out the right version for you (v2 or v3).

View File

@@ -0,0 +1,37 @@
# MCU name
MCU = RP2040
# Bootloader selection
BOOTLOADER = rp2040
# RP2040-specific options
ALLOW_WARNINGS = yes
PICO_INTRINSICS_ENABLED = no # ATM Unsupported by ChibiOS.
# Build Options
# change yes to no to disable
#
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
MOUSEKEY_ENABLE = no # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = no # Enable N-Key Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
AUDIO_SUPPORTED = no # Audio is not supported
RGB_MATRIX_SUPPORTED = yes # RGB matrix is supported and enabled by default
RGBLIGHT_SUPPORTED = yes # RGB underglow is supported, but not enabled by default
RGB_MATRIX_ENABLE = yes # Enable keyboard RGB matrix functionality
RGB_MATRIX_DRIVER = WS2812
SPLIT_KEYBOARD = yes
LAYOUTS = split_3x6_3
POINTING_DEVICE_ENABLE = yes # Enable trackball
POINTING_DEVICE_DRIVER = pmw3360
SERIAL_DRIVER = vendor
WS2812_DRIVER = vendor

View File

@@ -16,99 +16,49 @@
*/
#pragma once
#undef PRODUCT
#define PRODUCT "Charybdis (4x6) Blackpill"
#if defined(KEYBOARD_bastardkb_charybdis_4x6_blackpill)
# undef MATRIX_COL_PINS
# define MATRIX_COL_PINS \
{ B0, B1, B12, B3, B4, B5 }
#undef MATRIX_COL_PINS
#define MATRIX_COL_PINS \
{ B0, B1, B12, B3, B4, B5 }
#undef MATRIX_COL_PINS_RIGHT
#define MATRIX_COL_PINS_RIGHT \
{ B0, B1, B12, B3, B4, B5 }
# define USB_VBUS_PIN B10
# define DEBUG_LED_PIN C13
#undef MATRIX_ROW_PINS
#define MATRIX_ROW_PINS \
{ B15, A2, B8, A8, B9 }
#undef MATRIX_ROW_PINS_RIGHT
#define MATRIX_ROW_PINS_RIGHT \
{ B15, A2, B8, A8, B9 }
# define AUDIO_PIN B7
# define AUDIO_PWM_DRIVER PWMD4
# define AUDIO_PWM_CHANNEL 2
# define AUDIO_PWM_PAL_MODE 2
# define AUDIO_INIT_DELAY
# define AUDIO_ENABLE_TONE_MULTIPLEXING
# define AUDIO_TONE_MULTIPLEXING_RATE_DEFAULT 10
# define SERIAL_USART_SPEED (1 * 1024 * 1024)
#define DIODE_DIRECTION ROW2COL
#define SPLIT_HAND_PIN A3
#undef MASTER_RIGHT
#define USB_VBUS_PIN B10
# undef POINTING_DEVICE_CS_PIN
# define POINTING_DEVICE_CS_PIN A15 // b14
# define PMW33XX_LIFTOFF_DISTANCE 0b1111
#endif
#undef RGB_DI_PIN
#define RGB_DI_PIN A1
#define WS2812_EXTERNAL_PULLUP
#define WS2812_PWM_DRIVER PWMD2
#define WS2812_PWM_CHANNEL 2
#define WS2812_PWM_PAL_MODE 1
#define WS2812_EXTERNAL_PULLUP
#define WS2812_DMA_STREAM STM32_DMA1_STREAM1
#define WS2812_DMA_CHANNEL 3
#define WS2812_PWM_TARGET_PERIOD 800000
#define DEBUG_LED_PIN C13
#define AUDIO_PIN B7
#define AUDIO_PWM_DRIVER PWMD4
#define AUDIO_PWM_CHANNEL 2
#define AUDIO_PWM_PAL_MODE 2
#define AUDIO_INIT_DELAY
#define AUDIO_ENABLE_TONE_MULTIPLEXING
#define AUDIO_TONE_MULTIPLEXING_RATE_DEFAULT 10
#undef SOFT_SERIAL_PIN
// #define SERIAL_USART_FULL_DUPLEX // Enable full duplex operation mode.
#define SERIAL_USART_TX_PIN A9
// #define SERIAL_USART_RX_PIN A3
// #define SERIAL_USART_DRIVER SD2
// #define SERIAL_USART_TX_PAL_MODE 7 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 7
// #define SERIAL_USART_RX_PAL_MODE 7 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 7
// #define SERIAL_USART_TIMEOUT 100 // USART driver timeout. default 100
// #define SERIAL_USART_SPEED 921600
#define SERIAL_USART_SPEED (1.5 * 1024 * 1024)
#define CRC8_USE_TABLE
#define CRC8_OPTIMIZE_SPEED
/* spi config for eeprom and pmw3360 sensor */
#define SPI_DRIVER SPID1
#define SPI_SCK_PIN A5
#define SPI_SCK_PAL_MODE 5
#define SPI_MOSI_PIN A7
#define SPI_MOSI_PAL_MODE 5
#define SPI_MISO_PIN A6
#define SPI_MISO_PAL_MODE 5
#define EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN A4
#define EXTERNAL_EEPROM_SPI_CLOCK_DIVISOR 64
#undef PMW33XX_CS_PIN
#define PMW33XX_CS_PIN A15 // b14
#define PMW33XX_LIFTOFF_DISTANCE 0b1111
#undef ROTATIONAL_TRANSFORM_ANGLE
#define ROTATIONAL_TRANSFORM_ANGLE -65
#define CHARYBDIS_MINIMUM_DEFAULT_DPI 1200
#define CHARYBDIS_DEFAULT_DPI_CONFIG_STEP 400
#define CHARYBDIS_MINIMUM_SNIPING_DPI 200
#define CHARYBDIS_SNIPING_DPI_CONFIG_STEP 100
#define ROTATIONAL_TRANSFORM_ANGLE 25
#define POINTING_DEVICE_ROTATION_270
/* RGB Matrix. */
#undef RGB_MATRIX_MAXIMUM_BRIGHTNESS
#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150
#define CHARYBDIS_MINIMUM_DEFAULT_DPI 1200
#define CHARYBDIS_DEFAULT_DPI_CONFIG_STEP 400
#define CHARYBDIS_MINIMUM_SNIPING_DPI 200
#define CHARYBDIS_SNIPING_DPI_CONFIG_STEP 100
#define CHARYBDIS_CONFIG_SYNC
#define BOOTMAGIC_LITE_ROW 0
#define BOOTMAGIC_LITE_ROW 0
#define BOOTMAGIC_LITE_COLUMN 0
#define BOOTMAGIC_LITE_ROW_RIGHT 5
#define BOOTMAGIC_LITE_ROW_RIGHT 5
#define BOOTMAGIC_LITE_COLUMN_RIGHT 0
#define BOOTMAGIC_LITE_EEPROM_ROW 1
#define BOOTMAGIC_LITE_EEPROM_ROW 1
#define BOOTMAGIC_LITE_EEPROM_COLUMN 0
#define BOOTMAGIC_LITE_EEPROM_ROW_RIGHT 1
#define BOOTMAGIC_LITE_EEPROM_ROW_RIGHT 1
#define BOOTMAGIC_LITE_EEPROM_COLUMN_RIGHT 0

View File

@@ -83,12 +83,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
SFT_T(KC_SPACE), ALT_T(KC_Q), _______
),
[_MOUSE] = LAYOUT_charybdis_4x6(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, KC_WH_U, DPI_RMOD,DPI_MOD, S_D_RMOD,S_D_MOD, _______,
_______, _______, _______, _______, _______, _______, _______, DPI_RMOD,DPI_MOD, S_D_RMOD,S_D_MOD, _______,
_______, _______, _______, _______, _______, _______, KC_WH_U, _______, _______, _______, _______, DRGSCRL,
_______, _______, _______, _______, _______, _______, KC_WH_D, KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN6, SNIPING,
_______, _______, _______, _______, _______, _______, KC_BTN7, KC_BTN4, KC_BTN5, KC_BTN8, DRGSCRL, _______,
_______, SNIPING, SNIPING, _______, _______,
_______, _______, _______
_______, _______, _______, _______, _______, _______, KC_BTN7, KC_BTN4, KC_BTN5, KC_BTN8, _______, _______,
_______, _______, _______, _______, _______,
_______, _______, _______
),
[_LOWER] = LAYOUT_charybdis_4x6_wrapper(
@@ -110,7 +110,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
[_ADJUST] = LAYOUT_charybdis_4x6_wrapper(
QK_MAKE, KC_WIDE,KC_AUSSIE,KC_SCRIPT,KC_ZALGO,KC_SUPER, KC_NOMODE,KC_BLOCKS,KC_REGIONAL,TG_GAME,TG_DBLO, QK_BOOT,
QK_MAKE, KC_WIDE,KC_AUSSIE,KC_SCRIPT,KC_ZALGO,KC_SUPER, KC_NOMODE,KC_COMIC,KC_REGIONAL,TG_GAME,TG_DBLO, QK_BOOT,
VRSN, _________________ADJUST_L1_________________, _________________ADJUST_R1_________________, EE_CLR,
KEYLOCK, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, TG_MODS,
UC_NEXT, _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, KC_MPLY,
@@ -121,8 +121,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// clang-format on
void matrix_init_keymap(void) {
setPinInputHigh(A0);
void keyboard_post_init_keymap(void) {
#ifdef RGB_MATRIX_ENABLE
g_led_config.flags[53] = g_led_config.flags[54] = g_led_config.flags[55] =
g_led_config.flags[0] = g_led_config.flags[1] = g_led_config.flags[2] = g_led_config.flags[3] =
@@ -131,11 +130,17 @@ void matrix_init_keymap(void) {
#endif
}
void matrix_scan_keymap(void) {
#if defined(KEYBOARD_bastardkb_charybdis_4x6_blackpill)
void keyboard_pre_init_keymap(void) {
setPinInputHigh(A0);
}
void housekeeping_task_keymap(void) {
if (!readPin(A0)) {
reset_keyboard();
}
}
#endif
#ifdef USB_VBUS_PIN
bool usb_vbus_state(void) {
@@ -145,12 +150,13 @@ bool usb_vbus_state(void) {
}
#endif
#if defined(KEYBOARD_bastardkb_charybdis_4x6_blackpill)
void matrix_output_unselect_delay(uint8_t line, bool key_pressed) {
for (int32_t i = 0; i < 40; i++) {
__asm__ volatile("nop" ::: "memory");
}
}
#endif
#ifdef SWAP_HANDS_ENABLE
const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {

View File

@@ -18,23 +18,10 @@
#include_next "mcuconf.h"
#undef STM32_PWM_USE_ADVANCED
#define STM32_PWM_USE_ADVANCED TRUE
#if defined(KEYBOARD_bastardkb_charybdis_4x6_blackpill)
# undef STM32_PWM_USE_ADVANCED
# define STM32_PWM_USE_ADVANCED TRUE
#undef STM32_PWM_USE_TIM1
#define STM32_PWM_USE_TIM1 TRUE
#undef STM32_PWM_USE_TIM2
#define STM32_PWM_USE_TIM2 TRUE
#undef STM32_PWM_USE_TIM4
#define STM32_PWM_USE_TIM4 TRUE
#undef STM32_SPI_USE_SPI1
#define STM32_SPI_USE_SPI1 TRUE
#undef STM32_SERIAL_USE_USART1
#define STM32_SERIAL_USE_USART1 TRUE
#undef STM32_ST_USE_TIMER
#define STM32_ST_USE_TIMER 5
# undef STM32_PWM_USE_TIM4
# define STM32_PWM_USE_TIM4 TRUE
#endif

View File

@@ -1,34 +1,56 @@
# MCU name
MCU = STM32F411
BOARD = BLACKPILL_STM32_F411
CUSTOM_UNICODE_ENABLE = no
CUSTOM_POINTING_DEVICE = no
CUSTOM_SPLIT_TRANSPORT_SYNC = no
# Bootloader selection
BOOTLOADER := tinyuf2
ifeq ($(strip $(KEYBOARD)), bastardkb/charybdis/4x6/blackpill)
# MCU name
# Bootloader selection
BOOTLOADER := tinyuf2
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
MOUSEKEY_ENABLE = yes # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # Enable N-Key Rollover
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = yes # Audio output
AUDIO_SUPPORTED = yes # is set to no in kb, needs to be forcibly enabled
AUDIO_ENABLE = yes # Audio output
AUDIO_SUPPORTED = yes # is set to no in kb, needs to be forcibly enabled
AUDIO_DRIVER = pwm_hardware
KEYBOARD_SHARED_EP = yes
MOUSE_SHARED_EP = yes
BACKLIGHT_DRIVER = pwm
EEPROM_DRIVER = spi
WS2812_DRIVER = pwm
SERIAL_DRIVER = usart
AUDIO_DRIVER = pwm_hardware
BACKLIGHT_DRIVER = pwm
OVERLOAD_FEATURES = yes
endif
AUTOCORRECT_ENABLE = yes
CAPS_WORD_ENABLE = yes
SWAP_HANDS_ENABLE = yes
TAP_DANCE_ENABLE = yes
DEBOUNCE_TYPE = asym_eager_defer_pk
WPM_ENABLE = yes
LTO_ENABLE = no
# OPT = 3
ifeq ($(strip $(KEYBOARD)), bastardkb/charybdis/4x6/v2/stemcell)
OVERLOAD_FEATURES = yes
endif
ifeq ($(strip $(KEYBOARD)), bastardkb/charybdis/4x6/v2/splinky)
OVERLOAD_FEATURES = yes
endif
ifeq ($(strip $(MCU)), atmega32u4)
LTO_ENABLE = yes
BOOTLOADER = qmk-hid
BOOTLOADER_SIZE = 512
endif
ifeq ($(strip $(OVERLOAD_FEATURES)), yes)
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
MOUSEKEY_ENABLE = yes # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # Enable N-Key Rollover
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
KEYBOARD_SHARED_EP = yes
MOUSE_SHARED_EP = yes
AUTOCORRECT_ENABLE = yes
CAPS_WORD_ENABLE = yes
SWAP_HANDS_ENABLE = yes
TAP_DANCE_ENABLE = yes
DEBOUNCE_TYPE = asym_eager_defer_pk
WPM_ENABLE = yes
LTO_ENABLE = no
# OPT = 3
CUSTOM_UNICODE_ENABLE = yes
CUSTOM_POINTING_DEVICE = yes
CUSTOM_SPLIT_TRANSPORT_SYNC = yes
endif

View File

@@ -1,6 +0,0 @@
# Splinky controller
The splinky is a Pro-Micro/Elite-C replacement with USB-C and RP2040.
See https://github.com/plut0nium/0xB2/#releases to figure out the right version
for you (v2 and v3) supported.

View File

@@ -1,2 +0,0 @@
# Intentionally blank so that QMK detects this folder as a valid keyboard
# parameter.

View File

@@ -1,2 +0,0 @@
# Intentionally blank so that QMK detects this folder as a valid keyboard
# parameter.

View File

@@ -20,6 +20,16 @@
/* Key matrix configuration. */
#define MATRIX_ROW_PINS \
{ GP29, GP26, GP5, GP4, GP9 }
#define MATRIX_COL_PINS \
{ GP27, GP28, GP15, GP6, GP7, GP8 }
/* Handedness. */
#define MASTER_RIGHT
// To use the handedness pin, resistors need to be installed on the adapter PCB.
// If so, uncomment the following code, and undefine MASTER_RIGHT above.
// #define SPLIT_HAND_PIN GP13
// #define SPLIT_HAND_PIN_LOW_IS_LEFT // High -> right, Low -> left.
/* serial.c configuration (for split keyboard). */
#define SOFT_SERIAL_PIN GP1
@@ -29,7 +39,10 @@
/* SPI & PMW3360 settings. */
#define SPI_DRIVER SPID0
#define SPI_SCK_PIN GP18
#define SPI_MISO_PIN GP20
#define SPI_MOSI_PIN GP19
#define POINTING_DEVICE_CS_PIN GP14
/* Reset. */
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET

View File

@@ -17,17 +17,7 @@
#pragma once
/* Key matrix configuration. */
#define MATRIX_ROW_PINS \
{ GP26, GP5, GP4, GP9 }
#include_next "mcuconf.h"
/* serial.c configuration (for split keyboard). */
#define SOFT_SERIAL_PIN GP1
/* RGB settings. */
#define RGB_DI_PIN GP0
/* Reset. */
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP17
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U
#undef RP_SPI_USE_SPI0
#define RP_SPI_USE_SPI0 TRUE

View File

@@ -0,0 +1,5 @@
# Splinky controller
The splinky is a Pro-Micro/Elite-C replacement with USB-C and RP2040.
See [plut0nium/0xB2](https://github.com/plut0nium/0xB2/#releases) to figure out the right version for you (v2 or v3).

View File

@@ -0,0 +1,36 @@
# MCU name
MCU = RP2040
# Bootloader selection
BOOTLOADER = rp2040
# RP2040-specific options
ALLOW_WARNINGS = yes
PICO_INTRINSICS_ENABLED = no # ATM Unsupported by ChibiOS.
# Build Options
# change yes to no to disable
#
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
MOUSEKEY_ENABLE = no # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = no # Enable N-Key Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
AUDIO_SUPPORTED = no # Audio is not supported
RGB_MATRIX_SUPPORTED = yes # RGB matrix is supported and enabled by default
RGBLIGHT_SUPPORTED = yes # RGB underglow is supported, but not enabled by default
RGB_MATRIX_ENABLE = yes # Enable keyboard RGB matrix functionality
RGB_MATRIX_DRIVER = WS2812
SPLIT_KEYBOARD = yes
POINTING_DEVICE_ENABLE = yes # Enable trackball
POINTING_DEVICE_DRIVER = pmw3360
SERIAL_DRIVER = vendor
WS2812_DRIVER = vendor

View File

@@ -0,0 +1,50 @@
/*
* Copyright 2022 Charly Delay <charly@codesink.dev> (@0xcharly)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
/* Key matrix configuration. */
#define MATRIX_ROW_PINS \
{ GP29, GP26, GP5, GP4, GP9 }
#define MATRIX_COL_PINS \
{ GP27, GP28, GP21, GP6, GP7, GP8 }
/* Handedness. */
#define MASTER_RIGHT
// To use the handedness pin, resistors need to be installed on the adapter PCB.
// If so, uncomment the following code, and undefine MASTER_RIGHT above.
// #define SPLIT_HAND_PIN GP15
// #define SPLIT_HAND_PIN_LOW_IS_LEFT // High -> right, Low -> left.
/* serial.c configuration (for split keyboard). */
#define SOFT_SERIAL_PIN GP1
/* RGB settings. */
#define RGB_DI_PIN GP0
/* SPI & PMW3360 settings. */
#define SPI_DRIVER SPID0
#define SPI_SCK_PIN GP22
#define SPI_MISO_PIN GP20
#define SPI_MOSI_PIN GP23
#define POINTING_DEVICE_CS_PIN GP16
/* Reset. */
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP17
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U

View File

@@ -0,0 +1,6 @@
{
"keyboard_name": "Charybdis (4x6) Splinky",
"usb": {
"device_version": "2.0.0"
}
}

View File

@@ -0,0 +1,23 @@
/*
* Copyright 2022 Charly Delay <charly@codesink.dev> (@0xcharly)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#include_next "mcuconf.h"
#undef RP_SPI_USE_SPI0
#define RP_SPI_USE_SPI0 TRUE

View File

@@ -0,0 +1,5 @@
# Splinky controller
The splinky is a Pro-Micro/Elite-C replacement with USB-C and RP2040.
See [plut0nium/0xB2](https://github.com/plut0nium/0xB2/#releases) to figure out the right version for you (v2 or v3).

View File

@@ -0,0 +1,36 @@
# MCU name
MCU = RP2040
# Bootloader selection
BOOTLOADER = rp2040
# RP2040-specific options
ALLOW_WARNINGS = yes
PICO_INTRINSICS_ENABLED = no # ATM Unsupported by ChibiOS.
# Build Options
# change yes to no to disable
#
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
MOUSEKEY_ENABLE = no # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = no # Enable N-Key Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
AUDIO_SUPPORTED = no # Audio is not supported
RGB_MATRIX_SUPPORTED = yes # RGB matrix is supported and enabled by default
RGBLIGHT_SUPPORTED = yes # RGB underglow is supported, but not enabled by default
RGB_MATRIX_ENABLE = yes # Enable keyboard RGB matrix functionality
RGB_MATRIX_DRIVER = WS2812
SPLIT_KEYBOARD = yes
POINTING_DEVICE_ENABLE = yes # Enable trackball
POINTING_DEVICE_DRIVER = pmw3360
SERIAL_DRIVER = vendor
WS2812_DRIVER = vendor

View File

@@ -18,6 +18,8 @@
#pragma once
#include "config_common.h"
/* Pointing device configuration. */
// Enable use of pointing device on slave split.

View File

@@ -0,0 +1,23 @@
/**
* Copyright 2022 Charly Delay <charly@codesink.dev> (@0xcharly)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#define HAL_USE_SPI TRUE
#define HAL_USE_I2C TRUE
#include_next "halconf.h"

View File

@@ -112,7 +112,7 @@ bool oled_task_keymap(void) {
};
oled_write_raw_P(header_image, sizeof(header_image));
oled_set_cursor(7, 0);
oled_write_P(PSTR("Rock On"), true);
oled_write_P(PSTR("Dilemma"), true);
render_default_layer_state(1, 1);
render_layer_state(1, 2);
@@ -158,3 +158,19 @@ bool oled_task_keymap(void) {
return false;
}
#endif
#ifdef SWAP_HANDS_ENABLE
const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
/* Left hand, matrix positions */
{{0, 4}, {3, 4}, {2, 4}, {5, 4}, {4, 4}},
{{0, 5}, {1, 5}, {2, 5}, {3, 5}, {4, 5}},
{{0, 6}, {1, 6}, {2, 6}, {3, 6}, {4, 6}},
{{0, 7}, {1, 7}, {2, 7}, {3, 7}, {4, 7}},
/* Right hand, matrix positions */
{{0, 0}, {1, 0}, {2, 0}, {3, 0}, {4, 0}},
{{0, 1}, {1, 1}, {2, 1}, {3, 1}, {4, 1}},
{{0, 2}, {1, 2}, {2, 2}, {3, 2}, {4, 2}},
{{0, 3}, {1, 3}, {2, 3}, {3, 3}, {4, 3}},
};
#endif

View File

@@ -0,0 +1,26 @@
/**
* Copyright 2022 Charly Delay <charly@codesink.dev> (@0xcharly)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#include_next "mcuconf.h"
#undef RP_SPI_USE_SPI1
#define RP_SPI_USE_SPI1 TRUE
#undef RP_I2C_USE_I2C1
#define RP_I2C_USE_I2C1 TRUE

View File

@@ -1,6 +0,0 @@
# Splinky controller
The splinky is a Pro-Micro/Elite-C replacement with USB-C and RP2040.
See https://github.com/plut0nium/0xB2/#releases to figure out the right version
for you (v2 and v3) supported.

View File

@@ -1,2 +0,0 @@
# Intentionally blank so that QMK detects this folder as a valid keyboard
# parameter.

View File

@@ -1,2 +0,0 @@
# Intentionally blank so that QMK detects this folder as a valid keyboard
# parameter.

View File

@@ -18,14 +18,11 @@
#pragma once
/* Key matrix configuration. */
#define MATRIX_ROW_PINS \
{ GP29, GP26, GP5, GP4, GP9 }
#define MATRIX_COL_PINS \
{ GP27, GP28, GP15, GP6, GP7, GP8 }
/* SPI & PMW3360 settings. */
#define SPI_SCK_PIN GP18
#define SPI_MOSI_PIN GP19
#define POINTING_DEVICE_CS_PIN GP14
/* Handedness. */
#define MASTER_RIGHT
@@ -33,3 +30,14 @@
// If so, uncomment the following code, and undefine MASTER_RIGHT above.
// #define SPLIT_HAND_PIN GP13
// #define SPLIT_HAND_PIN_LOW_IS_LEFT // High -> right, Low -> left.
/* serial.c configuration (for split keyboard). */
#define SOFT_SERIAL_PIN GP1
/* RGB settings. */
#define RGB_DI_PIN GP0
/* Reset. */
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP17
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U

View File

@@ -0,0 +1,5 @@
# Splinky controller
The splinky is a Pro-Micro/Elite-C replacement with USB-C and RP2040.
See [plut0nium/0xB2](https://github.com/plut0nium/0xB2/#releases) to figure out the right version for you (v2 or v3).

View File

@@ -31,5 +31,3 @@ SPLIT_KEYBOARD = yes
SERIAL_DRIVER = vendor
WS2812_DRIVER = vendor
DEFAULT_FOLDER = bastardkb/scylla/v2/splinky/v3

View File

@@ -18,14 +18,11 @@
#pragma once
/* Key matrix configuration. */
#define MATRIX_ROW_PINS \
{ GP29, GP26, GP5, GP4, GP9 }
#define MATRIX_COL_PINS \
{ GP27, GP28, GP21, GP6, GP7, GP8 }
/* SPI & PMW3360 settings. */
#define SPI_SCK_PIN GP22
#define SPI_MOSI_PIN GP23
#define POINTING_DEVICE_CS_PIN GP16
/* Handedness. */
#define MASTER_RIGHT
@@ -33,3 +30,14 @@
// If so, uncomment the following code, and undefine MASTER_RIGHT above.
// #define SPLIT_HAND_PIN GP15
// #define SPLIT_HAND_PIN_LOW_IS_LEFT // High -> right, Low -> left.
/* serial.c configuration (for split keyboard). */
#define SOFT_SERIAL_PIN GP1
/* RGB settings. */
#define RGB_DI_PIN GP0
/* Reset. */
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP17
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U

View File

@@ -0,0 +1,6 @@
{
"keyboard_name": "Scylla Splinky",
"usb": {
"device_version": "2.0.0"
}
}

View File

@@ -0,0 +1,5 @@
# Splinky controller
The splinky is a Pro-Micro/Elite-C replacement with USB-C and RP2040.
See [plut0nium/0xB2](https://github.com/plut0nium/0xB2/#releases) to figure out the right version for you (v2 or v3).

View File

@@ -0,0 +1,33 @@
# MCU name
MCU = RP2040
# Bootloader selection
BOOTLOADER = rp2040
# RP2040-specific options
ALLOW_WARNINGS = yes
PICO_INTRINSICS_ENABLED = no # ATM Unsupported by ChibiOS.
# Build Options
# change yes to no to disable
#
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
MOUSEKEY_ENABLE = no # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = no # Enable N-Key Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
AUDIO_SUPPORTED = no # Audio is not supported
RGB_MATRIX_SUPPORTED = yes # RGB matrix is supported and enabled by default
RGBLIGHT_SUPPORTED = yes # RGB underglow is supported, but not enabled by default
RGB_MATRIX_ENABLE = yes # Enable keyboard RGB matrix functionality
RGB_MATRIX_DRIVER = WS2812
SPLIT_KEYBOARD = yes
SERIAL_DRIVER = vendor
WS2812_DRIVER = vendor

View File

@@ -1,6 +0,0 @@
# Splinky controller
The splinky is a Pro-Micro/Elite-C replacement with USB-C and RP2040.
See https://github.com/plut0nium/0xB2/#releases to figure out the right version
for you (v2 and v3) supported.

View File

@@ -1,30 +0,0 @@
/*
* Copyright 2022 Charly Delay <charly@codesink.dev> (@0xcharly)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
/* Key matrix configuration. */
#define MATRIX_COL_PINS \
{ GP28, GP15, GP6, GP7, GP8 }
/* Handedness. */
#define MASTER_RIGHT
// To use the handedness pin, resistors need to be installed on the adapter PCB.
// If so, uncomment the following code, and undefine MASTER_RIGHT above.
// #define SPLIT_HAND_PIN GP13
// #define SPLIT_HAND_PIN_LOW_IS_LEFT // High -> right, Low -> left.

View File

@@ -1,2 +0,0 @@
# Intentionally blank so that QMK detects this folder as a valid keyboard
# parameter.

View File

@@ -1,30 +0,0 @@
/*
* Copyright 2022 Charly Delay <charly@codesink.dev> (@0xcharly)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
/* Key matrix configuration. */
#define MATRIX_COL_PINS \
{ GP28, GP21, GP6, GP7, GP8 }
/* Handedness. */
#define MASTER_RIGHT
// To use the handedness pin, resistors need to be installed on the adapter PCB.
// If so, uncomment the following code, and undefine MASTER_RIGHT above.
// #define SPLIT_HAND_PIN GP15
// #define SPLIT_HAND_PIN_LOW_IS_LEFT // High -> right, Low -> left.

View File

@@ -1,2 +0,0 @@
# Intentionally blank so that QMK detects this folder as a valid keyboard
# parameter.

View File

@@ -18,14 +18,11 @@
#pragma once
/* Key matrix configuration. */
#define MATRIX_ROW_PINS \
{ GP26, GP5, GP4, GP9 }
#define MATRIX_COL_PINS \
{ GP28, GP15, GP6, GP7, GP8 }
/* SPI & PMW3360 settings. */
#define SPI_SCK_PIN GP18
#define SPI_MOSI_PIN GP19
#define POINTING_DEVICE_CS_PIN GP14
/* Handedness. */
#define MASTER_RIGHT
@@ -33,3 +30,14 @@
// If so, uncomment the following code, and undefine MASTER_RIGHT above.
// #define SPLIT_HAND_PIN GP13
// #define SPLIT_HAND_PIN_LOW_IS_LEFT // High -> right, Low -> left.
/* serial.c configuration (for split keyboard). */
#define SOFT_SERIAL_PIN GP1
/* RGB settings. */
#define RGB_DI_PIN GP0
/* Reset. */
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP17
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U

View File

@@ -0,0 +1,5 @@
# Splinky controller
The splinky is a Pro-Micro/Elite-C replacement with USB-C and RP2040.
See [plut0nium/0xB2](https://github.com/plut0nium/0xB2/#releases) to figure out the right version for you (v2 or v3).

View File

@@ -32,5 +32,3 @@ LAYOUTS = split_3x5_3
SERIAL_DRIVER = vendor
WS2812_DRIVER = vendor
DEFAULT_FOLDER = bastardkb/skeletyl/v2/splinky/v3

View File

@@ -18,14 +18,11 @@
#pragma once
/* Key matrix configuration. */
#define MATRIX_ROW_PINS \
{ GP26, GP5, GP4, GP9 }
#define MATRIX_COL_PINS \
{ GP28, GP21, GP6, GP7, GP8 }
/* SPI & PMW3360 settings. */
#define SPI_SCK_PIN GP22
#define SPI_MOSI_PIN GP23
#define POINTING_DEVICE_CS_PIN GP16
/* Handedness. */
#define MASTER_RIGHT
@@ -33,3 +30,14 @@
// If so, uncomment the following code, and undefine MASTER_RIGHT above.
// #define SPLIT_HAND_PIN GP15
// #define SPLIT_HAND_PIN_LOW_IS_LEFT // High -> right, Low -> left.
/* serial.c configuration (for split keyboard). */
#define SOFT_SERIAL_PIN GP1
/* RGB settings. */
#define RGB_DI_PIN GP0
/* Reset. */
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP17
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U

View File

@@ -0,0 +1,6 @@
{
"keyboard_name": "Skeletyl Splinky",
"usb": {
"device_version": "2.0.0"
}
}

View File

@@ -0,0 +1,5 @@
# Splinky controller
The splinky is a Pro-Micro/Elite-C replacement with USB-C and RP2040.
See [plut0nium/0xB2](https://github.com/plut0nium/0xB2/#releases) to figure out the right version for you (v2 or v3).

View File

@@ -0,0 +1,34 @@
# MCU name
MCU = RP2040
# Bootloader selection
BOOTLOADER = rp2040
# RP2040-specific options
ALLOW_WARNINGS = yes
PICO_INTRINSICS_ENABLED = no # ATM Unsupported by ChibiOS.
# Build Options
# change yes to no to disable
#
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
MOUSEKEY_ENABLE = no # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = no # Enable N-Key Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
AUDIO_SUPPORTED = no # Audio is not supported
RGB_MATRIX_SUPPORTED = yes # RGB matrix is supported and enabled by default
RGBLIGHT_SUPPORTED = yes # RGB underglow is supported, but not enabled by default
RGB_MATRIX_ENABLE = yes # Enable keyboard RGB matrix functionality
RGB_MATRIX_DRIVER = WS2812
SPLIT_KEYBOARD = yes
LAYOUTS = split_3x5_3
SERIAL_DRIVER = vendor
WS2812_DRIVER = vendor

View File

@@ -1,6 +0,0 @@
# Splinky controller
The splinky is a Pro-Micro/Elite-C replacement with USB-C and RP2040.
See https://github.com/plut0nium/0xB2/#releases to figure out the right version
for you (v2 and v3) supported.

View File

@@ -1,30 +0,0 @@
/*
* Copyright 2022 Charly Delay <charly@codesink.dev> (@0xcharly)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
/* Key matrix configuration. */
#define MATRIX_COL_PINS \
{ GP27, GP28, GP15, GP6, GP7, GP8 }
/* Handedness. */
#define MASTER_RIGHT
// To use the handedness pin, resistors need to be installed on the adapter PCB.
// If so, uncomment the following code, and undefine MASTER_RIGHT above.
// #define SPLIT_HAND_PIN GP13
// #define SPLIT_HAND_PIN_LOW_IS_LEFT // High -> right, Low -> left.

View File

@@ -1,2 +0,0 @@
# Intentionally blank so that QMK detects this folder as a valid keyboard
# parameter.

Some files were not shown because too many files have changed in this diff Show More