qmk / qmk_firmware

Open-source keyboard firmware for Atmel AVR and Arm USB families
https://qmk.fm
GNU General Public License v2.0
17.46k stars 37.68k forks source link

Add ProtoKeeb keyboard request #23991

Open atechofficials opened 1 week ago

atechofficials commented 1 week ago

Description

The Protokeeb is a versatile 16-key (4 x 4) Numpad/Macropad/MIDI device designed by A-Tech Officials. It is perfect for anyone looking to get started with custom keyboards. This open-source hardware project is based on a Raspberry Pi Pico development board, making it easy to learn, build, and modify. Designed for developers and enthusiasts alike, the Protokeeb features per-key south-facing ARGB LEDs and much more.

For more information, visit the Protokeeb GitHub page.

Types of Changes

Checklist

atechofficials commented 6 days ago

All the required changes to the keyboard files are done. Please review the changes and further process the pull request.

atechofficials commented 6 days ago

Wait, so the encoder switch pins are hooked up outside of the matrix?

Yes, the encoder push button is not a part of the switch matrix. It is directly connected to the MCU pin. Here is the link to the Protokeeb rev1 schematics for your reference. Also, check the Protokeeb keyboard's rev1.c file to understand the encoder push button functionality in this keyboard.

drashna commented 6 days ago

Is there a specific reason that it wasn't included, or was that just a mistake and this is correction for it after the fact?

If it's correction after the fact, then using the dipswitch code really isn't a good way to do this.

You could add an additional column, and add a local matrix_read_cols_on_row that reads from the specific pin for the encoder at the column/row spot. It would allow the encoder to act like it was hooked into the switch matrix, normally. However, it would no longer be an ortho 4x4 layout. But it would allow for proper via support for the encoder, for instance.

atechofficials commented 5 days ago

Is there a specific reason that it wasn't included, or was that just a mistake and this is correction for it after the fact?

If it's correction after the fact, then using the dipswitch code really isn't a good way to do this.

You could add an additional column, and add a local matrix_read_cols_on_row that reads from the specific pin for the encoder at the column/row spot. It would allow the encoder to act like it was hooked into the switch matrix, normally. However, it would no longer be an ortho 4x4 layout. But it would allow for proper via support for the encoder, for instance.

Since it is my first custom-designed mechanical keyboard, it has some flaws which I will rectify in the upcoming revisions. To make the encoder push button functional instead of not using it at all because of the way it is electrically connected, I had to figure out some way to make it functional and upon searching the QMK documentation I ended up selecting the dipswitch functionality of the QMK firmware. Thank you for suggesting a better way to implement the encoder push button functionality, instead of using the dipswitch functionality. I would try this approach and test if it works as expected.

atechofficials commented 5 days ago

Project Update:

The only problem that I have found with VIA configurator is that there is no method to implement/display the push button key and the encoder as a single entity in the VIA configurator UI. Also, to let the end users access the push button key to assign their keycodes I also modified the Protokeeb Rev1 VIA Layout JSON file which I am going to upload to the VIA GitHub repository by creating a pull request later.

ProtoKeeb Rev1 VIA JSON file

{
    "name": "Protokeeb",
    "vendorId": "0x419A",
    "productId": "0x1717",
    "matrix": {
        "rows": 4,
        "cols": 5
    },
    "keycodes": ["qmk_lighting"],
    "menus": ["qmk_rgblight"],
    "layouts": {
        "keymap": [
            [
                {
                    "y": 0.3,
                    "x": 2,
                    "a": 4
                },
                "0,4",
                {
                    "a": 7
                },
                "e0"
            ],
            [
                {
                    "a": 4
                },
                "0,0",
                "0,1",
                "0,2",
                "0,3"
            ],
            [
                "1,0",
                "1,1",
                "1,2",
                "1,3"
            ],
            [
                "2,0",
                "2,1",
                "2,2",
                "2,3"
            ],
            [
                {
                    "c": "#aaaaaa"
                },
                "3,0",
                {
                    "c": "#cccccc"
                },
                "3,1",
                "3,2",
                "3,3"
            ]
        ]
    }
}
atechofficials commented 3 days ago

After merging the master branch of my QMK fork with the "dev_branch" to keep it updated with the latest QMK firmware changes, the QMK CI Build check in this pull request is taking significantly longer than my previous commits. It's been 11 hours and the test is still not completed. Can you please look into this issue?

atechofficials commented 3 days ago

Just a heads up that all the requested changes have been made in the Protokeeb keyboard firmware files. The firmware has compiled successfully on my local machine, and I've tested everything to ensure it works as intended. Please take a moment to review the changes and then proceed with the pull request.

fauxpark commented 3 days ago

You've merged incorrectly, reverting a bunch of newer changes upstream. Please fix this.

atechofficials commented 3 days ago

You've merged incorrectly, reverting a bunch of newer changes upstream. Please fix this.

I've merged the master branch of QMK with my QMK fork's dev_branch to address this issue. If there are any additional steps or suggestions regarding this matter, please feel free to let me know.

atechofficials commented 3 days ago

Dear QMK Maintainers, @fauxpark @drashna @waffle87

I wanted to follow up on my previous communication regarding the pull request I submitted. Despite having addressed all the requested changes, I have not yet received a response from any of the QMK Maintainers. I understand that you receive numerous pull requests daily and that reviewing and responding to each one promptly may not be feasible. I kindly request your attention to further process my pull request at your earliest convenience.

Thank you for your time and consideration.

fauxpark commented 2 days ago

Please look at the "Files changed" tab. There are a bunch of irrelevant changes that need to be undone.

atechofficials commented 2 days ago

Please look at the "Files changed" tab. There are a bunch of irrelevant changes that need to be undone.

My knowledge of git is limited. Please guide me through the steps needed to fix the issue.

atechofficials commented 2 days ago

Fixed the issues that occurred due to the incorrect merging of branches and content. Reverted back to the commit where everything was working as intended.