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

Initial support for the Keyboardio Atreus #8492

Closed
wants to merge 3 commits into from
Closed

Initial support for the Keyboardio Atreus #8492

wants to merge 3 commits into from

Conversation

algernon
Copy link
Contributor

This is a quick patch to add support for the upcoming Keyboardio Atreus. This is a straightforward patch, except there's no info.json, because I don't have the capacity at the moment to craft a layout (hence why this PR is a draft). I may - and likely will - tweak it a bit in the next few days.

I did want to get a draft PR going, so folks who are interested in the Keyboardio Atreus, but want to use QMK with it, will have a starting point.

Types of Changes

  • Core
  • Bugfix
  • New feature
  • Enhancement/optimization
  • Keyboard (addition or update)
  • Keymap/layout/userspace (addition or update)
  • Documentation

Checklist

  • My code follows the code style of this project.
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.
  • I have read the CONTRIBUTING document.
  • I have added tests to cover my changes.
  • I have tested the changes and verified that they work and don't break anything (as well as I can manage).

@drashna drashna requested a review from a team March 20, 2020 08:44
Copy link
Member

@noroadsleft noroadsleft left a comment

Choose a reason for hiding this comment

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

I think I'd prefer this go to keyboardio/atreus instead of atreus_kbio, but that's simply my opinion.

keyboards/atreus_kbio/keymaps/default/keymap.c Outdated Show resolved Hide resolved
keyboards/atreus_kbio/keymaps/default/keymap.c Outdated Show resolved Hide resolved
keyboards/atreus_kbio/keymaps/default/keymap.c Outdated Show resolved Hide resolved
keyboards/atreus_kbio/keymaps/default/keymap.c Outdated Show resolved Hide resolved
keyboards/atreus_kbio/readme.md Outdated Show resolved Hide resolved
keyboards/atreus_kbio/rules.mk Outdated Show resolved Hide resolved
@algernon
Copy link
Contributor Author

I think I'd prefer this go to keyboardio/atreus instead of atreus_kbio, but that's simply my opinion.

I was considering that, but there's no keyboardio/ subdir yet. I'm ok with moving things to keyboardio/atreus though. If that's the recommendation, I'll do that, and then followup later with moving the model01 to keyboardio/model01 too.

@algernon
Copy link
Contributor Author

I went ahead and force-pushed the branch, with @noroadsleft's suggestions included, and the keyboard moved to keyboards/keyboardio/atreus.

Come to think of it, it might make sense to do the model01->keyboardio/model01 move first. I'll prep a PR for that, and will rebase this on top of that.

@algernon
Copy link
Contributor Author

...and now it's rebased on top of #8499.

@drashna drashna requested a review from a team March 21, 2020 06:19
@drashna
Copy link
Member

drashna commented Mar 21, 2020

Personally, I'd rather it not be rebased on the other PR, as that will definitely slow down/block this from being merged.

I do agree with using the /keyboardio/ folder though.

@algernon
Copy link
Contributor Author

Well, there's no info.json yet, and I do not have the resources to create one in the near future, so this is going to be blocked for a while anyway, no?

I can rebase on master and just use the keyboardio dir, though, that makes sense. I'll push that in a bit.

@noroadsleft
Copy link
Member

Well, there's no info.json yet, and I do not have the resources to create one in the near future, so this is going to be blocked for a while anyway, no?

I can probably do this by the end of today and send a PR to your fork.

@noroadsleft
Copy link
Member

How's this?

image

noroadsleft@4f46169

@algernon
Copy link
Contributor Author

That looks very nice. Thank you!

@drashna
Copy link
Member

drashna commented Mar 23, 2020

Yeah, noroads is our info.json master. :D

@drashna drashna requested a review from a team March 23, 2020 03:46
@drashna
Copy link
Member

drashna commented Mar 24, 2020

@algernon okay with this being merged, as is?

@technomancy
Copy link
Contributor

Thanks for putting this together! I've tested it on my board and everything works great, except for the reset functionality. The reset key causes it to disconnect and reconnect, but it does not enter the bootloader.

@technomancy
Copy link
Contributor

Oh hang on; I realized this is actually based on the old Atreus Classic layout rather than the new Keyboardio Atreus one; the parens should be on either side of the fn arrow cluster, but they are below the arrow cluster instead.

@technomancy
Copy link
Contributor

I can't figure out how to do a PR to @algernon 's branch, so I'll just drop this commit here which updates it to use the fn layer that matches what this board ships with: technomancy@3284d77

The reset issue is still a problem, however given the accessible reset button on the reverse it's not as severe of a problem as it would be on the classic Atreus.

@algernon
Copy link
Contributor Author

algernon commented Apr 8, 2020

Sorry for the inactivity, I'll merge both the info.json and @technomancy's changes too ~tomorrow.

As for the bootloader: the Keyboardio Atreus ships with Catelina, a custom version of that too. To enter bootloader mode, one needs to hold the bottom left key (Esc by default), even if reset via a keypress. So holding Esc and then pressing the reset macro (or the other way around, if you're fast enough) should put you into bootloader mode.

@noroadsleft
Copy link
Member

To enter bootloader mode, one needs to hold the bottom left key (Esc by default), even if reset via a keypress. So holding Esc and then pressing the reset macro (or the other way around, if you're fast enough) should put you into bootloader mode.

This should absolutely be stated in the main readme.

the Keyboardio Atreus ships with [Caterina], a custom version of that too.

This line makes me very sad. 😢

algernon and others added 3 commits April 10, 2020 12:05
Many thanks to @noroadsleft for reviews & suggestions.

Signed-off-by: Gergely Nagy <[email protected]>
Previously this was using the Classic Atreus layout.
@algernon algernon marked this pull request as ready for review April 10, 2020 10:05

/* USB Device descriptor parameter */

#define VENDOR_ID 0x1209
Copy link
Member

Choose a reason for hiding this comment

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

I'm a bit concerned about this VID.
It's already used by a few boards with VIA support:
https://github.com/the-via/keyboards/blob/master/src/duckle/vitamins_included.json#L3
https://github.com/the-via/keyboards/blob/master/src/jiran/jiran.json#L3

(The fact that 2 VIA-enabled board already uses it is another topic.)

Copy link
Member

Choose a reason for hiding this comment

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

1209 is the VID for pid.codes -- it's properly registered: http://pid.codes/1209/2303/

#define DEVICE_VER 0x0000
#define MANUFACTURER Keyboardio
#define PRODUCT Atreus
#define DESCRIPTION QMK keyboard firmware for the Keyboardio Atreus
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
#define DESCRIPTION QMK keyboard firmware for the Keyboardio Atreus

As per https://docs.qmk.fm/#/pr_checklist


Make example for this keyboard (after setting up your build environment):

make keyboardio/atreus:default:avrdude
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
make keyboardio/atreus:default:avrdude
make keyboardio/atreus:default
Flashing example for this keyboard:
make keyboardio/atreus:default:flash

# Build Options
# change yes to no to disable
#
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration

Copy link
Member

@Erovia Erovia left a comment

Choose a reason for hiding this comment

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

Without noroadsleft's suggestions, does not build.

@evantravers
Copy link
Contributor

evantravers commented Oct 5, 2020

@Erovia: I have a copy of the branch with @noroadsleft's suggestions... is there an acceptable way for me to make your changes and swap out the branch so that this can get done, or is that impolite to @algernon who did the initial work?

Here's the branch if anyone wants it: https://github.com/evantravers/qmk_firmware/tree/keyboardio/atreus

evantravers added a commit to evantravers/qmk_firmware that referenced this pull request Oct 5, 2020
evantravers added a commit to evantravers/qmk_firmware that referenced this pull request Oct 5, 2020
evantravers added a commit to evantravers/qmk_firmware that referenced this pull request Oct 5, 2020
evantravers added a commit to evantravers/qmk_firmware that referenced this pull request Oct 5, 2020
@evantravers
Copy link
Contributor

I created a PR for my adjusted branch… if that's rude or not kosher I am very sorry… just trying to get this in master to help all those new atreus owners. :P

@jmorag
Copy link

jmorag commented Oct 7, 2020

What version of avrdude does this use, @evantravers? I'm on 6.3. Tried running make keyboardio/atreus:default:flash on your branch and am getting

avrdude: Error: butterfly programmer uses avr_write_page() but does not
provide a cmd() method.
 *** page 125 (addresses 0x5d7e - 0x5dfd) failed to write

Writing | ################################################## | 100% 9.74s

avrdude: 24062 bytes of flash written
avrdude: verifying flash memory against .build/keyboardio_atreus_default.hex:
avrdude: load data flash data from input file .build/keyboardio_atreus_default.hex:
avrdude: input file .build/keyboardio_atreus_default.hex auto detected as Intel Hex
avrdude: input file .build/keyboardio_atreus_default.hex contains 24062 bytes
avrdude: reading on-chip flash data:

Reading | #                                                  | 2% 0.00savrdude: butterfly_recv(): programmer is not responding
Reading | ##                                                 | 4% 5.01savrdude: butterfly_recv(): programmer is not responding
Reading | ################################################## | 100% 10.16s

avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x0000
         0xff != 0x0c
avrdude: verification error; content mismatch

avrdude: safemode: Fuses OK (E:CB, H:D8, L:FF)

avrdude done.  Thank you.

make[1]: *** [tmk_core/avr.mk:318: flash] Error 1
Make finished with errors
make: *** [Makefile:579: keyboardio/atreus:default:flash] Error 1

@evantravers
Copy link
Contributor

@jmorag I'm using avrdude version 6.3 as well. Make sure you have checked out the right branch… I know mine works, but the changes requested haven't been made to the branch on this PR.

@Xyverz
Copy link
Contributor

Xyverz commented Oct 8, 2020

I can confirm that Evan's branch works for me. I'm currently typing this response on my KeyboardIO Atreus.

noroadsleft pushed a commit that referenced this pull request Oct 9, 2020
* Initial support for the Keyboardio Atreus

Many thanks to noroadsleft for reviews & suggestions.

* Add QMK Configurator layout support

* Update the fn layer of the Keyboardio Atreus to the new layout.

Previously this was using the Classic Atreus layout.

* Implement noroadleft's changes from #8492

* Follow Erovia's recommendations

#8492

* Correct braces

* Change correct rules.mk

* Remove comments

* Fix BOOTMAGIC_ENABLE

I had edited the wrong file earlier.

* Remove comment

* Updates rules.mk

Thank you noroadsleft.

Co-authored-by: Gergely Nagy <[email protected]>
Co-authored-by: Phil Hagelberg <[email protected]>
@algernon
Copy link
Contributor Author

algernon commented Oct 9, 2020

Closing, #10570 is the successor of this, and that's been merged, so this one's really obsolete.

@algernon algernon closed this Oct 9, 2020
@algernon algernon deleted the keyboardio/atreus branch October 9, 2020 14:36
@rrix
Copy link

rrix commented Oct 23, 2020

Tried running make keyboardio/atreus:default:flash on your branch and am getting

(sorry to comment on a closed PR, but this got me, too so i'm gonna leave a breadcrumb)

try to disable ModemManager on your system or apply the udev rules referenced in #8060 . it's mentioned in the upstream Keyboardio/Chrysalis docs and maybe should be added to the device QMK readme.

@skullydazed
Copy link
Member

This is also a situation qmk doctor will warn about. You can use that to check if you're affected.

kjganz pushed a commit to kjganz/qmk_firmware that referenced this pull request Oct 28, 2020
* Initial support for the Keyboardio Atreus

Many thanks to noroadsleft for reviews & suggestions.

* Add QMK Configurator layout support

* Update the fn layer of the Keyboardio Atreus to the new layout.

Previously this was using the Classic Atreus layout.

* Implement noroadleft's changes from qmk#8492

* Follow Erovia's recommendations

qmk#8492

* Correct braces

* Change correct rules.mk

* Remove comments

* Fix BOOTMAGIC_ENABLE

I had edited the wrong file earlier.

* Remove comment

* Updates rules.mk

Thank you noroadsleft.

Co-authored-by: Gergely Nagy <[email protected]>
Co-authored-by: Phil Hagelberg <[email protected]>
oscarcarlsson pushed a commit to oscarcarlsson/qmk_firmware that referenced this pull request Nov 2, 2020
* Initial support for the Keyboardio Atreus

Many thanks to noroadsleft for reviews & suggestions.

* Add QMK Configurator layout support

* Update the fn layer of the Keyboardio Atreus to the new layout.

Previously this was using the Classic Atreus layout.

* Implement noroadleft's changes from qmk#8492

* Follow Erovia's recommendations

qmk#8492

* Correct braces

* Change correct rules.mk

* Remove comments

* Fix BOOTMAGIC_ENABLE

I had edited the wrong file earlier.

* Remove comment

* Updates rules.mk

Thank you noroadsleft.

Co-authored-by: Gergely Nagy <[email protected]>
Co-authored-by: Phil Hagelberg <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.