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

4x4 board #3531

Merged
merged 15 commits into from
Aug 2, 2018
Merged

4x4 board #3531

merged 15 commits into from
Aug 2, 2018

Conversation

wanleg
Copy link
Contributor

@wanleg wanleg commented Jul 31, 2018

add support for 4x4 macropad

@@ -0,0 +1,138 @@
/* Copyright 2018 REPLACE_WITH_YOUR_NAME
Copy link
Contributor

Choose a reason for hiding this comment

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

Don't forget to give yourself some credit!

@@ -0,0 +1,19 @@
/* Copyright 2018 REPLACE_WITH_YOUR_NAME
Copy link
Contributor

Choose a reason for hiding this comment

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

Please change REPLACE_WITH_YOUR_NAME

Copy link
Contributor Author

Choose a reason for hiding this comment

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

i'm just going to delete the whole block, if that's ok. i'd rather give the credit to @di0ib, who did all the work on this board already. I'm just porting his work. but i don't want to put his name, since he'd probably do a much better job of this than me....
FWIW, on my other stuff, i put my name 😄

{ K30, K31, K32, K33, K34, K35, K35, K37, K38, K39, K3a, K3b, K3c, K3d, K3e, K3f } \
}
/*
#define LAYOUT_ortho_4x4( \
Copy link
Member

Choose a reason for hiding this comment

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

It may be helpful to have a 4x4, 4x8, 4x12 and 4x16 layout here, so that users have all of the above to select from.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

The original designer (@di0ib), said on his site that for layouts smaller than 4x16, unused keys will just get ignored. More specifically, if it's not connected, it simply won't register.
I thought i'd just provide for the largest possible configuration, and if users don't make full use of it, it won't hurt anything if they don't (hence the modularity aspect of this board).

Copy link
Member

Choose a reason for hiding this comment

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

Yes, while that's true, it makes things simpler for new users if there is the correct number of keys for their layout, rather than relying on "blanking out" the additional spaces on a single layout that has all possible keys.

eg:

#define ___ KC_NO

#define LAYOUT_ortho_4x4( \
    K00, K01, K02, K03, \
    K10, K11, K12, K13, \
    K20, K21, K22, K23, \
    K30, K31, K32, K33 \
) \
{ \
    { K00, K01, K02, K03, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___}, \
    { K10, K11, K12, K13, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___}, \
    { K20, K21, K22, K23, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___}, \
    { K30, K31, K32, K33, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___} \
}
#define LAYOUT_ortho_4x8( \
    K00, K01, K02, K03, K04, K05, K06, K07, \
    K10, K11, K12, K13, K14, K15, K16, K17, \
    K20, K21, K22, K23, K24, K25, K26, K27, \
    K30, K31, K32, K33, K34, K35, K36, K37\
) \
{ \
    { K00, K01, K02, K03, K04, K05, K06, K07, ___, ___, ___, ___, ___, ___, ___, ___}, \
    { K10, K11, K12, K13, K14, K15, K16, K17, ___, ___, ___, ___, ___, ___, ___, ___}, \
    { K20, K21, K22, K23, K24, K25, K26, K27, ___, ___, ___, ___, ___, ___, ___, ___}, \
    { K30, K31, K32, K33, K34, K35, K35, K37, ___, ___, ___, ___, ___, ___, ___, ___} \
}
#define LAYOUT_ortho_4x12( \
    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0a, K0b, \
    K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1a, K1b, \
    K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2a, K2b, \
    K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3a, K3b  \
) \
{ \
    { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0a, K0b, ___, ___, ___, ___}, \
    { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1a, K1b, ___, ___, ___, ___}, \
    { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2a, K2b, ___, ___, ___, ___}, \
    { K30, K31, K32, K33, K34, K35, K35, K37, K38, K39, K3a, K3b, ___, ___, ___, ___} \
}

Copy link
Member

Choose a reason for hiding this comment

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

Additionally, it also shows up in the configurator this way too.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Ok. i understand. I don't make real use of Layouts yet (or the Configurator), but in the interest of making it easier for others...

# This definition is optional, and if your keyboard supports multiple bootloaders of
# different sizes, comment this out, and the correct address will be loaded
# automatically (+60). See bootloader.mk for all options.
BOOTLOADER = caterina

This comment was marked as resolved.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

i think by default it uses Caterina (or similar)? When i got it, i burned the "official" Arduino bootloader (via the Arduino IDE) and flashed it with avrdude.
i then followed my previous instructions (https://github.com/qmk/qmk_firmware/tree/master/keyboards/gherkin/keymaps/wanleg)
and burned QMK DFU on it and that worked too... (though for some reason the DFU mode exit key doesn't seem to work. in my testing, RESET works fine, so i'm pretty sure i know i'm hitting the right pin combo. that's not so important for me though.)

Copy link
Member

Choose a reason for hiding this comment

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

Okay, looking around, yeah, it does look like this uses the caterina bootloader by default. At least as far as I can tell.

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 i need to do anything here then? github says you're requesting changes...

Copy link
Member

Choose a reason for hiding this comment

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

Nope.

FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)

LAYOUT = ortho_4x16
Copy link
Member

Choose a reason for hiding this comment

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

Should add the other layouts too. Ortho 4x4 and 4x12 are definitely supported.

So this line should look like:

 LAYOUT = ortho_4x4  ortho_4x8  ortho_4x12  ortho_4x16 

Copy link
Contributor Author

@wanleg wanleg Aug 2, 2018

Choose a reason for hiding this comment

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

Done. It’s defined in 4x4.h, so it should be ok, right? Do i have to add it to ./layouts/community also? All the layouts aren’t there yet.

wanleg and others added 2 commits August 2, 2018 03:58
Added support for additional layouts
@drashna
Copy link
Member

drashna commented Aug 2, 2018

Awesome! Thanks!

@drashna drashna merged commit 62a8603 into qmk:master Aug 2, 2018
@wanleg wanleg deleted the 4x4Board branch August 3, 2018 00:16
alexey-danilov pushed a commit to alexey-danilov/qmk_firmware that referenced this pull request Aug 3, 2018
* add support for 4x4 macropad

* Update readme.md

* set DFU escape key

* cleanup

* Update config.h

* Update keymap.c

* Update config.h

* Update keymap.c

* Update 4x4.h

* reviewed

fudging review automation

* playing with the system

* reverting

* Required additions made

Added support for additional layouts

* tidy up default keymap
ChrissiQ pushed a commit to ChrissiQ/qmk_firmware that referenced this pull request Sep 25, 2018
* add support for 4x4 macropad

* Update readme.md

* set DFU escape key

* cleanup

* Update config.h

* Update keymap.c

* Update config.h

* Update keymap.c

* Update 4x4.h

* reviewed

fudging review automation

* playing with the system

* reverting

* Required additions made

Added support for additional layouts

* tidy up default keymap
yamad pushed a commit to yamad/qmk_firmware that referenced this pull request Apr 10, 2019
* add support for 4x4 macropad

* Update readme.md

* set DFU escape key

* cleanup

* Update config.h

* Update keymap.c

* Update config.h

* Update keymap.c

* Update 4x4.h

* reviewed

fudging review automation

* playing with the system

* reverting

* Required additions made

Added support for additional layouts

* tidy up default keymap
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.

3 participants