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

docs: added a page on dongles #2525

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

Nick-Munnich
Copy link
Contributor

@Nick-Munnich Nick-Munnich commented Oct 2, 2024

Added a page on configuring dongles, building on the work that @RasmusKoit did in #2401. The method recommended is personal to each user, but works for both boards and shield based keyboards (requires a board for the dongle, to avoid users messing with flash etc).

Subsumes #2401, closes #2044.

@Nick-Munnich Nick-Munnich requested a review from a team as a code owner October 2, 2024 08:23
@Nick-Munnich Nick-Munnich added the documentation Improvements or additions to documentation label Oct 2, 2024
Copy link
Contributor

@caksoylar caksoylar left a comment

Choose a reason for hiding this comment

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

It might be good to add a pointer from split keyboards feature page to here, saying it is also used for creating "dongles".

I think this is well written overall. As a side note, it is a bit too prescriptive for my taste (do this, then do this, rather than explaining how the config works) but given the current complexity of the setup it seems unavoidable, assuming we do want to document how to do it.

docs/docs/development/hardware-integration/dongle.md Outdated Show resolved Hide resolved
docs/docs/development/hardware-integration/dongle.md Outdated Show resolved Hide resolved
docs/docs/development/hardware-integration/dongle.md Outdated Show resolved Hide resolved
docs/docs/development/hardware-integration/dongle.md Outdated Show resolved Hide resolved
docs/docs/development/hardware-integration/dongle.md Outdated Show resolved Hide resolved
docs/docs/development/hardware-integration/dongle.md Outdated Show resolved Hide resolved
docs/docs/development/hardware-integration/dongle.md Outdated Show resolved Hide resolved
docs/docs/development/hardware-integration/dongle.md Outdated Show resolved Hide resolved
docs/docs/development/hardware-integration/dongle.md Outdated Show resolved Hide resolved
docs/docs/development/hardware-integration/dongle.md Outdated Show resolved Hide resolved
@Nick-Munnich
Copy link
Contributor Author

As a side note, it is a bit too prescriptive for my taste (do this, then do this, rather than explaining how the config works) but given the current complexity of the setup it seems unavoidable, assuming we do want to document how to do it.

This was intentional, since we keep getting people asking for help setting up a dongle for their keyboard who have not done the whole shield porting thing. I see the dongle setup as just a highly simplified and prescriptive version of the shield docs. I'll adjust to refer readers to the shield guide a bit stronger if they want to understand any details.

docs/docs/development/hardware-integration/dongle.mdx Outdated Show resolved Hide resolved
docs/docs/development/hardware-integration/dongle.mdx Outdated Show resolved Hide resolved
docs/docs/development/hardware-integration/dongle.mdx Outdated Show resolved Hide resolved
docs/docs/development/hardware-integration/dongle.mdx Outdated Show resolved Hide resolved
docs/docs/development/hardware-integration/dongle.mdx Outdated Show resolved Hide resolved
docs/docs/development/hardware-integration/dongle.mdx Outdated Show resolved Hide resolved
docs/docs/development/hardware-integration/dongle.mdx Outdated Show resolved Hide resolved
docs/docs/development/hardware-integration/dongle.mdx Outdated Show resolved Hide resolved
docs/docs/development/hardware-integration/dongle.mdx Outdated Show resolved Hide resolved
@Nick-Munnich Nick-Munnich force-pushed the dongles branch 2 times, most recently from 8530c73 to c3582ae Compare December 16, 2024 16:31
Co-authored-by: rasmuskoit <[email protected]>
Co-authored-by: Cem Aksoylar <[email protected]>
Copy link
Contributor

@caksoylar caksoylar left a comment

Choose a reason for hiding this comment

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

Looks good, but I think it should wait until #2711 is merged?

Comment on lines +122 to +123
Navigate to the directory defining your keyboard (in-tree keyboards found [here](https://github.com/zmkfirmware/zmk/tree/main/app/boards)) and look through the [devicetree files](../../config/index.md) for nodes with `compatible = "zmk,matrix-transform";`.
This should look something like this:

This comment was marked as resolved.

Choose a reason for hiding this comment

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

Ok I found it. Im sorry

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Do you think a note saying "for a shield+board keyboard look under boards/shields" would have helped?

Choose a reason for hiding this comment

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

Yes!

The problem that I had is that instead of cloning the repo, I was trying to find it looking through the GitHub repo. But I missed the board that I was trying to find.

Silly mistake, but can cause some questions like mine to appear

};
```

Copy this node into your `my_keyboard_dongle.overlay` file. Take care to put it under the root node (the `/ { ... };` node).

Choose a reason for hiding this comment

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

Take care to put it under the root node

Didn't you mean "inside" instead of "under"?

I did not tried to compile it yet, but it "feels" more right to put it contained by the root node.

Or maybe it is just a language barrier because of how I interpret the word "under" as a non native english speaker

Choose a reason for hiding this comment

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

From what I have tested it should be inside the root node


Make sure that the labels `physical_layout0` and `default_transform` match those of the physical layout node defined in the file and the matrix transform respectively.

If there are multiple physical layouts in the file, you will need to copy over all of the remaining matrix transformations and assign them similarly.

Choose a reason for hiding this comment

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

Wouldn't it be better if we put the entire section related to the case of having multiple layouts under a new title?

Something like #### If there are multiple physical layouts in the file.

This is because the next topics seem to have no clear connection with the previous one

Look at:

Copy the physical layout node into your...

Seems like there should be a "In this case," before the text to maintain cohesion.

Or it could be done by a new title that contains all that block.

Without it, I feel that users can get confused to know how far they should follow the instructions

Comment on lines +290 to +291
- board: nice_nano_v2
shield: my_keyboard_dongle

Choose a reason for hiding this comment

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

What about ZMK Studio?

Should we add cmake-args to make it work?

Something like:

  - board: nice_nano_v2
    shield: my_keyboard_dongle
#    cmake-args: -DCONFIG_ZMK_STUDIO=y  # For ZMK Studio to work

I may be wrong, because mine is not compiling with that arg and I am trying to figure out why

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Create BLE-based "Dongle Mode" Documentation
3 participants