Author Topic: Easy AVR USB Keyboard Firmware and Keymapper  (Read 936194 times)

0 Members and 6 Guests are viewing this topic.

Offline mr67volks

  • Posts: 10
  • Location: Riverside, California
  • GAO!!!
    • the sweetie bot
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1600 on: Thu, 07 April 2016, 00:54:21 »
First off ...metalliqaz, this software is amazing and thank you giving this to the community

second , Im wondering if there is a char limit on macros for the m1-14 position.

What i am trying to do is make a on button press to open new tab ( in chrome ),type URL , wait 1 sec, type username, tab, type pw , click enter.

If this is not possible I can understand as I know this is a security issue if the keyboard fell into the hands of evil.

willing to listen to any help I can get or if someone can point me to any documentation .

« Last Edit: Thu, 07 April 2016, 01:28:05 by mr67volks »
www.sweetiebot.org

Dell AT101w x3 Alps Black | AT101 / 61 Custom into a 60% MOD ( WIP ) | Poker ii MX Blues (My EVA 01) | KBT Pure MX blacks | MC QFR mx blues w/ Frosty Flake

Offline suicidal_orange

  • * Global Moderator
  • Posts: 4771
  • Location: England
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1601 on: Thu, 07 April 2016, 01:39:41 »
First off ...metalliqaz, this software is amazing and thank you giving this to the community

second , Im wondering if there is a char limit on macros for the m1-14 position.

What i am trying to do is make a on button press to open new tab ( in chrome ),type URL , wait 1 sec, type username, tab, type pw , click enter.

If this is not possible I can understand as I know this is a security issue if the keyboard fell into the hands of evil.

willing to listen to any help I can get or if someone can point me to any documentation .

There are help files in the 'manuals' folder, but here's an online copy :)
120/100g linear Zealio R1  
GMK Hyperfuse
'Split everything' perfection  
MX Clear
SA Hack'd by Geeks     
EasyAVR mod

Offline mr67volks

  • Posts: 10
  • Location: Riverside, California
  • GAO!!!
    • the sweetie bot
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1602 on: Thu, 07 April 2016, 01:47:21 »
First off ...metalliqaz, this software is amazing and thank you giving this to the community

second , Im wondering if there is a char limit on macros for the m1-14 position.

What i am trying to do is make a on button press to open new tab ( in chrome ),type URL , wait 1 sec, type username, tab, type pw , click enter.

If this is not possible I can understand as I know this is a security issue if the keyboard fell into the hands of evil.

willing to listen to any help I can get or if someone can point me to any documentation .

There are help files in the 'manuals' folder, but here's an online copy :)

This is exactly what I needed. I couldn't find a local copy of this but going to copy this to a txt now

Thank you
www.sweetiebot.org

Dell AT101w x3 Alps Black | AT101 / 61 Custom into a 60% MOD ( WIP ) | Poker ii MX Blues (My EVA 01) | KBT Pure MX blacks | MC QFR mx blues w/ Frosty Flake

Offline MOZ

  • KING OF THE NEWBIES
  • * Maker
  • Posts: 3981
  • Location: Jo'burg
  • Busy making stuff
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1603 on: Thu, 07 April 2016, 02:00:31 »
It's under Help.

Offline Jersern

  • Posts: 249
  • Location: Sydney, Australia
  • Australian Keyboard Modding and Repair Service
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1604 on: Thu, 07 April 2016, 04:01:28 »
I've gone for this layout from the Monarch thread, strange as the numberpad is
 
Show Image

Show Image


Apart from the little "key" (not usable) over the number pad enter it looks right, but does it work?  I hope so...

The hex is attached, please test it :)

edit: I have + and - switched on the numberpad, that will be corrected.


edit2 I also have an up arrow in the numberpad, that will be corrected too :-[

Wow nice! How would I be able to get the Monarch layout going on the program?


Offline suicidal_orange

  • * Global Moderator
  • Posts: 4771
  • Location: England
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1605 on: Thu, 07 April 2016, 10:30:08 »
I've gone for this layout from the Monarch thread, strange as the numberpad is
 
Show Image

Show Image


Apart from the little "key" (not usable) over the number pad enter it looks right, but does it work?  I hope so...

The hex is attached, please test it :)

edit: I have + and - switched on the numberpad, that will be corrected.


edit2 I also have an up arrow in the numberpad, that will be corrected too :-[

Wow nice! How would I be able to get the Monarch layout going on the program?

Does that mean all the keys and both LEDs work in the test hex?  If so I'll post the config so you can add it to your boards directory and make your own :)
120/100g linear Zealio R1  
GMK Hyperfuse
'Split everything' perfection  
MX Clear
SA Hack'd by Geeks     
EasyAVR mod

Offline Jersern

  • Posts: 249
  • Location: Sydney, Australia
  • Australian Keyboard Modding and Repair Service
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1606 on: Thu, 07 April 2016, 16:33:11 »
All5 the 5LEDs 5work 5but5 as 5you 5can 5tell5 there's 5a 5few 5small5 glitches5 (typed5 on 5the5 Monarch) 5:P

Namely:
The spacekey is spazzing out with typing a five every time
There seems to be no backspace , it seems to be mapped to home?
Pressing the function key (right command key) and anything has had strange effects (it's toggled things from windows magnifier to just typing random stuff out.)

edit:
More bugs!
Numpad timing for the keys seems off, pressing the key causes it to type out many of the character
\ key does work and types out a string of 44444444444

That's all for now, if anything else weird pops up, I'll update this post.
« Last Edit: Thu, 07 April 2016, 16:38:41 by Jersern »

Offline metalliqaz

  • * Maker
  • Thread Starter
  • Posts: 4951
  • Location: the Making Stuff subforum
  • Leopold fanboy
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1607 on: Thu, 07 April 2016, 16:49:02 »
that's hilarious

We should be able to fix it up.  suicidal_orange is probably asleep, though.

Offline suicidal_orange

  • * Global Moderator
  • Posts: 4771
  • Location: England
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1608 on: Thu, 07 April 2016, 17:26:21 »
Not asleep but not sober so probably not much use... Will boot my computer up and see if there's anything obvious, but as there's no 'home' key on there I doubt it.  Unless virtual numpad with num lock off maybe?

edit:

Backspace looks fine

5% is on column 9 along with space - possible diode issue?
« Last Edit: Thu, 07 April 2016, 17:35:31 by suicidal_orange »
120/100g linear Zealio R1  
GMK Hyperfuse
'Split everything' perfection  
MX Clear
SA Hack'd by Geeks     
EasyAVR mod

Offline suicidal_orange

  • * Global Moderator
  • Posts: 4771
  • Location: England
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1609 on: Thu, 07 April 2016, 18:13:31 »
Everything looks fine (except right shift shouldn't have worked - now fixed) so I'm reluctantly going to post the broken config.  Would be great if someone could explain what I did wrong, I don't see how some of the reported bugs are even possible!
120/100g linear Zealio R1  
GMK Hyperfuse
'Split everything' perfection  
MX Clear
SA Hack'd by Geeks     
EasyAVR mod

Offline metalliqaz

  • * Maker
  • Thread Starter
  • Posts: 4951
  • Location: the Making Stuff subforum
  • Leopold fanboy
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1610 on: Thu, 07 April 2016, 18:50:19 »
Everything looks fine (except right shift shouldn't have worked - now fixed) so I'm reluctantly going to post the broken config.  Would be great if someone could explain what I did wrong, I don't see how some of the reported bugs are even possible!

You used the ATmega32U4_16MHz_TKL firmware, which is not large enough to hold the monarch matrix.  I cleaned it up and used the biggest firmware.  It's in the repository...
https://github.com/dhowland/EasyAVR/blob/master/keymapper/easykeymap/boards/monarch.py


Offline Moistgun

  • Slippery When Wet
  • * Esteemed Elder
  • Posts: 1832
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1611 on: Thu, 07 April 2016, 19:30:33 »
Hi everyone.
I posted this in my own thread but I will ask here as well if that is okay. 

I have a hand wired board that only outputs for the letter E
nothing else registers






sorry about the quality.

all diodes are facing the same way, black stripe down.

Did I just do a mess of a job wiring it? or do you think its the AVR?

Offline suicidal_orange

  • * Global Moderator
  • Posts: 4771
  • Location: England
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1612 on: Thu, 07 April 2016, 19:37:23 »
Everything looks fine (except right shift shouldn't have worked - now fixed) so I'm reluctantly going to post the broken config.  Would be great if someone could explain what I did wrong, I don't see how some of the reported bugs are even possible!

You used the ATmega32U4_16MHz_TKL firmware, which is not large enough to hold the monarch matrix.  I cleaned it up and used the biggest firmware.  It's in the repository...
https://github.com/dhowland/EasyAVR/blob/master/keymapper/easykeymap/boards/monarch.py

Thanks, I would never have thought of that!  I can go to bed happy I didn't mess up something stupid now :)
120/100g linear Zealio R1  
GMK Hyperfuse
'Split everything' perfection  
MX Clear
SA Hack'd by Geeks     
EasyAVR mod

Offline metalliqaz

  • * Maker
  • Thread Starter
  • Posts: 4951
  • Location: the Making Stuff subforum
  • Leopold fanboy
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1613 on: Thu, 07 April 2016, 19:57:10 »
Hi everyone.
I posted this in my own thread but I will ask here as well if that is okay. 

I have a hand wired board that only outputs for the letter E
nothing else registers

Show Image



Show Image


sorry about the quality.

all diodes are facing the same way, black stripe down.

Did I just do a mess of a job wiring it? or do you think its the AVR?
This is EasyAVR?  Can you post your config? Does every key output E, or just the E key?

Offline Moistgun

  • Slippery When Wet
  • * Esteemed Elder
  • Posts: 1832
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1614 on: Thu, 07 April 2016, 20:03:16 »
Hi everyone.
I posted this in my own thread but I will ask here as well if that is okay. 

I have a hand wired board that only outputs for the letter E
nothing else registers

Show Image



Show Image


sorry about the quality.

all diodes are facing the same way, black stripe down.

Did I just do a mess of a job wiring it? or do you think its the AVR?
This is EasyAVR?  Can you post your config? Does every key output E, or just the E key?

This is easy avr, Yes

https://www.dropbox.com/s/ip218l00w00iq7j/moistgun61.py?dl=0
This is the .py
I want to point out that MOZ gave me the initial py file, but I edited it.  The sizing of the caps were wrong since this is an AEK layout, as well as some of the scancodes being on the wrong column. like space was supposed to be column 7 not 5.

https://www.dropbox.com/s/q4w3ea3gaui7s2f/ATmega32U4_16MHz_mt.hex?dl=0
This is the hex

only the e key outputs e     everything else is dead
« Last Edit: Thu, 07 April 2016, 20:08:11 by Moistgun »

Offline metalliqaz

  • * Maker
  • Thread Starter
  • Posts: 4951
  • Location: the Making Stuff subforum
  • Leopold fanboy
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1615 on: Thu, 07 April 2016, 22:18:11 »
Hi everyone.
I posted this in my own thread but I will ask here as well if that is okay. 

I have a hand wired board that only outputs for the letter E
nothing else registers

Show Image



Show Image


sorry about the quality.

all diodes are facing the same way, black stripe down.

Did I just do a mess of a job wiring it? or do you think its the AVR?
This is EasyAVR?  Can you post your config? Does every key output E, or just the E key?

This is easy avr, Yes

https://www.dropbox.com/s/ip218l00w00iq7j/moistgun61.py?dl=0
This is the .py
I want to point out that MOZ gave me the initial py file, but I edited it.  The sizing of the caps were wrong since this is an AEK layout, as well as some of the scancodes being on the wrong column. like space was supposed to be column 7 not 5.

https://www.dropbox.com/s/q4w3ea3gaui7s2f/ATmega32U4_16MHz_mt.hex?dl=0
This is the hex

only the e key outputs e     everything else is dead

Well it's kind of hard to say.  If the E key works as intended, then you've got the basics correct.  If I were you, I'd start using a multimeter to check for continuity on the matrix.

Offline Jersern

  • Posts: 249
  • Location: Sydney, Australia
  • Australian Keyboard Modding and Repair Service
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1616 on: Fri, 08 April 2016, 01:23:56 »
Okay can confirm the Monarch mapper is working as intended. Just a minor thing but the Monarch only has 3 modifier keys to the right of the space bar while the GUI is displaying 4. Basically the one closest to the spacebar doesn't exist and doesn't seem to do anything.

With toggleable caps lock, it doesn't seem to work with the Alps locking switch, any ideas as to why?

Otherwise an excellent tool! Thank you so much! :)

Offline suicidal_orange

  • * Global Moderator
  • Posts: 4771
  • Location: England
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1617 on: Fri, 08 April 2016, 01:36:19 »
Okay can confirm the Monarch mapper is working as intended. Just a minor thing but the Monarch only has 3 modifier keys to the right of the space bar while the GUI is displaying 4. Basically the one closest to the spacebar doesn't exist and doesn't seem to do anything.

With toggleable caps lock, it doesn't seem to work with the Alps locking switch, any ideas as to why?

Otherwise an excellent tool! Thank you so much! :)

Dammit, there's an LED on the mock up (on tho wrong side no less) which I kept seeing as a key :))

As to the lock switch did you pick the scancode or change the key mode at the top?  You should choose the scancode, but it may not have been tested since the rewrite.  The mode is to emulate a lock switch :)
120/100g linear Zealio R1  
GMK Hyperfuse
'Split everything' perfection  
MX Clear
SA Hack'd by Geeks     
EasyAVR mod

Offline Jersern

  • Posts: 249
  • Location: Sydney, Australia
  • Australian Keyboard Modding and Repair Service
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1618 on: Fri, 08 April 2016, 03:16:53 »
DERP. I didn't realise there is a dedicated scancode for locking switches! I used that lockable option in the mode selection. It works perfectly now :D Thank you very much!

Offline metalliqaz

  • * Maker
  • Thread Starter
  • Posts: 4951
  • Location: the Making Stuff subforum
  • Leopold fanboy
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1619 on: Fri, 08 April 2016, 07:27:27 »
Nice!

Offline suicidal_orange

  • * Global Moderator
  • Posts: 4771
  • Location: England
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1620 on: Fri, 08 April 2016, 18:47:07 »
Metalliqaz - Moistgun's problem was the diode direction so fixed by changing strobe_cols to False, but reading the notes in the config file MOZ, Moistgun and myself all thought it should be left as True.  Is this option backwards or is the wording just confusing?

Most boards are built this way so it would make a better default, but if it is backwards perhaps it's already supposed to be and it's something else that needs changing? :confused:
120/100g linear Zealio R1  
GMK Hyperfuse
'Split everything' perfection  
MX Clear
SA Hack'd by Geeks     
EasyAVR mod

Offline metalliqaz

  • * Maker
  • Thread Starter
  • Posts: 4951
  • Location: the Making Stuff subforum
  • Leopold fanboy
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1621 on: Fri, 08 April 2016, 21:32:27 »
Metalliqaz - Moistgun's problem was the diode direction so fixed by changing strobe_cols to False, but reading the notes in the config file MOZ, Moistgun and myself all thought it should be left as True.  Is this option backwards or is the wording just confusing?

Most boards are built this way so it would make a better default, but if it is backwards perhaps it's already supposed to be and it's something else that needs changing? :confused:

I confuse myself sometimes.  Trying to boil it all down to a few simple sentences is obviously a challenge.

Okay so let's talk this out.  His diodes are clearly installed to allow current to flow from column to row.  Since it's a handwire board it has to use the AVR's internal pullup resistors, therefore strobe_low must be True.

So let's say strobe_col is True...  then all columns will be set to 5v and the selected column will be set to 0v.  Every unselected column will be read as high on the rows because the diodes are col->row, while the selected column will have no voltage differential so will read as high thanks to the pullup.  Yep, that doesn't work.

If strobe_col is False...  then all rows will be set to 5v and the selected row will be set to 0v.  Every unselected row will be read as high on the columns because there is no voltage differential so the pullups take over.  The selected row will pull current through the diode and will be read as low.  That works.

Alright, so my logic was totally friggin backwards.  Ugh, this is so embarrassing.  The one line I needed to get right.  *sigh*  I'll change the text in the repository.

Offline metalliqaz

  • * Maker
  • Thread Starter
  • Posts: 4951
  • Location: the Making Stuff subforum
  • Leopold fanboy
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1622 on: Fri, 08 April 2016, 22:18:35 »
Released 2.1.12 on the wiki with fixed handwire instructions and support for two new boards.

Offline suicidal_orange

  • * Global Moderator
  • Posts: 4771
  • Location: England
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1623 on: Sat, 09 April 2016, 03:55:31 »
Metalliqaz - Moistgun's problem was the diode direction so fixed by changing strobe_cols to False, but reading the notes in the config file MOZ, Moistgun and myself all thought it should be left as True.  Is this option backwards or is the wording just confusing?

Most boards are built this way so it would make a better default, but if it is backwards perhaps it's already supposed to be and it's something else that needs changing? :confused:

I confuse myself sometimes.  Trying to boil it all down to a few simple sentences is obviously a challenge.

Okay so let's talk this out.  His diodes are clearly installed to allow current to flow from column to row.  Since it's a handwire board it has to use the AVR's internal pullup resistors, therefore strobe_low must be True.

So let's say strobe_col is True...  then all columns will be set to 5v and the selected column will be set to 0v.  Every unselected column will be read as high on the rows because the diodes are col->row, while the selected column will have no voltage differential so will read as high thanks to the pullup.  Yep, that doesn't work.

If strobe_col is False...  then all rows will be set to 5v and the selected row will be set to 0v.  Every unselected row will be read as high on the columns because there is no voltage differential so the pullups take over.  The selected row will pull current through the diode and will be read as low.  That works.

Alright, so my logic was totally friggin backwards.  Ugh, this is so embarrassing.  The one line I needed to get right.  *sigh*  I'll change the text in the repository.

Thanks for the explanation, it was an easy fix and compared to all the good stuff a couple of wrong words pales into insignificance.  Good excuse to get the new boards released too :)


I've been considering this a beta since the rewrite but pretty sure everything has been tested now, at least enough that I feel it's time to attempt my hijacked Ducky (Teensy 2.0++, big crazy matrix...) and be confident that any problems are of my own making :-X
120/100g linear Zealio R1  
GMK Hyperfuse
'Split everything' perfection  
MX Clear
SA Hack'd by Geeks     
EasyAVR mod

Offline suicidal_orange

  • * Global Moderator
  • Posts: 4771
  • Location: England
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1624 on: Sun, 10 April 2016, 14:56:39 »
Is there any documentation as to how the three AT90USB1286 builds differ?  I've tried my layout (18x8 matrix, config below if it's helpful) on an empty Teensy 2.0++ using the Fullsize 16mhz and Jumbo and don't get any output using a wire between pins.  I'm sure someone said they got a key to output...

Code: [Select]
# Easy AVR USB Keyboard Firmware Keymapper
# Copyright (C) 2013-2016 David Howland
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program.  If not, see <http://www.gnu.org/licenses/>.

import easykeymap.templates.AT90USB1286_16MHz_FULLSIZE as firmware
from easykeymap.ioports import *
from easykeymap.helper import make_matrix_config

description = "Ducky Zero"
unique_id = "DUCKY_001"
cfg_name = "Ducky 108"

teensy = True
hw_boot_key = False

display_height = int(6.5*4)
display_width = int(22.5*4)

num_rows = 8
num_cols = 18

strobe_cols = True
strobe_low = True

matrix_hardware, matrix_strobe, matrix_sense = make_matrix_config(
    strobe_cols=strobe_cols,
    strobe_low=strobe_low,
    rows=[D2, D1, D4, B0, D0, C5, B7, F0],
    cols=[F7, F4, B2, B3, B4, B5, E6, B6, F2, F3, F5, D5, D6, C7, C6, E0, F6, E1],
    device=firmware.device
)

num_leds = 2
num_ind = 2
num_bl_enab = 2

led_definition = [
    ('Caps Key', 'Caps Lock'),
    ('Num Key', 'Num Lock')
]

led_hardware = [
    ( REF_PORTD, 6, LED_DRIVER_PULLUP ),
    ( REF_PORTF, 1, LED_DRIVER_PULLUP )
]

backlighting = False

bl_modes = [
    ( 0, 0 ),
    ( 1, 1 )
]

KMAC_key = None

keyboard_definition = [
    [((4, 4), (3, 2), 'HID_KEYBOARD_SC_ESCAPE'),
     (4, None, '0'),
     ((4, 4), (1, 3), 'HID_KEYBOARD_SC_F1'),
     ((4, 4), (1, 4), 'HID_KEYBOARD_SC_F2'),
     ((4, 4), (6, 4), 'HID_KEYBOARD_SC_F3'),
     ((4, 4), (4, 4), 'HID_KEYBOARD_SC_F4'),
     (2, None, '0'),
     ((4, 4), (0, 10), 'HID_KEYBOARD_SC_F5'),
     ((4, 4), (4, 8), 'HID_KEYBOARD_SC_F6'),
     ((4, 4), (6, 8), 'HID_KEYBOARD_SC_F7'),
     ((4, 4), (1, 8), 'HID_KEYBOARD_SC_F8'),
     (2, None, '0'),
     ((4, 4), (1, 12), 'HID_KEYBOARD_SC_F9'),
     ((4, 4), (0, 12), 'HID_KEYBOARD_SC_F10'),
     ((4, 4), (4, 12), 'HID_KEYBOARD_SC_F11'),
     ((4, 4), (0, 14), 'HID_KEYBOARD_SC_F12'),
     (1, None, '0'),
     ((4, 4), (0, 11), 'HID_KEYBOARD_SC_PRINT_SCREEN'),
     ((4, 4), (7, 11), 'HID_KEYBOARD_SC_SCROLL_LOCK'),
     ((4, 4), (7, 10), 'HID_KEYBOARD_SC_PAUSE'),
     (1, None, '0'),
     ((4, 4), (1, 12), 'SCANCODE_MUTE'),
     ((4, 4), (0, 12), 'SCANCODE_VOL_DEC'),
     ((4, 4), (4, 12), 'SCANCODE_VOL_DEC'),
     ((4, 4), (2, 12), 'SCANCODE_CALC')],

    2,

    [((4, 4), (1, 2), 'HID_KEYBOARD_SC_GRAVE_ACCENT_AND_TILDE'),
     ((4, 4), (0, 2), 'HID_KEYBOARD_SC_1_AND_EXCLAMATION'),
     ((4, 4), (0, 3), 'HID_KEYBOARD_SC_2_AND_AT'),
     ((4, 4), (0, 4), 'HID_KEYBOARD_SC_3_AND_HASHMARK'),
     ((4, 4), (0, 5), 'HID_KEYBOARD_SC_4_AND_DOLLAR'),
     ((4, 4), (1, 5), 'HID_KEYBOARD_SC_5_AND_PERCENTAGE'),
     ((4, 4), (1, 6), 'HID_KEYBOARD_SC_6_AND_CARET'),
     ((4, 4), (0, 6), 'HID_KEYBOARD_SC_7_AND_AND_AMPERSAND'),
     ((4, 4), (0, 7), 'HID_KEYBOARD_SC_8_AND_ASTERISK'),
     ((4, 4), (0, 8), 'HID_KEYBOARD_SC_9_AND_OPENING_PARENTHESIS'),
     ((4, 4), (0, 9), 'HID_KEYBOARD_SC_0_AND_CLOSING_PARENTHESIS'),
     ((4, 4), (1, 9), 'HID_KEYBOARD_SC_MINUS_AND_UNDERSCORE'),
     ((4, 4), (1, 7), 'HID_KEYBOARD_SC_EQUAL_AND_PLUS'),
     ((8, 4), (7, 10), 'HID_KEYBOARD_SC_BACKSPACE'),
     (1, None, '0'),
     ((4, 4), (1, 14), 'HID_KEYBOARD_SC_INSERT'),
     ((4, 4), (1, 16), 'HID_KEYBOARD_SC_HOME'),
     ((4, 4), (1, 15), 'HID_KEYBOARD_SC_PAGE_UP'),
     (1, None, '0'),
     ((4, 4), (3, 13), 'HID_KEYBOARD_SC_NUM_LOCK'),
     ((4, 4), (3, 14), 'HID_KEYBOARD_SC_KEYPAD_SLASH'),
     ((4, 4), (3, 15), 'HID_KEYBOARD_SC_KEYPAD_ASTERISK'),
     ((4, 4), (2, 15), 'HID_KEYBOARD_SC_KEYPAD_MINUS')],

    [((6, 4), (6, 2), 'HID_KEYBOARD_SC_TAB'),
     ((4, 4), (7, 2), 'HID_KEYBOARD_SC_Q'),
     ((4, 4), (7, 3), 'HID_KEYBOARD_SC_W'),
     ((4, 4), (7, 4), 'HID_KEYBOARD_SC_E'),
     ((4, 4), (7, 5), 'HID_KEYBOARD_SC_R'),
     ((4, 4), (6, 5), 'HID_KEYBOARD_SC_T'),
     ((4, 4), (6, 6), 'HID_KEYBOARD_SC_Y'),
     ((4, 4), (7, 6), 'HID_KEYBOARD_SC_U'),
     ((4, 4), (7, 7), 'HID_KEYBOARD_SC_I'),
     ((4, 4), (7, 8), 'HID_KEYBOARD_SC_O'),
     ((4, 4), (7, 9), 'HID_KEYBOARD_SC_P'),
     ((4, 4), (6, 7), 'HID_KEYBOARD_SC_OPENING_BRACKET_AND_OPENING_BRACE'),
     ((4, 4), (6, 9), 'HID_KEYBOARD_SC_CLOSING_BRACKET_AND_CLOSING_BRACE'),
     (1, None, '0'),
     ((5, 8), (3, 12), 'HID_KEYBOARD_SC_ENTER'),
     (1, None, '0'),
     ((4, 4), (1, 13), 'HID_KEYBOARD_SC_DELETE'),
     ((4, 4), (0, 16), 'HID_KEYBOARD_SC_END'),
     ((4, 4), (0, 15), 'HID_KEYBOARD_SC_PAGE_DOWN'),
     (1, None, '0'),
     ((4, 4), (7, 13), 'HID_KEYBOARD_SC_KEYPAD_7_AND_HOME'),
     ((4, 4), (7, 14), 'HID_KEYBOARD_SC_KEYPAD_8_AND_UP_ARROW'),
     ((4, 4), (7, 15), 'HID_KEYBOARD_SC_KEYPAD_9_AND_PAGE_UP'),
     ((4, 8), (7, 16), 'HID_KEYBOARD_SC_KEYPAD_PLUS')],

    [((7, 4), (6, 3), 'HID_KEYBOARD_SC_CAPS_LOCK'),
     ((4, 4), (5, 2), 'HID_KEYBOARD_SC_A'),
     ((4, 4), (5, 3), 'HID_KEYBOARD_SC_S'),
     ((4, 4), (5, 4), 'HID_KEYBOARD_SC_D'),
     ((4, 4), (5, 5), 'HID_KEYBOARD_SC_F'),
     ((4, 4), (4, 5), 'HID_KEYBOARD_SC_G'),
     ((4, 4), (4, 6), 'HID_KEYBOARD_SC_H'),
     ((4, 4), (5, 6), 'HID_KEYBOARD_SC_J'),
     ((4, 4), (5, 7), 'HID_KEYBOARD_SC_K'),
     ((4, 4), (5, 8), 'HID_KEYBOARD_SC_L'),
     ((4, 4), (5, 9), 'HID_KEYBOARD_SC_SEMICOLON_AND_COLON'),
     ((4, 4), (4, 9), 'HID_KEYBOARD_SC_APOSTROPHE_AND_QUOTE'),
     ((4, 4), (5, 11), 'HID_KEYBOARD_SC_NON_US_HASHMARK_AND_TILDE'),
     (-19, None, '0'),
     ((4, 4), (6, 13), 'HID_KEYBOARD_SC_KEYPAD_4_AND_LEFT_ARROW'),
     ((4, 4), (6, 14), 'HID_KEYBOARD_SC_KEYPAD_5'),
     ((4, 4), (6, 15), 'HID_KEYBOARD_SC_KEYPAD_6_AND_RIGHT_ARROW'),
     (-4, None, '0')],

    [((5, 4), (6, 1), 'HID_KEYBOARD_SC_LEFT_SHIFT'),
     ((4, 4), (2, 2), 'HID_KEYBOARD_SC_NON_US_BACKSLASH_AND_PIPE'),
     ((4, 4), (3, 2), 'HID_KEYBOARD_SC_Z'),
     ((4, 4), (3, 3), 'HID_KEYBOARD_SC_X'),
     ((4, 4), (3, 4), 'HID_KEYBOARD_SC_C'),
     ((4, 4), (3, 5), 'HID_KEYBOARD_SC_V'),
     ((4, 4), (2, 5), 'HID_KEYBOARD_SC_B'),
     ((4, 4), (2, 6), 'HID_KEYBOARD_SC_N'),
     ((4, 4), (3, 6), 'HID_KEYBOARD_SC_M'),
     ((4, 4), (3, 7), 'HID_KEYBOARD_SC_COMMA_AND_LESS_THAN_SIGN'),
     ((4, 4), (3, 8), 'HID_KEYBOARD_SC_DOT_AND_GREATER_THAN_SIGN'),
     ((4, 4), (2, 9), 'HID_KEYBOARD_SC_SLASH_AND_QUESTION_MARK'),
     ((11, 4), (5, 1), 'HID_KEYBOARD_SC_RIGHT_SHIFT'),
     (5, None, '0'),
     ((4, 4), (4, 16), 'HID_KEYBOARD_SC_UP_ARROW'),
     (5, None, '0'),
     ((4, 4), (5, 13), 'HID_KEYBOARD_SC_KEYPAD_1_AND_END'),
     ((4, 4), (5, 14), 'HID_KEYBOARD_SC_KEYPAD_2_AND_DOWN_ARROW'),
     ((4, 4), (5, 15), 'HID_KEYBOARD_SC_KEYPAD_3_AND_PAGE_DOWN'),
     ((4, 8), (5, 16), 'HID_KEYBOARD_SC_KEYPAD_ENTER')],

    [((5, 4), (1, 10), 'HID_KEYBOARD_SC_LEFT_CONTROL'),
     ((5, 4), (6, 0), 'HID_KEYBOARD_SC_LEFT_GUI'),
     ((5, 4), (4, 11), 'HID_KEYBOARD_SC_LEFT_ALT'),
     ((25, 4), (4, 13), 'HID_KEYBOARD_SC_SPACE'),
     ((5, 4), (2, 11), 'HID_KEYBOARD_SC_RIGHT_ALT'),
     ((5, 4), (7, 0), 'HID_KEYBOARD_SC_RIGHT_GUI'),
     ((5, 4), (2, 8), 'HID_KEYBOARD_SC_APPLICATION'),
     ((5, 4), (3, 10), 'HID_KEYBOARD_SC_RIGHT_CONTROL'),
     (1, None, '0'),
     ((4, 4), (2, 16), 'HID_KEYBOARD_SC_LEFT_ARROW'),
     ((4, 4), (2, 13), 'HID_KEYBOARD_SC_DOWN_ARROW'),
     ((4, 4), (2, 14), 'HID_KEYBOARD_SC_RIGHT_ARROW'),
     (1, None, '0'),
     ((8, 4), (4, 14), 'HID_KEYBOARD_SC_KEYPAD_0_AND_INSERT'),
     ((4, 4), (4, 15), 'HID_KEYBOARD_SC_KEYPAD_DOT_AND_DELETE'),
     (-4, None, '0')]
]

alt_layouts = {}
120/100g linear Zealio R1  
GMK Hyperfuse
'Split everything' perfection  
MX Clear
SA Hack'd by Geeks     
EasyAVR mod

Offline metalliqaz

  • * Maker
  • Thread Starter
  • Posts: 4951
  • Location: the Making Stuff subforum
  • Leopold fanboy
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1625 on: Sun, 10 April 2016, 15:07:43 »
Is there any documentation as to how the three AT90USB1286 builds differ?  I've tried my layout (18x8 matrix, config below if it's helpful) on an empty Teensy 2.0++ using the Fullsize 16mhz and Jumbo and don't get any output using a wire between pins.  I'm sure someone said they got a key to output...

There should be documentation, but I haven't written any.  The hardware descriptions, other than the part/clock, are kept here: https://github.com/dhowland/EasyAVR/blob/master/keymapper/easykeymap/templates/__init__.py

You will see that the only size that fits your 8x18 matrix is the COSTAR, which isn't currently being built for that part.  However, it's trivial to add.  I'm compiling it now.

I've never used a teensy++, so I'm not even completely sure that it works right.  Sam has tried it and I think MOZ.

Offline suicidal_orange

  • * Global Moderator
  • Posts: 4771
  • Location: England
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1626 on: Sun, 10 April 2016, 15:20:22 »
Is there any documentation as to how the three AT90USB1286 builds differ?  I've tried my layout (18x8 matrix, config below if it's helpful) on an empty Teensy 2.0++ using the Fullsize 16mhz and Jumbo and don't get any output using a wire between pins.  I'm sure someone said they got a key to output...

There should be documentation, but I haven't written any.  The hardware descriptions, other than the part/clock, are kept here: https://github.com/dhowland/EasyAVR/blob/master/keymapper/easykeymap/templates/__init__.py

You will see that the only size that fits your 8x18 matrix is the COSTAR, which isn't currently being built for that part.  However, it's trivial to add.  I'm compiling it now.

I've never used a teensy++, so I'm not even completely sure that it works right.  Sam has tried it and I think MOZ.

That's a good reason, thanks!  You'd have to be crazy to handwire a fullsize and if you did you would do 7x lots as you've allowed for.  I guess my build is closest to the Costar ones in that it's a hijacked commercial matrix...

I see the new file is uploaded already so I'll give it a test now :)

edit:  It works!  Pause presses backspace, there's no number lock, and half of the F keys don't register, but this edit was typed on the EasyAVR'd board :D
« Last Edit: Sun, 10 April 2016, 15:53:03 by suicidal_orange »
120/100g linear Zealio R1  
GMK Hyperfuse
'Split everything' perfection  
MX Clear
SA Hack'd by Geeks     
EasyAVR mod

Offline Moistgun

  • Slippery When Wet
  • * Esteemed Elder
  • Posts: 1832
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1627 on: Sun, 10 April 2016, 20:28:37 »
Is there any documentation as to how the three AT90USB1286 builds differ?  I've tried my layout (18x8 matrix, config below if it's helpful) on an empty Teensy 2.0++ using the Fullsize 16mhz and Jumbo and don't get any output using a wire between pins.  I'm sure someone said they got a key to output...

Code: [Select]
# Easy AVR USB Keyboard Firmware Keymapper
# Copyright (C) 2013-2016 David Howland
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program.  If not, see <http://www.gnu.org/licenses/>.

import easykeymap.templates.AT90USB1286_16MHz_FULLSIZE as firmware
from easykeymap.ioports import *
from easykeymap.helper import make_matrix_config

description = "Ducky Zero"
unique_id = "DUCKY_001"
cfg_name = "Ducky 108"

teensy = True
hw_boot_key = False

display_height = int(6.5*4)
display_width = int(22.5*4)

num_rows = 8
num_cols = 18

strobe_cols = True
strobe_low = True

matrix_hardware, matrix_strobe, matrix_sense = make_matrix_config(
    strobe_cols=strobe_cols,
    strobe_low=strobe_low,
    rows=[D2, D1, D4, B0, D0, C5, B7, F0],
    cols=[F7, F4, B2, B3, B4, B5, E6, B6, F2, F3, F5, D5, D6, C7, C6, E0, F6, E1],
    device=firmware.device
)

num_leds = 2
num_ind = 2
num_bl_enab = 2

led_definition = [
    ('Caps Key', 'Caps Lock'),
    ('Num Key', 'Num Lock')
]

led_hardware = [
    ( REF_PORTD, 6, LED_DRIVER_PULLUP ),
    ( REF_PORTF, 1, LED_DRIVER_PULLUP )
]

backlighting = False

bl_modes = [
    ( 0, 0 ),
    ( 1, 1 )
]

KMAC_key = None

keyboard_definition = [
    [((4, 4), (3, 2), 'HID_KEYBOARD_SC_ESCAPE'),
     (4, None, '0'),
     ((4, 4), (1, 3), 'HID_KEYBOARD_SC_F1'),
     ((4, 4), (1, 4), 'HID_KEYBOARD_SC_F2'),
     ((4, 4), (6, 4), 'HID_KEYBOARD_SC_F3'),
     ((4, 4), (4, 4), 'HID_KEYBOARD_SC_F4'),
     (2, None, '0'),
     ((4, 4), (0, 10), 'HID_KEYBOARD_SC_F5'),
     ((4, 4), (4, 8), 'HID_KEYBOARD_SC_F6'),
     ((4, 4), (6, 8), 'HID_KEYBOARD_SC_F7'),
     ((4, 4), (1, 8), 'HID_KEYBOARD_SC_F8'),
     (2, None, '0'),
     ((4, 4), (1, 12), 'HID_KEYBOARD_SC_F9'),
     ((4, 4), (0, 12), 'HID_KEYBOARD_SC_F10'),
     ((4, 4), (4, 12), 'HID_KEYBOARD_SC_F11'),
     ((4, 4), (0, 14), 'HID_KEYBOARD_SC_F12'),
     (1, None, '0'),
     ((4, 4), (0, 11), 'HID_KEYBOARD_SC_PRINT_SCREEN'),
     ((4, 4), (7, 11), 'HID_KEYBOARD_SC_SCROLL_LOCK'),
     ((4, 4), (7, 10), 'HID_KEYBOARD_SC_PAUSE'),
     (1, None, '0'),
     ((4, 4), (1, 12), 'SCANCODE_MUTE'),
     ((4, 4), (0, 12), 'SCANCODE_VOL_DEC'),
     ((4, 4), (4, 12), 'SCANCODE_VOL_DEC'),
     ((4, 4), (2, 12), 'SCANCODE_CALC')],

    2,

    [((4, 4), (1, 2), 'HID_KEYBOARD_SC_GRAVE_ACCENT_AND_TILDE'),
     ((4, 4), (0, 2), 'HID_KEYBOARD_SC_1_AND_EXCLAMATION'),
     ((4, 4), (0, 3), 'HID_KEYBOARD_SC_2_AND_AT'),
     ((4, 4), (0, 4), 'HID_KEYBOARD_SC_3_AND_HASHMARK'),
     ((4, 4), (0, 5), 'HID_KEYBOARD_SC_4_AND_DOLLAR'),
     ((4, 4), (1, 5), 'HID_KEYBOARD_SC_5_AND_PERCENTAGE'),
     ((4, 4), (1, 6), 'HID_KEYBOARD_SC_6_AND_CARET'),
     ((4, 4), (0, 6), 'HID_KEYBOARD_SC_7_AND_AND_AMPERSAND'),
     ((4, 4), (0, 7), 'HID_KEYBOARD_SC_8_AND_ASTERISK'),
     ((4, 4), (0, 8), 'HID_KEYBOARD_SC_9_AND_OPENING_PARENTHESIS'),
     ((4, 4), (0, 9), 'HID_KEYBOARD_SC_0_AND_CLOSING_PARENTHESIS'),
     ((4, 4), (1, 9), 'HID_KEYBOARD_SC_MINUS_AND_UNDERSCORE'),
     ((4, 4), (1, 7), 'HID_KEYBOARD_SC_EQUAL_AND_PLUS'),
     ((8, 4), (7, 10), 'HID_KEYBOARD_SC_BACKSPACE'),
     (1, None, '0'),
     ((4, 4), (1, 14), 'HID_KEYBOARD_SC_INSERT'),
     ((4, 4), (1, 16), 'HID_KEYBOARD_SC_HOME'),
     ((4, 4), (1, 15), 'HID_KEYBOARD_SC_PAGE_UP'),
     (1, None, '0'),
     ((4, 4), (3, 13), 'HID_KEYBOARD_SC_NUM_LOCK'),
     ((4, 4), (3, 14), 'HID_KEYBOARD_SC_KEYPAD_SLASH'),
     ((4, 4), (3, 15), 'HID_KEYBOARD_SC_KEYPAD_ASTERISK'),
     ((4, 4), (2, 15), 'HID_KEYBOARD_SC_KEYPAD_MINUS')],

    [((6, 4), (6, 2), 'HID_KEYBOARD_SC_TAB'),
     ((4, 4), (7, 2), 'HID_KEYBOARD_SC_Q'),
     ((4, 4), (7, 3), 'HID_KEYBOARD_SC_W'),
     ((4, 4), (7, 4), 'HID_KEYBOARD_SC_E'),
     ((4, 4), (7, 5), 'HID_KEYBOARD_SC_R'),
     ((4, 4), (6, 5), 'HID_KEYBOARD_SC_T'),
     ((4, 4), (6, 6), 'HID_KEYBOARD_SC_Y'),
     ((4, 4), (7, 6), 'HID_KEYBOARD_SC_U'),
     ((4, 4), (7, 7), 'HID_KEYBOARD_SC_I'),
     ((4, 4), (7, 8), 'HID_KEYBOARD_SC_O'),
     ((4, 4), (7, 9), 'HID_KEYBOARD_SC_P'),
     ((4, 4), (6, 7), 'HID_KEYBOARD_SC_OPENING_BRACKET_AND_OPENING_BRACE'),
     ((4, 4), (6, 9), 'HID_KEYBOARD_SC_CLOSING_BRACKET_AND_CLOSING_BRACE'),
     (1, None, '0'),
     ((5, 8), (3, 12), 'HID_KEYBOARD_SC_ENTER'),
     (1, None, '0'),
     ((4, 4), (1, 13), 'HID_KEYBOARD_SC_DELETE'),
     ((4, 4), (0, 16), 'HID_KEYBOARD_SC_END'),
     ((4, 4), (0, 15), 'HID_KEYBOARD_SC_PAGE_DOWN'),
     (1, None, '0'),
     ((4, 4), (7, 13), 'HID_KEYBOARD_SC_KEYPAD_7_AND_HOME'),
     ((4, 4), (7, 14), 'HID_KEYBOARD_SC_KEYPAD_8_AND_UP_ARROW'),
     ((4, 4), (7, 15), 'HID_KEYBOARD_SC_KEYPAD_9_AND_PAGE_UP'),
     ((4, 8), (7, 16), 'HID_KEYBOARD_SC_KEYPAD_PLUS')],

    [((7, 4), (6, 3), 'HID_KEYBOARD_SC_CAPS_LOCK'),
     ((4, 4), (5, 2), 'HID_KEYBOARD_SC_A'),
     ((4, 4), (5, 3), 'HID_KEYBOARD_SC_S'),
     ((4, 4), (5, 4), 'HID_KEYBOARD_SC_D'),
     ((4, 4), (5, 5), 'HID_KEYBOARD_SC_F'),
     ((4, 4), (4, 5), 'HID_KEYBOARD_SC_G'),
     ((4, 4), (4, 6), 'HID_KEYBOARD_SC_H'),
     ((4, 4), (5, 6), 'HID_KEYBOARD_SC_J'),
     ((4, 4), (5, 7), 'HID_KEYBOARD_SC_K'),
     ((4, 4), (5, 8), 'HID_KEYBOARD_SC_L'),
     ((4, 4), (5, 9), 'HID_KEYBOARD_SC_SEMICOLON_AND_COLON'),
     ((4, 4), (4, 9), 'HID_KEYBOARD_SC_APOSTROPHE_AND_QUOTE'),
     ((4, 4), (5, 11), 'HID_KEYBOARD_SC_NON_US_HASHMARK_AND_TILDE'),
     (-19, None, '0'),
     ((4, 4), (6, 13), 'HID_KEYBOARD_SC_KEYPAD_4_AND_LEFT_ARROW'),
     ((4, 4), (6, 14), 'HID_KEYBOARD_SC_KEYPAD_5'),
     ((4, 4), (6, 15), 'HID_KEYBOARD_SC_KEYPAD_6_AND_RIGHT_ARROW'),
     (-4, None, '0')],

    [((5, 4), (6, 1), 'HID_KEYBOARD_SC_LEFT_SHIFT'),
     ((4, 4), (2, 2), 'HID_KEYBOARD_SC_NON_US_BACKSLASH_AND_PIPE'),
     ((4, 4), (3, 2), 'HID_KEYBOARD_SC_Z'),
     ((4, 4), (3, 3), 'HID_KEYBOARD_SC_X'),
     ((4, 4), (3, 4), 'HID_KEYBOARD_SC_C'),
     ((4, 4), (3, 5), 'HID_KEYBOARD_SC_V'),
     ((4, 4), (2, 5), 'HID_KEYBOARD_SC_B'),
     ((4, 4), (2, 6), 'HID_KEYBOARD_SC_N'),
     ((4, 4), (3, 6), 'HID_KEYBOARD_SC_M'),
     ((4, 4), (3, 7), 'HID_KEYBOARD_SC_COMMA_AND_LESS_THAN_SIGN'),
     ((4, 4), (3, 8), 'HID_KEYBOARD_SC_DOT_AND_GREATER_THAN_SIGN'),
     ((4, 4), (2, 9), 'HID_KEYBOARD_SC_SLASH_AND_QUESTION_MARK'),
     ((11, 4), (5, 1), 'HID_KEYBOARD_SC_RIGHT_SHIFT'),
     (5, None, '0'),
     ((4, 4), (4, 16), 'HID_KEYBOARD_SC_UP_ARROW'),
     (5, None, '0'),
     ((4, 4), (5, 13), 'HID_KEYBOARD_SC_KEYPAD_1_AND_END'),
     ((4, 4), (5, 14), 'HID_KEYBOARD_SC_KEYPAD_2_AND_DOWN_ARROW'),
     ((4, 4), (5, 15), 'HID_KEYBOARD_SC_KEYPAD_3_AND_PAGE_DOWN'),
     ((4, 8), (5, 16), 'HID_KEYBOARD_SC_KEYPAD_ENTER')],

    [((5, 4), (1, 10), 'HID_KEYBOARD_SC_LEFT_CONTROL'),
     ((5, 4), (6, 0), 'HID_KEYBOARD_SC_LEFT_GUI'),
     ((5, 4), (4, 11), 'HID_KEYBOARD_SC_LEFT_ALT'),
     ((25, 4), (4, 13), 'HID_KEYBOARD_SC_SPACE'),
     ((5, 4), (2, 11), 'HID_KEYBOARD_SC_RIGHT_ALT'),
     ((5, 4), (7, 0), 'HID_KEYBOARD_SC_RIGHT_GUI'),
     ((5, 4), (2, 8), 'HID_KEYBOARD_SC_APPLICATION'),
     ((5, 4), (3, 10), 'HID_KEYBOARD_SC_RIGHT_CONTROL'),
     (1, None, '0'),
     ((4, 4), (2, 16), 'HID_KEYBOARD_SC_LEFT_ARROW'),
     ((4, 4), (2, 13), 'HID_KEYBOARD_SC_DOWN_ARROW'),
     ((4, 4), (2, 14), 'HID_KEYBOARD_SC_RIGHT_ARROW'),
     (1, None, '0'),
     ((8, 4), (4, 14), 'HID_KEYBOARD_SC_KEYPAD_0_AND_INSERT'),
     ((4, 4), (4, 15), 'HID_KEYBOARD_SC_KEYPAD_DOT_AND_DELETE'),
     (-4, None, '0')]
]

alt_layouts = {}

Hey sui, can you try to explain to me the values in the spacer lines you have added in your code?
 
such as (4, None, '0').
or the very last line, (-4, None, '0')

also how the negative numbers work?

Offline metalliqaz

  • * Maker
  • Thread Starter
  • Posts: 4951
  • Location: the Making Stuff subforum
  • Leopold fanboy
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1628 on: Sun, 10 April 2016, 20:45:24 »
Hey sui, can you try to explain to me the values in the spacer lines you have added in your code?
 
such as (4, None, '0').
or the very last line, (-4, None, '0')

also how the negative numbers work?

Okay so all this weirdness came about because the tool grew from a very narrow scope to the semi-large project that it is now.  It should have been redesigned but I just didn't have time.

Here is the text from the handwire tutorial:

Quote
# Define your layout.  This is a list of rows.  Each row is a list
# of keys.  Each key is a tuple of three items.  First item is a tuple
# defining the width,height of the key.  If it is just a number, it
# will be a space instead of a key.  All units are in quarter key lengths,
# so a standard key would be (4,4).  Second item is a tuple defining the
# row,column in the matrix for that key.  Third item is the default scancode
# for that key, from scancodes.py.  If a row is a number instead of a list,
# it will just make a vertical spacer.

Lists in python are sequences inside [] and tuples are inside ().  The difference doesn't matter right now.

So the keyboard is a list of rows, and the rows are lists of keys.  It's basically a 2D array of keys.  Keys are expressed as a 3-item tuple like this:

((4, 4), (0, 0), 'HID_KEYBOARD_SC_ESCAPE')

The first item can be either a number or a tuple.  If it is a tuple, it gives the size of the key in quarter-key lengths (width, height).  If height is positive and greater than 4, it will grow downward.  If height is negative and greater than 4, it will grow upward.  If the first item is not a tuple but a number, it is a spacer.  A positive number puts in a visible space (think between F4 and F5 on a standard keyboard).  A negative number puts in an invisible space (think underneath a vertical key like ISO Enter).

The second item is the matrix location of the key.  Some keyboards do not logically arrange the keys in the same way that they are physically arranged.  Costar boards are an example of this.  If describing a spacer, there is no applicable matrix location, so it should be "None".

The last item can be either a string with the default scancode, or a list of scancodes in the order of the layers.

Offline Moistgun

  • Slippery When Wet
  • * Esteemed Elder
  • Posts: 1832
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1629 on: Sun, 10 April 2016, 21:19:14 »
Awesome, You are quite the hero in my book.
So after all my trials and tribulations with the Moist60 AEK board, I took the rest and turned it to a cool little compact pad for work and data entry.





I took the info you just gave me and my learned knowledge from flailing around in EasyAVR to make this up



Success on my first try!
Thanks for being so attentive ans helpful!

Now to switch the slash and asterisk caps, and make some macros.

Offline metalliqaz

  • * Maker
  • Thread Starter
  • Posts: 4951
  • Location: the Making Stuff subforum
  • Leopold fanboy
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1630 on: Sun, 10 April 2016, 22:07:14 »
Looking good!  That's a cool pad.

Offline TheGlow

  • Posts: 48
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1631 on: Tue, 12 April 2016, 07:30:04 »
metal, I just switched back to AVR this morning.  Debounce 6, Matrix setup wait is 40.
So far only had one case of a double space bar.


Slightly off topic question but are there keys I can bind on the keyboard to then setup with Autohotkey that wouldnt interfere with regular use?
For instance I was using combinations like alt-f1, ctrl-f1 which may eventually interfere with a valid command like alt-f4.
I saw the options for HID_KEYBOARD_SC_F13 - 24. Im guessing these should be perfectly fine to use since my keyboard is a common F1-F12?
Edit: Tried F13 and didn't seem to do anything.
« Last Edit: Tue, 12 April 2016, 07:39:47 by TheGlow »

Offline MOZ

  • KING OF THE NEWBIES
  • * Maker
  • Posts: 3981
  • Location: Jo'burg
  • Busy making stuff
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1632 on: Tue, 12 April 2016, 07:40:39 »
Slightly off topic question but are there keys I can bind on the keyboard to then setup with Autohotkey that wouldnt interfere with regular use?
For instance I was using combinations like alt-f1, ctrl-f1 which may eventually interfere with a valid command like alt-f4.
I saw the options for HID_KEYBOARD_SC_F13 - 24. Im guessing these should be perfectly fine to use since my keyboard is a common F1-F12?

The combination you use and whether it interferes with an existing hotkey, will depend on the apps running, window on top and the OS; it will interfere if the combination is already bound to something, the keyboard has little to do with it. The F13-F24 keys should be good to go as they aren't part of the modern day keyboard and thus are unlikely to be previously bound in the system.

Offline metalliqaz

  • * Maker
  • Thread Starter
  • Posts: 4951
  • Location: the Making Stuff subforum
  • Leopold fanboy
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1633 on: Tue, 12 April 2016, 07:46:50 »
metal, I just switched back to AVR this morning.  Debounce 6, Matrix setup wait is 40.
So far only had one case of a double space bar.

I would turn up Debounce before turning up the setup wait.  My Epsilon uses Debounce = 12 and setup wait = 2.  You may want to try Debounce = 16 if your board is particularly glitchy.

Slightly off topic question but are there keys I can bind on the keyboard to then setup with Autohotkey that wouldnt interfere with regular use?
For instance I was using combinations like alt-f1, ctrl-f1 which may eventually interfere with a valid command like alt-f4.
I saw the options for HID_KEYBOARD_SC_F13 - 24. Im guessing these should be perfectly fine to use since my keyboard is a common F1-F12?

I'm not so sure that F13-F24 work with Windows.  See the USB HID spec for the keyboard data page describes 256 scancodes, but Windows, Mac, and *nix each use a different subset of them.  Windows doesn't really use anything beyond the standard ANSI/ISO layout.  Mac is fairly close.  I deactivated pretty much everything else and reused those codes internally for special functions.  Those aren't sent to the PC.  So, back on topic, I included F13-F24 for the Linux folks, but I'm not sure Windows reacts to those codes.  You'll have to test it.  To be honest, I think your best bet is just to use Ctrl+Alt+<any key>, or something like that.

Offline MOZ

  • KING OF THE NEWBIES
  • * Maker
  • Posts: 3981
  • Location: Jo'burg
  • Busy making stuff
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1634 on: Tue, 12 April 2016, 08:49:50 »
Fo reference, this page has some good information on scancodes: http://www.quadibloc.com/comp/scan.htm

Offline TheGlow

  • Posts: 48
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1635 on: Tue, 12 April 2016, 10:48:25 »
I'm not so sure that F13-F24 work with Windows.  See the USB HID spec for the keyboard data page describes 256 scancodes, but Windows, Mac, and *nix each use a different subset of them.  Windows doesn't really use anything beyond the standard ANSI/ISO layout.  Mac is fairly close.  I deactivated pretty much everything else and reused those codes internally for special functions.  Those aren't sent to the PC.  So, back on topic, I included F13-F24 for the Linux folks, but I'm not sure Windows reacts to those codes.  You'll have to test it.  To be honest, I think your best bet is just to use Ctrl+Alt+<any key>, or something like that.
Yea, thats what its looking like. I was thinking something like ctrl-alt since I don't recall off hand any othher combinations using it besides del.
There goes that double h... So stressful. TMK is too rough to work with for on the fly changes and adjustments, but easyAVR is missing something that keeps triggering these phantom hits.
It's definitely gotta play a part with me physically as I ido see a few, very rare, on my home razer w/ mx blueus.
Double I and u in previous. argh.
Ill play with some more debounce.

Offline dragonpower2000

  • Posts: 35
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1636 on: Tue, 12 April 2016, 12:05:45 »
A while ago  asked about rgb strip backlightning, still not a thing, if not will it become a thing, otherwise qmk is the best for rgb right?

Offline MOZ

  • KING OF THE NEWBIES
  • * Maker
  • Posts: 3981
  • Location: Jo'burg
  • Busy making stuff
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1637 on: Tue, 12 April 2016, 12:11:13 »
Myself and Iss as well are working on a solution, maybe more people too. Currently, QMK is the best way to go.

Offline kim366

  • Posts: 4
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1638 on: Thu, 14 April 2016, 12:46:13 »
Sorry, for not reading previous posts, but I just have a question. I already asked it on reddit, but I was redirected to this forum.

So: I made an Alt code macro, just like here: https://github.com/dhowland/EasyAVR/blob/master/keymapper/easykeymap/manuals/macros.txt on line 54. But instead of one symbol, for example \ALT(123), I get the caracters for Alt 1, Alt 2 and Alt 3 next to each other... so instead of { I get ☺☻♥. That is very weird...

Thank you all!

Offline metalliqaz

  • * Maker
  • Thread Starter
  • Posts: 4951
  • Location: the Making Stuff subforum
  • Leopold fanboy
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1639 on: Thu, 14 April 2016, 12:55:09 »
Sorry, for not reading previous posts, but I just have a question. I already asked it on reddit, but I was redirected to this forum.

So: I made an Alt code macro, just like here: https://github.com/dhowland/EasyAVR/blob/master/keymapper/easykeymap/manuals/macros.txt on line 54. But instead of one symbol, for example \ALT(123), I get the caracters for Alt 1, Alt 2 and Alt 3 next to each other... so instead of { I get ☺☻♥. That is very weird...

Thank you all!


Hmmm, I haven't tested this in a while, but what you have should work.  Try these:

1) You don't need the ',' after the \ALT sequence, because it terminates with a ')'.  Try omitting the comma.
2) I can't remember if NumLock matters for ALT codes.  Try it with and without NumLock.
3) Make sure you aren't holding other keys when you run this.

Offline Moistgun

  • Slippery When Wet
  • * Esteemed Elder
  • Posts: 1832
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1640 on: Thu, 14 April 2016, 13:48:48 »
Quick q

EasyAVR is easy enough, but my problem is with loading it to the board.

I can program my teensies all day with teensy loader, but flip is still telling me It cannot connect to usb device.

I have put it into boot mode, told atmega in device manager to update drivers from the atmel folder, and still no connection to program the board through flip.

I can program the board fine with tmk, but like using easyAVR more.

It is the satan gh knockoff and Im using Windows 10 with Flip v3.4.7

Any changes I need to make?

Offline MOZ

  • KING OF THE NEWBIES
  • * Maker
  • Posts: 3981
  • Location: Jo'burg
  • Busy making stuff
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1641 on: Thu, 14 April 2016, 14:14:14 »
I've been working on adding support for uploading directly from Easy AVR for various bootloader, Atmel/DFU, Teensy  included. It uses external command line tools to do the upload. You are welcome to try out the fork on GitHub.

Offline kim366

  • Posts: 4
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1642 on: Thu, 14 April 2016, 14:31:38 »
Sorry, for not reading previous posts, but I just have a question. I already asked it on reddit, but I was redirected to this forum.

So: I made an Alt code macro, just like here: https://github.com/dhowland/EasyAVR/blob/master/keymapper/easykeymap/manuals/macros.txt on line 54. But instead of one symbol, for example \ALT(123), I get the caracters for Alt 1, Alt 2 and Alt 3 next to each other... so instead of { I get ☺☻♥. That is very weird...

Thank you all!

Hmmm, I haven't tested this in a while, but what you have should work.  Try these:

1) You don't need the ',' after the \ALT sequence, because it terminates with a ')'.  Try omitting the comma.
2) I can't remember if NumLock matters for ALT codes.  Try it with and without NumLock.
3) Make sure you aren't holding other keys when you run this.

Okay, so 1. The comma was just for grammatical purposes, it does terminate with )
2. The numlock state doesn't change anything, at least if the numlock state from anopther keyboard counts.
3. I am only holding the Layer key. When I make a layer, that I need to hold the key for, do I need to have that llayer key in that layer too? Example, I have Fn3 in the main layer, do I need an Fn3 key at the same position in Layer 3? I just left it blank.

Thanks for your time!

Offline metalliqaz

  • * Maker
  • Thread Starter
  • Posts: 4951
  • Location: the Making Stuff subforum
  • Leopold fanboy
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1643 on: Thu, 14 April 2016, 14:37:18 »
Quick q

EasyAVR is easy enough, but my problem is with loading it to the board.

I can program my teensies all day with teensy loader, but flip is still telling me It cannot connect to usb device.

I have put it into boot mode, told atmega in device manager to update drivers from the atmel folder, and still no connection to program the board through flip.

I can program the board fine with tmk, but like using easyAVR more.

It is the satan gh knockoff and Im using Windows 10 with Flip v3.4.7

Any changes I need to make?

Make sure you have selected the correct AVR part in Flip.  In your case it would be the ATmega32U4.  Then try to connect with USB

Offline metalliqaz

  • * Maker
  • Thread Starter
  • Posts: 4951
  • Location: the Making Stuff subforum
  • Leopold fanboy
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1644 on: Thu, 14 April 2016, 14:50:21 »
Sorry, for not reading previous posts, but I just have a question. I already asked it on reddit, but I was redirected to this forum.

So: I made an Alt code macro, just like here: https://github.com/dhowland/EasyAVR/blob/master/keymapper/easykeymap/manuals/macros.txt on line 54. But instead of one symbol, for example \ALT(123), I get the caracters for Alt 1, Alt 2 and Alt 3 next to each other... so instead of { I get ☺☻♥. That is very weird...

Thank you all!

Hmmm, I haven't tested this in a while, but what you have should work.  Try these:

1) You don't need the ',' after the \ALT sequence, because it terminates with a ')'.  Try omitting the comma.
2) I can't remember if NumLock matters for ALT codes.  Try it with and without NumLock.
3) Make sure you aren't holding other keys when you run this.

Okay, so 1. The comma was just for grammatical purposes, it does terminate with )
2. The numlock state doesn't change anything, at least if the numlock state from anopther keyboard counts.
3. I am only holding the Layer key. When I make a layer, that I need to hold the key for, do I need to have that llayer key in that layer too? Example, I have Fn3 in the main layer, do I need an Fn3 key at the same position in Layer 3? I just left it blank.

Thanks for your time!

Okay, cool.  There is no technical requirement to assign the Fn key on the target layer.

Anyway I'm going to have to test this when I get home from work.  I'll get back to you.

Offline Moistgun

  • Slippery When Wet
  • * Esteemed Elder
  • Posts: 1832
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1645 on: Thu, 14 April 2016, 14:56:57 »
Quick q

EasyAVR is easy enough, but my problem is with loading it to the board.

I can program my teensies all day with teensy loader, but flip is still telling me It cannot connect to usb device.

I have put it into boot mode, told atmega in device manager to update drivers from the atmel folder, and still no connection to program the board through flip.

I can program the board fine with tmk, but like using easyAVR more.

It is the satan gh knockoff and Im using Windows 10 with Flip v3.4.7

Any changes I need to make?

Make sure you have selected the correct AVR part in Flip.  In your case it would be the ATmega32U4.  Then try to connect with USB
I can say I definitely have selected that one in flip correctly.
Hmm


Sent from my D6708 using Tapatalk


Offline kim366

  • Posts: 4
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1646 on: Thu, 14 April 2016, 15:09:20 »
Sorry, for not reading previous posts, but I just have a question. I already asked it on reddit, but I was redirected to this forum.

So: I made an Alt code macro, just like here: https://github.com/dhowland/EasyAVR/blob/master/keymapper/easykeymap/manuals/macros.txt on line 54. But instead of one symbol, for example \ALT(123), I get the caracters for Alt 1, Alt 2 and Alt 3 next to each other... so instead of { I get ☺☻♥. That is very weird...

Thank you all!

Hmmm, I haven't tested this in a while, but what you have should work.  Try these:

1) You don't need the ',' after the \ALT sequence, because it terminates with a ')'.  Try omitting the comma.
2) I can't remember if NumLock matters for ALT codes.  Try it with and without NumLock.
3) Make sure you aren't holding other keys when you run this.

Okay, so 1. The comma was just for grammatical purposes, it does terminate with )
2. The numlock state doesn't change anything, at least if the numlock state from anopther keyboard counts.
3. I am only holding the Layer key. When I make a layer, that I need to hold the key for, do I need to have that llayer key in that layer too? Example, I have Fn3 in the main layer, do I need an Fn3 key at the same position in Layer 3? I just left it blank.

Thanks for your time!

Okay, cool.  There is no technical requirement to assign the Fn key on the target layer.

Anyway I'm going to have to test this when I get home from work.  I'll get back to you.

Thanks!

PS: What is your job, just curious? Developer?

Offline Moistgun

  • Slippery When Wet
  • * Esteemed Elder
  • Posts: 1832
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1647 on: Thu, 14 April 2016, 15:35:54 »

Thanks!

PS: What is your job, just curious? Developer?

He's the on call AVR geekhack demon.
a deal was made in clacks, and he has to help us all for eternity.


Offline metalliqaz

  • * Maker
  • Thread Starter
  • Posts: 4951
  • Location: the Making Stuff subforum
  • Leopold fanboy
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1648 on: Thu, 14 April 2016, 15:43:11 »
I used to have clacks. I gave them away.

I'm a computer engineer and all around nerd.

Offline a-c

  • Posts: 196
  • Location: USA
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1649 on: Thu, 14 April 2016, 15:44:26 »

I can say I definitely have selected that one in flip correctly.
Hmm


Sent from my D6708 using Tapatalk

You may not have the driver loaded. Or a different driver than the one that comes with Flip. Try this http://imgur.com/a/bnwzy