Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adds keyboard "Sofle Pico" #23338

Open
wants to merge 95 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 88 commits
Commits
Show all changes
95 commits
Select commit Hold shift + click to select a range
f417e42
Sofle pico first commit
JellyTitan Oct 1, 2023
97e6b96
fixed sofle pico build process
JellyTitan Oct 1, 2023
1bc1ecd
Added RH trackball
JellyTitan Oct 1, 2023
0b1495f
Fixed RH pimaroni config bug
JellyTitan Oct 2, 2023
edd4f42
Renamed sofle_v303 to sofle_pico
JellyTitan Oct 19, 2023
0ca4c65
Sofle Pico 'default' keymap created/fixed
JellyTitan Oct 19, 2023
2f5e18d
Move matrix_pins into info.json
JellyTitan Oct 19, 2023
7cb5875
Fixed switched row/column config
JellyTitan Nov 25, 2023
3736ac3
Added max_brightness to rgb_matrix
JellyTitan Nov 25, 2023
dfe3646
Moved mouse config to .json
JellyTitan Nov 25, 2023
371850c
Moved tapping term speed to json
JellyTitan Nov 25, 2023
b741ec9
Changed layout config name from LAYOUT_split4x6_r1 to LAYOUT
JellyTitan Nov 27, 2023
fbd7c8c
Updated hex for vid (JT) and pid (SP)
JellyTitan Nov 27, 2023
d19f4fc
Removed swap hands
JellyTitan Nov 28, 2023
3749d07
Removed rev1 folder and duplicate rules
JellyTitan Nov 28, 2023
73b8a65
Moved most of rules.mk to info.json
JellyTitan Nov 29, 2023
86e8ae1
Removed OLED transport config rule
JellyTitan Nov 29, 2023
67753d7
Shows logo on startup for 5 seconds
JellyTitan Nov 29, 2023
161b8f5
Wipes OLED after startup logo
JellyTitan Nov 29, 2023
e479049
Moved SPLIT_KEYBOARD setting from rules to .json
JellyTitan Nov 30, 2023
5479c27
Removed duplicated rgb_matrix config
JellyTitan Nov 30, 2023
e3454a3
Added rgb_matrix animations and defaults to json config
JellyTitan Nov 30, 2023
f826ecc
Fixed switched RH thumb keys
JellyTitan Nov 30, 2023
cb66ad3
Updated json layout labels to match legacy sofle defaults
JellyTitan Nov 30, 2023
90fedbc
Adds 'bootmagic' feature
JellyTitan Nov 30, 2023
2254ebd
Moved heatmap animations to json config
JellyTitan Nov 30, 2023
b56fb64
Added via files (not yet working)
JellyTitan Dec 1, 2023
4f2024a
Maxed out max brightness
JellyTitan Dec 1, 2023
63d4abe
Fixed OLED logo timeout bug
JellyTitan Dec 6, 2023
867ebca
Added QMK & Via logo to RH startup OLED
JellyTitan Dec 6, 2023
2162f10
Update readme.md image link
JellyTitan Dec 13, 2023
567bfe8
Update readme.md
JellyTitan Dec 13, 2023
bbfdde9
Update readme.md
JellyTitan Dec 13, 2023
36bc366
Removed animation default 'on'
JellyTitan Dec 13, 2023
a43c408
Merge branch 'master' of https://github.com/JellyTitan/qmk_firmware i…
JellyTitan Dec 14, 2023
c8fd129
Default keymap matches legacy sofle
JellyTitan Dec 14, 2023
461432b
Removed tapdance from default config and keymap
JellyTitan Dec 14, 2023
0629633
Reduced max brightness
JellyTitan Dec 31, 2023
3da48b3
Added via support for default
JellyTitan Jan 3, 2024
934ada8
Updated default layer count to match classic Sofle
JellyTitan Jan 5, 2024
53eab0a
Merge branch 'qmk:master' into sofle_pico
JellyTitan Feb 20, 2024
05c1c91
Updated Sofle Pico name and url
JellyTitan Feb 20, 2024
3899c21
qmk-json formatting applied
JellyTitan Feb 20, 2024
3273146
Readme tweak
JellyTitan Feb 21, 2024
a93ba7e
Updated sofle pico hero images
JellyTitan Feb 21, 2024
475bdec
Formatting cleanup
JellyTitan Feb 21, 2024
b9adb0e
Fixed ascii keymaps mangled by clang
JellyTitan Feb 21, 2024
540f16a
Fixes broken url in readme's
JellyTitan Mar 14, 2024
dcbfbed
Adds updated startup graphics to default Sofle Pico keymap
JellyTitan Mar 22, 2024
755f20e
Fixed OLED rotation
JellyTitan Mar 22, 2024
87a56ad
fix issue of cpslk appearing on different lines in default and raise/…
uberrice Mar 23, 2024
2e2a952
Merge pull request #41 from uberrice/sofle_pico
JellyTitan Mar 24, 2024
20e4c08
Added uberrice submitted oled line wraps to default keymap
JellyTitan Mar 24, 2024
9b7a4be
Fixed jellytitan oled line breaks
JellyTitan Mar 24, 2024
6d8cfe8
Cleans up comments to use 'C' style
JellyTitan Mar 24, 2024
c0e7f06
Fixes long comment styling
JellyTitan Mar 24, 2024
6d8b086
Updates readme to use 'via' keymap as default
JellyTitan Mar 24, 2024
3539f6c
Removed redundant comments
JellyTitan Mar 24, 2024
a7c9965
Restores 'default' keymap in readme to align with qmk template guidel…
JellyTitan Mar 24, 2024
6c000cb
Merge branch 'qmk:master' into sofle_pico
JellyTitan Mar 24, 2024
2cce3b8
Fixes lint error 'Invalid keyboard level feature detected - encoder_map'
JellyTitan Mar 24, 2024
da01f24
Update keyboards/sofle_pico/info.json
JellyTitan Mar 24, 2024
4ca2cc2
Fixes sofle pico via keymap name in readme
JellyTitan Mar 24, 2024
0891aa2
Moved bootmagic config into info.json
JellyTitan Mar 24, 2024
abb10f1
Removes redundant encoder resolution
JellyTitan Mar 24, 2024
bd2c950
Removes redundant encoder resolution
JellyTitan Mar 24, 2024
42d715a
Turns off the LEDs when the host goes to sleep.
JellyTitan Mar 24, 2024
97f950d
Simplifies flashing instructions to align with standards
JellyTitan Mar 24, 2024
06a4bb9
Added ee_hands first flash instructions to README
JellyTitan Mar 24, 2024
7d6a766
Moves sofle pico keymap images to imgur
JellyTitan Mar 26, 2024
6336c21
Standardizes make commands in readme
JellyTitan Mar 26, 2024
e98fd4a
Removes user keymap 'default_jellytitan'
JellyTitan Mar 28, 2024
fe281ec
moves the OLED code from the default keymap to the keyboard level
JellyTitan Mar 28, 2024
83d1fb7
Removes pointing device config at the keyboard level.
JellyTitan Mar 28, 2024
0a210d5
Removes extended layer count, and extra rgb config from keyboard level
JellyTitan Mar 28, 2024
c03ff53
Moves layer state transport sync to json config
JellyTitan Mar 28, 2024
caf496f
Removes keyboard level conditionals wrapping oled size, timeout, and …
JellyTitan Mar 29, 2024
b9f6310
Fixes lazy encoder formatting
JellyTitan Mar 29, 2024
c9da4b5
Removes vestigial encoder map layer
JellyTitan Mar 29, 2024
a011ffb
Removes depricated copy/paste/cut/undo methods
JellyTitan Mar 29, 2024
cad7282
Removed vestigial OLED logo timeout
JellyTitan Mar 29, 2024
4986536
Enables tri_layer feature
JellyTitan Mar 29, 2024
3a1a71d
Cleans up keymap spacing
JellyTitan Mar 29, 2024
5c1383d
Copies default keymap updates to VIA keymap
JellyTitan Mar 29, 2024
24462d2
Removes ee_hands - letting master default to LH
JellyTitan Mar 31, 2024
0ce90e4
Removed tri-layer-enable from via keymap
JellyTitan Mar 31, 2024
643b50d
removes enabled mouse_key default
JellyTitan Apr 8, 2024
3d37307
fixes oled rotation default at the keyboard level.
JellyTitan Apr 8, 2024
847dbbd
Merge branch 'master' of https://github.com/JellyTitan/qmk_firmware i…
JellyTitan Jul 4, 2024
ea1a0c0
Removes VIA-enabled keymap from Sofle Pico
JellyTitan Oct 15, 2024
6545c21
Removes unneded rules.mk
JellyTitan Oct 17, 2024
fe03013
Moves serial driver from rules.mk to info.json
JellyTitan Oct 17, 2024
956bdc7
Merge branch 'qmk:master' into sofle_pico
JellyTitan Nov 26, 2024
d8fd17d
Moves hero image readme hosting to imgur
JellyTitan Nov 26, 2024
5f77b55
Merge branch 'qmk:master' into sofle_pico
JellyTitan Dec 9, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions keyboards/sofle_pico/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
// Copyright 2024 Ryan Neff (@JellyTitan)
// SPDX-License-Identifier: GPL-2.0-or-later

#pragma once

/* Use full duplex communication (TRRS) */
#define SERIAL_USART_FULL_DUPLEX
#define SERIAL_USART_TX_PIN GP16
#define SERIAL_USART_RX_PIN GP17
/* Swap TX and RX pins if keyboard is master half. Only available on some MCU's. This _is_ available on the RP2040 */
#define SERIAL_USART_PIN_SWAP

/* I2C for OLEDs */
#define I2C_DRIVER I2CD1
#define I2C1_SDA_PIN GP6
#define I2C1_SCL_PIN GP7

#define OLED_DISPLAY_128X64
#define OLED_TIMEOUT 30000

#define ENCODER_MAP_KEY_DELAY 10

#define RGB_MATRIX_TYPING_HEATMAP_DECREASE_DELAY_MS 50
7 changes: 7 additions & 0 deletions keyboards/sofle_pico/halconf.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
// Copyright 2024 Ryan Neff (@JellyTitan)
// SPDX-License-Identifier: GPL-2.0-or-later

#pragma once

#define HAL_USE_I2C TRUE
#include_next <halconf.h>
248 changes: 248 additions & 0 deletions keyboards/sofle_pico/info.json
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file should be renamed to keyboard.json.

Original file line number Diff line number Diff line change
@@ -0,0 +1,248 @@
{
"manufacturer": "Ryan Neff",
"keyboard_name": "Sofle Pico",
"maintainer": "Ryan Neff <github@JellyTitan.com>",
"bootloader": "rp2040",
"bootloader_instructions": "Hold the BOOT button while plugging in the usb cable",
"diode_direction": "COL2ROW",
"encoder": {
"rotary": [
{"pin_a": "GP14", "pin_b": "GP15"}
]
},
"features": {
"bootmagic": true,
"command": false,
"console": false,
"dynamic_tapping_term": true,
"encoder": true,
"extrakey": true,
"mousekey": true,
"nkro": true,
"oled": true,
JellyTitan marked this conversation as resolved.
Show resolved Hide resolved
"rgb_matrix": true,
"wpm": true
},
"matrix_pins": {
"cols": ["GP1", "GP2", "GP3", "GP4", "GP5", "GP8"],
"rows": ["GP9", "GP10", "GP11", "GP12", "GP13"]
},
"mouse_key": {
"delay": 10,
"interval": 16,
"max_speed": 2,
"time_to_max": 40
},
"processor": "RP2040",
"rgb_matrix": {
JellyTitan marked this conversation as resolved.
Show resolved Hide resolved
"sleep": true,
"animations": {
"band_pinwheel_sat": true,
"band_pinwheel_val": true,
"band_sat": true,
"band_spiral_sat": true,
"band_spiral_val": true,
"band_val": true,
"breathing": true,
"cycle_all": true,
"cycle_left_right": true,
"cycle_out_in": true,
"cycle_out_in_dual": true,
"cycle_pinwheel": true,
"cycle_spiral": true,
"cycle_up_down": true,
"digital_rain": true,
"dual_beacon": true,
"gradient_left_right": true,
"gradient_up_down": true,
"hue_breathing": true,
"hue_pendulum": true,
"hue_wave": true,
"jellybean_raindrops": true,
"multisplash": true,
"pixel_flow": true,
"pixel_rain": true,
"rainbow_beacon": true,
"rainbow_moving_chevron": true,
"rainbow_pinwheels": true,
"raindrops": true,
"solid_multisplash": true,
"solid_reactive": true,
"solid_reactive_cross": true,
"solid_reactive_multicross": true,
"solid_reactive_multinexus": true,
"solid_reactive_multiwide": true,
"solid_reactive_nexus": true,
"solid_reactive_simple": true,
"solid_reactive_wide": true,
"solid_splash": true,
"splash": true,
"typing_heatmap": true
},
"default": {
"animation": "cycle_out_in",
"speed": 16
},
"driver": "ws2812",
"layout": [
{"matrix": [0, 5], "x": 95, "y": 7, "flags": 4},
{"matrix": [1, 5], "x": 95, "y": 21, "flags": 4},
{"matrix": [2, 5], "x": 95, "y": 36, "flags": 4},
{"matrix": [3, 5], "x": 95, "y": 50, "flags": 4},
{"matrix": [4, 4], "x": 115, "y": 64, "flags": 4},
{"matrix": [4, 3], "x": 95, "y": 64, "flags": 4},
{"matrix": [4, 2], "x": 76, "y": 62, "flags": 4},
{"matrix": [3, 4], "x": 76, "y": 48, "flags": 4},
{"matrix": [2, 4], "x": 76, "y": 33, "flags": 4},
{"matrix": [1, 4], "x": 76, "y": 19, "flags": 4},
{"matrix": [0, 4], "x": 76, "y": 5, "flags": 4},
{"matrix": [0, 3], "x": 57, "y": 3, "flags": 4},
{"matrix": [1, 3], "x": 57, "y": 17, "flags": 4},
{"matrix": [2, 3], "x": 57, "y": 31, "flags": 4},
{"matrix": [3, 3], "x": 57, "y": 46, "flags": 4},
{"matrix": [4, 1], "x": 57, "y": 62, "flags": 4},
{"matrix": [4, 0], "x": 38, "y": 64, "flags": 4},
{"matrix": [3, 2], "x": 38, "y": 48, "flags": 4},
{"matrix": [2, 2], "x": 38, "y": 33, "flags": 4},
{"matrix": [1, 2], "x": 38, "y": 19, "flags": 4},
{"matrix": [0, 2], "x": 38, "y": 5, "flags": 4},
{"matrix": [0, 1], "x": 19, "y": 7, "flags": 4},
{"matrix": [1, 1], "x": 19, "y": 21, "flags": 4},
{"matrix": [2, 1], "x": 19, "y": 36, "flags": 4},
{"matrix": [3, 1], "x": 19, "y": 50, "flags": 4},
{"matrix": [3, 0], "x": 0, "y": 50, "flags": 4},
{"matrix": [2, 0], "x": 0, "y": 36, "flags": 4},
{"matrix": [1, 0], "x": 0, "y": 21, "flags": 4},
{"matrix": [0, 0], "x": 0, "y": 7, "flags": 4},
{"matrix": [5, 5], "x": 129, "y": 7, "flags": 4},
{"matrix": [6, 5], "x": 129, "y": 21, "flags": 4},
{"matrix": [7, 5], "x": 129, "y": 36, "flags": 4},
{"matrix": [8, 5], "x": 129, "y": 50, "flags": 4},
{"matrix": [9, 4], "x": 119, "y": 64, "flags": 4},
{"matrix": [9, 3], "x": 129, "y": 64, "flags": 4},
{"matrix": [9, 2], "x": 148, "y": 62, "flags": 4},
{"matrix": [8, 4], "x": 148, "y": 48, "flags": 4},
{"matrix": [7, 4], "x": 148, "y": 33, "flags": 4},
{"matrix": [6, 4], "x": 148, "y": 19, "flags": 4},
{"matrix": [5, 4], "x": 148, "y": 5, "flags": 4},
{"matrix": [5, 3], "x": 167, "y": 3, "flags": 4},
{"matrix": [6, 3], "x": 167, "y": 17, "flags": 4},
{"matrix": [7, 3], "x": 167, "y": 31, "flags": 4},
{"matrix": [8, 3], "x": 167, "y": 46, "flags": 4},
{"matrix": [9, 1], "x": 167, "y": 62, "flags": 4},
{"matrix": [9, 0], "x": 186, "y": 64, "flags": 4},
{"matrix": [8, 2], "x": 186, "y": 48, "flags": 4},
{"matrix": [7, 2], "x": 186, "y": 33, "flags": 4},
{"matrix": [6, 2], "x": 186, "y": 19, "flags": 4},
{"matrix": [5, 2], "x": 186, "y": 5, "flags": 4},
{"matrix": [5, 1], "x": 209, "y": 7, "flags": 4},
{"matrix": [6, 1], "x": 209, "y": 21, "flags": 4},
{"matrix": [7, 1], "x": 209, "y": 36, "flags": 4},
{"matrix": [8, 1], "x": 209, "y": 50, "flags": 4},
{"matrix": [8, 0], "x": 224, "y": 50, "flags": 4},
{"matrix": [7, 0], "x": 224, "y": 36, "flags": 4},
{"matrix": [6, 0], "x": 224, "y": 21, "flags": 4},
{"matrix": [5, 0], "x": 224, "y": 7, "flags": 4}
],
"max_brightness": 127,
"split_count": [29, 29]
},
"split": {
"enabled": true,
JellyTitan marked this conversation as resolved.
Show resolved Hide resolved
"bootmagic": {
"matrix": [5, 0]
},
"encoder": {
"right": {
"rotary": [
{"pin_a": "GP14", "pin_b": "GP15"}
]
}
},
JellyTitan marked this conversation as resolved.
Show resolved Hide resolved
"transport": {
"sync": {
"layer_state": true
}
}
JellyTitan marked this conversation as resolved.
Show resolved Hide resolved
},
"tags": ["ortho", "split", "rgb", "encoder", "OLED", "128x64", "tenting_puck"],
"tapping": {
"term": 210
},
"url": "https://github.com/JellyTitan/Sofle-Pico",
"usb": {
"device_version": "3.5.4",
"pid": "0x5350",
"vid": "0x4A54"
},
"ws2812": {
"driver": "vendor",
"pin": "GP0"
},
"layouts": {
"LAYOUT": {
"layout": [
{"label": "`", "matrix": [0, 0], "x": 0, "y": 0.7},
{"label": "1", "matrix": [0, 1], "x": 1, "y": 0.7},
{"label": "2", "matrix": [0, 2], "x": 2, "y": 0.3},
{"label": "3", "matrix": [0, 3], "x": 3, "y": 0},
{"label": "4", "matrix": [0, 4], "x": 4, "y": 0.3},
{"label": "5", "matrix": [0, 5], "x": 5, "y": 0.45},
{"label": "6", "matrix": [5, 5], "x": 9, "y": 0.45},
{"label": "7", "matrix": [5, 4], "x": 10, "y": 0.3},
{"label": "8", "matrix": [5, 3], "x": 11, "y": 0},
{"label": "9", "matrix": [5, 2], "x": 12, "y": 0.3},
{"label": "0", "matrix": [5, 1], "x": 13, "y": 0.7},
{"label": "`", "matrix": [5, 0], "x": 14, "y": 0.7},
{"label": "Esc", "matrix": [1, 0], "x": 0, "y": 1.7},
{"label": "Q", "matrix": [1, 1], "x": 1, "y": 1.7},
{"label": "W", "matrix": [1, 2], "x": 2, "y": 1.3},
{"label": "E", "matrix": [1, 3], "x": 3, "y": 1},
{"label": "R", "matrix": [1, 4], "x": 4, "y": 1.3},
{"label": "T", "matrix": [1, 5], "x": 5, "y": 1.45},
{"label": "Y", "matrix": [6, 5], "x": 9, "y": 1.45},
{"label": "U", "matrix": [6, 4], "x": 10, "y": 1.3},
{"label": "I", "matrix": [6, 3], "x": 11, "y": 1},
{"label": "O", "matrix": [6, 2], "x": 12, "y": 1.3},
{"label": "P", "matrix": [6, 1], "x": 13, "y": 1.7},
{"label": "Bspc", "matrix": [6, 0], "x": 14, "y": 1.7},
{"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.7},
{"label": "A", "matrix": [2, 1], "x": 1, "y": 2.7},
{"label": "S", "matrix": [2, 2], "x": 2, "y": 2.3},
{"label": "D", "matrix": [2, 3], "x": 3, "y": 2},
{"label": "F", "matrix": [2, 4], "x": 4, "y": 2.3},
{"label": "G", "matrix": [2, 5], "x": 5, "y": 2.45},
{"label": "H", "matrix": [7, 5], "x": 9, "y": 2.45},
{"label": "J", "matrix": [7, 4], "x": 10, "y": 2.3},
{"label": "K", "matrix": [7, 3], "x": 11, "y": 2},
{"label": "L", "matrix": [7, 2], "x": 12, "y": 2.3},
{"label": ";", "matrix": [7, 1], "x": 13, "y": 2.7},
{"label": "'", "matrix": [7, 0], "x": 14, "y": 2.7},
{"label": "LShift", "matrix": [3, 0], "x": 0, "y": 3.7},
{"label": "Z", "matrix": [3, 1], "x": 1, "y": 3.7},
{"label": "X", "matrix": [3, 2], "x": 2, "y": 3.3},
{"label": "C", "matrix": [3, 3], "x": 3, "y": 3},
{"label": "V", "matrix": [3, 4], "x": 4, "y": 3.3},
{"label": "B", "matrix": [3, 5], "x": 5, "y": 3.45},
{"label": "Mute", "matrix": [4, 5], "x": 6.2, "y": 3.45},
{"label": "Pause", "matrix": [9, 5], "x": 7.8, "y": 3.45},
{"label": "N", "matrix": [8, 5], "x": 9, "y": 3.45},
{"label": "M", "matrix": [8, 4], "x": 10, "y": 3.3},
{"label": ",", "matrix": [8, 3], "x": 11, "y": 3},
{"label": ".", "matrix": [8, 2], "x": 12, "y": 3.3},
{"label": "/", "matrix": [8, 1], "x": 13, "y": 3.7},
{"label": "RShift", "matrix": [8, 0], "x": 14, "y": 3.7},
{"label": "LCtrl", "matrix": [4, 0], "x": 2, "y": 4.3},
{"label": "LGUI", "matrix": [4, 1], "x": 3, "y": 4},
{"label": "LCmnd", "matrix": [4, 2], "x": 4, "y": 4.3},
{"label": "LAlt", "matrix": [4, 3], "x": 5.1, "y": 4.5, "h": 1.5},
{"label": "Enter", "matrix": [4, 4], "x": 6.1, "y": 4.5, "h": 1.5},
{"label": "Space", "matrix": [9, 4], "x": 7.9, "y": 4.5, "h": 1.5},
{"label": "RAlt", "matrix": [9, 3], "x": 8.9, "y": 4.5, "h": 1.5},
{"label": "RCmnd", "matrix": [9, 2], "x": 10, "y": 4.3},
{"label": "RGui", "matrix": [9, 1], "x": 11, "y": 4},
{"label": "RCtrl", "matrix": [9, 0], "x": 12, "y": 4.3}
]
}
}
}
Loading
Loading